Skip to content

Vulkan bindings for Java using Project-Panama (java.lang.foreign) APIs

License

Notifications You must be signed in to change notification settings

chuigda/vulkan4j

Repository files navigation

vulkan4j

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.

Overview

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).

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.

Roadmap

  • Generate fundamental Vulkan API bindings using vkxml2java from vk.xml
  • Take off!
  • Vulkan tutorial
    • Chinese translation
  • Generate GLFW bindings using codegen
  • Switch to codegen for Vulkan bindings
  • Generate or write Vulkan Memory Allocator API bindings
  • Generate Vulkan Video API bindings

About

Vulkan bindings for Java using Project-Panama (java.lang.foreign) APIs

Resources

License

Stars

Watchers

Forks

Packages

No packages published