| Index: src/gpu/batches/GrDefaultPathRenderer.cpp
|
| diff --git a/src/gpu/batches/GrDefaultPathRenderer.cpp b/src/gpu/batches/GrDefaultPathRenderer.cpp
|
| index 4bf506ed771980942dc72bc4f9f2aa803ee945d5..708bcd723413317031d1d5e1ce956360e233e46d 100644
|
| --- a/src/gpu/batches/GrDefaultPathRenderer.cpp
|
| +++ b/src/gpu/batches/GrDefaultPathRenderer.cpp
|
| @@ -29,130 +29,6 @@ GrDefaultPathRenderer::GrDefaultPathRenderer(bool separateStencilSupport,
|
| , fStencilWrapOps(stencilWrapOpsSupport) {
|
| }
|
|
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// Stencil rules for paths
|
| -
|
| -////// Even/Odd
|
| -
|
| -static constexpr GrStencilSettings gEOStencilPass(
|
| - kInvert_StencilOp,
|
| - kKeep_StencilOp,
|
| - kAlwaysIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0xffff,
|
| - 0xffff);
|
| -
|
| -// ok not to check clip b/c stencil pass only wrote inside clip
|
| -static constexpr GrStencilSettings gEOColorPass(
|
| - kZero_StencilOp,
|
| - kZero_StencilOp,
|
| - kNotEqual_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| -
|
| -// have to check clip b/c outside clip will always be zero.
|
| -static constexpr GrStencilSettings gInvEOColorPass(
|
| - kZero_StencilOp,
|
| - kZero_StencilOp,
|
| - kEqualIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| -
|
| -////// Winding
|
| -
|
| -// when we have separate stencil we increment front faces / decrement back faces
|
| -// when we don't have wrap incr and decr we use the stencil test to simulate
|
| -// them.
|
| -
|
| -static constexpr GrStencilSettings gWindStencilSeparateWithWrap(
|
| - kIncWrap_StencilOp, kDecWrap_StencilOp,
|
| - kKeep_StencilOp, kKeep_StencilOp,
|
| - kAlwaysIfInClip_StencilFunc, kAlwaysIfInClip_StencilFunc,
|
| - 0xffff, 0xffff,
|
| - 0xffff, 0xffff,
|
| - 0xffff, 0xffff);
|
| -
|
| -// if inc'ing the max value, invert to make 0
|
| -// if dec'ing zero invert to make all ones.
|
| -// we can't avoid touching the stencil on both passing and
|
| -// failing, so we can't resctrict ourselves to the clip.
|
| -static constexpr GrStencilSettings gWindStencilSeparateNoWrap(
|
| - kInvert_StencilOp, kInvert_StencilOp,
|
| - kIncClamp_StencilOp, kDecClamp_StencilOp,
|
| - kEqual_StencilFunc, kEqual_StencilFunc,
|
| - 0xffff, 0xffff,
|
| - 0xffff, 0x0000,
|
| - 0xffff, 0xffff);
|
| -
|
| -// When there are no separate faces we do two passes to setup the winding rule
|
| -// stencil. First we draw the front faces and inc, then we draw the back faces
|
| -// and dec. These are same as the above two split into the incrementing and
|
| -// decrementing passes.
|
| -static constexpr GrStencilSettings gWindSingleStencilWithWrapInc(
|
| - kIncWrap_StencilOp,
|
| - kKeep_StencilOp,
|
| - kAlwaysIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0xffff,
|
| - 0xffff);
|
| -
|
| -static constexpr GrStencilSettings gWindSingleStencilWithWrapDec(
|
| - kDecWrap_StencilOp,
|
| - kKeep_StencilOp,
|
| - kAlwaysIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0xffff,
|
| - 0xffff);
|
| -
|
| -static constexpr GrStencilSettings gWindSingleStencilNoWrapInc(
|
| - kInvert_StencilOp,
|
| - kIncClamp_StencilOp,
|
| - kEqual_StencilFunc,
|
| - 0xffff,
|
| - 0xffff,
|
| - 0xffff);
|
| -
|
| -static constexpr GrStencilSettings gWindSingleStencilNoWrapDec(
|
| - kInvert_StencilOp,
|
| - kDecClamp_StencilOp,
|
| - kEqual_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| -
|
| -// Color passes are the same whether we use the two-sided stencil or two passes
|
| -
|
| -static constexpr GrStencilSettings gWindColorPass(
|
| - kZero_StencilOp,
|
| - kZero_StencilOp,
|
| - kNonZeroIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| -
|
| -static constexpr GrStencilSettings gInvWindColorPass(
|
| - kZero_StencilOp,
|
| - kZero_StencilOp,
|
| - kEqualIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| -
|
| -////// Normal render to stencil
|
| -
|
| -// Sometimes the default path renderer can draw a path directly to the stencil
|
| -// buffer without having to first resolve the interior / exterior.
|
| -static constexpr GrStencilSettings gDirectToStencil(
|
| - kZero_StencilOp,
|
| - kIncClamp_StencilOp,
|
| - kAlwaysIfInClip_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| -
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // Helpers for drawPath
|
|
|
|
|