From 526c14a5e30e120697511d7424be9d271e35df2c Mon Sep 17 00:00:00 2001 From: squid233 <60126026+squid233@users.noreply.github.com> Date: Wed, 22 Nov 2023 13:14:30 +0800 Subject: [PATCH] Update stuff Update dependencies; move versions of native libraries to class OverrunGL; added CStdlib::newString --- build.gradle.kts | 2 +- .../src/main/java/overrungl/OverrunGL.java | 12 ++++++++++++ .../src/main/java/overrungl/util/CStdlib.java | 17 +++++++++++++++++ .../src/main/java/overrungl/glfw/Handles.java | 4 ++-- .../src/main/java/overrungl/nfd/NFD.java | 3 ++- .../src/main/java/overrungl/stb/Handles.java | 3 ++- 6 files changed, 36 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8d882549..a2218098 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -137,7 +137,7 @@ subprojects { val compileOnly by configurations val implementation by configurations dependencies { - compileOnly("org.jetbrains:annotations:24.0.1") + compileOnly("org.jetbrains:annotations:24.1.0") if (project.name != "core") { implementation(project(":core")) } diff --git a/modules/overrungl.core/src/main/java/overrungl/OverrunGL.java b/modules/overrungl.core/src/main/java/overrungl/OverrunGL.java index e4440991..dc117b58 100644 --- a/modules/overrungl.core/src/main/java/overrungl/OverrunGL.java +++ b/modules/overrungl.core/src/main/java/overrungl/OverrunGL.java @@ -30,6 +30,18 @@ public final class OverrunGL { * The version of OverrunGL. */ public static final String VERSION = "0.1.0"; + /** + * The version of GLFW native libraries. + */ + public static final String GLFW_VERSION = "3.3.8.0"; + /** + * The version of NFD native libraries. + */ + public static final String NFD_VERSION = "0.1.0.0"; + /** + * The version of STB native libraries. + */ + public static final String STB_VERSION = "0.1.0.0"; private static final Consumer DEFAULT_LOGGER = System.err::println; private static Consumer apiLogger = DEFAULT_LOGGER; diff --git a/modules/overrungl.core/src/main/java/overrungl/util/CStdlib.java b/modules/overrungl.core/src/main/java/overrungl/util/CStdlib.java index 1e780730..621ca7ef 100644 --- a/modules/overrungl.core/src/main/java/overrungl/util/CStdlib.java +++ b/modules/overrungl.core/src/main/java/overrungl/util/CStdlib.java @@ -326,4 +326,21 @@ public static MemorySegment memset(MemorySegment dest, int c, long count) { throw new AssertionError("should not reach here", e); } } + + /** + * Allocates a string with {@link CStdlib}. + * + * @param s the string. + * @return the memory segment of the allocated string. MUST be released by {@link #free(MemorySegment)}. + */ + public static MemorySegment newString(String s) { + class Holder { + private static final SegmentAllocator ALLOCATOR = (byteSize, byteAlignment) -> { + checkByteSize(byteSize); + checkAlignment(byteAlignment); + return calloc(1, byteSize); + }; + } + return Holder.ALLOCATOR.allocateUtf8String(s); + } } diff --git a/modules/overrungl.glfw/src/main/java/overrungl/glfw/Handles.java b/modules/overrungl.glfw/src/main/java/overrungl/glfw/Handles.java index 997ad047..16004308 100644 --- a/modules/overrungl.glfw/src/main/java/overrungl/glfw/Handles.java +++ b/modules/overrungl.glfw/src/main/java/overrungl/glfw/Handles.java @@ -18,6 +18,7 @@ import overrungl.Configurations; import overrungl.FunctionDescriptors; +import overrungl.OverrunGL; import overrungl.internal.RuntimeHelper; import java.lang.foreign.FunctionDescriptor; @@ -40,8 +41,7 @@ final class Handles { private static final SymbolLookup lookup; static { - final Supplier lib = () -> RuntimeHelper.load("glfw", "glfw3", - STR. "\{ GLFW.VERSION_MAJOR }.\{ GLFW.VERSION_MINOR }.\{ GLFW.VERSION_REVISION }" ); + final Supplier lib = () -> RuntimeHelper.load("glfw", "glfw3", OverrunGL.GLFW_VERSION); final var function = Configurations.GLFW_SYMBOL_LOOKUP.get(); lookup = function != null ? function.apply(lib) : lib.get(); } diff --git a/modules/overrungl.nfd/src/main/java/overrungl/nfd/NFD.java b/modules/overrungl.nfd/src/main/java/overrungl/nfd/NFD.java index 9db59ce9..cc0d0182 100644 --- a/modules/overrungl.nfd/src/main/java/overrungl/nfd/NFD.java +++ b/modules/overrungl.nfd/src/main/java/overrungl/nfd/NFD.java @@ -19,6 +19,7 @@ import overrungl.Configurations; import overrungl.FunctionDescriptors; import overrungl.NativeType; +import overrungl.OverrunGL; import overrungl.internal.RuntimeHelper; import overrungl.os.Platform; import overrungl.util.MemoryStack; @@ -123,7 +124,7 @@ public final class NFD { private static final SymbolLookup LOOKUP; static { - final Supplier lib = () -> RuntimeHelper.load("nfd", "nfd", "0.1.0.0"); + final Supplier lib = () -> RuntimeHelper.load("nfd", "nfd", OverrunGL.NFD_VERSION); final var function = Configurations.NFD_SYMBOL_LOOKUP.get(); LOOKUP = function != null ? function.apply(lib) : lib.get(); } diff --git a/modules/overrungl.stb/src/main/java/overrungl/stb/Handles.java b/modules/overrungl.stb/src/main/java/overrungl/stb/Handles.java index d75b8e21..ff35af8b 100644 --- a/modules/overrungl.stb/src/main/java/overrungl/stb/Handles.java +++ b/modules/overrungl.stb/src/main/java/overrungl/stb/Handles.java @@ -18,6 +18,7 @@ import overrungl.Configurations; import overrungl.FunctionDescriptors; +import overrungl.OverrunGL; import overrungl.internal.RuntimeHelper; import java.lang.foreign.Linker; @@ -35,7 +36,7 @@ final class Handles { private static final SymbolLookup lookup; static { - final Supplier lib = () -> RuntimeHelper.load("stb", "stb", "0.1.0.0"); + final Supplier lib = () -> RuntimeHelper.load("stb", "stb", OverrunGL.STB_VERSION); final var function = Configurations.STB_SYMBOL_LOOKUP.get(); lookup = function != null ? function.apply(lib) : lib.get(); }