OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkLinearBitmapPipeline_sampler_DEFINED | 8 #ifndef SkLinearBitmapPipeline_sampler_DEFINED |
9 #define SkLinearBitmapPipeline_sampler_DEFINED | 9 #define SkLinearBitmapPipeline_sampler_DEFINED |
10 | 10 |
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 x += dx; | 553 x += dx; |
554 count -= 1; | 554 count -= 1; |
555 } | 555 } |
556 } | 556 } |
557 } | 557 } |
558 | 558 |
559 Next* const fNext; | 559 Next* const fNext; |
560 SourceStrategy fStrategy; | 560 SourceStrategy fStrategy; |
561 }; | 561 }; |
562 | 562 |
563 class sRGBFast { | |
564 public: | |
565 static Sk4s VECTORCALL sRGBToLinear(Sk4s pixel) { | |
566 Sk4s l = pixel * pixel; | |
567 return Sk4s{l[0], l[1], l[2], pixel[3]}; | |
568 } | |
569 }; | |
570 | |
571 enum class ColorOrder { | 563 enum class ColorOrder { |
572 kRGBA = false, | 564 kRGBA = false, |
573 kBGRA = true, | 565 kBGRA = true, |
574 }; | 566 }; |
575 template <SkColorProfileType colorProfile, ColorOrder colorOrder> | 567 template <SkColorProfileType colorProfile, ColorOrder colorOrder> |
576 class Pixel8888 { | 568 class Pixel8888 { |
577 public: | 569 public: |
578 Pixel8888(int width, const uint32_t* src) : fSrc{src}, fWidth{width}{ } | 570 Pixel8888(int width, const uint32_t* src) : fSrc{src}, fWidth{width}{ } |
579 Pixel8888(const SkPixmap& srcPixmap) | 571 Pixel8888(const SkPixmap& srcPixmap) |
580 : fSrc{srcPixmap.addr32()} | 572 : fSrc{srcPixmap.addr32()} |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 const void* row(int y) { return fSrc + y * fWidth[0]; } | 776 const void* row(int y) { return fSrc + y * fWidth[0]; } |
785 | 777 |
786 private: | 778 private: |
787 const uint64_t* const fSrc; | 779 const uint64_t* const fSrc; |
788 const Sk4i fWidth; | 780 const Sk4i fWidth; |
789 }; | 781 }; |
790 | 782 |
791 } // namespace | 783 } // namespace |
792 | 784 |
793 #endif // SkLinearBitmapPipeline_sampler_DEFINED | 785 #endif // SkLinearBitmapPipeline_sampler_DEFINED |
OLD | NEW |