diff options
author | Brian Osman <brianosman@google.com> | 2018-05-23 11:52:00 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-05-23 16:18:41 +0000 |
commit | c494a708be977a458a105318b2e2f439ab985ed8 (patch) | |
tree | 4d9008b567f72afb1d7a069c014331c6f1d62349 /dm | |
parent | fe75169912d5df74d4aab44f5552a31bb5d9b907 (diff) |
Use skcms for ICC parsing in HP codec test
Change-Id: I6319b00ae35a15ffeaf8a785dde874b730f42c13
Reviewed-on: https://skia-review.googlesource.com/129649
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Diffstat (limited to 'dm')
-rw-r--r-- | dm/DMSrcSink.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index 52826ac00b..6378fabd3a 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -71,6 +71,10 @@ #include "SkXMLWriter.h" #endif +#if defined(SK_USE_SKCMS) + #include "skcms.h" +#endif + #if SK_SUPPORT_GPU #include "GrBackendSurface.h" #include "GrContextPriv.h" @@ -1084,7 +1088,14 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const { if (kDst_sRGB_Mode == fMode) { dstSpace = SkColorSpace::MakeSRGB(); } else if (kDst_HPZR30w_Mode == fMode) { - dstSpace = SkColorSpace::MakeICC(dstData->data(), dstData->size()); +#if defined(SK_USE_SKCMS) + skcms_ICCProfile profile; + SkAssertResult(skcms_Parse(dstData->data(), dstData->size(), &profile)); + dstSpace = SkColorSpace::Make(profile); + SkASSERT(dstSpace); +#else + return "Cannot use ICC profile without skcms support."; +#endif } SkImageInfo decodeInfo = codec->getInfo().makeColorType(fColorType).makeColorSpace(dstSpace); |