Module: wine Branch: master Commit: 6eb8e3fb6f3aec264389e136647c7daf924068ed URL: http://source.winehq.org/git/wine.git/?a=commit;h=6eb8e3fb6f3aec264389e13664...
Author: Stefan Dösinger stefan@codeweavers.com Date: Wed May 30 16:16:04 2007 +0200
ddraw: Hold the lock in IDirect3DLight methods.
---
dlls/ddraw/light.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/ddraw/light.c b/dlls/ddraw/light.c index 93144d3..aeb8390 100644 --- a/dlls/ddraw/light.c +++ b/dlls/ddraw/light.c @@ -201,10 +201,12 @@ IDirect3DLightImpl_SetLight(IDirect3DLight *iface, light7->dvTheta = lpLight->dvTheta; light7->dvPhi = lpLight->dvPhi;
+ EnterCriticalSection(&ddraw_cs); memcpy(&This->light, lpLight, lpLight->dwSize); if ((This->light.dwFlags & D3DLIGHT_ACTIVE) != 0) { This->update(This); } + LeaveCriticalSection(&ddraw_cs); return D3D_OK; }
@@ -230,7 +232,11 @@ IDirect3DLightImpl_GetLight(IDirect3DLight *iface, TRACE(" Returning light definition :\n"); dump_light(&This->light); } + + EnterCriticalSection(&ddraw_cs); memcpy(lpLight, &This->light, lpLight->dwSize); + LeaveCriticalSection(&ddraw_cs); + return DD_OK; }