Index: src/gpu/GrDrawState.h |
diff --git a/src/gpu/GrDrawState.h b/src/gpu/GrDrawState.h |
index 00bec9f7c24f45e9088440bd6cdd1614e1d8764d..357b0a6540d0336830cde4dc5923e2d4dc5ef6a0 100644 |
--- a/src/gpu/GrDrawState.h |
+++ b/src/gpu/GrDrawState.h |
@@ -185,6 +185,14 @@ public: |
/// the color / coverage distinction. |
//// |
+ const GrEffect* setGeometryProcessor(const GrEffect* effect, int attr0 = -1, int attr1 = -1) { |
+ SkASSERT(NULL != effect); |
+ SkASSERT(!this->hasGeometryProcessor()); |
+ fGeometryProcessor.reset(new GrEffectStage(effect, attr0, attr1)); |
+ this->invalidateBlendOptFlags(); |
+ return effect; |
+ } |
+ |
const GrEffect* addColorEffect(const GrEffect* effect, int attr0 = -1, int attr1 = -1) { |
SkASSERT(NULL != effect); |
SkNEW_APPEND_TO_TARRAY(&fColorStages, GrEffectStage, (effect, attr0, attr1)); |
@@ -242,6 +250,7 @@ public: |
private: |
GrDrawState* fDrawState; |
+ SkAutoTDelete<GrEffectStage> fGeometryProcessor; |
int fColorEffectCnt; |
int fCoverageEffectCnt; |
}; |
@@ -364,6 +373,7 @@ public: |
GrDrawState* fDrawState; |
SkMatrix fViewMatrix; |
int fNumColorStages; |
+ bool fHasGeometryProcessor; |
SkAutoSTArray<8, GrEffectStage::SavedCoordChange> fSavedCoordChanges; |
}; |