Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/over-run/overrungl
Overrun Game Library is a high-performance library implemented with Java 22, enables cross-platform access to a set of C/C++ library bindings, and provides some useful utilities.
https://github.com/over-run/overrungl
bindings game-library gl-binding glfw glfw-bindings java java-22 java-game-library java22 opengl overrungl project-panama
Last synced: 6 days ago
JSON representation
Overrun Game Library is a high-performance library implemented with Java 22, enables cross-platform access to a set of C/C++ library bindings, and provides some useful utilities.
- Host: GitHub
- URL: https://github.com/over-run/overrungl
- Owner: Over-Run
- License: mit
- Created: 2022-08-13T10:20:34.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-02T06:08:35.000Z (21 days ago)
- Last Synced: 2024-12-02T07:23:10.890Z (21 days ago)
- Topics: bindings, game-library, gl-binding, glfw, glfw-bindings, java, java-22, java-game-library, java22, opengl, overrungl, project-panama
- Language: Java
- Homepage: https://over-run.github.io/overrungl/
- Size: 3.59 MB
- Stars: 9
- Watchers: 1
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# OverrunGL - Overrun Game Library
![License](https://img.shields.io/github/license/Over-Run/overrungl)
[//]: # (![Maven Central](https://img.shields.io/maven-central/v/io.github.over-run/overrungl))
![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/io.github.over-run/overrungl?server=https%3A%2F%2Fs01.oss.sonatype.org)[![Java CI with Gradle](https://github.com/Over-Run/overrungl/actions/workflows/gradle.yml/badge.svg?event=push)](https://github.com/Over-Run/overrungl/actions/workflows/gradle.yml)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8279/badge)](https://www.bestpractices.dev/projects/8279)## Introduction
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.### Comparing with LWJGL 3
[LWJGL 3](https://github.com/LWJGL/lwjgl3) is also a Java library that enables cross-platform access.
LWJGL 3 uses JNI to access native functions, in OverrunGL, however,
the [FFM API](https://openjdk.org/jeps/454) is used, which makes the linking to native functions more convenient
as well as providing better memory management.## Getting Started
You can check our [wiki](https://github.com/Over-Run/overrungl/wiki) or
the [samples](modules/samples/src/test/java/overrungl/demo).Check [discussions](https://github.com/Over-Run/overrungl/discussions) 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.
## Import as a Dependency
We provided a modules customizer [here](https://over-run.github.io/overrungl-gen/).
A documentation of the customizer is [here](doc/customizer/doc_on_customizer.md).- 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-`Currently, OverrunGL uses preview features preventing users from using newer JDKs,
so only `-SNAPSHOT` versions are provided at this time.### Using -SNAPSHOT Versions
We publish `-SNAPSHOT` versions frequently.
For `-SNAPSHOT` versions, you can check
the [list of available versions](https://s01.oss.sonatype.org/content/repositories/snapshots/io/github/over-run/overrungl/maven-metadata.xml)
and include this maven repository:```kotlin
repositories {
maven("https://s01.oss.sonatype.org/content/repositories/snapshots")
}
```### Enable native access
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,...
```## List of Supported Bindings
### Khronos APIs
| Library | Description |
|-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| [OpenGL](https://www.khronos.org/opengl/) | The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms. |### Display and Input
| Library | Description |
|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [GLFW](http://www.glfw.org/) | Create multiple windows, handle user input (keyboard, mouse, gaming peripherals) and manage contexts. Also features multi-monitor support, clipboard access, file drag-n-drop, and [much more](http://www.glfw.org/docs/latest/news.html). |
| [Native File Dialog Extended](https://github.com/btzy/nativefiledialog-extended) | A small C library that portably invokes native file open, folder select and file save dialogs. |### [stb](https://github.com/nothings/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_resize | 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. |### Other
| Library | Description |
|-----------------------------------------|-------------------------------------------------------|
| [JOML](https://github.com/JOML-CI/JOML) | A Java math library for OpenGL rendering calculations |## Release Notes
See [doc/notes](doc/notes/README.md).
## Additional
The latest Javadoc can be found [here](https://over-run.github.io/overrungl/).
The documentation of OpenGL can be found from [Khronos' references](https://registry.khronos.org/OpenGL-Refpages/gl4/) and [docs.gl](https://docs.gl/).
OverrunGL uses [Marshal](https://github.com/Over-Run/marshal).
[JavaPoet](https://github.com/palantir/javapoet) is used to generate source files.
### Credits
[](https://jb.gg/OpenSourceSupport)