Index: src/gpu/GrDrawState.h |
diff --git a/src/gpu/GrDrawState.h b/src/gpu/GrDrawState.h |
index 8d7ec9891e75c12f18ad7c64e5a362e967426bbd..7d3c1e9843220e9369859fbca693b5377f96b7a9 100644 |
--- a/src/gpu/GrDrawState.h |
+++ b/src/gpu/GrDrawState.h |
@@ -19,6 +19,7 @@ |
#include "GrStencil.h" |
#include "GrXferProcessor.h" |
#include "SkMatrix.h" |
+#include "effects/GrCoverageSetOpXP.h" |
#include "effects/GrPorterDuffXferProcessor.h" |
#include "effects/GrSimpleTextureEffect.h" |
@@ -83,11 +84,6 @@ public: |
bool canUseFracCoveragePrimProc(GrColor color, const GrDrawTargetCaps& caps) const; |
/** |
- * Determines whether the output coverage is guaranteed to be one for all pixels hit by a draw. |
- */ |
- bool hasSolidCoverage(const GrPrimitiveProcessor*) const; |
- |
- /** |
* This function returns true if the render target destination pixel values will be read for |
* blending during draw. |
*/ |
@@ -144,6 +140,10 @@ public: |
fXPFactory.reset(GrPorterDuffXPFactory::Create(src, dst)); |
} |
+ void setCoverageSetOpXPFactory(SkRegion::Op regionOp, bool invertCoverage = false) { |
+ fXPFactory.reset(GrCoverageSetOpXPFactory::Create(regionOp, invertCoverage)); |
+ } |
+ |
const GrFragmentProcessor* addColorProcessor(const GrFragmentProcessor* effect) { |
SkASSERT(effect); |
SkNEW_APPEND_TO_TARRAY(&fColorStages, GrFragmentStage, (effect)); |
@@ -416,21 +416,11 @@ public: |
*/ |
kNoColorWrites_StateBit = 0x08, |
- /** |
- * Usually coverage is applied after color blending. The color is blended using the coeffs |
- * specified by setBlendFunc(). The blended color is then combined with dst using coeffs |
- * of src_coverage, 1-src_coverage. Sometimes we are explicitly drawing a coverage mask. In |
- * this case there is no distinction between coverage and color and the caller needs direct |
- * control over the blend coeffs. When set, there will be a single blend step controlled by |
- * setBlendFunc() which will use coverage*color as the src color. |
- */ |
- kCoverageDrawing_StateBit = 0x10, |
- kLast_StateBit = kCoverageDrawing_StateBit, |
+ kLast_StateBit = kNoColorWrites_StateBit, |
}; |
bool isClipState() const { return 0 != (fFlagBits & kClip_StateBit); } |
bool isColorWriteDisabled() const { return 0 != (fFlagBits & kNoColorWrites_StateBit); } |
- bool isCoverageDrawing() const { return 0 != (fFlagBits & kCoverageDrawing_StateBit); } |
bool isDither() const { return 0 != (fFlagBits & kDither_StateBit); } |
bool isHWAntialias() const { return 0 != (fFlagBits & kHWAntialias_StateBit); } |