diff options
Diffstat (limited to 'src/gpu/GrDrawState.h')
-rw-r--r-- | src/gpu/GrDrawState.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/gpu/GrDrawState.h b/src/gpu/GrDrawState.h index d58d8c64e7..03af7b532f 100644 --- a/src/gpu/GrDrawState.h +++ b/src/gpu/GrDrawState.h @@ -221,7 +221,7 @@ public: const GrGeometryProcessor* setGeometryProcessor(const GrGeometryProcessor* geometryProcessor) { SkASSERT(geometryProcessor); SkASSERT(!this->hasGeometryProcessor()); - fGeometryProcessor.reset(SkRef(geometryProcessor)); + fGeometryProcessor.reset(new GrGeometryStage(geometryProcessor)); this->invalidateOptState(); return geometryProcessor; } @@ -254,7 +254,7 @@ public: } bool hasGeometryProcessor() const { return SkToBool(fGeometryProcessor.get()); } - const GrGeometryProcessor* getGeometryProcessor() const { return fGeometryProcessor.get(); } + const GrGeometryStage* getGeometryProcessor() const { return fGeometryProcessor.get(); } const GrFragmentStage& getColorStage(int idx) const { return fColorStages[idx]; } const GrFragmentStage& getCoverageStage(int idx) const { return fCoverageStages[idx]; } @@ -485,7 +485,8 @@ public: GrDrawState* fDrawState; SkMatrix fViewMatrix; int fNumColorStages; - SkAutoSTArray<8, GrFragmentStage::SavedCoordChange> fSavedCoordChanges; + bool fHasGeometryProcessor; + SkAutoSTArray<8, GrProcessorStage::SavedCoordChange> fSavedCoordChanges; }; /// @} @@ -809,11 +810,10 @@ private: GrBlendCoeff fSrcBlend; GrBlendCoeff fDstBlend; - typedef SkSTArray<4, GrFragmentStage> FragmentStageArray; - typedef GrProgramElementRef<const GrGeometryProcessor> ProgramGeometryProcessor; - ProgramGeometryProcessor fGeometryProcessor; - FragmentStageArray fColorStages; - FragmentStageArray fCoverageStages; + typedef SkSTArray<4, GrFragmentStage> FragmentStageArray; + SkAutoTDelete<GrGeometryStage> fGeometryProcessor; + FragmentStageArray fColorStages; + FragmentStageArray fCoverageStages; uint32_t fHints; |