wined3d: Fixed WINED3DRS_POINTSPRITEENABLE.

oldstable
Vitaly Budovski 2006-02-03 12:37:46 +01:00 committed by Alexandre Julliard
parent dbff6d59e8
commit 8f3c98fdfd
1 changed files with 22 additions and 21 deletions

View File

@ -3576,29 +3576,30 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, D3DRENDE
return D3DERR_INVALIDCALL;
}
case WINED3DRS_POINTSPRITEENABLE :
{
/* TODO: NV_POINT_SPRITE */
if (GL_SUPPORT(ARB_POINT_SPRITE)) {
if (Value != FALSE) {
/* Doesn't work with GL_POINT_SMOOTH on on my ATI 9600, but then ATI drivers are buggered! */
glDisable(GL_POINT_SMOOTH);
/* Centre the texture on the vertex */
VTRACE("glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE)\n");
glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);
VTRACE("glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE)\n");
glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);
checkGLcall("glTexEnvf(...)");
VTRACE("glEnable( GL_POINT_SPRITE_ARB )\n");
glEnable( GL_POINT_SPRITE_ARB );
checkGLcall("glEnable(...)");
} else {
VTRACE("glDisable( GL_POINT_SPRITE_ARB )\n");
glDisable( GL_POINT_SPRITE_ARB );
checkGLcall("glEnable(...)");
}
if (!GL_SUPPORT(ARB_POINT_SPRITE)) {
TRACE("Point sprites not supported\n");
break;
}
break;
/* Unhandled yet...! */
/*
* Point sprites are always enabled. Value controls texture coordinate
* replacement mode. Must be set true for point sprites to use
* textures.
*/
glEnable(GL_POINT_SPRITE_ARB);
checkGLcall("glEnable(GL_POINT_SPRITE_ARB)");
if (Value) {
glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, TRUE);
checkGLcall("glTexEnvf(GL_POINT_SPRITE, GL_COORD_REPLACE, TRUE)");
} else {
glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, FALSE);
checkGLcall("glTexEnvf(GL_POINT_SPRITE, GL_COORD_REPLACE, FALSE)");
}
break;
}
case WINED3DRS_EDGEANTIALIAS :
{
if(Value) {