From: Carsten W. <ca...@us...> - 2006-12-11 21:32:20
|
Update of /cvsroot/jake2/jake2/src/jake2/render/opengl In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv19041/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.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Jsr231Driver.java 11 Dec 2006 16:38:09 -0000 1.17 --- Jsr231Driver.java 11 Dec 2006 21:32:17 -0000 1.18 *************** *** 1,7 **** /* ! * JoglCommon.java * Copyright (C) 2004 * - * $Id$ */ /* --- 1,6 ---- /* ! * Jsr231Driver.java * Copyright (C) 2004 * */ /* *************** *** 131,135 **** public int setMode(Dimension dim, int mode, boolean fullscreen) { ! Dimension newDim = new Dimension(); VID.Printf(Defines.PRINT_ALL, "Initializing OpenGL display\n"); --- 130,134 ---- public int setMode(Dimension dim, int mode, boolean fullscreen) { ! final Dimension newDim = new Dimension(); VID.Printf(Defines.PRINT_ALL, "Initializing OpenGL display\n"); *************** *** 183,210 **** if (fullscreen) { - - DisplayMode displayMode = findDisplayMode(newDim); - - newDim.width = displayMode.getWidth(); - newDim.height = displayMode.getHeight(); - window.setUndecorated(true); - window.setResizable(false); - - device.setFullScreenWindow(window); - - if (device.isFullScreenSupported()) - device.setDisplayMode(displayMode); - - window.setLocation(0, 0); - window.setSize(displayMode.getWidth(), displayMode.getHeight()); - canvas.setSize(displayMode.getWidth(), displayMode.getHeight()); ! VID.Printf(Defines.PRINT_ALL, "...setting fullscreen " + getModeString(displayMode) + '\n'); } else { ! window.setLocation(window_xpos, window_ypos); ! window.pack(); ! window.setResizable(false); ! window.setVisible(true); } --- 182,222 ---- if (fullscreen) { ! DisplayMode displayMode = findDisplayMode(newDim); ! ! newDim.width = displayMode.getWidth(); ! newDim.height = displayMode.getHeight(); ! window.setUndecorated(true); ! window.setResizable(false); ! ! device.setFullScreenWindow(window); ! ! if (device.isFullScreenSupported()) ! device.setDisplayMode(displayMode); ! ! window.setLocation(0, 0); ! window.setSize(displayMode.getWidth(), displayMode.getHeight()); ! canvas.setSize(displayMode.getWidth(), displayMode.getHeight()); ! ! VID.Printf(Defines.PRINT_ALL, "...setting fullscreen " + getModeString(displayMode) + '\n'); } else { ! // Not much point in having a full-screen window in this ! // case ! device.setFullScreenWindow(null); ! final Frame f2 = window; ! try { ! EventQueue.invokeAndWait(new Runnable() { ! public void run() { ! f2.setVisible(false); ! f2.setLocation(window_xpos, window_ypos); ! f2.pack(); ! f2.setResizable(false); ! f2.setVisible(true); ! } ! }); ! } catch (Exception e) { ! e.printStackTrace(); ! } } *************** *** 248,251 **** --- 260,264 ---- } if (window != null) { + display.destroy(); window.dispose(); } *************** *** 349,355 **** public void removeNotify() { ! release(); ! context.destroy(); ! drawable.setRealized(false); super.removeNotify(); } --- 362,369 ---- public void removeNotify() { ! if (drawable != null) { ! drawable.setRealized(false); ! drawable = null; ! } super.removeNotify(); } *************** *** 369,372 **** --- 383,394 ---- drawable.swapBuffers(); } + + void destroy() { + if (context != null) { + release(); + context.destroy(); + context = null; + } + } private static GraphicsConfiguration unwrap(AWTGraphicsConfiguration config) { |