diff options
author | 2016-09-08 10:14:04 -0700 | |
---|---|---|
committer | 2016-09-08 10:14:05 -0700 | |
commit | 7a9900d6d34e437bb24beb5524a1f6488ae138c9 (patch) | |
tree | 3b81bb6369d1cb9a6d9bbf2282f730cdf8482bff /dm/DMSrcSink.cpp | |
parent | 971cd496b9e25f87f3a75a0015c203322907136a (diff) |
Checking for valid colorType, alphaType, colorSpace in SkCodec
* Refactor to share code between SkPngCodec and SkWebpCodec
* Didn't end up sharing with SkJpegCodec but did refactor
that code a bit
* Disallow conversions to F16 with non-linear color spaces
* Fail to decode if we fail to create a SkColorSpaceXform
(should be an assert soon). We used to fallback on a
legacy decode if we failed to create the transform.
* A bunch of name changes
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2319293003
Review-Url: https://codereview.chromium.org/2319293003
Diffstat (limited to 'dm/DMSrcSink.cpp')
-rw-r--r-- | dm/DMSrcSink.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index caf6f52fe2..fcc4a33a1a 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -896,6 +896,9 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const { if (kUnpremul_SkAlphaType == decodeInfo.alphaType()) { decodeInfo = decodeInfo.makeAlphaType(kPremul_SkAlphaType); } + if (kRGBA_F16_SkColorType == fColorType) { + decodeInfo = decodeInfo.makeColorSpace(decodeInfo.colorSpace()->makeLinearGamma()); + } SkImageInfo bitmapInfo = decodeInfo; if (kRGBA_8888_SkColorType == decodeInfo.colorType() || |