mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Prevent rendering issue on loading screen when you exit prematurely
and try to restart the app again (Android)
This commit is contained in:
committed by
Anthony Calosa
parent
cffda2c1a7
commit
ae8c6c2917
@@ -49,6 +49,7 @@ public class Forge implements ApplicationListener {
|
|||||||
private static int continuousRenderingCount = 1; //initialize to 1 since continuous rendering is the default
|
private static int continuousRenderingCount = 1; //initialize to 1 since continuous rendering is the default
|
||||||
private static final Stack<FScreen> screens = new Stack<FScreen>();
|
private static final Stack<FScreen> screens = new Stack<FScreen>();
|
||||||
private static boolean textureFiltering = false;
|
private static boolean textureFiltering = false;
|
||||||
|
private static boolean destroyThis = false;
|
||||||
|
|
||||||
public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0) {
|
public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0) {
|
||||||
if (GuiBase.getInterface() == null) {
|
if (GuiBase.getInterface() == null) {
|
||||||
@@ -70,7 +71,14 @@ public class Forge implements ApplicationListener {
|
|||||||
graphics = new Graphics();
|
graphics = new Graphics();
|
||||||
splashScreen = new SplashScreen();
|
splashScreen = new SplashScreen();
|
||||||
Gdx.input.setInputProcessor(new MainInputProcessor());
|
Gdx.input.setInputProcessor(new MainInputProcessor());
|
||||||
|
/*
|
||||||
|
Set CatchBackKey here and exit the app when you hit the
|
||||||
|
back button while the textures,fonts,etc are still loading,
|
||||||
|
to prevent rendering issue when you try to restart
|
||||||
|
the app again (seems it doesnt dispose correctly...?!?)
|
||||||
|
*/
|
||||||
|
Gdx.input.setCatchBackKey(true);
|
||||||
|
destroyThis = true; //Prevent back()
|
||||||
ForgePreferences prefs = new ForgePreferences();
|
ForgePreferences prefs = new ForgePreferences();
|
||||||
|
|
||||||
String skinName;
|
String skinName;
|
||||||
@@ -115,7 +123,7 @@ public class Forge implements ApplicationListener {
|
|||||||
FSkin.loadFull(splashScreen);
|
FSkin.loadFull(splashScreen);
|
||||||
|
|
||||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS); //start background music
|
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS); //start background music
|
||||||
|
destroyThis = false; //Allow back()
|
||||||
Gdx.input.setCatchBackKey(true);
|
Gdx.input.setCatchBackKey(true);
|
||||||
Gdx.input.setCatchMenuKey(true);
|
Gdx.input.setCatchMenuKey(true);
|
||||||
openScreen(HomeScreen.instance);
|
openScreen(HomeScreen.instance);
|
||||||
@@ -167,6 +175,8 @@ public class Forge implements ApplicationListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void back() {
|
public static void back() {
|
||||||
|
if(destroyThis)
|
||||||
|
return;
|
||||||
if (screens.size() < 2) {
|
if (screens.size() < 2) {
|
||||||
exit(false); //prompt to exit if attempting to go back from home screen
|
exit(false); //prompt to exit if attempting to go back from home screen
|
||||||
return;
|
return;
|
||||||
@@ -481,7 +491,12 @@ public class Forge implements ApplicationListener {
|
|||||||
touchDown(0,0,0,0);
|
touchDown(0,0,0,0);
|
||||||
return fling(0,1000);
|
return fling(0,1000);
|
||||||
}
|
}
|
||||||
|
if(keyCode == Keys.BACK){
|
||||||
|
if (destroyThis)
|
||||||
|
deviceAdapter.exit();
|
||||||
|
else if(onHomeScreen())
|
||||||
|
back();
|
||||||
|
}
|
||||||
if (keyInputAdapter == null) {
|
if (keyInputAdapter == null) {
|
||||||
if (KeyInputAdapter.isModifierKey(keyCode)) {
|
if (KeyInputAdapter.isModifierKey(keyCode)) {
|
||||||
return false; //don't process modifiers keys for unknown adapter
|
return false; //don't process modifiers keys for unknown adapter
|
||||||
|
|||||||
Reference in New Issue
Block a user