From f4a570cc5fa958c10ad872a16c475f8896b0d32b Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Fri, 18 Aug 2023 20:28:42 +0200 Subject: [PATCH] sim: Add configurable OLED scale --- sim/fakes/_sim.py | 11 ++++++----- sim/run.py | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sim/fakes/_sim.py b/sim/fakes/_sim.py index 6a86ced947..2a3f19dcae 100644 --- a/sim/fakes/_sim.py +++ b/sim/fakes/_sim.py @@ -30,6 +30,7 @@ background = pygame.image.load(bgpath) OLED_SIZE = int(os.environ["SIM_OLED_SIZE"]) OLED_ASPECT = float(os.environ["SIM_OLED_ASPECT"]) +OLED_SCALE = float(os.environ["SIM_OLED_SCALE"]) def path_replace(p): @@ -518,11 +519,11 @@ class Simulation: center_x = screen_w // 2 center_y = screen_h // 2 if FULL_SCREEN: - off_x = center_x - (screen_h * OLED_ASPECT // 2) - off_y = center_y - (screen_h // 2) - new = pygame.transform.scale( - self._oled_surface, (screen_h * OLED_ASPECT, screen_h) - ) + size_x = screen_h * OLED_ASPECT * OLED_SCALE + size_y = screen_h * OLED_SCALE + off_x = center_x - (size_x // 2) + off_y = center_y - (size_y // 2) + new = pygame.transform.scale(self._oled_surface, (size_x, size_y)) full.blit(new, (off_x, off_y)) else: off_x = center_x - (OLED_SIZE // 2) diff --git a/sim/run.py b/sim/run.py index 119af7e379..d275f72a55 100755 --- a/sim/run.py +++ b/sim/run.py @@ -164,6 +164,7 @@ def sim_main(): ) parser.add_argument("--oled-size", dest="oled_size", default=240) parser.add_argument("--oled-aspect", dest="oled_aspect", default=1) + parser.add_argument("--oled-scale", dest="oled_scale", default=1) parser.add_argument( "override_app", nargs="?", @@ -175,6 +176,7 @@ def sim_main(): os.environ["SIM_FULL_SCREEN"] = "1" if args.full_screen else "0" os.environ["SIM_OLED_SIZE"] = str(args.oled_size) os.environ["SIM_OLED_ASPECT"] = str(args.oled_aspect) + os.environ["SIM_OLED_SCALE"] = str(args.oled_scale) import _sim _sim.SCREENSHOT = args.screenshot -- GitLab