diff --git a/ddraw.dll b/ddraw.dll index 65f82a4..58774d5 100644 Binary files a/ddraw.dll and b/ddraw.dll differ diff --git a/main.c b/main.c index 9bf3010..78556d6 100644 --- a/main.c +++ b/main.c @@ -544,13 +544,6 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This) PostMessage(This->hWnd, WM_USER, 0, 0); } - if (This->render.thread) - { - HANDLE thread = This->render.thread; - This->render.thread = NULL; - WaitForSingleObject(thread, INFINITE); - } - if(This->render.hDC) { ReleaseDC(This->hWnd, This->render.hDC); @@ -738,7 +731,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk } GetPrivateProfileStringA("ddraw", "screenshotKey", "G", tmp, sizeof(tmp), This->ini_path); - ddraw->screenshotKey = tmp[0]; + ddraw->screenshotKey = toupper(tmp[0]); This->render.maxfps = GetPrivateProfileIntA("ddraw", "max_fps", 120, This->ini_path); This->render.width = GetPrivateProfileIntA("ddraw", "width", 0, This->ini_path); diff --git a/surface.c b/surface.c index 131ccb5..ff06862 100644 --- a/surface.c +++ b/surface.c @@ -44,6 +44,13 @@ ULONG __stdcall ddraw_surface_Release(IDirectDrawSurfaceImpl *This) if(This->Ref == 0) { + if (ddraw->render.thread) + { + HANDLE thread = ddraw->render.thread; + ddraw->render.thread = NULL; + WaitForSingleObject(thread, INFINITE); + } + if(This->caps == DDSCAPS_PRIMARYSURFACE) { EnterCriticalSection(&ddraw->cs);