wined3d: Add missing GL locking to shader_backend_t.shader_free_private() implementations.

Henri Verbeet hverbeet at codeweavers.com
Tue May 12 09:19:55 CDT 2009


---
 dlls/wined3d/arb_program_shader.c |    2 ++
 dlls/wined3d/glsl_shader.c        |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 9b21f0e..beb37cf 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -1838,6 +1838,7 @@ static void shader_arb_free(IWineD3DDevice *iface) {
     struct shader_arb_priv *priv = This->shader_priv;
     int i;
 
+    ENTER_GL();
     if(priv->depth_blt_vprogram_id) {
         GL_EXTCALL(glDeleteProgramsARB(1, &priv->depth_blt_vprogram_id));
     }
@@ -1846,6 +1847,7 @@ static void shader_arb_free(IWineD3DDevice *iface) {
             GL_EXTCALL(glDeleteProgramsARB(1, &priv->depth_blt_fprogram_id[i]));
         }
     }
+    LEAVE_GL();
 
     HeapFree(GetProcessHeap(), 0, This->shader_priv);
 }
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index b248a3b..8316a0e 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -4038,6 +4038,7 @@ static void shader_glsl_free(IWineD3DDevice *iface) {
     struct shader_glsl_priv *priv = This->shader_priv;
     int i;
 
+    ENTER_GL();
     for (i = 0; i < tex_type_count; ++i)
     {
         if (priv->depth_blt_program[i])
@@ -4045,6 +4046,7 @@ static void shader_glsl_free(IWineD3DDevice *iface) {
             GL_EXTCALL(glDeleteObjectARB(priv->depth_blt_program[i]));
         }
     }
+    LEAVE_GL();
 
     hash_table_destroy(priv->glsl_program_lookup, NULL, NULL);
     constant_heap_free(&priv->pconst_heap);
-- 
1.6.0.6



--------------060405010608060501050606--



More information about the wine-patches mailing list