| Index: src/gpu/GrDrawState.h
|
| diff --git a/src/gpu/GrDrawState.h b/src/gpu/GrDrawState.h
|
| index ec0ccade3746dec09bb10201b03eec04c903b38d..b6d26d524e11eadb0f741d1bad7320bdfb0bb590 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;
|
| };
|
|
|
|
|