From 23989d2819efe6224d3454b6c6f1e22ff157fa7c Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Sun, 3 Mar 2024 23:58:00 +0100 Subject: [PATCH 1/2] Fix the viewport getting squished into the bottom left corner on High-DPI --- libs/s25main/drivers/VideoDriverWrapper.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/s25main/drivers/VideoDriverWrapper.cpp b/libs/s25main/drivers/VideoDriverWrapper.cpp index 7daa4801cf..15d19d2e51 100644 --- a/libs/s25main/drivers/VideoDriverWrapper.cpp +++ b/libs/s25main/drivers/VideoDriverWrapper.cpp @@ -305,19 +305,19 @@ void VideoDriverWrapper::RenewViewport() if(!videodriver->IsOpenGL() || !renderer_) return; - const Extent renderSize = videodriver->GetRenderSize(); + const Extent renderSize = getGuiScale().viewToScreen(videodriver->GetRenderSize()); const VideoMode windowSize = videodriver->GetWindowSize(); // Set the viewport and scissor area to the entire window - glViewport(0, 0, windowSize.width, windowSize.height); - glScissor(0, 0, windowSize.width, windowSize.height); + glViewport(0, 0, renderSize.x, renderSize.y); + glScissor(0, 0, renderSize.x, renderSize.y); // Orthogonale Matrix erstellen glMatrixMode(GL_PROJECTION); glLoadIdentity(); // 0,0 should be top left corner - glOrtho(0, renderSize.x, renderSize.y, 0, -100, 100); + glOrtho(0, windowSize.width, windowSize.height, 0, -100, 100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); From 73acea701915e0b857482af6006cfb9342925032 Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Sun, 3 Mar 2024 23:58:31 +0100 Subject: [PATCH 2/2] Fix the mouse cursor getting limited by the wrong bounding box --- libs/driver/src/VideoDriver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/driver/src/VideoDriver.cpp b/libs/driver/src/VideoDriver.cpp index 2c67adf0f8..91784d51eb 100644 --- a/libs/driver/src/VideoDriver.cpp +++ b/libs/driver/src/VideoDriver.cpp @@ -27,7 +27,7 @@ VideoDriver::VideoDriver(VideoDriverLoaderInterface* CallBack) Position VideoDriver::GetMousePos() const { - return mouse_xy.pos; + return mouse_xy.pos * (int)dpiScale_; } /**