| 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;
|
|
|