| Index: src/core/SkColorSpaceXform.cpp
|
| diff --git a/src/core/SkColorSpaceXform.cpp b/src/core/SkColorSpaceXform.cpp
|
| index 3795d2d8d638229c399aa74d4a1bd60835cfbf60..89e137804209ca49dd59800912492a85b1a71d4c 100644
|
| --- a/src/core/SkColorSpaceXform.cpp
|
| +++ b/src/core/SkColorSpaceXform.cpp
|
| @@ -950,13 +950,21 @@ static inline void store_generic(void* dst, const uint32_t* src,
|
| static inline void store_generic_1(void* dst, const uint32_t* src,
|
| Sk4f& rgba, const Sk4f&,
|
| const uint8_t* const dstTables[3], SwapRB kSwapRB) {
|
| + int kRShift = 0;
|
| + int kGShift = 8;
|
| + int kBShift = 16;
|
| + if (kYes_SwapRB == kSwapRB) {
|
| + kBShift = 0;
|
| + kRShift = 16;
|
| + }
|
| +
|
| rgba = Sk4f::Min(Sk4f::Max(1023.0f * rgba, 0.0f), 1023.0f);
|
|
|
| Sk4i indices = Sk4f_round(rgba);
|
|
|
| - *((uint32_t*) dst) = dstTables[0][indices[0]] << 0
|
| - | dstTables[1][indices[1]] << 8
|
| - | dstTables[2][indices[2]] << 16
|
| + *((uint32_t*) dst) = dstTables[0][indices[0]] << kRShift
|
| + | dstTables[1][indices[1]] << kGShift
|
| + | dstTables[2][indices[2]] << kBShift
|
| | (*src & 0xFF000000);
|
| }
|
|
|
| @@ -1197,3 +1205,22 @@ const
|
| return;
|
| }
|
| }
|
| +
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::kSRGB_GammaNamed, kNone_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::kSRGB_GammaNamed, kGamut_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::kSRGB_GammaNamed, kFull_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::k2Dot2Curve_GammaNamed, kNone_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::k2Dot2Curve_GammaNamed, kGamut_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::k2Dot2Curve_GammaNamed, kFull_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::kNonStandard_GammaNamed, kNone_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::kNonStandard_GammaNamed, kGamut_ColorSpaceMatch>;
|
| +template class SkColorSpaceXform_Base
|
| +<SkColorSpace::kNonStandard_GammaNamed, kFull_ColorSpaceMatch>;
|
|
|