1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Generated by `scripts/generate.js`

use std::os::raw::c_char;
use std::ops::Deref;
use std::ptr;
use std::cmp;
use std::mem;
use utils::c_bindings::*;
use utils::vk_convert::*;
use utils::vk_null::*;
use utils::vk_ptr::*;
use utils::vk_traits::*;
use vulkan::vk::*;
use vulkan::vk::{VkStructureType,RawVkStructureType};
use vulkan::vk::{VkShaderStageFlags,RawVkShaderStageFlags};
use vulkan::vk::{VkSubgroupFeatureFlags,RawVkSubgroupFeatureFlags};
use vulkan::vk::{VkPointClippingBehavior,RawVkPointClippingBehavior};

/// Wrapper for [VkPhysicalDeviceVulkan11Properties](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceVulkan11Properties.html).
#[derive(Debug, Clone)]
pub struct VkPhysicalDeviceVulkan11Properties {
    pub device_uuid: [u8; 16],
    pub driver_uuid: [u8; 16],
    pub device_luid: [u8; 8],
    pub device_node_mask: u32,
    pub device_luidvalid: bool,
    pub subgroup_size: usize,
    pub subgroup_supported_stages: VkShaderStageFlags,
    pub subgroup_supported_operations: VkSubgroupFeatureFlags,
    pub subgroup_quad_operations_in_all_stages: bool,
    pub point_clipping_behavior: VkPointClippingBehavior,
    pub max_multiview_view_count: usize,
    pub max_multiview_instance_index: usize,
    pub protected_no_fault: bool,
    pub max_per_set_descriptors: usize,
    pub max_memory_allocation_size: usize,
}

#[doc(hidden)]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RawVkPhysicalDeviceVulkan11Properties {
    pub s_type: RawVkStructureType,
    pub next: *mut c_void,
    pub device_uuid: [u8; 16],
    pub driver_uuid: [u8; 16],
    pub device_luid: [u8; 8],
    pub device_node_mask: u32,
    pub device_luidvalid: u32,
    pub subgroup_size: u32,
    pub subgroup_supported_stages: RawVkShaderStageFlags,
    pub subgroup_supported_operations: RawVkSubgroupFeatureFlags,
    pub subgroup_quad_operations_in_all_stages: u32,
    pub point_clipping_behavior: RawVkPointClippingBehavior,
    pub max_multiview_view_count: u32,
    pub max_multiview_instance_index: u32,
    pub protected_no_fault: u32,
    pub max_per_set_descriptors: u32,
    pub max_memory_allocation_size: u64,
}

impl VkWrappedType<RawVkPhysicalDeviceVulkan11Properties> for VkPhysicalDeviceVulkan11Properties {
    fn vk_to_raw(src: &VkPhysicalDeviceVulkan11Properties, dst: &mut RawVkPhysicalDeviceVulkan11Properties) {
        dst.s_type = vk_to_raw_value(&VkStructureType::PhysicalDeviceVulkan11Properties);
        dst.next = ptr::null_mut();
        dst.device_uuid = unsafe { let mut dst_array : [u8; 16] = mem::MaybeUninit::uninit().assume_init(); to_array(&src.device_uuid, &mut dst_array); dst_array };
        dst.driver_uuid = unsafe { let mut dst_array : [u8; 16] = mem::MaybeUninit::uninit().assume_init(); to_array(&src.driver_uuid, &mut dst_array); dst_array };
        dst.device_luid = unsafe { let mut dst_array : [u8; 8] = mem::MaybeUninit::uninit().assume_init(); to_array(&src.device_luid, &mut dst_array); dst_array };
        dst.device_node_mask = src.device_node_mask;
        dst.device_luidvalid = vk_to_raw_value(&src.device_luidvalid);
        dst.subgroup_size = vk_to_raw_value(&src.subgroup_size);
        dst.subgroup_supported_stages = vk_to_raw_value(&src.subgroup_supported_stages);
        dst.subgroup_supported_operations = vk_to_raw_value(&src.subgroup_supported_operations);
        dst.subgroup_quad_operations_in_all_stages = vk_to_raw_value(&src.subgroup_quad_operations_in_all_stages);
        dst.point_clipping_behavior = vk_to_raw_value(&src.point_clipping_behavior);
        dst.max_multiview_view_count = vk_to_raw_value(&src.max_multiview_view_count);
        dst.max_multiview_instance_index = vk_to_raw_value(&src.max_multiview_instance_index);
        dst.protected_no_fault = vk_to_raw_value(&src.protected_no_fault);
        dst.max_per_set_descriptors = vk_to_raw_value(&src.max_per_set_descriptors);
        dst.max_memory_allocation_size = vk_to_raw_value(&src.max_memory_allocation_size);
    }
}

impl VkRawType<VkPhysicalDeviceVulkan11Properties> for RawVkPhysicalDeviceVulkan11Properties {
    fn vk_to_wrapped(src: &RawVkPhysicalDeviceVulkan11Properties) -> VkPhysicalDeviceVulkan11Properties {
        VkPhysicalDeviceVulkan11Properties {
            device_uuid: unsafe { let mut dst_array : [u8; 16] = mem::MaybeUninit::uninit().assume_init(); to_array(&src.device_uuid, &mut dst_array); dst_array },
            driver_uuid: unsafe { let mut dst_array : [u8; 16] = mem::MaybeUninit::uninit().assume_init(); to_array(&src.driver_uuid, &mut dst_array); dst_array },
            device_luid: unsafe { let mut dst_array : [u8; 8] = mem::MaybeUninit::uninit().assume_init(); to_array(&src.device_luid, &mut dst_array); dst_array },
            device_node_mask: src.device_node_mask,
            device_luidvalid: u32::vk_to_wrapped(&src.device_luidvalid),
            subgroup_size: u32::vk_to_wrapped(&src.subgroup_size),
            subgroup_supported_stages: RawVkShaderStageFlags::vk_to_wrapped(&src.subgroup_supported_stages),
            subgroup_supported_operations: RawVkSubgroupFeatureFlags::vk_to_wrapped(&src.subgroup_supported_operations),
            subgroup_quad_operations_in_all_stages: u32::vk_to_wrapped(&src.subgroup_quad_operations_in_all_stages),
            point_clipping_behavior: RawVkPointClippingBehavior::vk_to_wrapped(&src.point_clipping_behavior),
            max_multiview_view_count: u32::vk_to_wrapped(&src.max_multiview_view_count),
            max_multiview_instance_index: u32::vk_to_wrapped(&src.max_multiview_instance_index),
            protected_no_fault: u32::vk_to_wrapped(&src.protected_no_fault),
            max_per_set_descriptors: u32::vk_to_wrapped(&src.max_per_set_descriptors),
            max_memory_allocation_size: u64::vk_to_wrapped(&src.max_memory_allocation_size),
        }
    }
}

impl Default for VkPhysicalDeviceVulkan11Properties {
    fn default() -> VkPhysicalDeviceVulkan11Properties {
        VkPhysicalDeviceVulkan11Properties {
            device_uuid: [0; 16],
            driver_uuid: [0; 16],
            device_luid: [0; 8],
            device_node_mask: 0,
            device_luidvalid: false,
            subgroup_size: 0,
            subgroup_supported_stages: Default::default(),
            subgroup_supported_operations: Default::default(),
            subgroup_quad_operations_in_all_stages: false,
            point_clipping_behavior: Default::default(),
            max_multiview_view_count: 0,
            max_multiview_instance_index: 0,
            protected_no_fault: false,
            max_per_set_descriptors: 0,
            max_memory_allocation_size: 0,
        }
    }
}

impl VkSetup for VkPhysicalDeviceVulkan11Properties {
    fn vk_setup(&mut self, fn_table: *mut VkFunctionTable) {
        
    }
}

impl VkFree for RawVkPhysicalDeviceVulkan11Properties {
    fn vk_free(&self) {
        
    }
}