vkgen

Generates Rust source code from vk.xml

Usage

$ vkgen <input file> <output file>

To use the generated file one has to add libloading to cargo.toml: [dependencies] libloading = "0.5.0" This is required to load vkGetInstanceProcAddr from a shared library. All other functions are loaded dynamically via vkGetInstanceProcAddr and vkGetDeviceProcAddr to avoid additional overhead.

Examples

This simple example demonstrates how to load libvulkan on linux and output the instance version (1.1.0). vk.rs is a file containing the generated rust source code. The location of libvulkan.so/vulkan.dll may vary depending on the OS. ```rust mod vk;

use self::vk::*;

fn main() { unsafe { vkLoad("/usr/lib/x86_64-linux-gnu/libvulkan.so.1.1.92"); }

let mut v: u32 = 0;
vkEnumerateInstanceVersion(&mut v as *mut u32);
println!("vulkan instance version is {}.{}.{}", VK_VERSION_MAJOR(v), VK_VERSION_MINOR(v), VK_VERSION_PATCH(v));

}

```

Known Issues