Implement clone() for Gradient GrFragmentProcessors
Also removes the hard stop gradient conditional compilation macro.
Change-Id: Idd56b5f3061db063d650a0090406ec192acc0b53
Reviewed-on: https://skia-review.googlesource.com/27661
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/shaders/gradients/SkRadialGradient.cpp b/src/shaders/gradients/SkRadialGradient.cpp
index c2ca2fa..a8e48db 100644
--- a/src/shaders/gradients/SkRadialGradient.cpp
+++ b/src/shaders/gradients/SkRadialGradient.cpp
@@ -234,12 +234,19 @@
return processor->isValid() ? std::move(processor) : nullptr;
}
- ~GrRadialGradient() override {}
-
const char* name() const override { return "Radial Gradient"; }
+ sk_sp<GrFragmentProcessor> clone() const override {
+ return sk_sp<GrFragmentProcessor>(new GrRadialGradient(*this));
+ }
+
private:
- GrRadialGradient(const CreateArgs& args) : INHERITED(args, args.fShader->colorsAreOpaque()) {
+ explicit GrRadialGradient(const CreateArgs& args)
+ : INHERITED(args, args.fShader->colorsAreOpaque()) {
+ this->initClassID<GrRadialGradient>();
+ }
+
+ explicit GrRadialGradient(const GrRadialGradient& that) : INHERITED(that) {
this->initClassID<GrRadialGradient>();
}
@@ -258,7 +265,6 @@
class GrRadialGradient::GLSLRadialProcessor : public GrGradientEffect::GLSLProcessor {
public:
GLSLRadialProcessor(const GrProcessor&) {}
- ~GLSLRadialProcessor() override {}
virtual void emitCode(EmitArgs&) override;