diff --git a/Engine/src/opengl/java/dev/euph/engine/opengl/GLWindow.java b/Engine/src/opengl/java/dev/euph/engine/opengl/GLWindow.java index 3b6013c..e02072f 100644 --- a/Engine/src/opengl/java/dev/euph/engine/opengl/GLWindow.java +++ b/Engine/src/opengl/java/dev/euph/engine/opengl/GLWindow.java @@ -19,19 +19,24 @@ public class GLWindow extends Window { }); if (glfwGetPlatform() != GLFW_PLATFORM_WAYLAND) { - GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor()); - assert vidmode != null; + GLFWVidMode videoMode = glfwGetVideoMode(glfwGetPrimaryMonitor()); + assert videoMode != null; glfwSetWindowPos( id, - (vidmode.width() - width) / 2, - (vidmode.height() - height) / 2 + (videoMode.width() - width) / 2, + (videoMode.height() - height) / 2 ); } addResizeCallback((int newWidth, int newHeight) -> { GLWindow.this.width = newWidth; GLWindow.this.height = newHeight; - glViewport(0, 0, newWidth, newHeight); + + float[] x = new float[1]; + float[] y = new float[1]; + glfwGetWindowContentScale(getId(), x, y); + + glViewport(0, 0, (int) (newWidth * x[0]), (int) (newHeight * y[0])); }); GL.createCapabilities();