From ce796fa073bf58bede81a0d0a2f9049d725728ab Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 15 Apr 2014 00:12:33 +0000 Subject: [PATCH] Add error traps to main render and resize functions --- forge-gui-mobile/src/forge/Forge.java | 74 +++++++++++++++++---------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index df478af745d..b801c3c11ae 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -123,46 +123,64 @@ public class Forge implements ApplicationListener { } private static void setCurrentScreen(FScreen screen0) { - Animation.endAll(); //end all active animations before switching screens - - currentScreen = screen0; - currentScreen.setSize(screenWidth, screenHeight); - currentScreen.onActivate(); + try { + Animation.endAll(); //end all active animations before switching screens + + currentScreen = screen0; + currentScreen.setSize(screenWidth, screenHeight); + currentScreen.onActivate(); + } + catch (Exception ex) { + batch.end(); + BugReporter.reportException(ex); + } } @Override public void render() { - Animation.advanceAll(); - - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); // Clear the screen. - - FContainer screen = currentScreen; - if (screen == null) { - screen = splashScreen; - if (screen == null) { - return; + try { + Animation.advanceAll(); + + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); // Clear the screen. + + FContainer screen = currentScreen; + if (screen == null) { + screen = splashScreen; + if (screen == null) { + return; + } } + + batch.begin(); + Graphics g = new Graphics(); + screen.draw(g); + for (FOverlay overlay : FOverlay.getOverlays()) { + overlay.setSize(screenWidth, screenHeight); //update overlay sizes as they're rendered + overlay.draw(g); + } + batch.end(); } - - batch.begin(); - Graphics g = new Graphics(); - screen.draw(g); - for (FOverlay overlay : FOverlay.getOverlays()) { - overlay.setSize(screenWidth, screenHeight); //update overlay sizes as they're rendered - overlay.draw(g); + catch (Exception ex) { + batch.end(); + BugReporter.reportException(ex); } - batch.end(); } @Override public void resize(int width, int height) { - screenWidth = width; - screenHeight = height; - if (currentScreen != null) { - currentScreen.setSize(width, height); + try { + screenWidth = width; + screenHeight = height; + if (currentScreen != null) { + currentScreen.setSize(width, height); + } + else if (splashScreen != null) { + splashScreen.setSize(width, height); + } } - else if (splashScreen != null) { - splashScreen.setSize(width, height); + catch (Exception ex) { + batch.end(); + BugReporter.reportException(ex); } }