erupt/generated/extensions/
ext_validation_features.rs1#[doc(alias = "VK_EXT_VALIDATION_FEATURES_SPEC_VERSION")]
4pub const EXT_VALIDATION_FEATURES_SPEC_VERSION: u32 = 5;
5#[doc(alias = "VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME")]
7pub const EXT_VALIDATION_FEATURES_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8 "VK_EXT_validation_features"
9);
10impl crate::vk1_0::StructureType {
12 pub const VALIDATION_FEATURES_EXT: Self = Self(1000247000);
13}
14#[doc(alias = "VkValidationFeatureEnableEXT")]
16#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
17#[repr(transparent)]
18pub struct ValidationFeatureEnableEXT(pub i32);
19impl std::fmt::Debug for ValidationFeatureEnableEXT {
20 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
21 f.write_str(
22 match self {
23 &Self::GPU_ASSISTED_EXT => "GPU_ASSISTED_EXT",
24 &Self::GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT => {
25 "GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"
26 }
27 &Self::BEST_PRACTICES_EXT => "BEST_PRACTICES_EXT",
28 &Self::DEBUG_PRINTF_EXT => "DEBUG_PRINTF_EXT",
29 &Self::SYNCHRONIZATION_VALIDATION_EXT => "SYNCHRONIZATION_VALIDATION_EXT",
30 _ => "(unknown variant)",
31 },
32 )
33 }
34}
35impl crate::extensions::ext_validation_features::ValidationFeatureEnableEXT {
37 pub const GPU_ASSISTED_EXT: Self = Self(0);
38 pub const GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT: Self = Self(1);
39 pub const BEST_PRACTICES_EXT: Self = Self(2);
40 pub const DEBUG_PRINTF_EXT: Self = Self(3);
41 pub const SYNCHRONIZATION_VALIDATION_EXT: Self = Self(4);
42}
43#[doc(alias = "VkValidationFeatureDisableEXT")]
45#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
46#[repr(transparent)]
47pub struct ValidationFeatureDisableEXT(pub i32);
48impl std::fmt::Debug for ValidationFeatureDisableEXT {
49 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
50 f.write_str(
51 match self {
52 &Self::ALL_EXT => "ALL_EXT",
53 &Self::SHADERS_EXT => "SHADERS_EXT",
54 &Self::THREAD_SAFETY_EXT => "THREAD_SAFETY_EXT",
55 &Self::API_PARAMETERS_EXT => "API_PARAMETERS_EXT",
56 &Self::OBJECT_LIFETIMES_EXT => "OBJECT_LIFETIMES_EXT",
57 &Self::CORE_CHECKS_EXT => "CORE_CHECKS_EXT",
58 &Self::UNIQUE_HANDLES_EXT => "UNIQUE_HANDLES_EXT",
59 &Self::SHADER_VALIDATION_CACHE_EXT => "SHADER_VALIDATION_CACHE_EXT",
60 _ => "(unknown variant)",
61 },
62 )
63 }
64}
65impl crate::extensions::ext_validation_features::ValidationFeatureDisableEXT {
67 pub const ALL_EXT: Self = Self(0);
68 pub const SHADERS_EXT: Self = Self(1);
69 pub const THREAD_SAFETY_EXT: Self = Self(2);
70 pub const API_PARAMETERS_EXT: Self = Self(3);
71 pub const OBJECT_LIFETIMES_EXT: Self = Self(4);
72 pub const CORE_CHECKS_EXT: Self = Self(5);
73 pub const UNIQUE_HANDLES_EXT: Self = Self(6);
74 pub const SHADER_VALIDATION_CACHE_EXT: Self = Self(7);
75}
76impl<'a> crate::ExtendableFrom<'a, ValidationFeaturesEXT>
77for crate::vk1_0::InstanceCreateInfoBuilder<'a> {}
78impl<'a> crate::ExtendableFrom<'a, ValidationFeaturesEXTBuilder<'_>>
79for crate::vk1_0::InstanceCreateInfoBuilder<'a> {}
80#[doc(alias = "VkValidationFeaturesEXT")]
82#[derive(Copy, Clone)]
83#[repr(C)]
84pub struct ValidationFeaturesEXT {
85 pub s_type: crate::vk1_0::StructureType,
86 pub p_next: *const std::ffi::c_void,
87 pub enabled_validation_feature_count: u32,
88 pub p_enabled_validation_features: *const crate::extensions::ext_validation_features::ValidationFeatureEnableEXT,
89 pub disabled_validation_feature_count: u32,
90 pub p_disabled_validation_features: *const crate::extensions::ext_validation_features::ValidationFeatureDisableEXT,
91}
92impl ValidationFeaturesEXT {
93 pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::VALIDATION_FEATURES_EXT;
94}
95impl Default for ValidationFeaturesEXT {
96 fn default() -> Self {
97 Self {
98 s_type: Self::STRUCTURE_TYPE,
99 p_next: std::ptr::null(),
100 enabled_validation_feature_count: Default::default(),
101 p_enabled_validation_features: std::ptr::null(),
102 disabled_validation_feature_count: Default::default(),
103 p_disabled_validation_features: std::ptr::null(),
104 }
105 }
106}
107impl std::fmt::Debug for ValidationFeaturesEXT {
108 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
109 f.debug_struct("ValidationFeaturesEXT")
110 .field("s_type", &self.s_type)
111 .field("p_next", &self.p_next)
112 .field(
113 "enabled_validation_feature_count",
114 &self.enabled_validation_feature_count,
115 )
116 .field("p_enabled_validation_features", &self.p_enabled_validation_features)
117 .field(
118 "disabled_validation_feature_count",
119 &self.disabled_validation_feature_count,
120 )
121 .field(
122 "p_disabled_validation_features",
123 &self.p_disabled_validation_features,
124 )
125 .finish()
126 }
127}
128impl ValidationFeaturesEXT {
129 #[inline]
130 pub fn into_builder<'a>(self) -> ValidationFeaturesEXTBuilder<'a> {
131 ValidationFeaturesEXTBuilder(self, std::marker::PhantomData)
132 }
133}
134#[derive(Copy, Clone)]
135#[repr(transparent)]
137pub struct ValidationFeaturesEXTBuilder<'a>(
138 ValidationFeaturesEXT,
139 std::marker::PhantomData<&'a ()>,
140);
141impl<'a> ValidationFeaturesEXTBuilder<'a> {
142 #[inline]
143 pub fn new() -> ValidationFeaturesEXTBuilder<'a> {
144 ValidationFeaturesEXTBuilder(Default::default(), std::marker::PhantomData)
145 }
146 #[inline]
147 #[must_use]
148 pub fn enabled_validation_features(
149 mut self,
150 enabled_validation_features: &'a [crate::extensions::ext_validation_features::ValidationFeatureEnableEXT],
151 ) -> Self {
152 self.0.p_enabled_validation_features = enabled_validation_features.as_ptr() as _;
153 self.0.enabled_validation_feature_count = enabled_validation_features.len() as _;
154 self
155 }
156 #[inline]
157 #[must_use]
158 pub fn disabled_validation_features(
159 mut self,
160 disabled_validation_features: &'a [crate::extensions::ext_validation_features::ValidationFeatureDisableEXT],
161 ) -> Self {
162 self
163 .0
164 .p_disabled_validation_features = disabled_validation_features.as_ptr() as _;
165 self
166 .0
167 .disabled_validation_feature_count = disabled_validation_features.len() as _;
168 self
169 }
170 #[inline]
171 pub fn build_dangling(self) -> ValidationFeaturesEXT {
174 self.0
175 }
176}
177impl<'a> std::default::Default for ValidationFeaturesEXTBuilder<'a> {
178 fn default() -> ValidationFeaturesEXTBuilder<'a> {
179 Self::new()
180 }
181}
182impl<'a> std::fmt::Debug for ValidationFeaturesEXTBuilder<'a> {
183 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
184 std::fmt::Debug::fmt(&self.0, f)
185 }
186}
187impl<'a> std::ops::Deref for ValidationFeaturesEXTBuilder<'a> {
188 type Target = ValidationFeaturesEXT;
189 fn deref(&self) -> &Self::Target {
190 &self.0
191 }
192}
193impl<'a> std::ops::DerefMut for ValidationFeaturesEXTBuilder<'a> {
194 fn deref_mut(&mut self) -> &mut Self::Target {
195 &mut self.0
196 }
197}