diff options
Diffstat (limited to 'backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java')
-rw-r--r-- | backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java b/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java index fca89db05..94f0c7617 100644 --- a/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java +++ b/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java @@ -315,6 +315,7 @@ public class Lwjgl3Application implements Application { Lwjgl3ApplicationConfiguration appConfig = Lwjgl3ApplicationConfiguration.copy(this.config); appConfig.setWindowedMode(config.windowWidth, config.windowHeight); appConfig.setWindowPosition(config.windowX, config.windowY); + appConfig.setWindowSizeLimits(config.windowMinWidth, config.windowMinHeight, config.windowMaxWidth, config.windowMaxHeight); appConfig.setResizable(config.windowResizable); appConfig.setDecorated(config.windowDecorated); appConfig.setWindowListener(config.windowListener); @@ -372,10 +373,19 @@ public class Lwjgl3Application implements Application { if (windowHandle == 0) { throw new GdxRuntimeException("Couldn't create window"); } + GLFW.glfwSetWindowSizeLimits(windowHandle, + config.windowMinWidth > -1 ? config.windowMinWidth : GLFW.GLFW_DONT_CARE, + config.windowMinHeight > -1 ? config.windowMinHeight : GLFW.GLFW_DONT_CARE, + config.windowMaxWidth > -1 ? config.windowMaxWidth : GLFW.GLFW_DONT_CARE, + config.windowMaxHeight> -1 ? config.windowMaxHeight : GLFW.GLFW_DONT_CARE); if (config.fullscreenMode == null) { if (config.windowX == -1 && config.windowY == -1) { + int windowWidth = Math.max(config.windowWidth, config.windowMinWidth); + int windowHeight = Math.max(config.windowHeight, config.windowMinHeight); + if (config.windowMaxWidth > -1) windowWidth = Math.min(windowWidth, config.windowMaxWidth); + if (config.windowMaxHeight > -1) windowHeight = Math.min(windowHeight, config.windowMaxHeight); GLFWVidMode vidMode = GLFW.glfwGetVideoMode(GLFW.glfwGetPrimaryMonitor()); - GLFW.glfwSetWindowPos(windowHandle, vidMode.width() / 2 - config.windowWidth / 2, vidMode.height() / 2 - config.windowHeight / 2); + GLFW.glfwSetWindowPos(windowHandle, vidMode.width() / 2 - windowWidth / 2, vidMode.height() / 2 - windowHeight / 2); } else { GLFW.glfwSetWindowPos(windowHandle, config.windowX, config.windowY); } |