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 渲染
每月下载量:102
50KB
884 行
Ashpan
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版本 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您提交给本工作的任何有意包含在内的贡献,根据Apache-2.0许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。
依赖
~5MB
~124K SLoC