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