Skip to main content

jay_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::RawPtr;
4use crate::prelude::*;
5use crate::vk;
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        unsafe {
17            let mut renderpass = mem::MaybeUninit::uninit();
18            (self.fp.create_render_pass2_khr)(
19                self.handle,
20                create_info,
21                allocation_callbacks.as_raw_ptr(),
22                renderpass.as_mut_ptr(),
23            )
24            .assume_init_on_success(renderpass)
25        }
26    }
27
28    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdBeginRenderPass2.html>
29    #[inline]
30    pub unsafe fn cmd_begin_render_pass2(
31        &self,
32        command_buffer: vk::CommandBuffer,
33        render_pass_begin_info: &vk::RenderPassBeginInfo<'_>,
34        subpass_begin_info: &vk::SubpassBeginInfo<'_>,
35    ) {
36        unsafe {
37            (self.fp.cmd_begin_render_pass2_khr)(
38                command_buffer,
39                render_pass_begin_info,
40                subpass_begin_info,
41            );
42        }
43    }
44
45    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdNextSubpass2.html>
46    #[inline]
47    pub unsafe fn cmd_next_subpass2(
48        &self,
49        command_buffer: vk::CommandBuffer,
50        subpass_begin_info: &vk::SubpassBeginInfo<'_>,
51        subpass_end_info: &vk::SubpassEndInfo<'_>,
52    ) {
53        unsafe {
54            (self.fp.cmd_next_subpass2_khr)(command_buffer, subpass_begin_info, subpass_end_info);
55        }
56    }
57
58    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdEndRenderPass2.html>
59    #[inline]
60    pub unsafe fn cmd_end_render_pass2(
61        &self,
62        command_buffer: vk::CommandBuffer,
63        subpass_end_info: &vk::SubpassEndInfo<'_>,
64    ) {
65        unsafe {
66            (self.fp.cmd_end_render_pass2_khr)(command_buffer, subpass_end_info);
67        }
68    }
69}