14个版本 (6个破坏性版本)

0.7.0 2022年3月30日
0.6.1 2022年1月11日
0.6.0 2021年12月22日
0.5.2 2021年9月22日

#106 in 渲染

Download history 3/week @ 2024-06-10 34/week @ 2024-07-01 68/week @ 2024-07-22

每月下载量:102

MIT/Apache

50KB
884

Ashpan

Crates.io Version Documentation License: MIT License: Apache 2.0

ash的RAII辅助工具

ashpan 在发生故障时使正确清理 ash 资源变得更加容易。它本质上是一个针对Vulkan定制的 scopeguard

示例

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)
}

许可

根据以下任一许可授权:

由您选择。

贡献

除非您明确声明,否则您提交给本工作的任何有意包含在内的贡献,根据Apache-2.0许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。

依赖

~5MB
~124K SLoC