wined3d: Set the stencil mask for both faces.

This commit is contained in:
Stefan Dösinger 2007-09-14 11:57:07 +02:00 committed by Alexandre Julliard
parent 5a63b79a66
commit 703ec4cbc4
1 changed files with 16 additions and 2 deletions

View File

@ -707,10 +707,24 @@ state_stencil(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *c
}
static void state_stencilwrite(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *context) {
DWORD mask;
if(stateblock->wineD3DDevice->stencilBufferTarget) {
glStencilMask(stateblock->renderState[WINED3DRS_STENCILWRITEMASK]);
mask = stateblock->renderState[WINED3DRS_STENCILWRITEMASK];
} else {
glStencilMask(0);
mask = 0;
}
if(GL_SUPPORT(EXT_STENCIL_TWO_SIDE)) {
GL_EXTCALL(glActiveStencilFaceEXT(GL_BACK));
checkGLcall("glActiveStencilFaceEXT(GL_BACK)");
glStencilMask(mask);
checkGLcall("glStencilMask");
GL_EXTCALL(glActiveStencilFaceEXT(GL_FRONT));
checkGLcall("glActiveStencilFaceEXT(GL_FRONT)");
glStencilMask(mask);
} else {
glStencilMask(mask);
}
checkGLcall("glStencilMask");
}