From ccd3995e5d8dc703c1f0ef7133fc5b527cd6e42c Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Fri, 6 Jul 2018 16:16:43 -0400 Subject: Support older SKPs drawing to legacy destinations correctly We were ignoring the linear aspect of the serialized colors, and treating them as if they were sRGB-encoded. Now, always transform colors back to sRGB when drawing to legacy destinations. Change-Id: I980aae73a3e536cccb65b841967a01b6811aa863 Reviewed-on: https://skia-review.googlesource.com/139550 Commit-Queue: Brian Osman Commit-Queue: Mike Klein Auto-Submit: Brian Osman Reviewed-by: Mike Klein --- src/shaders/gradients/SkGradientShader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/shaders') diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp index fd97bc8925..1cbad4ac11 100644 --- a/src/shaders/gradients/SkGradientShader.cpp +++ b/src/shaders/gradients/SkGradientShader.cpp @@ -461,8 +461,10 @@ SkColor4fXformer::SkColor4fXformer(const SkColor4f* colors, int colorCount, SkColorSpace* src, SkColorSpace* dst) { // Transform all of the colors to destination color space fColors = colors; + + // Treat null destinations as sRGB (safe because sRGB is a global singleton) if (!dst) { - return; + dst = SkColorSpace::MakeSRGB().get(); } // Treat null sources as sRGB (safe because sRGB is a global singleton) -- cgit v1.2.3