From 411e3493583b5692aa3749b21e5b79e70f10055e Mon Sep 17 00:00:00 2001 From: Konstantinos Chatzilygeroudis Date: Thu, 7 Nov 2019 13:24:53 +0100 Subject: [PATCH] GlfwApplication: Workaround for DPI scaling when monitor size is equal to zero --- src/Magnum/Platform/GlfwApplication.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Magnum/Platform/GlfwApplication.cpp b/src/Magnum/Platform/GlfwApplication.cpp index bc73a5e23..ee9f3a17d 100644 --- a/src/Magnum/Platform/GlfwApplication.cpp +++ b/src/Magnum/Platform/GlfwApplication.cpp @@ -181,6 +181,10 @@ Vector2 GlfwApplication::dpiScaling(const Configuration& configuration) const { const GLFWvidmode* const mode = glfwGetVideoMode(monitor); Vector2i monitorSize; glfwGetMonitorPhysicalSize(monitor, &monitorSize.x(), &monitorSize.y()); + if(monitorSize.isZero()) { + Warning{verbose} << "Platform::GlfwApplication: the physical monitor size is zero? DPI scaling won't be used"; + return Vector2{1.0f}; + } auto dpi = Vector2{Vector2i{mode->width, mode->height}*25.4f/Vector2{monitorSize}}; const Vector2 dpiScaling{dpi/96.0f}; Debug{verbose} << "Platform::GlfwApplication: virtual DPI scaling" << dpiScaling; @@ -205,6 +209,10 @@ Vector2 GlfwApplication::dpiScaling(const Configuration& configuration) const { const GLFWvidmode* const mode = glfwGetVideoMode(monitor); Vector2i monitorSize; glfwGetMonitorPhysicalSize(monitor, &monitorSize.x(), &monitorSize.y()); + if(monitorSize.isZero()) { + Warning{verbose} << "Platform::GlfwApplication: the physical monitor size is zero? DPI scaling won't be used"; + return Vector2{1.0f}; + } auto dpi = Vector2{Vector2i{mode->width, mode->height}*25.4f/Vector2{monitorSize}}; const Vector2 dpiScaling{dpi/96.0f}; Debug{verbose} << "Platform::GlfwApplication: physical DPI scaling" << dpiScaling;