|
|
@@ -90,8 +90,8 @@ public abstract class LwjglAbstractDisplay extends LwjglContext implements Runna
|
|
|
/**
|
|
|
* Does LWJGL display initialization in the OpenGL thread
|
|
|
*/
|
|
|
- protected void initInThread(){
|
|
|
- try{
|
|
|
+ protected boolean initInThread(){
|
|
|
+ try {
|
|
|
if (!JmeSystem.isLowPermissions()){
|
|
|
// Enable uncaught exception handler only for current thread
|
|
|
Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
|
|
|
@@ -114,6 +114,7 @@ public abstract class LwjglAbstractDisplay extends LwjglContext implements Runna
|
|
|
printContextInitInfo();
|
|
|
|
|
|
created.set(true);
|
|
|
+ super.internalCreate();
|
|
|
} catch (Exception ex){
|
|
|
try {
|
|
|
if (Display.isCreated())
|
|
|
@@ -123,10 +124,11 @@ public abstract class LwjglAbstractDisplay extends LwjglContext implements Runna
|
|
|
}
|
|
|
|
|
|
listener.handleError("Failed to create display", ex);
|
|
|
- return; // if we failed to create display, do not continue
|
|
|
+ return false; // if we failed to create display, do not continue
|
|
|
}
|
|
|
- super.internalCreate();
|
|
|
+
|
|
|
listener.initialize();
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
protected boolean checkGLError(){
|
|
|
@@ -202,7 +204,10 @@ public abstract class LwjglAbstractDisplay extends LwjglContext implements Runna
|
|
|
+ "Must set with JmeContext.setSystemListner().");
|
|
|
|
|
|
logger.log(Level.INFO, "Using LWJGL {0}", Sys.getVersion());
|
|
|
- initInThread();
|
|
|
+ if (!initInThread()) {
|
|
|
+ logger.log(Level.SEVERE, "Display initialization failed. Cannot continue.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
while (true){
|
|
|
if (renderable.get()){
|
|
|
if (Display.isCloseRequested())
|