Crates.io | ashpan |
lib.rs | ashpan |
version | 0.7.0 |
source | src |
created_at | 2021-08-01 11:07:43.566896 |
updated_at | 2022-03-30 15:16:32.208968 |
description | RAII helpers for ash |
homepage | |
repository | https://github.com/swooster/ashpan |
max_upload_size | |
id | 429989 |
size | 52,979 |
RAII helpers for ash
ashpan
makes it easier to properly clean
up ash
resources when failures occur. It's
essentially a scopeguard
that has been
tailored to Vulkan.
use ashpan::{DeviceExt, Guarded};
struct Resources { ... }
unsafe fn create_resources(device: &ash::Device) -> VkResult<Resources> {
let render_pass = create_render_pass(device)?;
let pipeline_layout = create_pipeline_layout(device)?;
let pipeline = create_pipeline(device, *render_pass, *pipeline_layout)?;
Ok(Resources {
render_pass: render_pass.take(),
pipeline_layout: pipeline_layout.take(),
pipeline: pipeline.take(),
})
}
unsafe fn create_render_pass(device: &ash::Device) -> VkResult<Guarded<vk::RenderPass>> {
let create_info = unimplemented!();
device.create_guarded_render_pass(create_info, None)
}
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.