Vulkan Binding for Java using Project Panama java.lang.foreign
APIs.
Heavily inspired by the vulkanalia
crate.
For users new to Vulkan, there is a (almost) complete adaptation of https://vulkan-tutorial.com by Alexander Overvoorde to use Java and vulkan4j instead of C++. The published version of this tutorial can be found here, and the sources for the tutorial (including standalone working code examples for each chapter) can be found under the tutorial
directory.
panama-plus
is a small utility library that gives a thin wrapper over Project Panama java.lang.foreign
APIs to make them easier and more type-safe to use. It is used by vulkan4j
to provide a more Java-friendly API for Vulkan.
vk4j
is the main library that provides the Vulkan bindings. Bindings are generated from vk.xml
using vkxml2java
(we plan to switch to codegen
module soon).
vma
is a binding to the Vulkan Memory Allocator library. It is generated from vk_mem_alloc.h
using the codegen
module.
glfw
is a wrapper around the GLFW library that provides a more Java-friendly API for creating windows and handling input. It is generated from GLFW header files using the codegen
module.
gles2
provides OpenGL ES2 bindings. Bindings are generated from gl.xml
using the codegen
module.
- Generate fundamental Vulkan API bindings using
vkxml2java
fromvk.xml
- Take off!
- Vulkan tutorial
- Chinese translation
- Generate GLFW bindings using
codegen
- Generate OpenGL ES2 bindings using
codegen
- Generate or write Vulkan Memory Allocator API bindings
- Switch to
codegen
for Vulkan bindings - Generate Vulkan Video API bindings