Henri Verbeet : wined3d: Unset the current GLSL program when it's destroyed .

Alexandre Julliard julliard at winehq.org
Mon Apr 6 09:00:34 CDT 2009


Module: wine
Branch: master
Commit: 1120f0f58539d5dc8a1fbdc025ce7230aa4f1ae4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1120f0f58539d5dc8a1fbdc025ce7230aa4f1ae4

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Apr  6 10:10:05 2009 +0200

wined3d: Unset the current GLSL program when it's destroyed.

---

 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;




More information about the wine-cvs mailing list