Some threading fixes (prevents some dead-locks).
diff --git a/dlls/ddraw/d3ddevice/mesa.c b/dlls/ddraw/d3ddevice/mesa.c
index 3880e28..faad8ba 100644
--- a/dlls/ddraw/d3ddevice/mesa.c
+++ b/dlls/ddraw/d3ddevice/mesa.c
@@ -1666,6 +1666,8 @@
This->state_block.texture_stage_state[dwStage][D3DTSS_ADDRESSU - 1] = dwState;
This->state_block.texture_stage_state[dwStage][D3DTSS_ADDRESSV - 1] = dwState;
}
+
+ ENTER_GL();
switch (d3dTexStageStateType) {
case D3DTSS_MINFILTER:
@@ -2006,7 +2008,9 @@
FIXME(" Unhandled stage type : %s => %08lx\n", type, dwState);
break;
}
-
+
+ LEAVE_GL();
+
return DD_OK;
}
@@ -3016,7 +3020,9 @@
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, max_tex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_tex);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, tex_env);
+ LEAVE_GL();
d3d_dev->matrices_updated(d3d_dev, TEXMAT0_CHANGED);
+ ENTER_GL();
#if 0
/* I keep this code here as it's very useful to debug :-) */
{