| Index: src/gpu/gl/GrGLProgramDesc.cpp
|
| diff --git a/src/gpu/gl/GrGLProgramDesc.cpp b/src/gpu/gl/GrGLProgramDesc.cpp
|
| index b6029fe4ee193befd5e1d426c0b4e01dcc80e95e..4039eaf95cd858ad4493606ced84007e31da550d 100644
|
| --- a/src/gpu/gl/GrGLProgramDesc.cpp
|
| +++ b/src/gpu/gl/GrGLProgramDesc.cpp
|
| @@ -37,7 +37,7 @@ inline GrGLEffect::EffectKey get_key_and_update_stats(const GrEffectStage& stage
|
| }
|
| }
|
| void GrGLProgramDesc::Build(const GrDrawState& drawState,
|
| - bool isPoints,
|
| + GrGpu::DrawType drawType,
|
| GrDrawState::BlendOptFlags blendOpts,
|
| GrBlendCoeff srcCoeff,
|
| GrBlendCoeff dstCoeff,
|
| @@ -113,7 +113,10 @@ void GrGLProgramDesc::Build(const GrDrawState& drawState,
|
| int currEffectKey = 0;
|
| bool readsDst = false;
|
| bool readFragPosition = false;
|
| - bool hasVertexCode = false;
|
| + // We use vertexshader-less shader programs only when drawing paths.
|
| + bool hasVertexCode = !(GrGpu::kDrawPath_DrawType == drawType ||
|
| + GrGpu::kDrawPaths_DrawType == drawType);
|
| +
|
| if (!skipColor) {
|
| for (int s = firstEffectiveColorStage; s < drawState.numColorStages(); ++s) {
|
| effectKeys[currEffectKey++] =
|
| @@ -132,7 +135,7 @@ void GrGLProgramDesc::Build(const GrDrawState& drawState,
|
| }
|
|
|
| header->fHasVertexCode = hasVertexCode || requiresLocalCoordAttrib;
|
| - header->fEmitsPointSize = isPoints;
|
| + header->fEmitsPointSize = GrGpu::kDrawPoints_DrawType == drawType;
|
|
|
| // Currently the experimental GS will only work with triangle prims (and it doesn't do anything
|
| // other than pass through values from the VS to the FS anyway).
|
|
|