diff options
Diffstat (limited to 'src/shaders/SkColorShader.cpp')
-rw-r--r-- | src/shaders/SkColorShader.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/shaders/SkColorShader.cpp b/src/shaders/SkColorShader.cpp index 4bc7d71194..861898737b 100644 --- a/src/shaders/SkColorShader.cpp +++ b/src/shaders/SkColorShader.cpp @@ -211,8 +211,10 @@ SkShader::GradientType SkColor4Shader::asAGradient(GradientInfo* info) const { std::unique_ptr<GrFragmentProcessor> SkColor4Shader::asFragmentProcessor( const AsFPArgs& args) const { - sk_sp<GrColorSpaceXform> colorSpaceXform = - GrColorSpaceXform::Make(fColorSpace.get(), args.fDstColorSpaceInfo->colorSpace()); + // Construct an xform assuming float inputs. The color space can have a transfer function on + // it, which will be applied below. + auto colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), kRGBA_float_GrPixelConfig, + args.fDstColorSpaceInfo->colorSpace()); GrColor4f color = GrColor4f::FromSkColor4f(fColor4); if (colorSpaceXform) { color = colorSpaceXform->clampedXform(color); |