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