| Crates.io | ashpan |
| lib.rs | ashpan |
| version | 0.7.0 |
| created_at | 2021-08-01 11:07:43.566896+00 |
| updated_at | 2022-03-30 15:16:32.208968+00 |
| 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.