Just released \o/ https://clojurians.slack.com/archives/C06MAR553/p1715831448411059
Let me know if you are able to test on your side (tested only on my ARM OSX, I'm pretty sure it will require some small modifications to bin/jextract-libs.sh so it's compiled fine for Linux and Windows)
I'm curious what your thoughts are on jextract vs options like clong and javacpp.
Hi, what are advantages over existing Raylib bindings?
@smith.adriane jextract works without any error from what I have seen, but it’s only for C, C++ is not supported. I have reported one small issue with conflicting parameter names that were promptly resolved. But I haven’t really used clong or javacpp for real, so cannot attest much. I can say that the workflow is much better than JNI/JNR o/
@zikajk The bindings are generated by jextract, which contains metadata about the C functions and types, e.g. descriptions of the expected arguments and return, which makes it very easy to be read at runtime. As it’s integrated with vybe.panama, we can define raylib or flecs type instances using ordinary Clojure maps. In comparison with raylib-clj, you don’t need to do custom code for the bindings as done at https://github.com/lsevero/clj-raylib/tree/master/java/raylib/jna. If raylib is updated, you just need to run jextract and things will be updated accordingly in the Java/Clojure side when you restart the REPL.
Not sure about the other raylib bindings, but, as long you start the REPL with raylib drawing method in the main thread (at least in OSX you have this issue), drawing functions that you run from the REPL will be sent as an event to the main thread (unless they are already being run from the main thread), some work was done to make it interactivity-friendly