Index: src/gpu/gl/GrGLProgram.cpp |
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp |
index f34fce43b401fb28ccc3b59c22bf41baf2e2a896..a87aa5ad5f5aac165bb912b17c1d85880935d9db 100644 |
--- a/src/gpu/gl/GrGLProgram.cpp |
+++ b/src/gpu/gl/GrGLProgram.cpp |
@@ -70,8 +70,7 @@ |
// we set the textures, and uniforms for installed processors in a generic way, but subclasses |
// of GLProgram determine how to set coord transforms |
int nextSamplerIdx = 0; |
- fGeometryProcessor->setData(fProgramDataManager, primProc, |
- GrFragmentProcessor::CoordTransformIter(pipeline)); |
+ fGeometryProcessor->setData(fProgramDataManager, primProc); |
this->bindTextures(primProc, pipeline.getAllowSRGBInputs(), &nextSamplerIdx); |
this->setFragmentData(primProc, pipeline, &nextSamplerIdx); |
@@ -108,10 +107,16 @@ |
for (int i = 0; i < numProcessors; ++i) { |
const GrFragmentProcessor& processor = pipeline.getFragmentProcessor(i); |
fFragmentProcessors[i]->setData(fProgramDataManager, processor); |
+ this->setTransformData(primProc, processor, i); |
this->bindTextures(processor, pipeline.getAllowSRGBInputs(), nextSamplerIdx); |
} |
} |
- |
+void GrGLProgram::setTransformData(const GrPrimitiveProcessor& primProc, |
+ const GrFragmentProcessor& processor, |
+ int index) { |
+ fGeometryProcessor->setTransformData(primProc, fProgramDataManager, index, |
+ processor.coordTransforms()); |
+} |
void GrGLProgram::setRenderTargetState(const GrPrimitiveProcessor& primProc, |
const GrPipeline& pipeline) { |