don't change display settings, let d3d9 do it

This commit is contained in:
FunkyFr3sh 2018-10-08 08:42:08 +02:00
parent bbe8fa11d8
commit 04e063252c
3 changed files with 57 additions and 44 deletions

View file

@ -239,8 +239,10 @@ HRESULT __stdcall ddraw_RestoreDisplayMode(IDirectDrawImpl *This)
if(!ddraw->windowed)
{
ChangeDisplaySettings(&This->mode, 0);
InterlockedExchange(&ddraw->displayModeChanged, TRUE);
if (!D3D9_Enabled)
ChangeDisplaySettings(&This->mode, 0);
InterlockedExchange(&ddraw->minimized, TRUE);
}
return DD_OK;
@ -468,6 +470,8 @@ HRESULT __stdcall ddraw_SetDisplayMode(IDirectDrawImpl *This, DWORD width, DWORD
{
RedrawWindow(This->hWnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE);
}
InterlockedExchange(&ddraw->minimized, FALSE);
if(This->render.thread == NULL)
{
@ -625,14 +629,17 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (!ddraw->windowed)
{
ChangeDisplaySettings(&ddraw->render.mode, CDS_FULLSCREEN);
if (!D3D9_Enabled)
{
ChangeDisplaySettings(&ddraw->render.mode, CDS_FULLSCREEN);
if (wParam == WA_ACTIVE)
{
mouse_lock();
}
}
InterlockedExchange(&ddraw->minimized, FALSE);
if (wParam == WA_ACTIVE)
{
mouse_lock();
}
}
}
else if (wParam == WA_INACTIVE)
@ -646,9 +653,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
if (!ddraw->windowed)
{
if (!D3D9_Enabled)
ShowWindow(ddraw->hWnd, SW_MINIMIZE);
ChangeDisplaySettings(&ddraw->mode, 0);
{
ShowWindow(ddraw->hWnd, SW_MINIMIZE);
ChangeDisplaySettings(&ddraw->mode, 0);
}
InterlockedExchange(&ddraw->minimized, TRUE);
}