Index: src/gpu/GrOptDrawState.cpp |
diff --git a/src/gpu/GrOptDrawState.cpp b/src/gpu/GrOptDrawState.cpp |
index a9d8ec48881c1fc77c7d8f6b86bd2f1e72e75f65..c764b432a17abcff1e4dc6f0b25ce13ada6ff0eb 100644 |
--- a/src/gpu/GrOptDrawState.cpp |
+++ b/src/gpu/GrOptDrawState.cpp |
@@ -99,39 +99,23 @@ GrOptDrawState* GrOptDrawState::Create(const GrDrawState& drawState, |
GrGpu* gpu, |
const GrDeviceCoordTexture* dstCopy, |
GrGpu::DrawType drawType) { |
- const GrDrawTargetCaps& caps = *gpu->caps(); |
- if (NULL == drawState.fCachedOptState || caps.getUniqueID() != drawState.fCachedCapsID) { |
- GrBlendCoeff srcCoeff; |
- GrBlendCoeff dstCoeff; |
- BlendOptFlags blendFlags = (BlendOptFlags) drawState.getBlendOpts(false, |
- &srcCoeff, |
- &dstCoeff); |
- |
- // If our blend coeffs are set to 0,1 we know we will not end up drawing unless we are |
- // stenciling. When path rendering the stencil settings are not always set on the draw state |
- // so we must check the draw type. In cases where we will skip drawing we simply return a |
- // null GrOptDrawState. |
- if (kZero_GrBlendCoeff == srcCoeff && kOne_GrBlendCoeff == dstCoeff && |
- !drawState.getStencil().doesWrite() && GrGpu::kStencilPath_DrawType != drawType) { |
- return NULL; |
- } |
- |
- drawState.fCachedOptState = SkNEW_ARGS(GrOptDrawState, (drawState, blendFlags, srcCoeff, |
- dstCoeff, gpu, dstCopy, drawType)); |
- drawState.fCachedCapsID = caps.getUniqueID(); |
- } else { |
-#ifdef SK_DEBUG |
- GrBlendCoeff srcCoeff; |
- GrBlendCoeff dstCoeff; |
- BlendOptFlags blendFlags = (BlendOptFlags) drawState.getBlendOpts(false, |
- &srcCoeff, |
- &dstCoeff); |
- SkASSERT(GrOptDrawState(drawState, blendFlags, srcCoeff, dstCoeff, gpu, dstCopy, |
- drawType) == *drawState.fCachedOptState); |
-#endif |
+ GrBlendCoeff srcCoeff; |
+ GrBlendCoeff dstCoeff; |
+ BlendOptFlags blendFlags = (BlendOptFlags) drawState.getBlendOpts(false, |
+ &srcCoeff, |
+ &dstCoeff); |
+ |
+ // If our blend coeffs are set to 0,1 we know we will not end up drawing unless we are |
+ // stenciling. When path rendering the stencil settings are not always set on the draw state |
+ // so we must check the draw type. In cases where we will skip drawing we simply return a |
+ // null GrOptDrawState. |
+ if (kZero_GrBlendCoeff == srcCoeff && kOne_GrBlendCoeff == dstCoeff && |
+ !drawState.getStencil().doesWrite() && GrGpu::kStencilPath_DrawType != drawType) { |
+ return NULL; |
} |
- drawState.fCachedOptState->ref(); |
- return drawState.fCachedOptState; |
+ |
+ return SkNEW_ARGS(GrOptDrawState, (drawState, blendFlags, srcCoeff, |
+ dstCoeff, gpu, dstCopy, drawType)); |
} |
void GrOptDrawState::setOutputStateInfo(const GrDrawState& ds, |