Index: src/core/SkColorSpaceXform.cpp |
diff --git a/src/core/SkColorSpaceXform.cpp b/src/core/SkColorSpaceXform.cpp |
index e6bde616c3211e8a387b4ae4e5df5e85a5e1d59e..2f852e462d0a662e22a076def2ffc106cdae8444 100644 |
--- a/src/core/SkColorSpaceXform.cpp |
+++ b/src/core/SkColorSpaceXform.cpp |
@@ -502,25 +502,47 @@ SkFastXform<Dst>::SkFastXform(const sk_sp<SkColorSpace>& srcSpace, const SkMatri |
template <> |
void SkFastXform<SkColorSpace::kSRGB_GammaNamed> |
-::applyTo8888(SkPMColor* dst, const RGBA32* src, int len) const |
+::applyToRGBA(SkPMColor* dst, const RGBA32* src, int len) const |
{ |
SkOpts::color_xform_RGB1_to_srgb(dst, src, len, fSrcGammaTables, fSrcToDst); |
} |
template <> |
void SkFastXform<SkColorSpace::k2Dot2Curve_GammaNamed> |
-::applyTo8888(SkPMColor* dst, const RGBA32* src, int len) const |
+::applyToRGBA(SkPMColor* dst, const RGBA32* src, int len) const |
{ |
SkOpts::color_xform_RGB1_to_2dot2(dst, src, len, fSrcGammaTables, fSrcToDst); |
} |
template <> |
void SkFastXform<SkColorSpace::kNonStandard_GammaNamed> |
-::applyTo8888(SkPMColor* dst, const RGBA32* src, int len) const |
+::applyToRGBA(SkPMColor* dst, const RGBA32* src, int len) const |
{ |
SkOpts::color_xform_RGB1_to_table(dst, src, len, fSrcGammaTables, fSrcToDst, fDstGammaTables); |
} |
+template <> |
+void SkFastXform<SkColorSpace::kSRGB_GammaNamed> |
+::applyToBGRA(SkPMColor* dst, const RGBA32* src, int len) const |
+{ |
+ SkOpts::color_xform_RGB1_to_srgb_swaprb(dst, src, len, fSrcGammaTables, fSrcToDst); |
+} |
+ |
+template <> |
+void SkFastXform<SkColorSpace::k2Dot2Curve_GammaNamed> |
+::applyToBGRA(SkPMColor* dst, const RGBA32* src, int len) const |
+{ |
+ SkOpts::color_xform_RGB1_to_2dot2_swaprb(dst, src, len, fSrcGammaTables, fSrcToDst); |
+} |
+ |
+template <> |
+void SkFastXform<SkColorSpace::kNonStandard_GammaNamed> |
+::applyToBGRA(SkPMColor* dst, const RGBA32* src, int len) const |
+{ |
+ SkOpts::color_xform_RGB1_to_table_swaprb(dst, src, len, fSrcGammaTables, fSrcToDst, |
+ fDstGammaTables); |
+} |
+ |
template <SkColorSpace::GammaNamed T> |
void SkFastXform<T> |
::applyToF16(RGBAF16* dst, const RGBA32* src, int len) const |
@@ -647,7 +669,7 @@ static void interp_3d_clut(float dst[3], float src[3], const SkColorLookUpTable* |
} |
} |
-void SkDefaultXform::applyTo8888(SkPMColor* dst, const RGBA32* src, int len) const { |
+void SkDefaultXform::applyToRGBA(RGBA32* dst, const RGBA32* src, int len) const { |
while (len-- > 0) { |
uint8_t r = (*src >> 0) & 0xFF, |
g = (*src >> 8) & 0xFF, |
@@ -696,13 +718,20 @@ void SkDefaultXform::applyTo8888(SkPMColor* dst, const RGBA32* src, int len) con |
g = fDstGammaTables[1][sk_float_round2int((kDstGammaTableSize - 1) * dstFloats[1])]; |
b = fDstGammaTables[2][sk_float_round2int((kDstGammaTableSize - 1) * dstFloats[2])]; |
- *dst = SkPackARGB32NoCheck(0xFF, r, g, b); |
+ *dst = SkPackARGB_as_RGBA(0xFF, r, g, b); |
dst++; |
src++; |
} |
} |
+void SkDefaultXform::applyToBGRA(RGBA32* dst, const RGBA32* src, int len) const { |
+ // FIXME (msarett): |
+ // Really tired of not having deleted SkDefaultXform yet. |
+ this->applyToRGBA(dst, src, len); |
+ SkOpts::RGBA_to_BGRA(dst, dst, len); |
+} |
+ |
void SkDefaultXform::applyToF16(RGBAF16* dst, const RGBA32* src, int len) const { |
// FIXME (msarett): |
// Planning to delete SkDefaultXform. Not going to bother to implement this. |