diff options
author | Eric Anholt <anholt@FreeBSD.org> | 2005-10-24 06:40:56 +0000 |
---|---|---|
committer | Eric Anholt <anholt@FreeBSD.org> | 2005-10-24 06:40:56 +0000 |
commit | dc793d4e9a71159da13b9230abde344309924287 (patch) | |
tree | d2e68f18eb5f57e9dd82388ad651bb4c05e5b1f6 /src/mesa/drivers/dri/sis/sis_stencil.c | |
parent | 3265585b151d44c825fb7a82b16b076fb7fdca77 (diff) | |
download | external_mesa3d-dc793d4e9a71159da13b9230abde344309924287.zip external_mesa3d-dc793d4e9a71159da13b9230abde344309924287.tar.gz external_mesa3d-dc793d4e9a71159da13b9230abde344309924287.tar.bz2 |
Add support for GL_EXT_stencil_wrap by guessing that the skip of two values in
the register header was meaningful. It turns out those were the proper values
for the plain INCR/DECR ops, while what we were using as INCR/DECR were the
_WRAP versions. Tested with stencil_wrap (didn't expose normal/_WRAP swapping)
and stencilwrap (exposed it nicely) tests. Props to idr for poking me about
adding this.
Diffstat (limited to 'src/mesa/drivers/dri/sis/sis_stencil.c')
-rw-r--r-- | src/mesa/drivers/dri/sis/sis_stencil.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/sis/sis_stencil.c b/src/mesa/drivers/dri/sis/sis_stencil.c index d36f5f5..1febe86 100644 --- a/src/mesa/drivers/dri/sis/sis_stencil.c +++ b/src/mesa/drivers/dri/sis/sis_stencil.c @@ -125,6 +125,12 @@ sisDDStencilOpSeparate( GLcontext * ctx, GLenum face, GLenum fail, case GL_DECR: current->hwStSetting2 |= SiS_SFAIL_DECR; break; + case GL_INCR_WRAP: + current->hwStSetting2 |= SiS_SFAIL_INCR_WRAP; + break; + case GL_DECR_WRAP: + current->hwStSetting2 |= SiS_SFAIL_DECR_WRAP; + break; } switch (zfail) @@ -147,6 +153,12 @@ sisDDStencilOpSeparate( GLcontext * ctx, GLenum face, GLenum fail, case GL_DECR: current->hwStSetting2 |= SiS_SPASS_ZFAIL_DECR; break; + case GL_INCR_WRAP: + current->hwStSetting2 |= SiS_SPASS_ZFAIL_INCR_WRAP; + break; + case GL_DECR_WRAP: + current->hwStSetting2 |= SiS_SPASS_ZFAIL_DECR_WRAP; + break; } switch (zpass) @@ -169,6 +181,12 @@ sisDDStencilOpSeparate( GLcontext * ctx, GLenum face, GLenum fail, case GL_DECR: current->hwStSetting2 |= SiS_SPASS_ZPASS_DECR; break; + case GL_INCR_WRAP: + current->hwStSetting2 |= SiS_SPASS_ZPASS_INCR_WRAP; + break; + case GL_DECR_WRAP: + current->hwStSetting2 |= SiS_SPASS_ZPASS_DECR_WRAP; + break; } if (current->hwStSetting2 != prev->hwStSetting2) |