This is a block in the constructor inside a block that has tested for hardware. Neither the try (the fullscreen with hardware) nor the catch (the windowed with hardware after failing at fullscreen) work. How come?
if (engineData.fullScreen) {
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
this.setUndecorated(true);
this.setIgnoreRepaint(true);
device.setFullScreenWindow(this);
device.setDisplayMode(new java.awt.DisplayMode(engineData.width, engineData.height, 32, java.awt.DisplayMode.REFRESH_RATE_UNKNOWN));
if (!device.isDisplayChangeSupported())
System.err.println("No support for current mode!");
try {
buffer.disableRenderer(IRenderer.RENDERER_OPENGL);
buffer.dispose();
buffer = new FrameBuffer(engineData.width, engineData.height, FrameBuffer.SAMPLINGMODE_HARDWARE_ONLY);
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE);
Display.create();
Display.setDisplayModeAndFullscreen(new org.lwjgl.opengl.DisplayMode(engineData.width, engineData.height));
}
catch (Exception e) {System.err.println("Problem: "+e.getMessage());
this.remove(awtGlCanvas);
buffer.disableRenderer(IRenderer.RENDERER_OPENGL);
try {Display.releaseContext();}catch (Exception ex) {System.err.println("\n\nProblem?\n");}
Display.destroy();
awtGlCanvas = buffer.enableGLCanvasRenderer();
engineData.fullScreen = false;//AT LEAST PROCEED IN WINDOWED MODE}
this.add(awtGlCanvas);
//buffer.disableRenderer(IRenderer.RENDERER_OPENGL);
//buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
device.setFullScreenWindow(null);
this.setUndecorated(false);
this.setVisible(true);
}
}
else this.setVisible(true);//IF NOT engineData.fullScreen