diff --git a/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java b/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java index d6bb9e6c11..8c5c790be2 100644 --- a/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java +++ b/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2022 jMonkeyEngine + * Copyright (c) 2009-2023 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -75,7 +75,7 @@ public final class NativeLibraryLoader { private static File extractionFolder = null; private static final HashMap nativeLibraryMap - = new HashMap(); + = new HashMap<>(); /** * Register a new known library. @@ -120,55 +120,25 @@ public static void registerNativeLibrary(String name, Platform platform, } static { - // LWJGL - registerNativeLibrary("lwjgl", Platform.Windows32, "native/windows/lwjgl.dll"); - registerNativeLibrary("lwjgl", Platform.Windows64, "native/windows/lwjgl64.dll"); - registerNativeLibrary("lwjgl", Platform.Linux32, "native/linux/liblwjgl.so"); - registerNativeLibrary("lwjgl", Platform.Linux64, "native/linux/liblwjgl64.so"); - registerNativeLibrary("lwjgl", Platform.MacOSX32, "native/macosx/liblwjgl.dylib"); - registerNativeLibrary("lwjgl", Platform.MacOSX64, "native/macosx/liblwjgl.dylib"); + // Note: LWJGL 3 handles its native library extracting & loading using + // its own SharedLibraryLoader. - // OpenAL - // For OSX: Need to add lib prefix when extracting - registerNativeLibrary("openal", Platform.Windows32, "native/windows/OpenAL32.dll"); - registerNativeLibrary("openal", Platform.Windows64, "native/windows/OpenAL64.dll"); - registerNativeLibrary("openal", Platform.Linux32, "native/linux/libopenal.so"); - registerNativeLibrary("openal", Platform.Linux64, "native/linux/libopenal64.so"); - registerNativeLibrary("openal", Platform.MacOSX32, "native/macosx/openal.dylib", "libopenal.dylib"); - registerNativeLibrary("openal", Platform.MacOSX64, "native/macosx/openal.dylib", "libopenal.dylib"); - - // LWJGL 3.x - registerNativeLibrary("lwjgl3", Platform.Windows32, "native/windows/lwjgl32.dll"); - registerNativeLibrary("lwjgl3", Platform.Windows64, "native/windows/lwjgl.dll"); - registerNativeLibrary("lwjgl3", Platform.Linux32, "native/linux/liblwjgl32.so"); - registerNativeLibrary("lwjgl3", Platform.Linux64, "native/linux/liblwjgl.so"); - registerNativeLibrary("lwjgl3", Platform.MacOSX32, "native/macosx/liblwjgl.dylib"); - registerNativeLibrary("lwjgl3", Platform.MacOSX64, "native/macosx/liblwjgl.dylib"); - - // GLFW for LWJGL 3.x - registerNativeLibrary("glfw-lwjgl3", Platform.Windows32, "native/windows/glfw32.dll"); - registerNativeLibrary("glfw-lwjgl3", Platform.Windows64, "native/windows/glfw.dll"); - registerNativeLibrary("glfw-lwjgl3", Platform.Linux32, "native/linux/libglfw32.so"); - registerNativeLibrary("glfw-lwjgl3", Platform.Linux64, "native/linux/libglfw.so"); - registerNativeLibrary("glfw-lwjgl3", Platform.MacOSX32, "native/macosx/libglfw.dylib"); - registerNativeLibrary("glfw-lwjgl3", Platform.MacOSX64, "native/macosx/libglfw.dylib"); - - // jemalloc for LWJGL 3.x - registerNativeLibrary("jemalloc-lwjgl3", Platform.Windows32, "native/windows/jemalloc32.dll"); - registerNativeLibrary("jemalloc-lwjgl3", Platform.Windows64, "native/windows/jemalloc.dll"); - registerNativeLibrary("jemalloc-lwjgl3", Platform.Linux32, "native/linux/libjemalloc32.so"); - registerNativeLibrary("jemalloc-lwjgl3", Platform.Linux64, "native/linux/libjemalloc.so"); - registerNativeLibrary("jemalloc-lwjgl3", Platform.MacOSX32, "native/macosx/libjemalloc.dylib"); - registerNativeLibrary("jemalloc-lwjgl3", Platform.MacOSX64, "native/macosx/libjemalloc.dylib"); + // LWJGL 2 + registerNativeLibrary("lwjgl", Platform.Windows32, "lwjgl.dll"); + registerNativeLibrary("lwjgl", Platform.Windows64, "lwjgl64.dll"); + registerNativeLibrary("lwjgl", Platform.Linux32, "liblwjgl.so"); + registerNativeLibrary("lwjgl", Platform.Linux64, "liblwjgl64.so"); + registerNativeLibrary("lwjgl", Platform.MacOSX32, "liblwjgl.dylib"); + registerNativeLibrary("lwjgl", Platform.MacOSX64, "liblwjgl.dylib"); - // OpenAL for LWJGL 3.x + // OpenAL for LWJGL 2 // For OSX: Need to add lib prefix when extracting - registerNativeLibrary("openal-lwjgl3", Platform.Windows32, "native/windows/OpenAL32.dll"); - registerNativeLibrary("openal-lwjgl3", Platform.Windows64, "native/windows/OpenAL.dll"); - registerNativeLibrary("openal-lwjgl3", Platform.Linux32, "native/linux/libopenal32.so"); - registerNativeLibrary("openal-lwjgl3", Platform.Linux64, "native/linux/libopenal.so"); - registerNativeLibrary("openal-lwjgl3", Platform.MacOSX32, "native/macosx/openal.dylib", "libopenal.dylib"); - registerNativeLibrary("openal-lwjgl3", Platform.MacOSX64, "native/macosx/openal.dylib", "libopenal.dylib"); + registerNativeLibrary("openal", Platform.Windows32, "OpenAL32.dll"); + registerNativeLibrary("openal", Platform.Windows64, "OpenAL64.dll"); + registerNativeLibrary("openal", Platform.Linux32, "libopenal.so"); + registerNativeLibrary("openal", Platform.Linux64, "libopenal64.so"); + registerNativeLibrary("openal", Platform.MacOSX32, "openal.dylib", "libopenal.dylib"); + registerNativeLibrary("openal", Platform.MacOSX64, "openal.dylib", "libopenal.dylib"); // BulletJme registerNativeLibrary("bulletjme", Platform.Windows32, "native/windows/x86/bulletjme.dll"); @@ -184,16 +154,16 @@ public static void registerNativeLibrary(String name, Platform platform, // JInput // For OSX: Need to rename extension jnilib -> dylib when extracting - registerNativeLibrary("jinput", Platform.Windows32, "native/windows/jinput-raw.dll"); - registerNativeLibrary("jinput", Platform.Windows64, "native/windows/jinput-raw_64.dll"); - registerNativeLibrary("jinput", Platform.Linux32, "native/windows/libjinput-linux.so"); - registerNativeLibrary("jinput", Platform.Linux64, "native/windows/libjinput-linux64.so"); - registerNativeLibrary("jinput", Platform.MacOSX32, "native/macosx/libjinput-osx.jnilib", "libjinput-osx.dylib"); - registerNativeLibrary("jinput", Platform.MacOSX64, "native/macosx/libjinput-osx.jnilib", "libjinput-osx.dylib"); + registerNativeLibrary("jinput", Platform.Windows32, "jinput-raw.dll"); + registerNativeLibrary("jinput", Platform.Windows64, "jinput-raw_64.dll"); + registerNativeLibrary("jinput", Platform.Linux32, "libjinput-linux.so"); + registerNativeLibrary("jinput", Platform.Linux64, "libjinput-linux64.so"); + registerNativeLibrary("jinput", Platform.MacOSX32, "libjinput-osx.jnilib", "libjinput-osx.dylib"); + registerNativeLibrary("jinput", Platform.MacOSX64, "libjinput-osx.jnilib", "libjinput-osx.dylib"); // JInput Auxiliary (only required on Windows) - registerNativeLibrary("jinput-dx8", Platform.Windows32, "native/windows/jinput-dx8.dll"); - registerNativeLibrary("jinput-dx8", Platform.Windows64, "native/windows/jinput-dx8_64.dll"); + registerNativeLibrary("jinput-dx8", Platform.Windows32, "jinput-dx8.dll"); + registerNativeLibrary("jinput-dx8", Platform.Windows64, "jinput-dx8_64.dll"); registerNativeLibrary("jinput-dx8", Platform.Linux32, null); registerNativeLibrary("jinput-dx8", Platform.Linux64, null); registerNativeLibrary("jinput-dx8", Platform.MacOSX32, null); @@ -294,19 +264,14 @@ private static File getJmeUserCacheFolder() { File userHomeFolder = new File(System.getProperty("user.home")); File userCacheFolder = null; - switch (JmeSystem.getPlatform()) { - case Linux32: - case Linux64: + switch (JmeSystem.getPlatform().getOs()) { + case Linux: userCacheFolder = new File(userHomeFolder, ".cache"); break; - case MacOSX32: - case MacOSX64: - case MacOSX_PPC32: - case MacOSX_PPC64: + case MacOS: userCacheFolder = new File(new File(userHomeFolder, "Library"), "Caches"); break; - case Windows32: - case Windows64: + case Windows: userCacheFolder = new File(new File(userHomeFolder, "AppData"), "Local"); break; } diff --git a/jme3-vr/src/main/java/com/jme3/system/lwjgl/LwjglContextVR.java b/jme3-vr/src/main/java/com/jme3/system/lwjgl/LwjglContextVR.java index aa02e3ab19..01dbf7df2a 100644 --- a/jme3-vr/src/main/java/com/jme3/system/lwjgl/LwjglContextVR.java +++ b/jme3-vr/src/main/java/com/jme3/system/lwjgl/LwjglContextVR.java @@ -119,17 +119,9 @@ protected void loadNatives() { return; } - if ("LWJGL".equals(settings.getAudioRenderer())) { - NativeLibraryLoader.loadNativeLibrary("openal-lwjgl3", true); - } - if (NativeLibraryLoader.isUsingNativeBullet()) { NativeLibraryLoader.loadNativeLibrary("bulletjme", true); } - - NativeLibraryLoader.loadNativeLibrary("glfw-lwjgl3", true); - NativeLibraryLoader.loadNativeLibrary("jemalloc-lwjgl3", true); - NativeLibraryLoader.loadNativeLibrary("lwjgl3", true); } /**