diff options
author | 2017-06-09 08:21:42 -0400 | |
---|---|---|
committer | 2017-06-09 14:57:27 +0000 | |
commit | 6af270116dcf0bc123ce5ca22c319e087cd21f2f (patch) | |
tree | a5a1b031690c5deb57f06a55f61a4888ef96c633 /src/shaders/gradients/SkSweepGradient.cpp | |
parent | 12bf424ec21f1a99759fda8e196850a8789c8e3e (diff) |
Make gradient effect creation fail if texture LUT creation fails
Bug: skia:6198
Change-Id: Ib8fb273564ca54ee9e6e045ac67e191af705a37a
Reviewed-on: https://skia-review.googlesource.com/19260
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/shaders/gradients/SkSweepGradient.cpp')
-rw-r--r-- | src/shaders/gradients/SkSweepGradient.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/shaders/gradients/SkSweepGradient.cpp b/src/shaders/gradients/SkSweepGradient.cpp index 1e583c2ee0..58e34fdaa6 100644 --- a/src/shaders/gradients/SkSweepGradient.cpp +++ b/src/shaders/gradients/SkSweepGradient.cpp @@ -144,8 +144,10 @@ public: class GLSLSweepProcessor; static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args) { - return sk_sp<GrFragmentProcessor>(new GrSweepGradient(args)); + auto processor = sk_sp<GrSweepGradient>(new GrSweepGradient(args)); + return processor->isValid() ? std::move(processor) : nullptr; } + ~GrSweepGradient() override {} const char* name() const override { return "Sweep Gradient"; } @@ -267,6 +269,9 @@ sk_sp<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor(const AsFPArgs& sk_sp<GrFragmentProcessor> inner(GrSweepGradient::Make( GrGradientEffect::CreateArgs(args.fContext, this, &matrix, SkShader::kClamp_TileMode, std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)))); + if (!inner) { + return nullptr; + } return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); } |