1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

Only stop the OpenGL renderer when inactive, fixes black screen issue with GDI

This commit is contained in:
Toni Spets 2011-07-05 21:30:08 +03:00
parent 517eef41dc
commit 233aa94adf

21
main.c
View File

@ -152,13 +152,17 @@ HRESULT __stdcall ddraw_RestoreDisplayMode(IDirectDrawImpl *This)
return DD_OK;
}
EnterCriticalSection(&This->cs);
This->render.run = FALSE;
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
LeaveCriticalSection(&This->cs);
/* only stop drawing in GL mode when minimized */
if (This->renderer == render_main)
{
EnterCriticalSection(&This->cs);
This->render.run = FALSE;
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
LeaveCriticalSection(&This->cs);
WaitForSingleObject(This->render.thread, INFINITE);
This->render.thread = NULL;
WaitForSingleObject(This->render.thread, INFINITE);
This->render.thread = NULL;
}
if(!ddraw->windowed)
{
@ -442,13 +446,12 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This)
if(This->render.run)
{
EnterCriticalSection(&This->cs);
This->render.run = FALSE;
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
LeaveCriticalSection(&This->cs);
WaitForSingleObject(This->render.thread, INFINITE);
This->render.thread = NULL;
LeaveCriticalSection(&This->cs);
}
if(This->render.hDC)