Просмотр исходного кода

Considering the window's scale when setting the viewport. (#1659)

This appears to fix the issue with macOS windows opening with the wrong scale.
Sean Heber 4 лет назад
Родитель
Сommit
f4d6bad607
1 измененных файлов с 6 добавлено и 4 удалено
  1. 6 4
      src/core.c

+ 6 - 4
src/core.c

@@ -4258,10 +4258,12 @@ static void SetupViewport(int width, int height)
     CORE.Window.render.width = width;
     CORE.Window.render.height = height;
 
-    // Set viewport width and height
-    // NOTE: We consider render size and offset in case black bars are required and
-    // render area does not match full display area (this situation is only applicable on fullscreen mode)
-    rlViewport(CORE.Window.renderOffset.x/2, CORE.Window.renderOffset.y/2, CORE.Window.render.width - CORE.Window.renderOffset.x, CORE.Window.render.height - CORE.Window.renderOffset.y);
+	// Set viewport width and height
+	// NOTE: We consider render size (scaled) and offset in case black bars are required and
+	// render area does not match full display area (this situation is only applicable on fullscreen mode)
+	float xScale = 1, yScale = 1;
+	glfwGetWindowContentScale(CORE.Window.handle, &xScale, &yScale);
+	rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width - CORE.Window.renderOffset.x)*xScale, (CORE.Window.render.height - CORE.Window.renderOffset.y)*yScale);
 
     rlMatrixMode(RL_PROJECTION);        // Switch to projection matrix
     rlLoadIdentity();                   // Reset current matrix (projection)