From 92010babf5825d94ff7a79f79cc7638a8d76230a Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 5 Apr 2023 22:20:47 +0800 Subject: [PATCH 1/4] update TransitionScreen --- .../src/forge/screens/TransitionScreen.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/TransitionScreen.java b/forge-gui-mobile/src/forge/screens/TransitionScreen.java index 3d3b8ba18ea..ba139bec770 100644 --- a/forge-gui-mobile/src/forge/screens/TransitionScreen.java +++ b/forge-gui-mobile/src/forge/screens/TransitionScreen.java @@ -33,6 +33,7 @@ public class TransitionScreen extends FContainer { private String message = ""; boolean matchTransition, isloading, isIntro, isFadeMusic, isArenaScene; GlyphLayout layout; + BitmapFont font; public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) { this(proc, screen, enterMatch, loading, false, false); } @@ -51,6 +52,14 @@ public class TransitionScreen extends FContainer { runnable = proc; textureRegion = screen; matchTransition = enterMatch; + if (matchTransition) { + float fontScale = GuiBase.isAndroid() ? 14f : 10f; + float screenW = Forge.isLandscapeMode() ? Forge.getScreenWidth() : Forge.getScreenHeight(); + float screenH = Forge.isLandscapeMode() ? Forge.getScreenHeight() : Forge.getScreenWidth(); + font = Controls.getBitmapFont("default", fontScale/(screenW/screenH)); + } else { + font = Controls.getBitmapFont("default"); + } isloading = loading; isIntro = intro; isFadeMusic = fadeMusic; @@ -83,6 +92,7 @@ public class TransitionScreen extends FContainer { } public void disableMatchTransition() { matchTransition = false; + Controls.getBitmapFont("default"); } private class BGAnimation extends ForgeAnimation { @@ -145,8 +155,7 @@ public class TransitionScreen extends FContainer { float centerY = screenH/2; TextureRegion enemyAvatar = Config.instance().getAtlas(enemyAtlasPath).createSprite("Avatar"); enemyAvatar.flip(true, false); - float fontScale = GuiBase.isAndroid() ? 14f : 10f; - BitmapFont font = Controls.getBitmapFont("default", fontScale/(screenW/screenH)); + if (textureRegion != null) { if (isArenaScene) g.drawImage(screenUIBackground, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); From 77e218e32ec75e94fd2eef2cd65a923a2239433e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 5 Apr 2023 22:29:01 +0800 Subject: [PATCH 2/4] use configdata for font height, width --- forge-gui-mobile/src/forge/screens/TransitionScreen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/TransitionScreen.java b/forge-gui-mobile/src/forge/screens/TransitionScreen.java index ba139bec770..fd3d0330561 100644 --- a/forge-gui-mobile/src/forge/screens/TransitionScreen.java +++ b/forge-gui-mobile/src/forge/screens/TransitionScreen.java @@ -54,8 +54,8 @@ public class TransitionScreen extends FContainer { matchTransition = enterMatch; if (matchTransition) { float fontScale = GuiBase.isAndroid() ? 14f : 10f; - float screenW = Forge.isLandscapeMode() ? Forge.getScreenWidth() : Forge.getScreenHeight(); - float screenH = Forge.isLandscapeMode() ? Forge.getScreenHeight() : Forge.getScreenWidth(); + float screenW = Forge.isLandscapeMode() ? Config.instance().getConfigData().screenWidth : Config.instance().getConfigData().screenHeight; + float screenH = Forge.isLandscapeMode() ? Config.instance().getConfigData().screenHeight : Config.instance().getConfigData().screenWidth; font = Controls.getBitmapFont("default", fontScale/(screenW/screenH)); } else { font = Controls.getBitmapFont("default"); From 6b393fe0de8550961d48531bb9c42d7fbc09bf71 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 5 Apr 2023 22:44:26 +0800 Subject: [PATCH 3/4] revert.. --- .../src/forge/screens/TransitionScreen.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/TransitionScreen.java b/forge-gui-mobile/src/forge/screens/TransitionScreen.java index fd3d0330561..3d3b8ba18ea 100644 --- a/forge-gui-mobile/src/forge/screens/TransitionScreen.java +++ b/forge-gui-mobile/src/forge/screens/TransitionScreen.java @@ -33,7 +33,6 @@ public class TransitionScreen extends FContainer { private String message = ""; boolean matchTransition, isloading, isIntro, isFadeMusic, isArenaScene; GlyphLayout layout; - BitmapFont font; public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) { this(proc, screen, enterMatch, loading, false, false); } @@ -52,14 +51,6 @@ public class TransitionScreen extends FContainer { runnable = proc; textureRegion = screen; matchTransition = enterMatch; - if (matchTransition) { - float fontScale = GuiBase.isAndroid() ? 14f : 10f; - float screenW = Forge.isLandscapeMode() ? Config.instance().getConfigData().screenWidth : Config.instance().getConfigData().screenHeight; - float screenH = Forge.isLandscapeMode() ? Config.instance().getConfigData().screenHeight : Config.instance().getConfigData().screenWidth; - font = Controls.getBitmapFont("default", fontScale/(screenW/screenH)); - } else { - font = Controls.getBitmapFont("default"); - } isloading = loading; isIntro = intro; isFadeMusic = fadeMusic; @@ -92,7 +83,6 @@ public class TransitionScreen extends FContainer { } public void disableMatchTransition() { matchTransition = false; - Controls.getBitmapFont("default"); } private class BGAnimation extends ForgeAnimation { @@ -155,7 +145,8 @@ public class TransitionScreen extends FContainer { float centerY = screenH/2; TextureRegion enemyAvatar = Config.instance().getAtlas(enemyAtlasPath).createSprite("Avatar"); enemyAvatar.flip(true, false); - + float fontScale = GuiBase.isAndroid() ? 14f : 10f; + BitmapFont font = Controls.getBitmapFont("default", fontScale/(screenW/screenH)); if (textureRegion != null) { if (isArenaScene) g.drawImage(screenUIBackground, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); From 03e335f42f7f363949cb62bc21267b1a1c25e67f Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 6 Apr 2023 06:58:43 +0800 Subject: [PATCH 4/4] fix viewport update on resize --- forge-gui-mobile/src/forge/Forge.java | 9 ++++++--- forge-gui-mobile/src/forge/adventure/scene/Scene.java | 3 +++ forge-gui-mobile/src/forge/adventure/scene/UIScene.java | 6 +++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 79cda06a27e..4090e7cb3d8 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -164,6 +164,9 @@ public class Forge implements ApplicationListener { frameRate = new FrameRate(); animationBatch = new SpriteBatch(); inputProcessor = new MainInputProcessor(); + //screenWidth and screenHeight should be set initially and only change upon restarting the app + screenWidth = Gdx.app.getGraphics().getWidth(); + screenHeight = Gdx.app.getGraphics().getHeight(); Gdx.input.setInputProcessor(inputProcessor); /* @@ -958,15 +961,15 @@ public class Forge implements ApplicationListener { @Override public void resize(int width, int height) { try { - screenWidth = width; - screenHeight = height; if (currentScreen != null) { currentScreen.setSize(width, height); } else if (splashScreen != null) { splashScreen.setSize(width, height); } + if (currentScene != null) + currentScene.resize(width, height); } catch (Exception ex) { - graphics.end(); + //graphics.end(); //check if sentry is enabled, if not it will call the gui interface but here we end the graphics so we only send it via sentry.. if (BugReporter.isSentryEnabled()) BugReporter.reportException(ex); diff --git a/forge-gui-mobile/src/forge/adventure/scene/Scene.java b/forge-gui-mobile/src/forge/adventure/scene/Scene.java index 781ddb002ac..2e84eaf364d 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/Scene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/Scene.java @@ -93,6 +93,9 @@ public abstract class Scene implements Disposable { public void updateInput() { } + public void resize(int width, int height) { + + } } diff --git a/forge-gui-mobile/src/forge/adventure/scene/UIScene.java b/forge-gui-mobile/src/forge/adventure/scene/UIScene.java index f353ef13ddf..887f18f9b6f 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/UIScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/UIScene.java @@ -192,7 +192,6 @@ public class UIScene extends Scene { } public UIScene(String uiFilePath) { - uiFile = uiFilePath; stage = new Stage(new ScalingViewport(Scaling.stretch, getIntendedWidth(), getIntendedHeight())) { @Override @@ -711,4 +710,9 @@ public class UIScene extends Scene { super.updateInput(); Gdx.input.setInputProcessor(stage); } + + @Override + public void resize(int width, int height) { + stage.getViewport().update(width, height, true); + } }