Skip to main content

vulkanalia_sys/
unions.rs

1// SPDX-License-Identifier: Apache-2.0
2
3// DO NOT EDIT.
4//
5// This file has been generated by the Kotlin project in the `generator`
6// directory from a Vulkan API registry.
7
8#![allow(
9    non_camel_case_types,
10    non_snake_case,
11    clippy::bad_bit_mask,
12    clippy::let_unit_value,
13    clippy::missing_safety_doc,
14    clippy::missing_transmute_annotations,
15    clippy::needless_lifetimes,
16    clippy::too_many_arguments,
17    clippy::type_complexity,
18    clippy::unnecessary_cast,
19    clippy::upper_case_acronyms,
20    clippy::useless_transmute
21)]
22
23use core::ffi::{c_char, c_void};
24use core::fmt;
25use core::mem::MaybeUninit;
26
27use crate::*;
28
29/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryDataKHR.html>
30#[repr(C)]
31#[derive(Copy, Clone)]
32pub union AccelerationStructureGeometryDataKHR {
33    pub triangles: AccelerationStructureGeometryTrianglesDataKHR,
34    pub aabbs: AccelerationStructureGeometryAabbsDataKHR,
35    pub instances: AccelerationStructureGeometryInstancesDataKHR,
36}
37
38impl Default for AccelerationStructureGeometryDataKHR {
39    #[inline]
40    fn default() -> Self {
41        unsafe { MaybeUninit::zeroed().assume_init() }
42    }
43}
44
45impl fmt::Debug for AccelerationStructureGeometryDataKHR {
46    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
47        write!(f, "AccelerationStructureGeometryDataKHR")
48    }
49}
50
51/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInstanceDataNV.html>
52#[repr(C)]
53#[derive(Copy, Clone)]
54pub union AccelerationStructureMotionInstanceDataNV {
55    pub static_instance: AccelerationStructureInstanceKHR,
56    pub matrix_motion_instance: AccelerationStructureMatrixMotionInstanceNV,
57    pub srt_motion_instance: AccelerationStructureSRTMotionInstanceNV,
58}
59
60impl Default for AccelerationStructureMotionInstanceDataNV {
61    #[inline]
62    fn default() -> Self {
63        unsafe { MaybeUninit::zeroed().assume_init() }
64    }
65}
66
67impl fmt::Debug for AccelerationStructureMotionInstanceDataNV {
68    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
69        write!(f, "AccelerationStructureMotionInstanceDataNV")
70    }
71}
72
73/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClearColorValue.html>
74#[repr(C)]
75#[derive(Copy, Clone)]
76pub union ClearColorValue {
77    pub float32: [f32; 4],
78    pub int32: [i32; 4],
79    pub uint32: [u32; 4],
80}
81
82impl Default for ClearColorValue {
83    #[inline]
84    fn default() -> Self {
85        unsafe { MaybeUninit::zeroed().assume_init() }
86    }
87}
88
89impl fmt::Debug for ClearColorValue {
90    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
91        write!(f, "ClearColorValue")
92    }
93}
94
95/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClearValue.html>
96#[repr(C)]
97#[derive(Copy, Clone)]
98pub union ClearValue {
99    pub color: ClearColorValue,
100    pub depth_stencil: ClearDepthStencilValue,
101}
102
103impl Default for ClearValue {
104    #[inline]
105    fn default() -> Self {
106        unsafe { MaybeUninit::zeroed().assume_init() }
107    }
108}
109
110impl fmt::Debug for ClearValue {
111    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
112        write!(f, "ClearValue")
113    }
114}
115
116/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClusterAccelerationStructureOpInputNV.html>
117#[repr(C)]
118#[derive(Copy, Clone)]
119pub union ClusterAccelerationStructureOpInputNV {
120    pub clusters_bottom_level: *mut ClusterAccelerationStructureClustersBottomLevelInputNV,
121    pub triangle_clusters: *mut ClusterAccelerationStructureTriangleClusterInputNV,
122    pub move_objects: *mut ClusterAccelerationStructureMoveObjectsInputNV,
123}
124
125impl Default for ClusterAccelerationStructureOpInputNV {
126    #[inline]
127    fn default() -> Self {
128        unsafe { MaybeUninit::zeroed().assume_init() }
129    }
130}
131
132impl fmt::Debug for ClusterAccelerationStructureOpInputNV {
133    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
134        write!(f, "ClusterAccelerationStructureOpInputNV")
135    }
136}
137
138/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorDataEXT.html>
139#[repr(C)]
140#[derive(Copy, Clone)]
141pub union DescriptorDataEXT {
142    pub sampler: *const Sampler,
143    pub combined_image_sampler: *const DescriptorImageInfo,
144    pub input_attachment_image: *const DescriptorImageInfo,
145    pub sampled_image: *const DescriptorImageInfo,
146    pub storage_image: *const DescriptorImageInfo,
147    pub uniform_texel_buffer: *const DescriptorAddressInfoEXT,
148    pub storage_texel_buffer: *const DescriptorAddressInfoEXT,
149    pub uniform_buffer: *const DescriptorAddressInfoEXT,
150    pub storage_buffer: *const DescriptorAddressInfoEXT,
151    pub acceleration_structure: DeviceAddress,
152}
153
154impl Default for DescriptorDataEXT {
155    #[inline]
156    fn default() -> Self {
157        unsafe { MaybeUninit::zeroed().assume_init() }
158    }
159}
160
161impl fmt::Debug for DescriptorDataEXT {
162    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
163        write!(f, "DescriptorDataEXT")
164    }
165}
166
167/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorMappingSourceDataEXT.html>
168#[repr(C)]
169#[derive(Copy, Clone)]
170pub union DescriptorMappingSourceDataEXT {
171    pub constant_offset: DescriptorMappingSourceConstantOffsetEXT,
172    pub push_index: DescriptorMappingSourcePushIndexEXT,
173    pub indirect_index: DescriptorMappingSourceIndirectIndexEXT,
174    pub indirect_index_array: DescriptorMappingSourceIndirectIndexArrayEXT,
175    pub heap_data: DescriptorMappingSourceHeapDataEXT,
176    pub push_data_offset: u32,
177    pub push_address_offset: u32,
178    pub indirect_address: DescriptorMappingSourceIndirectAddressEXT,
179    pub shader_record_index: DescriptorMappingSourceShaderRecordIndexEXT,
180    pub shader_record_data_offset: u32,
181    pub shader_record_address_offset: u32,
182}
183
184impl Default for DescriptorMappingSourceDataEXT {
185    #[inline]
186    fn default() -> Self {
187        unsafe { MaybeUninit::zeroed().assume_init() }
188    }
189}
190
191impl fmt::Debug for DescriptorMappingSourceDataEXT {
192    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
193        write!(f, "DescriptorMappingSourceDataEXT")
194    }
195}
196
197/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceOrHostAddressConstAMDX.html>
198#[repr(C)]
199#[derive(Copy, Clone)]
200pub union DeviceOrHostAddressConstAMDX {
201    pub device_address: DeviceAddress,
202    pub host_address: *const c_void,
203}
204
205impl Default for DeviceOrHostAddressConstAMDX {
206    #[inline]
207    fn default() -> Self {
208        unsafe { MaybeUninit::zeroed().assume_init() }
209    }
210}
211
212impl fmt::Debug for DeviceOrHostAddressConstAMDX {
213    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
214        write!(f, "DeviceOrHostAddressConstAMDX")
215    }
216}
217
218/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceOrHostAddressConstKHR.html>
219#[repr(C)]
220#[derive(Copy, Clone)]
221pub union DeviceOrHostAddressConstKHR {
222    pub device_address: DeviceAddress,
223    pub host_address: *const c_void,
224}
225
226impl Default for DeviceOrHostAddressConstKHR {
227    #[inline]
228    fn default() -> Self {
229        unsafe { MaybeUninit::zeroed().assume_init() }
230    }
231}
232
233impl fmt::Debug for DeviceOrHostAddressConstKHR {
234    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
235        write!(f, "DeviceOrHostAddressConstKHR")
236    }
237}
238
239/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceOrHostAddressKHR.html>
240#[repr(C)]
241#[derive(Copy, Clone)]
242pub union DeviceOrHostAddressKHR {
243    pub device_address: DeviceAddress,
244    pub host_address: *mut c_void,
245}
246
247impl Default for DeviceOrHostAddressKHR {
248    #[inline]
249    fn default() -> Self {
250        unsafe { MaybeUninit::zeroed().assume_init() }
251    }
252}
253
254impl fmt::Debug for DeviceOrHostAddressKHR {
255    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
256        write!(f, "DeviceOrHostAddressKHR")
257    }
258}
259
260/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIndirectCommandsTokenDataEXT.html>
261#[repr(C)]
262#[derive(Copy, Clone)]
263pub union IndirectCommandsTokenDataEXT {
264    pub push_constant: *const IndirectCommandsPushConstantTokenEXT,
265    pub vertex_buffer: *const IndirectCommandsVertexBufferTokenEXT,
266    pub index_buffer: *const IndirectCommandsIndexBufferTokenEXT,
267    pub execution_set: *const IndirectCommandsExecutionSetTokenEXT,
268}
269
270impl Default for IndirectCommandsTokenDataEXT {
271    #[inline]
272    fn default() -> Self {
273        unsafe { MaybeUninit::zeroed().assume_init() }
274    }
275}
276
277impl fmt::Debug for IndirectCommandsTokenDataEXT {
278    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
279        write!(f, "IndirectCommandsTokenDataEXT")
280    }
281}
282
283/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIndirectExecutionSetInfoEXT.html>
284#[repr(C)]
285#[derive(Copy, Clone)]
286pub union IndirectExecutionSetInfoEXT {
287    pub pipeline_info: *const IndirectExecutionSetPipelineInfoEXT,
288    pub shader_info: *const IndirectExecutionSetShaderInfoEXT,
289}
290
291impl Default for IndirectExecutionSetInfoEXT {
292    #[inline]
293    fn default() -> Self {
294        unsafe { MaybeUninit::zeroed().assume_init() }
295    }
296}
297
298impl fmt::Debug for IndirectExecutionSetInfoEXT {
299    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
300        write!(f, "IndirectExecutionSetInfoEXT")
301    }
302}
303
304/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPerformanceCounterResultKHR.html>
305#[repr(C)]
306#[derive(Copy, Clone)]
307pub union PerformanceCounterResultKHR {
308    pub int32: i32,
309    pub int64: i64,
310    pub uint32: u32,
311    pub uint64: u64,
312    pub float32: f32,
313    pub float64: f64,
314}
315
316impl Default for PerformanceCounterResultKHR {
317    #[inline]
318    fn default() -> Self {
319        unsafe { MaybeUninit::zeroed().assume_init() }
320    }
321}
322
323impl fmt::Debug for PerformanceCounterResultKHR {
324    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
325        write!(f, "PerformanceCounterResultKHR")
326    }
327}
328
329/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPerformanceValueDataINTEL.html>
330#[repr(C)]
331#[derive(Copy, Clone)]
332pub union PerformanceValueDataINTEL {
333    pub value32: u32,
334    pub value64: u64,
335    pub value_float: f32,
336    pub value_bool: Bool32,
337    pub value_string: *const c_char,
338}
339
340impl Default for PerformanceValueDataINTEL {
341    #[inline]
342    fn default() -> Self {
343        unsafe { MaybeUninit::zeroed().assume_init() }
344    }
345}
346
347impl fmt::Debug for PerformanceValueDataINTEL {
348    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
349        write!(f, "PerformanceValueDataINTEL")
350    }
351}
352
353/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineExecutableStatisticValueKHR.html>
354#[repr(C)]
355#[derive(Copy, Clone)]
356pub union PipelineExecutableStatisticValueKHR {
357    pub b32: Bool32,
358    pub i64: i64,
359    pub u64: u64,
360    pub f64: f64,
361}
362
363impl Default for PipelineExecutableStatisticValueKHR {
364    #[inline]
365    fn default() -> Self {
366        unsafe { MaybeUninit::zeroed().assume_init() }
367    }
368}
369
370impl fmt::Debug for PipelineExecutableStatisticValueKHR {
371    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
372        write!(f, "PipelineExecutableStatisticValueKHR")
373    }
374}
375
376/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkResourceDescriptorDataEXT.html>
377#[repr(C)]
378#[derive(Copy, Clone)]
379pub union ResourceDescriptorDataEXT {
380    pub image: *const ImageDescriptorInfoEXT,
381    pub texel_buffer: *const TexelBufferDescriptorInfoEXT,
382    pub address_range: *const DeviceAddressRangeEXT,
383    pub tensor_arm: *const TensorViewCreateInfoARM,
384}
385
386impl Default for ResourceDescriptorDataEXT {
387    #[inline]
388    fn default() -> Self {
389        unsafe { MaybeUninit::zeroed().assume_init() }
390    }
391}
392
393impl fmt::Debug for ResourceDescriptorDataEXT {
394    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
395        write!(f, "ResourceDescriptorDataEXT")
396    }
397}