From: Toni Wilen Date: Sun, 26 Oct 2025 14:33:20 +0000 (+0200) Subject: Reset display if screen mode changes while GUI is open in D3D11 fullscreen mode. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=a99ac5bc492d7c23d7403304c0e000fd7e87117b;p=francis%2Fwinuae.git Reset display if screen mode changes while GUI is open in D3D11 fullscreen mode. --- diff --git a/od-win32/direct3d11.cpp b/od-win32/direct3d11.cpp index 0f3e8e17..445f35da 100644 --- a/od-win32/direct3d11.cpp +++ b/od-win32/direct3d11.cpp @@ -416,8 +416,9 @@ D3DGETBLOBPART pD3DGetBlobPart; static int isfs(struct d3d11struct *d3d) { int fs = isfullscreen(); - if (fs > 0 && d3d->guimode) + if (fs > 0 && d3d->guimode) { return -1; + } return fs; } @@ -5270,8 +5271,16 @@ static void xD3D11_guimode(int monid, int guion) d3d->reloadshaders = true; - if (isfullscreen() <= 0) + if (isfullscreen() <= 0) { + if (!guion && d3d->guimode) { + // GUI mode active but not fullscreen? Reset display. + xD3D11_free(d3d->num, true); + WIN32GFX_DisplayChangeRequested(1); + } + d3d->guimode = 0; + d3d->delayedfs = 0; return; + } write_log(_T("fs guimode %d\n"), guion); d3d->guimode = guion;