[PATCH] WineD3D: Close a pshader on-off switching loophole=0A=
Stefan Doesinger
stefan at codeweavers.com
Wed Sep 3 16:07:37 CDT 2008
=0A=
---=0A=
dlls/wined3d/arb_program_shader.c | 7 +++++++=0A=
1 files changed, 7 insertions(+), 0 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/arb_program_shader.c =
b/dlls/wined3d/arb_program_shader.c=0A=
index ca65e3e..7fa88c0 100644=0A=
--- a/dlls/wined3d/arb_program_shader.c=0A=
+++ b/dlls/wined3d/arb_program_shader.c=0A=
@@ -2912,6 +2912,13 @@ static void fragment_prog_arbfp(DWORD state, =
IWineD3DStateBlockImpl *stateblock,=0A=
if(isStateDirty(context, STATE_RENDER(WINED3DRS_FOGENABLE))) {=0A=
if(use_pshader) {=0A=
IWineD3DPixelShader_CompileShader(stateblock->pixelShader);=0A=
+ } else if(device->shader_backend =3D=3D =
&arb_program_shader_backend && context->last_was_pshader) {=0A=
+ /* Reload fixed function constants since they collide with =
the pixel shader constants */=0A=
+ for(i =3D 0; i < MAX_TEXTURES; i++) {=0A=
+ set_bumpmat_arbfp(STATE_TEXTURESTAGE(i, =
WINED3DTSS_BUMPENVMAT00), stateblock, context);=0A=
+ }=0A=
+ =
state_texfactor_arbfp(STATE_RENDER(WINED3DRS_TEXTUREFACTOR), stateblock, =
context);=0A=
+ =
state_arb_specularenable(STATE_RENDER(WINED3DRS_SPECULARENABLE), =
stateblock, context);=0A=
}=0A=
return;=0A=
}=0A=
-- =0A=
1.5.6.4=0A=
=0A=
------=_NextPart_000_0015_01C90EA1.707C2F00--
More information about the wine-patches
mailing list