From 06802c70773d3a33efa37d0f520fb8037668e8de Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh Date: Sat, 2 Jan 2021 18:45:45 +0700 Subject: [PATCH] Try run on diff thread --- JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java | 5 ++--- Natives/egl_bridge.c | 5 ++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java index 888b899d..9562ffce 100644 --- a/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -83,19 +83,18 @@ public final class Tools } } - // new Thread(() -> { try { + new Thread(() -> { try { URLClassLoader loader = new URLClassLoader(urlList.toArray(new URL[0]), Tools.class.getClassLoader()); Class clazz = loader.loadClass(versionInfo.mainClass); Method method = clazz.getMethod("main", String[].class); method.invoke(null, new Object[]{launchArgs}); - /* + } catch (Throwable th) { throw new RuntimeException(th); } }).start(); - */ // JREUtils.launchJavaVM(javaArgList); } diff --git a/Natives/egl_bridge.c b/Natives/egl_bridge.c index 48bd8fb9..7bff107b 100644 --- a/Natives/egl_bridge.c +++ b/Natives/egl_bridge.c @@ -47,6 +47,9 @@ JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_saveGLContext(JNI debug("OpenGLES context is NULL..."); assert(CURR_GL_CONTEXT != NULL); } + + // Clear current GL context to later set on another thread + clearCurrentContext(); } JNIEXPORT jlong JNICALL Java_org_lwjgl_glfw_GLFW_nativeEglGetCurrentContext(JNIEnv* env, jclass clazz) { @@ -60,7 +63,7 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_GLFW_nativeEglInit(JNIEnv* env, j JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_GLFW_nativeEglMakeCurrent(JNIEnv* env, jclass clazz, jlong window) { debug("ES2Bridge: making current\n"); - jboolean ret = 1; // makeCurrentContext(CURR_GL_CONTEXT); + jboolean ret = makeCurrentContext(CURR_GL_CONTEXT); void *libGL = dlopen("libGL.dylib", RTLD_GLOBAL); debug("libGL = %p", libGL);