Stefan Dösinger : d3d9: Add a dll global critical section.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jun 14 07:47:04 CDT 2007


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

Author: Stefan Dösinger <stefandoesinger at gmx.at>
Date:   Sun Jun 10 17:13:01 2007 +0200

d3d9: Add a dll global critical section.

---

 dlls/d3d9/d3d9_main.c    |   11 +++++++++++
 dlls/d3d9/d3d9_private.h |    1 +
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/d3d9/d3d9_main.c b/dlls/d3d9/d3d9_main.c
index a5e1cef..ba4da66 100644
--- a/dlls/d3d9/d3d9_main.c
+++ b/dlls/d3d9/d3d9_main.c
@@ -25,6 +25,15 @@
 #include "initguid.h"
 #include "d3d9_private.h"
 
+static CRITICAL_SECTION_DEBUG d3d9_cs_debug =
+{
+    0, 0, &d3d9_cs,
+    { &d3d9_cs_debug.ProcessLocksList,
+    &d3d9_cs_debug.ProcessLocksList },
+    0, 0, { (DWORD_PTR)(__FILE__ ": d3d9_cs") }
+};
+CRITICAL_SECTION d3d9_cs = { &d3d9_cs_debug, -1, 0, 0, 0, 0 };
+
 WINE_DEFAULT_DEBUG_CHANNEL(d3d9);
 
 static int D3DPERF_event_level = 0;
@@ -43,7 +52,9 @@ IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion) {
 
     object->lpVtbl = &Direct3D9_Vtbl;
     object->ref = 1;
+    EnterCriticalSection(&d3d9_cs);
     object->WineD3D = WineDirect3DCreate(SDKVersion, 9, (IUnknown *)object);
+    LeaveCriticalSection(&d3d9_cs);
 
     TRACE("SDKVersion = %x, Created Direct3D object @ %p, WineObj @ %p\n", SDKVersion, object, object->WineD3D);
 
diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h
index af308ac..9049777 100644
--- a/dlls/d3d9/d3d9_private.h
+++ b/dlls/d3d9/d3d9_private.h
@@ -44,6 +44,7 @@
 extern HRESULT vdecl_convert_fvf(
     DWORD FVF,
     D3DVERTEXELEMENT9** ppVertexElements);
+extern CRITICAL_SECTION d3d9_cs;
 
 /* ===========================================================================
     Macros




More information about the wine-cvs mailing list