Index: src/effects/gradients/SkLinearGradient.cpp |
diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp |
index a93235d31aace6a5d51502f06b6b057a6acd2a49..4bf5e3cc207d14b6363be495f3dda90784675c87 100644 |
--- a/src/effects/gradients/SkLinearGradient.cpp |
+++ b/src/effects/gradients/SkLinearGradient.cpp |
@@ -341,6 +341,7 @@ SkShader::GradientType SkLinearGradient::asAGradient(GradientInfo* info) const { |
#if SK_SUPPORT_GPU |
+#include "GrColorSpaceXform.h" |
#include "glsl/GrGLSLCaps.h" |
#include "glsl/GrGLSLFragmentShaderBuilder.h" |
#include "SkGr.h" |
@@ -461,8 +462,11 @@ sk_sp<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor(const AsFPArgs& |
} |
matrix.postConcat(fPtsToUnit); |
+ sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), |
+ args.fDstColorSpace); |
sk_sp<GrFragmentProcessor> inner(GrLinearGradient::Make( |
- GrGradientEffect::CreateArgs(args.fContext, this, &matrix, fTileMode))); |
+ GrGradientEffect::CreateArgs(args.fContext, this, &matrix, fTileMode, |
+ std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)))); |
return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); |
} |