diff --git a/JavaApp/libs/lwjgl/lwjgl-freetype.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-freetype.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-freetype.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-freetype.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-glfw.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-glfw.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-glfw.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-glfw.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-lwjglx.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-lwjglx.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-lwjglx.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-lwjglx.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-nanovg.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-nanovg.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-nanovg.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-nanovg.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-openal.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-openal.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-openal.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-openal.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-opengl.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-opengl.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-opengl.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-opengl.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-shaderc.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-shaderc.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-shaderc.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-shaderc.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-stb.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-stb.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-stb.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-stb.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-tinyfd.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-tinyfd.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-tinyfd.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-tinyfd.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-vma.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-vma.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-vma.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-vma.jar diff --git a/JavaApp/libs/lwjgl/lwjgl-vulkan.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl-vulkan.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl-vulkan.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl-vulkan.jar diff --git a/JavaApp/libs/lwjgl/lwjgl.jar b/JavaApp/libs/lwjgl-3.3.3/lwjgl.jar similarity index 100% rename from JavaApp/libs/lwjgl/lwjgl.jar rename to JavaApp/libs/lwjgl-3.3.3/lwjgl.jar diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-freetype.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-freetype.jar new file mode 100644 index 0000000000..6998101d5d Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-freetype.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-glfw.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-glfw.jar new file mode 100644 index 0000000000..6aaa5029e9 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-glfw.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-nanovg.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-nanovg.jar new file mode 100644 index 0000000000..a7bf9614c6 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-nanovg.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-openal.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-openal.jar new file mode 100644 index 0000000000..da6e59daa7 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-openal.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-opengl.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-opengl.jar new file mode 100644 index 0000000000..9561bcc5a5 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-opengl.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-shaderc.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-shaderc.jar new file mode 100644 index 0000000000..694a4f300e Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-shaderc.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-spvc.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-spvc.jar new file mode 100644 index 0000000000..c6f55cc909 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-spvc.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-stb.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-stb.jar new file mode 100644 index 0000000000..0dbb14d1f0 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-stb.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-tinyfd.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-tinyfd.jar new file mode 100644 index 0000000000..6798812c93 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-tinyfd.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-vma.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-vma.jar new file mode 100644 index 0000000000..6c6ed154f9 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-vma.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl-vulkan.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl-vulkan.jar new file mode 100644 index 0000000000..243dc0a898 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl-vulkan.jar differ diff --git a/JavaApp/libs/lwjgl-3.4.1/lwjgl.jar b/JavaApp/libs/lwjgl-3.4.1/lwjgl.jar new file mode 100644 index 0000000000..936494d109 Binary files /dev/null and b/JavaApp/libs/lwjgl-3.4.1/lwjgl.jar differ diff --git a/Natives/JavaLauncher.m b/Natives/JavaLauncher.m index 6e22c7f46a..27ec3cf9b1 100644 --- a/Natives/JavaLauncher.m +++ b/Natives/JavaLauncher.m @@ -149,6 +149,7 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi BOOL launchJar = NO; NSString *gameDir; NSString *defaultJRETag; + NSString *lwjglFolder = @"lwjgl-3.3.3"; NSCAssert(launchTarget, @"Unexpected nil launchTarget"); if ([launchTarget isKindOfClass:NSDictionary.class]) { // Get preferred Java version from current profile @@ -167,6 +168,13 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi defaultJRETag = @"1_17_newer"; } + // Use LWJGL 3.4.1 for 26.1+, 3.3.3 for 1.21.11 and below + int mcMajorVersion = [launchTarget[@"id"] intValue]; + if (mcMajorVersion >= 26) { + lwjglFolder = @"lwjgl-3.4.1"; + } + NSLog(@"[JavaLauncher] Using LWJGL from %@", lwjglFolder); + // Setup POJAV_RENDERER NSString *renderer = [PLProfiles resolveKeyForCurrentProfile:@"renderer"]; NSLog(@"[JavaLauncher] RENDERER is set to %@\n", renderer); @@ -232,7 +240,8 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi } margv[++margc] = "-Xms128M"; margv[++margc] = [NSString stringWithFormat:@"-Xmx%dM", allocmem].UTF8String; - margv[++margc] = [NSString stringWithFormat:@"-Djava.library.path=%@/Frameworks", NSBundle.mainBundle.bundlePath].UTF8String; + NSString *lwjglNativesFolder = [lwjglFolder isEqualToString:@"lwjgl-3.4.1"] ? @"lwjgl34" : @"lwjgl33"; + margv[++margc] = [NSString stringWithFormat:@"-Djava.library.path=%@/Frameworks:%@/Frameworks/%@", NSBundle.mainBundle.bundlePath, NSBundle.mainBundle.bundlePath, lwjglNativesFolder].UTF8String; margv[++margc] = [NSString stringWithFormat:@"-Duser.dir=%@", gameDir].UTF8String; margv[++margc] = [NSString stringWithFormat:@"-Duser.home=%s", getenv("POJAV_HOME")].UTF8String; margv[++margc] = [NSString stringWithFormat:@"-Duser.timezone=%@", NSTimeZone.localTimeZone.name].UTF8String; @@ -351,7 +360,7 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi init_loadCustomJvmFlags(&margc, (const char **)margv); NSLog(@"[Init] Found JLI lib"); - NSString *classpath = [NSString stringWithFormat:@"%@/*", librariesPath]; + NSString *classpath = [NSString stringWithFormat:@"%@/*:%@/%@/*", librariesPath, librariesPath, lwjglFolder]; if (launchJar) { classpath = [classpath stringByAppendingFormat:@":%@", launchTarget]; } diff --git a/Natives/resources/Frameworks/libopenal.dylib b/Natives/resources/Frameworks/libopenal.dylib index a5f799c18e..12e0aa0693 100644 Binary files a/Natives/resources/Frameworks/libopenal.dylib and b/Natives/resources/Frameworks/libopenal.dylib differ diff --git a/Natives/resources/Frameworks/libfreetype.dylib b/Natives/resources/Frameworks/lwjgl33/libfreetype.dylib similarity index 100% rename from Natives/resources/Frameworks/libfreetype.dylib rename to Natives/resources/Frameworks/lwjgl33/libfreetype.dylib diff --git a/Natives/resources/Frameworks/liblwjgl.dylib b/Natives/resources/Frameworks/lwjgl33/liblwjgl.dylib similarity index 100% rename from Natives/resources/Frameworks/liblwjgl.dylib rename to Natives/resources/Frameworks/lwjgl33/liblwjgl.dylib diff --git a/Natives/resources/Frameworks/liblwjgl_nanovg.dylib b/Natives/resources/Frameworks/lwjgl33/liblwjgl_nanovg.dylib similarity index 100% rename from Natives/resources/Frameworks/liblwjgl_nanovg.dylib rename to Natives/resources/Frameworks/lwjgl33/liblwjgl_nanovg.dylib diff --git a/Natives/resources/Frameworks/liblwjgl_opengl.dylib b/Natives/resources/Frameworks/lwjgl33/liblwjgl_opengl.dylib similarity index 100% rename from Natives/resources/Frameworks/liblwjgl_opengl.dylib rename to Natives/resources/Frameworks/lwjgl33/liblwjgl_opengl.dylib diff --git a/Natives/resources/Frameworks/liblwjgl_stb.dylib b/Natives/resources/Frameworks/lwjgl33/liblwjgl_stb.dylib similarity index 100% rename from Natives/resources/Frameworks/liblwjgl_stb.dylib rename to Natives/resources/Frameworks/lwjgl33/liblwjgl_stb.dylib diff --git a/Natives/resources/Frameworks/liblwjgl_tinyfd.dylib b/Natives/resources/Frameworks/lwjgl33/liblwjgl_tinyfd.dylib similarity index 100% rename from Natives/resources/Frameworks/liblwjgl_tinyfd.dylib rename to Natives/resources/Frameworks/lwjgl33/liblwjgl_tinyfd.dylib diff --git a/Natives/resources/Frameworks/liblwjgl_vma.dylib b/Natives/resources/Frameworks/lwjgl33/liblwjgl_vma.dylib old mode 100755 new mode 100644 similarity index 100% rename from Natives/resources/Frameworks/liblwjgl_vma.dylib rename to Natives/resources/Frameworks/lwjgl33/liblwjgl_vma.dylib diff --git a/Natives/resources/Frameworks/lwjgl34/libfreetype.dylib b/Natives/resources/Frameworks/lwjgl34/libfreetype.dylib new file mode 100644 index 0000000000..42d1e91ede Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/libfreetype.dylib differ diff --git a/Natives/resources/Frameworks/lwjgl34/liblwjgl.dylib b/Natives/resources/Frameworks/lwjgl34/liblwjgl.dylib new file mode 100644 index 0000000000..860ff75c1f Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/liblwjgl.dylib differ diff --git a/Natives/resources/Frameworks/lwjgl34/liblwjgl_nanovg.dylib b/Natives/resources/Frameworks/lwjgl34/liblwjgl_nanovg.dylib new file mode 100644 index 0000000000..c88d8846f8 Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/liblwjgl_nanovg.dylib differ diff --git a/Natives/resources/Frameworks/lwjgl34/liblwjgl_opengl.dylib b/Natives/resources/Frameworks/lwjgl34/liblwjgl_opengl.dylib new file mode 100644 index 0000000000..ea070f6733 Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/liblwjgl_opengl.dylib differ diff --git a/Natives/resources/Frameworks/lwjgl34/liblwjgl_stb.dylib b/Natives/resources/Frameworks/lwjgl34/liblwjgl_stb.dylib new file mode 100644 index 0000000000..cb53fc27c7 Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/liblwjgl_stb.dylib differ diff --git a/Natives/resources/Frameworks/lwjgl34/liblwjgl_tinyfd.dylib b/Natives/resources/Frameworks/lwjgl34/liblwjgl_tinyfd.dylib new file mode 100644 index 0000000000..9f952a15e4 Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/liblwjgl_tinyfd.dylib differ diff --git a/Natives/resources/Frameworks/lwjgl34/liblwjgl_vma.dylib b/Natives/resources/Frameworks/lwjgl34/liblwjgl_vma.dylib new file mode 100644 index 0000000000..08fd922852 Binary files /dev/null and b/Natives/resources/Frameworks/lwjgl34/liblwjgl_vma.dylib differ