diff --git a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java index f61700104..e0da04e17 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java @@ -1015,7 +1015,26 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener, // GLFW Stub width height javaArgList.add("-Dglfwstub.windowWidth=" + AndroidDisplay.windowWidth); javaArgList.add("-Dglfwstub.windowHeight=" + AndroidDisplay.windowHeight); - + + + javaArgList.add("-Dglfwstub.eglContext=" + Tools.getEGLAddress("Context", AndroidContextImplementation.context)); + + String eglDisplay = Tools.getEGLAddress("Display", AndroidContextImplementation.display); + if (eglDisplay.equals("1")) { + eglDisplay = Tools.getEGLAddress("Display", ((EGL10) EGLContext.getEGL()).eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY)); + } + javaArgList.add("-Dglfwstub.eglDisplay=" + eglDisplay); + + javaArgList.add("-Dglfwstub.eglSurfaceRead=" + Tools.getEGLAddress("Surface", AndroidContextImplementation.read)); + javaArgList.add("-Dglfwstub.eglSurfaceDraw=" + Tools.getEGLAddress("Surface", AndroidContextImplementation.draw)); + + if (mVersionInfo.arguments != null) { + // Minecraft 1.13+ + + javaArgList.add("-Dminecraft.launcher.brand=" + Tools.APP_NAME); + javaArgList.add("-Dminecraft.launcher.version=" + getPackageManager().getPackageInfo(getPackageName(), 0).versionName); + } + javaArgList.add("-cp"); javaArgList.add(Tools.generateLaunchClassPath(mProfile.getVersion())); javaArgList.add(mVersionInfo.mainClass); diff --git a/app/src/main/java/net/kdt/pojavlaunch/Tools.java b/app/src/main/java/net/kdt/pojavlaunch/Tools.java index b2526d723..5b9a0278e 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -162,6 +162,17 @@ public final class Tools showError(ctx, e); } } + + public static String getEGLAddress(String type, Object obj) { + try { + Field addrField = obj.getClass().getDeclaredField("mEGL" + type); + addrField.setAccessible(true); + return Long.toString((long) addrField.get(obj)); + } catch (Throwable th) { + th.printStackTrace(); + return "0l"; + } + } public static void showError(Context ctx, Throwable e) { diff --git a/app/src/main/jniLibs/arm64-v8a/libbinexecutor.so b/app/src/main/jniLibs/arm64-v8a/libbinexecutor.so index 66ec251bb..6abeb2fe1 100644 Binary files a/app/src/main/jniLibs/arm64-v8a/libbinexecutor.so and b/app/src/main/jniLibs/arm64-v8a/libbinexecutor.so differ diff --git a/app/src/main/jniLibs/arm64-v8a/liblwjgl_opengl.so b/app/src/main/jniLibs/arm64-v8a/liblwjgl_opengl.so index 506323fcd..5a63edc4a 100644 Binary files a/app/src/main/jniLibs/arm64-v8a/liblwjgl_opengl.so and b/app/src/main/jniLibs/arm64-v8a/liblwjgl_opengl.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/libbinexecutor.so b/app/src/main/jniLibs/armeabi-v7a/libbinexecutor.so index 7c8fbc18f..631e2acaf 100644 Binary files a/app/src/main/jniLibs/armeabi-v7a/libbinexecutor.so and b/app/src/main/jniLibs/armeabi-v7a/libbinexecutor.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/liblwjgl_opengl.so b/app/src/main/jniLibs/armeabi-v7a/liblwjgl_opengl.so index 719f8db65..8a71b82c7 100644 Binary files a/app/src/main/jniLibs/armeabi-v7a/liblwjgl_opengl.so and b/app/src/main/jniLibs/armeabi-v7a/liblwjgl_opengl.so differ diff --git a/app/src/main/jniLibs/x86/libbinexecutor.so b/app/src/main/jniLibs/x86/libbinexecutor.so index 2fae6368a..81e8a0b7b 100644 Binary files a/app/src/main/jniLibs/x86/libbinexecutor.so and b/app/src/main/jniLibs/x86/libbinexecutor.so differ diff --git a/app/src/main/jniLibs/x86/liblwjgl_opengl.so b/app/src/main/jniLibs/x86/liblwjgl_opengl.so index d3a513e5f..498f2b952 100644 Binary files a/app/src/main/jniLibs/x86/liblwjgl_opengl.so and b/app/src/main/jniLibs/x86/liblwjgl_opengl.so differ diff --git a/app/src/main/jniLibs/x86_64/libbinexecutor.so b/app/src/main/jniLibs/x86_64/libbinexecutor.so index 50b363b94..1bebc76e0 100644 Binary files a/app/src/main/jniLibs/x86_64/libbinexecutor.so and b/app/src/main/jniLibs/x86_64/libbinexecutor.so differ diff --git a/app/src/main/jniLibs/x86_64/liblwjgl_opengl.so b/app/src/main/jniLibs/x86_64/liblwjgl_opengl.so index 7bd5e099d..ee9bc1cbb 100644 Binary files a/app/src/main/jniLibs/x86_64/liblwjgl_opengl.so and b/app/src/main/jniLibs/x86_64/liblwjgl_opengl.so differ