Update libs; Send EGL addresses to subprocess; Add some properties for Minecraft 1.13+

This commit is contained in:
khanhduytran0 2020-08-25 10:42:10 +07:00
parent 6659be1b94
commit 4edd06ac0d
10 changed files with 31 additions and 1 deletions

View File

@ -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);

View File

@ -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)
{