@ -32,9 +32,6 @@
package com.jme3.system.lwjgl ;
package com.jme3.system.lwjgl ;
import static org.lwjgl.glfw.GLFW.* ;
import static org.lwjgl.opengl.GL11.GL_FALSE ;
import static org.lwjgl.system.MemoryUtil.NULL ;
import com.jme3.input.JoyInput ;
import com.jme3.input.JoyInput ;
import com.jme3.input.KeyInput ;
import com.jme3.input.KeyInput ;
import com.jme3.input.MouseInput ;
import com.jme3.input.MouseInput ;
@ -47,9 +44,6 @@ import com.jme3.system.JmeContext;
import com.jme3.system.JmeSystem ;
import com.jme3.system.JmeSystem ;
import com.jme3.system.NanoTimer ;
import com.jme3.system.NanoTimer ;
import com.jme3.util.BufferUtils ;
import com.jme3.util.BufferUtils ;
import org.lwjgl.Version ;
import org.lwjgl.glfw.* ;
import java.awt.* ;
import java.awt.* ;
import java.awt.image.BufferedImage ;
import java.awt.image.BufferedImage ;
import java.nio.ByteBuffer ;
import java.nio.ByteBuffer ;
@ -59,6 +53,11 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean ;
import java.util.concurrent.atomic.AtomicBoolean ;
import java.util.logging.Level ;
import java.util.logging.Level ;
import java.util.logging.Logger ;
import java.util.logging.Logger ;
import org.lwjgl.Version ;
import org.lwjgl.glfw.* ;
import static org.lwjgl.glfw.GLFW.* ;
import static org.lwjgl.opengl.GL11.GL_FALSE ;
import static org.lwjgl.system.MemoryUtil.NULL ;
/ * *
/ * *
* A wrapper class over the GLFW framework in LWJGL 3 .
* A wrapper class over the GLFW framework in LWJGL 3 .
@ -383,6 +382,10 @@ public abstract class LwjglWindow extends LwjglContext implements Runnable {
}
}
if ( errorCallback ! = null ) {
if ( errorCallback ! = null ) {
// We need to specifically set this to null as we might set a new callback before we reinit GLFW
glfwSetErrorCallback ( null ) ;
errorCallback . close ( ) ;
errorCallback . close ( ) ;
errorCallback = null ;
errorCallback = null ;
}
}
@ -401,6 +404,8 @@ public abstract class LwjglWindow extends LwjglContext implements Runnable {
glfwDestroyWindow ( window ) ;
glfwDestroyWindow ( window ) ;
window = NULL ;
window = NULL ;
}
}
glfwTerminate ( ) ;
} catch ( final Exception ex ) {
} catch ( final Exception ex ) {
listener . handleError ( "Failed to destroy context" , ex ) ;
listener . handleError ( "Failed to destroy context" , ex ) ;
}
}
@ -548,7 +553,6 @@ public abstract class LwjglWindow extends LwjglContext implements Runnable {
/ * *
/ * *
* De - initialize in the OpenGL thread .
* De - initialize in the OpenGL thread .
* /
* /
protected void deinitInThread ( ) {
protected void deinitInThread ( ) {
listener . destroy ( ) ;
listener . destroy ( ) ;