From 2508643fe8b49da1885e75c89aa6cf9253b749ec Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 30 Jul 2021 13:14:12 +0200 Subject: [PATCH] #107 fix adjmouse with borderless opengl (scrolling bug in Casino Empire) --- src/dd.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/dd.c b/src/dd.c index 7b36970..56413c8 100644 --- a/src/dd.c +++ b/src/dd.c @@ -463,6 +463,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl InterlockedExchange((LONG*)&g_ddraw->cursor.y, dwHeight / 2); BOOL border = g_ddraw->border; + BOOL nonexclusive = FALSE; if (g_ddraw->fullscreen) { @@ -478,7 +479,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl /* prevent OpenGL from going automatically into fullscreen exclusive mode */ if (g_ddraw->renderer == ogl_render_main) - g_ddraw->render.height++; + nonexclusive = TRUE; } } @@ -594,11 +595,6 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl } } - if (g_ddraw->nonexclusive && !g_ddraw->windowed && g_ddraw->renderer == ogl_render_main) - { - g_ddraw->render.height++; - } - g_ddraw->render.viewport.width = g_ddraw->render.width; g_ddraw->render.viewport.height = g_ddraw->render.height; g_ddraw->render.viewport.x = 0; @@ -645,6 +641,11 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl g_ddraw->render.unscale_w = ((float)g_ddraw->width / g_ddraw->render.viewport.width); g_ddraw->render.unscale_h = ((float)g_ddraw->height / g_ddraw->render.viewport.height); + if (nonexclusive || (g_ddraw->nonexclusive && !g_ddraw->windowed && g_ddraw->renderer == ogl_render_main)) + { + g_ddraw->render.height++; + } + if (g_ddraw->windowed) { MSG msg; /* workaround for "Not Responding" window problem in cnc games */