Convert color to dst (once) in color shaders

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>
This commit is contained in:
Matt Sarett 2017-03-08 13:13:58 -05:00 committed by Skia Commit-Bot
parent c84c030295
commit 8734566151

View 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;
}