Ensure that Vulkan drivers are installed for your device. Add the following to your project's Cargo.toml:
toml
[dependencies]
voodoo = "0.1"
And add the following to your crate root (lib.rs or main.rs):
rust
extern crate voodoo;
Create an instance:
```rust extern crate voodoo;
use voodoo::{Result as VdResult, Instance, ApplicationInfo, Loader}; use std::ffi::CString;
/// Initializes and returns a new loader and instance with all available
/// extension function pointers loaded.
fn initinstance() -> VdResult
let app_info = ApplicationInfo::builder()
.application_name(&app_name)
.application_version((1, 0, 0))
.api_version((1, 0, 0))
.build();
let loader = Loader::new()?;
Instance::builder()
.application_info(&app_info)
.enabled_extensions(&loader.enumerate_instance_extension_properties()?)
.build(loader)
}
fn main() { let instance = initinstance().unwrap(); }
```
See [hello.rs
] for a complete, working example adapted from
https://vulkan-tutorial.com/.
For a higher level, more opinionated Vulkan API (that does more for you) see the [Vulkano] project.
Other similar libraries include [dacite] and [ash].
“Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.”