Index: dm/DMSrcSink.cpp |
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp |
index e777815baabce71bcf5ac20ad74e2721dd52eda2..f09e8ff47888b470b9a1e10c122796a8fe76d0de 100644 |
--- a/dm/DMSrcSink.cpp |
+++ b/dm/DMSrcSink.cpp |
@@ -11,7 +11,7 @@ |
#include "SkCodec.h" |
#include "SkCodecImageGenerator.h" |
#include "SkColorSpace.h" |
-#include "SkColorSpace_Base.h" |
+#include "SkColorSpace_XYZTRC.h" |
#include "SkColorSpaceXform.h" |
#include "SkCommonFlags.h" |
#include "SkData.h" |
@@ -920,7 +920,9 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const { |
decodeInfo = decodeInfo.makeAlphaType(kPremul_SkAlphaType); |
} |
if (kRGBA_F16_SkColorType == fColorType) { |
- decodeInfo = decodeInfo.makeColorSpace(as_CSB(decodeInfo.colorSpace())->makeLinearGamma()); |
+ SkASSERT(as_CSB(decodeInfo.colorSpace())->toXYZD50()); |
+ SkColorSpace_XYZTRC* csXYZ = static_cast<SkColorSpace_XYZTRC*>(decodeInfo.colorSpace()); |
+ decodeInfo = decodeInfo.makeColorSpace(csXYZ->makeLinearGamma()); |
} |
SkImageInfo bitmapInfo = decodeInfo; |