Convert color to dst (once) in color shaders
authorMatt Sarett <msarett@google.com>
Wed, 8 Mar 2017 18:13:58 +0000 (13:13 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Tue, 9 May 2017 17:36:23 +0000 (17:36 +0000)
BUG=skia:

Change-Id: Ideba16972b82fc26766349c808ae406e5ea23163
Reviewed-on: https://skia-review.googlesource.com/9418
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

src/core/SkColorShader.cpp

index 66fc654..94d1abc 100644 (file)
@@ -322,8 +322,7 @@ bool SkColorShader::onAppendStages(SkRasterPipeline* p,
                                    const SkMatrix*) const {
     auto color = scratch->make<SkPM4f>(SkPM4f_from_SkColor(fColor, dst));
     p->append(SkRasterPipeline::constant_color, color);
-    return append_gamut_transform(p, scratch,
-                                  SkColorSpace::MakeSRGB().get(), dst);
+    return true;
 }
 
 bool SkColor4Shader::onAppendStages(SkRasterPipeline* p,
@@ -332,7 +331,7 @@ bool SkColor4Shader::onAppendStages(SkRasterPipeline* p,
                                     const SkMatrix&,
                                     const SkPaint&,
                                     const SkMatrix*) const {
-    auto color = scratch->make<SkPM4f>(fColor4.premul());
+    auto color = scratch->make<SkPM4f>(to_colorspace(fColor4, fColorSpace.get(), dst).premul());
     p->append(SkRasterPipeline::constant_color, color);
-    return append_gamut_transform(p, scratch, fColorSpace.get(), dst);
+    return true;
 }