lava/vulkan/khr/
vk_present_region.rs1use 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#[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}