diff --git a/README.md b/README.md index b90735050a..ffe97159fe 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ Amethyst is licensed under [GNU LGPLv3](https://github.com/AngelAuraMC/Amethyst- * Android Support Libraries: [Apache License 2.0](https://android.googlesource.com/platform/prebuilts/maven_repo/android/+/master/NOTICE.txt). * [GL4ES](https://github.com/AngelAuraMC/gl4es): [MIT License](https://github.com/ptitSeb/gl4es/blob/master/LICENSE). * [MobileGlues](https://github.com/MobileGL-Dev/MobileGlues): [LGPL-2.1 License](https://github.com/MobileGL-Dev/MobileGlues/blob/dev-es/LICENSE). +* [Krypton Wrapper](https://github.com/BZLZHH/NG-GL4ES): [MIT License](https://github.com/BZLZHH/NG-GL4ES/blob/main/LICENSE) * [ANGLE](https://chromium.googlesource.com/angle/angle): [All Rights Reserved](app_pojavlauncher/src/main/assets/licenses/ANGLE_LICENSE). * [OpenJDK](https://github.com/AngelAuraMC/openjdk-multiarch-jdk8u): [GNU GPLv2 License](https://openjdk.java.net/legal/gplv2+ce.html). * [LWJGL3](https://github.com/AngelAuraMC/lwjgl3): [BSD-3 License](https://github.com/LWJGL/lwjgl3/blob/master/LICENSE.md). diff --git a/app_pojavlauncher/libs/krypton_wrapper-release.aar b/app_pojavlauncher/libs/krypton_wrapper-release.aar new file mode 100644 index 0000000000..b0ca81a277 Binary files /dev/null and b/app_pojavlauncher/libs/krypton_wrapper-release.aar differ diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java index 22c343772d..3faefe5b4a 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java @@ -182,7 +182,9 @@ public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surface) { } @Override - public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) {} + public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) { + // TODO: Triggers on eglSwapBuffers. Add a loading message and make it end here + } }); ((ViewGroup)getParent()).addView(textureView); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java index b2a518c7d1..7c854a5b96 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java @@ -483,22 +483,22 @@ public static String loadGraphicsLibrary(){ case "opengles2": case "opengles2_5": case "opengles3": - renderLibrary = "libgl4es_115.so"; break; + renderLibrary = "libng_gl4es.so"; break; case "vulkan_zink": renderLibrary = "libOSMesa.so"; break; case "opengles_mobileglues": renderLibrary = "libmobileglues.so"; break; case "opengles3_desktopgl_zink_kopper": renderLibrary = "libglxshim.so"; break; case "opengles3_ltw" : renderLibrary = "libltw.so"; break; default: Log.w("RENDER_LIBRARY", "No renderer selected, defaulting to opengles2"); - renderLibrary = "libgl4es_115.so"; + renderLibrary = "libng_gl4es.so"; break; } if (!dlopen(renderLibrary) && !dlopen(findInLdLibPath(renderLibrary))) { - Log.e("RENDER_LIBRARY","Failed to load renderer " + renderLibrary + ". Falling back to GL4ES 1.1.4"); + Log.e("RENDER_LIBRARY","Failed to load renderer " + renderLibrary + ". Falling back to Krypton Wrapper"); LOCAL_RENDERER = "opengles2"; - renderLibrary = "libgl4es_115.so"; - dlopen(NATIVE_LIB_DIR + "/libgl4es_115.so"); + renderLibrary = "libng_gl4es.so"; + dlopen(NATIVE_LIB_DIR + "/libng_gl4es.so"); } return renderLibrary; } diff --git a/app_pojavlauncher/src/main/res/values/headings_array.xml b/app_pojavlauncher/src/main/res/values/headings_array.xml index 8e78ef05d4..f8f6f0f715 100644 --- a/app_pojavlauncher/src/main/res/values/headings_array.xml +++ b/app_pojavlauncher/src/main/res/values/headings_array.xml @@ -1,7 +1,7 @@ - @string/mcl_setting_renderer_gles2_4 + @string/mcl_setting_renderer_ng_gl4es @string/mcl_setting_renderer_vulkan_kopper_zink @string/mcl_setting_renderer_vulkan_zink @string/mcl_setting_renderer_mobileglues @@ -37,8 +37,9 @@ - opengles2 - opengles3_desktopgl_zink_kopper vulkan_zink + opengles2 + opengles3_desktopgl_zink_kopper + vulkan_zink opengles_mobileglues opengles3_ltw diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 8398782a43..aee28335cd 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -66,6 +66,7 @@ Renderer specific settings Renderer Holy GL4ES - (1.21.4< only, fast) + Krypton Wrapper - (all versions, fast) Zink (Vulkan) - (all versions, mid) MobileGlues (OpenGL ES) - (1.17+ only, fast) LTW (OpenGL ES 3) - 1.17+ only diff --git a/jre_lwjgl3glfw/src/main/java/org/lwjgl/glfw/GLFW.java b/jre_lwjgl3glfw/src/main/java/org/lwjgl/glfw/GLFW.java index 1f04ed0bf4..a7d9db5875 100644 --- a/jre_lwjgl3glfw/src/main/java/org/lwjgl/glfw/GLFW.java +++ b/jre_lwjgl3glfw/src/main/java/org/lwjgl/glfw/GLFW.java @@ -1057,6 +1057,10 @@ public static long glfwCreateWindow(int width, int height, CharSequence title, l glMajor = 4; glMinor = 0; } + + // This somehow fixes a bunch of issues like glGetString sigsegv'ing on krypton wrapper. + glfwMakeContextCurrent(ptr); + // Get the real values properly FunctionProvider functionProvider = org.lwjgl.opengl.GL.getFunctionProvider(); if (functionProvider != null) { diff --git a/jre_lwjgl3glfw/src/main/java/org/lwjgl/opengl/PojavRendererInit.java b/jre_lwjgl3glfw/src/main/java/org/lwjgl/opengl/PojavRendererInit.java index 70b358d537..4670d854b5 100644 --- a/jre_lwjgl3glfw/src/main/java/org/lwjgl/opengl/PojavRendererInit.java +++ b/jre_lwjgl3glfw/src/main/java/org/lwjgl/opengl/PojavRendererInit.java @@ -26,7 +26,7 @@ public static void onCreateCapabilities(FunctionProvider functionProvider) { "Renderer-specific initialization may not work properly"); } // NOTE: hardcoded gl4es libname - if(rendererName.endsWith("libgl4es_115.so")) { + if(rendererName.endsWith("libng_gl4es.so")) { nativeInitGl4esInternals(functionProvider); } }