Skip to main content

jay_ash/extensions/khr/
push_descriptor.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_push_descriptor.html>
2
3use crate::vk;
4use core::ffi;
5
6impl crate::khr::push_descriptor::Device {
7    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPushDescriptorSetKHR.html>
8    #[inline]
9    pub unsafe fn cmd_push_descriptor_set(
10        &self,
11        command_buffer: vk::CommandBuffer,
12        pipeline_bind_point: vk::PipelineBindPoint,
13        layout: vk::PipelineLayout,
14        set: u32,
15        descriptor_writes: &[vk::WriteDescriptorSet<'_>],
16    ) {
17        unsafe {
18            (self.fp.cmd_push_descriptor_set_khr)(
19                command_buffer,
20                pipeline_bind_point,
21                layout,
22                set,
23                descriptor_writes.len() as u32,
24                descriptor_writes.as_ptr(),
25            )
26        }
27    }
28
29    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html>
30    #[inline]
31    pub unsafe fn cmd_push_descriptor_set_with_template(
32        &self,
33        command_buffer: vk::CommandBuffer,
34        descriptor_update_template: vk::DescriptorUpdateTemplate,
35        layout: vk::PipelineLayout,
36        set: u32,
37        p_data: *const ffi::c_void,
38    ) {
39        unsafe {
40            (self.fp.cmd_push_descriptor_set_with_template_khr)(
41                command_buffer,
42                descriptor_update_template,
43                layout,
44                set,
45                p_data,
46            )
47        }
48    }
49}