1 unstable release
0.3.0 | Oct 21, 2024 |
---|
#720 in GUI
171 downloads per month
200KB
3.5K
SLoC
A Vulkan renderer for yakui, a declarative UI library for games. Uses [ash
] to wrap Vulkan related functionality.
The main entrypoint is the YakuiVulkan
struct which creates a ash::vk::RenderPass
and ash::vk::Pipeline
to draw yakui GUIs. This is initialised by populating a VulkanContext
helper struct to pass down the relevant hooks into your Vulkan renderer.
Like most Vulkan applications, this crate uses unsafe Rust! No checks are made to ensure that Vulkan handles are valid, so take note of the safety warnings on the various methods of YakuiVulkan
.
Currently this crate only supports drawing to images in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
layout, but future releases will support drawing to any arbitrary vk::ImageView
.
This crate requires at least Vulkan 1.2 and a GPU with support for VkPhysicalDeviceDescriptorIndexingFeatures.descriptorBindingPartiallyBound
. You should also, you know, enable that feature, or Vulkan Validation Layers will get mad at you. You definitely don't want that.
For an example of how to use this crate, check out examples/demo.rs
Dependencies
~9MB
~241K SLoC