covk
Unsafe Vulkan bindings for Rust
-
no_stdsupport -
Vulkan
1.01.11.21.31.4 -
covk_sysOriginal bindings, pure vulkan style.
-
covk- Rust style wrapping
- Prelude
use *; - The vulkan loader
let vk = new?; - Return the
Result// function signature pub unsafe ; let inst: Instance = vk.create_instance?; - NonNull handles
// vk::Instance ; - RAII handles
// RAII handles are opaque reference counting heap object let inst: Instance = vk.create_instance?.hnd; // actual hnd::Instance<vk::core> // add ref let _inst = inst.clone; // get the raw handle let raw: Instance = inst.raw; - Query the ext
let sf: Instance = inst.; Vecon enumerate like api// function signature // you still can check the count pub unsafe ; // will be append to vec, not overwritten let mut layers = vec!; vk.enumerate_instance_layer_properties?;- Struct builder
// vk::new include all required fileds let app_info: ApplicationInfo = ApplicationInfo .new; let mut info = InstanceCreateInfo // .new or .builder method .application_info; let mut info = default .queue_create_infos .p_enabled_extension_names .enabled_features; // push next &mut Self -> &mut Self, or with_next Self -> Self info.push_next; let device: Device = inst.create_device?.hnd; let sc: Device = device.; let queue: Queue = device.get_queue; - Object style traits
// cmd: any impled CoreCommandBuffer cmd.set_viewport;
Examples

Gen
-
Require rust
-
Require pwsh
-
Require .NET 10
-
Require
cargo-editcargo install cargo-edit
./gen.ps1