1 unstable release

0.3.0 Oct 21, 2024

#855 in GUI

MIT/Apache

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

~9.5MB
~255K SLoC