Index: src/gpu/GrPathRenderer.h |
diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h |
index 1072f69649742872c85390480ed0288c5c81d899..8e2830f86ec873e6dce9242d871a61a92bbca6d1 100644 |
--- a/src/gpu/GrPathRenderer.h |
+++ b/src/gpu/GrPathRenderer.h |
@@ -83,7 +83,7 @@ public: |
bool fAntiAlias; |
// These next two are only used by GrStencilAndCoverPathRenderer |
- bool fIsStencilDisabled; |
+ bool fHasUserStencilSettings; |
bool fIsStencilBufferMSAA; |
void validate() const { |
@@ -156,11 +156,11 @@ public: |
canArgs.fStroke = args.fStroke; |
canArgs.fAntiAlias = args.fAntiAlias; |
- canArgs.fIsStencilDisabled = args.fPipelineBuilder->getStencil().isDisabled(); |
+ canArgs.fHasUserStencilSettings = args.fPipelineBuilder->hasUserStencilSettings(); |
canArgs.fIsStencilBufferMSAA = |
args.fPipelineBuilder->getRenderTarget()->isStencilBufferMultisampled(); |
SkASSERT(this->canDrawPath(canArgs)); |
- if (!args.fPipelineBuilder->getStencil().isDisabled()) { |
+ if (args.fPipelineBuilder->hasUserStencilSettings()) { |
SkASSERT(kNoRestriction_StencilSupport == this->getStencilSupport(*args.fPath)); |
SkASSERT(!args.fStroke->isDashed()); |
SkASSERT(args.fStroke->isFillStyle()); |
@@ -263,14 +263,16 @@ private: |
* kStencilOnly in onGetStencilSupport(). |
*/ |
virtual void onStencilPath(const StencilPathArgs& args) { |
- static constexpr GrStencilSettings kIncrementStencil( |
- kReplace_StencilOp, |
- kReplace_StencilOp, |
- kAlways_StencilFunc, |
- 0xffff, |
- 0xffff, |
- 0xffff); |
- args.fPipelineBuilder->setStencil(kIncrementStencil); |
+ static constexpr GrUserStencilSettings kIncrementStencil( |
+ GrUserStencilSettings::StaticInit< |
+ 0xffff, |
+ GrUserStencilTest::kAlways, |
+ 0xffff, |
+ GrUserStencilOp::kReplace, |
+ GrUserStencilOp::kReplace, |
+ 0xffff>() |
+ ); |
+ args.fPipelineBuilder->setUserStencil(&kIncrementStencil); |
args.fPipelineBuilder->setDisableColorXPFactory(); |
DrawPathArgs drawArgs; |
drawArgs.fTarget = args.fTarget; |