aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/gradients/SkLinearGradient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shaders/gradients/SkLinearGradient.cpp')
-rw-r--r--src/shaders/gradients/SkLinearGradient.cpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/shaders/gradients/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp
index 8b439cef56..c0cade38dc 100644
--- a/src/shaders/gradients/SkLinearGradient.cpp
+++ b/src/shaders/gradients/SkLinearGradient.cpp
@@ -100,8 +100,9 @@ public:
class GLSLLinearProcessor;
static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args) {
- auto processor = std::unique_ptr<GrLinearGradient>(new GrLinearGradient(args));
- return processor->isValid() ? std::move(processor) : nullptr;
+ return GrGradientEffect::AdjustFP(std::unique_ptr<GrLinearGradient>(
+ new GrLinearGradient(args)),
+ args);
}
const char* name() const override { return "Linear Gradient"; }
@@ -212,15 +213,8 @@ std::unique_ptr<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor(
}
matrix.postConcat(fPtsToUnit);
- sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(),
- args.fDstColorSpace);
- auto inner = GrLinearGradient::Make(GrGradientEffect::CreateArgs(
- args.fContext, this, &matrix, fTileMode, std::move(colorSpaceXform),
- SkToBool(args.fDstColorSpace)));
- if (!inner) {
- return nullptr;
- }
- return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner));
+ return GrLinearGradient::Make(GrGradientEffect::CreateArgs(
+ args.fContext, this, &matrix, fTileMode, args.fDstColorSpace));
}