wined3d: Don't pass bad values to glAlphaFunc and glDepthFunc.

This commit is contained in:
Chris Robinson 2006-08-20 16:26:39 -07:00 committed by Alexandre Julliard
parent 4c88bb84b9
commit a39e2b51cb
1 changed files with 12 additions and 8 deletions

View File

@ -3560,7 +3560,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, D
case WINED3DRS_ZFUNC : case WINED3DRS_ZFUNC :
{ {
int glParm = GL_LESS; int glParm = 0;
switch ((D3DCMPFUNC) Value) { switch ((D3DCMPFUNC) Value) {
case D3DCMP_NEVER: glParm=GL_NEVER; break; case D3DCMP_NEVER: glParm=GL_NEVER; break;
@ -3574,8 +3574,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, D
default: default:
FIXME("Unrecognized/Unhandled D3DCMPFUNC value %ld\n", Value); FIXME("Unrecognized/Unhandled D3DCMPFUNC value %ld\n", Value);
} }
glDepthFunc(glParm); if(glParm) {
checkGLcall("glDepthFunc"); glDepthFunc(glParm);
checkGLcall("glDepthFunc");
}
} }
break; break;
@ -3644,8 +3646,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, D
case WINED3DRS_ALPHAREF : case WINED3DRS_ALPHAREF :
case WINED3DRS_COLORKEYENABLE : case WINED3DRS_COLORKEYENABLE :
{ {
int glParm = 0.0; int glParm = 0;
float ref = GL_LESS; float ref;
BOOL enable_ckey = FALSE; BOOL enable_ckey = FALSE;
IWineD3DSurfaceImpl *surf; IWineD3DSurfaceImpl *surf;
@ -3688,9 +3690,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, D
FIXME("Unrecognized/Unhandled D3DCMPFUNC value %ld\n", This->stateBlock->renderState[WINED3DRS_ALPHAFUNC]); FIXME("Unrecognized/Unhandled D3DCMPFUNC value %ld\n", This->stateBlock->renderState[WINED3DRS_ALPHAFUNC]);
} }
} }
This->alphafunc = glParm; if(glParm) {
glAlphaFunc(glParm, ref); This->alphafunc = glParm;
checkGLcall("glAlphaFunc"); glAlphaFunc(glParm, ref);
checkGLcall("glAlphaFunc");
}
} }
break; break;