| 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 ||
|
|
|