diff options
Diffstat (limited to 'src/shaders/gradients/SkLinearGradient.cpp')
-rw-r--r-- | src/shaders/gradients/SkLinearGradient.cpp | 16 |
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)); } |