- Notifications
You must be signed in to change notification settings - Fork3
Overrun Game Library is a high-performance library implemented with Java 23, enables cross-platform access to a set of C/C++ library bindings, and provides some useful utilities.
License
Over-Run/overrungl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
voidmain() {// invoke native functions via static methodsglfwInit();// use MemorySegment to represent memory addressesMemorySegmentwindow =glfwCreateWindow(800,600,// use MemoryUtil::allocString to allocate string and manage by GCMemoryUtil.allocString("Title"),MemorySegment.NULL,MemorySegment.NULL );intwidth,height;// use MemoryStack for one-time and quick allocationtry (varstack =MemoryStack.pushLocal()) {// use SegmentAllocator to allocate memoryvarpWidth =stack.allocate(ValueLayout.JAVA_INT);varpHeight =stack.allocate(ValueLayout.JAVA_INT);glfwGetFramebufferSize(window,pWidth,pHeight);// use accessors in MemorySegment to read and write memorywidth =pWidth.get(ValueLayout.JAVA_INT,0L);height =pHeight.get(ValueLayout.JAVA_INT,0L); }// for OpenGL, create instance of wrappersvargl =newGL(GLFW::glfwGetProcAddress);// invoke OpenGL functions via instance methodsgl.ClearColor(0.0f,0.0f,0.0f,1.0f);}
Overrun Game Library is a high-performance library implemented with Java 23,which enables cross-platform access to a set of C/C++ library bindings, providing various useful utilities.
LWJGL 3 is also a Java library that enables cross-platform access.
LWJGL 3 uses JNI to access native functions, in OverrunGL, however,theFFM API is used, which makes the linking to native functions more convenientas well as providing better memory management.
You can check ourwiki orthesamples.
Checkdiscussions in case you have trouble in setup works, such as environment configuring.
Feel free to ask questions as long as you have searched in discussions and found no one had the same question.
We provided a modules customizerhere.
- Platform Maven coordinate:
io.github.over-run:overrungl-bom
- Core module Maven coordinate:
io.github.over-run:overrungl
- For others:
io.github.over-run:overrungl-<module-name>
For example:
dependencies { implementation(platform("io.github.over-run:overrungl-bom:<VERSION>")) implementation("io.github.over-run:overrungl") implementation("io.github.over-run:overrungl-glfw")}
We publish-SNAPSHOT
versions frequently.
For-SNAPSHOT
versions, you can checkthelist of available versionsand include this maven repository:
repositories { maven("https://s01.oss.sonatype.org/content/repositories/snapshots")}
You must enable the access to restricted methods by adding a VM argument or a manifest attribute.The customizer has already included this.
--enable-native-access=overrungl.core,...
Library | Description |
---|---|
OpenGL | The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms. |
Vulkan | A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. |
Library | Description |
---|---|
GLFW | Create multiple windows, handle user input (keyboard, mouse, gaming peripherals) and manage contexts. Also features multi-monitor support, clipboard access, file drag-n-drop, andmuch more. |
Native File Dialog Extended | A small C library that portably invokes native file open, folder select and file save dialogs. |
Library | Description |
---|---|
OpenAL | A cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications. |
OpenAL Soft | An LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. |
stb - single-file public domain libraries for C/C++
Library | Description |
---|---|
stb_easy_font | Quick-and-dirty easy-to-deploy bitmap font for printing frame rate, etc. |
stb_image | Image loading/decoding from file/memory: JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC |
stb_image_resize2 | Resize images larger/smaller with good quality. |
stb_image_write | Image writing to disk: PNG, TGA, BMP |
stb_perlin | Revised Perlin noise (3D input, 1D output). |
stb_rect_pack | Simple 2D rectangle packer with decent quality. |
stb_truetype | Parse, decode, and rasterize characters from truetype fonts. |
stb_vorbis | Decode ogg vorbis files from file/memory to float/16-bit signed output. |
Library | Description |
---|---|
JOML | A Java math library for OpenGL rendering calculations |
Seedoc/notes.
The latest Javadoc can be foundhere.
About
Overrun Game Library is a high-performance library implemented with Java 23, enables cross-platform access to a set of C/C++ library bindings, and provides some useful utilities.