aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkColorShader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shaders/SkColorShader.cpp')
-rw-r--r--src/shaders/SkColorShader.cpp6
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);