From 8114adf5ae21ff1dc042700e1a9edac192db3834 Mon Sep 17 00:00:00 2001 From: JakeTheW0lf Date: Wed, 19 Nov 2025 21:24:26 +0100 Subject: [PATCH 1/2] Resizing only window --- src/main/java/fri/shapesge/engine/Game.java | 4 ++++ .../java/fri/shapesge/engine/GameWindow.java | 20 ++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/fri/shapesge/engine/Game.java b/src/main/java/fri/shapesge/engine/Game.java index 6600fd4..914d991 100644 --- a/src/main/java/fri/shapesge/engine/Game.java +++ b/src/main/java/fri/shapesge/engine/Game.java @@ -93,4 +93,8 @@ public void deregisterEventTarget(Object target) { public GameSoundSystem getGameSoundSystem() { return this.gameSoundSystem; } + + public void updateFullscreenResolution(int width, int height) { + this.gameWindow.resizeFullscreenResolution(width, height); + } } diff --git a/src/main/java/fri/shapesge/engine/GameWindow.java b/src/main/java/fri/shapesge/engine/GameWindow.java index 4601def..0dd5a2c 100644 --- a/src/main/java/fri/shapesge/engine/GameWindow.java +++ b/src/main/java/fri/shapesge/engine/GameWindow.java @@ -2,15 +2,7 @@ import javax.swing.JFrame; import javax.swing.WindowConstants; -import java.awt.AWTEvent; -import java.awt.Canvas; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Graphics2D; -import java.awt.GraphicsDevice; -import java.awt.GraphicsEnvironment; -import java.awt.GridLayout; +import java.awt.*; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.KeyEvent; @@ -122,6 +114,16 @@ public void showIfNeeded() { } } + public void resizeFullscreenResolution(int width, int height) { + if (this.isFullscreen) { + Dimension dimension = new Dimension(width, height); + DEVICE.getFullScreenWindow().setSize(dimension); + this.frame.setSize(dimension); + this.gamePanel.setSize(dimension); + + } + } + private class GamePanel extends Canvas { private AffineTransform canvasTransform; private AffineTransform invertedCanvasTransform; From 4773fe6abe45df29c07c7481808f6417fa133790 Mon Sep 17 00:00:00 2001 From: adamvlcko Date: Wed, 19 Nov 2025 23:14:34 +0100 Subject: [PATCH 2/2] Dynamic fullscreen scaling --- src/main/java/fri/shapesge/engine/Game.java | 4 +-- .../java/fri/shapesge/engine/GameWindow.java | 26 ++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/main/java/fri/shapesge/engine/Game.java b/src/main/java/fri/shapesge/engine/Game.java index 914d991..60c7726 100644 --- a/src/main/java/fri/shapesge/engine/Game.java +++ b/src/main/java/fri/shapesge/engine/Game.java @@ -94,7 +94,7 @@ public GameSoundSystem getGameSoundSystem() { return this.gameSoundSystem; } - public void updateFullscreenResolution(int width, int height) { - this.gameWindow.resizeFullscreenResolution(width, height); + public void adjustFullscreenScaling(int width, int height) { + this.gameWindow.resizeFullscreenScaling(width, height); } } diff --git a/src/main/java/fri/shapesge/engine/GameWindow.java b/src/main/java/fri/shapesge/engine/GameWindow.java index 0dd5a2c..d2d43de 100644 --- a/src/main/java/fri/shapesge/engine/GameWindow.java +++ b/src/main/java/fri/shapesge/engine/GameWindow.java @@ -2,7 +2,15 @@ import javax.swing.JFrame; import javax.swing.WindowConstants; -import java.awt.*; +import java.awt.AWTEvent; +import java.awt.Canvas; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.GridLayout; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.KeyEvent; @@ -21,8 +29,8 @@ class GameWindow { private final GameObjects gameObjects; private final GameInputProcessor gameInputProcessor; private final GameFPSCounter fpsCounter; - private final int width; - private final int height; + private int width; + private int height; private final GameEventDispatcher gameEventDispatcher; private final Color backgroundColor; private final boolean showInfo; @@ -114,13 +122,19 @@ public void showIfNeeded() { } } - public void resizeFullscreenResolution(int width, int height) { + public void resizeFullscreenScaling(int width, int height) { if (this.isFullscreen) { + DEVICE.setFullScreenWindow(null); + + this.width = width; + this.height = height; + Dimension dimension = new Dimension(width, height); - DEVICE.getFullScreenWindow().setSize(dimension); this.frame.setSize(dimension); - this.gamePanel.setSize(dimension); + this.gamePanel.setPreferredSize(dimension); + DEVICE.setFullScreenWindow(this.frame); + this.gamePanel.resized(); } }