From 1a5fe96b287f087a77b773813ab7aee1a9e9fa68 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Thu, 24 Aug 2023 19:05:20 +0200 Subject: [PATCH] some tweak for last commit --- src/dd.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/dd.c b/src/dd.c index 1666a17..99c9801 100644 --- a/src/dd.c +++ b/src/dd.c @@ -720,6 +720,8 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) { /* everything failed, use windowed/borderless mode instead */ + ChangeDisplaySettings(NULL, 0); + g_ddraw->render.width = g_ddraw->width; g_ddraw->render.height = g_ddraw->height; @@ -728,11 +730,22 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl g_ddraw->windowed = TRUE; - if (g_ddraw->render.width <= real_GetSystemMetrics(SM_CXSCREEN) && - g_ddraw->render.height <= real_GetSystemMetrics(SM_CYSCREEN)) + if (g_ddraw->render.width <= g_ddraw->mode.dmPelsWidth && + g_ddraw->render.height <= g_ddraw->mode.dmPelsHeight) { /* Switch to borderless mode if window fits into screen */ g_ddraw->fullscreen = TRUE; + border = FALSE; + + g_ddraw->render.width = g_ddraw->mode.dmPelsWidth; + g_ddraw->render.height = g_ddraw->mode.dmPelsHeight; + + g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width; + g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height; + + /* prevent OpenGL from going automatically into fullscreen exclusive mode */ + if (g_ddraw->renderer == ogl_render_main) + nonexclusive = TRUE; } else {