Recently reInitVideo and reInitAudio were added to basegame. ReinitVideo has to be done in the update queue. recreateGraphicalContext calls reInitVideo & audio and is thrown in the update queue, whereas reinitvideo only should be, so that reinitvideo can be called from the user program without queuing it in the update.
Index: src/com/jmex/game/StandardGame.java
===================================================================
--- src/com/jmex/game/StandardGame.java (revision 4035)
+++ src/com/jmex/game/StandardGame.java (working copy)
@@ -381,27 +381,29 @@
AudioSystem.getSystem().cleanup();
}
}
-
- public void reinitVideo() {
- displayMins();
-
- display.recreateWindow(settings.getWidth(), settings.getHeight(), settings.getDepth(), settings.getFrequency(),
- settings.isFullscreen());
- camera = display.getRenderer().createCamera(display.getWidth(), display.getHeight());
- display.getRenderer().setBackgroundColor(backgroundColor);
- if ((settings.isMusic()) || (settings.isSFX())) {
- initSound();
- }
- }
- public void recreateGraphicalContext() {
- GameTaskQueueManager.getManager().update(new Callable<Object>() {
- public Object call() throws Exception {
- reinit();
- return null;
- }
- });
- }
+ public void reinitVideo() {
+ GameTaskQueueManager.getManager().update(new Callable<Object>() {
+ public Object call() throws Exception {
+ displayMins();
+
+ display.recreateWindow(settings.getWidth(), settings
+ .getHeight(), settings.getDepth(), settings
+ .getFrequency(), settings.isFullscreen());
+ camera = display.getRenderer().createCamera(display.getWidth(),
+ display.getHeight());
+ display.getRenderer().setBackgroundColor(backgroundColor);
+ if ((settings.isMusic()) || (settings.isSFX())) {
+ initSound();
+ }
+ return null;
+ }
+ });
+ }
+
+ public void recreateGraphicalContext() {
+ reinit();
+ }
protected void cleanup() {
GameStateManager.getInstance().cleanup();