Index: src/gpu/GrOvalRenderer.cpp |
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp |
index c6586120a9a902b02dfc4cbc0c0a69c618da690a..f392b909d786f438e1349a2a6e5bffeab4df3b92 100644 |
--- a/src/gpu/GrOvalRenderer.cpp |
+++ b/src/gpu/GrOvalRenderer.cpp |
@@ -7,24 +7,20 @@ |
#include "GrOvalRenderer.h" |
-#include "gl/builders/GrGLProgramBuilder.h" |
-#include "gl/GrGLProcessor.h" |
-#include "gl/GrGLSL.h" |
-#include "gl/GrGLGeometryProcessor.h" |
#include "GrProcessor.h" |
-#include "GrTBackendProcessorFactory.h" |
- |
#include "GrDrawState.h" |
#include "GrDrawTarget.h" |
+#include "GrGeometryProcessor.h" |
#include "GrGpu.h" |
#include "GrInvariantOutput.h" |
- |
#include "SkRRect.h" |
#include "SkStrokeRec.h" |
#include "SkTLazy.h" |
- |
-#include "GrGeometryProcessor.h" |
#include "effects/GrRRectEffect.h" |
+#include "gl/GrGLProcessor.h" |
+#include "gl/GrGLSL.h" |
+#include "gl/GrGLGeometryProcessor.h" |
+#include "gl/builders/GrGLProgramBuilder.h" |
namespace { |
// TODO(joshualitt) add per vertex colors |
@@ -78,23 +74,16 @@ public: |
const GrAttribute* inPosition() const { return fInPosition; } |
const GrAttribute* inCircleEdge() const { return fInCircleEdge; } |
- |
- virtual const GrBackendGeometryProcessorFactory& getFactory() const SK_OVERRIDE { |
- return GrTBackendGeometryProcessorFactory<CircleEdgeEffect>::getInstance(); |
- } |
- |
virtual ~CircleEdgeEffect() {} |
- static const char* Name() { return "CircleEdge"; } |
+ virtual const char* name() const SK_OVERRIDE { return "CircleEdge"; } |
inline bool isStroked() const { return fStroke; } |
class GLProcessor : public GrGLGeometryProcessor { |
public: |
- GLProcessor(const GrBackendProcessorFactory& factory, |
- const GrGeometryProcessor&, |
- const GrBatchTracker&) |
- : INHERITED (factory) {} |
+ GLProcessor(const GrGeometryProcessor&, |
+ const GrBatchTracker&) {} |
virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { |
const CircleEdgeEffect& ce = args.fGP.cast<CircleEdgeEffect>(); |
@@ -140,9 +129,19 @@ public: |
typedef GrGLGeometryProcessor INHERITED; |
}; |
+ virtual void getGLProcessorKey(const GrBatchTracker& bt, |
+ const GrGLCaps& caps, |
+ GrProcessorKeyBuilder* b) const SK_OVERRIDE { |
+ GLProcessor::GenKey(*this, bt, caps, b); |
+ } |
+ |
+ virtual GrGLGeometryProcessor* createGLInstance(const GrBatchTracker& bt) const SK_OVERRIDE { |
+ return SkNEW_ARGS(GLProcessor, (*this, bt)); |
+ } |
private: |
CircleEdgeEffect(bool stroke) { |
+ this->initClassID<CircleEdgeEffect>(); |
fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVertexAttribType)); |
fInCircleEdge = &this->addVertexAttrib(GrAttribute("inCircleEdge", |
kVec4f_GrVertexAttribType)); |
@@ -201,14 +200,9 @@ public: |
} |
} |
- virtual const GrBackendGeometryProcessorFactory& getFactory() const SK_OVERRIDE { |
- return GrTBackendGeometryProcessorFactory<EllipseEdgeEffect>::getInstance(); |
- } |
- |
virtual ~EllipseEdgeEffect() {} |
- static const char* Name() { return "EllipseEdge"; } |
- |
+ virtual const char* name() const SK_OVERRIDE { return "EllipseEdge"; } |
const GrAttribute* inPosition() const { return fInPosition; } |
const GrAttribute* inEllipseOffset() const { return fInEllipseOffset; } |
@@ -218,10 +212,8 @@ public: |
class GLProcessor : public GrGLGeometryProcessor { |
public: |
- GLProcessor(const GrBackendProcessorFactory& factory, |
- const GrGeometryProcessor&, |
- const GrBatchTracker&) |
- : INHERITED (factory) {} |
+ GLProcessor(const GrGeometryProcessor&, |
+ const GrBatchTracker&) {} |
virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { |
const EllipseEdgeEffect& ee = args.fGP.cast<EllipseEdgeEffect>(); |
@@ -290,8 +282,19 @@ public: |
typedef GrGLGeometryProcessor INHERITED; |
}; |
+ virtual void getGLProcessorKey(const GrBatchTracker& bt, |
+ const GrGLCaps& caps, |
+ GrProcessorKeyBuilder* b) const SK_OVERRIDE { |
+ GLProcessor::GenKey(*this, bt, caps, b); |
+ } |
+ |
+ virtual GrGLGeometryProcessor* createGLInstance(const GrBatchTracker& bt) const SK_OVERRIDE { |
+ return SkNEW_ARGS(GLProcessor, (*this, bt)); |
+ } |
+ |
private: |
EllipseEdgeEffect(bool stroke) { |
+ this->initClassID<EllipseEdgeEffect>(); |
fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVertexAttribType)); |
fInEllipseOffset = &this->addVertexAttrib(GrAttribute("inEllipseOffset", |
kVec2f_GrVertexAttribType)); |
@@ -360,13 +363,9 @@ public: |
} |
} |
- virtual const GrBackendGeometryProcessorFactory& getFactory() const SK_OVERRIDE { |
- return GrTBackendGeometryProcessorFactory<DIEllipseEdgeEffect>::getInstance(); |
- } |
- |
virtual ~DIEllipseEdgeEffect() {} |
- static const char* Name() { return "DIEllipseEdge"; } |
+ virtual const char* name() const SK_OVERRIDE { return "DIEllipseEdge"; } |
const GrAttribute* inPosition() const { return fInPosition; } |
const GrAttribute* inEllipseOffsets0() const { return fInEllipseOffsets0; } |
@@ -376,10 +375,8 @@ public: |
class GLProcessor : public GrGLGeometryProcessor { |
public: |
- GLProcessor(const GrBackendProcessorFactory& factory, |
- const GrGeometryProcessor&, |
- const GrBatchTracker&) |
- : INHERITED (factory) {} |
+ GLProcessor(const GrGeometryProcessor&, |
+ const GrBatchTracker&) {} |
virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { |
const DIEllipseEdgeEffect& ee = args.fGP.cast<DIEllipseEdgeEffect>(); |
@@ -463,8 +460,19 @@ public: |
typedef GrGLGeometryProcessor INHERITED; |
}; |
+ virtual void getGLProcessorKey(const GrBatchTracker& bt, |
+ const GrGLCaps& caps, |
+ GrProcessorKeyBuilder* b) const SK_OVERRIDE { |
+ GLProcessor::GenKey(*this, bt, caps, b); |
+ } |
+ |
+ virtual GrGLGeometryProcessor* createGLInstance(const GrBatchTracker& bt) const SK_OVERRIDE { |
+ return SkNEW_ARGS(GLProcessor, (*this, bt)); |
+ } |
+ |
private: |
DIEllipseEdgeEffect(Mode mode) { |
+ this->initClassID<DIEllipseEdgeEffect>(); |
fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVertexAttribType)); |
fInEllipseOffsets0 = &this->addVertexAttrib(GrAttribute("inEllipseOffsets0", |
kVec2f_GrVertexAttribType)); |