From e28630bc32f972ed5daa7f7deef54337b3013200 Mon Sep 17 00:00:00 2001 From: Fabian Bieler Date: Fri, 20 Apr 2007 21:49:21 +0200 Subject: [PATCH] wined3d: Remove usesFog flag from IWineD3DVertexShaderImpl. --- dlls/wined3d/state.c | 4 ++-- dlls/wined3d/vertexshader.c | 8 ++------ dlls/wined3d/wined3d_private.h | 1 - 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index c8a315034a7..1a0bcdd8e18 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -765,7 +765,7 @@ static void state_fog(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCo } if (use_vs(stateblock->wineD3DDevice) - && ((IWineD3DVertexShaderImpl *)stateblock->vertexShader)->usesFog) { + && ((IWineD3DVertexShaderImpl *)stateblock->vertexShader)->baseShader.reg_maps.fog) { if( stateblock->renderState[WINED3DRS_FOGTABLEMODE] != WINED3DFOG_NONE ) { if(!is_ps3) FIXME("Implement table fog for foggy vertex shader\n"); /* Disable fog */ @@ -3018,7 +3018,7 @@ static void vertexdeclaration(DWORD state, IWineD3DStateBlockImpl *stateblock, W ((IWineD3DVertexShaderImpl *)stateblock->vertexShader)->baseShader.function != NULL) { useVertexShaderFunction = TRUE; - if(((IWineD3DVertexShaderImpl *)stateblock->vertexShader)->usesFog != context->last_was_foggy_shader) { + if(((IWineD3DVertexShaderImpl *)stateblock->vertexShader)->baseShader.reg_maps.fog != context->last_was_foggy_shader) { updateFog = TRUE; } } else if(context->last_was_foggy_shader) { diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c index f02dcdb6072..56a4354357c 100644 --- a/dlls/wined3d/vertexshader.c +++ b/dlls/wined3d/vertexshader.c @@ -337,9 +337,7 @@ static VOID IWineD3DVertexShaderImpl_GenerateShader( vshader_glsl_output_unpack(&buffer, This->semantics_out); /* If this shader doesn't use fog copy the z coord to the fog coord so that we can use table fog */ - if (reg_maps->fog) - This->usesFog = 1; - else + if (!reg_maps->fog) shader_addline(&buffer, "gl_FogFragCoord = gl_Position.z;\n"); /* Write the final position. @@ -386,9 +384,7 @@ static VOID IWineD3DVertexShaderImpl_GenerateShader( shader_generate_main( (IWineD3DBaseShader*) This, &buffer, reg_maps, pFunction); /* If this shader doesn't use fog copy the z coord to the fog coord so that we can use table fog */ - if (reg_maps->fog) - This->usesFog = 1; - else + if (!reg_maps->fog) shader_addline(&buffer, "MOV result.fogcoord, TMP_OUT.z;\n"); /* Write the final position. diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 3de938ad7a3..d51e15cb7ee 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1892,7 +1892,6 @@ typedef struct IWineD3DVertexShaderImpl { /* IWineD3DVertexShaderImpl */ IUnknown *parent; - char usesFog; DWORD usage; /* Vertex shader input and output semantics */