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) {
|