mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +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;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
EnterCriticalSection(&This->cs);
|
/* only stop drawing in GL mode when minimized */
|
||||||
This->render.run = FALSE;
|
if (This->renderer == render_main)
|
||||||
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
|
{
|
||||||
LeaveCriticalSection(&This->cs);
|
EnterCriticalSection(&This->cs);
|
||||||
|
This->render.run = FALSE;
|
||||||
|
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
|
||||||
|
LeaveCriticalSection(&This->cs);
|
||||||
|
|
||||||
WaitForSingleObject(This->render.thread, INFINITE);
|
WaitForSingleObject(This->render.thread, INFINITE);
|
||||||
This->render.thread = NULL;
|
This->render.thread = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if(!ddraw->windowed)
|
if(!ddraw->windowed)
|
||||||
{
|
{
|
||||||
@ -442,13 +446,12 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This)
|
|||||||
if(This->render.run)
|
if(This->render.run)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&This->cs);
|
EnterCriticalSection(&This->cs);
|
||||||
|
|
||||||
This->render.run = FALSE;
|
This->render.run = FALSE;
|
||||||
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
|
ReleaseSemaphore(ddraw->render.sem, 1, NULL);
|
||||||
|
LeaveCriticalSection(&This->cs);
|
||||||
|
|
||||||
WaitForSingleObject(This->render.thread, INFINITE);
|
WaitForSingleObject(This->render.thread, INFINITE);
|
||||||
This->render.thread = NULL;
|
This->render.thread = NULL;
|
||||||
|
|
||||||
LeaveCriticalSection(&This->cs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(This->render.hDC)
|
if(This->render.hDC)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user