Remove backend factories
BUG=skia:
Review URL: https://codereview.chromium.org/778453002
diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp
index 7c0e8f6..e880df2 100644
--- a/src/effects/gradients/SkRadialGradient.cpp
+++ b/src/effects/gradients/SkRadialGradient.cpp
@@ -461,15 +461,13 @@
#if SK_SUPPORT_GPU
-#include "GrTBackendProcessorFactory.h"
-#include "gl/builders/GrGLProgramBuilder.h"
#include "SkGr.h"
+#include "gl/builders/GrGLProgramBuilder.h"
class GrGLRadialGradient : public GrGLGradientEffect {
public:
- GrGLRadialGradient(const GrBackendProcessorFactory& factory,
- const GrProcessor&) : INHERITED (factory) { }
+ GrGLRadialGradient(const GrProcessor&) {}
virtual ~GrGLRadialGradient() { }
virtual void emitCode(GrGLFPBuilder*,
@@ -502,12 +500,16 @@
virtual ~GrRadialGradient() { }
- static const char* Name() { return "Radial Gradient"; }
- virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERRIDE {
- return GrTBackendFragmentProcessorFactory<GrRadialGradient>::getInstance();
+ virtual const char* name() const SK_OVERRIDE { return "Radial Gradient"; }
+
+ virtual void getGLProcessorKey(const GrGLCaps& caps,
+ GrProcessorKeyBuilder* b) const SK_OVERRIDE {
+ GrGLRadialGradient::GenKey(*this, caps, b);
}
- typedef GrGLRadialGradient GLProcessor;
+ virtual GrGLFragmentProcessor* createGLInstance() const SK_OVERRIDE {
+ return SkNEW_ARGS(GrGLRadialGradient, (*this));
+ }
private:
GrRadialGradient(GrContext* ctx,
@@ -515,6 +517,7 @@
const SkMatrix& matrix,
SkShader::TileMode tm)
: INHERITED(ctx, shader, matrix, tm) {
+ this->initClassID<GrRadialGradient>();
}
GR_DECLARE_FRAGMENT_PROCESSOR_TEST;
@@ -556,7 +559,7 @@
const char* inputColor,
const TransformedCoordsArray& coords,
const TextureSamplerArray& samplers) {
- const GrGradientEffect& ge = fp.cast<GrGradientEffect>();
+ const GrRadialGradient& ge = fp.cast<GrRadialGradient>();
this->emitUniforms(builder, ge);
SkString t("length(");
t.append(builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0));