From: Carsten W. <ca...@us...> - 2006-12-11 21:56:14
|
Update of /cvsroot/jake2/jake2/src/jake2/render/opengl In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv28921/src/jake2/render/opengl Modified Files: Jsr231Driver.java Log Message: hope this helps on win32 screen mode switching Index: Jsr231Driver.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/opengl/Jsr231Driver.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Jsr231Driver.java 11 Dec 2006 21:32:17 -0000 1.18 --- Jsr231Driver.java 11 Dec 2006 21:56:10 -0000 1.19 *************** *** 52,56 **** private GraphicsDevice device; private DisplayMode oldDisplayMode; ! private Display display; private volatile Frame window; --- 52,56 ---- private GraphicsDevice device; private DisplayMode oldDisplayMode; ! private volatile Display display; private volatile Frame window; *************** *** 154,158 **** // destroy the existing window ! shutdown(); window = new Frame("Jake2 (jsr231)"); --- 154,158 ---- // destroy the existing window ! if (window != null) shutdown(); window = new Frame("Jake2 (jsr231)"); *************** *** 241,266 **** public void shutdown() { ! try { ! EventQueue.invokeAndWait(new Runnable() { ! public void run() { ! if (oldDisplayMode != null ! && device.getFullScreenWindow() != null) { ! try { ! if (device.isFullScreenSupported()) ! device.setDisplayMode(oldDisplayMode); ! device.setFullScreenWindow(null); ! } catch (Exception e) { ! e.printStackTrace(); } ! } } ! }); ! } catch (Exception e) { ! e.printStackTrace(); ! } ! if (window != null) { ! display.destroy(); ! window.dispose(); } } --- 241,278 ---- public void shutdown() { ! Thread exit = new Thread(new Runnable() { ! public void run() { ! ! try { ! EventQueue.invokeAndWait(new Runnable() { ! public void run() { ! if (oldDisplayMode != null ! && device.getFullScreenWindow() != null) { ! try { ! if (device.isFullScreenSupported()) ! device.setDisplayMode(oldDisplayMode); ! device.setFullScreenWindow(null); ! } catch (Exception e) { ! e.printStackTrace(); ! } ! } } ! }); ! } catch (Exception e) { ! e.printStackTrace(); } ! if (window != null) { ! display.destroy(); ! window.dispose(); ! } ! } ! }); ! exit.start(); ! try { ! exit.join(); ! } catch (InterruptedException e) { } + display = null; + } |