ash/extensions/khr/
create_renderpass2.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_create_renderpass2.html>
2
3use crate::prelude::*;
4use crate::vk;
5use crate::RawPtr;
6use core::mem;
7
8impl crate::khr::create_renderpass2::Device {
9    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateRenderPass2.html>
10    #[inline]
11    pub unsafe fn create_render_pass2(
12        &self,
13        create_info: &vk::RenderPassCreateInfo2<'_>,
14        allocation_callbacks: Option<&vk::AllocationCallbacks<'_>>,
15    ) -> VkResult<vk::RenderPass> {
16        let mut renderpass = mem::MaybeUninit::uninit();
17        (self.fp.create_render_pass2_khr)(
18            self.handle,
19            create_info,
20            allocation_callbacks.as_raw_ptr(),
21            renderpass.as_mut_ptr(),
22        )
23        .assume_init_on_success(renderpass)
24    }
25
26    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdBeginRenderPass2.html>
27    #[inline]
28    pub unsafe fn cmd_begin_render_pass2(
29        &self,
30        command_buffer: vk::CommandBuffer,
31        render_pass_begin_info: &vk::RenderPassBeginInfo<'_>,
32        subpass_begin_info: &vk::SubpassBeginInfo<'_>,
33    ) {
34        (self.fp.cmd_begin_render_pass2_khr)(
35            command_buffer,
36            render_pass_begin_info,
37            subpass_begin_info,
38        );
39    }
40
41    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdNextSubpass2.html>
42    #[inline]
43    pub unsafe fn cmd_next_subpass2(
44        &self,
45        command_buffer: vk::CommandBuffer,
46        subpass_begin_info: &vk::SubpassBeginInfo<'_>,
47        subpass_end_info: &vk::SubpassEndInfo<'_>,
48    ) {
49        (self.fp.cmd_next_subpass2_khr)(command_buffer, subpass_begin_info, subpass_end_info);
50    }
51
52    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdEndRenderPass2.html>
53    #[inline]
54    pub unsafe fn cmd_end_render_pass2(
55        &self,
56        command_buffer: vk::CommandBuffer,
57        subpass_end_info: &vk::SubpassEndInfo<'_>,
58    ) {
59        (self.fp.cmd_end_render_pass2_khr)(command_buffer, subpass_end_info);
60    }
61}