Default to gl4es 1.1.4 because of weird crashes

This commit is contained in:
Duy Tran Khanh committed 2021-03-02 18:49:43 +07:00
1 parent 3751e3e4d6
commit dfdf2cd672
3 files changed
+20 -53

No files matched your search

+18
View File
@@ -11,6 +11,7 @@
#include "jni.h"
#include "log.h"
#include "utils.h"
#include "JavaLauncher.h"
// PojavLancher: fixme: are these wrong?
@@ -57,6 +58,7 @@ int launchJVM(int argc, char *argv[]) {
// setenv("LIBGL_FB", "2", 1);
setenv("LIBGL_MIPMAP", "3", 1);
setenv("LIBGL_NORMALIZE", "1", 1);
setenv("LIBGL_DBGSHADERCONV", "1", 1);
chdir("/var/mobile/Documents/minecraft");
@@ -113,6 +115,22 @@ int launchJVM(int argc, char *argv[]) {
for (int i = 0; i < argc; i++) {
margv[margc++] = argv[i];
}
} else {
// Locate gl4es library name:
// Reverse the loop, since it is overridable.
/*
char* opengl_prefix = "-Dorg.lwjgl.opengl.libname=";
for (int i = argc - 1; i >= 0; i--) {
if (strncmp(opengl_prefix, argv[i], strlen(opengl_prefix)) == 0) {
strtok(argv[i], "=");
setenv("POJAV_OPENGL_LIBNAME", strtok(NULL, "="), 1);
break;
}
}
*/
setenv("POJAV_OPENGL_LIBNAME", "libgl4es_114.dylib", 1);
debug("OpenGL library name: %s", getenv("POJAV_OPENGL_LIBNAME"));
}
// Load java
+2 -2
View File
@@ -192,8 +192,8 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_GLFW_nativeEglMakeCurrent(JNIEnv*
debug("First frame error: %p", eglGetError());
#endif
if (success == EGL_TRUE) {
GL4ES_HANDLE = dlopen("libGL.dylib", RTLD_GLOBAL);
debug("libGL = %p", GL4ES_HANDLE);
GL4ES_HANDLE = dlopen(getenv("POJAV_OPENGL_LIBNAME"), RTLD_GLOBAL);
debug("libGL=%p", GL4ES_HANDLE);
gl4esInitialize_func *gl4esInitialize = (gl4esInitialize_func*) dlsym(GL4ES_HANDLE, "initialize_gl4es");
// debug("initialize_gl4es = %p", gl4esInitialize);
-51
View File
@@ -8,8 +8,6 @@
#include "utils.h"
typedef int (*Main_Function_t)(int, char**);
long shared_awt_surface;
char** convert_to_char_array(JNIEnv *env, jobjectArray jstringArray) {
@@ -97,52 +95,3 @@ JNIEXPORT jint JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_chdir(JNIEnv *env
(*env)->ReleaseStringUTFChars(env, nameStr, name);
return retval;
}
JNIEXPORT jint JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_executeBinary(JNIEnv *env, jclass clazz, jobjectArray cmdArgs) {
jclass exception_cls = (*env)->FindClass(env, "java/lang/UnsatisfiedLinkError");
jstring execFile = (*env)->GetObjectArrayElement(env, cmdArgs, 0);
char *exec_file_c = (char*) (*env)->GetStringUTFChars(env, execFile, 0);
void *exec_binary_handle = dlopen(exec_file_c, RTLD_LAZY);
// (*env)->ReleaseStringUTFChars(env, ldLibraryPath, ld_library_path_c);
(*env)->ReleaseStringUTFChars(env, execFile, exec_file_c);
char *exec_error_c = dlerror();
if (exec_error_c != NULL) {
LOGE("Error: %s", exec_error_c);
(*env)->ThrowNew(env, exception_cls, exec_error_c);
return -1;
}
Main_Function_t Main_Function;
Main_Function = (Main_Function_t) dlsym(exec_binary_handle, "main");
exec_error_c = dlerror();
if (exec_error_c != NULL) {
LOGE("Error: %s", exec_error_c);
(*env)->ThrowNew(env, exception_cls, exec_error_c);
return -1;
}
int cmd_argv = (*env)->GetArrayLength(env, cmdArgs);
char **cmd_args_c = convert_to_char_array(env, cmdArgs);
int result = Main_Function(cmd_argv, cmd_args_c);
free_char_array(env, cmdArgs, cmd_args_c);
return result;
}
// METHOD 2
/*
JNIEXPORT jint JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_executeForkedBinary(JNIEnv *env, jclass clazz, jobjectArray cmdArgs) {
int x, status;
x = fork();
if (x > 0) {
wait(&status);
} else {
execvpe();
}
return status;
}
*/