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:
parent
517eef41dc
commit
233aa94adf
21
main.c
21
main.c
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user