| Index: src/gpu/GrDrawContext.cpp
|
| diff --git a/src/gpu/GrDrawContext.cpp b/src/gpu/GrDrawContext.cpp
|
| index 6c80f52bba5c9260e815fed142a708bd1e0708d1..af405a94b8b081e24bb0e8245e09f7e7d45998e2 100644
|
| --- a/src/gpu/GrDrawContext.cpp
|
| +++ b/src/gpu/GrDrawContext.cpp
|
| @@ -372,7 +372,7 @@ void GrDrawContext::drawRect(const GrClip& clip,
|
| }
|
|
|
| bool GrDrawContextPriv::drawAndStencilRect(const SkIRect* scissorRect,
|
| - const GrStencilSettings& ss,
|
| + const GrUserStencilSettings* ss,
|
| SkRegion::Op op,
|
| bool invert,
|
| bool doAA,
|
| @@ -394,7 +394,7 @@ bool GrDrawContextPriv::drawAndStencilRect(const SkIRect* scissorRect,
|
| GrPipelineBuilder pipelineBuilder(paint,
|
| fDrawContext->accessRenderTarget(),
|
| GrClip::WideOpen());
|
| - pipelineBuilder.setStencil(ss);
|
| + pipelineBuilder.setUserStencil(ss);
|
|
|
| fDrawContext->getDrawTarget()->drawBatch(pipelineBuilder, batch, scissorRect);
|
| return true;
|
| @@ -856,7 +856,7 @@ void GrDrawContext::drawPath(const GrClip& clip,
|
| }
|
|
|
| bool GrDrawContextPriv::drawAndStencilPath(const SkIRect* scissorRect,
|
| - const GrStencilSettings& ss,
|
| + const GrUserStencilSettings* ss,
|
| SkRegion::Op op,
|
| bool invert,
|
| bool doAA,
|
| @@ -881,7 +881,7 @@ bool GrDrawContextPriv::drawAndStencilPath(const SkIRect* scissorRect,
|
| // aa. If we have some future driver-mojo path AA that can do the right
|
| // thing WRT to the blend then we'll need some query on the PR.
|
| bool useCoverageAA = doAA && !fDrawContext->fRenderTarget->isUnifiedMultisampled();
|
| - bool isStencilDisabled = true;
|
| + bool hasUserStencilSettings = (&GrUserStencilSettings::kUnused != ss);
|
| bool isStencilBufferMSAA = fDrawContext->fRenderTarget->isStencilBufferMultisampled();
|
|
|
| const GrPathRendererChain::DrawType type =
|
| @@ -894,7 +894,7 @@ bool GrDrawContextPriv::drawAndStencilPath(const SkIRect* scissorRect,
|
| canDrawArgs.fPath = &path;
|
| canDrawArgs.fStroke = &GrStrokeInfo::FillInfo();
|
| canDrawArgs.fAntiAlias = useCoverageAA;
|
| - canDrawArgs.fIsStencilDisabled = isStencilDisabled;
|
| + canDrawArgs.fHasUserStencilSettings = hasUserStencilSettings;
|
| canDrawArgs.fIsStencilBufferMSAA = isStencilBufferMSAA;
|
|
|
| // Don't allow the SW renderer
|
| @@ -914,7 +914,7 @@ bool GrDrawContextPriv::drawAndStencilPath(const SkIRect* scissorRect,
|
| }
|
|
|
| GrPipelineBuilder pipelineBuilder(paint, fDrawContext->accessRenderTarget(), clip);
|
| - pipelineBuilder.setStencil(ss);
|
| + pipelineBuilder.setUserStencil(ss);
|
|
|
| GrPathRenderer::DrawPathArgs args;
|
| args.fTarget = fDrawContext->getDrawTarget();
|
| @@ -944,7 +944,7 @@ void GrDrawContext::internalDrawPath(const GrClip& clip,
|
| // aa. If we have some future driver-mojo path AA that can do the right
|
| // thing WRT to the blend then we'll need some query on the PR.
|
| bool useCoverageAA = should_apply_coverage_aa(paint, fRenderTarget.get());
|
| - const bool isStencilDisabled = true;
|
| + constexpr bool kHasUserStencilSettings = false;
|
| bool isStencilBufferMSAA = fRenderTarget->isStencilBufferMultisampled();
|
|
|
| const GrPathRendererChain::DrawType type =
|
| @@ -961,7 +961,7 @@ void GrDrawContext::internalDrawPath(const GrClip& clip,
|
| canDrawArgs.fPath = pathPtr;
|
| canDrawArgs.fStroke = strokeInfoPtr;
|
| canDrawArgs.fAntiAlias = useCoverageAA;
|
| - canDrawArgs.fIsStencilDisabled = isStencilDisabled;
|
| + canDrawArgs.fHasUserStencilSettings = kHasUserStencilSettings;
|
| canDrawArgs.fIsStencilBufferMSAA = isStencilBufferMSAA;
|
|
|
| // Try a 1st time without stroking the path and without allowing the SW renderer
|
|
|