Index: src/gpu/gl/GrGLProgram.cpp |
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp |
index 245086db6c7275f359ca032b98bd2775fed2fa19..60d97a296976985ff5149a2d01dffbca2df7a85e 100644 |
--- a/src/gpu/gl/GrGLProgram.cpp |
+++ b/src/gpu/gl/GrGLProgram.cpp |
@@ -30,24 +30,12 @@ |
static SkMatrix get_transform_matrix(const GrPendingFragmentStage& stage, |
int transformIdx, |
const SkMatrix& localMatrix) { |
- const GrCoordTransform& coordTransform = stage.getProcessor()->coordTransform(transformIdx); |
+ const GrCoordTransform& coordTransform = stage.processor()->coordTransform(transformIdx); |
SkMatrix combined; |
+ // We only apply the localmatrix to localcoords |
if (kLocal_GrCoordSet == coordTransform.sourceCoords()) { |
- // If we have explicit local coords or are in device coords then we shouldn't need a coord |
- // change. |
- // TODO shortly we will get rid of coord change matrices entirely, and the PrimProc will |
- // always have a local matrix, often Identity, which can be used to transform coord |
- // transforms. Until we actually do this, we need some way for a PrimProc to say 'use my |
- // matrix' instead of the coord change mechanism. Temporarily, we have overloaded |
- // The identity matrix to be this value, ie if a primproc has an identity matrix for a |
- // local matrix then use the coord change matrix, otherwise use the matrix on the primproc |
- if (localMatrix.isIdentity()) { |
- const SkMatrix& ccm = stage.getCoordChangeMatrix(); |
- combined.setConcat(coordTransform.getMatrix(), ccm); |
- } else { |
- combined.setConcat(coordTransform.getMatrix(), localMatrix); |
- } |
+ combined.setConcat(coordTransform.getMatrix(), localMatrix); |
} else { |
combined = coordTransform.getMatrix(); |
} |
@@ -190,7 +178,7 @@ void GrGLProgram::setFragmentData(const GrOptDrawState& optState) { |
int numProcessors = fFragmentProcessors->fProcs.count(); |
for (int e = 0; e < numProcessors; ++e) { |
const GrPendingFragmentStage& stage = optState.getFragmentStage(e); |
- const GrProcessor& processor = *stage.getProcessor(); |
+ const GrProcessor& processor = *stage.processor(); |
fFragmentProcessors->fProcs[e]->fGLProc->setData(fProgramDataManager, processor); |
const SkMatrix& localMatrix = optState.getPrimitiveProcessor()->localMatrix(); |
this->setTransformData(stage, localMatrix, fFragmentProcessors->fProcs[e]); |
@@ -202,7 +190,7 @@ void GrGLProgram::setTransformData(const GrPendingFragmentStage& processor, |
GrGLInstalledFragProc* ip) { |
SkTArray<GrGLInstalledFragProc::Transform, true>& transforms = ip->fTransforms; |
int numTransforms = transforms.count(); |
- SkASSERT(numTransforms == processor.getProcessor()->numTransforms()); |
+ SkASSERT(numTransforms == processor.processor()->numTransforms()); |
for (int t = 0; t < numTransforms; ++t) { |
SkASSERT(transforms[t].fHandle.isValid()); |
const SkMatrix& matrix = get_transform_matrix(processor, t, localMatrix); |
@@ -309,7 +297,7 @@ void GrGLNvprProgram::setTransformData(const GrPendingFragmentStage& proc, |
GrGLInstalledFragProc* ip) { |
SkTArray<GrGLInstalledFragProc::Transform, true>& transforms = ip->fTransforms; |
int numTransforms = transforms.count(); |
- SkASSERT(numTransforms == proc.getProcessor()->numTransforms()); |
+ SkASSERT(numTransforms == proc.processor()->numTransforms()); |
for (int t = 0; t < numTransforms; ++t) { |
SkASSERT(transforms[t].fHandle.isValid()); |
const SkMatrix& transform = get_transform_matrix(proc, t, localMatrix); |
@@ -354,7 +342,7 @@ GrGLLegacyNvprProgram::setTransformData(const GrPendingFragmentStage& proc, |
GrGLInstalledFragProc* ip) { |
// We've hidden the texcoord index in the first entry of the transforms array for each effect |
int texCoordIndex = ip->fTransforms[0].fHandle.handle(); |
- int numTransforms = proc.getProcessor()->numTransforms(); |
+ int numTransforms = proc.processor()->numTransforms(); |
for (int t = 0; t < numTransforms; ++t) { |
const SkMatrix& transform = get_transform_matrix(proc, t, localMatrix); |
GrGLPathRendering::PathTexGenComponents components = |