Index: src/gpu/GrOvalRenderer.cpp |
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp |
index a04aa007116c41f8282a743afe747b7eda7cd748..90b2d8e4f1758ea88a89e472bf1594770e4d79d2 100644 |
--- a/src/gpu/GrOvalRenderer.cpp |
+++ b/src/gpu/GrOvalRenderer.cpp |
@@ -161,8 +161,7 @@ private: |
gpArgs->fPositionVar, |
cgp.fInPosition->fName, |
cgp.fLocalMatrix, |
- args.fTransformsIn, |
- args.fTransformsOut); |
+ args.fFPCoordTransformHandler); |
fragBuilder->codeAppend("float d = length(circleEdge.xy);"); |
fragBuilder->codeAppend("float distanceToOuterEdge = circleEdge.z * (1.0 - d);"); |
@@ -210,14 +209,10 @@ private: |
b->add32(key); |
} |
- void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProcessor&) override {} |
- |
- void setTransformData(const GrPrimitiveProcessor& primProc, |
- const GrGLSLProgramDataManager& pdman, |
- int index, |
- const SkTArray<const GrCoordTransform*, true>& transforms) override { |
+ void setData(const GrGLSLProgramDataManager& pdman, const GrPrimitiveProcessor& primProc, |
+ FPCoordTransformIter&& transformIter) override { |
this->setTransformDataHelper(primProc.cast<CircleGeometryProcessor>().fLocalMatrix, |
- pdman, index, transforms); |
+ pdman, &transformIter); |
} |
private: |
@@ -319,8 +314,7 @@ private: |
gpArgs->fPositionVar, |
egp.fInPosition->fName, |
egp.fLocalMatrix, |
- args.fTransformsIn, |
- args.fTransformsOut); |
+ args.fFPCoordTransformHandler); |
// for outer curve |
fragBuilder->codeAppendf("vec2 scaledOffset = %s*%s.xy;", ellipseOffsets.fsIn(), |
@@ -357,15 +351,10 @@ private: |
b->add32(key); |
} |
- void setData(const GrGLSLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { |
- } |
- |
- void setTransformData(const GrPrimitiveProcessor& primProc, |
- const GrGLSLProgramDataManager& pdman, |
- int index, |
- const SkTArray<const GrCoordTransform*, true>& transforms) override { |
- this->setTransformDataHelper(primProc.cast<EllipseGeometryProcessor>().fLocalMatrix, |
- pdman, index, transforms); |
+ void setData(const GrGLSLProgramDataManager& pdman, const GrPrimitiveProcessor& primProc, |
+ FPCoordTransformIter&& transformIter) override { |
+ const EllipseGeometryProcessor& egp = primProc.cast<EllipseGeometryProcessor>(); |
+ this->setTransformDataHelper(egp.fLocalMatrix, pdman, &transformIter); |
} |
private: |
@@ -472,8 +461,7 @@ private: |
uniformHandler, |
gpArgs->fPositionVar, |
diegp.fInPosition->fName, |
- args.fTransformsIn, |
- args.fTransformsOut); |
+ args.fFPCoordTransformHandler); |
SkAssertResult(fragBuilder->enableFeature( |
GrGLSLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)); |
@@ -525,8 +513,8 @@ private: |
b->add32(key); |
} |
- void setData(const GrGLSLProgramDataManager& pdman, |
- const GrPrimitiveProcessor& gp) override { |
+ void setData(const GrGLSLProgramDataManager& pdman, const GrPrimitiveProcessor& gp, |
+ FPCoordTransformIter&& transformIter) override { |
const DIEllipseGeometryProcessor& diegp = gp.cast<DIEllipseGeometryProcessor>(); |
if (!diegp.fViewMatrix.isIdentity() && !fViewMatrix.cheapEqualTo(diegp.fViewMatrix)) { |
@@ -535,6 +523,7 @@ private: |
GrGLSLGetMatrix<3>(viewMatrix, fViewMatrix); |
pdman.setMatrix3f(fViewMatrixUniform, viewMatrix); |
} |
+ this->setTransformDataHelper(SkMatrix::I(), pdman, &transformIter); |
} |
private: |