diff --git a/gl-dri-natives/pom.xml b/gl-dri-natives/pom.xml index d7488926a9..29e8fd2b09 100644 --- a/gl-dri-natives/pom.xml +++ b/gl-dri-natives/pom.xml @@ -9,7 +9,26 @@ openrs2-gl-dri-natives - jar + nar OpenRS2 GL DRI Natives + + + + + com.github.maven-nar + nar-maven-plugin + + + + + shared + dl + + + + + + + diff --git a/gl-dri-natives/src/main/c/jaggl_dri.c b/gl-dri-natives/src/main/c/jaggl_dri.c new file mode 100644 index 0000000000..520d4e43d4 --- /dev/null +++ b/gl-dri-natives/src/main/c/jaggl_dri.c @@ -0,0 +1,29 @@ +#include "jaggl_X11_dri.h" + +#include +#include + +static void *jaggl_dri_handle; + +JNIEXPORT jboolean JNICALL Java_jaggl_X11_dri_open(JNIEnv *env, jclass cls, jstring path) { + if (jaggl_dri_handle) { + dlclose(jaggl_dri_handle); + jaggl_dri_handle = NULL; + } + + const char *path_str = (*env)->GetStringUTFChars(env, path, NULL); + jaggl_dri_handle = dlopen(path_str, RTLD_LAZY | RTLD_GLOBAL); + (*env)->ReleaseStringUTFChars(env, path, path_str); + + return jaggl_dri_handle != NULL; +} + +JNIEXPORT jboolean JNICALL Java_jaggl_X11_dri_close(JNIEnv *env, jclass cls) { + if (jaggl_dri_handle) { + dlclose(jaggl_dri_handle); + jaggl_dri_handle = NULL; + return JNI_TRUE; + } + + return JNI_FALSE; +} diff --git a/pom.xml b/pom.xml index 086e699a91..3c12c81e74 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,6 @@ deob-annotations fernflower game - gl-dri-natives gl-natives misc-natives util @@ -97,6 +96,11 @@ + + com.github.maven-nar + nar-maven-plugin + 3.6.0 + io.github.zlika reproducible-build-maven-plugin @@ -170,6 +174,25 @@ + + com.github.maven-nar + nar-maven-plugin + true + + + + shared + false + + + + full + + + true + + + io.github.zlika reproducible-build-maven-plugin @@ -261,5 +284,31 @@ nonfree + + unix + + + unix + + + + gl-dri-natives + + + + + com.github.maven-nar + nar-maven-plugin + + + + + + + + + + +