From ff48fa0ac82a74705a5529669da7db6206dd18ce Mon Sep 17 00:00:00 2001 From: hneemann Date: Fri, 30 Jul 2021 18:17:49 +0200 Subject: [PATCH] adds scaling to VGA window; closes #800 --- .../gui/components/graphics/VGADialog.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/neemann/digital/gui/components/graphics/VGADialog.java b/src/main/java/de/neemann/digital/gui/components/graphics/VGADialog.java index c4f18dca5..2bcbc93c7 100644 --- a/src/main/java/de/neemann/digital/gui/components/graphics/VGADialog.java +++ b/src/main/java/de/neemann/digital/gui/components/graphics/VGADialog.java @@ -54,17 +54,21 @@ public class VGADialog extends JDialog { @Override protected void paintComponent(Graphics g) { - double sx = ((double) getWidth()) / image.getWidth(); - double sy = ((double) getHeight()) / image.getHeight(); + if (getWidth() == image.getWidth() && getHeight() == image.getHeight()) { + g.drawImage(image, 0, 0, null); + } else { + double sx = ((double) getWidth()) / image.getWidth(); + double sy = ((double) getHeight()) / image.getHeight(); - double s = Math.min(sx, sy); - int w = (int) Math.floor(image.getWidth() * s); - int h = (int) Math.floor(image.getHeight() * s); + double s = Math.min(sx, sy); + int w = (int) Math.floor(image.getWidth() * s); + int h = (int) Math.floor(image.getHeight() * s); - int x = (getWidth() - w) / 2; - int y = (getHeight() - h) / 2; + int x = (getWidth() - w) / 2; + int y = (getHeight() - h) / 2; - g.drawImage(image, x, y, w, h, 0, 0, image.getWidth(), image.getHeight(), null); + g.drawImage(image, x, y, w, h, 0, 0, image.getWidth(), image.getHeight(), null); + } } } }