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/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp
index d127f8d..5ad4075 100644
--- a/src/shaders/gradients/SkLinearGradient.cpp
+++ b/src/shaders/gradients/SkLinearGradient.cpp
@@ -345,12 +345,19 @@
return processor->isValid() ? std::move(processor) : nullptr;
}
- ~GrLinearGradient() override {}
-
const char* name() const override { return "Linear Gradient"; }
+ sk_sp<GrFragmentProcessor> clone() const override {
+ return sk_sp<GrFragmentProcessor>(new GrLinearGradient(*this));
+ }
+
private:
- GrLinearGradient(const CreateArgs& args) : INHERITED(args, args.fShader->colorsAreOpaque()) {
+ explicit GrLinearGradient(const CreateArgs& args)
+ : INHERITED(args, args.fShader->colorsAreOpaque()) {
+ this->initClassID<GrLinearGradient>();
+ }
+
+ explicit GrLinearGradient(const GrLinearGradient& that) : INHERITED(that) {
this->initClassID<GrLinearGradient>();
}
@@ -370,8 +377,6 @@
public:
GLSLLinearProcessor(const GrProcessor&) {}
- ~GLSLLinearProcessor() override {}
-
virtual void emitCode(EmitArgs&) override;
static void GenKey(const GrProcessor& processor, const GrShaderCaps&, GrProcessorKeyBuilder* b) {