summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <sgothel@jausoft.com>2013-06-27 15:40:50 +0200
committerSven Gothel <sgothel@jausoft.com>2013-06-27 15:40:50 +0200
commit5611eeb867e0268ee10248d98a3845eb9b0971d1 (patch)
treea39a1df9c7afa8f8610af554eb5814bb332f5a02
parent15aabe6c691034a4eb6a9334ce51b8d5fcd25768 (diff)
Adapt to JOGL/NEWT Changed up to v2.0.2-c12 ..
- NEWT ScreenMode -> MonitorMode - NEWT Window: Don't issue Game.Quit() if already in shutdown (could be screen mode change) - NEWT KeyEvents: No keyTyped, adapt to new KeyCodes.
-rw-r--r--src/jake2/client/VID.java8
-rw-r--r--src/jake2/client/refexport_t.java4
-rw-r--r--src/jake2/render/DummyRenderer.java6
-rw-r--r--src/jake2/render/opengl/GLDriver.java4
-rw-r--r--src/jake2/render/opengl/JoglDummyDriver.java4
-rw-r--r--src/jake2/render/opengl/JoglES1Driver.java4
-rw-r--r--src/jake2/render/opengl/JoglES2Driver.java4
-rw-r--r--src/jake2/render/opengl/JoglGL2Driver.java4
-rw-r--r--src/jake2/render/opengl/NEWTWin.java46
-rw-r--r--src/jake2/sys/InputListener.java4
-rw-r--r--src/jake2/sys/NEWTKBD.java4
11 files changed, 42 insertions, 50 deletions
diff --git a/src/jake2/client/VID.java b/src/jake2/client/VID.java
index 19aff61..d34a967 100644
--- a/src/jake2/client/VID.java
+++ b/src/jake2/client/VID.java
@@ -43,8 +43,7 @@ import javax.media.nativewindow.util.Dimension;
import javax.media.nativewindow.util.DimensionImmutable;
import javax.media.nativewindow.util.SurfaceSize;
-import com.jogamp.newt.ScreenMode;
-import com.jogamp.newt.util.MonitorMode;
+import com.jogamp.newt.MonitorMode;
/**
* VID is a video driver.
@@ -490,13 +489,12 @@ public class VID extends Globals {
};
static void initModeList() {
- final List<ScreenMode> modes = re.getModeList();
+ final List<MonitorMode> modes = re.getModeList();
final ArrayList<String> fs_resolutions_list = new ArrayList<String>();
final ArrayList<vidmode_t> fs_modes_list = new ArrayList<vidmode_t>();
final HashSet<DimensionImmutable> resSet = new HashSet<DimensionImmutable>();
for (int i = 0; i < modes.size(); i++) {
- final ScreenMode sm = modes.get(modes.size() - 1 - i); // reverse order: low -> high res.
- final MonitorMode mm = sm.getMonitorMode();
+ final MonitorMode mm = modes.get(modes.size() - 1 - i); // reverse order: low -> high res.
final SurfaceSize ss = mm.getSurfaceSize();
final DimensionImmutable m = ss.getResolution();
if( resSet.add(m) ) {
diff --git a/src/jake2/client/refexport_t.java b/src/jake2/client/refexport_t.java
index 7a2a8f0..2238e4b 100644
--- a/src/jake2/client/refexport_t.java
+++ b/src/jake2/client/refexport_t.java
@@ -35,7 +35,7 @@ import jake2.sys.KBD;
import javax.media.nativewindow.util.Dimension;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
/**
* refexport_t
@@ -110,7 +110,7 @@ public interface refexport_t {
int apiVersion();
- List<ScreenMode> getModeList();
+ List<MonitorMode> getModeList();
KBD getKeyboardHandler();
}
diff --git a/src/jake2/render/DummyRenderer.java b/src/jake2/render/DummyRenderer.java
index 2bc2c2e..fcef2fd 100644
--- a/src/jake2/render/DummyRenderer.java
+++ b/src/jake2/render/DummyRenderer.java
@@ -12,7 +12,7 @@ import java.util.List;
import javax.media.nativewindow.util.Dimension;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
import jake2.client.refdef_t;
import jake2.client.refexport_t;
@@ -173,8 +173,8 @@ public class DummyRenderer implements refexport_t {
/* (non-Javadoc)
* @see jake2.client.refexport_t#getModeList()
*/
- public List<ScreenMode> getModeList() {
- return new ArrayList<ScreenMode>();
+ public List<MonitorMode> getModeList() {
+ return new ArrayList<MonitorMode>();
}
/* (non-Javadoc)
diff --git a/src/jake2/render/opengl/GLDriver.java b/src/jake2/render/opengl/GLDriver.java
index 0967576..d350811 100644
--- a/src/jake2/render/opengl/GLDriver.java
+++ b/src/jake2/render/opengl/GLDriver.java
@@ -6,7 +6,7 @@ import javax.media.nativewindow.util.Dimension;
import jake2.qcommon.xcommand_t;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
public interface GLDriver {
@@ -26,7 +26,7 @@ public interface GLDriver {
void logNewFrame();
- List<ScreenMode> getModeList();
+ List<MonitorMode> getModeList();
void updateScreen(xcommand_t callback);
diff --git a/src/jake2/render/opengl/JoglDummyDriver.java b/src/jake2/render/opengl/JoglDummyDriver.java
index 3316f2a..73620b2 100644
--- a/src/jake2/render/opengl/JoglDummyDriver.java
+++ b/src/jake2/render/opengl/JoglDummyDriver.java
@@ -33,7 +33,7 @@ import jake2.render.Base;
import javax.media.nativewindow.util.Dimension;
import javax.media.opengl.*;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
/**
* JoglCommon
@@ -51,7 +51,7 @@ public abstract class JoglDummyDriver extends DummyGL implements GLDriver {
public abstract String getName();
- public List<ScreenMode> getModeList() {
+ public List<MonitorMode> getModeList() {
if(null == newtWin) {
throw new RuntimeException("NEWTWin not yet initialized.");
}
diff --git a/src/jake2/render/opengl/JoglES1Driver.java b/src/jake2/render/opengl/JoglES1Driver.java
index d9001ae..f9a29f8 100644
--- a/src/jake2/render/opengl/JoglES1Driver.java
+++ b/src/jake2/render/opengl/JoglES1Driver.java
@@ -35,7 +35,7 @@ import jake2.render.Base;
import javax.media.nativewindow.util.Dimension;
import javax.media.opengl.*;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
/**
* JoglCommon
@@ -61,7 +61,7 @@ public abstract class JoglES1Driver extends JoglGL2ES1 implements GLDriver {
public abstract String getName();
- public List<ScreenMode> getModeList() {
+ public List<MonitorMode> getModeList() {
if(null == newtWin) {
throw new RuntimeException("NEWTWin not yet initialized.");
}
diff --git a/src/jake2/render/opengl/JoglES2Driver.java b/src/jake2/render/opengl/JoglES2Driver.java
index 3d63984..2548b62 100644
--- a/src/jake2/render/opengl/JoglES2Driver.java
+++ b/src/jake2/render/opengl/JoglES2Driver.java
@@ -35,7 +35,7 @@ import jake2.render.Base;
import javax.media.nativewindow.util.Dimension;
import javax.media.opengl.*;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
import com.jogamp.opengl.util.glsl.fixedfunc.FixedFuncUtil;
import com.jogamp.opengl.util.glsl.fixedfunc.ShaderSelectionMode;
@@ -66,7 +66,7 @@ public abstract class JoglES2Driver extends JoglGL2ES1 implements GLDriver {
public abstract String getName();
- public List<ScreenMode> getModeList() {
+ public List<MonitorMode> getModeList() {
if(null == newtWin) {
throw new RuntimeException("NEWTWin not yet initialized.");
}
diff --git a/src/jake2/render/opengl/JoglGL2Driver.java b/src/jake2/render/opengl/JoglGL2Driver.java
index 1fdcc8b..cad9c0a 100644
--- a/src/jake2/render/opengl/JoglGL2Driver.java
+++ b/src/jake2/render/opengl/JoglGL2Driver.java
@@ -35,7 +35,7 @@ import jake2.render.Base;
import javax.media.nativewindow.util.Dimension;
import javax.media.opengl.*;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.MonitorMode;
/**
* JoglCommon
@@ -61,7 +61,7 @@ public abstract class JoglGL2Driver extends JoglGL2ES1 implements GLDriver {
public abstract String getName();
- public List<ScreenMode> getModeList() {
+ public List<MonitorMode> getModeList() {
if(null == newtWin) {
throw new RuntimeException("NEWTWin not yet initialized.");
}
diff --git a/src/jake2/render/opengl/NEWTWin.java b/src/jake2/render/opengl/NEWTWin.java
index 2afecc4..bc514ed 100644
--- a/src/jake2/render/opengl/NEWTWin.java
+++ b/src/jake2/render/opengl/NEWTWin.java
@@ -28,36 +28,37 @@ import javax.media.opengl.GLProfile;
import jogamp.opengl.FPSCounterImpl;
import com.jogamp.common.os.Platform;
-import com.jogamp.newt.NewtFactory;
-import com.jogamp.newt.Screen;
-import com.jogamp.newt.ScreenMode;
+import com.jogamp.newt.*;
import com.jogamp.newt.event.WindowAdapter;
import com.jogamp.newt.event.WindowEvent;
import com.jogamp.newt.opengl.GLWindow;
-import com.jogamp.newt.util.MonitorMode;
-import com.jogamp.newt.util.ScreenModeUtil;
+import com.jogamp.newt.util.MonitorModeUtil;
import com.jogamp.opengl.GenericGLCapabilitiesChooser;
public class NEWTWin {
- ScreenMode oldDisplayMode = null;
+ MonitorMode oldDisplayMode = null;
volatile Screen screen = null;
volatile GLWindow window = null;
final FPSCounterImpl fpsCounter = new FPSCounterImpl();
- public List<ScreenMode> getModeList() {
- return screen.getScreenModes();
+ public List<MonitorMode> getModeList() {
+ if( null != window ) {
+ final MonitorDevice mainMonitor = window.getMainMonitor();
+ return mainMonitor.getSupportedModes();
+ } else {
+ return screen.getMonitorModes();
+ }
}
- public ScreenMode findDisplayMode(DimensionImmutable dim) {
- final List<ScreenMode> sml = ScreenModeUtil.filterByResolution(screen.getScreenModes(), dim);
+ public MonitorMode findDisplayMode(DimensionImmutable dim) {
+ final List<MonitorMode> sml = MonitorModeUtil.filterByResolution(getModeList(), dim);
if(sml.size() == 0) {
return oldDisplayMode;
}
return sml.get(0);
}
- public String getModeString(ScreenMode sm) {
- final MonitorMode mm = sm.getMonitorMode();
+ public String getModeString(MonitorMode mm) {
final SurfaceSize ss = mm.getSurfaceSize();
final DimensionImmutable m = ss.getResolution();
final StringBuffer sb = new StringBuffer();
@@ -122,7 +123,9 @@ public class NEWTWin {
window.addWindowListener(new WindowAdapter() {
public void windowDestroyNotify(WindowEvent e) {
if (!Globals.appletMode) {
- Cbuf.ExecuteText(Defines.EXEC_APPEND, "quit");
+ if( null != window ) { // already in shutdown ?
+ Cbuf.ExecuteText(Defines.EXEC_APPEND, "quit");
+ }
}
}
@@ -132,8 +135,10 @@ public class NEWTWin {
});
window.setTitle("Jake2 ("+driverName+"-newt-"+glp.getName().toLowerCase()+")");
+ final MonitorDevice mainMonitor = window.getMainMonitor();
+
if (oldDisplayMode == null) {
- oldDisplayMode = window.getScreen().getCurrentScreenMode();
+ oldDisplayMode = mainMonitor.getCurrentMode();
}
// We need to feed the NEWT Window to the NEWTKBD
@@ -144,11 +149,11 @@ public class NEWTWin {
window.addMouseListener(NEWTKBD.listener);
if (fullscreen) {
- ScreenMode sm = findDisplayMode(newDim);
- final DimensionImmutable smDim = sm.getMonitorMode().getSurfaceSize().getResolution();
+ MonitorMode mm = findDisplayMode(newDim);
+ final DimensionImmutable smDim = mm.getSurfaceSize().getResolution();
newDim.setWidth( smDim.getWidth() );
newDim.setHeight( smDim.getHeight() );
- window.getScreen().setCurrentScreenMode(sm);
+ mainMonitor.setCurrentMode(mm);
window.setFullscreen(true);
} else {
window.setSize(newDim.getWidth(), newDim.getHeight());
@@ -222,12 +227,9 @@ public class NEWTWin {
private void shutdownImpl(boolean withScreen) {
if ( null != window ) {
deactivateGLContext();
- if (!Globals.appletMode) {
- window.destroy();
- } else {
- window.destroy(); // same thing
- }
+ final GLWindow _window = window;
window = null;
+ _window.destroy(); // same thing
}
if( withScreen && null != screen ) {
screen.destroy();
diff --git a/src/jake2/sys/InputListener.java b/src/jake2/sys/InputListener.java
index 3efece2..bff13d5 100644
--- a/src/jake2/sys/InputListener.java
+++ b/src/jake2/sys/InputListener.java
@@ -62,10 +62,6 @@ public final class InputListener implements KeyListener, MouseListener, WindowLi
}
@Override
- public void keyTyped(KeyEvent e) {
- }
-
- @Override
public void mouseClicked(MouseEvent e) {
}
diff --git a/src/jake2/sys/NEWTKBD.java b/src/jake2/sys/NEWTKBD.java
index 594fee3..4a0ba76 100644
--- a/src/jake2/sys/NEWTKBD.java
+++ b/src/jake2/sys/NEWTKBD.java
@@ -133,16 +133,12 @@ final public class NEWTKBD extends KBD
// 00635 case XK_KP_End: key = K_KP_END; break;
case KeyEvent.VK_END: key = Key.K_END; break;
- case KeyEvent.VK_KP_LEFT: key = Key.K_KP_LEFTARROW; break;
case KeyEvent.VK_LEFT: key = Key.K_LEFTARROW; break;
- case KeyEvent.VK_KP_RIGHT: key = Key.K_KP_RIGHTARROW; break;
case KeyEvent.VK_RIGHT: key = Key.K_RIGHTARROW; break;
- case KeyEvent.VK_KP_DOWN: key = Key.K_KP_DOWNARROW; break;
case KeyEvent.VK_DOWN: key = Key.K_DOWNARROW; break;
- case KeyEvent.VK_KP_UP: key = Key.K_KP_UPARROW; break;
case KeyEvent.VK_UP: key = Key.K_UPARROW; break;
case KeyEvent.VK_ESCAPE: key = Key.K_ESCAPE; break;