Merge branch 'toggle-fullscreen' into 'master'

Added fullscreen toggle

See merge request bixilon/minosoft!34
This commit is contained in:
Bixilon 2021-12-12 13:20:35 +01:00
commit 1f4dd9fc92
3 changed files with 27 additions and 0 deletions

View File

@ -282,6 +282,16 @@ class RenderWindow(
sendDebugMessage("Pausing outgoing packets: ${it.format()}")
connection.network.pauseSending(it)
}
inputHandler.registerKeyCallback("minosoft:toggle_fullscreen".toResourceLocation(),
KeyBinding(
mapOf(
KeyAction.PRESS to setOf(KeyCodes.KEY_F11),
),
ignoreConsumer = true,
)) {
window.fullscreen = !window.fullscreen
}
}
fun startLoop() {

View File

@ -34,6 +34,7 @@ interface BaseWindow {
var visible: Boolean
var resizable: Boolean
var fullscreen: Boolean
var swapInterval: Int

View File

@ -104,6 +104,22 @@ class GLFWWindow(
field = value
}
override var fullscreen: Boolean = false
set(value) {
if (field == value) {
return
}
val monitor = glfwGetPrimaryMonitor()
val mode = glfwGetVideoMode(monitor) ?: return
if (value) {
glfwSetWindowMonitor(window, monitor, 15, 15, mode.width(), mode.height(), mode.refreshRate())
} else {
glfwSetWindowMonitor(window, 0, (mode.width() - DEFAULT_WINDOW_SIZE.x) / 2, (mode.height() - DEFAULT_WINDOW_SIZE.y) / 2, DEFAULT_WINDOW_SIZE.x, DEFAULT_WINDOW_SIZE.y, GLFW_DONT_CARE)
}
field = value
}
override var swapInterval: Int = -1
set(value) {
if (field == value) {