aboutsummaryrefslogtreecommitdiffhomepage
path: root/dm
diff options
context:
space:
mode:
Diffstat (limited to 'dm')
-rw-r--r--dm/DM.cpp3
-rw-r--r--dm/DMSrcSink.cpp5
-rw-r--r--dm/DMSrcSink.h4
3 files changed, 9 insertions, 3 deletions
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 69044080b5..f6dc398bea 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -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,