Index: src/gpu/gl/GrGLProgram.cpp |
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp |
index 435d0cdb02c988255244c53fc343ebf085fc44eb..53e278a4fde0b540a206c5462f0702eea7b06197 100644 |
--- a/src/gpu/gl/GrGLProgram.cpp |
+++ b/src/gpu/gl/GrGLProgram.cpp |
@@ -93,7 +93,8 @@ void GrGLProgram::initSamplerUniforms() { |
/////////////////////////////////////////////////////////////////////////////// |
-void GrGLProgram::setData(GrDrawState::BlendOptFlags blendOpts, |
+void GrGLProgram::setData(GrGpu::DrawType drawType, |
+ GrDrawState::BlendOptFlags blendOpts, |
const GrEffectStage* colorStages[], |
const GrEffectStage* coverageStages[], |
const GrDeviceCoordTexture* dstCopy, |
@@ -115,7 +116,7 @@ void GrGLProgram::setData(GrDrawState::BlendOptFlags blendOpts, |
this->setColor(drawState, color, sharedState); |
this->setCoverage(drawState, coverage, sharedState); |
- this->setMatrixAndRenderTargetHeight(drawState); |
+ this->setMatrixAndRenderTargetHeight(drawType, drawState); |
if (NULL != dstCopy) { |
if (fBuilderOutput.fUniformHandles.fDstCopyTopLeftUni.isValid()) { |
@@ -138,8 +139,8 @@ void GrGLProgram::setData(GrDrawState::BlendOptFlags blendOpts, |
SkASSERT(!fBuilderOutput.fUniformHandles.fDstCopySamplerUni.isValid()); |
} |
- fBuilderOutput.fColorEffects->setData(fGpu, *fUniformManager, colorStages); |
- fBuilderOutput.fCoverageEffects->setData(fGpu, *fUniformManager, coverageStages); |
+ fBuilderOutput.fColorEffects->setData(fGpu, drawType, *fUniformManager, colorStages); |
+ fBuilderOutput.fCoverageEffects->setData(fGpu, drawType, *fUniformManager, coverageStages); |
// PathTexGen state applies to the the fixed function vertex shader. For |
@@ -229,7 +230,8 @@ void GrGLProgram::setCoverage(const GrDrawState& drawState, |
} |
} |
-void GrGLProgram::setMatrixAndRenderTargetHeight(const GrDrawState& drawState) { |
+void GrGLProgram::setMatrixAndRenderTargetHeight(GrGpu::DrawType drawType, |
+ const GrDrawState& drawState) { |
const GrRenderTarget* rt = drawState.getRenderTarget(); |
SkISize size; |
size.set(rt->width(), rt->height()); |
@@ -241,9 +243,7 @@ void GrGLProgram::setMatrixAndRenderTargetHeight(const GrDrawState& drawState) { |
SkIntToScalar(size.fHeight)); |
} |
- if (!fBuilderOutput.fHasVertexShader) { |
- SkASSERT(!fBuilderOutput.fUniformHandles.fViewMatrixUni.isValid()); |
- SkASSERT(!fBuilderOutput.fUniformHandles.fRTAdjustmentUni.isValid()); |
+ if (GrGpu::IsPathRenderingDrawType(drawType)) { |
fGpu->setProjectionMatrix(drawState.getViewMatrix(), size, rt->origin()); |
} else if (fMatrixState.fRenderTargetOrigin != rt->origin() || |
fMatrixState.fRenderTargetSize != size || |