From 850dfda0f558538fb96711f32d1d2fca3595d45d Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Wed, 15 Nov 2017 21:48:32 +0100 Subject: [PATCH] delay render thread for now to prevent race condition on startup --- ddraw.dll | Bin 165888 -> 165888 bytes render.c | 2 ++ render_soft.c | 2 ++ surface.c | 3 +-- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ddraw.dll b/ddraw.dll index fd2497f49dc2a653c96b46ac68fb0bfd5004fe34..311d6f26ce62f0d817beb7b1a133f47001c5e89b 100644 GIT binary patch delta 3835 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 Zzr?SCcS7TaI$})JZdY@ltBx4r_#d!8yM+J% diff --git a/render.c b/render.c index 5cc2180..a2475ce 100644 --- a/render.c +++ b/render.c @@ -28,6 +28,8 @@ BOOL detect_cutscene(); DWORD WINAPI render_main(void) { + Sleep(500); + int i,j; HGLRC hRC; diff --git a/render_soft.c b/render_soft.c index 71dc188..8ec628a 100644 --- a/render_soft.c +++ b/render_soft.c @@ -51,6 +51,8 @@ BOOL detect_cutscene() DWORD WINAPI render_soft_main(void) { + Sleep(500); + PBITMAPINFO bmi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256); bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); diff --git a/surface.c b/surface.c index ead1812..8ff2ea8 100644 --- a/surface.c +++ b/surface.c @@ -121,9 +121,8 @@ HRESULT __stdcall ddraw_surface_Blt(IDirectDrawSurfaceImpl *This, LPRECT lpDestR for(y=y0; ywidth, from+=Source->width) memcpy(to, from, s); - LeaveCriticalSection(&ddraw->cs); - ReleaseSemaphore(ddraw->render.sem, 1, NULL); + LeaveCriticalSection(&ddraw->cs); } else {