X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fstenciltest.h;h=2a4338f2012afef716c7f2b91494e32d7abeb7cd;hb=fcc065736e303088ef121c554318e0cc028a0666;hp=47e7a62787ff5bc0603b89732dfccbe71991def2;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;p=libs%2Fgl.git diff --git a/source/core/stenciltest.h b/source/core/stenciltest.h index 47e7a627..2a4338f2 100644 --- a/source/core/stenciltest.h +++ b/source/core/stenciltest.h @@ -8,13 +8,13 @@ namespace Msp { namespace GL { -enum StencilOp +enum StencilOp: std::uint8_t { KEEP, SET_ZERO, REPLACE, - INCR, - DECR, + INCR_CLAMP, + DECR_CLAMP, INVERT, INCR_WRAP, DECR_WRAP @@ -43,8 +43,17 @@ struct StencilTest StencilOp depth_fail_op = KEEP; StencilOp depth_pass_op = KEEP; unsigned reference = 0; + + bool operator==(const StencilTest &) const; + bool operator!=(const StencilTest &s) const { return !operator==(s); } }; +inline bool StencilTest::operator==(const StencilTest &other) const +{ + return enabled==other.enabled && compare==other.compare && stencil_fail_op==other.stencil_fail_op && + depth_fail_op==other.depth_fail_op && depth_pass_op==other.depth_pass_op && reference==other.reference; +} + void operator>>(const LexicalConverter &, StencilOp &); void operator<<(LexicalConverter &, StencilOp);