wined3d: Implemented fallback for separate stencil function in WINED3DRS_CCW_STENCILFUNC.

This commit is contained in:
Vitaly Budovski 2006-03-04 17:50:55 +11:00 committed by Alexandre Julliard
parent 7b55a0cff1
commit 6bf561b7ba
1 changed files with 17 additions and 2 deletions

View File

@ -3817,8 +3817,23 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, D3DRENDE
if(GL_EXTCALL(glStencilFuncSeparate)) {
GL_EXTCALL(glStencilFuncSeparate(GL_BACK, func, ref, mask));
checkGLcall("glStencilFuncSeparate(GL_BACK,...)");
} else
WARN("Unsupported in local OpenGL implementation: glStencilFuncSeparate\n");
}
else if(GL_EXTCALL(glActiveStencilFaceEXT)) {
glEnable(GL_STENCIL_TEST_TWO_SIDE_EXT);
checkGLcall("glEnable(GL_STENCIL_TEST_TWO_SIDE_EXT)");
GL_EXTCALL(glActiveStencilFaceEXT(GL_BACK));
checkGLcall("glActiveStencilFaceEXT(GL_BACK)");
glStencilFunc(func, ref, mask);
checkGLcall("glStencilFunc(...)");
}
else if(GL_EXTCALL(glStencilFuncSeparateATI)) {
GL_EXTCALL(glStencilFuncSeparateATI(GL_BACK, func, ref, mask));
checkGLcall("glStencilFuncSeparateATI(GL_BACK,...)");
} else {
TRACE("Separate stencil function not supported on this version of opengl");
glStencilFunc(func, ref, mask);
checkGLcall("glStencilFunc(...)");
}
} else {
glStencilFunc(func, ref, mask);
checkGLcall("glStencilFunc(...)");