diff options
author | msarett <msarett@google.com> | 2016-06-20 06:07:45 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-20 06:07:45 -0700 |
commit | d2809573deb7b99e764f7f71fe34a5b5322df0b2 (patch) | |
tree | a51709dd5e37fe8816a1e14e24d4eff9a839f5e9 /dm | |
parent | 452ba88066b51931696fc3d0a2a1c0f8809a4143 (diff) |
Support sRGB dsts in opt code
201295.jpg on HP z620 (300x280)
QCMS Xform 0.418 ms
Skia NEW Xform 0.378 ms
Vs QCMS 1.11x
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2078623002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2078623002
Diffstat (limited to 'dm')
-rw-r--r-- | dm/DM.cpp | 3 | ||||
-rw-r--r-- | dm/DMSrcSink.cpp | 5 | ||||
-rw-r--r-- | dm/DMSrcSink.h | 4 |
3 files changed, 9 insertions, 3 deletions
@@ -747,6 +747,9 @@ static bool gather_srcs() { src = new ColorCodecSrc(colorImage, ColorCodecSrc::kDst_HPZR30w_Mode); push_src("image", "color_codec_HPZR30w", src); + src = new ColorCodecSrc(colorImage, ColorCodecSrc::kDst_sRGB_Mode); + push_src("image", "color_codec_sRGB", src); + #if defined(SK_TEST_QCMS) src = new ColorCodecSrc(colorImage, ColorCodecSrc::kQCMS_HPZR30w_Mode); push_src("image", "color_codec_QCMS_HPZR30w", src); diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index 97f1e48664..8afbfb9f2f 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -886,9 +886,12 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const { case kBaseline_Mode: canvas->drawBitmap(bitmap, 0, 0); break; + case kDst_sRGB_Mode: case kDst_HPZR30w_Mode: { sk_sp<SkColorSpace> srcSpace = sk_ref_sp(codec->getColorSpace()); - sk_sp<SkColorSpace> dstSpace = SkColorSpace::NewICC(dstData->data(), dstData->size()); + sk_sp<SkColorSpace> dstSpace = (kDst_sRGB_Mode == fMode) ? + SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named) : + SkColorSpace::NewICC(dstData->data(), dstData->size()); SkASSERT(dstSpace); std::unique_ptr<SkColorSpaceXform> xform = SkColorSpaceXform::New(srcSpace, dstSpace); diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index a2bfbca7f3..be7d68e638 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -215,10 +215,10 @@ public: // monitor, you're in luck! The unmarked outputs of this test should display // correctly on this monitor in the Chrome browser. If not, it's useful to know // that this monitor has a profile that is fairly similar to Adobe RGB. - // TODO (msarett): Should we add a new test with a new monitor and verify that outputs - // look identical on two different dsts? kDst_HPZR30w_Mode, + kDst_sRGB_Mode, + #if defined(SK_TEST_QCMS) // Use QCMS for color correction. kQCMS_HPZR30w_Mode, |