From 629ccb8c71cb4147cf23397a11fdd1c07cdb8aa3 Mon Sep 17 00:00:00 2001 From: Sebastiaan de Schaetzen Date: Tue, 16 Dec 2025 10:34:42 +0100 Subject: [PATCH] Add support for Alt+Enter toggling fullscreen --- .../diceos/system/DisplayService.java | 9 +++++ .../diceos/system/InputService.java | 36 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/main/java/be/seeseemelk/diceos/system/InputService.java diff --git a/src/main/java/be/seeseemelk/diceos/system/DisplayService.java b/src/main/java/be/seeseemelk/diceos/system/DisplayService.java index 346137c..86d3b52 100644 --- a/src/main/java/be/seeseemelk/diceos/system/DisplayService.java +++ b/src/main/java/be/seeseemelk/diceos/system/DisplayService.java @@ -1,5 +1,6 @@ package be.seeseemelk.diceos.system; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; @@ -26,6 +27,14 @@ public class DisplayService implements OnStartup { batch = new SpriteBatch(); } + public void toggleFullscreen() { + if (Gdx.graphics.isFullscreen()) { + Gdx.graphics.setWindowedMode(getWidth(), getHeight()); + } else { + Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode()); + } + } + public int getWidth() { return 640; } diff --git a/src/main/java/be/seeseemelk/diceos/system/InputService.java b/src/main/java/be/seeseemelk/diceos/system/InputService.java new file mode 100644 index 0000000..e456edf --- /dev/null +++ b/src/main/java/be/seeseemelk/diceos/system/InputService.java @@ -0,0 +1,36 @@ +package be.seeseemelk.diceos; + +import be.seeseemelk.diceos.system.DisplayService; +import be.seeseemelk.diceos.system.OnStartup; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.InputAdapter; +import io.avaje.inject.Component; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Component +@RequiredArgsConstructor +public class InputService implements OnStartup { + private final DisplayService displayService; + + @Override + public void onStartup() { + Gdx.input.setInputProcessor(new InputAdapter() { + @Override + public boolean keyDown(int keycode) { + log.info("Key pressed: {}", keycode); + if (keycode == Input.Keys.ENTER && isAltDown()) { + displayService.toggleFullscreen(); + } + return false; + } + }); + } + + public boolean isAltDown() { + return Gdx.input.isKeyPressed(com.badlogic.gdx.Input.Keys.ALT_LEFT) || + Gdx.input.isKeyPressed(com.badlogic.gdx.Input.Keys.ALT_RIGHT); + } +}