Vulkan API bindings
Features
- Full Vulkan API coverage
- First-class support for all extensions
- High quality auto-generated function wrappers
- A utility module aiding your use of the Vulkan API
VulkanResult: Idiomatic wrapper around a Vulkan Resultsurface: Create aSurfaceKHRusing aRawWindowHandle(adapted fromash-window)- Generated code distributed into multiple modules
- Function loading (
CoreLoader,InstanceLoader,DeviceLoader) - Seperate
FlagsandFlagBitstypes - A high level
Builderfor every struct - Type-safe pointer chain support
DefaultandDebugimplementation for every type- Complete auto-generation of everything except
utils
Example: Instance Creation
use ;
let mut core = new?;
core.load_vk1_0?;
let app_info = new.api_version;
let instance_info = new.application_info;
let instance_handle = core
.create_instance
.expect;
let mut instance = new?;
instance.load_vk1_0?;
// ...
instance.destroy_instance;
Additional examples
Cargo Features
surface: Enables thesurfacemodule, addsraw-window-handledependency (Enabled by default)libloading: Enables theCoreLoader::newfunction, addslibloadingdependency (Enabled by default)
Thank you
vk-parsefor helping parsevk.xmlin thegeneratorashfor helping inspiring and making this cratelibloadingfor providing symbol loadingash-windowfor providing a base for thesurfacemodulebitflagsfor providing a perfect bitflag macro- The Vulkan Community ❤️
- The Rust Community ❤️
Licensing
The logo is the Volcano Emoji of Twemoji (License). The name "erupt" was added on top of it.
This project is licensed under the zlib License.