diff options
author | Brian Osman <brianosman@google.com> | 2018-07-18 14:36:43 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-19 21:04:56 +0000 |
commit | a76b7a9ded28ea36a00fc1a59d6e9aec5bd4f29c (patch) | |
tree | 2c2336a8d578f1eec32ae84fee78a856b7e8332f /dm/DM.cpp | |
parent | 5191fd7555d34225ef771ad4cac65bcbbb50a89c (diff) |
More color space improvements to DM
Added P3 configs (tagged surface and SkColorSpaceXformCanvas)
Added logic to tag the output PNGs when using a xform canvas,
so the images look correct in Chrome (and work correctly with
skdiff).
We don't use the gamma_correct tag for much in gold, but only
set it for outputs with a linear transfer function.
Change-Id: Iee713682e5010b0bd3212538a6dcb201ae4e8592
Reviewed-on: https://skia-review.googlesource.com/142170
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'dm/DM.cpp')
-rw-r--r-- | dm/DM.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -946,6 +946,9 @@ static sk_sp<SkColorSpace> rgb_to_gbr() { static Sink* create_via(const SkString& tag, Sink* wrapped) { #define VIA(t, via, ...) if (tag.equals(t)) { return new via(__VA_ARGS__); } VIA("gbr", ViaCSXform, wrapped, rgb_to_gbr(), true); + VIA("p3", ViaCSXform, wrapped, + SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, + SkColorSpace::kDCIP3_D65_Gamut), false); VIA("lite", ViaLite, wrapped); VIA("pipe", ViaPipe, wrapped); #ifdef TEST_VIA_SVG @@ -1182,10 +1185,9 @@ struct Task { const char* ext, SkStream* data, size_t len, const SkBitmap* bitmap) { - bool gammaCorrect = false; - if (bitmap) { - gammaCorrect = SkToBool(bitmap->info().colorSpace()); - } + bool gammaCorrect = bitmap && + bitmap->info().colorSpace() && + bitmap->info().colorSpace()->gammaIsLinear(); JsonWriter::BitmapResult result; result.name = task.src->name(); |