Index: src/gpu/GrPrimitiveProcessor.h |
diff --git a/src/gpu/GrPrimitiveProcessor.h b/src/gpu/GrPrimitiveProcessor.h |
index e5635a823bf4d7feb3710a127a6d6d2126c30d73..4147b74963aaaf988f92398f94ec6eb643262b98 100644 |
--- a/src/gpu/GrPrimitiveProcessor.h |
+++ b/src/gpu/GrPrimitiveProcessor.h |
@@ -72,65 +72,16 @@ |
struct GrInitInvariantOutput; |
/* |
- * This class allows the GrPipeline to communicate information about the pipeline to a |
- * GrPrimitiveProcessor that will be used in conjunction with the GrPipeline. |
+ * This struct allows the GrPipeline to communicate information about the pipeline. Most of this |
+ * is overrides, but some of it is general information. Logically it should live in GrPipeline.h, |
+ * but this is problematic due to circular dependencies. |
*/ |
-class GrPipelineInfo { |
-public: |
- /** Does the pipeline require the GrPrimitiveProcessor's color? */ |
- bool readsColor() const { return SkToBool(kReadsColor_GrPipelineInfoFlag & fFlags); } |
- |
- /** Does the pipeline require the GrPrimitiveProcessor's coverage? */ |
- bool readsCoverage() const { return SkToBool(kReadsCoverage_GrPipelineInfoFlag & fFlags); } |
- |
- /** Does the pipeline require access to (implicit or explicit) local coordinates? */ |
- bool readsLocalCoords() const { |
- return SkToBool(kReadsLocalCoords_GrPipelineInfoFlag & fFlags); |
- } |
- |
- /** Does the pipeline allow the GrPrimitiveProcessor to combine color and coverage into one |
- color output ? */ |
- bool canTweakAlphaForCoverage() const { |
- return SkToBool(kCanTweakAlphaForCoverage_GrPipelineInfoFlag & fFlags); |
- } |
- |
- /** Does the pipeline require the GrPrimitiveProcessor to specify a specific color (and if |
- so get the color)? */ |
- bool getOverrideColorIfSet(GrColor* overrideColor) const { |
- if (SkToBool(kUseOverrideColor_GrPipelineInfoFlag & fFlags)) { |
- SkASSERT(SkToBool(kReadsColor_GrPipelineInfoFlag & fFlags)); |
- if (overrideColor) { |
- *overrideColor = fOverrideColor; |
- } |
- return true; |
- } |
- return false; |
- } |
- |
-private: |
- enum { |
- // If this is not set the primitive processor need not produce a color output |
- kReadsColor_GrPipelineInfoFlag = 0x1, |
- |
- // If this is not set the primitive processor need not produce a coverage output |
- kReadsCoverage_GrPipelineInfoFlag = 0x2, |
- |
- // If this is not set the primitive processor need not produce local coordinates |
- kReadsLocalCoords_GrPipelineInfoFlag = 0x4, |
- |
- // If this flag is set then the primitive processor may produce color*coverage as |
- // its color output (and not output a separate coverage). |
- kCanTweakAlphaForCoverage_GrPipelineInfoFlag = 0x8, |
- |
- // If this flag is set the GrPrimitiveProcessor must produce fOverrideColor as its |
- // output color. If not set fOverrideColor is to be ignored. |
- kUseOverrideColor_GrPipelineInfoFlag = 0x10, |
- }; |
- |
- uint32_t fFlags; |
- GrColor fOverrideColor; |
- |
- friend class GrPipeline; // To initialize this |
+struct GrPipelineInfo { |
+ bool fColorIgnored; |
+ bool fCoverageIgnored; |
+ GrColor fOverrideColor; |
+ bool fUsesLocalCoords; |
+ bool fCanTweakAlphaForCoverage; |
}; |
/* |