Index: src/gpu/GrOvalRenderer.cpp |
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp |
index 89e35a1d707d49160005db46d0d289b66fc7bfad..77ad7c6e2d31debee48db9930a7e31c0b89b3b94 100644 |
--- a/src/gpu/GrOvalRenderer.cpp |
+++ b/src/gpu/GrOvalRenderer.cpp |
@@ -85,15 +85,21 @@ public: |
bool implementsDistanceVector() const override { return true; }; |
- const Attribute* inPosition() const { return fInPosition; } |
- const Attribute* inColor() const { return fInColor; } |
- const Attribute* inCircleEdge() const { return fInCircleEdge; } |
const SkMatrix& localMatrix() const { return fLocalMatrix; } |
bsalomon
2016/08/17 15:02:39
This localMatrix getter is still needed by a templ
|
virtual ~CircleGeometryProcessor() {} |
const char* name() const override { return "CircleEdge"; } |
+ void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { |
+ GLSLProcessor::GenKey(*this, caps, b); |
+ } |
+ |
+ GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const override { |
+ return new GLSLProcessor(); |
+ } |
+ |
+private: |
class GLSLProcessor : public GrGLSLGeometryProcessor { |
public: |
GLSLProcessor() {} |
@@ -109,22 +115,22 @@ public: |
GrGLSLVertToFrag v(kVec4f_GrSLType); |
varyingHandler->addVarying("CircleEdge", &v); |
- vertBuilder->codeAppendf("%s = %s;", v.vsOut(), cgp.inCircleEdge()->fName); |
+ vertBuilder->codeAppendf("%s = %s;", v.vsOut(), cgp.fInCircleEdge->fName); |
GrGLSLPPFragmentBuilder* fragBuilder = args.fFragBuilder; |
// setup pass through color |
- varyingHandler->addPassThroughAttribute(cgp.inColor(), args.fOutputColor); |
+ varyingHandler->addPassThroughAttribute(cgp.fInColor, args.fOutputColor); |
// Setup position |
- this->setupPosition(vertBuilder, gpArgs, cgp.inPosition()->fName); |
+ this->setupPosition(vertBuilder, gpArgs, cgp.fInPosition->fName); |
// emit transforms |
this->emitTransforms(vertBuilder, |
varyingHandler, |
uniformHandler, |
gpArgs->fPositionVar, |
- cgp.inPosition()->fName, |
- cgp.localMatrix(), |
+ cgp.fInPosition->fName, |
+ cgp.fLocalMatrix, |
args.fTransformsIn, |
args.fTransformsOut); |
@@ -155,7 +161,7 @@ public: |
GrProcessorKeyBuilder* b) { |
const CircleGeometryProcessor& cgp = gp.cast<CircleGeometryProcessor>(); |
uint16_t key = cgp.fStroke ? 0x1 : 0x0; |
- key |= cgp.localMatrix().hasPerspective() ? 0x2 : 0x0; |
+ key |= cgp.fLocalMatrix.hasPerspective() ? 0x2 : 0x0; |
b->add32(key); |
} |
@@ -175,15 +181,6 @@ public: |
typedef GrGLSLGeometryProcessor INHERITED; |
}; |
- void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { |
- GLSLProcessor::GenKey(*this, caps, b); |
- } |
- |
- GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const override { |
- return new GLSLProcessor(); |
- } |
- |
-private: |
SkMatrix fLocalMatrix; |
const Attribute* fInPosition; |
const Attribute* fInColor; |
@@ -230,12 +227,17 @@ public: |
const char* name() const override { return "EllipseEdge"; } |
- const Attribute* inPosition() const { return fInPosition; } |
- const Attribute* inColor() const { return fInColor; } |
- const Attribute* inEllipseOffset() const { return fInEllipseOffset; } |
- const Attribute* inEllipseRadii() const { return fInEllipseRadii; } |
const SkMatrix& localMatrix() const { return fLocalMatrix; } |
+ void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { |
+ GLSLProcessor::GenKey(*this, caps, b); |
+ } |
+ |
+ GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const override { |
+ return new GLSLProcessor(); |
+ } |
+ |
+private: |
class GLSLProcessor : public GrGLSLGeometryProcessor { |
public: |
GLSLProcessor() {} |
@@ -252,27 +254,27 @@ public: |
GrGLSLVertToFrag ellipseOffsets(kVec2f_GrSLType); |
varyingHandler->addVarying("EllipseOffsets", &ellipseOffsets); |
vertBuilder->codeAppendf("%s = %s;", ellipseOffsets.vsOut(), |
- egp.inEllipseOffset()->fName); |
+ egp.fInEllipseOffset->fName); |
GrGLSLVertToFrag ellipseRadii(kVec4f_GrSLType); |
varyingHandler->addVarying("EllipseRadii", &ellipseRadii); |
vertBuilder->codeAppendf("%s = %s;", ellipseRadii.vsOut(), |
- egp.inEllipseRadii()->fName); |
+ egp.fInEllipseRadii->fName); |
GrGLSLPPFragmentBuilder* fragBuilder = args.fFragBuilder; |
// setup pass through color |
- varyingHandler->addPassThroughAttribute(egp.inColor(), args.fOutputColor); |
+ varyingHandler->addPassThroughAttribute(egp.fInColor, args.fOutputColor); |
// Setup position |
- this->setupPosition(vertBuilder, gpArgs, egp.inPosition()->fName); |
+ this->setupPosition(vertBuilder, gpArgs, egp.fInPosition->fName); |
// emit transforms |
this->emitTransforms(vertBuilder, |
varyingHandler, |
uniformHandler, |
gpArgs->fPositionVar, |
- egp.inPosition()->fName, |
- egp.localMatrix(), |
+ egp.fInPosition->fName, |
+ egp.fLocalMatrix, |
args.fTransformsIn, |
args.fTransformsOut); |
@@ -307,7 +309,7 @@ public: |
GrProcessorKeyBuilder* b) { |
const EllipseGeometryProcessor& egp = gp.cast<EllipseGeometryProcessor>(); |
uint16_t key = egp.fStroke ? 0x1 : 0x0; |
- key |= egp.localMatrix().hasPerspective() ? 0x2 : 0x0; |
+ key |= egp.fLocalMatrix.hasPerspective() ? 0x2 : 0x0; |
b->add32(key); |
} |
@@ -326,15 +328,6 @@ public: |
typedef GrGLSLGeometryProcessor INHERITED; |
}; |
- void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { |
- GLSLProcessor::GenKey(*this, caps, b); |
- } |
- |
- GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const override { |
- return new GLSLProcessor(); |
- } |
- |
-private: |
const Attribute* fInPosition; |
const Attribute* fInColor; |
const Attribute* fInEllipseOffset; |
@@ -387,12 +380,15 @@ public: |
const char* name() const override { return "DIEllipseEdge"; } |
- const Attribute* inPosition() const { return fInPosition; } |
- const Attribute* inColor() const { return fInColor; } |
- const Attribute* inEllipseOffsets0() const { return fInEllipseOffsets0; } |
- const Attribute* inEllipseOffsets1() const { return fInEllipseOffsets1; } |
- const SkMatrix& viewMatrix() const { return fViewMatrix; } |
+ void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { |
+ GLSLProcessor::GenKey(*this, caps, b); |
+ } |
+ |
+ GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const override { |
+ return new GLSLProcessor(); |
+ } |
+private: |
class GLSLProcessor : public GrGLSLGeometryProcessor { |
public: |
GLSLProcessor() |
@@ -410,22 +406,22 @@ public: |
GrGLSLVertToFrag offsets0(kVec2f_GrSLType); |
varyingHandler->addVarying("EllipseOffsets0", &offsets0); |
vertBuilder->codeAppendf("%s = %s;", offsets0.vsOut(), |
- diegp.inEllipseOffsets0()->fName); |
+ diegp.fInEllipseOffsets0->fName); |
GrGLSLVertToFrag offsets1(kVec2f_GrSLType); |
varyingHandler->addVarying("EllipseOffsets1", &offsets1); |
vertBuilder->codeAppendf("%s = %s;", offsets1.vsOut(), |
- diegp.inEllipseOffsets1()->fName); |
+ diegp.fInEllipseOffsets1->fName); |
GrGLSLPPFragmentBuilder* fragBuilder = args.fFragBuilder; |
- varyingHandler->addPassThroughAttribute(diegp.inColor(), args.fOutputColor); |
+ varyingHandler->addPassThroughAttribute(diegp.fInColor, args.fOutputColor); |
// Setup position |
this->setupPosition(vertBuilder, |
uniformHandler, |
gpArgs, |
- diegp.inPosition()->fName, |
- diegp.viewMatrix(), |
+ diegp.fInPosition->fName, |
+ diegp.fViewMatrix, |
&fViewMatrixUniform); |
// emit transforms |
@@ -433,7 +429,7 @@ public: |
varyingHandler, |
uniformHandler, |
gpArgs->fPositionVar, |
- diegp.inPosition()->fName, |
+ diegp.fInPosition->fName, |
args.fTransformsIn, |
args.fTransformsOut); |
@@ -483,7 +479,7 @@ public: |
GrProcessorKeyBuilder* b) { |
const DIEllipseGeometryProcessor& diegp = gp.cast<DIEllipseGeometryProcessor>(); |
uint16_t key = static_cast<uint16_t>(diegp.fStyle); |
- key |= ComputePosKey(diegp.viewMatrix()) << 10; |
+ key |= ComputePosKey(diegp.fViewMatrix) << 10; |
b->add32(key); |
} |
@@ -491,8 +487,8 @@ public: |
const GrPrimitiveProcessor& gp) override { |
const DIEllipseGeometryProcessor& diegp = gp.cast<DIEllipseGeometryProcessor>(); |
- if (!diegp.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(diegp.viewMatrix())) { |
- fViewMatrix = diegp.viewMatrix(); |
+ if (!diegp.fViewMatrix.isIdentity() && !fViewMatrix.cheapEqualTo(diegp.fViewMatrix)) { |
+ fViewMatrix = diegp.fViewMatrix; |
float viewMatrix[3 * 3]; |
GrGLSLGetMatrix<3>(viewMatrix, fViewMatrix); |
pdman.setMatrix3f(fViewMatrixUniform, viewMatrix); |
@@ -506,15 +502,6 @@ public: |
typedef GrGLSLGeometryProcessor INHERITED; |
}; |
- void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { |
- GLSLProcessor::GenKey(*this, caps, b); |
- } |
- |
- GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const override { |
- return new GLSLProcessor(); |
- } |
- |
-private: |
const Attribute* fInPosition; |
const Attribute* fInColor; |
const Attribute* fInEllipseOffsets0; |