lava/vulkan/khr/
vk_present_region.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::khr::{VkRectLayer,RawVkRectLayer};
15
16/// Wrapper for [VkPresentRegionKHR](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPresentRegionKHR.html).
17#[derive(Debug, Clone)]
18pub struct VkPresentRegion {
19    pub rectangles: Option<Vec<VkRectLayer>>,
20}
21
22#[doc(hidden)]
23#[repr(C)]
24#[derive(Debug, Copy, Clone)]
25pub struct RawVkPresentRegion {
26    pub rectangle_count: u32,
27    pub rectangles: *mut RawVkRectLayer,
28}
29
30impl VkWrappedType<RawVkPresentRegion> for VkPresentRegion {
31    fn vk_to_raw(src: &VkPresentRegion, dst: &mut RawVkPresentRegion) {
32        dst.rectangle_count = get_array_option_len(&src.rectangles) as u32;
33        dst.rectangles = new_ptr_vk_array_checked(&src.rectangles);
34    }
35}
36
37impl VkRawType<VkPresentRegion> for RawVkPresentRegion {
38    fn vk_to_wrapped(src: &RawVkPresentRegion) -> VkPresentRegion {
39        VkPresentRegion {
40            rectangles: new_vk_array_checked(src.rectangle_count, src.rectangles),
41        }
42    }
43}
44
45impl Default for VkPresentRegion {
46    fn default() -> VkPresentRegion {
47        VkPresentRegion {
48            rectangles: None,
49        }
50    }
51}
52
53impl VkSetup for VkPresentRegion {
54    fn vk_setup(&mut self, fn_table: *mut VkFunctionTable) {
55        
56    }
57}
58
59impl VkFree for RawVkPresentRegion {
60    fn vk_free(&self) {
61        free_vk_ptr_array(self.rectangle_count as usize, self.rectangles);
62    }
63}