From ee3624706f5d312ece1baf0ca05e45870b1c431d Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh Date: Sat, 2 Jan 2021 13:37:03 +0700 Subject: [PATCH] Pre-initialize ES2 and GL4ES --- JavaApp/src/main/java/org/lwjgl/opengl/GL.java | 6 +++--- Natives/egl_bridge.c | 13 ++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/JavaApp/src/main/java/org/lwjgl/opengl/GL.java b/JavaApp/src/main/java/org/lwjgl/opengl/GL.java index 40b8f66f..3065a00f 100644 --- a/JavaApp/src/main/java/org/lwjgl/opengl/GL.java +++ b/JavaApp/src/main/java/org/lwjgl/opengl/GL.java @@ -338,7 +338,7 @@ public final class GL { @SuppressWarnings("AssignmentToMethodParameter") public static GLCapabilities createCapabilities(boolean forwardCompatible) { // This fixed framebuffer issue on 1.13+ 64-bit by another making current - GLFW.nativeEglMakeCurrent(1); + // GLFW.nativeEglMakeCurrent(1); // System.setProperty("glfwstub.internal.glthreadid", Long.toString(Thread.currentThread().getId())); @@ -346,13 +346,13 @@ public final class GL { if (functionProvider == null) { throw new IllegalStateException("OpenGL library has not been loaded."); } - +/* long GL4ESInit = functionProvider.getFunctionAddress("initialize_gl4es"); if (GL4ESInit == NULL) { throw new IllegalStateException("initialize_gl4es() could not be found. Make sure that the OpenGL library is GL4ES."); } callV(GL4ESInit); - +*/ GLCapabilities caps = null; try { diff --git a/Natives/egl_bridge.c b/Natives/egl_bridge.c index f61a2f47..feee42bf 100644 --- a/Natives/egl_bridge.c +++ b/Natives/egl_bridge.c @@ -47,8 +47,15 @@ JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_saveGLContext(JNI debug("OpenGLES context is NULL..."); assert(CURR_GL_CONTEXT != NULL); } - // assert(makeCurrentContext(CURR_GL_CONTEXT)); - // debug("makeCurrent success"); + assert(makeCurrentContext(CURR_GL_CONTEXT)); + debug("makeCurrent success"); + + void *libGL = dlopen("libGL.dylib", RTLD_GLOBAL); + assert(libGL != NULL); + gl4esInitialize_func *gl4esInitialize = (gl4esInitialize_func*) dlsym(libGL, "initialize_gl4es"); + assert(gl4esInitialize != NULL); + gl4esInitialize(); + debug("GL4ES init success"); } JNIEXPORT jlong JNICALL Java_org_lwjgl_glfw_GLFW_nativeEglGetCurrentContext(JNIEnv* env, jclass clazz) { @@ -61,7 +68,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 = makeCurrentContext(CURR_GL_CONTEXT); + jboolean ret = 1; // makeCurrentContext(CURR_GL_CONTEXT); debug("ES2Bridge: makeCurrent() returns %d\n", ret); return ret; }