Skip to main content

lava/vulkan/vk/
vk_render_pass_begin_info.rs

1// Generated by `scripts/generate.js`
2
3use std::os::raw::c_char;
4use std::ops::Deref;
5use std::ptr;
6use std::cmp;
7use std::mem;
8use utils::c_bindings::*;
9use utils::vk_convert::*;
10use utils::vk_null::*;
11use utils::vk_ptr::*;
12use utils::vk_traits::*;
13use vulkan::vk::*;
14use vulkan::vk::{VkStructureType,RawVkStructureType};
15use vulkan::vk::{VkRenderPass,RawVkRenderPass};
16use vulkan::vk::{VkFramebuffer,RawVkFramebuffer};
17use vulkan::vk::{VkRect2D,RawVkRect2D};
18use vulkan::vk::{VkClearValue,RawVkClearValue};
19
20/// Wrapper for [VkRenderPassBeginInfo](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkRenderPassBeginInfo.html).
21#[derive(Debug, Clone)]
22pub struct VkRenderPassBeginInfo {
23    pub render_pass: VkRenderPass,
24    pub framebuffer: VkFramebuffer,
25    pub render_area: VkRect2D,
26    pub clear_values: Vec<VkClearValue>,
27}
28
29#[doc(hidden)]
30#[repr(C)]
31#[derive(Debug, Copy, Clone)]
32pub struct RawVkRenderPassBeginInfo {
33    pub s_type: RawVkStructureType,
34    pub next: *mut c_void,
35    pub render_pass: RawVkRenderPass,
36    pub framebuffer: RawVkFramebuffer,
37    pub render_area: RawVkRect2D,
38    pub clear_value_count: u32,
39    pub clear_values: *mut RawVkClearValue,
40}
41
42impl VkWrappedType<RawVkRenderPassBeginInfo> for VkRenderPassBeginInfo {
43    fn vk_to_raw(src: &VkRenderPassBeginInfo, dst: &mut RawVkRenderPassBeginInfo) {
44        dst.s_type = vk_to_raw_value(&VkStructureType::RenderPassBeginInfo);
45        dst.next = ptr::null_mut();
46        dst.render_pass = vk_to_raw_value(&src.render_pass);
47        dst.framebuffer = vk_to_raw_value(&src.framebuffer);
48        dst.render_area = vk_to_raw_value(&src.render_area);
49        dst.clear_value_count = src.clear_values.len() as u32;
50        dst.clear_values = new_ptr_vk_array(&src.clear_values);
51    }
52}
53
54impl Default for VkRenderPassBeginInfo {
55    fn default() -> VkRenderPassBeginInfo {
56        VkRenderPassBeginInfo {
57            render_pass: Default::default(),
58            framebuffer: Default::default(),
59            render_area: Default::default(),
60            clear_values: Vec::new(),
61        }
62    }
63}
64
65impl VkSetup for VkRenderPassBeginInfo {
66    fn vk_setup(&mut self, fn_table: *mut VkFunctionTable) {
67        VkSetup::vk_setup(&mut self.render_pass, fn_table);
68        VkSetup::vk_setup(&mut self.framebuffer, fn_table);
69        VkSetup::vk_setup(&mut self.render_area, fn_table);
70    }
71}
72
73impl VkFree for RawVkRenderPassBeginInfo {
74    fn vk_free(&self) {
75        free_ptr(self.clear_values);
76    }
77}