wined3d: Unset the current GLSL program when it's destroyed.
Henri Verbeet
hverbeet at codeweavers.com
Mon Apr 6 03:10:05 CDT 2009
---
dlls/wined3d/glsl_shader.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 9ea193e..965f688 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -3766,9 +3766,13 @@ static void shader_glsl_destroy(IWineD3DBaseShader *iface) {
if(pshader) {
ps = (IWineD3DPixelShaderImpl *) This;
if(ps->num_gl_shaders == 0) return;
+ if (priv->glsl_program && (IWineD3DBaseShader *)priv->glsl_program->pshader == iface)
+ shader_glsl_select(This->baseShader.device, FALSE, FALSE);
} else {
vs = (IWineD3DVertexShaderImpl *) This;
if(vs->num_gl_shaders == 0) return;
+ if (priv->glsl_program && (IWineD3DBaseShader *)priv->glsl_program->vshader == iface)
+ shader_glsl_select(This->baseShader.device, FALSE, FALSE);
}
linked_programs = &This->baseShader.linked_programs;
--
1.6.0.6
--------------070607040803000705090606--
More information about the wine-patches
mailing list