Browse Source

fix(rcore): correctly scale content on macOS (#5186)

Currently, scaling doesn't work correctly on macOS (see #5185).  This commit
works around this issue by disabling SCALE_FRAMEBUFFER on macOS when
`FLAG_WINDOW_HIGHDPI` is unset.
Max Coplan 3 days ago
parent
commit
fbdf5e4fd2
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/platforms/rcore_desktop_glfw.c

+ 9 - 1
src/platforms/rcore_desktop_glfw.c

@@ -1428,10 +1428,18 @@ int InitPlatform(void)
     // was enabled by default. Disabling it gets back the old behavior. A
     // complete fix will require removing a lot of CORE.Window.render
     // manipulation code
-    glfwWindowHint(GLFW_SCALE_FRAMEBUFFER, GLFW_FALSE);
+    // NOTE: This currently doesn't work on macOS(see #5185), so we skip it there
+    // when FLAG_WINDOW_HIGHDPI is *unset*
+#if !defined(__APPLE__)
+        glfwWindowHint(GLFW_SCALE_FRAMEBUFFER, GLFW_FALSE);
+#endif
 
     if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0)
     {
+        // since we skipped it before, now make sure to set this on macOS
+#if defined(__APPLE__)
+        glfwWindowHint(GLFW_SCALE_FRAMEBUFFER, GLFW_FALSE);
+#endif
         // Resize window content area based on the monitor content scale
         // NOTE: This hint only has an effect on platforms where screen coordinates and pixels always map 1:1 such as Windows and X11
         // On platforms like macOS the resolution of the framebuffer is changed independently of the window size