| 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;
|
| };
|
|
|
| /*
|
|
|