Chromium Code Reviews| Index: src/gpu/gl/GrGLProgramDesc.cpp |
| diff --git a/src/gpu/gl/GrGLProgramDesc.cpp b/src/gpu/gl/GrGLProgramDesc.cpp |
| index ea380107d71c2c0f84fe8ba101aa3e69dba70263..f38b72aa8f1dc4ae16b9625e2db92b4b2b4bc1d3 100644 |
| --- a/src/gpu/gl/GrGLProgramDesc.cpp |
| +++ b/src/gpu/gl/GrGLProgramDesc.cpp |
| @@ -15,25 +15,11 @@ |
| #include "SkChecksum.h" |
| -bool GrGLProgramDesc::GetEffectKeyAndUpdateStats(const GrEffectStage& stage, |
| - const GrGLCaps& caps, |
| - bool useExplicitLocalCoords, |
| - GrEffectKeyBuilder* b, |
| - uint16_t* effectKeySize, |
| - bool* setTrueIfReadsDst, |
| - bool* setTrueIfReadsPos, |
| - bool* setTrueIfRequiresVertexShader) { |
| +bool GrGLProgramDesc::GetEffectKey(const GrEffectStage& stage, const GrGLCaps& caps, |
| + bool useExplicitLocalCoords, GrEffectKeyBuilder* b, |
| + uint16_t* effectKeySize) { |
| const GrBackendEffectFactory& factory = stage.getEffect()->getFactory(); |
| GrDrawEffect drawEffect(stage, useExplicitLocalCoords); |
| - if (stage.getEffect()->willReadDstColor()) { |
| - *setTrueIfReadsDst = true; |
| - } |
| - if (stage.getEffect()->willReadFragmentPosition()) { |
| - *setTrueIfReadsPos = true; |
| - } |
| - if (stage.getEffect()->requiresVertexShader()) { |
| - *setTrueIfRequiresVertexShader = true; |
| - } |
| factory.getGLEffectKey(drawEffect, caps, b); |
| size_t size = b->size(); |
| if (size > SK_MaxU16) { |
| @@ -73,11 +59,12 @@ bool GrGLProgramDesc::Build(const GrOptDrawState& optState, |
| bool requiresLocalCoordAttrib = optState.numTotalStages() > 0 && |
| optState.hasLocalCoordAttribute(); |
| - bool readsDst = false; |
| - bool readFragPosition = false; |
| + bool readsDst = optState.readsDst(); |
|
bsalomon
2014/09/05 15:27:55
remove the vars?
egdaniel
2014/09/08 19:19:49
removed
|
| + bool readFragPosition = optState.readsFragPosition(); |
| // Provide option for shader programs without vertex shader only when drawing paths. |
| - bool requiresVertexShader = !GrGpu::IsPathRenderingDrawType(drawType); |
| + bool requiresVertexShader = |
|
bsalomon
2014/09/05 15:27:55
I wonder whether this should just be an assert...
egdaniel
2014/09/08 19:19:49
Added assert below
On 2014/09/05 15:27:55, bsalom
|
| + !GrGpu::IsPathRenderingDrawType(drawType) ? true : optState.requiresVertexShader(); |
| int numStages = optState.numTotalStages(); |
| @@ -96,11 +83,10 @@ bool GrGLProgramDesc::Build(const GrOptDrawState& optState, |
| GrEffectKeyBuilder b(&desc->fKey); |
| uint16_t effectKeySize; |
| uint32_t effectOffset = desc->fKey.count(); |
| - effectKeySuccess |= GetEffectKeyAndUpdateStats( |
| + effectKeySuccess |= GetEffectKey( |
| optState.getColorStage(s), gpu->glCaps(), |
| requiresLocalCoordAttrib, &b, |
| - &effectKeySize, &readsDst, |
| - &readFragPosition, &requiresVertexShader); |
| + &effectKeySize); |
| effectKeySuccess |= (effectOffset <= SK_MaxU16); |
| offsetAndSize[0] = SkToU16(effectOffset); |
| @@ -115,11 +101,10 @@ bool GrGLProgramDesc::Build(const GrOptDrawState& optState, |
| GrEffectKeyBuilder b(&desc->fKey); |
| uint16_t effectKeySize; |
| uint32_t effectOffset = desc->fKey.count(); |
| - effectKeySuccess |= GetEffectKeyAndUpdateStats( |
| + effectKeySuccess |= GetEffectKey( |
| optState.getCoverageStage(s), gpu->glCaps(), |
| requiresLocalCoordAttrib, &b, |
| - &effectKeySize, &readsDst, |
| - &readFragPosition, &requiresVertexShader); |
| + &effectKeySize); |
| effectKeySuccess |= (effectOffset <= SK_MaxU16); |
| offsetAndSize[0] = SkToU16(effectOffset); |