Expand description
Vulkan API
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/index.html
Examples
use ash::{vk, Entry};
let entry = Entry::linked();
let app_info = vk::ApplicationInfo {
api_version: vk::make_api_version(0, 1, 0, 0),
..Default::default()
};
let create_info = vk::InstanceCreateInfo {
p_application_info: &app_info,
..Default::default()
};
let instance = unsafe { entry.create_instance(&create_info, None)? };
Getting started
Load the Vulkan library linked at compile time using [Entry::linked()
], or load it at runtime
using Entry::load()
, which uses libloading
. If you want to perform entry point loading
yourself, call Entry::from_static_fn()
.
Crate features
- debug (default): Whether Vulkan structs should implement
Debug
. - loaded (default): Support searching for the Vulkan loader manually at runtime.
- linked: Link the Vulkan loader at compile time.
Modules
- Wrappers for Vulkan extensions
- Raw Vulkan bindings and types, generated from
vk.xml
Macros
- Given an immutable raw pointer to a type with an
s_type
member such asvk::BaseInStructure
, match on a set of Vulkan structures. The struct will be rebound to the given variable of the type of the given Vulkan structure. - Given a mutable raw pointer to a type with an
s_type
member such asvk::BaseOutStructure
, match on a set of Vulkan structures. The struct will be rebound to the given variable of the type of the given Vulkan structure.
Structs
- Holds the Vulkan functions independent of a particular instance