diff options
author | Ian Romanick <idr@freedesktop.org> | 2009-01-09 15:43:17 -0800 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2009-01-23 09:49:29 -0800 |
commit | dde7cb962860e72e1bf3175069767358cc5b3f3c (patch) | |
tree | 64ca81d4f544ae7f28618c919af58a844f246de9 /src/mesa/main/enable.c | |
parent | af0e6336e9d7dc19d74950ce13b33e1fa1b2081d (diff) |
Track two sets of back-face stencil state
Track separate back-face stencil state for OpenGL 2.0 /
GL_ATI_separate_stencil and GL_EXT_stencil_two_side. This allows all
three to be enabled in a driver. One set of state is set via the 2.0
or ATI functions and is used when STENCIL_TEST_TWO_SIDE_EXT is
disabled. The other is set by StencilFunc and StencilOp when the
active stencil face is set to BACK. The GL_EXT_stencil_two_side spec has
more details.
http://opengl.org/registry/specs/EXT/stencil_two_side.txt
Diffstat (limited to 'src/mesa/main/enable.c')
-rw-r--r-- | src/mesa/main/enable.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index dae576ae5a..1c026174b8 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -922,10 +922,13 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state) return; FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.TestTwoSide = state; - if (state) + if (state) { + ctx->Stencil._BackFace = 2; ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL; - else + } else { + ctx->Stencil._BackFace = 1; ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL; + } break; #if FEATURE_ARB_fragment_program |