Index: src/gpu/GrPipeline.h |
diff --git a/src/gpu/GrPipeline.h b/src/gpu/GrPipeline.h |
index ea2ea855dc651d9b33fe832190c4c6fc331d2414..db1415524d91c1068332d8d22500e21e5282f48f 100644 |
--- a/src/gpu/GrPipeline.h |
+++ b/src/gpu/GrPipeline.h |
@@ -9,9 +9,10 @@ |
#define GrPipeline_DEFINED |
#include "GrColor.h" |
+#include "GrFragmentProcessor.h" |
#include "GrGpu.h" |
#include "GrNonAtomicRef.h" |
-#include "GrPendingFragmentStage.h" |
+#include "GrPendingProgramElement.h" |
#include "GrPrimitiveProcessor.h" |
#include "GrProgramDesc.h" |
#include "GrStencil.h" |
@@ -84,22 +85,26 @@ public: |
/// @name GrFragmentProcessors |
- int numColorFragmentStages() const { return fNumColorStages; } |
- int numCoverageFragmentStages() const { return fFragmentStages.count() - fNumColorStages; } |
- int numFragmentStages() const { return fFragmentStages.count(); } |
+ int numColorFragmentProcessors() const { return fNumColorProcessors; } |
+ int numCoverageFragmentProcessors() const { |
+ return fFragmentProcessors.count() - fNumColorProcessors; |
+ } |
+ int numFragmentProcessors() const { return fFragmentProcessors.count(); } |
const GrXferProcessor* getXferProcessor() const { return fXferProcessor.get(); } |
- const GrPendingFragmentStage& getColorStage(int idx) const { |
- SkASSERT(idx < this->numColorFragmentStages()); |
- return fFragmentStages[idx]; |
+ const GrFragmentProcessor& getColorFragmentProcessor(int idx) const { |
+ SkASSERT(idx < this->numColorFragmentProcessors()); |
+ return *fFragmentProcessors[idx].get(); |
} |
- const GrPendingFragmentStage& getCoverageStage(int idx) const { |
- SkASSERT(idx < this->numCoverageFragmentStages()); |
- return fFragmentStages[fNumColorStages + idx]; |
+ |
+ const GrFragmentProcessor& getCoverageFragmentProcessor(int idx) const { |
+ SkASSERT(idx < this->numCoverageFragmentProcessors()); |
+ return *fFragmentProcessors[fNumColorProcessors + idx].get(); |
} |
- const GrPendingFragmentStage& getFragmentStage(int idx) const { |
- return fFragmentStages[idx]; |
+ |
+ const GrFragmentProcessor& getFragmentProcessor(int idx) const { |
+ return *fFragmentProcessors[idx].get(); |
} |
/// @} |
@@ -149,8 +154,8 @@ private: |
GrXferProcessor::OptFlags, |
const GrProcOptInfo& colorPOI, |
const GrProcOptInfo& coveragePOI, |
- int* firstColorStageIdx, |
- int* firstCoverageStageIdx); |
+ int* firstColorProcessorIdx, |
+ int* firstCoverageProcessorIdx); |
/** |
* Calculates the primary and secondary output types of the shader. For certain output types |
@@ -167,7 +172,8 @@ private: |
}; |
typedef GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> RenderTarget; |
- typedef SkSTArray<8, GrPendingFragmentStage> FragmentStageArray; |
+ typedef GrPendingProgramElement<const GrFragmentProcessor> PendingFragmentProcessor; |
+ typedef SkAutoSTArray<8, PendingFragmentProcessor> FragmentProcessorArray; |
typedef GrPendingProgramElement<const GrXferProcessor> ProgramXferProcessor; |
RenderTarget fRenderTarget; |
GrScissorState fScissorState; |
@@ -175,11 +181,11 @@ private: |
GrPipelineBuilder::DrawFace fDrawFace; |
uint32_t fFlags; |
ProgramXferProcessor fXferProcessor; |
- FragmentStageArray fFragmentStages; |
+ FragmentProcessorArray fFragmentProcessors; |
bool fReadsFragPosition; |
- // This function is equivalent to the offset into fFragmentStages where coverage stages begin. |
- int fNumColorStages; |
+ // This value is also the index in fFragmentProcessors where coverage processors begin. |
+ int fNumColorProcessors; |
SkSTArray<8, const GrCoordTransform*, true> fCoordTransforms; |
GrProgramDesc fDesc; |