Explorar el Código

Wayland: Move 96 DPI default to outputHandleMode

Closes #1792.
Nicolas Caramelli hace 4 años
padre
commit
1adfbde4d7
Se han modificado 2 ficheros con 9 adiciones y 13 borrados
  1. 0 13
      src/wl_init.c
  2. 9 0
      src/wl_monitor.c

+ 0 - 13
src/wl_init.c

@@ -1038,8 +1038,6 @@ int _glfwPlatformInit(void)
     char *cursorSizeEnd;
     long cursorSizeLong;
     int cursorSize;
-    int i;
-    _GLFWmonitor* monitor;
 
     _glfw.wl.cursor.handle = _glfw_dlopen("libwayland-cursor.so.0");
     if (!_glfw.wl.cursor.handle)
@@ -1148,17 +1146,6 @@ int _glfwPlatformInit(void)
     // Sync so we got all initial output events
     wl_display_roundtrip(_glfw.wl.display);
 
-    for (i = 0; i < _glfw.monitorCount; ++i)
-    {
-        monitor = _glfw.monitors[i];
-        if (monitor->widthMM <= 0 || monitor->heightMM <= 0)
-        {
-            // If Wayland does not provide a physical size, assume the default 96 DPI
-            monitor->widthMM  = (int) (monitor->modes[monitor->wl.currentMode].width * 25.4f / 96.f);
-            monitor->heightMM = (int) (monitor->modes[monitor->wl.currentMode].height * 25.4f / 96.f);
-        }
-    }
-
     _glfwInitTimerPOSIX();
 
     _glfw.wl.timerfd = -1;

+ 9 - 0
src/wl_monitor.c

@@ -81,7 +81,16 @@ static void outputHandleMode(void* data,
     monitor->modes[monitor->modeCount - 1] = mode;
 
     if (flags & WL_OUTPUT_MODE_CURRENT)
+    {
         monitor->wl.currentMode = monitor->modeCount - 1;
+
+        if (monitor->widthMM <= 0 || monitor->heightMM <= 0)
+        {
+            // If Wayland does not provide a physical size, assume the default 96 DPI
+            monitor->widthMM  = (int) (width * 25.4f / 96.f);
+            monitor->heightMM = (int) (height * 25.4f / 96.f);
+        }
+    }
 }
 
 static void outputHandleDone(void* data, struct wl_output* output)