Index: src/gpu/batches/GrPathStencilSettings.h |
diff --git a/src/gpu/batches/GrPathStencilSettings.h b/src/gpu/batches/GrPathStencilSettings.h |
index f37d1b2f18074a3909155fc748363937d0c4a59c..dd930a0da7c47e67dd135036b63e8fa62264c0fb 100644 |
--- a/src/gpu/batches/GrPathStencilSettings.h |
+++ b/src/gpu/batches/GrPathStencilSettings.h |
@@ -8,44 +8,36 @@ |
#ifndef GrPathStencilSettings_DEFINED |
#define GrPathStencilSettings_DEFINED |
-#include "GrUserStencilSettings.h" |
- |
//////////////////////////////////////////////////////////////////////////////// |
// Stencil rules for paths |
////// Even/Odd |
-static constexpr GrUserStencilSettings gEOStencilPass( |
- GrUserStencilSettings::StaticInit< |
- 0xffff, |
- GrUserStencilTest::kAlwaysIfInClip, |
- 0xffff, |
- GrUserStencilOp::kInvert, |
- GrUserStencilOp::kKeep, |
- 0xffff>() |
-); |
+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 GrUserStencilSettings gEOColorPass( |
- GrUserStencilSettings::StaticInit< |
- 0x0000, |
- GrUserStencilTest::kNotEqual, |
- 0xffff, |
- GrUserStencilOp::kZero, |
- GrUserStencilOp::kZero, |
- 0xffff>() |
-); |
+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 GrUserStencilSettings gInvEOColorPass( |
- GrUserStencilSettings::StaticInit< |
- 0x0000, |
- GrUserStencilTest::kEqualIfInClip, |
- 0xffff, |
- GrUserStencilOp::kZero, |
- GrUserStencilOp::kZero, |
- 0xffff>() |
-); |
+static constexpr GrStencilSettings gInvEOColorPass( |
+ kZero_StencilOp, |
+ kZero_StencilOp, |
+ kEqualIfInClip_StencilFunc, |
+ 0xffff, |
+ 0x0000, |
+ 0xffff); |
////// Winding |
@@ -53,108 +45,90 @@ |
// when we don't have wrap incr and decr we use the stencil test to simulate |
// them. |
-static constexpr GrUserStencilSettings gWindStencilSeparateWithWrap( |
- GrUserStencilSettings::StaticInitSeparate< |
- 0xffff, 0xffff, |
- GrUserStencilTest::kAlwaysIfInClip, GrUserStencilTest::kAlwaysIfInClip, |
- 0xffff, 0xffff, |
- GrUserStencilOp::kIncWrap, GrUserStencilOp::kDecWrap, |
- GrUserStencilOp::kKeep, GrUserStencilOp::kKeep, |
- 0xffff, 0xffff>() |
-); |
+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 GrUserStencilSettings gWindStencilSeparateNoWrap( |
- GrUserStencilSettings::StaticInitSeparate< |
- 0xffff, 0x0000, |
- GrUserStencilTest::kEqual, GrUserStencilTest::kEqual, |
- 0xffff, 0xffff, |
- GrUserStencilOp::kInvert, GrUserStencilOp::kInvert, |
- GrUserStencilOp::kIncMaybeClamp, GrUserStencilOp::kDecMaybeClamp, |
- 0xffff, 0xffff>() |
-); |
+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 GrUserStencilSettings gWindSingleStencilWithWrapInc( |
- GrUserStencilSettings::StaticInit< |
- 0xffff, |
- GrUserStencilTest::kAlwaysIfInClip, |
- 0xffff, |
- GrUserStencilOp::kIncWrap, |
- GrUserStencilOp::kKeep, |
- 0xffff>() |
-); |
+static constexpr GrStencilSettings gWindSingleStencilWithWrapInc( |
+ kIncWrap_StencilOp, |
+ kKeep_StencilOp, |
+ kAlwaysIfInClip_StencilFunc, |
+ 0xffff, |
+ 0xffff, |
+ 0xffff); |
-static constexpr GrUserStencilSettings gWindSingleStencilWithWrapDec( |
- GrUserStencilSettings::StaticInit< |
- 0xffff, |
- GrUserStencilTest::kAlwaysIfInClip, |
- 0xffff, |
- GrUserStencilOp::kDecWrap, |
- GrUserStencilOp::kKeep, |
- 0xffff>() |
-); |
+static constexpr GrStencilSettings gWindSingleStencilWithWrapDec( |
+ kDecWrap_StencilOp, |
+ kKeep_StencilOp, |
+ kAlwaysIfInClip_StencilFunc, |
+ 0xffff, |
+ 0xffff, |
+ 0xffff); |
-static constexpr GrUserStencilSettings gWindSingleStencilNoWrapInc( |
- GrUserStencilSettings::StaticInit< |
- 0xffff, |
- GrUserStencilTest::kEqual, |
- 0xffff, |
- GrUserStencilOp::kInvert, |
- GrUserStencilOp::kIncMaybeClamp, |
- 0xffff>() |
-); |
+static constexpr GrStencilSettings gWindSingleStencilNoWrapInc( |
+ kInvert_StencilOp, |
+ kIncClamp_StencilOp, |
+ kEqual_StencilFunc, |
+ 0xffff, |
+ 0xffff, |
+ 0xffff); |
-static constexpr GrUserStencilSettings gWindSingleStencilNoWrapDec( |
- GrUserStencilSettings::StaticInit< |
- 0x0000, |
- GrUserStencilTest::kEqual, |
- 0xffff, |
- GrUserStencilOp::kInvert, |
- GrUserStencilOp::kDecMaybeClamp, |
- 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 GrUserStencilSettings gWindColorPass( |
- GrUserStencilSettings::StaticInit< |
- 0x0000, |
- GrUserStencilTest::kLessIfInClip, // "0 < stencil" is equivalent to "0 != stencil". |
- 0xffff, |
- GrUserStencilOp::kZero, |
- GrUserStencilOp::kZero, |
- 0xffff>() |
-); |
+static constexpr GrStencilSettings gWindColorPass( |
+ kZero_StencilOp, |
+ kZero_StencilOp, |
+ kNonZeroIfInClip_StencilFunc, |
+ 0xffff, |
+ 0x0000, |
+ 0xffff); |
-static constexpr GrUserStencilSettings gInvWindColorPass( |
- GrUserStencilSettings::StaticInit< |
- 0x0000, |
- GrUserStencilTest::kEqualIfInClip, |
- 0xffff, |
- GrUserStencilOp::kZero, |
- GrUserStencilOp::kZero, |
- 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 GrUserStencilSettings gDirectToStencil( |
- GrUserStencilSettings::StaticInit< |
- 0x0000, |
- GrUserStencilTest::kAlwaysIfInClip, |
- 0xffff, |
- GrUserStencilOp::kZero, |
- GrUserStencilOp::kIncMaybeClamp, |
- 0xffff>() |
-); |
+static constexpr GrStencilSettings gDirectToStencil( |
+ kZero_StencilOp, |
+ kIncClamp_StencilOp, |
+ kAlwaysIfInClip_StencilFunc, |
+ 0xffff, |
+ 0x0000, |
+ 0xffff); |
#endif |