openxr_sys/
generated.rs

1#![doc = r" Automatically generated code; do not edit!"]
2#![allow(
3    non_upper_case_globals,
4    clippy::unreadable_literal,
5    clippy::identity_op,
6    unused,
7    clippy::derive_partial_eq_without_eq
8)]
9use crate::platform::*;
10use crate::support::*;
11use crate::*;
12use libc::{timespec, wchar_t};
13use std::fmt;
14use std::mem::MaybeUninit;
15use std::os::raw::{c_char, c_void};
16pub const CURRENT_API_VERSION: Version = Version::new(1u16, 1u16, 36u32);
17pub const EXTENSION_ENUM_BASE: usize = 1000000000usize;
18pub const EXTENSION_ENUM_STRIDE: usize = 1000usize;
19pub const NULL_PATH: usize = 0usize;
20pub const NULL_SYSTEM_ID: usize = 0usize;
21pub const NO_DURATION: usize = 0usize;
22pub const FREQUENCY_UNSPECIFIED: usize = 0usize;
23pub const MIN_COMPOSITION_LAYERS_SUPPORTED: usize = 16usize;
24pub const CURRENT_LOADER_API_LAYER_VERSION: usize = 1usize;
25pub const CURRENT_LOADER_RUNTIME_VERSION: usize = 1usize;
26pub const LOADER_INFO_STRUCT_VERSION: usize = 1usize;
27pub const API_LAYER_INFO_STRUCT_VERSION: usize = 1usize;
28pub const RUNTIME_INFO_STRUCT_VERSION: usize = 1usize;
29pub const API_LAYER_NEXT_INFO_STRUCT_VERSION: usize = 1usize;
30pub const API_LAYER_CREATE_INFO_STRUCT_VERSION: usize = 1usize;
31pub const API_LAYER_MAX_SETTINGS_PATH_SIZE: usize = 512usize;
32pub const HAND_JOINT_COUNT_EXT: usize = 26usize;
33pub const NULL_CONTROLLER_MODEL_KEY_MSFT: usize = 0usize;
34pub const NULL_RENDER_MODEL_KEY_FB: usize = 0usize;
35pub const FACIAL_EXPRESSION_EYE_COUNT_HTC: usize = 14usize;
36pub const FACIAL_EXPRESSION_LIP_COUNT_HTC: usize = 37usize;
37pub const HAND_FOREARM_JOINT_COUNT_ULTRALEAP: usize = 27usize;
38pub const MAX_HAPTIC_PCM_BUFFER_SIZE_FB: usize = 4000usize;
39pub const MAX_EXTENSION_NAME_SIZE: usize = 128usize;
40pub const MAX_API_LAYER_NAME_SIZE: usize = 256usize;
41pub const MAX_API_LAYER_DESCRIPTION_SIZE: usize = 256usize;
42pub const MAX_SYSTEM_NAME_SIZE: usize = 256usize;
43pub const MAX_APPLICATION_NAME_SIZE: usize = 128usize;
44pub const MAX_ENGINE_NAME_SIZE: usize = 128usize;
45pub const MAX_RUNTIME_NAME_SIZE: usize = 128usize;
46pub const MAX_PATH_LENGTH: usize = 256usize;
47pub const MAX_STRUCTURE_NAME_SIZE: usize = 64usize;
48pub const MAX_RESULT_STRING_SIZE: usize = 64usize;
49pub const MAX_GRAPHICS_APIS_SUPPORTED: usize = 32usize;
50pub const MAX_ACTION_SET_NAME_SIZE: usize = 64usize;
51pub const MAX_ACTION_NAME_SIZE: usize = 64usize;
52pub const MAX_LOCALIZED_ACTION_SET_NAME_SIZE: usize = 128usize;
53pub const MAX_LOCALIZED_ACTION_NAME_SIZE: usize = 128usize;
54pub const UUID_SIZE: usize = 16usize;
55pub const GUID_SIZE_MSFT: usize = 16usize;
56pub const MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT: usize = 64usize;
57pub const HAND_TRACKING_CAPSULE_POINT_COUNT_FB: usize = 2usize;
58pub const HAND_TRACKING_CAPSULE_COUNT_FB: usize = 19usize;
59pub const MAX_KEYBOARD_TRACKING_NAME_SIZE_FB: usize = 128usize;
60pub const PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB: usize = 256usize;
61pub const MAX_RENDER_MODEL_NAME_SIZE_FB: usize = 64usize;
62pub const MAX_LOCALIZATION_MAP_NAME_LENGTH_ML: usize = 64usize;
63pub const MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT: usize = 256usize;
64pub const MAX_AUDIO_DEVICE_STR_SIZE_OCULUS: usize = 128usize;
65pub const FOVEATION_CENTER_SIZE_META: usize = 2usize;
66pub const MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META: usize = 3992usize;
67pub const MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS: usize = 32usize;
68pub const UUID_SIZE_EXT: usize = 16usize;
69pub const MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC: usize = 256usize;
70pub const NULL_FUTURE_EXT: usize = 0usize;
71#[doc = "See [XrLoaderInterfaceStructs](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLoaderInterfaceStructs)"]
72#[repr(transparent)]
73#[derive(Copy, Clone, Eq, PartialEq)]
74pub struct LoaderInterfaceStructs(i32);
75impl LoaderInterfaceStructs {
76    pub const NINTIALIZED: LoaderInterfaceStructs = Self(0i32);
77    pub const OADER_INFO: LoaderInterfaceStructs = Self(1i32);
78    pub const PI_LAYER_REQUEST: LoaderInterfaceStructs = Self(2i32);
79    pub const UNTIME_REQUEST: LoaderInterfaceStructs = Self(3i32);
80    pub const PI_LAYER_CREATE_INFO: LoaderInterfaceStructs = Self(4i32);
81    pub const PI_LAYER_NEXT_INFO: LoaderInterfaceStructs = Self(5i32);
82    pub fn from_raw(x: i32) -> Self {
83        Self(x)
84    }
85    pub fn into_raw(self) -> i32 {
86        self.0
87    }
88}
89impl fmt::Debug for LoaderInterfaceStructs {
90    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
91        let name = match *self {
92            Self::NINTIALIZED => Some("NINTIALIZED"),
93            Self::OADER_INFO => Some("OADER_INFO"),
94            Self::PI_LAYER_REQUEST => Some("PI_LAYER_REQUEST"),
95            Self::UNTIME_REQUEST => Some("UNTIME_REQUEST"),
96            Self::PI_LAYER_CREATE_INFO => Some("PI_LAYER_CREATE_INFO"),
97            Self::PI_LAYER_NEXT_INFO => Some("PI_LAYER_NEXT_INFO"),
98            _ => None,
99        };
100        fmt_enum(fmt, self.0, name)
101    }
102}
103#[doc = "Structure type enumerant - see [XrStructureType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrStructureType)"]
104#[repr(transparent)]
105#[derive(Copy, Clone, Eq, PartialEq)]
106pub struct StructureType(i32);
107impl StructureType {
108    pub const UNKNOWN: StructureType = Self(0i32);
109    pub const API_LAYER_PROPERTIES: StructureType = Self(1i32);
110    pub const EXTENSION_PROPERTIES: StructureType = Self(2i32);
111    pub const INSTANCE_CREATE_INFO: StructureType = Self(3i32);
112    pub const SYSTEM_GET_INFO: StructureType = Self(4i32);
113    pub const SYSTEM_PROPERTIES: StructureType = Self(5i32);
114    pub const VIEW_LOCATE_INFO: StructureType = Self(6i32);
115    pub const VIEW: StructureType = Self(7i32);
116    pub const SESSION_CREATE_INFO: StructureType = Self(8i32);
117    pub const SWAPCHAIN_CREATE_INFO: StructureType = Self(9i32);
118    pub const SESSION_BEGIN_INFO: StructureType = Self(10i32);
119    pub const VIEW_STATE: StructureType = Self(11i32);
120    pub const FRAME_END_INFO: StructureType = Self(12i32);
121    pub const HAPTIC_VIBRATION: StructureType = Self(13i32);
122    pub const EVENT_DATA_BUFFER: StructureType = Self(16i32);
123    pub const EVENT_DATA_INSTANCE_LOSS_PENDING: StructureType = Self(17i32);
124    pub const EVENT_DATA_SESSION_STATE_CHANGED: StructureType = Self(18i32);
125    pub const ACTION_STATE_BOOLEAN: StructureType = Self(23i32);
126    pub const ACTION_STATE_FLOAT: StructureType = Self(24i32);
127    pub const ACTION_STATE_VECTOR2F: StructureType = Self(25i32);
128    pub const ACTION_STATE_POSE: StructureType = Self(27i32);
129    pub const ACTION_SET_CREATE_INFO: StructureType = Self(28i32);
130    pub const ACTION_CREATE_INFO: StructureType = Self(29i32);
131    pub const INSTANCE_PROPERTIES: StructureType = Self(32i32);
132    pub const FRAME_WAIT_INFO: StructureType = Self(33i32);
133    pub const COMPOSITION_LAYER_PROJECTION: StructureType = Self(35i32);
134    pub const COMPOSITION_LAYER_QUAD: StructureType = Self(36i32);
135    pub const REFERENCE_SPACE_CREATE_INFO: StructureType = Self(37i32);
136    pub const ACTION_SPACE_CREATE_INFO: StructureType = Self(38i32);
137    pub const EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING: StructureType = Self(40i32);
138    pub const VIEW_CONFIGURATION_VIEW: StructureType = Self(41i32);
139    pub const SPACE_LOCATION: StructureType = Self(42i32);
140    pub const SPACE_VELOCITY: StructureType = Self(43i32);
141    pub const FRAME_STATE: StructureType = Self(44i32);
142    pub const VIEW_CONFIGURATION_PROPERTIES: StructureType = Self(45i32);
143    pub const FRAME_BEGIN_INFO: StructureType = Self(46i32);
144    pub const COMPOSITION_LAYER_PROJECTION_VIEW: StructureType = Self(48i32);
145    pub const EVENT_DATA_EVENTS_LOST: StructureType = Self(49i32);
146    pub const INTERACTION_PROFILE_SUGGESTED_BINDING: StructureType = Self(51i32);
147    pub const EVENT_DATA_INTERACTION_PROFILE_CHANGED: StructureType = Self(52i32);
148    pub const INTERACTION_PROFILE_STATE: StructureType = Self(53i32);
149    pub const SWAPCHAIN_IMAGE_ACQUIRE_INFO: StructureType = Self(55i32);
150    pub const SWAPCHAIN_IMAGE_WAIT_INFO: StructureType = Self(56i32);
151    pub const SWAPCHAIN_IMAGE_RELEASE_INFO: StructureType = Self(57i32);
152    pub const ACTION_STATE_GET_INFO: StructureType = Self(58i32);
153    pub const HAPTIC_ACTION_INFO: StructureType = Self(59i32);
154    pub const SESSION_ACTION_SETS_ATTACH_INFO: StructureType = Self(60i32);
155    pub const ACTIONS_SYNC_INFO: StructureType = Self(61i32);
156    pub const BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO: StructureType = Self(62i32);
157    pub const INPUT_SOURCE_LOCALIZED_NAME_GET_INFO: StructureType = Self(63i32);
158    pub const SPACES_LOCATE_INFO: StructureType = Self(1000471000i32);
159    pub const SPACE_LOCATIONS: StructureType = Self(1000471001i32);
160    pub const SPACE_VELOCITIES: StructureType = Self(1000471002i32);
161    pub const COMPOSITION_LAYER_CUBE_KHR: StructureType = Self(1000006000i32);
162    pub const INSTANCE_CREATE_INFO_ANDROID_KHR: StructureType = Self(1000008000i32);
163    pub const COMPOSITION_LAYER_DEPTH_INFO_KHR: StructureType = Self(1000010000i32);
164    pub const VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR: StructureType = Self(1000014000i32);
165    pub const EVENT_DATA_PERF_SETTINGS_EXT: StructureType = Self(1000015000i32);
166    pub const COMPOSITION_LAYER_CYLINDER_KHR: StructureType = Self(1000017000i32);
167    pub const COMPOSITION_LAYER_EQUIRECT_KHR: StructureType = Self(1000018000i32);
168    pub const DEBUG_UTILS_OBJECT_NAME_INFO_EXT: StructureType = Self(1000019000i32);
169    pub const DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: StructureType = Self(1000019001i32);
170    pub const DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: StructureType = Self(1000019002i32);
171    pub const DEBUG_UTILS_LABEL_EXT: StructureType = Self(1000019003i32);
172    pub const GRAPHICS_BINDING_OPENGL_WIN32_KHR: StructureType = Self(1000023000i32);
173    pub const GRAPHICS_BINDING_OPENGL_XLIB_KHR: StructureType = Self(1000023001i32);
174    pub const GRAPHICS_BINDING_OPENGL_XCB_KHR: StructureType = Self(1000023002i32);
175    pub const GRAPHICS_BINDING_OPENGL_WAYLAND_KHR: StructureType = Self(1000023003i32);
176    pub const SWAPCHAIN_IMAGE_OPENGL_KHR: StructureType = Self(1000023004i32);
177    pub const GRAPHICS_REQUIREMENTS_OPENGL_KHR: StructureType = Self(1000023005i32);
178    pub const GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR: StructureType = Self(1000024001i32);
179    pub const SWAPCHAIN_IMAGE_OPENGL_ES_KHR: StructureType = Self(1000024002i32);
180    pub const GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR: StructureType = Self(1000024003i32);
181    pub const GRAPHICS_BINDING_VULKAN_KHR: StructureType = Self(1000025000i32);
182    pub const SWAPCHAIN_IMAGE_VULKAN_KHR: StructureType = Self(1000025001i32);
183    pub const GRAPHICS_REQUIREMENTS_VULKAN_KHR: StructureType = Self(1000025002i32);
184    pub const GRAPHICS_BINDING_D3D11_KHR: StructureType = Self(1000027000i32);
185    pub const SWAPCHAIN_IMAGE_D3D11_KHR: StructureType = Self(1000027001i32);
186    pub const GRAPHICS_REQUIREMENTS_D3D11_KHR: StructureType = Self(1000027002i32);
187    pub const GRAPHICS_BINDING_D3D12_KHR: StructureType = Self(1000028000i32);
188    pub const SWAPCHAIN_IMAGE_D3D12_KHR: StructureType = Self(1000028001i32);
189    pub const GRAPHICS_REQUIREMENTS_D3D12_KHR: StructureType = Self(1000028002i32);
190    pub const SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT: StructureType = Self(1000030000i32);
191    pub const EYE_GAZE_SAMPLE_TIME_EXT: StructureType = Self(1000030001i32);
192    pub const VISIBILITY_MASK_KHR: StructureType = Self(1000031000i32);
193    pub const EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR: StructureType = Self(1000031001i32);
194    pub const SESSION_CREATE_INFO_OVERLAY_EXTX: StructureType = Self(1000033000i32);
195    pub const EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX: StructureType = Self(1000033003i32);
196    pub const COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR: StructureType = Self(1000034000i32);
197    pub const SPATIAL_ANCHOR_CREATE_INFO_MSFT: StructureType = Self(1000039000i32);
198    pub const SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000039001i32);
199    pub const COMPOSITION_LAYER_IMAGE_LAYOUT_FB: StructureType = Self(1000040000i32);
200    pub const COMPOSITION_LAYER_ALPHA_BLEND_FB: StructureType = Self(1000041001i32);
201    pub const VIEW_CONFIGURATION_DEPTH_RANGE_EXT: StructureType = Self(1000046000i32);
202    pub const GRAPHICS_BINDING_EGL_MNDX: StructureType = Self(1000048004i32);
203    pub const SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000049000i32);
204    pub const SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT: StructureType =
205        Self(1000049001i32);
206    pub const SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT: StructureType =
207        Self(1000049002i32);
208    pub const SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT: StructureType = Self(1000049003i32);
209    pub const SYSTEM_HAND_TRACKING_PROPERTIES_EXT: StructureType = Self(1000051000i32);
210    pub const HAND_TRACKER_CREATE_INFO_EXT: StructureType = Self(1000051001i32);
211    pub const HAND_JOINTS_LOCATE_INFO_EXT: StructureType = Self(1000051002i32);
212    pub const HAND_JOINT_LOCATIONS_EXT: StructureType = Self(1000051003i32);
213    pub const HAND_JOINT_VELOCITIES_EXT: StructureType = Self(1000051004i32);
214    pub const SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT: StructureType = Self(1000052000i32);
215    pub const HAND_MESH_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000052001i32);
216    pub const HAND_MESH_UPDATE_INFO_MSFT: StructureType = Self(1000052002i32);
217    pub const HAND_MESH_MSFT: StructureType = Self(1000052003i32);
218    pub const HAND_POSE_TYPE_INFO_MSFT: StructureType = Self(1000052004i32);
219    pub const SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT: StructureType =
220        Self(1000053000i32);
221    pub const SECONDARY_VIEW_CONFIGURATION_STATE_MSFT: StructureType = Self(1000053001i32);
222    pub const SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT: StructureType = Self(1000053002i32);
223    pub const SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT: StructureType = Self(1000053003i32);
224    pub const SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT: StructureType = Self(1000053004i32);
225    pub const SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT: StructureType =
226        Self(1000053005i32);
227    pub const CONTROLLER_MODEL_KEY_STATE_MSFT: StructureType = Self(1000055000i32);
228    pub const CONTROLLER_MODEL_NODE_PROPERTIES_MSFT: StructureType = Self(1000055001i32);
229    pub const CONTROLLER_MODEL_PROPERTIES_MSFT: StructureType = Self(1000055002i32);
230    pub const CONTROLLER_MODEL_NODE_STATE_MSFT: StructureType = Self(1000055003i32);
231    pub const CONTROLLER_MODEL_STATE_MSFT: StructureType = Self(1000055004i32);
232    pub const VIEW_CONFIGURATION_VIEW_FOV_EPIC: StructureType = Self(1000059000i32);
233    pub const HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT: StructureType = Self(1000063000i32);
234    pub const COMPOSITION_LAYER_REPROJECTION_INFO_MSFT: StructureType = Self(1000066000i32);
235    pub const COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT: StructureType =
236        Self(1000066001i32);
237    pub const ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB: StructureType = Self(1000070000i32);
238    pub const COMPOSITION_LAYER_SECURE_CONTENT_FB: StructureType = Self(1000072000i32);
239    pub const BODY_TRACKER_CREATE_INFO_FB: StructureType = Self(1000076001i32);
240    pub const BODY_JOINTS_LOCATE_INFO_FB: StructureType = Self(1000076002i32);
241    pub const SYSTEM_BODY_TRACKING_PROPERTIES_FB: StructureType = Self(1000076004i32);
242    pub const BODY_JOINT_LOCATIONS_FB: StructureType = Self(1000076005i32);
243    pub const BODY_SKELETON_FB: StructureType = Self(1000076006i32);
244    pub const INTERACTION_PROFILE_DPAD_BINDING_EXT: StructureType = Self(1000078000i32);
245    pub const INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE: StructureType = Self(1000079000i32);
246    pub const HAND_JOINTS_MOTION_RANGE_INFO_EXT: StructureType = Self(1000080000i32);
247    pub const LOADER_INIT_INFO_ANDROID_KHR: StructureType = Self(1000089000i32);
248    pub const VULKAN_INSTANCE_CREATE_INFO_KHR: StructureType = Self(1000090000i32);
249    pub const VULKAN_DEVICE_CREATE_INFO_KHR: StructureType = Self(1000090001i32);
250    pub const VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR: StructureType = Self(1000090003i32);
251    pub const GRAPHICS_BINDING_VULKAN2_KHR: StructureType = Self::GRAPHICS_BINDING_VULKAN_KHR;
252    pub const SWAPCHAIN_IMAGE_VULKAN2_KHR: StructureType = Self::SWAPCHAIN_IMAGE_VULKAN_KHR;
253    pub const GRAPHICS_REQUIREMENTS_VULKAN2_KHR: StructureType =
254        Self::GRAPHICS_REQUIREMENTS_VULKAN_KHR;
255    pub const COMPOSITION_LAYER_EQUIRECT2_KHR: StructureType = Self(1000091000i32);
256    pub const SCENE_OBSERVER_CREATE_INFO_MSFT: StructureType = Self(1000097000i32);
257    pub const SCENE_CREATE_INFO_MSFT: StructureType = Self(1000097001i32);
258    pub const NEW_SCENE_COMPUTE_INFO_MSFT: StructureType = Self(1000097002i32);
259    pub const VISUAL_MESH_COMPUTE_LOD_INFO_MSFT: StructureType = Self(1000097003i32);
260    pub const SCENE_COMPONENTS_MSFT: StructureType = Self(1000097004i32);
261    pub const SCENE_COMPONENTS_GET_INFO_MSFT: StructureType = Self(1000097005i32);
262    pub const SCENE_COMPONENT_LOCATIONS_MSFT: StructureType = Self(1000097006i32);
263    pub const SCENE_COMPONENTS_LOCATE_INFO_MSFT: StructureType = Self(1000097007i32);
264    pub const SCENE_OBJECTS_MSFT: StructureType = Self(1000097008i32);
265    pub const SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT: StructureType = Self(1000097009i32);
266    pub const SCENE_OBJECT_TYPES_FILTER_INFO_MSFT: StructureType = Self(1000097010i32);
267    pub const SCENE_PLANES_MSFT: StructureType = Self(1000097011i32);
268    pub const SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT: StructureType = Self(1000097012i32);
269    pub const SCENE_MESHES_MSFT: StructureType = Self(1000097013i32);
270    pub const SCENE_MESH_BUFFERS_GET_INFO_MSFT: StructureType = Self(1000097014i32);
271    pub const SCENE_MESH_BUFFERS_MSFT: StructureType = Self(1000097015i32);
272    pub const SCENE_MESH_VERTEX_BUFFER_MSFT: StructureType = Self(1000097016i32);
273    pub const SCENE_MESH_INDICES_UINT32_MSFT: StructureType = Self(1000097017i32);
274    pub const SCENE_MESH_INDICES_UINT16_MSFT: StructureType = Self(1000097018i32);
275    pub const SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT: StructureType = Self(1000098000i32);
276    pub const SCENE_DESERIALIZE_INFO_MSFT: StructureType = Self(1000098001i32);
277    pub const EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB: StructureType = Self(1000101000i32);
278    pub const VIVE_TRACKER_PATHS_HTCX: StructureType = Self(1000103000i32);
279    pub const EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX: StructureType = Self(1000103001i32);
280    pub const SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC: StructureType = Self(1000104000i32);
281    pub const FACIAL_TRACKER_CREATE_INFO_HTC: StructureType = Self(1000104001i32);
282    pub const FACIAL_EXPRESSIONS_HTC: StructureType = Self(1000104002i32);
283    pub const SYSTEM_COLOR_SPACE_PROPERTIES_FB: StructureType = Self(1000108000i32);
284    pub const HAND_TRACKING_MESH_FB: StructureType = Self(1000110001i32);
285    pub const HAND_TRACKING_SCALE_FB: StructureType = Self(1000110003i32);
286    pub const HAND_TRACKING_AIM_STATE_FB: StructureType = Self(1000111001i32);
287    pub const HAND_TRACKING_CAPSULES_STATE_FB: StructureType = Self(1000112000i32);
288    pub const SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB: StructureType = Self(1000113004i32);
289    pub const SPATIAL_ANCHOR_CREATE_INFO_FB: StructureType = Self(1000113003i32);
290    pub const SPACE_COMPONENT_STATUS_SET_INFO_FB: StructureType = Self(1000113007i32);
291    pub const SPACE_COMPONENT_STATUS_FB: StructureType = Self(1000113001i32);
292    pub const EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB: StructureType = Self(1000113005i32);
293    pub const EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB: StructureType = Self(1000113006i32);
294    pub const FOVEATION_PROFILE_CREATE_INFO_FB: StructureType = Self(1000114000i32);
295    pub const SWAPCHAIN_CREATE_INFO_FOVEATION_FB: StructureType = Self(1000114001i32);
296    pub const SWAPCHAIN_STATE_FOVEATION_FB: StructureType = Self(1000114002i32);
297    pub const FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB: StructureType = Self(1000115000i32);
298    pub const KEYBOARD_SPACE_CREATE_INFO_FB: StructureType = Self(1000116009i32);
299    pub const KEYBOARD_TRACKING_QUERY_FB: StructureType = Self(1000116004i32);
300    pub const SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB: StructureType = Self(1000116002i32);
301    pub const TRIANGLE_MESH_CREATE_INFO_FB: StructureType = Self(1000117001i32);
302    pub const SYSTEM_PASSTHROUGH_PROPERTIES_FB: StructureType = Self(1000118000i32);
303    pub const PASSTHROUGH_CREATE_INFO_FB: StructureType = Self(1000118001i32);
304    pub const PASSTHROUGH_LAYER_CREATE_INFO_FB: StructureType = Self(1000118002i32);
305    pub const COMPOSITION_LAYER_PASSTHROUGH_FB: StructureType = Self(1000118003i32);
306    pub const GEOMETRY_INSTANCE_CREATE_INFO_FB: StructureType = Self(1000118004i32);
307    pub const GEOMETRY_INSTANCE_TRANSFORM_FB: StructureType = Self(1000118005i32);
308    pub const SYSTEM_PASSTHROUGH_PROPERTIES2_FB: StructureType = Self(1000118006i32);
309    pub const PASSTHROUGH_STYLE_FB: StructureType = Self(1000118020i32);
310    pub const PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB: StructureType = Self(1000118021i32);
311    pub const PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB: StructureType = Self(1000118022i32);
312    pub const PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB: StructureType = Self(1000118023i32);
313    pub const EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB: StructureType = Self(1000118030i32);
314    pub const RENDER_MODEL_PATH_INFO_FB: StructureType = Self(1000119000i32);
315    pub const RENDER_MODEL_PROPERTIES_FB: StructureType = Self(1000119001i32);
316    pub const RENDER_MODEL_BUFFER_FB: StructureType = Self(1000119002i32);
317    pub const RENDER_MODEL_LOAD_INFO_FB: StructureType = Self(1000119003i32);
318    pub const SYSTEM_RENDER_MODEL_PROPERTIES_FB: StructureType = Self(1000119004i32);
319    pub const RENDER_MODEL_CAPABILITIES_REQUEST_FB: StructureType = Self(1000119005i32);
320    pub const BINDING_MODIFICATIONS_KHR: StructureType = Self(1000120000i32);
321    pub const VIEW_LOCATE_FOVEATED_RENDERING_VARJO: StructureType = Self(1000121000i32);
322    pub const FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO: StructureType = Self(1000121001i32);
323    pub const SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO: StructureType = Self(1000121002i32);
324    pub const COMPOSITION_LAYER_DEPTH_TEST_VARJO: StructureType = Self(1000122000i32);
325    pub const SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO: StructureType = Self(1000124000i32);
326    pub const EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO: StructureType = Self(1000124001i32);
327    pub const MARKER_SPACE_CREATE_INFO_VARJO: StructureType = Self(1000124002i32);
328    pub const FRAME_END_INFO_ML: StructureType = Self(1000135000i32);
329    pub const GLOBAL_DIMMER_FRAME_END_INFO_ML: StructureType = Self(1000136000i32);
330    pub const COORDINATE_SPACE_CREATE_INFO_ML: StructureType = Self(1000137000i32);
331    pub const SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML: StructureType = Self(1000138000i32);
332    pub const MARKER_DETECTOR_CREATE_INFO_ML: StructureType = Self(1000138001i32);
333    pub const MARKER_DETECTOR_ARUCO_INFO_ML: StructureType = Self(1000138002i32);
334    pub const MARKER_DETECTOR_SIZE_INFO_ML: StructureType = Self(1000138003i32);
335    pub const MARKER_DETECTOR_APRIL_TAG_INFO_ML: StructureType = Self(1000138004i32);
336    pub const MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML: StructureType = Self(1000138005i32);
337    pub const MARKER_DETECTOR_SNAPSHOT_INFO_ML: StructureType = Self(1000138006i32);
338    pub const MARKER_DETECTOR_STATE_ML: StructureType = Self(1000138007i32);
339    pub const MARKER_SPACE_CREATE_INFO_ML: StructureType = Self(1000138008i32);
340    pub const LOCALIZATION_MAP_ML: StructureType = Self(1000139000i32);
341    pub const EVENT_DATA_LOCALIZATION_CHANGED_ML: StructureType = Self(1000139001i32);
342    pub const MAP_LOCALIZATION_REQUEST_INFO_ML: StructureType = Self(1000139002i32);
343    pub const LOCALIZATION_MAP_IMPORT_INFO_ML: StructureType = Self(1000139003i32);
344    pub const LOCALIZATION_ENABLE_EVENTS_INFO_ML: StructureType = Self(1000139004i32);
345    pub const EVENT_DATA_HEADSET_FIT_CHANGED_ML: StructureType = Self(1000472000i32);
346    pub const EVENT_DATA_EYE_CALIBRATION_CHANGED_ML: StructureType = Self(1000472001i32);
347    pub const USER_CALIBRATION_ENABLE_EVENTS_INFO_ML: StructureType = Self(1000472002i32);
348    pub const SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT: StructureType = Self(1000142000i32);
349    pub const SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT: StructureType =
350        Self(1000142001i32);
351    pub const SCENE_MARKERS_MSFT: StructureType = Self(1000147000i32);
352    pub const SCENE_MARKER_TYPE_FILTER_MSFT: StructureType = Self(1000147001i32);
353    pub const SCENE_MARKER_QR_CODES_MSFT: StructureType = Self(1000147002i32);
354    pub const SPACE_QUERY_INFO_FB: StructureType = Self(1000156001i32);
355    pub const SPACE_QUERY_RESULTS_FB: StructureType = Self(1000156002i32);
356    pub const SPACE_STORAGE_LOCATION_FILTER_INFO_FB: StructureType = Self(1000156003i32);
357    pub const SPACE_UUID_FILTER_INFO_FB: StructureType = Self(1000156054i32);
358    pub const SPACE_COMPONENT_FILTER_INFO_FB: StructureType = Self(1000156052i32);
359    pub const EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB: StructureType = Self(1000156103i32);
360    pub const EVENT_DATA_SPACE_QUERY_COMPLETE_FB: StructureType = Self(1000156104i32);
361    pub const SPACE_SAVE_INFO_FB: StructureType = Self(1000158000i32);
362    pub const SPACE_ERASE_INFO_FB: StructureType = Self(1000158001i32);
363    pub const EVENT_DATA_SPACE_SAVE_COMPLETE_FB: StructureType = Self(1000158106i32);
364    pub const EVENT_DATA_SPACE_ERASE_COMPLETE_FB: StructureType = Self(1000158107i32);
365    pub const SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB: StructureType = Self(1000160000i32);
366    pub const SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB: StructureType = Self(1000161000i32);
367    pub const SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB: StructureType = Self(1000162000i32);
368    pub const SWAPCHAIN_STATE_SAMPLER_VULKAN_FB: StructureType = Self(1000163000i32);
369    pub const SPACE_SHARE_INFO_FB: StructureType = Self(1000169001i32);
370    pub const EVENT_DATA_SPACE_SHARE_COMPLETE_FB: StructureType = Self(1000169002i32);
371    pub const COMPOSITION_LAYER_SPACE_WARP_INFO_FB: StructureType = Self(1000171000i32);
372    pub const SYSTEM_SPACE_WARP_PROPERTIES_FB: StructureType = Self(1000171001i32);
373    pub const HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB: StructureType = Self(1000173001i32);
374    pub const SEMANTIC_LABELS_FB: StructureType = Self(1000175000i32);
375    pub const ROOM_LAYOUT_FB: StructureType = Self(1000175001i32);
376    pub const BOUNDARY_2D_FB: StructureType = Self(1000175002i32);
377    pub const SEMANTIC_LABELS_SUPPORT_INFO_FB: StructureType = Self(1000175010i32);
378    pub const DIGITAL_LENS_CONTROL_ALMALENCE: StructureType = Self(1000196000i32);
379    pub const EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB: StructureType = Self(1000198001i32);
380    pub const SCENE_CAPTURE_REQUEST_INFO_FB: StructureType = Self(1000198050i32);
381    pub const SPACE_CONTAINER_FB: StructureType = Self(1000199000i32);
382    pub const FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META: StructureType = Self(1000200000i32);
383    pub const FOVEATION_EYE_TRACKED_STATE_META: StructureType = Self(1000200001i32);
384    pub const SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META: StructureType = Self(1000200002i32);
385    pub const SYSTEM_FACE_TRACKING_PROPERTIES_FB: StructureType = Self(1000201004i32);
386    pub const FACE_TRACKER_CREATE_INFO_FB: StructureType = Self(1000201005i32);
387    pub const FACE_EXPRESSION_INFO_FB: StructureType = Self(1000201002i32);
388    pub const FACE_EXPRESSION_WEIGHTS_FB: StructureType = Self(1000201006i32);
389    pub const EYE_TRACKER_CREATE_INFO_FB: StructureType = Self(1000202001i32);
390    pub const EYE_GAZES_INFO_FB: StructureType = Self(1000202002i32);
391    pub const EYE_GAZES_FB: StructureType = Self(1000202003i32);
392    pub const SYSTEM_EYE_TRACKING_PROPERTIES_FB: StructureType = Self(1000202004i32);
393    pub const PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB: StructureType = Self(1000203002i32);
394    pub const COMPOSITION_LAYER_SETTINGS_FB: StructureType = Self(1000204000i32);
395    pub const HAPTIC_PCM_VIBRATION_FB: StructureType = Self(1000209001i32);
396    pub const DEVICE_PCM_SAMPLE_RATE_STATE_FB: StructureType = Self(1000209002i32);
397    pub const DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB: StructureType =
398        Self::DEVICE_PCM_SAMPLE_RATE_STATE_FB;
399    pub const COMPOSITION_LAYER_DEPTH_TEST_FB: StructureType = Self(1000212000i32);
400    pub const LOCAL_DIMMING_FRAME_END_INFO_META: StructureType = Self(1000216000i32);
401    pub const PASSTHROUGH_PREFERENCES_META: StructureType = Self(1000217000i32);
402    pub const SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META: StructureType = Self(1000219001i32);
403    pub const VIRTUAL_KEYBOARD_CREATE_INFO_META: StructureType = Self(1000219002i32);
404    pub const VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META: StructureType = Self(1000219003i32);
405    pub const VIRTUAL_KEYBOARD_LOCATION_INFO_META: StructureType = Self(1000219004i32);
406    pub const VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META: StructureType = Self(1000219005i32);
407    pub const VIRTUAL_KEYBOARD_ANIMATION_STATE_META: StructureType = Self(1000219006i32);
408    pub const VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META: StructureType = Self(1000219007i32);
409    pub const VIRTUAL_KEYBOARD_TEXTURE_DATA_META: StructureType = Self(1000219009i32);
410    pub const VIRTUAL_KEYBOARD_INPUT_INFO_META: StructureType = Self(1000219010i32);
411    pub const VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META: StructureType = Self(1000219011i32);
412    pub const EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META: StructureType = Self(1000219014i32);
413    pub const EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META: StructureType = Self(1000219015i32);
414    pub const EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META: StructureType = Self(1000219016i32);
415    pub const EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META: StructureType = Self(1000219017i32);
416    pub const EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META: StructureType = Self(1000219018i32);
417    pub const EXTERNAL_CAMERA_OCULUS: StructureType = Self(1000226000i32);
418    pub const VULKAN_SWAPCHAIN_CREATE_INFO_META: StructureType = Self(1000227000i32);
419    pub const PERFORMANCE_METRICS_STATE_META: StructureType = Self(1000232001i32);
420    pub const PERFORMANCE_METRICS_COUNTER_META: StructureType = Self(1000232002i32);
421    pub const SPACE_LIST_SAVE_INFO_FB: StructureType = Self(1000238000i32);
422    pub const EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB: StructureType = Self(1000238001i32);
423    pub const SPACE_USER_CREATE_INFO_FB: StructureType = Self(1000241001i32);
424    pub const SYSTEM_HEADSET_ID_PROPERTIES_META: StructureType = Self(1000245000i32);
425    pub const RECOMMENDED_LAYER_RESOLUTION_META: StructureType = Self(1000254000i32);
426    pub const RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META: StructureType = Self(1000254001i32);
427    pub const SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META: StructureType = Self(1000266000i32);
428    pub const PASSTHROUGH_COLOR_LUT_CREATE_INFO_META: StructureType = Self(1000266001i32);
429    pub const PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META: StructureType = Self(1000266002i32);
430    pub const PASSTHROUGH_COLOR_MAP_LUT_META: StructureType = Self(1000266100i32);
431    pub const PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META: StructureType = Self(1000266101i32);
432    pub const SPACE_TRIANGLE_MESH_GET_INFO_META: StructureType = Self(1000269001i32);
433    pub const SPACE_TRIANGLE_MESH_META: StructureType = Self(1000269002i32);
434    pub const SYSTEM_FACE_TRACKING_PROPERTIES2_FB: StructureType = Self(1000287013i32);
435    pub const FACE_TRACKER_CREATE_INFO2_FB: StructureType = Self(1000287014i32);
436    pub const FACE_EXPRESSION_INFO2_FB: StructureType = Self(1000287015i32);
437    pub const FACE_EXPRESSION_WEIGHTS2_FB: StructureType = Self(1000287016i32);
438    pub const ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META: StructureType = Self(1000291000i32);
439    pub const ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META: StructureType = Self(1000291001i32);
440    pub const ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META: StructureType = Self(1000291002i32);
441    pub const ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META: StructureType = Self(1000291003i32);
442    pub const ENVIRONMENT_DEPTH_IMAGE_VIEW_META: StructureType = Self(1000291004i32);
443    pub const ENVIRONMENT_DEPTH_IMAGE_META: StructureType = Self(1000291005i32);
444    pub const ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META: StructureType = Self(1000291006i32);
445    pub const SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META: StructureType = Self(1000291007i32);
446    pub const PASSTHROUGH_CREATE_INFO_HTC: StructureType = Self(1000317001i32);
447    pub const PASSTHROUGH_COLOR_HTC: StructureType = Self(1000317002i32);
448    pub const PASSTHROUGH_MESH_TRANSFORM_INFO_HTC: StructureType = Self(1000317003i32);
449    pub const COMPOSITION_LAYER_PASSTHROUGH_HTC: StructureType = Self(1000317004i32);
450    pub const FOVEATION_APPLY_INFO_HTC: StructureType = Self(1000318000i32);
451    pub const FOVEATION_DYNAMIC_MODE_INFO_HTC: StructureType = Self(1000318001i32);
452    pub const FOVEATION_CUSTOM_MODE_INFO_HTC: StructureType = Self(1000318002i32);
453    pub const SYSTEM_ANCHOR_PROPERTIES_HTC: StructureType = Self(1000319000i32);
454    pub const SPATIAL_ANCHOR_CREATE_INFO_HTC: StructureType = Self(1000319001i32);
455    pub const ACTIVE_ACTION_SET_PRIORITIES_EXT: StructureType = Self(1000373000i32);
456    pub const SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX: StructureType = Self(1000375000i32);
457    pub const FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX: StructureType = Self(1000375001i32);
458    pub const HAND_TRACKING_DATA_SOURCE_INFO_EXT: StructureType = Self(1000428000i32);
459    pub const HAND_TRACKING_DATA_SOURCE_STATE_EXT: StructureType = Self(1000428001i32);
460    pub const PLANE_DETECTOR_CREATE_INFO_EXT: StructureType = Self(1000429001i32);
461    pub const PLANE_DETECTOR_BEGIN_INFO_EXT: StructureType = Self(1000429002i32);
462    pub const PLANE_DETECTOR_GET_INFO_EXT: StructureType = Self(1000429003i32);
463    pub const PLANE_DETECTOR_LOCATIONS_EXT: StructureType = Self(1000429004i32);
464    pub const PLANE_DETECTOR_LOCATION_EXT: StructureType = Self(1000429005i32);
465    pub const PLANE_DETECTOR_POLYGON_BUFFER_EXT: StructureType = Self(1000429006i32);
466    pub const SYSTEM_PLANE_DETECTION_PROPERTIES_EXT: StructureType = Self(1000429007i32);
467    pub const FUTURE_CANCEL_INFO_EXT: StructureType = Self(1000469000i32);
468    pub const FUTURE_POLL_INFO_EXT: StructureType = Self(1000469001i32);
469    pub const FUTURE_COMPLETION_EXT: StructureType = Self(1000469002i32);
470    pub const FUTURE_POLL_RESULT_EXT: StructureType = Self(1000469003i32);
471    pub const EVENT_DATA_USER_PRESENCE_CHANGED_EXT: StructureType = Self(1000470000i32);
472    pub const SYSTEM_USER_PRESENCE_PROPERTIES_EXT: StructureType = Self(1000470001i32);
473    pub const SPACES_LOCATE_INFO_KHR: StructureType = Self::SPACES_LOCATE_INFO;
474    pub const SPACE_LOCATIONS_KHR: StructureType = Self::SPACE_LOCATIONS;
475    pub const SPACE_VELOCITIES_KHR: StructureType = Self::SPACE_VELOCITIES;
476    pub fn from_raw(x: i32) -> Self {
477        Self(x)
478    }
479    pub fn into_raw(self) -> i32 {
480        self.0
481    }
482}
483impl fmt::Debug for StructureType {
484    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
485        let name = match *self {
486            Self::UNKNOWN => Some("UNKNOWN"),
487            Self::API_LAYER_PROPERTIES => Some("API_LAYER_PROPERTIES"),
488            Self::EXTENSION_PROPERTIES => Some("EXTENSION_PROPERTIES"),
489            Self::INSTANCE_CREATE_INFO => Some("INSTANCE_CREATE_INFO"),
490            Self::SYSTEM_GET_INFO => Some("SYSTEM_GET_INFO"),
491            Self::SYSTEM_PROPERTIES => Some("SYSTEM_PROPERTIES"),
492            Self::VIEW_LOCATE_INFO => Some("VIEW_LOCATE_INFO"),
493            Self::VIEW => Some("VIEW"),
494            Self::SESSION_CREATE_INFO => Some("SESSION_CREATE_INFO"),
495            Self::SWAPCHAIN_CREATE_INFO => Some("SWAPCHAIN_CREATE_INFO"),
496            Self::SESSION_BEGIN_INFO => Some("SESSION_BEGIN_INFO"),
497            Self::VIEW_STATE => Some("VIEW_STATE"),
498            Self::FRAME_END_INFO => Some("FRAME_END_INFO"),
499            Self::HAPTIC_VIBRATION => Some("HAPTIC_VIBRATION"),
500            Self::EVENT_DATA_BUFFER => Some("EVENT_DATA_BUFFER"),
501            Self::EVENT_DATA_INSTANCE_LOSS_PENDING => Some("EVENT_DATA_INSTANCE_LOSS_PENDING"),
502            Self::EVENT_DATA_SESSION_STATE_CHANGED => Some("EVENT_DATA_SESSION_STATE_CHANGED"),
503            Self::ACTION_STATE_BOOLEAN => Some("ACTION_STATE_BOOLEAN"),
504            Self::ACTION_STATE_FLOAT => Some("ACTION_STATE_FLOAT"),
505            Self::ACTION_STATE_VECTOR2F => Some("ACTION_STATE_VECTOR2F"),
506            Self::ACTION_STATE_POSE => Some("ACTION_STATE_POSE"),
507            Self::ACTION_SET_CREATE_INFO => Some("ACTION_SET_CREATE_INFO"),
508            Self::ACTION_CREATE_INFO => Some("ACTION_CREATE_INFO"),
509            Self::INSTANCE_PROPERTIES => Some("INSTANCE_PROPERTIES"),
510            Self::FRAME_WAIT_INFO => Some("FRAME_WAIT_INFO"),
511            Self::COMPOSITION_LAYER_PROJECTION => Some("COMPOSITION_LAYER_PROJECTION"),
512            Self::COMPOSITION_LAYER_QUAD => Some("COMPOSITION_LAYER_QUAD"),
513            Self::REFERENCE_SPACE_CREATE_INFO => Some("REFERENCE_SPACE_CREATE_INFO"),
514            Self::ACTION_SPACE_CREATE_INFO => Some("ACTION_SPACE_CREATE_INFO"),
515            Self::EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING => {
516                Some("EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING")
517            }
518            Self::VIEW_CONFIGURATION_VIEW => Some("VIEW_CONFIGURATION_VIEW"),
519            Self::SPACE_LOCATION => Some("SPACE_LOCATION"),
520            Self::SPACE_VELOCITY => Some("SPACE_VELOCITY"),
521            Self::FRAME_STATE => Some("FRAME_STATE"),
522            Self::VIEW_CONFIGURATION_PROPERTIES => Some("VIEW_CONFIGURATION_PROPERTIES"),
523            Self::FRAME_BEGIN_INFO => Some("FRAME_BEGIN_INFO"),
524            Self::COMPOSITION_LAYER_PROJECTION_VIEW => Some("COMPOSITION_LAYER_PROJECTION_VIEW"),
525            Self::EVENT_DATA_EVENTS_LOST => Some("EVENT_DATA_EVENTS_LOST"),
526            Self::INTERACTION_PROFILE_SUGGESTED_BINDING => {
527                Some("INTERACTION_PROFILE_SUGGESTED_BINDING")
528            }
529            Self::EVENT_DATA_INTERACTION_PROFILE_CHANGED => {
530                Some("EVENT_DATA_INTERACTION_PROFILE_CHANGED")
531            }
532            Self::INTERACTION_PROFILE_STATE => Some("INTERACTION_PROFILE_STATE"),
533            Self::SWAPCHAIN_IMAGE_ACQUIRE_INFO => Some("SWAPCHAIN_IMAGE_ACQUIRE_INFO"),
534            Self::SWAPCHAIN_IMAGE_WAIT_INFO => Some("SWAPCHAIN_IMAGE_WAIT_INFO"),
535            Self::SWAPCHAIN_IMAGE_RELEASE_INFO => Some("SWAPCHAIN_IMAGE_RELEASE_INFO"),
536            Self::ACTION_STATE_GET_INFO => Some("ACTION_STATE_GET_INFO"),
537            Self::HAPTIC_ACTION_INFO => Some("HAPTIC_ACTION_INFO"),
538            Self::SESSION_ACTION_SETS_ATTACH_INFO => Some("SESSION_ACTION_SETS_ATTACH_INFO"),
539            Self::ACTIONS_SYNC_INFO => Some("ACTIONS_SYNC_INFO"),
540            Self::BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO => {
541                Some("BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO")
542            }
543            Self::INPUT_SOURCE_LOCALIZED_NAME_GET_INFO => {
544                Some("INPUT_SOURCE_LOCALIZED_NAME_GET_INFO")
545            }
546            Self::SPACES_LOCATE_INFO => Some("SPACES_LOCATE_INFO"),
547            Self::SPACE_LOCATIONS => Some("SPACE_LOCATIONS"),
548            Self::SPACE_VELOCITIES => Some("SPACE_VELOCITIES"),
549            Self::COMPOSITION_LAYER_CUBE_KHR => Some("COMPOSITION_LAYER_CUBE_KHR"),
550            Self::INSTANCE_CREATE_INFO_ANDROID_KHR => Some("INSTANCE_CREATE_INFO_ANDROID_KHR"),
551            Self::COMPOSITION_LAYER_DEPTH_INFO_KHR => Some("COMPOSITION_LAYER_DEPTH_INFO_KHR"),
552            Self::VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR => {
553                Some("VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR")
554            }
555            Self::EVENT_DATA_PERF_SETTINGS_EXT => Some("EVENT_DATA_PERF_SETTINGS_EXT"),
556            Self::COMPOSITION_LAYER_CYLINDER_KHR => Some("COMPOSITION_LAYER_CYLINDER_KHR"),
557            Self::COMPOSITION_LAYER_EQUIRECT_KHR => Some("COMPOSITION_LAYER_EQUIRECT_KHR"),
558            Self::DEBUG_UTILS_OBJECT_NAME_INFO_EXT => Some("DEBUG_UTILS_OBJECT_NAME_INFO_EXT"),
559            Self::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT => {
560                Some("DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT")
561            }
562            Self::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT => {
563                Some("DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT")
564            }
565            Self::DEBUG_UTILS_LABEL_EXT => Some("DEBUG_UTILS_LABEL_EXT"),
566            Self::GRAPHICS_BINDING_OPENGL_WIN32_KHR => Some("GRAPHICS_BINDING_OPENGL_WIN32_KHR"),
567            Self::GRAPHICS_BINDING_OPENGL_XLIB_KHR => Some("GRAPHICS_BINDING_OPENGL_XLIB_KHR"),
568            Self::GRAPHICS_BINDING_OPENGL_XCB_KHR => Some("GRAPHICS_BINDING_OPENGL_XCB_KHR"),
569            Self::GRAPHICS_BINDING_OPENGL_WAYLAND_KHR => {
570                Some("GRAPHICS_BINDING_OPENGL_WAYLAND_KHR")
571            }
572            Self::SWAPCHAIN_IMAGE_OPENGL_KHR => Some("SWAPCHAIN_IMAGE_OPENGL_KHR"),
573            Self::GRAPHICS_REQUIREMENTS_OPENGL_KHR => Some("GRAPHICS_REQUIREMENTS_OPENGL_KHR"),
574            Self::GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR => {
575                Some("GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR")
576            }
577            Self::SWAPCHAIN_IMAGE_OPENGL_ES_KHR => Some("SWAPCHAIN_IMAGE_OPENGL_ES_KHR"),
578            Self::GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR => {
579                Some("GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR")
580            }
581            Self::GRAPHICS_BINDING_VULKAN_KHR => Some("GRAPHICS_BINDING_VULKAN_KHR"),
582            Self::SWAPCHAIN_IMAGE_VULKAN_KHR => Some("SWAPCHAIN_IMAGE_VULKAN_KHR"),
583            Self::GRAPHICS_REQUIREMENTS_VULKAN_KHR => Some("GRAPHICS_REQUIREMENTS_VULKAN_KHR"),
584            Self::GRAPHICS_BINDING_D3D11_KHR => Some("GRAPHICS_BINDING_D3D11_KHR"),
585            Self::SWAPCHAIN_IMAGE_D3D11_KHR => Some("SWAPCHAIN_IMAGE_D3D11_KHR"),
586            Self::GRAPHICS_REQUIREMENTS_D3D11_KHR => Some("GRAPHICS_REQUIREMENTS_D3D11_KHR"),
587            Self::GRAPHICS_BINDING_D3D12_KHR => Some("GRAPHICS_BINDING_D3D12_KHR"),
588            Self::SWAPCHAIN_IMAGE_D3D12_KHR => Some("SWAPCHAIN_IMAGE_D3D12_KHR"),
589            Self::GRAPHICS_REQUIREMENTS_D3D12_KHR => Some("GRAPHICS_REQUIREMENTS_D3D12_KHR"),
590            Self::SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT => {
591                Some("SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT")
592            }
593            Self::EYE_GAZE_SAMPLE_TIME_EXT => Some("EYE_GAZE_SAMPLE_TIME_EXT"),
594            Self::VISIBILITY_MASK_KHR => Some("VISIBILITY_MASK_KHR"),
595            Self::EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR => {
596                Some("EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR")
597            }
598            Self::SESSION_CREATE_INFO_OVERLAY_EXTX => Some("SESSION_CREATE_INFO_OVERLAY_EXTX"),
599            Self::EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX => {
600                Some("EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX")
601            }
602            Self::COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR => {
603                Some("COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR")
604            }
605            Self::SPATIAL_ANCHOR_CREATE_INFO_MSFT => Some("SPATIAL_ANCHOR_CREATE_INFO_MSFT"),
606            Self::SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT => {
607                Some("SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT")
608            }
609            Self::COMPOSITION_LAYER_IMAGE_LAYOUT_FB => Some("COMPOSITION_LAYER_IMAGE_LAYOUT_FB"),
610            Self::COMPOSITION_LAYER_ALPHA_BLEND_FB => Some("COMPOSITION_LAYER_ALPHA_BLEND_FB"),
611            Self::VIEW_CONFIGURATION_DEPTH_RANGE_EXT => Some("VIEW_CONFIGURATION_DEPTH_RANGE_EXT"),
612            Self::GRAPHICS_BINDING_EGL_MNDX => Some("GRAPHICS_BINDING_EGL_MNDX"),
613            Self::SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT => {
614                Some("SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT")
615            }
616            Self::SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT => {
617                Some("SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT")
618            }
619            Self::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT => {
620                Some("SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT")
621            }
622            Self::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT => {
623                Some("SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT")
624            }
625            Self::SYSTEM_HAND_TRACKING_PROPERTIES_EXT => {
626                Some("SYSTEM_HAND_TRACKING_PROPERTIES_EXT")
627            }
628            Self::HAND_TRACKER_CREATE_INFO_EXT => Some("HAND_TRACKER_CREATE_INFO_EXT"),
629            Self::HAND_JOINTS_LOCATE_INFO_EXT => Some("HAND_JOINTS_LOCATE_INFO_EXT"),
630            Self::HAND_JOINT_LOCATIONS_EXT => Some("HAND_JOINT_LOCATIONS_EXT"),
631            Self::HAND_JOINT_VELOCITIES_EXT => Some("HAND_JOINT_VELOCITIES_EXT"),
632            Self::SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT => {
633                Some("SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT")
634            }
635            Self::HAND_MESH_SPACE_CREATE_INFO_MSFT => Some("HAND_MESH_SPACE_CREATE_INFO_MSFT"),
636            Self::HAND_MESH_UPDATE_INFO_MSFT => Some("HAND_MESH_UPDATE_INFO_MSFT"),
637            Self::HAND_MESH_MSFT => Some("HAND_MESH_MSFT"),
638            Self::HAND_POSE_TYPE_INFO_MSFT => Some("HAND_POSE_TYPE_INFO_MSFT"),
639            Self::SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT => {
640                Some("SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT")
641            }
642            Self::SECONDARY_VIEW_CONFIGURATION_STATE_MSFT => {
643                Some("SECONDARY_VIEW_CONFIGURATION_STATE_MSFT")
644            }
645            Self::SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT => {
646                Some("SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT")
647            }
648            Self::SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT => {
649                Some("SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT")
650            }
651            Self::SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT => {
652                Some("SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT")
653            }
654            Self::SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT => {
655                Some("SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT")
656            }
657            Self::CONTROLLER_MODEL_KEY_STATE_MSFT => Some("CONTROLLER_MODEL_KEY_STATE_MSFT"),
658            Self::CONTROLLER_MODEL_NODE_PROPERTIES_MSFT => {
659                Some("CONTROLLER_MODEL_NODE_PROPERTIES_MSFT")
660            }
661            Self::CONTROLLER_MODEL_PROPERTIES_MSFT => Some("CONTROLLER_MODEL_PROPERTIES_MSFT"),
662            Self::CONTROLLER_MODEL_NODE_STATE_MSFT => Some("CONTROLLER_MODEL_NODE_STATE_MSFT"),
663            Self::CONTROLLER_MODEL_STATE_MSFT => Some("CONTROLLER_MODEL_STATE_MSFT"),
664            Self::VIEW_CONFIGURATION_VIEW_FOV_EPIC => Some("VIEW_CONFIGURATION_VIEW_FOV_EPIC"),
665            Self::HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT => Some("HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"),
666            Self::COMPOSITION_LAYER_REPROJECTION_INFO_MSFT => {
667                Some("COMPOSITION_LAYER_REPROJECTION_INFO_MSFT")
668            }
669            Self::COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT => {
670                Some("COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT")
671            }
672            Self::ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB => {
673                Some("ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB")
674            }
675            Self::COMPOSITION_LAYER_SECURE_CONTENT_FB => {
676                Some("COMPOSITION_LAYER_SECURE_CONTENT_FB")
677            }
678            Self::BODY_TRACKER_CREATE_INFO_FB => Some("BODY_TRACKER_CREATE_INFO_FB"),
679            Self::BODY_JOINTS_LOCATE_INFO_FB => Some("BODY_JOINTS_LOCATE_INFO_FB"),
680            Self::SYSTEM_BODY_TRACKING_PROPERTIES_FB => Some("SYSTEM_BODY_TRACKING_PROPERTIES_FB"),
681            Self::BODY_JOINT_LOCATIONS_FB => Some("BODY_JOINT_LOCATIONS_FB"),
682            Self::BODY_SKELETON_FB => Some("BODY_SKELETON_FB"),
683            Self::INTERACTION_PROFILE_DPAD_BINDING_EXT => {
684                Some("INTERACTION_PROFILE_DPAD_BINDING_EXT")
685            }
686            Self::INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE => {
687                Some("INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE")
688            }
689            Self::HAND_JOINTS_MOTION_RANGE_INFO_EXT => Some("HAND_JOINTS_MOTION_RANGE_INFO_EXT"),
690            Self::LOADER_INIT_INFO_ANDROID_KHR => Some("LOADER_INIT_INFO_ANDROID_KHR"),
691            Self::VULKAN_INSTANCE_CREATE_INFO_KHR => Some("VULKAN_INSTANCE_CREATE_INFO_KHR"),
692            Self::VULKAN_DEVICE_CREATE_INFO_KHR => Some("VULKAN_DEVICE_CREATE_INFO_KHR"),
693            Self::VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR => {
694                Some("VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR")
695            }
696            Self::COMPOSITION_LAYER_EQUIRECT2_KHR => Some("COMPOSITION_LAYER_EQUIRECT2_KHR"),
697            Self::SCENE_OBSERVER_CREATE_INFO_MSFT => Some("SCENE_OBSERVER_CREATE_INFO_MSFT"),
698            Self::SCENE_CREATE_INFO_MSFT => Some("SCENE_CREATE_INFO_MSFT"),
699            Self::NEW_SCENE_COMPUTE_INFO_MSFT => Some("NEW_SCENE_COMPUTE_INFO_MSFT"),
700            Self::VISUAL_MESH_COMPUTE_LOD_INFO_MSFT => Some("VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"),
701            Self::SCENE_COMPONENTS_MSFT => Some("SCENE_COMPONENTS_MSFT"),
702            Self::SCENE_COMPONENTS_GET_INFO_MSFT => Some("SCENE_COMPONENTS_GET_INFO_MSFT"),
703            Self::SCENE_COMPONENT_LOCATIONS_MSFT => Some("SCENE_COMPONENT_LOCATIONS_MSFT"),
704            Self::SCENE_COMPONENTS_LOCATE_INFO_MSFT => Some("SCENE_COMPONENTS_LOCATE_INFO_MSFT"),
705            Self::SCENE_OBJECTS_MSFT => Some("SCENE_OBJECTS_MSFT"),
706            Self::SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT => {
707                Some("SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT")
708            }
709            Self::SCENE_OBJECT_TYPES_FILTER_INFO_MSFT => {
710                Some("SCENE_OBJECT_TYPES_FILTER_INFO_MSFT")
711            }
712            Self::SCENE_PLANES_MSFT => Some("SCENE_PLANES_MSFT"),
713            Self::SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT => {
714                Some("SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT")
715            }
716            Self::SCENE_MESHES_MSFT => Some("SCENE_MESHES_MSFT"),
717            Self::SCENE_MESH_BUFFERS_GET_INFO_MSFT => Some("SCENE_MESH_BUFFERS_GET_INFO_MSFT"),
718            Self::SCENE_MESH_BUFFERS_MSFT => Some("SCENE_MESH_BUFFERS_MSFT"),
719            Self::SCENE_MESH_VERTEX_BUFFER_MSFT => Some("SCENE_MESH_VERTEX_BUFFER_MSFT"),
720            Self::SCENE_MESH_INDICES_UINT32_MSFT => Some("SCENE_MESH_INDICES_UINT32_MSFT"),
721            Self::SCENE_MESH_INDICES_UINT16_MSFT => Some("SCENE_MESH_INDICES_UINT16_MSFT"),
722            Self::SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT => {
723                Some("SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT")
724            }
725            Self::SCENE_DESERIALIZE_INFO_MSFT => Some("SCENE_DESERIALIZE_INFO_MSFT"),
726            Self::EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB => {
727                Some("EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB")
728            }
729            Self::VIVE_TRACKER_PATHS_HTCX => Some("VIVE_TRACKER_PATHS_HTCX"),
730            Self::EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX => {
731                Some("EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX")
732            }
733            Self::SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC => {
734                Some("SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC")
735            }
736            Self::FACIAL_TRACKER_CREATE_INFO_HTC => Some("FACIAL_TRACKER_CREATE_INFO_HTC"),
737            Self::FACIAL_EXPRESSIONS_HTC => Some("FACIAL_EXPRESSIONS_HTC"),
738            Self::SYSTEM_COLOR_SPACE_PROPERTIES_FB => Some("SYSTEM_COLOR_SPACE_PROPERTIES_FB"),
739            Self::HAND_TRACKING_MESH_FB => Some("HAND_TRACKING_MESH_FB"),
740            Self::HAND_TRACKING_SCALE_FB => Some("HAND_TRACKING_SCALE_FB"),
741            Self::HAND_TRACKING_AIM_STATE_FB => Some("HAND_TRACKING_AIM_STATE_FB"),
742            Self::HAND_TRACKING_CAPSULES_STATE_FB => Some("HAND_TRACKING_CAPSULES_STATE_FB"),
743            Self::SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB => {
744                Some("SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB")
745            }
746            Self::SPATIAL_ANCHOR_CREATE_INFO_FB => Some("SPATIAL_ANCHOR_CREATE_INFO_FB"),
747            Self::SPACE_COMPONENT_STATUS_SET_INFO_FB => Some("SPACE_COMPONENT_STATUS_SET_INFO_FB"),
748            Self::SPACE_COMPONENT_STATUS_FB => Some("SPACE_COMPONENT_STATUS_FB"),
749            Self::EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB => {
750                Some("EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB")
751            }
752            Self::EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB => {
753                Some("EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB")
754            }
755            Self::FOVEATION_PROFILE_CREATE_INFO_FB => Some("FOVEATION_PROFILE_CREATE_INFO_FB"),
756            Self::SWAPCHAIN_CREATE_INFO_FOVEATION_FB => Some("SWAPCHAIN_CREATE_INFO_FOVEATION_FB"),
757            Self::SWAPCHAIN_STATE_FOVEATION_FB => Some("SWAPCHAIN_STATE_FOVEATION_FB"),
758            Self::FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB => {
759                Some("FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB")
760            }
761            Self::KEYBOARD_SPACE_CREATE_INFO_FB => Some("KEYBOARD_SPACE_CREATE_INFO_FB"),
762            Self::KEYBOARD_TRACKING_QUERY_FB => Some("KEYBOARD_TRACKING_QUERY_FB"),
763            Self::SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB => {
764                Some("SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB")
765            }
766            Self::TRIANGLE_MESH_CREATE_INFO_FB => Some("TRIANGLE_MESH_CREATE_INFO_FB"),
767            Self::SYSTEM_PASSTHROUGH_PROPERTIES_FB => Some("SYSTEM_PASSTHROUGH_PROPERTIES_FB"),
768            Self::PASSTHROUGH_CREATE_INFO_FB => Some("PASSTHROUGH_CREATE_INFO_FB"),
769            Self::PASSTHROUGH_LAYER_CREATE_INFO_FB => Some("PASSTHROUGH_LAYER_CREATE_INFO_FB"),
770            Self::COMPOSITION_LAYER_PASSTHROUGH_FB => Some("COMPOSITION_LAYER_PASSTHROUGH_FB"),
771            Self::GEOMETRY_INSTANCE_CREATE_INFO_FB => Some("GEOMETRY_INSTANCE_CREATE_INFO_FB"),
772            Self::GEOMETRY_INSTANCE_TRANSFORM_FB => Some("GEOMETRY_INSTANCE_TRANSFORM_FB"),
773            Self::SYSTEM_PASSTHROUGH_PROPERTIES2_FB => Some("SYSTEM_PASSTHROUGH_PROPERTIES2_FB"),
774            Self::PASSTHROUGH_STYLE_FB => Some("PASSTHROUGH_STYLE_FB"),
775            Self::PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB => {
776                Some("PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB")
777            }
778            Self::PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB => {
779                Some("PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB")
780            }
781            Self::PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB => {
782                Some("PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB")
783            }
784            Self::EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB => {
785                Some("EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB")
786            }
787            Self::RENDER_MODEL_PATH_INFO_FB => Some("RENDER_MODEL_PATH_INFO_FB"),
788            Self::RENDER_MODEL_PROPERTIES_FB => Some("RENDER_MODEL_PROPERTIES_FB"),
789            Self::RENDER_MODEL_BUFFER_FB => Some("RENDER_MODEL_BUFFER_FB"),
790            Self::RENDER_MODEL_LOAD_INFO_FB => Some("RENDER_MODEL_LOAD_INFO_FB"),
791            Self::SYSTEM_RENDER_MODEL_PROPERTIES_FB => Some("SYSTEM_RENDER_MODEL_PROPERTIES_FB"),
792            Self::RENDER_MODEL_CAPABILITIES_REQUEST_FB => {
793                Some("RENDER_MODEL_CAPABILITIES_REQUEST_FB")
794            }
795            Self::BINDING_MODIFICATIONS_KHR => Some("BINDING_MODIFICATIONS_KHR"),
796            Self::VIEW_LOCATE_FOVEATED_RENDERING_VARJO => {
797                Some("VIEW_LOCATE_FOVEATED_RENDERING_VARJO")
798            }
799            Self::FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO => {
800                Some("FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO")
801            }
802            Self::SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO => {
803                Some("SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO")
804            }
805            Self::COMPOSITION_LAYER_DEPTH_TEST_VARJO => Some("COMPOSITION_LAYER_DEPTH_TEST_VARJO"),
806            Self::SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO => {
807                Some("SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO")
808            }
809            Self::EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO => {
810                Some("EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO")
811            }
812            Self::MARKER_SPACE_CREATE_INFO_VARJO => Some("MARKER_SPACE_CREATE_INFO_VARJO"),
813            Self::FRAME_END_INFO_ML => Some("FRAME_END_INFO_ML"),
814            Self::GLOBAL_DIMMER_FRAME_END_INFO_ML => Some("GLOBAL_DIMMER_FRAME_END_INFO_ML"),
815            Self::COORDINATE_SPACE_CREATE_INFO_ML => Some("COORDINATE_SPACE_CREATE_INFO_ML"),
816            Self::SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML => {
817                Some("SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML")
818            }
819            Self::MARKER_DETECTOR_CREATE_INFO_ML => Some("MARKER_DETECTOR_CREATE_INFO_ML"),
820            Self::MARKER_DETECTOR_ARUCO_INFO_ML => Some("MARKER_DETECTOR_ARUCO_INFO_ML"),
821            Self::MARKER_DETECTOR_SIZE_INFO_ML => Some("MARKER_DETECTOR_SIZE_INFO_ML"),
822            Self::MARKER_DETECTOR_APRIL_TAG_INFO_ML => Some("MARKER_DETECTOR_APRIL_TAG_INFO_ML"),
823            Self::MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML => {
824                Some("MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML")
825            }
826            Self::MARKER_DETECTOR_SNAPSHOT_INFO_ML => Some("MARKER_DETECTOR_SNAPSHOT_INFO_ML"),
827            Self::MARKER_DETECTOR_STATE_ML => Some("MARKER_DETECTOR_STATE_ML"),
828            Self::MARKER_SPACE_CREATE_INFO_ML => Some("MARKER_SPACE_CREATE_INFO_ML"),
829            Self::LOCALIZATION_MAP_ML => Some("LOCALIZATION_MAP_ML"),
830            Self::EVENT_DATA_LOCALIZATION_CHANGED_ML => Some("EVENT_DATA_LOCALIZATION_CHANGED_ML"),
831            Self::MAP_LOCALIZATION_REQUEST_INFO_ML => Some("MAP_LOCALIZATION_REQUEST_INFO_ML"),
832            Self::LOCALIZATION_MAP_IMPORT_INFO_ML => Some("LOCALIZATION_MAP_IMPORT_INFO_ML"),
833            Self::LOCALIZATION_ENABLE_EVENTS_INFO_ML => Some("LOCALIZATION_ENABLE_EVENTS_INFO_ML"),
834            Self::EVENT_DATA_HEADSET_FIT_CHANGED_ML => Some("EVENT_DATA_HEADSET_FIT_CHANGED_ML"),
835            Self::EVENT_DATA_EYE_CALIBRATION_CHANGED_ML => {
836                Some("EVENT_DATA_EYE_CALIBRATION_CHANGED_ML")
837            }
838            Self::USER_CALIBRATION_ENABLE_EVENTS_INFO_ML => {
839                Some("USER_CALIBRATION_ENABLE_EVENTS_INFO_ML")
840            }
841            Self::SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT => {
842                Some("SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT")
843            }
844            Self::SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT => {
845                Some("SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT")
846            }
847            Self::SCENE_MARKERS_MSFT => Some("SCENE_MARKERS_MSFT"),
848            Self::SCENE_MARKER_TYPE_FILTER_MSFT => Some("SCENE_MARKER_TYPE_FILTER_MSFT"),
849            Self::SCENE_MARKER_QR_CODES_MSFT => Some("SCENE_MARKER_QR_CODES_MSFT"),
850            Self::SPACE_QUERY_INFO_FB => Some("SPACE_QUERY_INFO_FB"),
851            Self::SPACE_QUERY_RESULTS_FB => Some("SPACE_QUERY_RESULTS_FB"),
852            Self::SPACE_STORAGE_LOCATION_FILTER_INFO_FB => {
853                Some("SPACE_STORAGE_LOCATION_FILTER_INFO_FB")
854            }
855            Self::SPACE_UUID_FILTER_INFO_FB => Some("SPACE_UUID_FILTER_INFO_FB"),
856            Self::SPACE_COMPONENT_FILTER_INFO_FB => Some("SPACE_COMPONENT_FILTER_INFO_FB"),
857            Self::EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB => {
858                Some("EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB")
859            }
860            Self::EVENT_DATA_SPACE_QUERY_COMPLETE_FB => Some("EVENT_DATA_SPACE_QUERY_COMPLETE_FB"),
861            Self::SPACE_SAVE_INFO_FB => Some("SPACE_SAVE_INFO_FB"),
862            Self::SPACE_ERASE_INFO_FB => Some("SPACE_ERASE_INFO_FB"),
863            Self::EVENT_DATA_SPACE_SAVE_COMPLETE_FB => Some("EVENT_DATA_SPACE_SAVE_COMPLETE_FB"),
864            Self::EVENT_DATA_SPACE_ERASE_COMPLETE_FB => Some("EVENT_DATA_SPACE_ERASE_COMPLETE_FB"),
865            Self::SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB => {
866                Some("SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB")
867            }
868            Self::SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB => {
869                Some("SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB")
870            }
871            Self::SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB => {
872                Some("SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB")
873            }
874            Self::SWAPCHAIN_STATE_SAMPLER_VULKAN_FB => Some("SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"),
875            Self::SPACE_SHARE_INFO_FB => Some("SPACE_SHARE_INFO_FB"),
876            Self::EVENT_DATA_SPACE_SHARE_COMPLETE_FB => Some("EVENT_DATA_SPACE_SHARE_COMPLETE_FB"),
877            Self::COMPOSITION_LAYER_SPACE_WARP_INFO_FB => {
878                Some("COMPOSITION_LAYER_SPACE_WARP_INFO_FB")
879            }
880            Self::SYSTEM_SPACE_WARP_PROPERTIES_FB => Some("SYSTEM_SPACE_WARP_PROPERTIES_FB"),
881            Self::HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB => {
882                Some("HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB")
883            }
884            Self::SEMANTIC_LABELS_FB => Some("SEMANTIC_LABELS_FB"),
885            Self::ROOM_LAYOUT_FB => Some("ROOM_LAYOUT_FB"),
886            Self::BOUNDARY_2D_FB => Some("BOUNDARY_2D_FB"),
887            Self::SEMANTIC_LABELS_SUPPORT_INFO_FB => Some("SEMANTIC_LABELS_SUPPORT_INFO_FB"),
888            Self::DIGITAL_LENS_CONTROL_ALMALENCE => Some("DIGITAL_LENS_CONTROL_ALMALENCE"),
889            Self::EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB => {
890                Some("EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB")
891            }
892            Self::SCENE_CAPTURE_REQUEST_INFO_FB => Some("SCENE_CAPTURE_REQUEST_INFO_FB"),
893            Self::SPACE_CONTAINER_FB => Some("SPACE_CONTAINER_FB"),
894            Self::FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META => {
895                Some("FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META")
896            }
897            Self::FOVEATION_EYE_TRACKED_STATE_META => Some("FOVEATION_EYE_TRACKED_STATE_META"),
898            Self::SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META => {
899                Some("SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META")
900            }
901            Self::SYSTEM_FACE_TRACKING_PROPERTIES_FB => Some("SYSTEM_FACE_TRACKING_PROPERTIES_FB"),
902            Self::FACE_TRACKER_CREATE_INFO_FB => Some("FACE_TRACKER_CREATE_INFO_FB"),
903            Self::FACE_EXPRESSION_INFO_FB => Some("FACE_EXPRESSION_INFO_FB"),
904            Self::FACE_EXPRESSION_WEIGHTS_FB => Some("FACE_EXPRESSION_WEIGHTS_FB"),
905            Self::EYE_TRACKER_CREATE_INFO_FB => Some("EYE_TRACKER_CREATE_INFO_FB"),
906            Self::EYE_GAZES_INFO_FB => Some("EYE_GAZES_INFO_FB"),
907            Self::EYE_GAZES_FB => Some("EYE_GAZES_FB"),
908            Self::SYSTEM_EYE_TRACKING_PROPERTIES_FB => Some("SYSTEM_EYE_TRACKING_PROPERTIES_FB"),
909            Self::PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB => {
910                Some("PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB")
911            }
912            Self::COMPOSITION_LAYER_SETTINGS_FB => Some("COMPOSITION_LAYER_SETTINGS_FB"),
913            Self::HAPTIC_PCM_VIBRATION_FB => Some("HAPTIC_PCM_VIBRATION_FB"),
914            Self::DEVICE_PCM_SAMPLE_RATE_STATE_FB => Some("DEVICE_PCM_SAMPLE_RATE_STATE_FB"),
915            Self::COMPOSITION_LAYER_DEPTH_TEST_FB => Some("COMPOSITION_LAYER_DEPTH_TEST_FB"),
916            Self::LOCAL_DIMMING_FRAME_END_INFO_META => Some("LOCAL_DIMMING_FRAME_END_INFO_META"),
917            Self::PASSTHROUGH_PREFERENCES_META => Some("PASSTHROUGH_PREFERENCES_META"),
918            Self::SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META => {
919                Some("SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META")
920            }
921            Self::VIRTUAL_KEYBOARD_CREATE_INFO_META => Some("VIRTUAL_KEYBOARD_CREATE_INFO_META"),
922            Self::VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META => {
923                Some("VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META")
924            }
925            Self::VIRTUAL_KEYBOARD_LOCATION_INFO_META => {
926                Some("VIRTUAL_KEYBOARD_LOCATION_INFO_META")
927            }
928            Self::VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META => {
929                Some("VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META")
930            }
931            Self::VIRTUAL_KEYBOARD_ANIMATION_STATE_META => {
932                Some("VIRTUAL_KEYBOARD_ANIMATION_STATE_META")
933            }
934            Self::VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META => {
935                Some("VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META")
936            }
937            Self::VIRTUAL_KEYBOARD_TEXTURE_DATA_META => Some("VIRTUAL_KEYBOARD_TEXTURE_DATA_META"),
938            Self::VIRTUAL_KEYBOARD_INPUT_INFO_META => Some("VIRTUAL_KEYBOARD_INPUT_INFO_META"),
939            Self::VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META => {
940                Some("VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META")
941            }
942            Self::EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META => {
943                Some("EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META")
944            }
945            Self::EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META => {
946                Some("EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META")
947            }
948            Self::EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META => {
949                Some("EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META")
950            }
951            Self::EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META => {
952                Some("EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META")
953            }
954            Self::EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META => {
955                Some("EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META")
956            }
957            Self::EXTERNAL_CAMERA_OCULUS => Some("EXTERNAL_CAMERA_OCULUS"),
958            Self::VULKAN_SWAPCHAIN_CREATE_INFO_META => Some("VULKAN_SWAPCHAIN_CREATE_INFO_META"),
959            Self::PERFORMANCE_METRICS_STATE_META => Some("PERFORMANCE_METRICS_STATE_META"),
960            Self::PERFORMANCE_METRICS_COUNTER_META => Some("PERFORMANCE_METRICS_COUNTER_META"),
961            Self::SPACE_LIST_SAVE_INFO_FB => Some("SPACE_LIST_SAVE_INFO_FB"),
962            Self::EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB => {
963                Some("EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB")
964            }
965            Self::SPACE_USER_CREATE_INFO_FB => Some("SPACE_USER_CREATE_INFO_FB"),
966            Self::SYSTEM_HEADSET_ID_PROPERTIES_META => Some("SYSTEM_HEADSET_ID_PROPERTIES_META"),
967            Self::RECOMMENDED_LAYER_RESOLUTION_META => Some("RECOMMENDED_LAYER_RESOLUTION_META"),
968            Self::RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META => {
969                Some("RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META")
970            }
971            Self::SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META => {
972                Some("SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META")
973            }
974            Self::PASSTHROUGH_COLOR_LUT_CREATE_INFO_META => {
975                Some("PASSTHROUGH_COLOR_LUT_CREATE_INFO_META")
976            }
977            Self::PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META => {
978                Some("PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META")
979            }
980            Self::PASSTHROUGH_COLOR_MAP_LUT_META => Some("PASSTHROUGH_COLOR_MAP_LUT_META"),
981            Self::PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META => {
982                Some("PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META")
983            }
984            Self::SPACE_TRIANGLE_MESH_GET_INFO_META => Some("SPACE_TRIANGLE_MESH_GET_INFO_META"),
985            Self::SPACE_TRIANGLE_MESH_META => Some("SPACE_TRIANGLE_MESH_META"),
986            Self::SYSTEM_FACE_TRACKING_PROPERTIES2_FB => {
987                Some("SYSTEM_FACE_TRACKING_PROPERTIES2_FB")
988            }
989            Self::FACE_TRACKER_CREATE_INFO2_FB => Some("FACE_TRACKER_CREATE_INFO2_FB"),
990            Self::FACE_EXPRESSION_INFO2_FB => Some("FACE_EXPRESSION_INFO2_FB"),
991            Self::FACE_EXPRESSION_WEIGHTS2_FB => Some("FACE_EXPRESSION_WEIGHTS2_FB"),
992            Self::ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META => {
993                Some("ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META")
994            }
995            Self::ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META => {
996                Some("ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META")
997            }
998            Self::ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META => {
999                Some("ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META")
1000            }
1001            Self::ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META => {
1002                Some("ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META")
1003            }
1004            Self::ENVIRONMENT_DEPTH_IMAGE_VIEW_META => Some("ENVIRONMENT_DEPTH_IMAGE_VIEW_META"),
1005            Self::ENVIRONMENT_DEPTH_IMAGE_META => Some("ENVIRONMENT_DEPTH_IMAGE_META"),
1006            Self::ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META => {
1007                Some("ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META")
1008            }
1009            Self::SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META => {
1010                Some("SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META")
1011            }
1012            Self::PASSTHROUGH_CREATE_INFO_HTC => Some("PASSTHROUGH_CREATE_INFO_HTC"),
1013            Self::PASSTHROUGH_COLOR_HTC => Some("PASSTHROUGH_COLOR_HTC"),
1014            Self::PASSTHROUGH_MESH_TRANSFORM_INFO_HTC => {
1015                Some("PASSTHROUGH_MESH_TRANSFORM_INFO_HTC")
1016            }
1017            Self::COMPOSITION_LAYER_PASSTHROUGH_HTC => Some("COMPOSITION_LAYER_PASSTHROUGH_HTC"),
1018            Self::FOVEATION_APPLY_INFO_HTC => Some("FOVEATION_APPLY_INFO_HTC"),
1019            Self::FOVEATION_DYNAMIC_MODE_INFO_HTC => Some("FOVEATION_DYNAMIC_MODE_INFO_HTC"),
1020            Self::FOVEATION_CUSTOM_MODE_INFO_HTC => Some("FOVEATION_CUSTOM_MODE_INFO_HTC"),
1021            Self::SYSTEM_ANCHOR_PROPERTIES_HTC => Some("SYSTEM_ANCHOR_PROPERTIES_HTC"),
1022            Self::SPATIAL_ANCHOR_CREATE_INFO_HTC => Some("SPATIAL_ANCHOR_CREATE_INFO_HTC"),
1023            Self::ACTIVE_ACTION_SET_PRIORITIES_EXT => Some("ACTIVE_ACTION_SET_PRIORITIES_EXT"),
1024            Self::SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX => {
1025                Some("SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX")
1026            }
1027            Self::FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX => {
1028                Some("FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX")
1029            }
1030            Self::HAND_TRACKING_DATA_SOURCE_INFO_EXT => Some("HAND_TRACKING_DATA_SOURCE_INFO_EXT"),
1031            Self::HAND_TRACKING_DATA_SOURCE_STATE_EXT => {
1032                Some("HAND_TRACKING_DATA_SOURCE_STATE_EXT")
1033            }
1034            Self::PLANE_DETECTOR_CREATE_INFO_EXT => Some("PLANE_DETECTOR_CREATE_INFO_EXT"),
1035            Self::PLANE_DETECTOR_BEGIN_INFO_EXT => Some("PLANE_DETECTOR_BEGIN_INFO_EXT"),
1036            Self::PLANE_DETECTOR_GET_INFO_EXT => Some("PLANE_DETECTOR_GET_INFO_EXT"),
1037            Self::PLANE_DETECTOR_LOCATIONS_EXT => Some("PLANE_DETECTOR_LOCATIONS_EXT"),
1038            Self::PLANE_DETECTOR_LOCATION_EXT => Some("PLANE_DETECTOR_LOCATION_EXT"),
1039            Self::PLANE_DETECTOR_POLYGON_BUFFER_EXT => Some("PLANE_DETECTOR_POLYGON_BUFFER_EXT"),
1040            Self::SYSTEM_PLANE_DETECTION_PROPERTIES_EXT => {
1041                Some("SYSTEM_PLANE_DETECTION_PROPERTIES_EXT")
1042            }
1043            Self::FUTURE_CANCEL_INFO_EXT => Some("FUTURE_CANCEL_INFO_EXT"),
1044            Self::FUTURE_POLL_INFO_EXT => Some("FUTURE_POLL_INFO_EXT"),
1045            Self::FUTURE_COMPLETION_EXT => Some("FUTURE_COMPLETION_EXT"),
1046            Self::FUTURE_POLL_RESULT_EXT => Some("FUTURE_POLL_RESULT_EXT"),
1047            Self::EVENT_DATA_USER_PRESENCE_CHANGED_EXT => {
1048                Some("EVENT_DATA_USER_PRESENCE_CHANGED_EXT")
1049            }
1050            Self::SYSTEM_USER_PRESENCE_PROPERTIES_EXT => {
1051                Some("SYSTEM_USER_PRESENCE_PROPERTIES_EXT")
1052            }
1053            _ => None,
1054        };
1055        fmt_enum(fmt, self.0, name)
1056    }
1057}
1058#[doc = "Error and return codes - see [XrResult](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrResult)"]
1059#[repr(transparent)]
1060#[derive(Copy, Clone, Eq, PartialEq)]
1061pub struct Result(i32);
1062impl Result {
1063    #[doc = "Function successfully completed."]
1064    pub const SUCCESS: Result = Self(0i32);
1065    #[doc = "The specified timeout time occurred before the operation could complete."]
1066    pub const TIMEOUT_EXPIRED: Result = Self(1i32);
1067    #[doc = "The session will be lost soon."]
1068    pub const SESSION_LOSS_PENDING: Result = Self(3i32);
1069    #[doc = "No event was available."]
1070    pub const EVENT_UNAVAILABLE: Result = Self(4i32);
1071    #[doc = "The space's bounds are not known at the moment."]
1072    pub const SPACE_BOUNDS_UNAVAILABLE: Result = Self(7i32);
1073    #[doc = "The session is not in the focused state."]
1074    pub const SESSION_NOT_FOCUSED: Result = Self(8i32);
1075    #[doc = "A frame has been discarded from composition."]
1076    pub const FRAME_DISCARDED: Result = Self(9i32);
1077    #[doc = "The function usage was invalid in some way."]
1078    pub const ERROR_VALIDATION_FAILURE: Result = Self(-1i32);
1079    #[doc = "The runtime failed to handle the function in an unexpected way that is not covered by another error result."]
1080    pub const ERROR_RUNTIME_FAILURE: Result = Self(-2i32);
1081    #[doc = "A memory allocation has failed."]
1082    pub const ERROR_OUT_OF_MEMORY: Result = Self(-3i32);
1083    #[doc = "The runtime does not support the requested API version."]
1084    pub const ERROR_API_VERSION_UNSUPPORTED: Result = Self(-4i32);
1085    #[doc = "Initialization of object could not be completed."]
1086    pub const ERROR_INITIALIZATION_FAILED: Result = Self(-6i32);
1087    #[doc = "The requested function was not found or is otherwise unsupported."]
1088    pub const ERROR_FUNCTION_UNSUPPORTED: Result = Self(-7i32);
1089    #[doc = "The requested feature is not supported."]
1090    pub const ERROR_FEATURE_UNSUPPORTED: Result = Self(-8i32);
1091    #[doc = "A requested extension is not supported."]
1092    pub const ERROR_EXTENSION_NOT_PRESENT: Result = Self(-9i32);
1093    #[doc = "The runtime supports no more of the requested resource."]
1094    pub const ERROR_LIMIT_REACHED: Result = Self(-10i32);
1095    #[doc = "The supplied size was smaller than required."]
1096    pub const ERROR_SIZE_INSUFFICIENT: Result = Self(-11i32);
1097    #[doc = "A supplied object handle was invalid."]
1098    pub const ERROR_HANDLE_INVALID: Result = Self(-12i32);
1099    #[doc = "The XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated."]
1100    pub const ERROR_INSTANCE_LOST: Result = Self(-13i32);
1101    #[doc = "The session is already running."]
1102    pub const ERROR_SESSION_RUNNING: Result = Self(-14i32);
1103    #[doc = "The session is not yet running."]
1104    pub const ERROR_SESSION_NOT_RUNNING: Result = Self(-16i32);
1105    #[doc = "The XrSession was lost. It will need to be destroyed and optionally recreated."]
1106    pub const ERROR_SESSION_LOST: Result = Self(-17i32);
1107    #[doc = "The provided XrSystemId was invalid."]
1108    pub const ERROR_SYSTEM_INVALID: Result = Self(-18i32);
1109    #[doc = "The provided XrPath was not valid."]
1110    pub const ERROR_PATH_INVALID: Result = Self(-19i32);
1111    #[doc = "The maximum number of supported semantic paths has been reached."]
1112    pub const ERROR_PATH_COUNT_EXCEEDED: Result = Self(-20i32);
1113    #[doc = "The semantic path character format is invalid."]
1114    pub const ERROR_PATH_FORMAT_INVALID: Result = Self(-21i32);
1115    #[doc = "The semantic path is unsupported."]
1116    pub const ERROR_PATH_UNSUPPORTED: Result = Self(-22i32);
1117    #[doc = "The layer was NULL or otherwise invalid."]
1118    pub const ERROR_LAYER_INVALID: Result = Self(-23i32);
1119    #[doc = "The number of specified layers is greater than the supported number."]
1120    pub const ERROR_LAYER_LIMIT_EXCEEDED: Result = Self(-24i32);
1121    #[doc = "The image rect was negatively sized or otherwise invalid."]
1122    pub const ERROR_SWAPCHAIN_RECT_INVALID: Result = Self(-25i32);
1123    #[doc = "The image format is not supported by the runtime or platform."]
1124    pub const ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED: Result = Self(-26i32);
1125    #[doc = "The API used to retrieve an action's state does not match the action's type."]
1126    pub const ERROR_ACTION_TYPE_MISMATCH: Result = Self(-27i32);
1127    #[doc = "The session is not in the ready state."]
1128    pub const ERROR_SESSION_NOT_READY: Result = Self(-28i32);
1129    #[doc = "The session is not in the stopping state."]
1130    pub const ERROR_SESSION_NOT_STOPPING: Result = Self(-29i32);
1131    #[doc = "The provided XrTime was zero, negative, or out of range."]
1132    pub const ERROR_TIME_INVALID: Result = Self(-30i32);
1133    #[doc = "The specified reference space is not supported by the runtime or system."]
1134    pub const ERROR_REFERENCE_SPACE_UNSUPPORTED: Result = Self(-31i32);
1135    #[doc = "The file could not be accessed."]
1136    pub const ERROR_FILE_ACCESS_ERROR: Result = Self(-32i32);
1137    #[doc = "The file's contents were invalid."]
1138    pub const ERROR_FILE_CONTENTS_INVALID: Result = Self(-33i32);
1139    #[doc = "The specified form factor is not supported by the current runtime or platform."]
1140    pub const ERROR_FORM_FACTOR_UNSUPPORTED: Result = Self(-34i32);
1141    #[doc = "The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off."]
1142    pub const ERROR_FORM_FACTOR_UNAVAILABLE: Result = Self(-35i32);
1143    #[doc = "A requested API layer is not present or could not be loaded."]
1144    pub const ERROR_API_LAYER_NOT_PRESENT: Result = Self(-36i32);
1145    #[doc = "The call was made without having made a previously required call."]
1146    pub const ERROR_CALL_ORDER_INVALID: Result = Self(-37i32);
1147    #[doc = "The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements."]
1148    pub const ERROR_GRAPHICS_DEVICE_INVALID: Result = Self(-38i32);
1149    #[doc = "The supplied pose was invalid with respect to the requirements."]
1150    pub const ERROR_POSE_INVALID: Result = Self(-39i32);
1151    #[doc = "The supplied index was outside the range of valid indices."]
1152    pub const ERROR_INDEX_OUT_OF_RANGE: Result = Self(-40i32);
1153    #[doc = "The specified view configuration type is not supported by the runtime or platform."]
1154    pub const ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED: Result = Self(-41i32);
1155    #[doc = "The specified environment blend mode is not supported by the runtime or platform."]
1156    pub const ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED: Result = Self(-42i32);
1157    #[doc = "The name provided was a duplicate of an already-existing resource."]
1158    pub const ERROR_NAME_DUPLICATED: Result = Self(-44i32);
1159    #[doc = "The name provided was invalid."]
1160    pub const ERROR_NAME_INVALID: Result = Self(-45i32);
1161    #[doc = "A referenced action set is not attached to the session."]
1162    pub const ERROR_ACTIONSET_NOT_ATTACHED: Result = Self(-46i32);
1163    #[doc = "The session already has attached action sets."]
1164    pub const ERROR_ACTIONSETS_ALREADY_ATTACHED: Result = Self(-47i32);
1165    #[doc = "The localized name provided was a duplicate of an already-existing resource."]
1166    pub const ERROR_LOCALIZED_NAME_DUPLICATED: Result = Self(-48i32);
1167    #[doc = "The localized name provided was invalid."]
1168    pub const ERROR_LOCALIZED_NAME_INVALID: Result = Self(-49i32);
1169    #[doc = "The xrGetGraphicsRequirements* call was not made before calling xrCreateSession."]
1170    pub const ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING: Result = Self(-50i32);
1171    #[doc = "The loader was unable to find or load a runtime."]
1172    pub const ERROR_RUNTIME_UNAVAILABLE: Result = Self(-51i32);
1173    #[doc = "One or more of the extensions being enabled has dependency on extensions that are not enabled."]
1174    pub const ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED: Result = Self(-1000710001i32);
1175    #[doc = "Insufficient permissions. This error is included for use by vendor extensions. The precise definition of `XR_ERROR_PERMISSION_INSUFFICIENT` and actions possible by the developer or user to resolve it can vary by platform, extension or function. The developer should refer to the documentation of the function that returned the error code and extension it was defined."]
1176    pub const ERROR_PERMISSION_INSUFFICIENT: Result = Self(-1000710000i32);
1177    #[doc = "xrSetAndroidApplicationThreadKHR failed as thread id is invalid."]
1178    pub const ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR: Result = Self(-1000003000i32);
1179    #[doc = "xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority."]
1180    pub const ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR: Result = Self(-1000003001i32);
1181    #[doc = "Spatial anchor could not be created at that location."]
1182    pub const ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT: Result = Self(-1000039001i32);
1183    #[doc = "The secondary view configuration was not enabled when creating the session."]
1184    pub const ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT: Result =
1185        Self(-1000053000i32);
1186    #[doc = "The controller model key is invalid."]
1187    pub const ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT: Result = Self(-1000055000i32);
1188    #[doc = "The reprojection mode is not supported."]
1189    pub const ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT: Result = Self(-1000066000i32);
1190    #[doc = "Compute new scene not completed."]
1191    pub const ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT: Result = Self(-1000097000i32);
1192    #[doc = "Scene component id invalid."]
1193    pub const ERROR_SCENE_COMPONENT_ID_INVALID_MSFT: Result = Self(-1000097001i32);
1194    #[doc = "Scene component type mismatch."]
1195    pub const ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT: Result = Self(-1000097002i32);
1196    #[doc = "Scene mesh buffer id invalid."]
1197    pub const ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT: Result = Self(-1000097003i32);
1198    #[doc = "Scene compute feature incompatible."]
1199    pub const ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT: Result = Self(-1000097004i32);
1200    #[doc = "Scene compute consistency mismatch."]
1201    pub const ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT: Result = Self(-1000097005i32);
1202    #[doc = "The display refresh rate is not supported by the platform."]
1203    pub const ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB: Result = Self(-1000101000i32);
1204    #[doc = "The color space is not supported by the runtime."]
1205    pub const ERROR_COLOR_SPACE_UNSUPPORTED_FB: Result = Self(-1000108000i32);
1206    #[doc = "The component type is not supported for this space."]
1207    pub const ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB: Result = Self(-1000113000i32);
1208    #[doc = "The required component is not enabled for this space."]
1209    pub const ERROR_SPACE_COMPONENT_NOT_ENABLED_FB: Result = Self(-1000113001i32);
1210    #[doc = "A request to set the component's status is currently pending."]
1211    pub const ERROR_SPACE_COMPONENT_STATUS_PENDING_FB: Result = Self(-1000113002i32);
1212    #[doc = "The component is already set to the requested value."]
1213    pub const ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB: Result = Self(-1000113003i32);
1214    #[doc = "The object state is unexpected for the issued command."]
1215    pub const ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB: Result = Self(-1000118000i32);
1216    #[doc = "Trying to create an MR feature when one was already created and only one instance is allowed."]
1217    pub const ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB: Result = Self(-1000118001i32);
1218    #[doc = "Requested functionality requires a feature to be created first."]
1219    pub const ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB: Result = Self(-1000118002i32);
1220    #[doc = "Requested functionality is not permitted - application is not allowed to perform the requested operation."]
1221    pub const ERROR_NOT_PERMITTED_PASSTHROUGH_FB: Result = Self(-1000118003i32);
1222    #[doc = "There were insufficient resources available to perform an operation."]
1223    pub const ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB: Result = Self(-1000118004i32);
1224    #[doc = "Unknown Passthrough error (no further details provided)."]
1225    pub const ERROR_UNKNOWN_PASSTHROUGH_FB: Result = Self(-1000118050i32);
1226    #[doc = "The model key is invalid."]
1227    pub const ERROR_RENDER_MODEL_KEY_INVALID_FB: Result = Self(-1000119000i32);
1228    #[doc = "The model is unavailable."]
1229    pub const RENDER_MODEL_UNAVAILABLE_FB: Result = Self(1000119020i32);
1230    #[doc = "Marker tracking is disabled or the specified marker is not currently tracked."]
1231    pub const ERROR_MARKER_NOT_TRACKED_VARJO: Result = Self(-1000124000i32);
1232    #[doc = "The specified marker ID is not valid."]
1233    pub const ERROR_MARKER_ID_INVALID_VARJO: Result = Self(-1000124001i32);
1234    #[doc = "The com.magicleap.permission.MARKER_TRACKING permission was denied."]
1235    pub const ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML: Result = Self(-1000138000i32);
1236    #[doc = "The specified marker could not be located spatially."]
1237    pub const ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML: Result = Self(-1000138001i32);
1238    #[doc = "The marker queried does not contain data of the requested type."]
1239    pub const ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML: Result = Self(-1000138002i32);
1240    #[doc = "createInfo contains mutually exclusive parameters, such as setting XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with XR_MARKER_TYPE_ARUCO_ML."]
1241    pub const ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML: Result = Self(-1000138003i32);
1242    #[doc = "The marker id passed to the function was invalid."]
1243    pub const ERROR_MARKER_INVALID_ML: Result = Self(-1000138004i32);
1244    #[doc = "The localization map being imported is not compatible with current OS or mode."]
1245    pub const ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML: Result = Self(-1000139000i32);
1246    #[doc = "The localization map requested is not available."]
1247    pub const ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML: Result = Self(-1000139001i32);
1248    #[doc = "The map localization service failed to fulfill the request, retry later."]
1249    pub const ERROR_LOCALIZATION_MAP_FAIL_ML: Result = Self(-1000139002i32);
1250    #[doc = "The com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied."]
1251    pub const ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML: Result =
1252        Self(-1000139003i32);
1253    #[doc = "The com.magicleap.permission.SPACE_MANAGER permission was denied."]
1254    pub const ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML: Result = Self(-1000139004i32);
1255    #[doc = "The map being imported already exists in the system."]
1256    pub const ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML: Result = Self(-1000139005i32);
1257    #[doc = "The map localization service cannot export cloud based maps."]
1258    pub const ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML: Result = Self(-1000139006i32);
1259    #[doc = "A spatial anchor was not found associated with the spatial anchor name provided"]
1260    pub const ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT: Result = Self(-1000142001i32);
1261    #[doc = "The spatial anchor name provided was not valid"]
1262    pub const ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT: Result = Self(-1000142002i32);
1263    #[doc = "Marker does not encode a string."]
1264    pub const SCENE_MARKER_DATA_NOT_STRING_MSFT: Result = Self(1000147000i32);
1265    #[doc = "Anchor import from cloud or export from device failed."]
1266    pub const ERROR_SPACE_MAPPING_INSUFFICIENT_FB: Result = Self(-1000169000i32);
1267    #[doc = "Anchors were downloaded from the cloud but failed to be imported/aligned on the device."]
1268    pub const ERROR_SPACE_LOCALIZATION_FAILED_FB: Result = Self(-1000169001i32);
1269    #[doc = "Timeout occurred while waiting for network request to complete."]
1270    pub const ERROR_SPACE_NETWORK_TIMEOUT_FB: Result = Self(-1000169002i32);
1271    #[doc = "The network request failed."]
1272    pub const ERROR_SPACE_NETWORK_REQUEST_FAILED_FB: Result = Self(-1000169003i32);
1273    #[doc = "Cloud storage is required for this operation but is currently disabled."]
1274    pub const ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB: Result = Self(-1000169004i32);
1275    #[doc = "The provided data buffer did not match the required size."]
1276    pub const ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META: Result = Self(-1000266000i32);
1277    #[doc = "Warning: The requested depth image is not yet available."]
1278    pub const ENVIRONMENT_DEPTH_NOT_AVAILABLE_META: Result = Self(1000291000i32);
1279    #[doc = "Tracking optimization hint is already set for the domain."]
1280    pub const ERROR_HINT_ALREADY_SET_QCOM: Result = Self(-1000306000i32);
1281    #[doc = "The provided space is valid but not an anchor."]
1282    pub const ERROR_NOT_AN_ANCHOR_HTC: Result = Self(-1000319000i32);
1283    #[doc = "The space passed to the function was not locatable."]
1284    pub const ERROR_SPACE_NOT_LOCATABLE_EXT: Result = Self(-1000429000i32);
1285    #[doc = "The permission for this resource was not granted."]
1286    pub const ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT: Result = Self(-1000429001i32);
1287    #[doc = "Returned by completion function to indicate future is not ready."]
1288    pub const ERROR_FUTURE_PENDING_EXT: Result = Self(-1000469001i32);
1289    #[doc = "Returned by completion function to indicate future is not valid."]
1290    pub const ERROR_FUTURE_INVALID_EXT: Result = Self(-1000469002i32);
1291    pub const ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR: Result =
1292        Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED;
1293    pub const ERROR_PERMISSION_INSUFFICIENT_KHR: Result = Self::ERROR_PERMISSION_INSUFFICIENT;
1294    pub fn from_raw(x: i32) -> Self {
1295        Self(x)
1296    }
1297    pub fn into_raw(self) -> i32 {
1298        self.0
1299    }
1300}
1301impl fmt::Debug for Result {
1302    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1303        let name = match *self {
1304            Self::SUCCESS => Some("SUCCESS"),
1305            Self::TIMEOUT_EXPIRED => Some("TIMEOUT_EXPIRED"),
1306            Self::SESSION_LOSS_PENDING => Some("SESSION_LOSS_PENDING"),
1307            Self::EVENT_UNAVAILABLE => Some("EVENT_UNAVAILABLE"),
1308            Self::SPACE_BOUNDS_UNAVAILABLE => Some("SPACE_BOUNDS_UNAVAILABLE"),
1309            Self::SESSION_NOT_FOCUSED => Some("SESSION_NOT_FOCUSED"),
1310            Self::FRAME_DISCARDED => Some("FRAME_DISCARDED"),
1311            Self::ERROR_VALIDATION_FAILURE => Some("ERROR_VALIDATION_FAILURE"),
1312            Self::ERROR_RUNTIME_FAILURE => Some("ERROR_RUNTIME_FAILURE"),
1313            Self::ERROR_OUT_OF_MEMORY => Some("ERROR_OUT_OF_MEMORY"),
1314            Self::ERROR_API_VERSION_UNSUPPORTED => Some("ERROR_API_VERSION_UNSUPPORTED"),
1315            Self::ERROR_INITIALIZATION_FAILED => Some("ERROR_INITIALIZATION_FAILED"),
1316            Self::ERROR_FUNCTION_UNSUPPORTED => Some("ERROR_FUNCTION_UNSUPPORTED"),
1317            Self::ERROR_FEATURE_UNSUPPORTED => Some("ERROR_FEATURE_UNSUPPORTED"),
1318            Self::ERROR_EXTENSION_NOT_PRESENT => Some("ERROR_EXTENSION_NOT_PRESENT"),
1319            Self::ERROR_LIMIT_REACHED => Some("ERROR_LIMIT_REACHED"),
1320            Self::ERROR_SIZE_INSUFFICIENT => Some("ERROR_SIZE_INSUFFICIENT"),
1321            Self::ERROR_HANDLE_INVALID => Some("ERROR_HANDLE_INVALID"),
1322            Self::ERROR_INSTANCE_LOST => Some("ERROR_INSTANCE_LOST"),
1323            Self::ERROR_SESSION_RUNNING => Some("ERROR_SESSION_RUNNING"),
1324            Self::ERROR_SESSION_NOT_RUNNING => Some("ERROR_SESSION_NOT_RUNNING"),
1325            Self::ERROR_SESSION_LOST => Some("ERROR_SESSION_LOST"),
1326            Self::ERROR_SYSTEM_INVALID => Some("ERROR_SYSTEM_INVALID"),
1327            Self::ERROR_PATH_INVALID => Some("ERROR_PATH_INVALID"),
1328            Self::ERROR_PATH_COUNT_EXCEEDED => Some("ERROR_PATH_COUNT_EXCEEDED"),
1329            Self::ERROR_PATH_FORMAT_INVALID => Some("ERROR_PATH_FORMAT_INVALID"),
1330            Self::ERROR_PATH_UNSUPPORTED => Some("ERROR_PATH_UNSUPPORTED"),
1331            Self::ERROR_LAYER_INVALID => Some("ERROR_LAYER_INVALID"),
1332            Self::ERROR_LAYER_LIMIT_EXCEEDED => Some("ERROR_LAYER_LIMIT_EXCEEDED"),
1333            Self::ERROR_SWAPCHAIN_RECT_INVALID => Some("ERROR_SWAPCHAIN_RECT_INVALID"),
1334            Self::ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED => Some("ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED"),
1335            Self::ERROR_ACTION_TYPE_MISMATCH => Some("ERROR_ACTION_TYPE_MISMATCH"),
1336            Self::ERROR_SESSION_NOT_READY => Some("ERROR_SESSION_NOT_READY"),
1337            Self::ERROR_SESSION_NOT_STOPPING => Some("ERROR_SESSION_NOT_STOPPING"),
1338            Self::ERROR_TIME_INVALID => Some("ERROR_TIME_INVALID"),
1339            Self::ERROR_REFERENCE_SPACE_UNSUPPORTED => Some("ERROR_REFERENCE_SPACE_UNSUPPORTED"),
1340            Self::ERROR_FILE_ACCESS_ERROR => Some("ERROR_FILE_ACCESS_ERROR"),
1341            Self::ERROR_FILE_CONTENTS_INVALID => Some("ERROR_FILE_CONTENTS_INVALID"),
1342            Self::ERROR_FORM_FACTOR_UNSUPPORTED => Some("ERROR_FORM_FACTOR_UNSUPPORTED"),
1343            Self::ERROR_FORM_FACTOR_UNAVAILABLE => Some("ERROR_FORM_FACTOR_UNAVAILABLE"),
1344            Self::ERROR_API_LAYER_NOT_PRESENT => Some("ERROR_API_LAYER_NOT_PRESENT"),
1345            Self::ERROR_CALL_ORDER_INVALID => Some("ERROR_CALL_ORDER_INVALID"),
1346            Self::ERROR_GRAPHICS_DEVICE_INVALID => Some("ERROR_GRAPHICS_DEVICE_INVALID"),
1347            Self::ERROR_POSE_INVALID => Some("ERROR_POSE_INVALID"),
1348            Self::ERROR_INDEX_OUT_OF_RANGE => Some("ERROR_INDEX_OUT_OF_RANGE"),
1349            Self::ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED => {
1350                Some("ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED")
1351            }
1352            Self::ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED => {
1353                Some("ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED")
1354            }
1355            Self::ERROR_NAME_DUPLICATED => Some("ERROR_NAME_DUPLICATED"),
1356            Self::ERROR_NAME_INVALID => Some("ERROR_NAME_INVALID"),
1357            Self::ERROR_ACTIONSET_NOT_ATTACHED => Some("ERROR_ACTIONSET_NOT_ATTACHED"),
1358            Self::ERROR_ACTIONSETS_ALREADY_ATTACHED => Some("ERROR_ACTIONSETS_ALREADY_ATTACHED"),
1359            Self::ERROR_LOCALIZED_NAME_DUPLICATED => Some("ERROR_LOCALIZED_NAME_DUPLICATED"),
1360            Self::ERROR_LOCALIZED_NAME_INVALID => Some("ERROR_LOCALIZED_NAME_INVALID"),
1361            Self::ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING => {
1362                Some("ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING")
1363            }
1364            Self::ERROR_RUNTIME_UNAVAILABLE => Some("ERROR_RUNTIME_UNAVAILABLE"),
1365            Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED => {
1366                Some("ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED")
1367            }
1368            Self::ERROR_PERMISSION_INSUFFICIENT => Some("ERROR_PERMISSION_INSUFFICIENT"),
1369            Self::ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR => {
1370                Some("ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR")
1371            }
1372            Self::ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR => {
1373                Some("ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR")
1374            }
1375            Self::ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT => {
1376                Some("ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT")
1377            }
1378            Self::ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT => {
1379                Some("ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT")
1380            }
1381            Self::ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT => {
1382                Some("ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT")
1383            }
1384            Self::ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT => {
1385                Some("ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT")
1386            }
1387            Self::ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT => {
1388                Some("ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT")
1389            }
1390            Self::ERROR_SCENE_COMPONENT_ID_INVALID_MSFT => {
1391                Some("ERROR_SCENE_COMPONENT_ID_INVALID_MSFT")
1392            }
1393            Self::ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT => {
1394                Some("ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT")
1395            }
1396            Self::ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT => {
1397                Some("ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT")
1398            }
1399            Self::ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT => {
1400                Some("ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT")
1401            }
1402            Self::ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT => {
1403                Some("ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT")
1404            }
1405            Self::ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB => {
1406                Some("ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB")
1407            }
1408            Self::ERROR_COLOR_SPACE_UNSUPPORTED_FB => Some("ERROR_COLOR_SPACE_UNSUPPORTED_FB"),
1409            Self::ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB => {
1410                Some("ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB")
1411            }
1412            Self::ERROR_SPACE_COMPONENT_NOT_ENABLED_FB => {
1413                Some("ERROR_SPACE_COMPONENT_NOT_ENABLED_FB")
1414            }
1415            Self::ERROR_SPACE_COMPONENT_STATUS_PENDING_FB => {
1416                Some("ERROR_SPACE_COMPONENT_STATUS_PENDING_FB")
1417            }
1418            Self::ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB => {
1419                Some("ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB")
1420            }
1421            Self::ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB => {
1422                Some("ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB")
1423            }
1424            Self::ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB => {
1425                Some("ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB")
1426            }
1427            Self::ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB => {
1428                Some("ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB")
1429            }
1430            Self::ERROR_NOT_PERMITTED_PASSTHROUGH_FB => Some("ERROR_NOT_PERMITTED_PASSTHROUGH_FB"),
1431            Self::ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB => {
1432                Some("ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB")
1433            }
1434            Self::ERROR_UNKNOWN_PASSTHROUGH_FB => Some("ERROR_UNKNOWN_PASSTHROUGH_FB"),
1435            Self::ERROR_RENDER_MODEL_KEY_INVALID_FB => Some("ERROR_RENDER_MODEL_KEY_INVALID_FB"),
1436            Self::RENDER_MODEL_UNAVAILABLE_FB => Some("RENDER_MODEL_UNAVAILABLE_FB"),
1437            Self::ERROR_MARKER_NOT_TRACKED_VARJO => Some("ERROR_MARKER_NOT_TRACKED_VARJO"),
1438            Self::ERROR_MARKER_ID_INVALID_VARJO => Some("ERROR_MARKER_ID_INVALID_VARJO"),
1439            Self::ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML => {
1440                Some("ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML")
1441            }
1442            Self::ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML => {
1443                Some("ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML")
1444            }
1445            Self::ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML => {
1446                Some("ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML")
1447            }
1448            Self::ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML => {
1449                Some("ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML")
1450            }
1451            Self::ERROR_MARKER_INVALID_ML => Some("ERROR_MARKER_INVALID_ML"),
1452            Self::ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML => {
1453                Some("ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML")
1454            }
1455            Self::ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML => {
1456                Some("ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML")
1457            }
1458            Self::ERROR_LOCALIZATION_MAP_FAIL_ML => Some("ERROR_LOCALIZATION_MAP_FAIL_ML"),
1459            Self::ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML => {
1460                Some("ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML")
1461            }
1462            Self::ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML => {
1463                Some("ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML")
1464            }
1465            Self::ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML => {
1466                Some("ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML")
1467            }
1468            Self::ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML => {
1469                Some("ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML")
1470            }
1471            Self::ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT => {
1472                Some("ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT")
1473            }
1474            Self::ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT => {
1475                Some("ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT")
1476            }
1477            Self::SCENE_MARKER_DATA_NOT_STRING_MSFT => Some("SCENE_MARKER_DATA_NOT_STRING_MSFT"),
1478            Self::ERROR_SPACE_MAPPING_INSUFFICIENT_FB => {
1479                Some("ERROR_SPACE_MAPPING_INSUFFICIENT_FB")
1480            }
1481            Self::ERROR_SPACE_LOCALIZATION_FAILED_FB => Some("ERROR_SPACE_LOCALIZATION_FAILED_FB"),
1482            Self::ERROR_SPACE_NETWORK_TIMEOUT_FB => Some("ERROR_SPACE_NETWORK_TIMEOUT_FB"),
1483            Self::ERROR_SPACE_NETWORK_REQUEST_FAILED_FB => {
1484                Some("ERROR_SPACE_NETWORK_REQUEST_FAILED_FB")
1485            }
1486            Self::ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB => {
1487                Some("ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB")
1488            }
1489            Self::ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META => {
1490                Some("ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META")
1491            }
1492            Self::ENVIRONMENT_DEPTH_NOT_AVAILABLE_META => {
1493                Some("ENVIRONMENT_DEPTH_NOT_AVAILABLE_META")
1494            }
1495            Self::ERROR_HINT_ALREADY_SET_QCOM => Some("ERROR_HINT_ALREADY_SET_QCOM"),
1496            Self::ERROR_NOT_AN_ANCHOR_HTC => Some("ERROR_NOT_AN_ANCHOR_HTC"),
1497            Self::ERROR_SPACE_NOT_LOCATABLE_EXT => Some("ERROR_SPACE_NOT_LOCATABLE_EXT"),
1498            Self::ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT => {
1499                Some("ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT")
1500            }
1501            Self::ERROR_FUTURE_PENDING_EXT => Some("ERROR_FUTURE_PENDING_EXT"),
1502            Self::ERROR_FUTURE_INVALID_EXT => Some("ERROR_FUTURE_INVALID_EXT"),
1503            _ => None,
1504        };
1505        fmt_enum(fmt, self.0, name)
1506    }
1507}
1508impl fmt::Display for Result {
1509    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1510        let reason = match * self { Self :: SUCCESS => Some ("function successfully completed") , Self :: TIMEOUT_EXPIRED => Some ("the specified timeout time occurred before the operation could complete") , Self :: SESSION_LOSS_PENDING => Some ("the session will be lost soon") , Self :: EVENT_UNAVAILABLE => Some ("no event was available") , Self :: SPACE_BOUNDS_UNAVAILABLE => Some ("the space's bounds are not known at the moment") , Self :: SESSION_NOT_FOCUSED => Some ("the session is not in the focused state") , Self :: FRAME_DISCARDED => Some ("a frame has been discarded from composition") , Self :: ERROR_VALIDATION_FAILURE => Some ("the function usage was invalid in some way") , Self :: ERROR_RUNTIME_FAILURE => Some ("the runtime failed to handle the function in an unexpected way that is not covered by another error result") , Self :: ERROR_OUT_OF_MEMORY => Some ("a memory allocation has failed") , Self :: ERROR_API_VERSION_UNSUPPORTED => Some ("the runtime does not support the requested API version") , Self :: ERROR_INITIALIZATION_FAILED => Some ("initialization of object could not be completed") , Self :: ERROR_FUNCTION_UNSUPPORTED => Some ("the requested function was not found or is otherwise unsupported") , Self :: ERROR_FEATURE_UNSUPPORTED => Some ("the requested feature is not supported") , Self :: ERROR_EXTENSION_NOT_PRESENT => Some ("a requested extension is not supported") , Self :: ERROR_LIMIT_REACHED => Some ("the runtime supports no more of the requested resource") , Self :: ERROR_SIZE_INSUFFICIENT => Some ("the supplied size was smaller than required") , Self :: ERROR_HANDLE_INVALID => Some ("a supplied object handle was invalid") , Self :: ERROR_INSTANCE_LOST => Some ("the XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated") , Self :: ERROR_SESSION_RUNNING => Some ("the session is already running") , Self :: ERROR_SESSION_NOT_RUNNING => Some ("the session is not yet running") , Self :: ERROR_SESSION_LOST => Some ("the XrSession was lost. It will need to be destroyed and optionally recreated") , Self :: ERROR_SYSTEM_INVALID => Some ("the provided XrSystemId was invalid") , Self :: ERROR_PATH_INVALID => Some ("the provided XrPath was not valid") , Self :: ERROR_PATH_COUNT_EXCEEDED => Some ("the maximum number of supported semantic paths has been reached") , Self :: ERROR_PATH_FORMAT_INVALID => Some ("the semantic path character format is invalid") , Self :: ERROR_PATH_UNSUPPORTED => Some ("the semantic path is unsupported") , Self :: ERROR_LAYER_INVALID => Some ("the layer was NULL or otherwise invalid") , Self :: ERROR_LAYER_LIMIT_EXCEEDED => Some ("the number of specified layers is greater than the supported number") , Self :: ERROR_SWAPCHAIN_RECT_INVALID => Some ("the image rect was negatively sized or otherwise invalid") , Self :: ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED => Some ("the image format is not supported by the runtime or platform") , Self :: ERROR_ACTION_TYPE_MISMATCH => Some ("the API used to retrieve an action's state does not match the action's type") , Self :: ERROR_SESSION_NOT_READY => Some ("the session is not in the ready state") , Self :: ERROR_SESSION_NOT_STOPPING => Some ("the session is not in the stopping state") , Self :: ERROR_TIME_INVALID => Some ("the provided XrTime was zero, negative, or out of range") , Self :: ERROR_REFERENCE_SPACE_UNSUPPORTED => Some ("the specified reference space is not supported by the runtime or system") , Self :: ERROR_FILE_ACCESS_ERROR => Some ("the file could not be accessed") , Self :: ERROR_FILE_CONTENTS_INVALID => Some ("the file's contents were invalid") , Self :: ERROR_FORM_FACTOR_UNSUPPORTED => Some ("the specified form factor is not supported by the current runtime or platform") , Self :: ERROR_FORM_FACTOR_UNAVAILABLE => Some ("the specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off") , Self :: ERROR_API_LAYER_NOT_PRESENT => Some ("a requested API layer is not present or could not be loaded") , Self :: ERROR_CALL_ORDER_INVALID => Some ("the call was made without having made a previously required call") , Self :: ERROR_GRAPHICS_DEVICE_INVALID => Some ("the given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements") , Self :: ERROR_POSE_INVALID => Some ("the supplied pose was invalid with respect to the requirements") , Self :: ERROR_INDEX_OUT_OF_RANGE => Some ("the supplied index was outside the range of valid indices") , Self :: ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED => Some ("the specified view configuration type is not supported by the runtime or platform") , Self :: ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED => Some ("the specified environment blend mode is not supported by the runtime or platform") , Self :: ERROR_NAME_DUPLICATED => Some ("the name provided was a duplicate of an already-existing resource") , Self :: ERROR_NAME_INVALID => Some ("the name provided was invalid") , Self :: ERROR_ACTIONSET_NOT_ATTACHED => Some ("a referenced action set is not attached to the session") , Self :: ERROR_ACTIONSETS_ALREADY_ATTACHED => Some ("the session already has attached action sets") , Self :: ERROR_LOCALIZED_NAME_DUPLICATED => Some ("the localized name provided was a duplicate of an already-existing resource") , Self :: ERROR_LOCALIZED_NAME_INVALID => Some ("the localized name provided was invalid") , Self :: ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING => Some ("the xrGetGraphicsRequirements* call was not made before calling xrCreateSession") , Self :: ERROR_RUNTIME_UNAVAILABLE => Some ("the loader was unable to find or load a runtime") , Self :: ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED => Some ("one or more of the extensions being enabled has dependency on extensions that are not enabled") , Self :: ERROR_PERMISSION_INSUFFICIENT => Some ("insufficient permissions. This error is included for use by vendor extensions. The precise definition of `XR_ERROR_PERMISSION_INSUFFICIENT` and actions possible by the developer or user to resolve it can vary by platform, extension or function. The developer should refer to the documentation of the function that returned the error code and extension it was defined") , Self :: ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR => Some ("xrSetAndroidApplicationThreadKHR failed as thread id is invalid") , Self :: ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR => Some ("xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority") , Self :: ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT => Some ("spatial anchor could not be created at that location") , Self :: ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT => Some ("the secondary view configuration was not enabled when creating the session") , Self :: ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT => Some ("the controller model key is invalid") , Self :: ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT => Some ("the reprojection mode is not supported") , Self :: ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT => Some ("compute new scene not completed") , Self :: ERROR_SCENE_COMPONENT_ID_INVALID_MSFT => Some ("scene component id invalid") , Self :: ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT => Some ("scene component type mismatch") , Self :: ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT => Some ("scene mesh buffer id invalid") , Self :: ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT => Some ("scene compute feature incompatible") , Self :: ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT => Some ("scene compute consistency mismatch") , Self :: ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB => Some ("the display refresh rate is not supported by the platform") , Self :: ERROR_COLOR_SPACE_UNSUPPORTED_FB => Some ("the color space is not supported by the runtime") , Self :: ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB => Some ("the component type is not supported for this space") , Self :: ERROR_SPACE_COMPONENT_NOT_ENABLED_FB => Some ("the required component is not enabled for this space") , Self :: ERROR_SPACE_COMPONENT_STATUS_PENDING_FB => Some ("a request to set the component's status is currently pending") , Self :: ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB => Some ("the component is already set to the requested value") , Self :: ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB => Some ("the object state is unexpected for the issued command") , Self :: ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB => Some ("trying to create an MR feature when one was already created and only one instance is allowed") , Self :: ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB => Some ("requested functionality requires a feature to be created first") , Self :: ERROR_NOT_PERMITTED_PASSTHROUGH_FB => Some ("requested functionality is not permitted - application is not allowed to perform the requested operation") , Self :: ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB => Some ("there were insufficient resources available to perform an operation") , Self :: ERROR_UNKNOWN_PASSTHROUGH_FB => Some ("unknown Passthrough error (no further details provided)") , Self :: ERROR_RENDER_MODEL_KEY_INVALID_FB => Some ("the model key is invalid") , Self :: RENDER_MODEL_UNAVAILABLE_FB => Some ("the model is unavailable") , Self :: ERROR_MARKER_NOT_TRACKED_VARJO => Some ("marker tracking is disabled or the specified marker is not currently tracked") , Self :: ERROR_MARKER_ID_INVALID_VARJO => Some ("the specified marker ID is not valid") , Self :: ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML => Some ("the com.magicleap.permission.MARKER_TRACKING permission was denied") , Self :: ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML => Some ("the specified marker could not be located spatially") , Self :: ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML => Some ("the marker queried does not contain data of the requested type") , Self :: ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML => Some ("createInfo contains mutually exclusive parameters, such as setting XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with XR_MARKER_TYPE_ARUCO_ML") , Self :: ERROR_MARKER_INVALID_ML => Some ("the marker id passed to the function was invalid") , Self :: ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML => Some ("the localization map being imported is not compatible with current OS or mode") , Self :: ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML => Some ("the localization map requested is not available") , Self :: ERROR_LOCALIZATION_MAP_FAIL_ML => Some ("the map localization service failed to fulfill the request, retry later") , Self :: ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML => Some ("the com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied") , Self :: ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML => Some ("the com.magicleap.permission.SPACE_MANAGER permission was denied") , Self :: ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML => Some ("the map being imported already exists in the system") , Self :: ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML => Some ("the map localization service cannot export cloud based maps") , Self :: ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT => Some ("a spatial anchor was not found associated with the spatial anchor name provided") , Self :: ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT => Some ("the spatial anchor name provided was not valid") , Self :: SCENE_MARKER_DATA_NOT_STRING_MSFT => Some ("marker does not encode a string") , Self :: ERROR_SPACE_MAPPING_INSUFFICIENT_FB => Some ("anchor import from cloud or export from device failed") , Self :: ERROR_SPACE_LOCALIZATION_FAILED_FB => Some ("anchors were downloaded from the cloud but failed to be imported/aligned on the device") , Self :: ERROR_SPACE_NETWORK_TIMEOUT_FB => Some ("timeout occurred while waiting for network request to complete") , Self :: ERROR_SPACE_NETWORK_REQUEST_FAILED_FB => Some ("the network request failed") , Self :: ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB => Some ("cloud storage is required for this operation but is currently disabled") , Self :: ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META => Some ("the provided data buffer did not match the required size") , Self :: ENVIRONMENT_DEPTH_NOT_AVAILABLE_META => Some ("warning: The requested depth image is not yet available") , Self :: ERROR_HINT_ALREADY_SET_QCOM => Some ("tracking optimization hint is already set for the domain") , Self :: ERROR_NOT_AN_ANCHOR_HTC => Some ("the provided space is valid but not an anchor") , Self :: ERROR_SPACE_NOT_LOCATABLE_EXT => Some ("the space passed to the function was not locatable") , Self :: ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT => Some ("the permission for this resource was not granted") , Self :: ERROR_FUTURE_PENDING_EXT => Some ("returned by completion function to indicate future is not ready") , Self :: ERROR_FUTURE_INVALID_EXT => Some ("returned by completion function to indicate future is not valid") , Self :: ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR => Some ("ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR") , Self :: ERROR_PERMISSION_INSUFFICIENT_KHR => Some ("ERROR_PERMISSION_INSUFFICIENT_KHR") , _ => None , } ;
1511        if let Some(reason) = reason {
1512            fmt.pad(reason)
1513        } else {
1514            write!(fmt, "unknown error (code {})", self.0)
1515        }
1516    }
1517}
1518impl std::error::Error for Result {}
1519#[doc = "Enums to track objects of various types - see [XrObjectType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrObjectType)"]
1520#[repr(transparent)]
1521#[derive(Copy, Clone, Eq, PartialEq)]
1522pub struct ObjectType(i32);
1523impl ObjectType {
1524    pub const UNKNOWN: ObjectType = Self(0i32);
1525    #[doc = "XrInstance"]
1526    pub const INSTANCE: ObjectType = Self(1i32);
1527    #[doc = "XrSession"]
1528    pub const SESSION: ObjectType = Self(2i32);
1529    #[doc = "XrSwapchain"]
1530    pub const SWAPCHAIN: ObjectType = Self(3i32);
1531    #[doc = "XrSpace"]
1532    pub const SPACE: ObjectType = Self(4i32);
1533    #[doc = "XrActionSet"]
1534    pub const ACTION_SET: ObjectType = Self(5i32);
1535    #[doc = "XrAction"]
1536    pub const ACTION: ObjectType = Self(6i32);
1537    #[doc = "XrDebugUtilsMessengerEXT"]
1538    pub const DEBUG_UTILS_MESSENGER_EXT: ObjectType = Self(1000019000i32);
1539    #[doc = "XrSpatialAnchorMSFT"]
1540    pub const SPATIAL_ANCHOR_MSFT: ObjectType = Self(1000039000i32);
1541    #[doc = "XrSpatialGraphNodeBindingMSFT"]
1542    pub const SPATIAL_GRAPH_NODE_BINDING_MSFT: ObjectType = Self(1000049000i32);
1543    #[doc = "XrHandTrackerEXT"]
1544    pub const HAND_TRACKER_EXT: ObjectType = Self(1000051000i32);
1545    #[doc = "XrBodyTrackerFB"]
1546    pub const BODY_TRACKER_FB: ObjectType = Self(1000076000i32);
1547    #[doc = "XrSceneObserverMSFT"]
1548    pub const SCENE_OBSERVER_MSFT: ObjectType = Self(1000097000i32);
1549    #[doc = "XrSceneMSFT"]
1550    pub const SCENE_MSFT: ObjectType = Self(1000097001i32);
1551    #[doc = "XrFacialTrackerHTC"]
1552    pub const FACIAL_TRACKER_HTC: ObjectType = Self(1000104000i32);
1553    #[doc = "XrFoveationProfileFB"]
1554    pub const FOVEATION_PROFILE_FB: ObjectType = Self(1000114000i32);
1555    #[doc = "XrTriangleMeshFB"]
1556    pub const TRIANGLE_MESH_FB: ObjectType = Self(1000117000i32);
1557    #[doc = "XrPassthroughFB"]
1558    pub const PASSTHROUGH_FB: ObjectType = Self(1000118000i32);
1559    #[doc = "XrPassthroughLayerFB"]
1560    pub const PASSTHROUGH_LAYER_FB: ObjectType = Self(1000118002i32);
1561    #[doc = "XrGeometryInstanceFB"]
1562    pub const GEOMETRY_INSTANCE_FB: ObjectType = Self(1000118004i32);
1563    #[doc = "XrMarkerDetectorML"]
1564    pub const MARKER_DETECTOR_ML: ObjectType = Self(1000138000i32);
1565    #[doc = "XrExportedLocalizationMapML"]
1566    pub const EXPORTED_LOCALIZATION_MAP_ML: ObjectType = Self(1000139000i32);
1567    #[doc = "XrSpatialAnchorStoreConnectionMSFT"]
1568    pub const SPATIAL_ANCHOR_STORE_CONNECTION_MSFT: ObjectType = Self(1000142000i32);
1569    #[doc = "XrFaceTrackerFB"]
1570    pub const FACE_TRACKER_FB: ObjectType = Self(1000201000i32);
1571    #[doc = "XrEyeTrackerFB"]
1572    pub const EYE_TRACKER_FB: ObjectType = Self(1000202000i32);
1573    #[doc = "XrVirtualKeyboardMETA"]
1574    pub const VIRTUAL_KEYBOARD_META: ObjectType = Self(1000219000i32);
1575    #[doc = "XrSpaceUserFB"]
1576    pub const SPACE_USER_FB: ObjectType = Self(1000241000i32);
1577    #[doc = "XrPassthroughColorLutMETA"]
1578    pub const PASSTHROUGH_COLOR_LUT_META: ObjectType = Self(1000266000i32);
1579    #[doc = "XrFaceTracker2FB"]
1580    pub const FACE_TRACKER2_FB: ObjectType = Self(1000287012i32);
1581    #[doc = "XrEnvironmentDepthProviderMETA"]
1582    pub const ENVIRONMENT_DEPTH_PROVIDER_META: ObjectType = Self(1000291000i32);
1583    #[doc = "XrEnvironmentDepthSwapchainMETA"]
1584    pub const ENVIRONMENT_DEPTH_SWAPCHAIN_META: ObjectType = Self(1000291001i32);
1585    #[doc = "XrPassthroughHTC"]
1586    pub const PASSTHROUGH_HTC: ObjectType = Self(1000317000i32);
1587    #[doc = "XrPlaneDetectorEXT"]
1588    pub const PLANE_DETECTOR_EXT: ObjectType = Self(1000429000i32);
1589    pub fn from_raw(x: i32) -> Self {
1590        Self(x)
1591    }
1592    pub fn into_raw(self) -> i32 {
1593        self.0
1594    }
1595}
1596impl fmt::Debug for ObjectType {
1597    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1598        let name = match *self {
1599            Self::UNKNOWN => Some("UNKNOWN"),
1600            Self::INSTANCE => Some("INSTANCE"),
1601            Self::SESSION => Some("SESSION"),
1602            Self::SWAPCHAIN => Some("SWAPCHAIN"),
1603            Self::SPACE => Some("SPACE"),
1604            Self::ACTION_SET => Some("ACTION_SET"),
1605            Self::ACTION => Some("ACTION"),
1606            Self::DEBUG_UTILS_MESSENGER_EXT => Some("DEBUG_UTILS_MESSENGER_EXT"),
1607            Self::SPATIAL_ANCHOR_MSFT => Some("SPATIAL_ANCHOR_MSFT"),
1608            Self::SPATIAL_GRAPH_NODE_BINDING_MSFT => Some("SPATIAL_GRAPH_NODE_BINDING_MSFT"),
1609            Self::HAND_TRACKER_EXT => Some("HAND_TRACKER_EXT"),
1610            Self::BODY_TRACKER_FB => Some("BODY_TRACKER_FB"),
1611            Self::SCENE_OBSERVER_MSFT => Some("SCENE_OBSERVER_MSFT"),
1612            Self::SCENE_MSFT => Some("SCENE_MSFT"),
1613            Self::FACIAL_TRACKER_HTC => Some("FACIAL_TRACKER_HTC"),
1614            Self::FOVEATION_PROFILE_FB => Some("FOVEATION_PROFILE_FB"),
1615            Self::TRIANGLE_MESH_FB => Some("TRIANGLE_MESH_FB"),
1616            Self::PASSTHROUGH_FB => Some("PASSTHROUGH_FB"),
1617            Self::PASSTHROUGH_LAYER_FB => Some("PASSTHROUGH_LAYER_FB"),
1618            Self::GEOMETRY_INSTANCE_FB => Some("GEOMETRY_INSTANCE_FB"),
1619            Self::MARKER_DETECTOR_ML => Some("MARKER_DETECTOR_ML"),
1620            Self::EXPORTED_LOCALIZATION_MAP_ML => Some("EXPORTED_LOCALIZATION_MAP_ML"),
1621            Self::SPATIAL_ANCHOR_STORE_CONNECTION_MSFT => {
1622                Some("SPATIAL_ANCHOR_STORE_CONNECTION_MSFT")
1623            }
1624            Self::FACE_TRACKER_FB => Some("FACE_TRACKER_FB"),
1625            Self::EYE_TRACKER_FB => Some("EYE_TRACKER_FB"),
1626            Self::VIRTUAL_KEYBOARD_META => Some("VIRTUAL_KEYBOARD_META"),
1627            Self::SPACE_USER_FB => Some("SPACE_USER_FB"),
1628            Self::PASSTHROUGH_COLOR_LUT_META => Some("PASSTHROUGH_COLOR_LUT_META"),
1629            Self::FACE_TRACKER2_FB => Some("FACE_TRACKER2_FB"),
1630            Self::ENVIRONMENT_DEPTH_PROVIDER_META => Some("ENVIRONMENT_DEPTH_PROVIDER_META"),
1631            Self::ENVIRONMENT_DEPTH_SWAPCHAIN_META => Some("ENVIRONMENT_DEPTH_SWAPCHAIN_META"),
1632            Self::PASSTHROUGH_HTC => Some("PASSTHROUGH_HTC"),
1633            Self::PLANE_DETECTOR_EXT => Some("PLANE_DETECTOR_EXT"),
1634            _ => None,
1635        };
1636        fmt_enum(fmt, self.0, name)
1637    }
1638}
1639#[doc = "Android Thread Types - see [XrAndroidThreadTypeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidThreadTypeKHR)"]
1640#[repr(transparent)]
1641#[derive(Copy, Clone, Eq, PartialEq)]
1642pub struct AndroidThreadTypeKHR(i32);
1643impl AndroidThreadTypeKHR {
1644    pub const APPLICATION_MAIN: AndroidThreadTypeKHR = Self(1i32);
1645    pub const APPLICATION_WORKER: AndroidThreadTypeKHR = Self(2i32);
1646    pub const RENDERER_MAIN: AndroidThreadTypeKHR = Self(3i32);
1647    pub const RENDERER_WORKER: AndroidThreadTypeKHR = Self(4i32);
1648    pub fn from_raw(x: i32) -> Self {
1649        Self(x)
1650    }
1651    pub fn into_raw(self) -> i32 {
1652        self.0
1653    }
1654}
1655impl fmt::Debug for AndroidThreadTypeKHR {
1656    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1657        let name = match *self {
1658            Self::APPLICATION_MAIN => Some("APPLICATION_MAIN"),
1659            Self::APPLICATION_WORKER => Some("APPLICATION_WORKER"),
1660            Self::RENDERER_MAIN => Some("RENDERER_MAIN"),
1661            Self::RENDERER_WORKER => Some("RENDERER_WORKER"),
1662            _ => None,
1663        };
1664        fmt_enum(fmt, self.0, name)
1665    }
1666}
1667#[doc = "eye visibility selector - see [XrEyeVisibility](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeVisibility)"]
1668#[repr(transparent)]
1669#[derive(Copy, Clone, Eq, PartialEq)]
1670pub struct EyeVisibility(i32);
1671impl EyeVisibility {
1672    #[doc = "Display in both eyes."]
1673    pub const BOTH: EyeVisibility = Self(0i32);
1674    #[doc = "Display in the left eye only."]
1675    pub const LEFT: EyeVisibility = Self(1i32);
1676    #[doc = "Display in the right eye only."]
1677    pub const RIGHT: EyeVisibility = Self(2i32);
1678    pub fn from_raw(x: i32) -> Self {
1679        Self(x)
1680    }
1681    pub fn into_raw(self) -> i32 {
1682        self.0
1683    }
1684}
1685impl fmt::Debug for EyeVisibility {
1686    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1687        let name = match *self {
1688            Self::BOTH => Some("BOTH"),
1689            Self::LEFT => Some("LEFT"),
1690            Self::RIGHT => Some("RIGHT"),
1691            _ => None,
1692        };
1693        fmt_enum(fmt, self.0, name)
1694    }
1695}
1696#[doc = "See [XrActionType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionType)"]
1697#[repr(transparent)]
1698#[derive(Copy, Clone, Eq, PartialEq)]
1699pub struct ActionType(i32);
1700impl ActionType {
1701    pub const BOOLEAN_INPUT: ActionType = Self(1i32);
1702    pub const FLOAT_INPUT: ActionType = Self(2i32);
1703    pub const VECTOR2F_INPUT: ActionType = Self(3i32);
1704    pub const POSE_INPUT: ActionType = Self(4i32);
1705    pub const VIBRATION_OUTPUT: ActionType = Self(100i32);
1706    pub fn from_raw(x: i32) -> Self {
1707        Self(x)
1708    }
1709    pub fn into_raw(self) -> i32 {
1710        self.0
1711    }
1712}
1713impl fmt::Debug for ActionType {
1714    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1715        let name = match *self {
1716            Self::BOOLEAN_INPUT => Some("BOOLEAN_INPUT"),
1717            Self::FLOAT_INPUT => Some("FLOAT_INPUT"),
1718            Self::VECTOR2F_INPUT => Some("VECTOR2F_INPUT"),
1719            Self::POSE_INPUT => Some("POSE_INPUT"),
1720            Self::VIBRATION_OUTPUT => Some("VIBRATION_OUTPUT"),
1721            _ => None,
1722        };
1723        fmt_enum(fmt, self.0, name)
1724    }
1725}
1726#[doc = "See [XrReferenceSpaceType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReferenceSpaceType)"]
1727#[repr(transparent)]
1728#[derive(Copy, Clone, Eq, PartialEq)]
1729pub struct ReferenceSpaceType(i32);
1730impl ReferenceSpaceType {
1731    pub const VIEW: ReferenceSpaceType = Self(1i32);
1732    pub const LOCAL: ReferenceSpaceType = Self(2i32);
1733    pub const STAGE: ReferenceSpaceType = Self(3i32);
1734    pub const LOCAL_FLOOR: ReferenceSpaceType = Self(1000426000i32);
1735    pub const UNBOUNDED_MSFT: ReferenceSpaceType = Self(1000038000i32);
1736    pub const COMBINED_EYE_VARJO: ReferenceSpaceType = Self(1000121000i32);
1737    pub const LOCALIZATION_MAP_ML: ReferenceSpaceType = Self(1000139000i32);
1738    pub const LOCAL_FLOOR_EXT: ReferenceSpaceType = Self::LOCAL_FLOOR;
1739    pub fn from_raw(x: i32) -> Self {
1740        Self(x)
1741    }
1742    pub fn into_raw(self) -> i32 {
1743        self.0
1744    }
1745}
1746impl fmt::Debug for ReferenceSpaceType {
1747    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1748        let name = match *self {
1749            Self::VIEW => Some("VIEW"),
1750            Self::LOCAL => Some("LOCAL"),
1751            Self::STAGE => Some("STAGE"),
1752            Self::LOCAL_FLOOR => Some("LOCAL_FLOOR"),
1753            Self::UNBOUNDED_MSFT => Some("UNBOUNDED_MSFT"),
1754            Self::COMBINED_EYE_VARJO => Some("COMBINED_EYE_VARJO"),
1755            Self::LOCALIZATION_MAP_ML => Some("LOCALIZATION_MAP_ML"),
1756            _ => None,
1757        };
1758        fmt_enum(fmt, self.0, name)
1759    }
1760}
1761#[doc = "See [XrFormFactor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFormFactor)"]
1762#[repr(transparent)]
1763#[derive(Copy, Clone, Eq, PartialEq)]
1764pub struct FormFactor(i32);
1765impl FormFactor {
1766    pub const HEAD_MOUNTED_DISPLAY: FormFactor = Self(1i32);
1767    pub const HANDHELD_DISPLAY: FormFactor = Self(2i32);
1768    pub fn from_raw(x: i32) -> Self {
1769        Self(x)
1770    }
1771    pub fn into_raw(self) -> i32 {
1772        self.0
1773    }
1774}
1775impl fmt::Debug for FormFactor {
1776    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1777        let name = match *self {
1778            Self::HEAD_MOUNTED_DISPLAY => Some("HEAD_MOUNTED_DISPLAY"),
1779            Self::HANDHELD_DISPLAY => Some("HANDHELD_DISPLAY"),
1780            _ => None,
1781        };
1782        fmt_enum(fmt, self.0, name)
1783    }
1784}
1785#[doc = "See [XrViewConfigurationType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationType)"]
1786#[repr(transparent)]
1787#[derive(Copy, Clone, Eq, PartialEq)]
1788pub struct ViewConfigurationType(i32);
1789impl ViewConfigurationType {
1790    pub const PRIMARY_MONO: ViewConfigurationType = Self(1i32);
1791    pub const PRIMARY_STEREO: ViewConfigurationType = Self(2i32);
1792    pub const PRIMARY_STEREO_WITH_FOVEATED_INSET: ViewConfigurationType = Self(1000037000i32);
1793    pub const PRIMARY_QUAD_VARJO: ViewConfigurationType = Self::PRIMARY_STEREO_WITH_FOVEATED_INSET;
1794    pub const SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT: ViewConfigurationType =
1795        Self(1000054000i32);
1796    pub fn from_raw(x: i32) -> Self {
1797        Self(x)
1798    }
1799    pub fn into_raw(self) -> i32 {
1800        self.0
1801    }
1802}
1803impl fmt::Debug for ViewConfigurationType {
1804    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1805        let name = match *self {
1806            Self::PRIMARY_MONO => Some("PRIMARY_MONO"),
1807            Self::PRIMARY_STEREO => Some("PRIMARY_STEREO"),
1808            Self::PRIMARY_STEREO_WITH_FOVEATED_INSET => Some("PRIMARY_STEREO_WITH_FOVEATED_INSET"),
1809            Self::SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT => {
1810                Some("SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT")
1811            }
1812            _ => None,
1813        };
1814        fmt_enum(fmt, self.0, name)
1815    }
1816}
1817#[doc = "See [XrEnvironmentBlendMode](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentBlendMode)"]
1818#[repr(transparent)]
1819#[derive(Copy, Clone, Eq, PartialEq)]
1820pub struct EnvironmentBlendMode(i32);
1821impl EnvironmentBlendMode {
1822    pub const OPAQUE: EnvironmentBlendMode = Self(1i32);
1823    pub const ADDITIVE: EnvironmentBlendMode = Self(2i32);
1824    pub const ALPHA_BLEND: EnvironmentBlendMode = Self(3i32);
1825    pub fn from_raw(x: i32) -> Self {
1826        Self(x)
1827    }
1828    pub fn into_raw(self) -> i32 {
1829        self.0
1830    }
1831}
1832impl fmt::Debug for EnvironmentBlendMode {
1833    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1834        let name = match *self {
1835            Self::OPAQUE => Some("OPAQUE"),
1836            Self::ADDITIVE => Some("ADDITIVE"),
1837            Self::ALPHA_BLEND => Some("ALPHA_BLEND"),
1838            _ => None,
1839        };
1840        fmt_enum(fmt, self.0, name)
1841    }
1842}
1843#[doc = "See [XrSessionState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionState)"]
1844#[repr(transparent)]
1845#[derive(Copy, Clone, Eq, PartialEq)]
1846pub struct SessionState(i32);
1847impl SessionState {
1848    pub const UNKNOWN: SessionState = Self(0i32);
1849    pub const IDLE: SessionState = Self(1i32);
1850    pub const READY: SessionState = Self(2i32);
1851    pub const SYNCHRONIZED: SessionState = Self(3i32);
1852    pub const VISIBLE: SessionState = Self(4i32);
1853    pub const FOCUSED: SessionState = Self(5i32);
1854    pub const STOPPING: SessionState = Self(6i32);
1855    pub const LOSS_PENDING: SessionState = Self(7i32);
1856    pub const EXITING: SessionState = Self(8i32);
1857    pub fn from_raw(x: i32) -> Self {
1858        Self(x)
1859    }
1860    pub fn into_raw(self) -> i32 {
1861        self.0
1862    }
1863}
1864impl fmt::Debug for SessionState {
1865    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1866        let name = match *self {
1867            Self::UNKNOWN => Some("UNKNOWN"),
1868            Self::IDLE => Some("IDLE"),
1869            Self::READY => Some("READY"),
1870            Self::SYNCHRONIZED => Some("SYNCHRONIZED"),
1871            Self::VISIBLE => Some("VISIBLE"),
1872            Self::FOCUSED => Some("FOCUSED"),
1873            Self::STOPPING => Some("STOPPING"),
1874            Self::LOSS_PENDING => Some("LOSS_PENDING"),
1875            Self::EXITING => Some("EXITING"),
1876            _ => None,
1877        };
1878        fmt_enum(fmt, self.0, name)
1879    }
1880}
1881#[doc = "See [XrPerfSettingsDomainEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsDomainEXT)"]
1882#[repr(transparent)]
1883#[derive(Copy, Clone, Eq, PartialEq)]
1884pub struct PerfSettingsDomainEXT(i32);
1885impl PerfSettingsDomainEXT {
1886    #[doc = "Indicates that the performance settings or notification applies to CPU domain"]
1887    pub const CPU: PerfSettingsDomainEXT = Self(1i32);
1888    #[doc = "Indicates that the performance settings or notification applies to GPU domain"]
1889    pub const GPU: PerfSettingsDomainEXT = Self(2i32);
1890    pub fn from_raw(x: i32) -> Self {
1891        Self(x)
1892    }
1893    pub fn into_raw(self) -> i32 {
1894        self.0
1895    }
1896}
1897impl fmt::Debug for PerfSettingsDomainEXT {
1898    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1899        let name = match *self {
1900            Self::CPU => Some("CPU"),
1901            Self::GPU => Some("GPU"),
1902            _ => None,
1903        };
1904        fmt_enum(fmt, self.0, name)
1905    }
1906}
1907#[doc = "See [XrPerfSettingsSubDomainEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsSubDomainEXT)"]
1908#[repr(transparent)]
1909#[derive(Copy, Clone, Eq, PartialEq)]
1910pub struct PerfSettingsSubDomainEXT(i32);
1911impl PerfSettingsSubDomainEXT {
1912    #[doc = "Indicates that the performance notification originates from the COMPOSITING sub-domain"]
1913    pub const COMPOSITING: PerfSettingsSubDomainEXT = Self(1i32);
1914    #[doc = "Indicates that the performance notification originates from the RENDERING sub-domain"]
1915    pub const RENDERING: PerfSettingsSubDomainEXT = Self(2i32);
1916    #[doc = "Indicates that the performance notification originates from the THERMAL sub-domain"]
1917    pub const THERMAL: PerfSettingsSubDomainEXT = Self(3i32);
1918    pub fn from_raw(x: i32) -> Self {
1919        Self(x)
1920    }
1921    pub fn into_raw(self) -> i32 {
1922        self.0
1923    }
1924}
1925impl fmt::Debug for PerfSettingsSubDomainEXT {
1926    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1927        let name = match *self {
1928            Self::COMPOSITING => Some("COMPOSITING"),
1929            Self::RENDERING => Some("RENDERING"),
1930            Self::THERMAL => Some("THERMAL"),
1931            _ => None,
1932        };
1933        fmt_enum(fmt, self.0, name)
1934    }
1935}
1936#[doc = "See [XrPerfSettingsLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsLevelEXT)"]
1937#[repr(transparent)]
1938#[derive(Copy, Clone, Eq, PartialEq)]
1939pub struct PerfSettingsLevelEXT(i32);
1940impl PerfSettingsLevelEXT {
1941    #[doc = "Performance settings hint used by the application to indicate that it enters a non-XR section (head-locked / static screen), during which power savings are to be prioritized"]
1942    pub const POWER_SAVINGS: PerfSettingsLevelEXT = Self(0i32);
1943    #[doc = "Performance settings hint used by the application to indicate that it enters a low and stable complexity section, during which reducing power is more important than occasional late rendering frames"]
1944    pub const SUSTAINED_LOW: PerfSettingsLevelEXT = Self(25i32);
1945    #[doc = "Performance settings hint used by the application to indicate that it enters a high or dynamic complexity section, during which the XR Runtime strives for consistent XR compositing and frame rendering within a thermally sustainable range"]
1946    pub const SUSTAINED_HIGH: PerfSettingsLevelEXT = Self(50i32);
1947    #[doc = "Performance settings hint used by the application to indicate that the application enters a section with very high complexity, during which the XR Runtime is allowed to step up beyond the thermally sustainable range"]
1948    pub const BOOST: PerfSettingsLevelEXT = Self(75i32);
1949    pub fn from_raw(x: i32) -> Self {
1950        Self(x)
1951    }
1952    pub fn into_raw(self) -> i32 {
1953        self.0
1954    }
1955}
1956impl fmt::Debug for PerfSettingsLevelEXT {
1957    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1958        let name = match *self {
1959            Self::POWER_SAVINGS => Some("POWER_SAVINGS"),
1960            Self::SUSTAINED_LOW => Some("SUSTAINED_LOW"),
1961            Self::SUSTAINED_HIGH => Some("SUSTAINED_HIGH"),
1962            Self::BOOST => Some("BOOST"),
1963            _ => None,
1964        };
1965        fmt_enum(fmt, self.0, name)
1966    }
1967}
1968#[doc = "See [XrPerfSettingsNotificationLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsNotificationLevelEXT)"]
1969#[repr(transparent)]
1970#[derive(Copy, Clone, Eq, PartialEq)]
1971pub struct PerfSettingsNotificationLevelEXT(i32);
1972impl PerfSettingsNotificationLevelEXT {
1973    #[doc = "Notifies that the sub-domain has reached a level where no further actions other than currently applied are necessary"]
1974    pub const NORMAL: PerfSettingsNotificationLevelEXT = Self(0i32);
1975    #[doc = "Notifies that the sub-domain has reached an early warning level where the application should start proactive mitigation actions with the goal to return to the XR_PERF_NOTIF_LEVEL_NORMAL level"]
1976    pub const WARNING: PerfSettingsNotificationLevelEXT = Self(25i32);
1977    #[doc = "Notifies that the sub-domain has reached a critical level with significant performance degradation. The application should take drastic mitigation action"]
1978    pub const IMPAIRED: PerfSettingsNotificationLevelEXT = Self(75i32);
1979    pub fn from_raw(x: i32) -> Self {
1980        Self(x)
1981    }
1982    pub fn into_raw(self) -> i32 {
1983        self.0
1984    }
1985}
1986impl fmt::Debug for PerfSettingsNotificationLevelEXT {
1987    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1988        let name = match *self {
1989            Self::NORMAL => Some("NORMAL"),
1990            Self::WARNING => Some("WARNING"),
1991            Self::IMPAIRED => Some("IMPAIRED"),
1992            _ => None,
1993        };
1994        fmt_enum(fmt, self.0, name)
1995    }
1996}
1997#[doc = "See [XrVisibilityMaskTypeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVisibilityMaskTypeKHR)"]
1998#[repr(transparent)]
1999#[derive(Copy, Clone, Eq, PartialEq)]
2000pub struct VisibilityMaskTypeKHR(i32);
2001impl VisibilityMaskTypeKHR {
2002    #[doc = "exclusive mesh; indicates that which the viewer cannot see."]
2003    pub const HIDDEN_TRIANGLE_MESH: VisibilityMaskTypeKHR = Self(1i32);
2004    #[doc = "inclusive mesh; indicates strictly that which the viewer can see."]
2005    pub const VISIBLE_TRIANGLE_MESH: VisibilityMaskTypeKHR = Self(2i32);
2006    #[doc = "line loop; traces the outline of the area the viewer can see."]
2007    pub const LINE_LOOP: VisibilityMaskTypeKHR = Self(3i32);
2008    pub fn from_raw(x: i32) -> Self {
2009        Self(x)
2010    }
2011    pub fn into_raw(self) -> i32 {
2012        self.0
2013    }
2014}
2015impl fmt::Debug for VisibilityMaskTypeKHR {
2016    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2017        let name = match *self {
2018            Self::HIDDEN_TRIANGLE_MESH => Some("HIDDEN_TRIANGLE_MESH"),
2019            Self::VISIBLE_TRIANGLE_MESH => Some("VISIBLE_TRIANGLE_MESH"),
2020            Self::LINE_LOOP => Some("LINE_LOOP"),
2021            _ => None,
2022        };
2023        fmt_enum(fmt, self.0, name)
2024    }
2025}
2026#[doc = "See [XrSpatialGraphNodeTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeTypeMSFT)"]
2027#[repr(transparent)]
2028#[derive(Copy, Clone, Eq, PartialEq)]
2029pub struct SpatialGraphNodeTypeMSFT(i32);
2030impl SpatialGraphNodeTypeMSFT {
2031    pub const STATIC: SpatialGraphNodeTypeMSFT = Self(1i32);
2032    pub const DYNAMIC: SpatialGraphNodeTypeMSFT = Self(2i32);
2033    pub fn from_raw(x: i32) -> Self {
2034        Self(x)
2035    }
2036    pub fn into_raw(self) -> i32 {
2037        self.0
2038    }
2039}
2040impl fmt::Debug for SpatialGraphNodeTypeMSFT {
2041    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2042        let name = match *self {
2043            Self::STATIC => Some("STATIC"),
2044            Self::DYNAMIC => Some("DYNAMIC"),
2045            _ => None,
2046        };
2047        fmt_enum(fmt, self.0, name)
2048    }
2049}
2050#[doc = "See [XrBlendFactorFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBlendFactorFB)"]
2051#[repr(transparent)]
2052#[derive(Copy, Clone, Eq, PartialEq)]
2053pub struct BlendFactorFB(i32);
2054impl BlendFactorFB {
2055    pub const ZERO: BlendFactorFB = Self(0i32);
2056    pub const ONE: BlendFactorFB = Self(1i32);
2057    pub const SRC_ALPHA: BlendFactorFB = Self(2i32);
2058    pub const ONE_MINUS_SRC_ALPHA: BlendFactorFB = Self(3i32);
2059    pub const DST_ALPHA: BlendFactorFB = Self(4i32);
2060    pub const ONE_MINUS_DST_ALPHA: BlendFactorFB = Self(5i32);
2061    pub fn from_raw(x: i32) -> Self {
2062        Self(x)
2063    }
2064    pub fn into_raw(self) -> i32 {
2065        self.0
2066    }
2067}
2068impl fmt::Debug for BlendFactorFB {
2069    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2070        let name = match *self {
2071            Self::ZERO => Some("ZERO"),
2072            Self::ONE => Some("ONE"),
2073            Self::SRC_ALPHA => Some("SRC_ALPHA"),
2074            Self::ONE_MINUS_SRC_ALPHA => Some("ONE_MINUS_SRC_ALPHA"),
2075            Self::DST_ALPHA => Some("DST_ALPHA"),
2076            Self::ONE_MINUS_DST_ALPHA => Some("ONE_MINUS_DST_ALPHA"),
2077            _ => None,
2078        };
2079        fmt_enum(fmt, self.0, name)
2080    }
2081}
2082#[doc = "See [XrSpaceComponentTypeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentTypeFB)"]
2083#[repr(transparent)]
2084#[derive(Copy, Clone, Eq, PartialEq)]
2085pub struct SpaceComponentTypeFB(i32);
2086impl SpaceComponentTypeFB {
2087    #[doc = "Enables tracking the 6 DOF pose of the XrSpace with xrLocateSpace."]
2088    pub const LOCATABLE: SpaceComponentTypeFB = Self(0i32);
2089    #[doc = "Enables persistence operations: save and erase."]
2090    pub const STORABLE: SpaceComponentTypeFB = Self(1i32);
2091    #[doc = "Enables sharing of spatial entities."]
2092    pub const SHARABLE: SpaceComponentTypeFB = Self(2i32);
2093    #[doc = "Bounded 2D component."]
2094    pub const BOUNDED_2D: SpaceComponentTypeFB = Self(3i32);
2095    #[doc = "Bounded 3D component."]
2096    pub const BOUNDED_3D: SpaceComponentTypeFB = Self(4i32);
2097    #[doc = "Semantic labels component."]
2098    pub const SEMANTIC_LABELS: SpaceComponentTypeFB = Self(5i32);
2099    #[doc = "Room layout component."]
2100    pub const ROOM_LAYOUT: SpaceComponentTypeFB = Self(6i32);
2101    #[doc = "Space container component."]
2102    pub const SPACE_CONTAINER: SpaceComponentTypeFB = Self(7i32);
2103    pub const TRIANGLE_MESH_M: SpaceComponentTypeFB = Self(1000269000i32);
2104    pub fn from_raw(x: i32) -> Self {
2105        Self(x)
2106    }
2107    pub fn into_raw(self) -> i32 {
2108        self.0
2109    }
2110}
2111impl fmt::Debug for SpaceComponentTypeFB {
2112    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2113        let name = match *self {
2114            Self::LOCATABLE => Some("LOCATABLE"),
2115            Self::STORABLE => Some("STORABLE"),
2116            Self::SHARABLE => Some("SHARABLE"),
2117            Self::BOUNDED_2D => Some("BOUNDED_2D"),
2118            Self::BOUNDED_3D => Some("BOUNDED_3D"),
2119            Self::SEMANTIC_LABELS => Some("SEMANTIC_LABELS"),
2120            Self::ROOM_LAYOUT => Some("ROOM_LAYOUT"),
2121            Self::SPACE_CONTAINER => Some("SPACE_CONTAINER"),
2122            Self::TRIANGLE_MESH_M => Some("TRIANGLE_MESH_M"),
2123            _ => None,
2124        };
2125        fmt_enum(fmt, self.0, name)
2126    }
2127}
2128#[doc = "See [XrWindingOrderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrWindingOrderFB)"]
2129#[repr(transparent)]
2130#[derive(Copy, Clone, Eq, PartialEq)]
2131pub struct WindingOrderFB(i32);
2132impl WindingOrderFB {
2133    #[doc = "Winding order is unknown and the runtime cannot make any assumptions on the triangle orientation"]
2134    pub const UNKNOWN: WindingOrderFB = Self(0i32);
2135    #[doc = "Clockwise winding order"]
2136    pub const CW: WindingOrderFB = Self(1i32);
2137    #[doc = "Counter-clockwise winding order"]
2138    pub const CCW: WindingOrderFB = Self(2i32);
2139    pub fn from_raw(x: i32) -> Self {
2140        Self(x)
2141    }
2142    pub fn into_raw(self) -> i32 {
2143        self.0
2144    }
2145}
2146impl fmt::Debug for WindingOrderFB {
2147    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2148        let name = match *self {
2149            Self::UNKNOWN => Some("UNKNOWN"),
2150            Self::CW => Some("CW"),
2151            Self::CCW => Some("CCW"),
2152            _ => None,
2153        };
2154        fmt_enum(fmt, self.0, name)
2155    }
2156}
2157#[doc = "See [XrPassthroughLayerPurposeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerPurposeFB)"]
2158#[repr(transparent)]
2159#[derive(Copy, Clone, Eq, PartialEq)]
2160pub struct PassthroughLayerPurposeFB(i32);
2161impl PassthroughLayerPurposeFB {
2162    #[doc = "Reconstruction passthrough (full screen environment)"]
2163    pub const RECONSTRUCTION: PassthroughLayerPurposeFB = Self(0i32);
2164    #[doc = "Projected passthrough (using a custom surface)"]
2165    pub const PROJECTED: PassthroughLayerPurposeFB = Self(1i32);
2166    #[doc = "Passthrough layer purpose for keyboard hands presence."]
2167    pub const TRACKED_KEYBOARD_HANDS: PassthroughLayerPurposeFB = Self(1000203001i32);
2168    #[doc = "Passthrough layer purpose for keyboard hands presence with keyboard masked hand transitions (i.e passthrough hands rendered only when they are over the keyboard)."]
2169    pub const TRACKED_KEYBOARD_MASKED_HANDS: PassthroughLayerPurposeFB = Self(1000203002i32);
2170    pub fn from_raw(x: i32) -> Self {
2171        Self(x)
2172    }
2173    pub fn into_raw(self) -> i32 {
2174        self.0
2175    }
2176}
2177impl fmt::Debug for PassthroughLayerPurposeFB {
2178    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2179        let name = match *self {
2180            Self::RECONSTRUCTION => Some("RECONSTRUCTION"),
2181            Self::PROJECTED => Some("PROJECTED"),
2182            Self::TRACKED_KEYBOARD_HANDS => Some("TRACKED_KEYBOARD_HANDS"),
2183            Self::TRACKED_KEYBOARD_MASKED_HANDS => Some("TRACKED_KEYBOARD_MASKED_HANDS"),
2184            _ => None,
2185        };
2186        fmt_enum(fmt, self.0, name)
2187    }
2188}
2189#[doc = "See [XrSpaceQueryActionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryActionFB)"]
2190#[repr(transparent)]
2191#[derive(Copy, Clone, Eq, PartialEq)]
2192pub struct SpaceQueryActionFB(i32);
2193impl SpaceQueryActionFB {
2194    #[doc = "Tells the query to perform a load operation on any XrSpace returned by the query."]
2195    pub const LOAD: SpaceQueryActionFB = Self(0i32);
2196    pub fn from_raw(x: i32) -> Self {
2197        Self(x)
2198    }
2199    pub fn into_raw(self) -> i32 {
2200        self.0
2201    }
2202}
2203impl fmt::Debug for SpaceQueryActionFB {
2204    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2205        let name = match *self {
2206            Self::LOAD => Some("LOAD"),
2207            _ => None,
2208        };
2209        fmt_enum(fmt, self.0, name)
2210    }
2211}
2212#[doc = "See [XrSpaceStorageLocationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceStorageLocationFB)"]
2213#[repr(transparent)]
2214#[derive(Copy, Clone, Eq, PartialEq)]
2215pub struct SpaceStorageLocationFB(i32);
2216impl SpaceStorageLocationFB {
2217    #[doc = "Invalid storage location"]
2218    pub const INVALID: SpaceStorageLocationFB = Self(0i32);
2219    #[doc = "Local device storage"]
2220    pub const LOCAL: SpaceStorageLocationFB = Self(1i32);
2221    #[doc = "Cloud storage"]
2222    pub const CLOUD: SpaceStorageLocationFB = Self(2i32);
2223    pub fn from_raw(x: i32) -> Self {
2224        Self(x)
2225    }
2226    pub fn into_raw(self) -> i32 {
2227        self.0
2228    }
2229}
2230impl fmt::Debug for SpaceStorageLocationFB {
2231    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2232        let name = match *self {
2233            Self::INVALID => Some("INVALID"),
2234            Self::LOCAL => Some("LOCAL"),
2235            Self::CLOUD => Some("CLOUD"),
2236            _ => None,
2237        };
2238        fmt_enum(fmt, self.0, name)
2239    }
2240}
2241#[doc = "See [XrSpacePersistenceModeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpacePersistenceModeFB)"]
2242#[repr(transparent)]
2243#[derive(Copy, Clone, Eq, PartialEq)]
2244pub struct SpacePersistenceModeFB(i32);
2245impl SpacePersistenceModeFB {
2246    #[doc = "Invalid storage persistence"]
2247    pub const INVALID: SpacePersistenceModeFB = Self(0i32);
2248    #[doc = "Store XrSpace indefinitely, or until erased"]
2249    pub const INDEFINITE: SpacePersistenceModeFB = Self(1i32);
2250    pub fn from_raw(x: i32) -> Self {
2251        Self(x)
2252    }
2253    pub fn into_raw(self) -> i32 {
2254        self.0
2255    }
2256}
2257impl fmt::Debug for SpacePersistenceModeFB {
2258    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2259        let name = match *self {
2260            Self::INVALID => Some("INVALID"),
2261            Self::INDEFINITE => Some("INDEFINITE"),
2262            _ => None,
2263        };
2264        fmt_enum(fmt, self.0, name)
2265    }
2266}
2267#[doc = "See [XrExternalCameraAttachedToDeviceOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraAttachedToDeviceOCULUS)"]
2268#[repr(transparent)]
2269#[derive(Copy, Clone, Eq, PartialEq)]
2270pub struct ExternalCameraAttachedToDeviceOCULUS(i32);
2271impl ExternalCameraAttachedToDeviceOCULUS {
2272    #[doc = "External camera is at a fixed point in LOCAL space"]
2273    pub const NONE: ExternalCameraAttachedToDeviceOCULUS = Self(0i32);
2274    #[doc = "External camera is attached to the HMD"]
2275    pub const HMD: ExternalCameraAttachedToDeviceOCULUS = Self(1i32);
2276    #[doc = "External camera is attached to a left Touch controller"]
2277    pub const LTOUCH: ExternalCameraAttachedToDeviceOCULUS = Self(2i32);
2278    #[doc = "External camera is attached to a right Touch controller"]
2279    pub const RTOUCH: ExternalCameraAttachedToDeviceOCULUS = Self(3i32);
2280    pub fn from_raw(x: i32) -> Self {
2281        Self(x)
2282    }
2283    pub fn into_raw(self) -> i32 {
2284        self.0
2285    }
2286}
2287impl fmt::Debug for ExternalCameraAttachedToDeviceOCULUS {
2288    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2289        let name = match *self {
2290            Self::NONE => Some("NONE"),
2291            Self::HMD => Some("HMD"),
2292            Self::LTOUCH => Some("LTOUCH"),
2293            Self::RTOUCH => Some("RTOUCH"),
2294            _ => None,
2295        };
2296        fmt_enum(fmt, self.0, name)
2297    }
2298}
2299#[doc = "See [XrPassthroughColorLutChannelsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutChannelsMETA)"]
2300#[repr(transparent)]
2301#[derive(Copy, Clone, Eq, PartialEq)]
2302pub struct PassthroughColorLutChannelsMETA(i32);
2303impl PassthroughColorLutChannelsMETA {
2304    pub const RGB: PassthroughColorLutChannelsMETA = Self(1i32);
2305    pub const RGBA: PassthroughColorLutChannelsMETA = Self(2i32);
2306    pub fn from_raw(x: i32) -> Self {
2307        Self(x)
2308    }
2309    pub fn into_raw(self) -> i32 {
2310        self.0
2311    }
2312}
2313impl fmt::Debug for PassthroughColorLutChannelsMETA {
2314    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2315        let name = match *self {
2316            Self::RGB => Some("RGB"),
2317            Self::RGBA => Some("RGBA"),
2318            _ => None,
2319        };
2320        fmt_enum(fmt, self.0, name)
2321    }
2322}
2323#[doc = "See [XrPerformanceMetricsCounterUnitMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterUnitMETA)"]
2324#[repr(transparent)]
2325#[derive(Copy, Clone, Eq, PartialEq)]
2326pub struct PerformanceMetricsCounterUnitMETA(i32);
2327impl PerformanceMetricsCounterUnitMETA {
2328    #[doc = "the performance counter unit is generic (unspecified)."]
2329    pub const GENERIC: PerformanceMetricsCounterUnitMETA = Self(0i32);
2330    #[doc = "the performance counter unit is percentage (%)."]
2331    pub const PERCENTAGE: PerformanceMetricsCounterUnitMETA = Self(1i32);
2332    #[doc = "the performance counter unit is millisecond."]
2333    pub const MILLISECONDS: PerformanceMetricsCounterUnitMETA = Self(2i32);
2334    #[doc = "the performance counter unit is byte."]
2335    pub const BYTES: PerformanceMetricsCounterUnitMETA = Self(3i32);
2336    #[doc = "the performance counter unit is hertz (Hz)."]
2337    pub const HERTZ: PerformanceMetricsCounterUnitMETA = Self(4i32);
2338    pub fn from_raw(x: i32) -> Self {
2339        Self(x)
2340    }
2341    pub fn into_raw(self) -> i32 {
2342        self.0
2343    }
2344}
2345impl fmt::Debug for PerformanceMetricsCounterUnitMETA {
2346    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2347        let name = match *self {
2348            Self::GENERIC => Some("GENERIC"),
2349            Self::PERCENTAGE => Some("PERCENTAGE"),
2350            Self::MILLISECONDS => Some("MILLISECONDS"),
2351            Self::BYTES => Some("BYTES"),
2352            Self::HERTZ => Some("HERTZ"),
2353            _ => None,
2354        };
2355        fmt_enum(fmt, self.0, name)
2356    }
2357}
2358#[doc = "See [XrFacialTrackingTypeHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackingTypeHTC)"]
2359#[repr(transparent)]
2360#[derive(Copy, Clone, Eq, PartialEq)]
2361pub struct FacialTrackingTypeHTC(i32);
2362impl FacialTrackingTypeHTC {
2363    #[doc = "Specifies this handle will observe eye expressions, with values indexed by XrEyeExpressionHTC whose count is XR_FACIAL_EXPRESSION_EYE_COUNT_HTC."]
2364    pub const EYE_DEFAULT: FacialTrackingTypeHTC = Self(1i32);
2365    #[doc = "Specifies this handle will observe lip expressions, with values indexed by XrLipExpressionHTC whose count is XR_FACIAL_EXPRESSION_LIP_COUNT_HTC."]
2366    pub const LIP_DEFAULT: FacialTrackingTypeHTC = Self(2i32);
2367    pub fn from_raw(x: i32) -> Self {
2368        Self(x)
2369    }
2370    pub fn into_raw(self) -> i32 {
2371        self.0
2372    }
2373}
2374impl fmt::Debug for FacialTrackingTypeHTC {
2375    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2376        let name = match *self {
2377            Self::EYE_DEFAULT => Some("EYE_DEFAULT"),
2378            Self::LIP_DEFAULT => Some("LIP_DEFAULT"),
2379            _ => None,
2380        };
2381        fmt_enum(fmt, self.0, name)
2382    }
2383}
2384#[doc = "See [XrEyeExpressionHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeExpressionHTC)"]
2385#[repr(transparent)]
2386#[derive(Copy, Clone, Eq, PartialEq)]
2387pub struct EyeExpressionHTC(i32);
2388impl EyeExpressionHTC {
2389    pub const LEFT_BLINK: EyeExpressionHTC = Self(0i32);
2390    pub const LEFT_WIDE: EyeExpressionHTC = Self(1i32);
2391    pub const RIGHT_BLINK: EyeExpressionHTC = Self(2i32);
2392    pub const RIGHT_WIDE: EyeExpressionHTC = Self(3i32);
2393    pub const LEFT_SQUEEZE: EyeExpressionHTC = Self(4i32);
2394    pub const RIGHT_SQUEEZE: EyeExpressionHTC = Self(5i32);
2395    pub const LEFT_DOWN: EyeExpressionHTC = Self(6i32);
2396    pub const RIGHT_DOWN: EyeExpressionHTC = Self(7i32);
2397    pub const LEFT_OUT: EyeExpressionHTC = Self(8i32);
2398    pub const RIGHT_IN: EyeExpressionHTC = Self(9i32);
2399    pub const LEFT_IN: EyeExpressionHTC = Self(10i32);
2400    pub const RIGHT_OUT: EyeExpressionHTC = Self(11i32);
2401    pub const LEFT_UP: EyeExpressionHTC = Self(12i32);
2402    pub const RIGHT_UP: EyeExpressionHTC = Self(13i32);
2403    pub fn from_raw(x: i32) -> Self {
2404        Self(x)
2405    }
2406    pub fn into_raw(self) -> i32 {
2407        self.0
2408    }
2409}
2410impl fmt::Debug for EyeExpressionHTC {
2411    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2412        let name = match *self {
2413            Self::LEFT_BLINK => Some("LEFT_BLINK"),
2414            Self::LEFT_WIDE => Some("LEFT_WIDE"),
2415            Self::RIGHT_BLINK => Some("RIGHT_BLINK"),
2416            Self::RIGHT_WIDE => Some("RIGHT_WIDE"),
2417            Self::LEFT_SQUEEZE => Some("LEFT_SQUEEZE"),
2418            Self::RIGHT_SQUEEZE => Some("RIGHT_SQUEEZE"),
2419            Self::LEFT_DOWN => Some("LEFT_DOWN"),
2420            Self::RIGHT_DOWN => Some("RIGHT_DOWN"),
2421            Self::LEFT_OUT => Some("LEFT_OUT"),
2422            Self::RIGHT_IN => Some("RIGHT_IN"),
2423            Self::LEFT_IN => Some("LEFT_IN"),
2424            Self::RIGHT_OUT => Some("RIGHT_OUT"),
2425            Self::LEFT_UP => Some("LEFT_UP"),
2426            Self::RIGHT_UP => Some("RIGHT_UP"),
2427            _ => None,
2428        };
2429        fmt_enum(fmt, self.0, name)
2430    }
2431}
2432#[doc = "See [XrLipExpressionHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLipExpressionHTC)"]
2433#[repr(transparent)]
2434#[derive(Copy, Clone, Eq, PartialEq)]
2435pub struct LipExpressionHTC(i32);
2436impl LipExpressionHTC {
2437    pub const JAW_RIGHT: LipExpressionHTC = Self(0i32);
2438    pub const JAW_LEFT: LipExpressionHTC = Self(1i32);
2439    pub const JAW_FORWARD: LipExpressionHTC = Self(2i32);
2440    pub const JAW_OPEN: LipExpressionHTC = Self(3i32);
2441    pub const MOUTH_APE_SHAPE: LipExpressionHTC = Self(4i32);
2442    pub const MOUTH_UPPER_RIGHT: LipExpressionHTC = Self(5i32);
2443    pub const MOUTH_UPPER_LEFT: LipExpressionHTC = Self(6i32);
2444    pub const MOUTH_LOWER_RIGHT: LipExpressionHTC = Self(7i32);
2445    pub const MOUTH_LOWER_LEFT: LipExpressionHTC = Self(8i32);
2446    pub const MOUTH_UPPER_OVERTURN: LipExpressionHTC = Self(9i32);
2447    pub const MOUTH_LOWER_OVERTURN: LipExpressionHTC = Self(10i32);
2448    pub const MOUTH_POUT: LipExpressionHTC = Self(11i32);
2449    pub const MOUTH_SMILE_RIGHT: LipExpressionHTC = Self(12i32);
2450    pub const MOUTH_SMILE_LEFT: LipExpressionHTC = Self(13i32);
2451    pub const MOUTH_SAD_RIGHT: LipExpressionHTC = Self(14i32);
2452    pub const MOUTH_SAD_LEFT: LipExpressionHTC = Self(15i32);
2453    pub const CHEEK_PUFF_RIGHT: LipExpressionHTC = Self(16i32);
2454    pub const CHEEK_PUFF_LEFT: LipExpressionHTC = Self(17i32);
2455    pub const CHEEK_SUCK: LipExpressionHTC = Self(18i32);
2456    pub const MOUTH_UPPER_UPRIGHT: LipExpressionHTC = Self(19i32);
2457    pub const MOUTH_UPPER_UPLEFT: LipExpressionHTC = Self(20i32);
2458    pub const MOUTH_LOWER_DOWNRIGHT: LipExpressionHTC = Self(21i32);
2459    pub const MOUTH_LOWER_DOWNLEFT: LipExpressionHTC = Self(22i32);
2460    pub const MOUTH_UPPER_INSIDE: LipExpressionHTC = Self(23i32);
2461    pub const MOUTH_LOWER_INSIDE: LipExpressionHTC = Self(24i32);
2462    pub const MOUTH_LOWER_OVERLAY: LipExpressionHTC = Self(25i32);
2463    pub const TONGUE_LONGSTEP1: LipExpressionHTC = Self(26i32);
2464    pub const TONGUE_LEFT: LipExpressionHTC = Self(27i32);
2465    pub const TONGUE_RIGHT: LipExpressionHTC = Self(28i32);
2466    pub const TONGUE_UP: LipExpressionHTC = Self(29i32);
2467    pub const TONGUE_DOWN: LipExpressionHTC = Self(30i32);
2468    pub const TONGUE_ROLL: LipExpressionHTC = Self(31i32);
2469    pub const TONGUE_LONGSTEP2: LipExpressionHTC = Self(32i32);
2470    pub const TONGUE_UPRIGHT_MORPH: LipExpressionHTC = Self(33i32);
2471    pub const TONGUE_UPLEFT_MORPH: LipExpressionHTC = Self(34i32);
2472    pub const TONGUE_DOWNRIGHT_MORPH: LipExpressionHTC = Self(35i32);
2473    pub const TONGUE_DOWNLEFT_MORPH: LipExpressionHTC = Self(36i32);
2474    pub fn from_raw(x: i32) -> Self {
2475        Self(x)
2476    }
2477    pub fn into_raw(self) -> i32 {
2478        self.0
2479    }
2480}
2481impl fmt::Debug for LipExpressionHTC {
2482    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2483        let name = match *self {
2484            Self::JAW_RIGHT => Some("JAW_RIGHT"),
2485            Self::JAW_LEFT => Some("JAW_LEFT"),
2486            Self::JAW_FORWARD => Some("JAW_FORWARD"),
2487            Self::JAW_OPEN => Some("JAW_OPEN"),
2488            Self::MOUTH_APE_SHAPE => Some("MOUTH_APE_SHAPE"),
2489            Self::MOUTH_UPPER_RIGHT => Some("MOUTH_UPPER_RIGHT"),
2490            Self::MOUTH_UPPER_LEFT => Some("MOUTH_UPPER_LEFT"),
2491            Self::MOUTH_LOWER_RIGHT => Some("MOUTH_LOWER_RIGHT"),
2492            Self::MOUTH_LOWER_LEFT => Some("MOUTH_LOWER_LEFT"),
2493            Self::MOUTH_UPPER_OVERTURN => Some("MOUTH_UPPER_OVERTURN"),
2494            Self::MOUTH_LOWER_OVERTURN => Some("MOUTH_LOWER_OVERTURN"),
2495            Self::MOUTH_POUT => Some("MOUTH_POUT"),
2496            Self::MOUTH_SMILE_RIGHT => Some("MOUTH_SMILE_RIGHT"),
2497            Self::MOUTH_SMILE_LEFT => Some("MOUTH_SMILE_LEFT"),
2498            Self::MOUTH_SAD_RIGHT => Some("MOUTH_SAD_RIGHT"),
2499            Self::MOUTH_SAD_LEFT => Some("MOUTH_SAD_LEFT"),
2500            Self::CHEEK_PUFF_RIGHT => Some("CHEEK_PUFF_RIGHT"),
2501            Self::CHEEK_PUFF_LEFT => Some("CHEEK_PUFF_LEFT"),
2502            Self::CHEEK_SUCK => Some("CHEEK_SUCK"),
2503            Self::MOUTH_UPPER_UPRIGHT => Some("MOUTH_UPPER_UPRIGHT"),
2504            Self::MOUTH_UPPER_UPLEFT => Some("MOUTH_UPPER_UPLEFT"),
2505            Self::MOUTH_LOWER_DOWNRIGHT => Some("MOUTH_LOWER_DOWNRIGHT"),
2506            Self::MOUTH_LOWER_DOWNLEFT => Some("MOUTH_LOWER_DOWNLEFT"),
2507            Self::MOUTH_UPPER_INSIDE => Some("MOUTH_UPPER_INSIDE"),
2508            Self::MOUTH_LOWER_INSIDE => Some("MOUTH_LOWER_INSIDE"),
2509            Self::MOUTH_LOWER_OVERLAY => Some("MOUTH_LOWER_OVERLAY"),
2510            Self::TONGUE_LONGSTEP1 => Some("TONGUE_LONGSTEP1"),
2511            Self::TONGUE_LEFT => Some("TONGUE_LEFT"),
2512            Self::TONGUE_RIGHT => Some("TONGUE_RIGHT"),
2513            Self::TONGUE_UP => Some("TONGUE_UP"),
2514            Self::TONGUE_DOWN => Some("TONGUE_DOWN"),
2515            Self::TONGUE_ROLL => Some("TONGUE_ROLL"),
2516            Self::TONGUE_LONGSTEP2 => Some("TONGUE_LONGSTEP2"),
2517            Self::TONGUE_UPRIGHT_MORPH => Some("TONGUE_UPRIGHT_MORPH"),
2518            Self::TONGUE_UPLEFT_MORPH => Some("TONGUE_UPLEFT_MORPH"),
2519            Self::TONGUE_DOWNRIGHT_MORPH => Some("TONGUE_DOWNRIGHT_MORPH"),
2520            Self::TONGUE_DOWNLEFT_MORPH => Some("TONGUE_DOWNLEFT_MORPH"),
2521            _ => None,
2522        };
2523        fmt_enum(fmt, self.0, name)
2524    }
2525}
2526#[doc = "See [XrPassthroughFormHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFormHTC)"]
2527#[repr(transparent)]
2528#[derive(Copy, Clone, Eq, PartialEq)]
2529pub struct PassthroughFormHTC(i32);
2530impl PassthroughFormHTC {
2531    #[doc = "Presents the passthrough with full of the entire screen."]
2532    pub const PLANAR: PassthroughFormHTC = Self(0i32);
2533    #[doc = "Presents the passthrough projecting onto a custom mesh."]
2534    pub const PROJECTED: PassthroughFormHTC = Self(1i32);
2535    pub fn from_raw(x: i32) -> Self {
2536        Self(x)
2537    }
2538    pub fn into_raw(self) -> i32 {
2539        self.0
2540    }
2541}
2542impl fmt::Debug for PassthroughFormHTC {
2543    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2544        let name = match *self {
2545            Self::PLANAR => Some("PLANAR"),
2546            Self::PROJECTED => Some("PROJECTED"),
2547            _ => None,
2548        };
2549        fmt_enum(fmt, self.0, name)
2550    }
2551}
2552#[doc = "See [XrFoveationModeHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationModeHTC)"]
2553#[repr(transparent)]
2554#[derive(Copy, Clone, Eq, PartialEq)]
2555pub struct FoveationModeHTC(i32);
2556impl FoveationModeHTC {
2557    #[doc = "No foveation"]
2558    pub const DISABLE: FoveationModeHTC = Self(0i32);
2559    #[doc = "Apply system default setting with fixed clear FOV and periphery quality."]
2560    pub const FIXED: FoveationModeHTC = Self(1i32);
2561    #[doc = "Allow system to set foveation dynamically according realtime system metric or other extensions."]
2562    pub const DYNAMIC: FoveationModeHTC = Self(2i32);
2563    #[doc = "Allow application to set foveation with desired clear FOV, periphery quality, and focal center offset."]
2564    pub const CUSTOM: FoveationModeHTC = Self(3i32);
2565    pub fn from_raw(x: i32) -> Self {
2566        Self(x)
2567    }
2568    pub fn into_raw(self) -> i32 {
2569        self.0
2570    }
2571}
2572impl fmt::Debug for FoveationModeHTC {
2573    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2574        let name = match *self {
2575            Self::DISABLE => Some("DISABLE"),
2576            Self::FIXED => Some("FIXED"),
2577            Self::DYNAMIC => Some("DYNAMIC"),
2578            Self::CUSTOM => Some("CUSTOM"),
2579            _ => None,
2580        };
2581        fmt_enum(fmt, self.0, name)
2582    }
2583}
2584#[doc = "See [XrFoveationLevelHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelHTC)"]
2585#[repr(transparent)]
2586#[derive(Copy, Clone, Eq, PartialEq)]
2587pub struct FoveationLevelHTC(i32);
2588impl FoveationLevelHTC {
2589    #[doc = "No foveation"]
2590    pub const NONE: FoveationLevelHTC = Self(0i32);
2591    #[doc = "Light periphery pixel density drop and lower performance gain."]
2592    pub const LOW: FoveationLevelHTC = Self(1i32);
2593    #[doc = "Medium periphery pixel density drop and medium performance gain"]
2594    pub const MEDIUM: FoveationLevelHTC = Self(2i32);
2595    #[doc = "Heavy periphery pixel density drop and higher performance gain"]
2596    pub const HIGH: FoveationLevelHTC = Self(3i32);
2597    pub fn from_raw(x: i32) -> Self {
2598        Self(x)
2599    }
2600    pub fn into_raw(self) -> i32 {
2601        self.0
2602    }
2603}
2604impl fmt::Debug for FoveationLevelHTC {
2605    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2606        let name = match *self {
2607            Self::NONE => Some("NONE"),
2608            Self::LOW => Some("LOW"),
2609            Self::MEDIUM => Some("MEDIUM"),
2610            Self::HIGH => Some("HIGH"),
2611            _ => None,
2612        };
2613        fmt_enum(fmt, self.0, name)
2614    }
2615}
2616#[doc = "See [XrLocalDimmingModeMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalDimmingModeMETA)"]
2617#[repr(transparent)]
2618#[derive(Copy, Clone, Eq, PartialEq)]
2619pub struct LocalDimmingModeMETA(i32);
2620impl LocalDimmingModeMETA {
2621    #[doc = "Local dimming is turned off by default for the current submitted frame. This is the same as not chaining XrLocalDimmingModeMETA."]
2622    pub const OFF: LocalDimmingModeMETA = Self(0i32);
2623    #[doc = "Local dimming is turned on for the current submitted frame."]
2624    pub const ON: LocalDimmingModeMETA = Self(1i32);
2625    pub fn from_raw(x: i32) -> Self {
2626        Self(x)
2627    }
2628    pub fn into_raw(self) -> i32 {
2629        self.0
2630    }
2631}
2632impl fmt::Debug for LocalDimmingModeMETA {
2633    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2634        let name = match *self {
2635            Self::OFF => Some("OFF"),
2636            Self::ON => Some("ON"),
2637            _ => None,
2638        };
2639        fmt_enum(fmt, self.0, name)
2640    }
2641}
2642#[doc = "See [XrFaceExpressionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionFB)"]
2643#[repr(transparent)]
2644#[derive(Copy, Clone, Eq, PartialEq)]
2645pub struct FaceExpressionFB(i32);
2646impl FaceExpressionFB {
2647    pub const BROW_LOWERER_L: FaceExpressionFB = Self(0i32);
2648    pub const BROW_LOWERER_R: FaceExpressionFB = Self(1i32);
2649    pub const CHEEK_PUFF_L: FaceExpressionFB = Self(2i32);
2650    pub const CHEEK_PUFF_R: FaceExpressionFB = Self(3i32);
2651    pub const CHEEK_RAISER_L: FaceExpressionFB = Self(4i32);
2652    pub const CHEEK_RAISER_R: FaceExpressionFB = Self(5i32);
2653    pub const CHEEK_SUCK_L: FaceExpressionFB = Self(6i32);
2654    pub const CHEEK_SUCK_R: FaceExpressionFB = Self(7i32);
2655    pub const CHIN_RAISER_B: FaceExpressionFB = Self(8i32);
2656    pub const CHIN_RAISER_T: FaceExpressionFB = Self(9i32);
2657    pub const DIMPLER_L: FaceExpressionFB = Self(10i32);
2658    pub const DIMPLER_R: FaceExpressionFB = Self(11i32);
2659    pub const EYES_CLOSED_L: FaceExpressionFB = Self(12i32);
2660    pub const EYES_CLOSED_R: FaceExpressionFB = Self(13i32);
2661    pub const EYES_LOOK_DOWN_L: FaceExpressionFB = Self(14i32);
2662    pub const EYES_LOOK_DOWN_R: FaceExpressionFB = Self(15i32);
2663    pub const EYES_LOOK_LEFT_L: FaceExpressionFB = Self(16i32);
2664    pub const EYES_LOOK_LEFT_R: FaceExpressionFB = Self(17i32);
2665    pub const EYES_LOOK_RIGHT_L: FaceExpressionFB = Self(18i32);
2666    pub const EYES_LOOK_RIGHT_R: FaceExpressionFB = Self(19i32);
2667    pub const EYES_LOOK_UP_L: FaceExpressionFB = Self(20i32);
2668    pub const EYES_LOOK_UP_R: FaceExpressionFB = Self(21i32);
2669    pub const INNER_BROW_RAISER_L: FaceExpressionFB = Self(22i32);
2670    pub const INNER_BROW_RAISER_R: FaceExpressionFB = Self(23i32);
2671    pub const JAW_DROP: FaceExpressionFB = Self(24i32);
2672    pub const JAW_SIDEWAYS_LEFT: FaceExpressionFB = Self(25i32);
2673    pub const JAW_SIDEWAYS_RIGHT: FaceExpressionFB = Self(26i32);
2674    pub const JAW_THRUST: FaceExpressionFB = Self(27i32);
2675    pub const LID_TIGHTENER_L: FaceExpressionFB = Self(28i32);
2676    pub const LID_TIGHTENER_R: FaceExpressionFB = Self(29i32);
2677    pub const LIP_CORNER_DEPRESSOR_L: FaceExpressionFB = Self(30i32);
2678    pub const LIP_CORNER_DEPRESSOR_R: FaceExpressionFB = Self(31i32);
2679    pub const LIP_CORNER_PULLER_L: FaceExpressionFB = Self(32i32);
2680    pub const LIP_CORNER_PULLER_R: FaceExpressionFB = Self(33i32);
2681    pub const LIP_FUNNELER_LB: FaceExpressionFB = Self(34i32);
2682    pub const LIP_FUNNELER_LT: FaceExpressionFB = Self(35i32);
2683    pub const LIP_FUNNELER_RB: FaceExpressionFB = Self(36i32);
2684    pub const LIP_FUNNELER_RT: FaceExpressionFB = Self(37i32);
2685    pub const LIP_PRESSOR_L: FaceExpressionFB = Self(38i32);
2686    pub const LIP_PRESSOR_R: FaceExpressionFB = Self(39i32);
2687    pub const LIP_PUCKER_L: FaceExpressionFB = Self(40i32);
2688    pub const LIP_PUCKER_R: FaceExpressionFB = Self(41i32);
2689    pub const LIP_STRETCHER_L: FaceExpressionFB = Self(42i32);
2690    pub const LIP_STRETCHER_R: FaceExpressionFB = Self(43i32);
2691    pub const LIP_SUCK_LB: FaceExpressionFB = Self(44i32);
2692    pub const LIP_SUCK_LT: FaceExpressionFB = Self(45i32);
2693    pub const LIP_SUCK_RB: FaceExpressionFB = Self(46i32);
2694    pub const LIP_SUCK_RT: FaceExpressionFB = Self(47i32);
2695    pub const LIP_TIGHTENER_L: FaceExpressionFB = Self(48i32);
2696    pub const LIP_TIGHTENER_R: FaceExpressionFB = Self(49i32);
2697    pub const LIPS_TOWARD: FaceExpressionFB = Self(50i32);
2698    pub const LOWER_LIP_DEPRESSOR_L: FaceExpressionFB = Self(51i32);
2699    pub const LOWER_LIP_DEPRESSOR_R: FaceExpressionFB = Self(52i32);
2700    pub const MOUTH_LEFT: FaceExpressionFB = Self(53i32);
2701    pub const MOUTH_RIGHT: FaceExpressionFB = Self(54i32);
2702    pub const NOSE_WRINKLER_L: FaceExpressionFB = Self(55i32);
2703    pub const NOSE_WRINKLER_R: FaceExpressionFB = Self(56i32);
2704    pub const OUTER_BROW_RAISER_L: FaceExpressionFB = Self(57i32);
2705    pub const OUTER_BROW_RAISER_R: FaceExpressionFB = Self(58i32);
2706    pub const UPPER_LID_RAISER_L: FaceExpressionFB = Self(59i32);
2707    pub const UPPER_LID_RAISER_R: FaceExpressionFB = Self(60i32);
2708    pub const UPPER_LIP_RAISER_L: FaceExpressionFB = Self(61i32);
2709    pub const UPPER_LIP_RAISER_R: FaceExpressionFB = Self(62i32);
2710    pub const COUNT: FaceExpressionFB = Self(63i32);
2711    pub fn from_raw(x: i32) -> Self {
2712        Self(x)
2713    }
2714    pub fn into_raw(self) -> i32 {
2715        self.0
2716    }
2717}
2718impl fmt::Debug for FaceExpressionFB {
2719    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2720        let name = match *self {
2721            Self::BROW_LOWERER_L => Some("BROW_LOWERER_L"),
2722            Self::BROW_LOWERER_R => Some("BROW_LOWERER_R"),
2723            Self::CHEEK_PUFF_L => Some("CHEEK_PUFF_L"),
2724            Self::CHEEK_PUFF_R => Some("CHEEK_PUFF_R"),
2725            Self::CHEEK_RAISER_L => Some("CHEEK_RAISER_L"),
2726            Self::CHEEK_RAISER_R => Some("CHEEK_RAISER_R"),
2727            Self::CHEEK_SUCK_L => Some("CHEEK_SUCK_L"),
2728            Self::CHEEK_SUCK_R => Some("CHEEK_SUCK_R"),
2729            Self::CHIN_RAISER_B => Some("CHIN_RAISER_B"),
2730            Self::CHIN_RAISER_T => Some("CHIN_RAISER_T"),
2731            Self::DIMPLER_L => Some("DIMPLER_L"),
2732            Self::DIMPLER_R => Some("DIMPLER_R"),
2733            Self::EYES_CLOSED_L => Some("EYES_CLOSED_L"),
2734            Self::EYES_CLOSED_R => Some("EYES_CLOSED_R"),
2735            Self::EYES_LOOK_DOWN_L => Some("EYES_LOOK_DOWN_L"),
2736            Self::EYES_LOOK_DOWN_R => Some("EYES_LOOK_DOWN_R"),
2737            Self::EYES_LOOK_LEFT_L => Some("EYES_LOOK_LEFT_L"),
2738            Self::EYES_LOOK_LEFT_R => Some("EYES_LOOK_LEFT_R"),
2739            Self::EYES_LOOK_RIGHT_L => Some("EYES_LOOK_RIGHT_L"),
2740            Self::EYES_LOOK_RIGHT_R => Some("EYES_LOOK_RIGHT_R"),
2741            Self::EYES_LOOK_UP_L => Some("EYES_LOOK_UP_L"),
2742            Self::EYES_LOOK_UP_R => Some("EYES_LOOK_UP_R"),
2743            Self::INNER_BROW_RAISER_L => Some("INNER_BROW_RAISER_L"),
2744            Self::INNER_BROW_RAISER_R => Some("INNER_BROW_RAISER_R"),
2745            Self::JAW_DROP => Some("JAW_DROP"),
2746            Self::JAW_SIDEWAYS_LEFT => Some("JAW_SIDEWAYS_LEFT"),
2747            Self::JAW_SIDEWAYS_RIGHT => Some("JAW_SIDEWAYS_RIGHT"),
2748            Self::JAW_THRUST => Some("JAW_THRUST"),
2749            Self::LID_TIGHTENER_L => Some("LID_TIGHTENER_L"),
2750            Self::LID_TIGHTENER_R => Some("LID_TIGHTENER_R"),
2751            Self::LIP_CORNER_DEPRESSOR_L => Some("LIP_CORNER_DEPRESSOR_L"),
2752            Self::LIP_CORNER_DEPRESSOR_R => Some("LIP_CORNER_DEPRESSOR_R"),
2753            Self::LIP_CORNER_PULLER_L => Some("LIP_CORNER_PULLER_L"),
2754            Self::LIP_CORNER_PULLER_R => Some("LIP_CORNER_PULLER_R"),
2755            Self::LIP_FUNNELER_LB => Some("LIP_FUNNELER_LB"),
2756            Self::LIP_FUNNELER_LT => Some("LIP_FUNNELER_LT"),
2757            Self::LIP_FUNNELER_RB => Some("LIP_FUNNELER_RB"),
2758            Self::LIP_FUNNELER_RT => Some("LIP_FUNNELER_RT"),
2759            Self::LIP_PRESSOR_L => Some("LIP_PRESSOR_L"),
2760            Self::LIP_PRESSOR_R => Some("LIP_PRESSOR_R"),
2761            Self::LIP_PUCKER_L => Some("LIP_PUCKER_L"),
2762            Self::LIP_PUCKER_R => Some("LIP_PUCKER_R"),
2763            Self::LIP_STRETCHER_L => Some("LIP_STRETCHER_L"),
2764            Self::LIP_STRETCHER_R => Some("LIP_STRETCHER_R"),
2765            Self::LIP_SUCK_LB => Some("LIP_SUCK_LB"),
2766            Self::LIP_SUCK_LT => Some("LIP_SUCK_LT"),
2767            Self::LIP_SUCK_RB => Some("LIP_SUCK_RB"),
2768            Self::LIP_SUCK_RT => Some("LIP_SUCK_RT"),
2769            Self::LIP_TIGHTENER_L => Some("LIP_TIGHTENER_L"),
2770            Self::LIP_TIGHTENER_R => Some("LIP_TIGHTENER_R"),
2771            Self::LIPS_TOWARD => Some("LIPS_TOWARD"),
2772            Self::LOWER_LIP_DEPRESSOR_L => Some("LOWER_LIP_DEPRESSOR_L"),
2773            Self::LOWER_LIP_DEPRESSOR_R => Some("LOWER_LIP_DEPRESSOR_R"),
2774            Self::MOUTH_LEFT => Some("MOUTH_LEFT"),
2775            Self::MOUTH_RIGHT => Some("MOUTH_RIGHT"),
2776            Self::NOSE_WRINKLER_L => Some("NOSE_WRINKLER_L"),
2777            Self::NOSE_WRINKLER_R => Some("NOSE_WRINKLER_R"),
2778            Self::OUTER_BROW_RAISER_L => Some("OUTER_BROW_RAISER_L"),
2779            Self::OUTER_BROW_RAISER_R => Some("OUTER_BROW_RAISER_R"),
2780            Self::UPPER_LID_RAISER_L => Some("UPPER_LID_RAISER_L"),
2781            Self::UPPER_LID_RAISER_R => Some("UPPER_LID_RAISER_R"),
2782            Self::UPPER_LIP_RAISER_L => Some("UPPER_LIP_RAISER_L"),
2783            Self::UPPER_LIP_RAISER_R => Some("UPPER_LIP_RAISER_R"),
2784            Self::COUNT => Some("COUNT"),
2785            _ => None,
2786        };
2787        fmt_enum(fmt, self.0, name)
2788    }
2789}
2790#[doc = "See [XrFaceExpressionSetFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionSetFB)"]
2791#[repr(transparent)]
2792#[derive(Copy, Clone, Eq, PartialEq)]
2793pub struct FaceExpressionSetFB(i32);
2794impl FaceExpressionSetFB {
2795    #[doc = "indicates that the created XrFaceTrackerFB tracks the set of blend shapes described by XrFaceExpressionFB enum, i.e. the xrGetFaceExpressionWeightsFB function returns an array of blend shapes with the count of XR_FACE_EXPRESSION_COUNT_FB and can: be indexed using XrFaceExpressionFB."]
2796    pub const DEFAULT: FaceExpressionSetFB = Self(0i32);
2797    pub fn from_raw(x: i32) -> Self {
2798        Self(x)
2799    }
2800    pub fn into_raw(self) -> i32 {
2801        self.0
2802    }
2803}
2804impl fmt::Debug for FaceExpressionSetFB {
2805    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2806        let name = match *self {
2807            Self::DEFAULT => Some("DEFAULT"),
2808            _ => None,
2809        };
2810        fmt_enum(fmt, self.0, name)
2811    }
2812}
2813#[doc = "See [XrFaceConfidenceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceConfidenceFB)"]
2814#[repr(transparent)]
2815#[derive(Copy, Clone, Eq, PartialEq)]
2816pub struct FaceConfidenceFB(i32);
2817impl FaceConfidenceFB {
2818    pub const LOWER_FACE: FaceConfidenceFB = Self(0i32);
2819    pub const UPPER_FACE: FaceConfidenceFB = Self(1i32);
2820    pub const COUNT: FaceConfidenceFB = Self(2i32);
2821    pub fn from_raw(x: i32) -> Self {
2822        Self(x)
2823    }
2824    pub fn into_raw(self) -> i32 {
2825        self.0
2826    }
2827}
2828impl fmt::Debug for FaceConfidenceFB {
2829    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2830        let name = match *self {
2831            Self::LOWER_FACE => Some("LOWER_FACE"),
2832            Self::UPPER_FACE => Some("UPPER_FACE"),
2833            Self::COUNT => Some("COUNT"),
2834            _ => None,
2835        };
2836        fmt_enum(fmt, self.0, name)
2837    }
2838}
2839#[doc = "See [XrFaceExpression2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpression2FB)"]
2840#[repr(transparent)]
2841#[derive(Copy, Clone, Eq, PartialEq)]
2842pub struct FaceExpression2FB(i32);
2843impl FaceExpression2FB {
2844    pub const BROW_LOWERER_L: FaceExpression2FB = Self(0i32);
2845    pub const BROW_LOWERER_R: FaceExpression2FB = Self(1i32);
2846    pub const CHEEK_PUFF_L: FaceExpression2FB = Self(2i32);
2847    pub const CHEEK_PUFF_R: FaceExpression2FB = Self(3i32);
2848    pub const CHEEK_RAISER_L: FaceExpression2FB = Self(4i32);
2849    pub const CHEEK_RAISER_R: FaceExpression2FB = Self(5i32);
2850    pub const CHEEK_SUCK_L: FaceExpression2FB = Self(6i32);
2851    pub const CHEEK_SUCK_R: FaceExpression2FB = Self(7i32);
2852    pub const CHIN_RAISER_B: FaceExpression2FB = Self(8i32);
2853    pub const CHIN_RAISER_T: FaceExpression2FB = Self(9i32);
2854    pub const DIMPLER_L: FaceExpression2FB = Self(10i32);
2855    pub const DIMPLER_R: FaceExpression2FB = Self(11i32);
2856    pub const EYES_CLOSED_L: FaceExpression2FB = Self(12i32);
2857    pub const EYES_CLOSED_R: FaceExpression2FB = Self(13i32);
2858    pub const EYES_LOOK_DOWN_L: FaceExpression2FB = Self(14i32);
2859    pub const EYES_LOOK_DOWN_R: FaceExpression2FB = Self(15i32);
2860    pub const EYES_LOOK_LEFT_L: FaceExpression2FB = Self(16i32);
2861    pub const EYES_LOOK_LEFT_R: FaceExpression2FB = Self(17i32);
2862    pub const EYES_LOOK_RIGHT_L: FaceExpression2FB = Self(18i32);
2863    pub const EYES_LOOK_RIGHT_R: FaceExpression2FB = Self(19i32);
2864    pub const EYES_LOOK_UP_L: FaceExpression2FB = Self(20i32);
2865    pub const EYES_LOOK_UP_R: FaceExpression2FB = Self(21i32);
2866    pub const INNER_BROW_RAISER_L: FaceExpression2FB = Self(22i32);
2867    pub const INNER_BROW_RAISER_R: FaceExpression2FB = Self(23i32);
2868    pub const JAW_DROP: FaceExpression2FB = Self(24i32);
2869    pub const JAW_SIDEWAYS_LEFT: FaceExpression2FB = Self(25i32);
2870    pub const JAW_SIDEWAYS_RIGHT: FaceExpression2FB = Self(26i32);
2871    pub const JAW_THRUST: FaceExpression2FB = Self(27i32);
2872    pub const LID_TIGHTENER_L: FaceExpression2FB = Self(28i32);
2873    pub const LID_TIGHTENER_R: FaceExpression2FB = Self(29i32);
2874    pub const LIP_CORNER_DEPRESSOR_L: FaceExpression2FB = Self(30i32);
2875    pub const LIP_CORNER_DEPRESSOR_R: FaceExpression2FB = Self(31i32);
2876    pub const LIP_CORNER_PULLER_L: FaceExpression2FB = Self(32i32);
2877    pub const LIP_CORNER_PULLER_R: FaceExpression2FB = Self(33i32);
2878    pub const LIP_FUNNELER_LB: FaceExpression2FB = Self(34i32);
2879    pub const LIP_FUNNELER_LT: FaceExpression2FB = Self(35i32);
2880    pub const LIP_FUNNELER_RB: FaceExpression2FB = Self(36i32);
2881    pub const LIP_FUNNELER_RT: FaceExpression2FB = Self(37i32);
2882    pub const LIP_PRESSOR_L: FaceExpression2FB = Self(38i32);
2883    pub const LIP_PRESSOR_R: FaceExpression2FB = Self(39i32);
2884    pub const LIP_PUCKER_L: FaceExpression2FB = Self(40i32);
2885    pub const LIP_PUCKER_R: FaceExpression2FB = Self(41i32);
2886    pub const LIP_STRETCHER_L: FaceExpression2FB = Self(42i32);
2887    pub const LIP_STRETCHER_R: FaceExpression2FB = Self(43i32);
2888    pub const LIP_SUCK_LB: FaceExpression2FB = Self(44i32);
2889    pub const LIP_SUCK_LT: FaceExpression2FB = Self(45i32);
2890    pub const LIP_SUCK_RB: FaceExpression2FB = Self(46i32);
2891    pub const LIP_SUCK_RT: FaceExpression2FB = Self(47i32);
2892    pub const LIP_TIGHTENER_L: FaceExpression2FB = Self(48i32);
2893    pub const LIP_TIGHTENER_R: FaceExpression2FB = Self(49i32);
2894    pub const LIPS_TOWARD: FaceExpression2FB = Self(50i32);
2895    pub const LOWER_LIP_DEPRESSOR_L: FaceExpression2FB = Self(51i32);
2896    pub const LOWER_LIP_DEPRESSOR_R: FaceExpression2FB = Self(52i32);
2897    pub const MOUTH_LEFT: FaceExpression2FB = Self(53i32);
2898    pub const MOUTH_RIGHT: FaceExpression2FB = Self(54i32);
2899    pub const NOSE_WRINKLER_L: FaceExpression2FB = Self(55i32);
2900    pub const NOSE_WRINKLER_R: FaceExpression2FB = Self(56i32);
2901    pub const OUTER_BROW_RAISER_L: FaceExpression2FB = Self(57i32);
2902    pub const OUTER_BROW_RAISER_R: FaceExpression2FB = Self(58i32);
2903    pub const UPPER_LID_RAISER_L: FaceExpression2FB = Self(59i32);
2904    pub const UPPER_LID_RAISER_R: FaceExpression2FB = Self(60i32);
2905    pub const UPPER_LIP_RAISER_L: FaceExpression2FB = Self(61i32);
2906    pub const UPPER_LIP_RAISER_R: FaceExpression2FB = Self(62i32);
2907    pub const TONGUE_TIP_INTERDENTAL: FaceExpression2FB = Self(63i32);
2908    pub const TONGUE_TIP_ALVEOLAR: FaceExpression2FB = Self(64i32);
2909    pub const TONGUE_FRONT_DORSAL_PALATE: FaceExpression2FB = Self(65i32);
2910    pub const TONGUE_MID_DORSAL_PALATE: FaceExpression2FB = Self(66i32);
2911    pub const TONGUE_BACK_DORSAL_VELAR: FaceExpression2FB = Self(67i32);
2912    pub const TONGUE_OUT: FaceExpression2FB = Self(68i32);
2913    pub const TONGUE_RETREAT: FaceExpression2FB = Self(69i32);
2914    pub const COUNT: FaceExpression2FB = Self(70i32);
2915    pub fn from_raw(x: i32) -> Self {
2916        Self(x)
2917    }
2918    pub fn into_raw(self) -> i32 {
2919        self.0
2920    }
2921}
2922impl fmt::Debug for FaceExpression2FB {
2923    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2924        let name = match *self {
2925            Self::BROW_LOWERER_L => Some("BROW_LOWERER_L"),
2926            Self::BROW_LOWERER_R => Some("BROW_LOWERER_R"),
2927            Self::CHEEK_PUFF_L => Some("CHEEK_PUFF_L"),
2928            Self::CHEEK_PUFF_R => Some("CHEEK_PUFF_R"),
2929            Self::CHEEK_RAISER_L => Some("CHEEK_RAISER_L"),
2930            Self::CHEEK_RAISER_R => Some("CHEEK_RAISER_R"),
2931            Self::CHEEK_SUCK_L => Some("CHEEK_SUCK_L"),
2932            Self::CHEEK_SUCK_R => Some("CHEEK_SUCK_R"),
2933            Self::CHIN_RAISER_B => Some("CHIN_RAISER_B"),
2934            Self::CHIN_RAISER_T => Some("CHIN_RAISER_T"),
2935            Self::DIMPLER_L => Some("DIMPLER_L"),
2936            Self::DIMPLER_R => Some("DIMPLER_R"),
2937            Self::EYES_CLOSED_L => Some("EYES_CLOSED_L"),
2938            Self::EYES_CLOSED_R => Some("EYES_CLOSED_R"),
2939            Self::EYES_LOOK_DOWN_L => Some("EYES_LOOK_DOWN_L"),
2940            Self::EYES_LOOK_DOWN_R => Some("EYES_LOOK_DOWN_R"),
2941            Self::EYES_LOOK_LEFT_L => Some("EYES_LOOK_LEFT_L"),
2942            Self::EYES_LOOK_LEFT_R => Some("EYES_LOOK_LEFT_R"),
2943            Self::EYES_LOOK_RIGHT_L => Some("EYES_LOOK_RIGHT_L"),
2944            Self::EYES_LOOK_RIGHT_R => Some("EYES_LOOK_RIGHT_R"),
2945            Self::EYES_LOOK_UP_L => Some("EYES_LOOK_UP_L"),
2946            Self::EYES_LOOK_UP_R => Some("EYES_LOOK_UP_R"),
2947            Self::INNER_BROW_RAISER_L => Some("INNER_BROW_RAISER_L"),
2948            Self::INNER_BROW_RAISER_R => Some("INNER_BROW_RAISER_R"),
2949            Self::JAW_DROP => Some("JAW_DROP"),
2950            Self::JAW_SIDEWAYS_LEFT => Some("JAW_SIDEWAYS_LEFT"),
2951            Self::JAW_SIDEWAYS_RIGHT => Some("JAW_SIDEWAYS_RIGHT"),
2952            Self::JAW_THRUST => Some("JAW_THRUST"),
2953            Self::LID_TIGHTENER_L => Some("LID_TIGHTENER_L"),
2954            Self::LID_TIGHTENER_R => Some("LID_TIGHTENER_R"),
2955            Self::LIP_CORNER_DEPRESSOR_L => Some("LIP_CORNER_DEPRESSOR_L"),
2956            Self::LIP_CORNER_DEPRESSOR_R => Some("LIP_CORNER_DEPRESSOR_R"),
2957            Self::LIP_CORNER_PULLER_L => Some("LIP_CORNER_PULLER_L"),
2958            Self::LIP_CORNER_PULLER_R => Some("LIP_CORNER_PULLER_R"),
2959            Self::LIP_FUNNELER_LB => Some("LIP_FUNNELER_LB"),
2960            Self::LIP_FUNNELER_LT => Some("LIP_FUNNELER_LT"),
2961            Self::LIP_FUNNELER_RB => Some("LIP_FUNNELER_RB"),
2962            Self::LIP_FUNNELER_RT => Some("LIP_FUNNELER_RT"),
2963            Self::LIP_PRESSOR_L => Some("LIP_PRESSOR_L"),
2964            Self::LIP_PRESSOR_R => Some("LIP_PRESSOR_R"),
2965            Self::LIP_PUCKER_L => Some("LIP_PUCKER_L"),
2966            Self::LIP_PUCKER_R => Some("LIP_PUCKER_R"),
2967            Self::LIP_STRETCHER_L => Some("LIP_STRETCHER_L"),
2968            Self::LIP_STRETCHER_R => Some("LIP_STRETCHER_R"),
2969            Self::LIP_SUCK_LB => Some("LIP_SUCK_LB"),
2970            Self::LIP_SUCK_LT => Some("LIP_SUCK_LT"),
2971            Self::LIP_SUCK_RB => Some("LIP_SUCK_RB"),
2972            Self::LIP_SUCK_RT => Some("LIP_SUCK_RT"),
2973            Self::LIP_TIGHTENER_L => Some("LIP_TIGHTENER_L"),
2974            Self::LIP_TIGHTENER_R => Some("LIP_TIGHTENER_R"),
2975            Self::LIPS_TOWARD => Some("LIPS_TOWARD"),
2976            Self::LOWER_LIP_DEPRESSOR_L => Some("LOWER_LIP_DEPRESSOR_L"),
2977            Self::LOWER_LIP_DEPRESSOR_R => Some("LOWER_LIP_DEPRESSOR_R"),
2978            Self::MOUTH_LEFT => Some("MOUTH_LEFT"),
2979            Self::MOUTH_RIGHT => Some("MOUTH_RIGHT"),
2980            Self::NOSE_WRINKLER_L => Some("NOSE_WRINKLER_L"),
2981            Self::NOSE_WRINKLER_R => Some("NOSE_WRINKLER_R"),
2982            Self::OUTER_BROW_RAISER_L => Some("OUTER_BROW_RAISER_L"),
2983            Self::OUTER_BROW_RAISER_R => Some("OUTER_BROW_RAISER_R"),
2984            Self::UPPER_LID_RAISER_L => Some("UPPER_LID_RAISER_L"),
2985            Self::UPPER_LID_RAISER_R => Some("UPPER_LID_RAISER_R"),
2986            Self::UPPER_LIP_RAISER_L => Some("UPPER_LIP_RAISER_L"),
2987            Self::UPPER_LIP_RAISER_R => Some("UPPER_LIP_RAISER_R"),
2988            Self::TONGUE_TIP_INTERDENTAL => Some("TONGUE_TIP_INTERDENTAL"),
2989            Self::TONGUE_TIP_ALVEOLAR => Some("TONGUE_TIP_ALVEOLAR"),
2990            Self::TONGUE_FRONT_DORSAL_PALATE => Some("TONGUE_FRONT_DORSAL_PALATE"),
2991            Self::TONGUE_MID_DORSAL_PALATE => Some("TONGUE_MID_DORSAL_PALATE"),
2992            Self::TONGUE_BACK_DORSAL_VELAR => Some("TONGUE_BACK_DORSAL_VELAR"),
2993            Self::TONGUE_OUT => Some("TONGUE_OUT"),
2994            Self::TONGUE_RETREAT => Some("TONGUE_RETREAT"),
2995            Self::COUNT => Some("COUNT"),
2996            _ => None,
2997        };
2998        fmt_enum(fmt, self.0, name)
2999    }
3000}
3001#[doc = "See [XrFaceExpressionSet2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionSet2FB)"]
3002#[repr(transparent)]
3003#[derive(Copy, Clone, Eq, PartialEq)]
3004pub struct FaceExpressionSet2FB(i32);
3005impl FaceExpressionSet2FB {
3006    #[doc = "indicates that the created XrFaceTracker2FB tracks the set of blend shapes described by XrFaceExpression2FB enum, i.e. the xrGetFaceExpressionWeights2FB function returns an array of blend shapes with the count of XR_FACE_EXPRESSION2_COUNT_FB and can: be indexed using XrFaceExpression2FB."]
3007    pub const DEFAULT: FaceExpressionSet2FB = Self(0i32);
3008    pub fn from_raw(x: i32) -> Self {
3009        Self(x)
3010    }
3011    pub fn into_raw(self) -> i32 {
3012        self.0
3013    }
3014}
3015impl fmt::Debug for FaceExpressionSet2FB {
3016    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3017        let name = match *self {
3018            Self::DEFAULT => Some("DEFAULT"),
3019            _ => None,
3020        };
3021        fmt_enum(fmt, self.0, name)
3022    }
3023}
3024#[doc = "See [XrFaceTrackingDataSource2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackingDataSource2FB)"]
3025#[repr(transparent)]
3026#[derive(Copy, Clone, Eq, PartialEq)]
3027pub struct FaceTrackingDataSource2FB(i32);
3028impl FaceTrackingDataSource2FB {
3029    #[doc = "face tracking uses visual data to estimate expressions. Face tracking may use audio to further improve the quality of face tracking."]
3030    pub const VISUAL: FaceTrackingDataSource2FB = Self(0i32);
3031    #[doc = "face tracking uses audio data to estimate expressions."]
3032    pub const AUDIO: FaceTrackingDataSource2FB = Self(1i32);
3033    pub fn from_raw(x: i32) -> Self {
3034        Self(x)
3035    }
3036    pub fn into_raw(self) -> i32 {
3037        self.0
3038    }
3039}
3040impl fmt::Debug for FaceTrackingDataSource2FB {
3041    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3042        let name = match *self {
3043            Self::VISUAL => Some("VISUAL"),
3044            Self::AUDIO => Some("AUDIO"),
3045            _ => None,
3046        };
3047        fmt_enum(fmt, self.0, name)
3048    }
3049}
3050#[doc = "See [XrFaceConfidence2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceConfidence2FB)"]
3051#[repr(transparent)]
3052#[derive(Copy, Clone, Eq, PartialEq)]
3053pub struct FaceConfidence2FB(i32);
3054impl FaceConfidence2FB {
3055    pub const LOWER_FACE: FaceConfidence2FB = Self(0i32);
3056    pub const UPPER_FACE: FaceConfidence2FB = Self(1i32);
3057    pub const COUNT: FaceConfidence2FB = Self(2i32);
3058    pub fn from_raw(x: i32) -> Self {
3059        Self(x)
3060    }
3061    pub fn into_raw(self) -> i32 {
3062        self.0
3063    }
3064}
3065impl fmt::Debug for FaceConfidence2FB {
3066    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3067        let name = match *self {
3068            Self::LOWER_FACE => Some("LOWER_FACE"),
3069            Self::UPPER_FACE => Some("UPPER_FACE"),
3070            Self::COUNT => Some("COUNT"),
3071            _ => None,
3072        };
3073        fmt_enum(fmt, self.0, name)
3074    }
3075}
3076#[doc = "See [XrBodyJointFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointFB)"]
3077#[repr(transparent)]
3078#[derive(Copy, Clone, Eq, PartialEq)]
3079pub struct BodyJointFB(i32);
3080impl BodyJointFB {
3081    pub const ROOT: BodyJointFB = Self(0i32);
3082    pub const HIPS: BodyJointFB = Self(1i32);
3083    pub const SPINE_LOWER: BodyJointFB = Self(2i32);
3084    pub const SPINE_MIDDLE: BodyJointFB = Self(3i32);
3085    pub const SPINE_UPPER: BodyJointFB = Self(4i32);
3086    pub const CHEST: BodyJointFB = Self(5i32);
3087    pub const NECK: BodyJointFB = Self(6i32);
3088    pub const HEAD: BodyJointFB = Self(7i32);
3089    pub const LEFT_SHOULDER: BodyJointFB = Self(8i32);
3090    pub const LEFT_SCAPULA: BodyJointFB = Self(9i32);
3091    pub const LEFT_ARM_UPPER: BodyJointFB = Self(10i32);
3092    pub const LEFT_ARM_LOWER: BodyJointFB = Self(11i32);
3093    pub const LEFT_HAND_WRIST_TWIST: BodyJointFB = Self(12i32);
3094    pub const RIGHT_SHOULDER: BodyJointFB = Self(13i32);
3095    pub const RIGHT_SCAPULA: BodyJointFB = Self(14i32);
3096    pub const RIGHT_ARM_UPPER: BodyJointFB = Self(15i32);
3097    pub const RIGHT_ARM_LOWER: BodyJointFB = Self(16i32);
3098    pub const RIGHT_HAND_WRIST_TWIST: BodyJointFB = Self(17i32);
3099    pub const LEFT_HAND_PALM: BodyJointFB = Self(18i32);
3100    pub const LEFT_HAND_WRIST: BodyJointFB = Self(19i32);
3101    pub const LEFT_HAND_THUMB_METACARPAL: BodyJointFB = Self(20i32);
3102    pub const LEFT_HAND_THUMB_PROXIMAL: BodyJointFB = Self(21i32);
3103    pub const LEFT_HAND_THUMB_DISTAL: BodyJointFB = Self(22i32);
3104    pub const LEFT_HAND_THUMB_TIP: BodyJointFB = Self(23i32);
3105    pub const LEFT_HAND_INDEX_METACARPAL: BodyJointFB = Self(24i32);
3106    pub const LEFT_HAND_INDEX_PROXIMAL: BodyJointFB = Self(25i32);
3107    pub const LEFT_HAND_INDEX_INTERMEDIATE: BodyJointFB = Self(26i32);
3108    pub const LEFT_HAND_INDEX_DISTAL: BodyJointFB = Self(27i32);
3109    pub const LEFT_HAND_INDEX_TIP: BodyJointFB = Self(28i32);
3110    pub const LEFT_HAND_MIDDLE_METACARPAL: BodyJointFB = Self(29i32);
3111    pub const LEFT_HAND_MIDDLE_PROXIMAL: BodyJointFB = Self(30i32);
3112    pub const LEFT_HAND_MIDDLE_INTERMEDIATE: BodyJointFB = Self(31i32);
3113    pub const LEFT_HAND_MIDDLE_DISTAL: BodyJointFB = Self(32i32);
3114    pub const LEFT_HAND_MIDDLE_TIP: BodyJointFB = Self(33i32);
3115    pub const LEFT_HAND_RING_METACARPAL: BodyJointFB = Self(34i32);
3116    pub const LEFT_HAND_RING_PROXIMAL: BodyJointFB = Self(35i32);
3117    pub const LEFT_HAND_RING_INTERMEDIATE: BodyJointFB = Self(36i32);
3118    pub const LEFT_HAND_RING_DISTAL: BodyJointFB = Self(37i32);
3119    pub const LEFT_HAND_RING_TIP: BodyJointFB = Self(38i32);
3120    pub const LEFT_HAND_LITTLE_METACARPAL: BodyJointFB = Self(39i32);
3121    pub const LEFT_HAND_LITTLE_PROXIMAL: BodyJointFB = Self(40i32);
3122    pub const LEFT_HAND_LITTLE_INTERMEDIATE: BodyJointFB = Self(41i32);
3123    pub const LEFT_HAND_LITTLE_DISTAL: BodyJointFB = Self(42i32);
3124    pub const LEFT_HAND_LITTLE_TIP: BodyJointFB = Self(43i32);
3125    pub const RIGHT_HAND_PALM: BodyJointFB = Self(44i32);
3126    pub const RIGHT_HAND_WRIST: BodyJointFB = Self(45i32);
3127    pub const RIGHT_HAND_THUMB_METACARPAL: BodyJointFB = Self(46i32);
3128    pub const RIGHT_HAND_THUMB_PROXIMAL: BodyJointFB = Self(47i32);
3129    pub const RIGHT_HAND_THUMB_DISTAL: BodyJointFB = Self(48i32);
3130    pub const RIGHT_HAND_THUMB_TIP: BodyJointFB = Self(49i32);
3131    pub const RIGHT_HAND_INDEX_METACARPAL: BodyJointFB = Self(50i32);
3132    pub const RIGHT_HAND_INDEX_PROXIMAL: BodyJointFB = Self(51i32);
3133    pub const RIGHT_HAND_INDEX_INTERMEDIATE: BodyJointFB = Self(52i32);
3134    pub const RIGHT_HAND_INDEX_DISTAL: BodyJointFB = Self(53i32);
3135    pub const RIGHT_HAND_INDEX_TIP: BodyJointFB = Self(54i32);
3136    pub const RIGHT_HAND_MIDDLE_METACARPAL: BodyJointFB = Self(55i32);
3137    pub const RIGHT_HAND_MIDDLE_PROXIMAL: BodyJointFB = Self(56i32);
3138    pub const RIGHT_HAND_MIDDLE_INTERMEDIATE: BodyJointFB = Self(57i32);
3139    pub const RIGHT_HAND_MIDDLE_DISTAL: BodyJointFB = Self(58i32);
3140    pub const RIGHT_HAND_MIDDLE_TIP: BodyJointFB = Self(59i32);
3141    pub const RIGHT_HAND_RING_METACARPAL: BodyJointFB = Self(60i32);
3142    pub const RIGHT_HAND_RING_PROXIMAL: BodyJointFB = Self(61i32);
3143    pub const RIGHT_HAND_RING_INTERMEDIATE: BodyJointFB = Self(62i32);
3144    pub const RIGHT_HAND_RING_DISTAL: BodyJointFB = Self(63i32);
3145    pub const RIGHT_HAND_RING_TIP: BodyJointFB = Self(64i32);
3146    pub const RIGHT_HAND_LITTLE_METACARPAL: BodyJointFB = Self(65i32);
3147    pub const RIGHT_HAND_LITTLE_PROXIMAL: BodyJointFB = Self(66i32);
3148    pub const RIGHT_HAND_LITTLE_INTERMEDIATE: BodyJointFB = Self(67i32);
3149    pub const RIGHT_HAND_LITTLE_DISTAL: BodyJointFB = Self(68i32);
3150    pub const RIGHT_HAND_LITTLE_TIP: BodyJointFB = Self(69i32);
3151    pub const COUNT: BodyJointFB = Self(70i32);
3152    pub const NONE: BodyJointFB = Self(-1i32);
3153    pub fn from_raw(x: i32) -> Self {
3154        Self(x)
3155    }
3156    pub fn into_raw(self) -> i32 {
3157        self.0
3158    }
3159}
3160impl fmt::Debug for BodyJointFB {
3161    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3162        let name = match *self {
3163            Self::ROOT => Some("ROOT"),
3164            Self::HIPS => Some("HIPS"),
3165            Self::SPINE_LOWER => Some("SPINE_LOWER"),
3166            Self::SPINE_MIDDLE => Some("SPINE_MIDDLE"),
3167            Self::SPINE_UPPER => Some("SPINE_UPPER"),
3168            Self::CHEST => Some("CHEST"),
3169            Self::NECK => Some("NECK"),
3170            Self::HEAD => Some("HEAD"),
3171            Self::LEFT_SHOULDER => Some("LEFT_SHOULDER"),
3172            Self::LEFT_SCAPULA => Some("LEFT_SCAPULA"),
3173            Self::LEFT_ARM_UPPER => Some("LEFT_ARM_UPPER"),
3174            Self::LEFT_ARM_LOWER => Some("LEFT_ARM_LOWER"),
3175            Self::LEFT_HAND_WRIST_TWIST => Some("LEFT_HAND_WRIST_TWIST"),
3176            Self::RIGHT_SHOULDER => Some("RIGHT_SHOULDER"),
3177            Self::RIGHT_SCAPULA => Some("RIGHT_SCAPULA"),
3178            Self::RIGHT_ARM_UPPER => Some("RIGHT_ARM_UPPER"),
3179            Self::RIGHT_ARM_LOWER => Some("RIGHT_ARM_LOWER"),
3180            Self::RIGHT_HAND_WRIST_TWIST => Some("RIGHT_HAND_WRIST_TWIST"),
3181            Self::LEFT_HAND_PALM => Some("LEFT_HAND_PALM"),
3182            Self::LEFT_HAND_WRIST => Some("LEFT_HAND_WRIST"),
3183            Self::LEFT_HAND_THUMB_METACARPAL => Some("LEFT_HAND_THUMB_METACARPAL"),
3184            Self::LEFT_HAND_THUMB_PROXIMAL => Some("LEFT_HAND_THUMB_PROXIMAL"),
3185            Self::LEFT_HAND_THUMB_DISTAL => Some("LEFT_HAND_THUMB_DISTAL"),
3186            Self::LEFT_HAND_THUMB_TIP => Some("LEFT_HAND_THUMB_TIP"),
3187            Self::LEFT_HAND_INDEX_METACARPAL => Some("LEFT_HAND_INDEX_METACARPAL"),
3188            Self::LEFT_HAND_INDEX_PROXIMAL => Some("LEFT_HAND_INDEX_PROXIMAL"),
3189            Self::LEFT_HAND_INDEX_INTERMEDIATE => Some("LEFT_HAND_INDEX_INTERMEDIATE"),
3190            Self::LEFT_HAND_INDEX_DISTAL => Some("LEFT_HAND_INDEX_DISTAL"),
3191            Self::LEFT_HAND_INDEX_TIP => Some("LEFT_HAND_INDEX_TIP"),
3192            Self::LEFT_HAND_MIDDLE_METACARPAL => Some("LEFT_HAND_MIDDLE_METACARPAL"),
3193            Self::LEFT_HAND_MIDDLE_PROXIMAL => Some("LEFT_HAND_MIDDLE_PROXIMAL"),
3194            Self::LEFT_HAND_MIDDLE_INTERMEDIATE => Some("LEFT_HAND_MIDDLE_INTERMEDIATE"),
3195            Self::LEFT_HAND_MIDDLE_DISTAL => Some("LEFT_HAND_MIDDLE_DISTAL"),
3196            Self::LEFT_HAND_MIDDLE_TIP => Some("LEFT_HAND_MIDDLE_TIP"),
3197            Self::LEFT_HAND_RING_METACARPAL => Some("LEFT_HAND_RING_METACARPAL"),
3198            Self::LEFT_HAND_RING_PROXIMAL => Some("LEFT_HAND_RING_PROXIMAL"),
3199            Self::LEFT_HAND_RING_INTERMEDIATE => Some("LEFT_HAND_RING_INTERMEDIATE"),
3200            Self::LEFT_HAND_RING_DISTAL => Some("LEFT_HAND_RING_DISTAL"),
3201            Self::LEFT_HAND_RING_TIP => Some("LEFT_HAND_RING_TIP"),
3202            Self::LEFT_HAND_LITTLE_METACARPAL => Some("LEFT_HAND_LITTLE_METACARPAL"),
3203            Self::LEFT_HAND_LITTLE_PROXIMAL => Some("LEFT_HAND_LITTLE_PROXIMAL"),
3204            Self::LEFT_HAND_LITTLE_INTERMEDIATE => Some("LEFT_HAND_LITTLE_INTERMEDIATE"),
3205            Self::LEFT_HAND_LITTLE_DISTAL => Some("LEFT_HAND_LITTLE_DISTAL"),
3206            Self::LEFT_HAND_LITTLE_TIP => Some("LEFT_HAND_LITTLE_TIP"),
3207            Self::RIGHT_HAND_PALM => Some("RIGHT_HAND_PALM"),
3208            Self::RIGHT_HAND_WRIST => Some("RIGHT_HAND_WRIST"),
3209            Self::RIGHT_HAND_THUMB_METACARPAL => Some("RIGHT_HAND_THUMB_METACARPAL"),
3210            Self::RIGHT_HAND_THUMB_PROXIMAL => Some("RIGHT_HAND_THUMB_PROXIMAL"),
3211            Self::RIGHT_HAND_THUMB_DISTAL => Some("RIGHT_HAND_THUMB_DISTAL"),
3212            Self::RIGHT_HAND_THUMB_TIP => Some("RIGHT_HAND_THUMB_TIP"),
3213            Self::RIGHT_HAND_INDEX_METACARPAL => Some("RIGHT_HAND_INDEX_METACARPAL"),
3214            Self::RIGHT_HAND_INDEX_PROXIMAL => Some("RIGHT_HAND_INDEX_PROXIMAL"),
3215            Self::RIGHT_HAND_INDEX_INTERMEDIATE => Some("RIGHT_HAND_INDEX_INTERMEDIATE"),
3216            Self::RIGHT_HAND_INDEX_DISTAL => Some("RIGHT_HAND_INDEX_DISTAL"),
3217            Self::RIGHT_HAND_INDEX_TIP => Some("RIGHT_HAND_INDEX_TIP"),
3218            Self::RIGHT_HAND_MIDDLE_METACARPAL => Some("RIGHT_HAND_MIDDLE_METACARPAL"),
3219            Self::RIGHT_HAND_MIDDLE_PROXIMAL => Some("RIGHT_HAND_MIDDLE_PROXIMAL"),
3220            Self::RIGHT_HAND_MIDDLE_INTERMEDIATE => Some("RIGHT_HAND_MIDDLE_INTERMEDIATE"),
3221            Self::RIGHT_HAND_MIDDLE_DISTAL => Some("RIGHT_HAND_MIDDLE_DISTAL"),
3222            Self::RIGHT_HAND_MIDDLE_TIP => Some("RIGHT_HAND_MIDDLE_TIP"),
3223            Self::RIGHT_HAND_RING_METACARPAL => Some("RIGHT_HAND_RING_METACARPAL"),
3224            Self::RIGHT_HAND_RING_PROXIMAL => Some("RIGHT_HAND_RING_PROXIMAL"),
3225            Self::RIGHT_HAND_RING_INTERMEDIATE => Some("RIGHT_HAND_RING_INTERMEDIATE"),
3226            Self::RIGHT_HAND_RING_DISTAL => Some("RIGHT_HAND_RING_DISTAL"),
3227            Self::RIGHT_HAND_RING_TIP => Some("RIGHT_HAND_RING_TIP"),
3228            Self::RIGHT_HAND_LITTLE_METACARPAL => Some("RIGHT_HAND_LITTLE_METACARPAL"),
3229            Self::RIGHT_HAND_LITTLE_PROXIMAL => Some("RIGHT_HAND_LITTLE_PROXIMAL"),
3230            Self::RIGHT_HAND_LITTLE_INTERMEDIATE => Some("RIGHT_HAND_LITTLE_INTERMEDIATE"),
3231            Self::RIGHT_HAND_LITTLE_DISTAL => Some("RIGHT_HAND_LITTLE_DISTAL"),
3232            Self::RIGHT_HAND_LITTLE_TIP => Some("RIGHT_HAND_LITTLE_TIP"),
3233            Self::COUNT => Some("COUNT"),
3234            Self::NONE => Some("NONE"),
3235            _ => None,
3236        };
3237        fmt_enum(fmt, self.0, name)
3238    }
3239}
3240#[doc = "Describes the set of body joints to track when creating an XrBodyTrackerFB. - see [XrBodyJointSetFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointSetFB)"]
3241#[repr(transparent)]
3242#[derive(Copy, Clone, Eq, PartialEq)]
3243pub struct BodyJointSetFB(i32);
3244impl BodyJointSetFB {
3245    #[doc = "Indicates that the created XrBodyTrackerFB tracks the set of body joints described by XrBodyJointFB enum, i.e. the xrLocateBodyJointsFB function returns an array of joint locations with the count of XR_BODY_JOINT_COUNT_FB and can be indexed using XrBodyJointFB."]
3246    pub const DEFAULT: BodyJointSetFB = Self(0i32);
3247    pub fn from_raw(x: i32) -> Self {
3248        Self(x)
3249    }
3250    pub fn into_raw(self) -> i32 {
3251        self.0
3252    }
3253}
3254impl fmt::Debug for BodyJointSetFB {
3255    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3256        let name = match *self {
3257            Self::DEFAULT => Some("DEFAULT"),
3258            _ => None,
3259        };
3260        fmt_enum(fmt, self.0, name)
3261    }
3262}
3263#[doc = "See [XrEyePositionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyePositionFB)"]
3264#[repr(transparent)]
3265#[derive(Copy, Clone, Eq, PartialEq)]
3266pub struct EyePositionFB(i32);
3267impl EyePositionFB {
3268    #[doc = "Specifies the position of the left eye."]
3269    pub const LEFT: EyePositionFB = Self(0i32);
3270    #[doc = "Specifies the position of the right eye."]
3271    pub const RIGHT: EyePositionFB = Self(1i32);
3272    pub const COUNT: EyePositionFB = Self(2i32);
3273    pub fn from_raw(x: i32) -> Self {
3274        Self(x)
3275    }
3276    pub fn into_raw(self) -> i32 {
3277        self.0
3278    }
3279}
3280impl fmt::Debug for EyePositionFB {
3281    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3282        let name = match *self {
3283            Self::LEFT => Some("LEFT"),
3284            Self::RIGHT => Some("RIGHT"),
3285            Self::COUNT => Some("COUNT"),
3286            _ => None,
3287        };
3288        fmt_enum(fmt, self.0, name)
3289    }
3290}
3291#[doc = "See [XrTrackingOptimizationSettingsDomainQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTrackingOptimizationSettingsDomainQCOM)"]
3292#[repr(transparent)]
3293#[derive(Copy, Clone, Eq, PartialEq)]
3294pub struct TrackingOptimizationSettingsDomainQCOM(i32);
3295impl TrackingOptimizationSettingsDomainQCOM {
3296    #[doc = "Setting applies to all QCOM tracking extensions."]
3297    pub const ALL: TrackingOptimizationSettingsDomainQCOM = Self(1i32);
3298    pub fn from_raw(x: i32) -> Self {
3299        Self(x)
3300    }
3301    pub fn into_raw(self) -> i32 {
3302        self.0
3303    }
3304}
3305impl fmt::Debug for TrackingOptimizationSettingsDomainQCOM {
3306    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3307        let name = match *self {
3308            Self::ALL => Some("ALL"),
3309            _ => None,
3310        };
3311        fmt_enum(fmt, self.0, name)
3312    }
3313}
3314#[doc = "See [XrTrackingOptimizationSettingsHintQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTrackingOptimizationSettingsHintQCOM)"]
3315#[repr(transparent)]
3316#[derive(Copy, Clone, Eq, PartialEq)]
3317pub struct TrackingOptimizationSettingsHintQCOM(i32);
3318impl TrackingOptimizationSettingsHintQCOM {
3319    #[doc = "Used by the application to indicate that it does not have a preference to optimize for. The run-time is understood to choose a balanced approach."]
3320    pub const NONE: TrackingOptimizationSettingsHintQCOM = Self(0i32);
3321    #[doc = "Used by the application to indicate that it prefers tracking to be optimized for long range, possibly at the expense of competing interests."]
3322    pub const LONG_RANGE_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(1i32);
3323    #[doc = "Used by the application to indicate that it prefers tracking to be optimized for close range, possibly at the expense of competing interests."]
3324    pub const CLOSE_RANGE_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(2i32);
3325    #[doc = "Used by the application to indicate that it prefers tracking to be optimized for low power consumption, possibly at the expense of competing interests."]
3326    pub const LOW_POWER_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(3i32);
3327    #[doc = "Used by the application to indicate that it prefers tracking to be optimized for increased tracking performance, possibly at the cost of increased power consumption."]
3328    pub const HIGH_POWER_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(4i32);
3329    pub fn from_raw(x: i32) -> Self {
3330        Self(x)
3331    }
3332    pub fn into_raw(self) -> i32 {
3333        self.0
3334    }
3335}
3336impl fmt::Debug for TrackingOptimizationSettingsHintQCOM {
3337    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3338        let name = match *self {
3339            Self::NONE => Some("NONE"),
3340            Self::LONG_RANGE_PRIORIZATION => Some("LONG_RANGE_PRIORIZATION"),
3341            Self::CLOSE_RANGE_PRIORIZATION => Some("CLOSE_RANGE_PRIORIZATION"),
3342            Self::LOW_POWER_PRIORIZATION => Some("LOW_POWER_PRIORIZATION"),
3343            Self::HIGH_POWER_PRIORIZATION => Some("HIGH_POWER_PRIORIZATION"),
3344            _ => None,
3345        };
3346        fmt_enum(fmt, self.0, name)
3347    }
3348}
3349#[doc = "See [XrForceFeedbackCurlLocationMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlLocationMNDX)"]
3350#[repr(transparent)]
3351#[derive(Copy, Clone, Eq, PartialEq)]
3352pub struct ForceFeedbackCurlLocationMNDX(i32);
3353impl ForceFeedbackCurlLocationMNDX {
3354    #[doc = "force feedback for thumb curl"]
3355    pub const THUMB_CURL: ForceFeedbackCurlLocationMNDX = Self(0i32);
3356    #[doc = "force feedback for index finger curl"]
3357    pub const INDEX_CURL: ForceFeedbackCurlLocationMNDX = Self(1i32);
3358    #[doc = "force feedback for middle finger curl"]
3359    pub const MIDDLE_CURL: ForceFeedbackCurlLocationMNDX = Self(2i32);
3360    #[doc = "force feedback for ring finger curl"]
3361    pub const RING_CURL: ForceFeedbackCurlLocationMNDX = Self(3i32);
3362    #[doc = "force feedback for little finger curl"]
3363    pub const LITTLE_CURL: ForceFeedbackCurlLocationMNDX = Self(4i32);
3364    pub fn from_raw(x: i32) -> Self {
3365        Self(x)
3366    }
3367    pub fn into_raw(self) -> i32 {
3368        self.0
3369    }
3370}
3371impl fmt::Debug for ForceFeedbackCurlLocationMNDX {
3372    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3373        let name = match *self {
3374            Self::THUMB_CURL => Some("THUMB_CURL"),
3375            Self::INDEX_CURL => Some("INDEX_CURL"),
3376            Self::MIDDLE_CURL => Some("MIDDLE_CURL"),
3377            Self::RING_CURL => Some("RING_CURL"),
3378            Self::LITTLE_CURL => Some("LITTLE_CURL"),
3379            _ => None,
3380        };
3381        fmt_enum(fmt, self.0, name)
3382    }
3383}
3384#[doc = "See [XrPlaneDetectionStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectionStateEXT)"]
3385#[repr(transparent)]
3386#[derive(Copy, Clone, Eq, PartialEq)]
3387pub struct PlaneDetectionStateEXT(i32);
3388impl PlaneDetectionStateEXT {
3389    pub const NONE: PlaneDetectionStateEXT = Self(0i32);
3390    pub const PENDING: PlaneDetectionStateEXT = Self(1i32);
3391    pub const DONE: PlaneDetectionStateEXT = Self(2i32);
3392    pub const ERROR: PlaneDetectionStateEXT = Self(3i32);
3393    pub const FATAL: PlaneDetectionStateEXT = Self(4i32);
3394    pub fn from_raw(x: i32) -> Self {
3395        Self(x)
3396    }
3397    pub fn into_raw(self) -> i32 {
3398        self.0
3399    }
3400}
3401impl fmt::Debug for PlaneDetectionStateEXT {
3402    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3403        let name = match *self {
3404            Self::NONE => Some("NONE"),
3405            Self::PENDING => Some("PENDING"),
3406            Self::DONE => Some("DONE"),
3407            Self::ERROR => Some("ERROR"),
3408            Self::FATAL => Some("FATAL"),
3409            _ => None,
3410        };
3411        fmt_enum(fmt, self.0, name)
3412    }
3413}
3414#[doc = "See [XrPlaneDetectorOrientationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorOrientationEXT)"]
3415#[repr(transparent)]
3416#[derive(Copy, Clone, Eq, PartialEq)]
3417pub struct PlaneDetectorOrientationEXT(i32);
3418impl PlaneDetectorOrientationEXT {
3419    #[doc = "The detected plane is horizontal and faces upward (e.g. floor)."]
3420    pub const HORIZONTAL_UPWARD: PlaneDetectorOrientationEXT = Self(0i32);
3421    #[doc = "The detected plane is horizontal and faces downward (e.g. ceiling)."]
3422    pub const HORIZONTAL_DOWNWARD: PlaneDetectorOrientationEXT = Self(1i32);
3423    #[doc = "The detected plane is vertical (e.g. wall)."]
3424    pub const VERTICAL: PlaneDetectorOrientationEXT = Self(2i32);
3425    #[doc = "The detected plane has an arbitrary, non-vertical and non-horizontal orientation."]
3426    pub const ARBITRARY: PlaneDetectorOrientationEXT = Self(3i32);
3427    pub fn from_raw(x: i32) -> Self {
3428        Self(x)
3429    }
3430    pub fn into_raw(self) -> i32 {
3431        self.0
3432    }
3433}
3434impl fmt::Debug for PlaneDetectorOrientationEXT {
3435    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3436        let name = match *self {
3437            Self::HORIZONTAL_UPWARD => Some("HORIZONTAL_UPWARD"),
3438            Self::HORIZONTAL_DOWNWARD => Some("HORIZONTAL_DOWNWARD"),
3439            Self::VERTICAL => Some("VERTICAL"),
3440            Self::ARBITRARY => Some("ARBITRARY"),
3441            _ => None,
3442        };
3443        fmt_enum(fmt, self.0, name)
3444    }
3445}
3446#[doc = "See [XrPlaneDetectorSemanticTypeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorSemanticTypeEXT)"]
3447#[repr(transparent)]
3448#[derive(Copy, Clone, Eq, PartialEq)]
3449pub struct PlaneDetectorSemanticTypeEXT(i32);
3450impl PlaneDetectorSemanticTypeEXT {
3451    #[doc = "The runtime was unable to classify this plane."]
3452    pub const UNDEFINED: PlaneDetectorSemanticTypeEXT = Self(0i32);
3453    #[doc = "The detected plane is a ceiling."]
3454    pub const CEILING: PlaneDetectorSemanticTypeEXT = Self(1i32);
3455    #[doc = "The detected plane is a floor."]
3456    pub const FLOOR: PlaneDetectorSemanticTypeEXT = Self(2i32);
3457    #[doc = "The detected plane is a wall."]
3458    pub const WALL: PlaneDetectorSemanticTypeEXT = Self(3i32);
3459    #[doc = "The detected plane is a platform, like a table."]
3460    pub const PLATFORM: PlaneDetectorSemanticTypeEXT = Self(4i32);
3461    pub fn from_raw(x: i32) -> Self {
3462        Self(x)
3463    }
3464    pub fn into_raw(self) -> i32 {
3465        self.0
3466    }
3467}
3468impl fmt::Debug for PlaneDetectorSemanticTypeEXT {
3469    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3470        let name = match *self {
3471            Self::UNDEFINED => Some("UNDEFINED"),
3472            Self::CEILING => Some("CEILING"),
3473            Self::FLOOR => Some("FLOOR"),
3474            Self::WALL => Some("WALL"),
3475            Self::PLATFORM => Some("PLATFORM"),
3476            _ => None,
3477        };
3478        fmt_enum(fmt, self.0, name)
3479    }
3480}
3481#[doc = "See [XrVirtualKeyboardLocationTypeMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardLocationTypeMETA)"]
3482#[repr(transparent)]
3483#[derive(Copy, Clone, Eq, PartialEq)]
3484pub struct VirtualKeyboardLocationTypeMETA(i32);
3485impl VirtualKeyboardLocationTypeMETA {
3486    #[doc = "Indicates that the application will provide the position and scale of the keyboard."]
3487    pub const CUSTOM: VirtualKeyboardLocationTypeMETA = Self(0i32);
3488    #[doc = "Indicates that the runtime will set the position and scale for far field keyboard."]
3489    pub const FAR: VirtualKeyboardLocationTypeMETA = Self(1i32);
3490    #[doc = "Indicates that the runtime will set the position and scale for direct interaction keyboard."]
3491    pub const DIRECT: VirtualKeyboardLocationTypeMETA = Self(2i32);
3492    pub fn from_raw(x: i32) -> Self {
3493        Self(x)
3494    }
3495    pub fn into_raw(self) -> i32 {
3496        self.0
3497    }
3498}
3499impl fmt::Debug for VirtualKeyboardLocationTypeMETA {
3500    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3501        let name = match *self {
3502            Self::CUSTOM => Some("CUSTOM"),
3503            Self::FAR => Some("FAR"),
3504            Self::DIRECT => Some("DIRECT"),
3505            _ => None,
3506        };
3507        fmt_enum(fmt, self.0, name)
3508    }
3509}
3510#[doc = "See [XrVirtualKeyboardInputSourceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputSourceMETA)"]
3511#[repr(transparent)]
3512#[derive(Copy, Clone, Eq, PartialEq)]
3513pub struct VirtualKeyboardInputSourceMETA(i32);
3514impl VirtualKeyboardInputSourceMETA {
3515    #[doc = "Left controller ray."]
3516    pub const CONTROLLER_RAY_LEFT: VirtualKeyboardInputSourceMETA = Self(1i32);
3517    #[doc = "Right controller ray."]
3518    pub const CONTROLLER_RAY_RIGHT: VirtualKeyboardInputSourceMETA = Self(2i32);
3519    #[doc = "Left hand ray."]
3520    pub const HAND_RAY_LEFT: VirtualKeyboardInputSourceMETA = Self(3i32);
3521    #[doc = "Right hand ray."]
3522    pub const HAND_RAY_RIGHT: VirtualKeyboardInputSourceMETA = Self(4i32);
3523    #[doc = "Left controller direct touch."]
3524    pub const CONTROLLER_DIRECT_LEFT: VirtualKeyboardInputSourceMETA = Self(5i32);
3525    #[doc = "Right controller direct touch."]
3526    pub const CONTROLLER_DIRECT_RIGHT: VirtualKeyboardInputSourceMETA = Self(6i32);
3527    #[doc = "Left hand direct touch."]
3528    pub const HAND_DIRECT_INDEX_TIP_LEFT: VirtualKeyboardInputSourceMETA = Self(7i32);
3529    #[doc = "Right hand direct touch."]
3530    pub const HAND_DIRECT_INDEX_TIP_RIGHT: VirtualKeyboardInputSourceMETA = Self(8i32);
3531    pub fn from_raw(x: i32) -> Self {
3532        Self(x)
3533    }
3534    pub fn into_raw(self) -> i32 {
3535        self.0
3536    }
3537}
3538impl fmt::Debug for VirtualKeyboardInputSourceMETA {
3539    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3540        let name = match *self {
3541            Self::CONTROLLER_RAY_LEFT => Some("CONTROLLER_RAY_LEFT"),
3542            Self::CONTROLLER_RAY_RIGHT => Some("CONTROLLER_RAY_RIGHT"),
3543            Self::HAND_RAY_LEFT => Some("HAND_RAY_LEFT"),
3544            Self::HAND_RAY_RIGHT => Some("HAND_RAY_RIGHT"),
3545            Self::CONTROLLER_DIRECT_LEFT => Some("CONTROLLER_DIRECT_LEFT"),
3546            Self::CONTROLLER_DIRECT_RIGHT => Some("CONTROLLER_DIRECT_RIGHT"),
3547            Self::HAND_DIRECT_INDEX_TIP_LEFT => Some("HAND_DIRECT_INDEX_TIP_LEFT"),
3548            Self::HAND_DIRECT_INDEX_TIP_RIGHT => Some("HAND_DIRECT_INDEX_TIP_RIGHT"),
3549            _ => None,
3550        };
3551        fmt_enum(fmt, self.0, name)
3552    }
3553}
3554#[doc = "See [XrHeadsetFitStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHeadsetFitStatusML)"]
3555#[repr(transparent)]
3556#[derive(Copy, Clone, Eq, PartialEq)]
3557pub struct HeadsetFitStatusML(i32);
3558impl HeadsetFitStatusML {
3559    #[doc = "Headset fit status not available for unknown reason."]
3560    pub const UNKNOWN: HeadsetFitStatusML = Self(0i32);
3561    #[doc = "Headset not worn."]
3562    pub const NOT_WORN: HeadsetFitStatusML = Self(1i32);
3563    #[doc = "Good fit."]
3564    pub const GOOD_FIT: HeadsetFitStatusML = Self(2i32);
3565    #[doc = "Bad fit."]
3566    pub const BAD_FIT: HeadsetFitStatusML = Self(3i32);
3567    pub fn from_raw(x: i32) -> Self {
3568        Self(x)
3569    }
3570    pub fn into_raw(self) -> i32 {
3571        self.0
3572    }
3573}
3574impl fmt::Debug for HeadsetFitStatusML {
3575    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3576        let name = match *self {
3577            Self::UNKNOWN => Some("UNKNOWN"),
3578            Self::NOT_WORN => Some("NOT_WORN"),
3579            Self::GOOD_FIT => Some("GOOD_FIT"),
3580            Self::BAD_FIT => Some("BAD_FIT"),
3581            _ => None,
3582        };
3583        fmt_enum(fmt, self.0, name)
3584    }
3585}
3586#[doc = "See [XrEyeCalibrationStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeCalibrationStatusML)"]
3587#[repr(transparent)]
3588#[derive(Copy, Clone, Eq, PartialEq)]
3589pub struct EyeCalibrationStatusML(i32);
3590impl EyeCalibrationStatusML {
3591    #[doc = "Eye calibration status not available for unknown reason."]
3592    pub const UNKNOWN: EyeCalibrationStatusML = Self(0i32);
3593    #[doc = "User has not performed the eye calibration step. Use system provided app to perform eye calibration."]
3594    pub const NONE: EyeCalibrationStatusML = Self(1i32);
3595    #[doc = "Eye calibration is of lower accuracy."]
3596    pub const COARSE: EyeCalibrationStatusML = Self(2i32);
3597    #[doc = "Eye calibration is of higher accuracy."]
3598    pub const FINE: EyeCalibrationStatusML = Self(3i32);
3599    pub fn from_raw(x: i32) -> Self {
3600        Self(x)
3601    }
3602    pub fn into_raw(self) -> i32 {
3603        self.0
3604    }
3605}
3606impl fmt::Debug for EyeCalibrationStatusML {
3607    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3608        let name = match *self {
3609            Self::UNKNOWN => Some("UNKNOWN"),
3610            Self::NONE => Some("NONE"),
3611            Self::COARSE => Some("COARSE"),
3612            Self::FINE => Some("FINE"),
3613            _ => None,
3614        };
3615        fmt_enum(fmt, self.0, name)
3616    }
3617}
3618#[doc = "See [XrLocalizationMapStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapStateML)"]
3619#[repr(transparent)]
3620#[derive(Copy, Clone, Eq, PartialEq)]
3621pub struct LocalizationMapStateML(i32);
3622impl LocalizationMapStateML {
3623    #[doc = "The system is not localized into a map. Features like Spatial Anchors relying on localization will not work."]
3624    pub const NOT_LOCALIZED: LocalizationMapStateML = Self(0i32);
3625    #[doc = "The system is localized into a map."]
3626    pub const LOCALIZED: LocalizationMapStateML = Self(1i32);
3627    #[doc = "The system is localizing into a map."]
3628    pub const LOCALIZATION_PENDING: LocalizationMapStateML = Self(2i32);
3629    #[doc = "Initial localization failed, the system will retry localization."]
3630    pub const LOCALIZATION_SLEEPING_BEFORE_RETRY: LocalizationMapStateML = Self(3i32);
3631    pub fn from_raw(x: i32) -> Self {
3632        Self(x)
3633    }
3634    pub fn into_raw(self) -> i32 {
3635        self.0
3636    }
3637}
3638impl fmt::Debug for LocalizationMapStateML {
3639    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3640        let name = match *self {
3641            Self::NOT_LOCALIZED => Some("NOT_LOCALIZED"),
3642            Self::LOCALIZED => Some("LOCALIZED"),
3643            Self::LOCALIZATION_PENDING => Some("LOCALIZATION_PENDING"),
3644            Self::LOCALIZATION_SLEEPING_BEFORE_RETRY => Some("LOCALIZATION_SLEEPING_BEFORE_RETRY"),
3645            _ => None,
3646        };
3647        fmt_enum(fmt, self.0, name)
3648    }
3649}
3650#[doc = "See [XrLocalizationMapTypeML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapTypeML)"]
3651#[repr(transparent)]
3652#[derive(Copy, Clone, Eq, PartialEq)]
3653pub struct LocalizationMapTypeML(i32);
3654impl LocalizationMapTypeML {
3655    #[doc = "The system is localized into an On-Device map, published anchors are not shared between different devices."]
3656    pub const ON_DEVICE: LocalizationMapTypeML = Self(0i32);
3657    #[doc = "The system is localized into a Cloud Map, anchors are shared per cloud account settings."]
3658    pub const CLOUD: LocalizationMapTypeML = Self(1i32);
3659    pub fn from_raw(x: i32) -> Self {
3660        Self(x)
3661    }
3662    pub fn into_raw(self) -> i32 {
3663        self.0
3664    }
3665}
3666impl fmt::Debug for LocalizationMapTypeML {
3667    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3668        let name = match *self {
3669            Self::ON_DEVICE => Some("ON_DEVICE"),
3670            Self::CLOUD => Some("CLOUD"),
3671            _ => None,
3672        };
3673        fmt_enum(fmt, self.0, name)
3674    }
3675}
3676#[doc = "See [XrLocalizationMapConfidenceML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapConfidenceML)"]
3677#[repr(transparent)]
3678#[derive(Copy, Clone, Eq, PartialEq)]
3679pub struct LocalizationMapConfidenceML(i32);
3680impl LocalizationMapConfidenceML {
3681    #[doc = "The localization map has poor confidence, systems relying on the localization map are likely to have poor performance."]
3682    pub const POOR: LocalizationMapConfidenceML = Self(0i32);
3683    #[doc = "The confidence is fair, current environmental conditions may adversely affect localization."]
3684    pub const FAIR: LocalizationMapConfidenceML = Self(1i32);
3685    #[doc = "The confidence is high, persistent content should be stable."]
3686    pub const GOOD: LocalizationMapConfidenceML = Self(2i32);
3687    #[doc = "This is a very high-confidence localization, persistent content will be very stable."]
3688    pub const EXCELLENT: LocalizationMapConfidenceML = Self(3i32);
3689    pub fn from_raw(x: i32) -> Self {
3690        Self(x)
3691    }
3692    pub fn into_raw(self) -> i32 {
3693        self.0
3694    }
3695}
3696impl fmt::Debug for LocalizationMapConfidenceML {
3697    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3698        let name = match *self {
3699            Self::POOR => Some("POOR"),
3700            Self::FAIR => Some("FAIR"),
3701            Self::GOOD => Some("GOOD"),
3702            Self::EXCELLENT => Some("EXCELLENT"),
3703            _ => None,
3704        };
3705        fmt_enum(fmt, self.0, name)
3706    }
3707}
3708#[doc = "See [XrMarkerDetectorProfileML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorProfileML)"]
3709#[repr(transparent)]
3710#[derive(Copy, Clone, Eq, PartialEq)]
3711pub struct MarkerDetectorProfileML(i32);
3712impl MarkerDetectorProfileML {
3713    #[doc = "Tracker profile that covers standard use cases. If this does not suite the needs of the application try the other profiles listed below."]
3714    pub const DEFAULT: MarkerDetectorProfileML = Self(0i32);
3715    #[doc = "Optimized for speed. Use this profile to reduce the compute load and increase detection/tracker speed. This can result in low accuracy poses."]
3716    pub const SPEED: MarkerDetectorProfileML = Self(1i32);
3717    #[doc = "Optimized for accuracy. Use this profile to optimize for accurate marker poses. This can cause increased load on the compute."]
3718    pub const ACCURACY: MarkerDetectorProfileML = Self(2i32);
3719    #[doc = "Optimized for small targets. Use this profile to optimize for markers that are small or for larger markers that need to be detected from afar."]
3720    pub const SMALL_TARGETS: MarkerDetectorProfileML = Self(3i32);
3721    #[doc = "Optimized for FoV. Use this profile to be able to detect markers across a larger FoV. The marker tracker system will attempt to use multiple cameras to detect the markers."]
3722    pub const LARGE_FOV: MarkerDetectorProfileML = Self(4i32);
3723    #[doc = "Custom Tracker Profile. The application can define a custom tracker profile. See XrMarkerDetectorCustomProfileInfoML for more details."]
3724    pub const CUSTOM: MarkerDetectorProfileML = Self(5i32);
3725    pub fn from_raw(x: i32) -> Self {
3726        Self(x)
3727    }
3728    pub fn into_raw(self) -> i32 {
3729        self.0
3730    }
3731}
3732impl fmt::Debug for MarkerDetectorProfileML {
3733    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3734        let name = match *self {
3735            Self::DEFAULT => Some("DEFAULT"),
3736            Self::SPEED => Some("SPEED"),
3737            Self::ACCURACY => Some("ACCURACY"),
3738            Self::SMALL_TARGETS => Some("SMALL_TARGETS"),
3739            Self::LARGE_FOV => Some("LARGE_FOV"),
3740            Self::CUSTOM => Some("CUSTOM"),
3741            _ => None,
3742        };
3743        fmt_enum(fmt, self.0, name)
3744    }
3745}
3746#[doc = "See [XrMarkerTypeML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerTypeML)"]
3747#[repr(transparent)]
3748#[derive(Copy, Clone, Eq, PartialEq)]
3749pub struct MarkerTypeML(i32);
3750impl MarkerTypeML {
3751    #[doc = "Aruco Marker detection and localization. The marker id of the Aruco marker is available via xrGetMarkerNumberML."]
3752    pub const ARUCO: MarkerTypeML = Self(0i32);
3753    #[doc = "AprilTag detection and localization. The marker id of the AprilTags is available via xrGetMarkerNumberML."]
3754    pub const APRIL_TAG: MarkerTypeML = Self(1i32);
3755    #[doc = "QR code detection and localization. The contents of the QR code is available via xrGetMarkerStringML."]
3756    pub const QR: MarkerTypeML = Self(2i32);
3757    #[doc = "EAN-13, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
3758    pub const EAN_13: MarkerTypeML = Self(3i32);
3759    #[doc = "UPC-A, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
3760    pub const UPC_A: MarkerTypeML = Self(4i32);
3761    #[doc = "Code 128, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
3762    pub const CODE_128: MarkerTypeML = Self(5i32);
3763    pub fn from_raw(x: i32) -> Self {
3764        Self(x)
3765    }
3766    pub fn into_raw(self) -> i32 {
3767        self.0
3768    }
3769}
3770impl fmt::Debug for MarkerTypeML {
3771    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3772        let name = match *self {
3773            Self::ARUCO => Some("ARUCO"),
3774            Self::APRIL_TAG => Some("APRIL_TAG"),
3775            Self::QR => Some("QR"),
3776            Self::EAN_13 => Some("EAN_13"),
3777            Self::UPC_A => Some("UPC_A"),
3778            Self::CODE_128 => Some("CODE_128"),
3779            _ => None,
3780        };
3781        fmt_enum(fmt, self.0, name)
3782    }
3783}
3784#[doc = "See [XrMarkerArucoDictML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerArucoDictML)"]
3785#[repr(transparent)]
3786#[derive(Copy, Clone, Eq, PartialEq)]
3787pub struct MarkerArucoDictML(i32);
3788impl MarkerArucoDictML {
3789    #[doc = "4 by 4 pixel Aruco marker dictionary with 50 IDs."]
3790    pub const DICT_4X4_50: MarkerArucoDictML = Self(0i32);
3791    #[doc = "4 by 4 pixel Aruco marker dictionary with 100 IDs."]
3792    pub const DICT_4X4_100: MarkerArucoDictML = Self(1i32);
3793    #[doc = "4 by 4 pixel Aruco marker dictionary with 250 IDs."]
3794    pub const DICT_4X4_250: MarkerArucoDictML = Self(2i32);
3795    #[doc = "4 by 4 pixel Aruco marker dictionary with 1000 IDs."]
3796    pub const DICT_4X4_1000: MarkerArucoDictML = Self(3i32);
3797    #[doc = "5 by 5 pixel Aruco marker dictionary with 50 IDs."]
3798    pub const DICT_5X5_50: MarkerArucoDictML = Self(4i32);
3799    #[doc = "5 by 5 pixel Aruco marker dictionary with 100 IDs."]
3800    pub const DICT_5X5_100: MarkerArucoDictML = Self(5i32);
3801    #[doc = "5 by 5 pixel Aruco marker dictionary with 250 IDs."]
3802    pub const DICT_5X5_250: MarkerArucoDictML = Self(6i32);
3803    #[doc = "5 by 5 pixel Aruco marker dictionary with 1000 IDs."]
3804    pub const DICT_5X5_1000: MarkerArucoDictML = Self(7i32);
3805    #[doc = "6 by 6 pixel Aruco marker dictionary with 50 IDs."]
3806    pub const DICT_6X6_50: MarkerArucoDictML = Self(8i32);
3807    #[doc = "6 by 6 pixel Aruco marker dictionary with 100 IDs."]
3808    pub const DICT_6X6_100: MarkerArucoDictML = Self(9i32);
3809    #[doc = "6 by 6 pixel Aruco marker dictionary with 250 IDs."]
3810    pub const DICT_6X6_250: MarkerArucoDictML = Self(10i32);
3811    #[doc = "6 by 6 pixel Aruco marker dictionary with 1000 IDs."]
3812    pub const DICT_6X6_1000: MarkerArucoDictML = Self(11i32);
3813    #[doc = "7 by 7 pixel Aruco marker dictionary with 50 IDs."]
3814    pub const DICT_7X7_50: MarkerArucoDictML = Self(12i32);
3815    #[doc = "7 by 7 pixel Aruco marker dictionary with 100 IDs."]
3816    pub const DICT_7X7_100: MarkerArucoDictML = Self(13i32);
3817    #[doc = "7 by 7 pixel Aruco marker dictionary with 250 IDs."]
3818    pub const DICT_7X7_250: MarkerArucoDictML = Self(14i32);
3819    #[doc = "7 by 7 pixel Aruco marker dictionary with 1000 IDs."]
3820    pub const DICT_7X7_1000: MarkerArucoDictML = Self(15i32);
3821    pub fn from_raw(x: i32) -> Self {
3822        Self(x)
3823    }
3824    pub fn into_raw(self) -> i32 {
3825        self.0
3826    }
3827}
3828impl fmt::Debug for MarkerArucoDictML {
3829    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3830        let name = match *self {
3831            Self::DICT_4X4_50 => Some("DICT_4X4_50"),
3832            Self::DICT_4X4_100 => Some("DICT_4X4_100"),
3833            Self::DICT_4X4_250 => Some("DICT_4X4_250"),
3834            Self::DICT_4X4_1000 => Some("DICT_4X4_1000"),
3835            Self::DICT_5X5_50 => Some("DICT_5X5_50"),
3836            Self::DICT_5X5_100 => Some("DICT_5X5_100"),
3837            Self::DICT_5X5_250 => Some("DICT_5X5_250"),
3838            Self::DICT_5X5_1000 => Some("DICT_5X5_1000"),
3839            Self::DICT_6X6_50 => Some("DICT_6X6_50"),
3840            Self::DICT_6X6_100 => Some("DICT_6X6_100"),
3841            Self::DICT_6X6_250 => Some("DICT_6X6_250"),
3842            Self::DICT_6X6_1000 => Some("DICT_6X6_1000"),
3843            Self::DICT_7X7_50 => Some("DICT_7X7_50"),
3844            Self::DICT_7X7_100 => Some("DICT_7X7_100"),
3845            Self::DICT_7X7_250 => Some("DICT_7X7_250"),
3846            Self::DICT_7X7_1000 => Some("DICT_7X7_1000"),
3847            _ => None,
3848        };
3849        fmt_enum(fmt, self.0, name)
3850    }
3851}
3852#[doc = "See [XrMarkerAprilTagDictML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerAprilTagDictML)"]
3853#[repr(transparent)]
3854#[derive(Copy, Clone, Eq, PartialEq)]
3855pub struct MarkerAprilTagDictML(i32);
3856impl MarkerAprilTagDictML {
3857    #[doc = "4 by 4 bits, minimum Hamming distance between any two codes = 5, 30 codes."]
3858    pub const DICT_16H5: MarkerAprilTagDictML = Self(0i32);
3859    #[doc = "5 by 5 bits, minimum Hamming distance between any two codes = 9, 35 codes."]
3860    pub const DICT_25H9: MarkerAprilTagDictML = Self(1i32);
3861    #[doc = "6 by 6 bits, minimum Hamming distance between any two codes = 10, 2320 codes."]
3862    pub const DICT_36H10: MarkerAprilTagDictML = Self(2i32);
3863    #[doc = "6 by 6 bits, minimum Hamming distance between any two codes = 11, 587 codes."]
3864    pub const DICT_36H11: MarkerAprilTagDictML = Self(3i32);
3865    pub fn from_raw(x: i32) -> Self {
3866        Self(x)
3867    }
3868    pub fn into_raw(self) -> i32 {
3869        self.0
3870    }
3871}
3872impl fmt::Debug for MarkerAprilTagDictML {
3873    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3874        let name = match *self {
3875            Self::DICT_16H5 => Some("DICT_16H5"),
3876            Self::DICT_25H9 => Some("DICT_25H9"),
3877            Self::DICT_36H10 => Some("DICT_36H10"),
3878            Self::DICT_36H11 => Some("DICT_36H11"),
3879            _ => None,
3880        };
3881        fmt_enum(fmt, self.0, name)
3882    }
3883}
3884#[doc = "See [XrMarkerDetectorFpsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorFpsML)"]
3885#[repr(transparent)]
3886#[derive(Copy, Clone, Eq, PartialEq)]
3887pub struct MarkerDetectorFpsML(i32);
3888impl MarkerDetectorFpsML {
3889    #[doc = "Low FPS."]
3890    pub const LOW: MarkerDetectorFpsML = Self(0i32);
3891    #[doc = "Medium FPS."]
3892    pub const MEDIUM: MarkerDetectorFpsML = Self(1i32);
3893    #[doc = "High FPS."]
3894    pub const HIGH: MarkerDetectorFpsML = Self(2i32);
3895    #[doc = "Max possible FPS."]
3896    pub const MAX: MarkerDetectorFpsML = Self(3i32);
3897    pub fn from_raw(x: i32) -> Self {
3898        Self(x)
3899    }
3900    pub fn into_raw(self) -> i32 {
3901        self.0
3902    }
3903}
3904impl fmt::Debug for MarkerDetectorFpsML {
3905    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3906        let name = match *self {
3907            Self::LOW => Some("LOW"),
3908            Self::MEDIUM => Some("MEDIUM"),
3909            Self::HIGH => Some("HIGH"),
3910            Self::MAX => Some("MAX"),
3911            _ => None,
3912        };
3913        fmt_enum(fmt, self.0, name)
3914    }
3915}
3916#[doc = "See [XrMarkerDetectorResolutionML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorResolutionML)"]
3917#[repr(transparent)]
3918#[derive(Copy, Clone, Eq, PartialEq)]
3919pub struct MarkerDetectorResolutionML(i32);
3920impl MarkerDetectorResolutionML {
3921    #[doc = "Low Resolution."]
3922    pub const LOW: MarkerDetectorResolutionML = Self(0i32);
3923    #[doc = "Medium Resolution."]
3924    pub const MEDIUM: MarkerDetectorResolutionML = Self(1i32);
3925    #[doc = "High Resolution."]
3926    pub const HIGH: MarkerDetectorResolutionML = Self(2i32);
3927    pub fn from_raw(x: i32) -> Self {
3928        Self(x)
3929    }
3930    pub fn into_raw(self) -> i32 {
3931        self.0
3932    }
3933}
3934impl fmt::Debug for MarkerDetectorResolutionML {
3935    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3936        let name = match *self {
3937            Self::LOW => Some("LOW"),
3938            Self::MEDIUM => Some("MEDIUM"),
3939            Self::HIGH => Some("HIGH"),
3940            _ => None,
3941        };
3942        fmt_enum(fmt, self.0, name)
3943    }
3944}
3945#[doc = "See [XrMarkerDetectorCameraML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCameraML)"]
3946#[repr(transparent)]
3947#[derive(Copy, Clone, Eq, PartialEq)]
3948pub struct MarkerDetectorCameraML(i32);
3949impl MarkerDetectorCameraML {
3950    #[doc = "Single RGB camera."]
3951    pub const RGB_CAMERA: MarkerDetectorCameraML = Self(0i32);
3952    #[doc = "One or more world cameras."]
3953    pub const WORLD_CAMERAS: MarkerDetectorCameraML = Self(1i32);
3954    pub fn from_raw(x: i32) -> Self {
3955        Self(x)
3956    }
3957    pub fn into_raw(self) -> i32 {
3958        self.0
3959    }
3960}
3961impl fmt::Debug for MarkerDetectorCameraML {
3962    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3963        let name = match *self {
3964            Self::RGB_CAMERA => Some("RGB_CAMERA"),
3965            Self::WORLD_CAMERAS => Some("WORLD_CAMERAS"),
3966            _ => None,
3967        };
3968        fmt_enum(fmt, self.0, name)
3969    }
3970}
3971#[doc = "See [XrMarkerDetectorCornerRefineMethodML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCornerRefineMethodML)"]
3972#[repr(transparent)]
3973#[derive(Copy, Clone, Eq, PartialEq)]
3974pub struct MarkerDetectorCornerRefineMethodML(i32);
3975impl MarkerDetectorCornerRefineMethodML {
3976    #[doc = "No refinement. Inaccurate corners."]
3977    pub const NONE: MarkerDetectorCornerRefineMethodML = Self(0i32);
3978    #[doc = "Subpixel refinement. Corners have subpixel coordinates. High detection rate, very fast, reasonable accuracy."]
3979    pub const SUBPIX: MarkerDetectorCornerRefineMethodML = Self(1i32);
3980    #[doc = "Contour refinement. High detection rate, fast, reasonable accuracy."]
3981    pub const CONTOUR: MarkerDetectorCornerRefineMethodML = Self(2i32);
3982    #[doc = "AprilTag refinement. Reasonable detection rate, slowest, but very accurate. Only valid with AprilTags."]
3983    pub const APRIL_TAG: MarkerDetectorCornerRefineMethodML = Self(3i32);
3984    pub fn from_raw(x: i32) -> Self {
3985        Self(x)
3986    }
3987    pub fn into_raw(self) -> i32 {
3988        self.0
3989    }
3990}
3991impl fmt::Debug for MarkerDetectorCornerRefineMethodML {
3992    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3993        let name = match *self {
3994            Self::NONE => Some("NONE"),
3995            Self::SUBPIX => Some("SUBPIX"),
3996            Self::CONTOUR => Some("CONTOUR"),
3997            Self::APRIL_TAG => Some("APRIL_TAG"),
3998            _ => None,
3999        };
4000        fmt_enum(fmt, self.0, name)
4001    }
4002}
4003#[doc = "See [XrMarkerDetectorFullAnalysisIntervalML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorFullAnalysisIntervalML)"]
4004#[repr(transparent)]
4005#[derive(Copy, Clone, Eq, PartialEq)]
4006pub struct MarkerDetectorFullAnalysisIntervalML(i32);
4007impl MarkerDetectorFullAnalysisIntervalML {
4008    #[doc = "Detector analyzes every frame fully."]
4009    pub const MAX: MarkerDetectorFullAnalysisIntervalML = Self(0i32);
4010    #[doc = "Detector analyzes frame fully very often."]
4011    pub const FAST: MarkerDetectorFullAnalysisIntervalML = Self(1i32);
4012    #[doc = "Detector analyzes frame fully a few times per second."]
4013    pub const MEDIUM: MarkerDetectorFullAnalysisIntervalML = Self(2i32);
4014    #[doc = "Detector analyzes frame fully about every second."]
4015    pub const SLOW: MarkerDetectorFullAnalysisIntervalML = Self(3i32);
4016    pub fn from_raw(x: i32) -> Self {
4017        Self(x)
4018    }
4019    pub fn into_raw(self) -> i32 {
4020        self.0
4021    }
4022}
4023impl fmt::Debug for MarkerDetectorFullAnalysisIntervalML {
4024    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4025        let name = match *self {
4026            Self::MAX => Some("MAX"),
4027            Self::FAST => Some("FAST"),
4028            Self::MEDIUM => Some("MEDIUM"),
4029            Self::SLOW => Some("SLOW"),
4030            _ => None,
4031        };
4032        fmt_enum(fmt, self.0, name)
4033    }
4034}
4035#[doc = "See [XrMarkerDetectorStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorStatusML)"]
4036#[repr(transparent)]
4037#[derive(Copy, Clone, Eq, PartialEq)]
4038pub struct MarkerDetectorStatusML(i32);
4039impl MarkerDetectorStatusML {
4040    #[doc = "The marker detector is working on a new snapshot."]
4041    pub const PENDING: MarkerDetectorStatusML = Self(0i32);
4042    #[doc = "The marker detector is ready to be inspected."]
4043    pub const READY: MarkerDetectorStatusML = Self(1i32);
4044    #[doc = "The marker detector has encountered a fatal error."]
4045    pub const ERROR: MarkerDetectorStatusML = Self(2i32);
4046    pub fn from_raw(x: i32) -> Self {
4047        Self(x)
4048    }
4049    pub fn into_raw(self) -> i32 {
4050        self.0
4051    }
4052}
4053impl fmt::Debug for MarkerDetectorStatusML {
4054    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4055        let name = match *self {
4056            Self::PENDING => Some("PENDING"),
4057            Self::READY => Some("READY"),
4058            Self::ERROR => Some("ERROR"),
4059            _ => None,
4060        };
4061        fmt_enum(fmt, self.0, name)
4062    }
4063}
4064#[doc = "See [XrFutureStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureStateEXT)"]
4065#[repr(transparent)]
4066#[derive(Copy, Clone, Eq, PartialEq)]
4067pub struct FutureStateEXT(i32);
4068impl FutureStateEXT {
4069    pub const PENDING: FutureStateEXT = Self(1i32);
4070    pub const READY: FutureStateEXT = Self(2i32);
4071    pub fn from_raw(x: i32) -> Self {
4072        Self(x)
4073    }
4074    pub fn into_raw(self) -> i32 {
4075        self.0
4076    }
4077}
4078impl fmt::Debug for FutureStateEXT {
4079    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4080        let name = match *self {
4081            Self::PENDING => Some("PENDING"),
4082            Self::READY => Some("READY"),
4083            _ => None,
4084        };
4085        fmt_enum(fmt, self.0, name)
4086    }
4087}
4088#[doc = "See [XrHandEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandEXT)"]
4089#[repr(transparent)]
4090#[derive(Copy, Clone, Eq, PartialEq)]
4091pub struct HandEXT(i32);
4092impl HandEXT {
4093    pub const LEFT: HandEXT = Self(1i32);
4094    pub const RIGHT: HandEXT = Self(2i32);
4095    pub fn from_raw(x: i32) -> Self {
4096        Self(x)
4097    }
4098    pub fn into_raw(self) -> i32 {
4099        self.0
4100    }
4101}
4102impl fmt::Debug for HandEXT {
4103    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4104        let name = match *self {
4105            Self::LEFT => Some("LEFT"),
4106            Self::RIGHT => Some("RIGHT"),
4107            _ => None,
4108        };
4109        fmt_enum(fmt, self.0, name)
4110    }
4111}
4112#[doc = "See [XrHandJointEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointEXT)"]
4113#[repr(transparent)]
4114#[derive(Copy, Clone, Eq, PartialEq)]
4115pub struct HandJointEXT(i32);
4116impl HandJointEXT {
4117    pub const PALM: HandJointEXT = Self(0i32);
4118    pub const WRIST: HandJointEXT = Self(1i32);
4119    pub const THUMB_METACARPAL: HandJointEXT = Self(2i32);
4120    pub const THUMB_PROXIMAL: HandJointEXT = Self(3i32);
4121    pub const THUMB_DISTAL: HandJointEXT = Self(4i32);
4122    pub const THUMB_TIP: HandJointEXT = Self(5i32);
4123    pub const INDEX_METACARPAL: HandJointEXT = Self(6i32);
4124    pub const INDEX_PROXIMAL: HandJointEXT = Self(7i32);
4125    pub const INDEX_INTERMEDIATE: HandJointEXT = Self(8i32);
4126    pub const INDEX_DISTAL: HandJointEXT = Self(9i32);
4127    pub const INDEX_TIP: HandJointEXT = Self(10i32);
4128    pub const MIDDLE_METACARPAL: HandJointEXT = Self(11i32);
4129    pub const MIDDLE_PROXIMAL: HandJointEXT = Self(12i32);
4130    pub const MIDDLE_INTERMEDIATE: HandJointEXT = Self(13i32);
4131    pub const MIDDLE_DISTAL: HandJointEXT = Self(14i32);
4132    pub const MIDDLE_TIP: HandJointEXT = Self(15i32);
4133    pub const RING_METACARPAL: HandJointEXT = Self(16i32);
4134    pub const RING_PROXIMAL: HandJointEXT = Self(17i32);
4135    pub const RING_INTERMEDIATE: HandJointEXT = Self(18i32);
4136    pub const RING_DISTAL: HandJointEXT = Self(19i32);
4137    pub const RING_TIP: HandJointEXT = Self(20i32);
4138    pub const LITTLE_METACARPAL: HandJointEXT = Self(21i32);
4139    pub const LITTLE_PROXIMAL: HandJointEXT = Self(22i32);
4140    pub const LITTLE_INTERMEDIATE: HandJointEXT = Self(23i32);
4141    pub const LITTLE_DISTAL: HandJointEXT = Self(24i32);
4142    pub const LITTLE_TIP: HandJointEXT = Self(25i32);
4143    pub fn from_raw(x: i32) -> Self {
4144        Self(x)
4145    }
4146    pub fn into_raw(self) -> i32 {
4147        self.0
4148    }
4149}
4150impl fmt::Debug for HandJointEXT {
4151    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4152        let name = match *self {
4153            Self::PALM => Some("PALM"),
4154            Self::WRIST => Some("WRIST"),
4155            Self::THUMB_METACARPAL => Some("THUMB_METACARPAL"),
4156            Self::THUMB_PROXIMAL => Some("THUMB_PROXIMAL"),
4157            Self::THUMB_DISTAL => Some("THUMB_DISTAL"),
4158            Self::THUMB_TIP => Some("THUMB_TIP"),
4159            Self::INDEX_METACARPAL => Some("INDEX_METACARPAL"),
4160            Self::INDEX_PROXIMAL => Some("INDEX_PROXIMAL"),
4161            Self::INDEX_INTERMEDIATE => Some("INDEX_INTERMEDIATE"),
4162            Self::INDEX_DISTAL => Some("INDEX_DISTAL"),
4163            Self::INDEX_TIP => Some("INDEX_TIP"),
4164            Self::MIDDLE_METACARPAL => Some("MIDDLE_METACARPAL"),
4165            Self::MIDDLE_PROXIMAL => Some("MIDDLE_PROXIMAL"),
4166            Self::MIDDLE_INTERMEDIATE => Some("MIDDLE_INTERMEDIATE"),
4167            Self::MIDDLE_DISTAL => Some("MIDDLE_DISTAL"),
4168            Self::MIDDLE_TIP => Some("MIDDLE_TIP"),
4169            Self::RING_METACARPAL => Some("RING_METACARPAL"),
4170            Self::RING_PROXIMAL => Some("RING_PROXIMAL"),
4171            Self::RING_INTERMEDIATE => Some("RING_INTERMEDIATE"),
4172            Self::RING_DISTAL => Some("RING_DISTAL"),
4173            Self::RING_TIP => Some("RING_TIP"),
4174            Self::LITTLE_METACARPAL => Some("LITTLE_METACARPAL"),
4175            Self::LITTLE_PROXIMAL => Some("LITTLE_PROXIMAL"),
4176            Self::LITTLE_INTERMEDIATE => Some("LITTLE_INTERMEDIATE"),
4177            Self::LITTLE_DISTAL => Some("LITTLE_DISTAL"),
4178            Self::LITTLE_TIP => Some("LITTLE_TIP"),
4179            _ => None,
4180        };
4181        fmt_enum(fmt, self.0, name)
4182    }
4183}
4184#[doc = "See [XrHandJointSetEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointSetEXT)"]
4185#[repr(transparent)]
4186#[derive(Copy, Clone, Eq, PartialEq)]
4187pub struct HandJointSetEXT(i32);
4188impl HandJointSetEXT {
4189    pub const DEFAULT: HandJointSetEXT = Self(0i32);
4190    pub const HAND_WITH_FOREARM_ULTRA: HandJointSetEXT = Self(1000149000i32);
4191    pub fn from_raw(x: i32) -> Self {
4192        Self(x)
4193    }
4194    pub fn into_raw(self) -> i32 {
4195        self.0
4196    }
4197}
4198impl fmt::Debug for HandJointSetEXT {
4199    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4200        let name = match *self {
4201            Self::DEFAULT => Some("DEFAULT"),
4202            Self::HAND_WITH_FOREARM_ULTRA => Some("HAND_WITH_FOREARM_ULTRA"),
4203            _ => None,
4204        };
4205        fmt_enum(fmt, self.0, name)
4206    }
4207}
4208#[doc = "See [XrHandJointsMotionRangeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsMotionRangeEXT)"]
4209#[repr(transparent)]
4210#[derive(Copy, Clone, Eq, PartialEq)]
4211pub struct HandJointsMotionRangeEXT(i32);
4212impl HandJointsMotionRangeEXT {
4213    pub const UNOBSTRUCTED: HandJointsMotionRangeEXT = Self(1i32);
4214    pub const CONFORMING_TO_CONTROLLER: HandJointsMotionRangeEXT = Self(2i32);
4215    pub fn from_raw(x: i32) -> Self {
4216        Self(x)
4217    }
4218    pub fn into_raw(self) -> i32 {
4219        self.0
4220    }
4221}
4222impl fmt::Debug for HandJointsMotionRangeEXT {
4223    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4224        let name = match *self {
4225            Self::UNOBSTRUCTED => Some("UNOBSTRUCTED"),
4226            Self::CONFORMING_TO_CONTROLLER => Some("CONFORMING_TO_CONTROLLER"),
4227            _ => None,
4228        };
4229        fmt_enum(fmt, self.0, name)
4230    }
4231}
4232#[doc = "See [XrHandTrackingDataSourceEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceEXT)"]
4233#[repr(transparent)]
4234#[derive(Copy, Clone, Eq, PartialEq)]
4235pub struct HandTrackingDataSourceEXT(i32);
4236impl HandTrackingDataSourceEXT {
4237    #[doc = "This data source value indicates individual fingers and joints are tracked from unobstructed data source such as optical hand tracking, data gloves, or motion capture devices."]
4238    pub const UNOBSTRUCTED: HandTrackingDataSourceEXT = Self(1i32);
4239    #[doc = "This data source value indicates hand joints are inferred based on motion controller state."]
4240    pub const CONTROLLER: HandTrackingDataSourceEXT = Self(2i32);
4241    pub fn from_raw(x: i32) -> Self {
4242        Self(x)
4243    }
4244    pub fn into_raw(self) -> i32 {
4245        self.0
4246    }
4247}
4248impl fmt::Debug for HandTrackingDataSourceEXT {
4249    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4250        let name = match *self {
4251            Self::UNOBSTRUCTED => Some("UNOBSTRUCTED"),
4252            Self::CONTROLLER => Some("CONTROLLER"),
4253            _ => None,
4254        };
4255        fmt_enum(fmt, self.0, name)
4256    }
4257}
4258#[doc = "See [XrHandPoseTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandPoseTypeMSFT)"]
4259#[repr(transparent)]
4260#[derive(Copy, Clone, Eq, PartialEq)]
4261pub struct HandPoseTypeMSFT(i32);
4262impl HandPoseTypeMSFT {
4263    pub const TRACKED: HandPoseTypeMSFT = Self(0i32);
4264    pub const REFERENCE_OPEN_PALM: HandPoseTypeMSFT = Self(1i32);
4265    pub fn from_raw(x: i32) -> Self {
4266        Self(x)
4267    }
4268    pub fn into_raw(self) -> i32 {
4269        self.0
4270    }
4271}
4272impl fmt::Debug for HandPoseTypeMSFT {
4273    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4274        let name = match *self {
4275            Self::TRACKED => Some("TRACKED"),
4276            Self::REFERENCE_OPEN_PALM => Some("REFERENCE_OPEN_PALM"),
4277            _ => None,
4278        };
4279        fmt_enum(fmt, self.0, name)
4280    }
4281}
4282#[doc = "See [XrSceneObjectTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneObjectTypeMSFT)"]
4283#[repr(transparent)]
4284#[derive(Copy, Clone, Eq, PartialEq)]
4285pub struct SceneObjectTypeMSFT(i32);
4286impl SceneObjectTypeMSFT {
4287    pub const UNCATEGORIZED: SceneObjectTypeMSFT = Self(-1i32);
4288    pub const BACKGROUND: SceneObjectTypeMSFT = Self(1i32);
4289    pub const WALL: SceneObjectTypeMSFT = Self(2i32);
4290    pub const FLOOR: SceneObjectTypeMSFT = Self(3i32);
4291    pub const CEILING: SceneObjectTypeMSFT = Self(4i32);
4292    pub const PLATFORM: SceneObjectTypeMSFT = Self(5i32);
4293    pub const INFERRED: SceneObjectTypeMSFT = Self(6i32);
4294    pub fn from_raw(x: i32) -> Self {
4295        Self(x)
4296    }
4297    pub fn into_raw(self) -> i32 {
4298        self.0
4299    }
4300}
4301impl fmt::Debug for SceneObjectTypeMSFT {
4302    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4303        let name = match *self {
4304            Self::UNCATEGORIZED => Some("UNCATEGORIZED"),
4305            Self::BACKGROUND => Some("BACKGROUND"),
4306            Self::WALL => Some("WALL"),
4307            Self::FLOOR => Some("FLOOR"),
4308            Self::CEILING => Some("CEILING"),
4309            Self::PLATFORM => Some("PLATFORM"),
4310            Self::INFERRED => Some("INFERRED"),
4311            _ => None,
4312        };
4313        fmt_enum(fmt, self.0, name)
4314    }
4315}
4316#[doc = "See [XrScenePlaneAlignmentTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrScenePlaneAlignmentTypeMSFT)"]
4317#[repr(transparent)]
4318#[derive(Copy, Clone, Eq, PartialEq)]
4319pub struct ScenePlaneAlignmentTypeMSFT(i32);
4320impl ScenePlaneAlignmentTypeMSFT {
4321    pub const NON_ORTHOGONAL: ScenePlaneAlignmentTypeMSFT = Self(0i32);
4322    pub const HORIZONTAL: ScenePlaneAlignmentTypeMSFT = Self(1i32);
4323    pub const VERTICAL: ScenePlaneAlignmentTypeMSFT = Self(2i32);
4324    pub fn from_raw(x: i32) -> Self {
4325        Self(x)
4326    }
4327    pub fn into_raw(self) -> i32 {
4328        self.0
4329    }
4330}
4331impl fmt::Debug for ScenePlaneAlignmentTypeMSFT {
4332    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4333        let name = match *self {
4334            Self::NON_ORTHOGONAL => Some("NON_ORTHOGONAL"),
4335            Self::HORIZONTAL => Some("HORIZONTAL"),
4336            Self::VERTICAL => Some("VERTICAL"),
4337            _ => None,
4338        };
4339        fmt_enum(fmt, self.0, name)
4340    }
4341}
4342#[doc = "See [XrSceneComputeStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeStateMSFT)"]
4343#[repr(transparent)]
4344#[derive(Copy, Clone, Eq, PartialEq)]
4345pub struct SceneComputeStateMSFT(i32);
4346impl SceneComputeStateMSFT {
4347    pub const NONE: SceneComputeStateMSFT = Self(0i32);
4348    pub const UPDATING: SceneComputeStateMSFT = Self(1i32);
4349    pub const COMPLETED: SceneComputeStateMSFT = Self(2i32);
4350    pub const COMPLETED_WITH_ERROR: SceneComputeStateMSFT = Self(3i32);
4351    pub fn from_raw(x: i32) -> Self {
4352        Self(x)
4353    }
4354    pub fn into_raw(self) -> i32 {
4355        self.0
4356    }
4357}
4358impl fmt::Debug for SceneComputeStateMSFT {
4359    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4360        let name = match *self {
4361            Self::NONE => Some("NONE"),
4362            Self::UPDATING => Some("UPDATING"),
4363            Self::COMPLETED => Some("COMPLETED"),
4364            Self::COMPLETED_WITH_ERROR => Some("COMPLETED_WITH_ERROR"),
4365            _ => None,
4366        };
4367        fmt_enum(fmt, self.0, name)
4368    }
4369}
4370#[doc = "See [XrSceneComputeFeatureMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeFeatureMSFT)"]
4371#[repr(transparent)]
4372#[derive(Copy, Clone, Eq, PartialEq)]
4373pub struct SceneComputeFeatureMSFT(i32);
4374impl SceneComputeFeatureMSFT {
4375    pub const PLANE: SceneComputeFeatureMSFT = Self(1i32);
4376    pub const PLANE_MESH: SceneComputeFeatureMSFT = Self(2i32);
4377    pub const VISUAL_MESH: SceneComputeFeatureMSFT = Self(3i32);
4378    pub const COLLIDER_MESH: SceneComputeFeatureMSFT = Self(4i32);
4379    pub const SERIALIZE_SCENE: SceneComputeFeatureMSFT = Self(1000098000i32);
4380    pub const MARKER: SceneComputeFeatureMSFT = Self(1000147000i32);
4381    pub fn from_raw(x: i32) -> Self {
4382        Self(x)
4383    }
4384    pub fn into_raw(self) -> i32 {
4385        self.0
4386    }
4387}
4388impl fmt::Debug for SceneComputeFeatureMSFT {
4389    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4390        let name = match *self {
4391            Self::PLANE => Some("PLANE"),
4392            Self::PLANE_MESH => Some("PLANE_MESH"),
4393            Self::VISUAL_MESH => Some("VISUAL_MESH"),
4394            Self::COLLIDER_MESH => Some("COLLIDER_MESH"),
4395            Self::SERIALIZE_SCENE => Some("SERIALIZE_SCENE"),
4396            Self::MARKER => Some("MARKER"),
4397            _ => None,
4398        };
4399        fmt_enum(fmt, self.0, name)
4400    }
4401}
4402#[doc = "See [XrSceneComputeConsistencyMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeConsistencyMSFT)"]
4403#[repr(transparent)]
4404#[derive(Copy, Clone, Eq, PartialEq)]
4405pub struct SceneComputeConsistencyMSFT(i32);
4406impl SceneComputeConsistencyMSFT {
4407    pub const SNAPSHOT_COMPLETE: SceneComputeConsistencyMSFT = Self(1i32);
4408    pub const SNAPSHOT_INCOMPLETE_FAST: SceneComputeConsistencyMSFT = Self(2i32);
4409    pub const OCCLUSION_OPTIMIZED: SceneComputeConsistencyMSFT = Self(3i32);
4410    pub fn from_raw(x: i32) -> Self {
4411        Self(x)
4412    }
4413    pub fn into_raw(self) -> i32 {
4414        self.0
4415    }
4416}
4417impl fmt::Debug for SceneComputeConsistencyMSFT {
4418    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4419        let name = match *self {
4420            Self::SNAPSHOT_COMPLETE => Some("SNAPSHOT_COMPLETE"),
4421            Self::SNAPSHOT_INCOMPLETE_FAST => Some("SNAPSHOT_INCOMPLETE_FAST"),
4422            Self::OCCLUSION_OPTIMIZED => Some("OCCLUSION_OPTIMIZED"),
4423            _ => None,
4424        };
4425        fmt_enum(fmt, self.0, name)
4426    }
4427}
4428#[doc = "See [XrSceneComponentTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComponentTypeMSFT)"]
4429#[repr(transparent)]
4430#[derive(Copy, Clone, Eq, PartialEq)]
4431pub struct SceneComponentTypeMSFT(i32);
4432impl SceneComponentTypeMSFT {
4433    pub const INVALID: SceneComponentTypeMSFT = Self(-1i32);
4434    pub const OBJECT: SceneComponentTypeMSFT = Self(1i32);
4435    pub const PLANE: SceneComponentTypeMSFT = Self(2i32);
4436    pub const VISUAL_MESH: SceneComponentTypeMSFT = Self(3i32);
4437    pub const COLLIDER_MESH: SceneComponentTypeMSFT = Self(4i32);
4438    pub const SERIALIZED_SCENE_FRAGMENT: SceneComponentTypeMSFT = Self(1000098000i32);
4439    pub const MARKER: SceneComponentTypeMSFT = Self(1000147000i32);
4440    pub fn from_raw(x: i32) -> Self {
4441        Self(x)
4442    }
4443    pub fn into_raw(self) -> i32 {
4444        self.0
4445    }
4446}
4447impl fmt::Debug for SceneComponentTypeMSFT {
4448    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4449        let name = match *self {
4450            Self::INVALID => Some("INVALID"),
4451            Self::OBJECT => Some("OBJECT"),
4452            Self::PLANE => Some("PLANE"),
4453            Self::VISUAL_MESH => Some("VISUAL_MESH"),
4454            Self::COLLIDER_MESH => Some("COLLIDER_MESH"),
4455            Self::SERIALIZED_SCENE_FRAGMENT => Some("SERIALIZED_SCENE_FRAGMENT"),
4456            Self::MARKER => Some("MARKER"),
4457            _ => None,
4458        };
4459        fmt_enum(fmt, self.0, name)
4460    }
4461}
4462#[doc = "See [XrMeshComputeLodMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMeshComputeLodMSFT)"]
4463#[repr(transparent)]
4464#[derive(Copy, Clone, Eq, PartialEq)]
4465pub struct MeshComputeLodMSFT(i32);
4466impl MeshComputeLodMSFT {
4467    pub const COARSE: MeshComputeLodMSFT = Self(1i32);
4468    pub const MEDIUM: MeshComputeLodMSFT = Self(2i32);
4469    pub const FINE: MeshComputeLodMSFT = Self(3i32);
4470    pub const UNLIMITED: MeshComputeLodMSFT = Self(4i32);
4471    pub fn from_raw(x: i32) -> Self {
4472        Self(x)
4473    }
4474    pub fn into_raw(self) -> i32 {
4475        self.0
4476    }
4477}
4478impl fmt::Debug for MeshComputeLodMSFT {
4479    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4480        let name = match *self {
4481            Self::COARSE => Some("COARSE"),
4482            Self::MEDIUM => Some("MEDIUM"),
4483            Self::FINE => Some("FINE"),
4484            Self::UNLIMITED => Some("UNLIMITED"),
4485            _ => None,
4486        };
4487        fmt_enum(fmt, self.0, name)
4488    }
4489}
4490#[doc = "See [XrSceneMarkerTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMarkerTypeMSFT)"]
4491#[repr(transparent)]
4492#[derive(Copy, Clone, Eq, PartialEq)]
4493pub struct SceneMarkerTypeMSFT(i32);
4494impl SceneMarkerTypeMSFT {
4495    pub const QR_CODE: SceneMarkerTypeMSFT = Self(1i32);
4496    pub fn from_raw(x: i32) -> Self {
4497        Self(x)
4498    }
4499    pub fn into_raw(self) -> i32 {
4500        self.0
4501    }
4502}
4503impl fmt::Debug for SceneMarkerTypeMSFT {
4504    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4505        let name = match *self {
4506            Self::QR_CODE => Some("QR_CODE"),
4507            _ => None,
4508        };
4509        fmt_enum(fmt, self.0, name)
4510    }
4511}
4512#[doc = "See [XrSceneMarkerQRCodeSymbolTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMarkerQRCodeSymbolTypeMSFT)"]
4513#[repr(transparent)]
4514#[derive(Copy, Clone, Eq, PartialEq)]
4515pub struct SceneMarkerQRCodeSymbolTypeMSFT(i32);
4516impl SceneMarkerQRCodeSymbolTypeMSFT {
4517    pub const QR_CODE: SceneMarkerQRCodeSymbolTypeMSFT = Self(1i32);
4518    pub const MICRO_QR_CODE: SceneMarkerQRCodeSymbolTypeMSFT = Self(2i32);
4519    pub fn from_raw(x: i32) -> Self {
4520        Self(x)
4521    }
4522    pub fn into_raw(self) -> i32 {
4523        self.0
4524    }
4525}
4526impl fmt::Debug for SceneMarkerQRCodeSymbolTypeMSFT {
4527    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4528        let name = match *self {
4529            Self::QR_CODE => Some("QR_CODE"),
4530            Self::MICRO_QR_CODE => Some("MICRO_QR_CODE"),
4531            _ => None,
4532        };
4533        fmt_enum(fmt, self.0, name)
4534    }
4535}
4536#[doc = "See [XrColorSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColorSpaceFB)"]
4537#[repr(transparent)]
4538#[derive(Copy, Clone, Eq, PartialEq)]
4539pub struct ColorSpaceFB(i32);
4540impl ColorSpaceFB {
4541    pub const UNMANAGED: ColorSpaceFB = Self(0i32);
4542    pub const REC2020: ColorSpaceFB = Self(1i32);
4543    pub const REC709: ColorSpaceFB = Self(2i32);
4544    pub const RIFT_CV1: ColorSpaceFB = Self(3i32);
4545    pub const RIFT_S: ColorSpaceFB = Self(4i32);
4546    pub const QUEST: ColorSpaceFB = Self(5i32);
4547    pub const P3: ColorSpaceFB = Self(6i32);
4548    pub const ADOBE_RGB: ColorSpaceFB = Self(7i32);
4549    pub fn from_raw(x: i32) -> Self {
4550        Self(x)
4551    }
4552    pub fn into_raw(self) -> i32 {
4553        self.0
4554    }
4555}
4556impl fmt::Debug for ColorSpaceFB {
4557    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4558        let name = match *self {
4559            Self::UNMANAGED => Some("UNMANAGED"),
4560            Self::REC2020 => Some("REC2020"),
4561            Self::REC709 => Some("REC709"),
4562            Self::RIFT_CV1 => Some("RIFT_CV1"),
4563            Self::RIFT_S => Some("RIFT_S"),
4564            Self::QUEST => Some("QUEST"),
4565            Self::P3 => Some("P3"),
4566            Self::ADOBE_RGB => Some("ADOBE_RGB"),
4567            _ => None,
4568        };
4569        fmt_enum(fmt, self.0, name)
4570    }
4571}
4572#[doc = "See [XrFoveationLevelFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelFB)"]
4573#[repr(transparent)]
4574#[derive(Copy, Clone, Eq, PartialEq)]
4575pub struct FoveationLevelFB(i32);
4576impl FoveationLevelFB {
4577    #[doc = "No foveation"]
4578    pub const NONE: FoveationLevelFB = Self(0i32);
4579    #[doc = "Less foveation (higher periphery visual fidelity, lower performance)"]
4580    pub const LOW: FoveationLevelFB = Self(1i32);
4581    #[doc = "Medium foveation (medium periphery visual fidelity, medium performance)"]
4582    pub const MEDIUM: FoveationLevelFB = Self(2i32);
4583    #[doc = "High foveation (lower periphery visual fidelity, higher performance)"]
4584    pub const HIGH: FoveationLevelFB = Self(3i32);
4585    pub fn from_raw(x: i32) -> Self {
4586        Self(x)
4587    }
4588    pub fn into_raw(self) -> i32 {
4589        self.0
4590    }
4591}
4592impl fmt::Debug for FoveationLevelFB {
4593    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4594        let name = match *self {
4595            Self::NONE => Some("NONE"),
4596            Self::LOW => Some("LOW"),
4597            Self::MEDIUM => Some("MEDIUM"),
4598            Self::HIGH => Some("HIGH"),
4599            _ => None,
4600        };
4601        fmt_enum(fmt, self.0, name)
4602    }
4603}
4604#[doc = "See [XrFoveationDynamicFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicFB)"]
4605#[repr(transparent)]
4606#[derive(Copy, Clone, Eq, PartialEq)]
4607pub struct FoveationDynamicFB(i32);
4608impl FoveationDynamicFB {
4609    #[doc = "Static foveation at the maximum desired level"]
4610    pub const DISABLED: FoveationDynamicFB = Self(0i32);
4611    #[doc = "Dynamic changing foveation based on performance headroom available up to the maximum desired level"]
4612    pub const LEVEL_ENABLED: FoveationDynamicFB = Self(1i32);
4613    pub fn from_raw(x: i32) -> Self {
4614        Self(x)
4615    }
4616    pub fn into_raw(self) -> i32 {
4617        self.0
4618    }
4619}
4620impl fmt::Debug for FoveationDynamicFB {
4621    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4622        let name = match *self {
4623            Self::DISABLED => Some("DISABLED"),
4624            Self::LEVEL_ENABLED => Some("LEVEL_ENABLED"),
4625            _ => None,
4626        };
4627        fmt_enum(fmt, self.0, name)
4628    }
4629}
4630#[doc = "See [XrReprojectionModeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReprojectionModeMSFT)"]
4631#[repr(transparent)]
4632#[derive(Copy, Clone, Eq, PartialEq)]
4633pub struct ReprojectionModeMSFT(i32);
4634impl ReprojectionModeMSFT {
4635    pub const DEPTH: ReprojectionModeMSFT = Self(1i32);
4636    pub const PLANAR_FROM_DEPTH: ReprojectionModeMSFT = Self(2i32);
4637    pub const PLANAR_MANUAL: ReprojectionModeMSFT = Self(3i32);
4638    pub const ORIENTATION_ONLY: ReprojectionModeMSFT = Self(4i32);
4639    pub fn from_raw(x: i32) -> Self {
4640        Self(x)
4641    }
4642    pub fn into_raw(self) -> i32 {
4643        self.0
4644    }
4645}
4646impl fmt::Debug for ReprojectionModeMSFT {
4647    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4648        let name = match *self {
4649            Self::DEPTH => Some("DEPTH"),
4650            Self::PLANAR_FROM_DEPTH => Some("PLANAR_FROM_DEPTH"),
4651            Self::PLANAR_MANUAL => Some("PLANAR_MANUAL"),
4652            Self::ORIENTATION_ONLY => Some("ORIENTATION_ONLY"),
4653            _ => None,
4654        };
4655        fmt_enum(fmt, self.0, name)
4656    }
4657}
4658#[doc = "See [XrHandForearmJointULTRALEAP](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandForearmJointULTRALEAP)"]
4659#[repr(transparent)]
4660#[derive(Copy, Clone, Eq, PartialEq)]
4661pub struct HandForearmJointULTRALEAP(i32);
4662impl HandForearmJointULTRALEAP {
4663    pub const PALM: HandForearmJointULTRALEAP = Self(0i32);
4664    pub const WRIST: HandForearmJointULTRALEAP = Self(1i32);
4665    pub const THUMB_METACARPAL: HandForearmJointULTRALEAP = Self(2i32);
4666    pub const THUMB_PROXIMAL: HandForearmJointULTRALEAP = Self(3i32);
4667    pub const THUMB_DISTAL: HandForearmJointULTRALEAP = Self(4i32);
4668    pub const THUMB_TIP: HandForearmJointULTRALEAP = Self(5i32);
4669    pub const INDEX_METACARPAL: HandForearmJointULTRALEAP = Self(6i32);
4670    pub const INDEX_PROXIMAL: HandForearmJointULTRALEAP = Self(7i32);
4671    pub const INDEX_INTERMEDIATE: HandForearmJointULTRALEAP = Self(8i32);
4672    pub const INDEX_DISTAL: HandForearmJointULTRALEAP = Self(9i32);
4673    pub const INDEX_TIP: HandForearmJointULTRALEAP = Self(10i32);
4674    pub const MIDDLE_METACARPAL: HandForearmJointULTRALEAP = Self(11i32);
4675    pub const MIDDLE_PROXIMAL: HandForearmJointULTRALEAP = Self(12i32);
4676    pub const MIDDLE_INTERMEDIATE: HandForearmJointULTRALEAP = Self(13i32);
4677    pub const MIDDLE_DISTAL: HandForearmJointULTRALEAP = Self(14i32);
4678    pub const MIDDLE_TIP: HandForearmJointULTRALEAP = Self(15i32);
4679    pub const RING_METACARPAL: HandForearmJointULTRALEAP = Self(16i32);
4680    pub const RING_PROXIMAL: HandForearmJointULTRALEAP = Self(17i32);
4681    pub const RING_INTERMEDIATE: HandForearmJointULTRALEAP = Self(18i32);
4682    pub const RING_DISTAL: HandForearmJointULTRALEAP = Self(19i32);
4683    pub const RING_TIP: HandForearmJointULTRALEAP = Self(20i32);
4684    pub const LITTLE_METACARPAL: HandForearmJointULTRALEAP = Self(21i32);
4685    pub const LITTLE_PROXIMAL: HandForearmJointULTRALEAP = Self(22i32);
4686    pub const LITTLE_INTERMEDIATE: HandForearmJointULTRALEAP = Self(23i32);
4687    pub const LITTLE_DISTAL: HandForearmJointULTRALEAP = Self(24i32);
4688    pub const LITTLE_TIP: HandForearmJointULTRALEAP = Self(25i32);
4689    pub const ELBOW: HandForearmJointULTRALEAP = Self(26i32);
4690    pub fn from_raw(x: i32) -> Self {
4691        Self(x)
4692    }
4693    pub fn into_raw(self) -> i32 {
4694        self.0
4695    }
4696}
4697impl fmt::Debug for HandForearmJointULTRALEAP {
4698    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4699        let name = match *self {
4700            Self::PALM => Some("PALM"),
4701            Self::WRIST => Some("WRIST"),
4702            Self::THUMB_METACARPAL => Some("THUMB_METACARPAL"),
4703            Self::THUMB_PROXIMAL => Some("THUMB_PROXIMAL"),
4704            Self::THUMB_DISTAL => Some("THUMB_DISTAL"),
4705            Self::THUMB_TIP => Some("THUMB_TIP"),
4706            Self::INDEX_METACARPAL => Some("INDEX_METACARPAL"),
4707            Self::INDEX_PROXIMAL => Some("INDEX_PROXIMAL"),
4708            Self::INDEX_INTERMEDIATE => Some("INDEX_INTERMEDIATE"),
4709            Self::INDEX_DISTAL => Some("INDEX_DISTAL"),
4710            Self::INDEX_TIP => Some("INDEX_TIP"),
4711            Self::MIDDLE_METACARPAL => Some("MIDDLE_METACARPAL"),
4712            Self::MIDDLE_PROXIMAL => Some("MIDDLE_PROXIMAL"),
4713            Self::MIDDLE_INTERMEDIATE => Some("MIDDLE_INTERMEDIATE"),
4714            Self::MIDDLE_DISTAL => Some("MIDDLE_DISTAL"),
4715            Self::MIDDLE_TIP => Some("MIDDLE_TIP"),
4716            Self::RING_METACARPAL => Some("RING_METACARPAL"),
4717            Self::RING_PROXIMAL => Some("RING_PROXIMAL"),
4718            Self::RING_INTERMEDIATE => Some("RING_INTERMEDIATE"),
4719            Self::RING_DISTAL => Some("RING_DISTAL"),
4720            Self::RING_TIP => Some("RING_TIP"),
4721            Self::LITTLE_METACARPAL => Some("LITTLE_METACARPAL"),
4722            Self::LITTLE_PROXIMAL => Some("LITTLE_PROXIMAL"),
4723            Self::LITTLE_INTERMEDIATE => Some("LITTLE_INTERMEDIATE"),
4724            Self::LITTLE_DISTAL => Some("LITTLE_DISTAL"),
4725            Self::LITTLE_TIP => Some("LITTLE_TIP"),
4726            Self::ELBOW => Some("ELBOW"),
4727            _ => None,
4728        };
4729        fmt_enum(fmt, self.0, name)
4730    }
4731}
4732#[doc = "See [XrCompareOpFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompareOpFB)"]
4733#[repr(transparent)]
4734#[derive(Copy, Clone, Eq, PartialEq)]
4735pub struct CompareOpFB(i32);
4736impl CompareOpFB {
4737    #[doc = "Comparison is never true."]
4738    pub const NEVER: CompareOpFB = Self(0i32);
4739    #[doc = "Comparison is true if source less than is destination."]
4740    pub const LESS: CompareOpFB = Self(1i32);
4741    #[doc = "Comparison is true if source is equal to destination."]
4742    pub const EQUAL: CompareOpFB = Self(2i32);
4743    #[doc = "Comparison is true if source is less than or equal to destination."]
4744    pub const LESS_OR_EQUAL: CompareOpFB = Self(3i32);
4745    #[doc = "Comparison is true if source is greater than destination."]
4746    pub const GREATER: CompareOpFB = Self(4i32);
4747    #[doc = "Comparison is true if source is not equal to destination."]
4748    pub const NOT_EQUAL: CompareOpFB = Self(5i32);
4749    #[doc = "Comparison is true if source is greater than or equal to destination."]
4750    pub const GREATER_OR_EQUAL: CompareOpFB = Self(6i32);
4751    #[doc = "Comparison is always true."]
4752    pub const ALWAYS: CompareOpFB = Self(7i32);
4753    pub fn from_raw(x: i32) -> Self {
4754        Self(x)
4755    }
4756    pub fn into_raw(self) -> i32 {
4757        self.0
4758    }
4759}
4760impl fmt::Debug for CompareOpFB {
4761    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4762        let name = match *self {
4763            Self::NEVER => Some("NEVER"),
4764            Self::LESS => Some("LESS"),
4765            Self::EQUAL => Some("EQUAL"),
4766            Self::LESS_OR_EQUAL => Some("LESS_OR_EQUAL"),
4767            Self::GREATER => Some("GREATER"),
4768            Self::NOT_EQUAL => Some("NOT_EQUAL"),
4769            Self::GREATER_OR_EQUAL => Some("GREATER_OR_EQUAL"),
4770            Self::ALWAYS => Some("ALWAYS"),
4771            _ => None,
4772        };
4773        fmt_enum(fmt, self.0, name)
4774    }
4775}
4776#[doc = "See [XrInstanceCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateFlagBits)"]
4777#[repr(transparent)]
4778#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4779pub struct InstanceCreateFlags(u64);
4780impl InstanceCreateFlags {}
4781bitmask!(InstanceCreateFlags);
4782#[doc = "See [XrSessionCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateFlagBits)"]
4783#[repr(transparent)]
4784#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4785pub struct SessionCreateFlags(u64);
4786impl SessionCreateFlags {}
4787bitmask!(SessionCreateFlags);
4788#[doc = "See [XrSwapchainCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateFlagBits)"]
4789#[repr(transparent)]
4790#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4791pub struct SwapchainCreateFlags(u64);
4792impl SwapchainCreateFlags {
4793    #[doc = "Content will be protected from CPU access"]
4794    pub const PROTECTED_CONTENT: SwapchainCreateFlags = Self(1 << 0u64);
4795    #[doc = "Only one image will be acquired from this swapchain over its lifetime"]
4796    pub const STATIC_IMAGE: SwapchainCreateFlags = Self(1 << 1u64);
4797}
4798bitmask!(SwapchainCreateFlags);
4799#[doc = "See [XrSwapchainUsageFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainUsageFlagBits)"]
4800#[repr(transparent)]
4801#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4802pub struct SwapchainUsageFlags(u64);
4803impl SwapchainUsageFlags {
4804    #[doc = "Specifies that the image may: be a color rendering target."]
4805    pub const COLOR_ATTACHMENT: SwapchainUsageFlags = Self(1 << 0u64);
4806    #[doc = "Specifies that the image may: be a depth/stencil rendering target."]
4807    pub const DEPTH_STENCIL_ATTACHMENT: SwapchainUsageFlags = Self(1 << 1u64);
4808    #[doc = "Specifies that the image may: be accessed out of order and that access may: be via atomic operations."]
4809    pub const UNORDERED_ACCESS: SwapchainUsageFlags = Self(1 << 2u64);
4810    #[doc = "Specifies that the image may: be used as the source of a transfer operation."]
4811    pub const TRANSFER_SRC: SwapchainUsageFlags = Self(1 << 3u64);
4812    #[doc = "Specifies that the image may: be used as the destination of a transfer operation."]
4813    pub const TRANSFER_DST: SwapchainUsageFlags = Self(1 << 4u64);
4814    #[doc = "Specifies that the image may: be sampled by a shader."]
4815    pub const SAMPLED: SwapchainUsageFlags = Self(1 << 5u64);
4816    #[doc = "Specifies that the image may: be reinterpreted as another image format."]
4817    pub const MUTABLE_FORMAT: SwapchainUsageFlags = Self(1 << 6u64);
4818    #[doc = "Specifies that the image may: be used as a input attachment."]
4819    pub const INPUT_ATTACHMENT: SwapchainUsageFlags = Self(1 << 7u64);
4820}
4821bitmask!(SwapchainUsageFlags);
4822#[doc = "See [XrViewStateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewStateFlagBits)"]
4823#[repr(transparent)]
4824#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4825pub struct ViewStateFlags(u64);
4826impl ViewStateFlags {
4827    #[doc = "Indicates validity of all XrView orientations"]
4828    pub const ORIENTATION_VALID: ViewStateFlags = Self(1 << 0u64);
4829    #[doc = "Indicates validity of all XrView positions"]
4830    pub const POSITION_VALID: ViewStateFlags = Self(1 << 1u64);
4831    #[doc = "Indicates whether all XrView orientations are actively tracked"]
4832    pub const ORIENTATION_TRACKED: ViewStateFlags = Self(1 << 2u64);
4833    #[doc = "Indicates whether all XrView positions are actively tracked"]
4834    pub const POSITION_TRACKED: ViewStateFlags = Self(1 << 3u64);
4835}
4836bitmask!(ViewStateFlags);
4837#[doc = "See [XrCompositionLayerFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerFlagBits)"]
4838#[repr(transparent)]
4839#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4840pub struct CompositionLayerFlags(u64);
4841impl CompositionLayerFlags {
4842    #[doc = "Enables chromatic aberration correction when not done by default. This flag has no effect on any known conformant runtime, and is officially deprecated in OpenXR 1.1."]
4843    pub const CORRECT_CHROMATIC_ABERRATION: CompositionLayerFlags = Self(1 << 0u64);
4844    #[doc = "Enables the layer texture alpha channel."]
4845    pub const BLEND_TEXTURE_SOURCE_ALPHA: CompositionLayerFlags = Self(1 << 1u64);
4846    #[doc = "Indicates the texture color channels have not been premultiplied by the texture alpha channel."]
4847    pub const UNPREMULTIPLIED_ALPHA: CompositionLayerFlags = Self(1 << 2u64);
4848}
4849bitmask!(CompositionLayerFlags);
4850#[doc = "See [XrSpaceLocationFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocationFlagBits)"]
4851#[repr(transparent)]
4852#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4853pub struct SpaceLocationFlags(u64);
4854impl SpaceLocationFlags {
4855    #[doc = "Indicates that the orientation member contains valid data"]
4856    pub const ORIENTATION_VALID: SpaceLocationFlags = Self(1 << 0u64);
4857    #[doc = "Indicates that the position member contains valid data"]
4858    pub const POSITION_VALID: SpaceLocationFlags = Self(1 << 1u64);
4859    #[doc = "Indicates whether pose member contains an actively tracked orientation"]
4860    pub const ORIENTATION_TRACKED: SpaceLocationFlags = Self(1 << 2u64);
4861    #[doc = "Indicates whether pose member contains an actively tracked position"]
4862    pub const POSITION_TRACKED: SpaceLocationFlags = Self(1 << 3u64);
4863}
4864bitmask!(SpaceLocationFlags);
4865#[doc = "See [XrSpaceVelocityFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocityFlagBits)"]
4866#[repr(transparent)]
4867#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4868pub struct SpaceVelocityFlags(u64);
4869impl SpaceVelocityFlags {
4870    #[doc = "Indicates that the linearVelocity member contains valid data. Applications must: not read the linearVelocity field if this flag is unset."]
4871    pub const LINEAR_VALID: SpaceVelocityFlags = Self(1 << 0u64);
4872    #[doc = "Indicates that the angularVelocity member contains valid data. Applications must: not read the angularVelocity field if this flag is unset."]
4873    pub const ANGULAR_VALID: SpaceVelocityFlags = Self(1 << 1u64);
4874}
4875bitmask!(SpaceVelocityFlags);
4876#[doc = "See [XrInputSourceLocalizedNameFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInputSourceLocalizedNameFlagBits)"]
4877#[repr(transparent)]
4878#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4879pub struct InputSourceLocalizedNameFlags(u64);
4880impl InputSourceLocalizedNameFlags {
4881    #[doc = "Asks for the part of the string which indicates the top level user path the source represents"]
4882    pub const USER_PATH: InputSourceLocalizedNameFlags = Self(1 << 0u64);
4883    #[doc = "Asks for the part of the string which represents the interaction profile of the source"]
4884    pub const INTERACTION_PROFILE: InputSourceLocalizedNameFlags = Self(1 << 1u64);
4885    #[doc = "Asks for the part of the string which represents the component on the device which needs to be interacted with"]
4886    pub const COMPONENT: InputSourceLocalizedNameFlags = Self(1 << 2u64);
4887}
4888bitmask!(InputSourceLocalizedNameFlags);
4889#[doc = "See [XrVulkanInstanceCreateFlagsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanInstanceCreateFlagsKHR)"]
4890#[repr(transparent)]
4891#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4892pub struct VulkanInstanceCreateFlagsKHR(u64);
4893impl VulkanInstanceCreateFlagsKHR {}
4894bitmask!(VulkanInstanceCreateFlagsKHR);
4895#[doc = "See [XrVulkanDeviceCreateFlagsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanDeviceCreateFlagsKHR)"]
4896#[repr(transparent)]
4897#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4898pub struct VulkanDeviceCreateFlagsKHR(u64);
4899impl VulkanDeviceCreateFlagsKHR {}
4900bitmask!(VulkanDeviceCreateFlagsKHR);
4901#[doc = "See [XrDebugUtilsMessageSeverityFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessageSeverityFlagsEXT)"]
4902#[repr(transparent)]
4903#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4904pub struct DebugUtilsMessageSeverityFlagsEXT(u64);
4905impl DebugUtilsMessageSeverityFlagsEXT {
4906    #[doc = "Most verbose output severity, typically used for debugging."]
4907    pub const VERBOSE: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 0u64);
4908    #[doc = "General info message"]
4909    pub const INFO: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 4u64);
4910    #[doc = "Indicates the item may be the cause of issues."]
4911    pub const WARNING: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 8u64);
4912    #[doc = "Indicates that the item is definitely related to erroneous behavior."]
4913    pub const ERROR: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 12u64);
4914}
4915bitmask!(DebugUtilsMessageSeverityFlagsEXT);
4916#[doc = "See [XrDebugUtilsMessageTypeFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessageTypeFlagsEXT)"]
4917#[repr(transparent)]
4918#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4919pub struct DebugUtilsMessageTypeFlagsEXT(u64);
4920impl DebugUtilsMessageTypeFlagsEXT {
4921    #[doc = "Indicates this is a general message"]
4922    pub const GENERAL: DebugUtilsMessageTypeFlagsEXT = Self(1 << 0u64);
4923    #[doc = "Indicates the message is related to a validation message"]
4924    pub const VALIDATION: DebugUtilsMessageTypeFlagsEXT = Self(1 << 1u64);
4925    #[doc = "Indicates the message is related to a potential performance situation"]
4926    pub const PERFORMANCE: DebugUtilsMessageTypeFlagsEXT = Self(1 << 2u64);
4927    #[doc = "Indicates the message is related to a non-conformant runtime result"]
4928    pub const CONFORMANCE: DebugUtilsMessageTypeFlagsEXT = Self(1 << 3u64);
4929}
4930bitmask!(DebugUtilsMessageTypeFlagsEXT);
4931#[doc = "See [XrOverlayMainSessionFlagsEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOverlayMainSessionFlagsEXTX)"]
4932#[repr(transparent)]
4933#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4934pub struct OverlayMainSessionFlagsEXTX(u64);
4935impl OverlayMainSessionFlagsEXTX {
4936    #[doc = "Indicates the main session enabled `XR_KHR_composition_layer_depth`"]
4937    pub const ENABLED_COMPOSITION_LAYER_INFO_DEPTH: OverlayMainSessionFlagsEXTX = Self(1 << 0u64);
4938}
4939bitmask!(OverlayMainSessionFlagsEXTX);
4940#[doc = "See [XrOverlaySessionCreateFlagsEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOverlaySessionCreateFlagsEXTX)"]
4941#[repr(transparent)]
4942#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4943pub struct OverlaySessionCreateFlagsEXTX(u64);
4944impl OverlaySessionCreateFlagsEXTX {}
4945bitmask!(OverlaySessionCreateFlagsEXTX);
4946#[doc = "See [XrAndroidSurfaceSwapchainFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidSurfaceSwapchainFlagsFB)"]
4947#[repr(transparent)]
4948#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4949pub struct AndroidSurfaceSwapchainFlagsFB(u64);
4950impl AndroidSurfaceSwapchainFlagsFB {
4951    #[doc = "Create the underlying BufferQueue in synchronous mode"]
4952    pub const SYNCHRONOUS: AndroidSurfaceSwapchainFlagsFB = Self(1 << 0u64);
4953    #[doc = "Acquire most recent buffer whose presentation timestamp is not greater than display time of final composited frame"]
4954    pub const USE_TIMESTAMPS: AndroidSurfaceSwapchainFlagsFB = Self(1 << 1u64);
4955}
4956bitmask!(AndroidSurfaceSwapchainFlagsFB);
4957#[doc = "See [XrCompositionLayerImageLayoutFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerImageLayoutFlagsFB)"]
4958#[repr(transparent)]
4959#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4960pub struct CompositionLayerImageLayoutFlagsFB(u64);
4961impl CompositionLayerImageLayoutFlagsFB {
4962    #[doc = "The coordinate origin of the swapchain image must be considered to be flipped vertically."]
4963    pub const VERTICAL_FLIP: CompositionLayerImageLayoutFlagsFB = Self(1 << 0u64);
4964}
4965bitmask!(CompositionLayerImageLayoutFlagsFB);
4966#[doc = "See [XrCompositionLayerSecureContentFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSecureContentFlagsFB)"]
4967#[repr(transparent)]
4968#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4969pub struct CompositionLayerSecureContentFlagsFB(u64);
4970impl CompositionLayerSecureContentFlagsFB {
4971    #[doc = "Indicates the layer will only be visible inside the HMD, and not visible to external sources"]
4972    pub const EXCLUDE_LAYER: CompositionLayerSecureContentFlagsFB = Self(1 << 0u64);
4973    #[doc = "Indicates the layer will be displayed inside the HMD, but replaced by proxy content when written to external sources"]
4974    pub const REPLACE_LAYER: CompositionLayerSecureContentFlagsFB = Self(1 << 1u64);
4975}
4976bitmask!(CompositionLayerSecureContentFlagsFB);
4977#[doc = "See [XrSwapchainCreateFoveationFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateFoveationFlagsFB)"]
4978#[repr(transparent)]
4979#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4980pub struct SwapchainCreateFoveationFlagsFB(u64);
4981impl SwapchainCreateFoveationFlagsFB {
4982    #[doc = "Explicitly create the swapchain with scaled bin foveation support. The application must ensure that the swapchain is using the OpenGL graphics API and that the QCOM_texture_foveated extension is supported and enabled."]
4983    pub const SCALED_BIN: SwapchainCreateFoveationFlagsFB = Self(1 << 0u64);
4984    #[doc = "Explicitly create the swapchain with fragment density map foveation support. The application must ensure that the swapchain is using the Vulkan graphics API and that the VK_EXT_fragment_density_map extension is supported and enabled."]
4985    pub const FRAGMENT_DENSITY_MAP: SwapchainCreateFoveationFlagsFB = Self(1 << 1u64);
4986}
4987bitmask!(SwapchainCreateFoveationFlagsFB);
4988#[doc = "See [XrSwapchainStateFoveationFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateFoveationFlagsFB)"]
4989#[repr(transparent)]
4990#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4991pub struct SwapchainStateFoveationFlagsFB(u64);
4992impl SwapchainStateFoveationFlagsFB {}
4993bitmask!(SwapchainStateFoveationFlagsFB);
4994#[doc = "See [XrFoveationEyeTrackedProfileCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedProfileCreateFlagsMETA)"]
4995#[repr(transparent)]
4996#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4997pub struct FoveationEyeTrackedProfileCreateFlagsMETA(u64);
4998impl FoveationEyeTrackedProfileCreateFlagsMETA {}
4999bitmask!(FoveationEyeTrackedProfileCreateFlagsMETA);
5000#[doc = "See [XrFoveationEyeTrackedStateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedStateFlagsMETA)"]
5001#[repr(transparent)]
5002#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5003pub struct FoveationEyeTrackedStateFlagsMETA(u64);
5004impl FoveationEyeTrackedStateFlagsMETA {
5005    #[doc = "Indicates whether or not foveation data is valid. This can happen if the eye tracker is obscured, the camera has dirt, or eye lid is closed, etc."]
5006    pub const VALID: FoveationEyeTrackedStateFlagsMETA = Self(1 << 0u64);
5007}
5008bitmask!(FoveationEyeTrackedStateFlagsMETA);
5009#[doc = "See [XrTriangleMeshFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshFlagsFB)"]
5010#[repr(transparent)]
5011#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5012pub struct TriangleMeshFlagsFB(u64);
5013impl TriangleMeshFlagsFB {
5014    #[doc = "The triangle mesh is mutable (can be modified after it is created)."]
5015    pub const MUTABLE: TriangleMeshFlagsFB = Self(1 << 0u64);
5016}
5017bitmask!(TriangleMeshFlagsFB);
5018#[doc = "See [XrPassthroughFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFlagsFB)"]
5019#[repr(transparent)]
5020#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5021pub struct PassthroughFlagsFB(u64);
5022impl PassthroughFlagsFB {
5023    #[doc = "The object (passthrough, layer) is running at creation."]
5024    pub const IS_RUNNING_AT_CREATION: PassthroughFlagsFB = Self(1 << 0u64);
5025    #[doc = "The passthrough system sends depth information to the compositor. Only applicable to layer objects."]
5026    pub const LAYER_DEPTH: PassthroughFlagsFB = Self(1 << 1u64);
5027}
5028bitmask!(PassthroughFlagsFB);
5029#[doc = "See [XrPassthroughStateChangedFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughStateChangedFlagsFB)"]
5030#[repr(transparent)]
5031#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5032pub struct PassthroughStateChangedFlagsFB(u64);
5033impl PassthroughStateChangedFlagsFB {
5034    #[doc = "Passthrough system requires reinitialization."]
5035    pub const REINIT_REQUIRED: PassthroughStateChangedFlagsFB = Self(1 << 0u64);
5036    #[doc = "Non-recoverable error has occurred. A device reboot or a firmware update may be required."]
5037    pub const NON_RECOVERABLE_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 1u64);
5038    #[doc = "A recoverable error has occurred. The runtime will attempt to recover, but some functionality may be temporarily unavailable."]
5039    pub const RECOVERABLE_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 2u64);
5040    #[doc = "The runtime has recovered from a previous error and is functioning normally."]
5041    pub const RESTORED_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 3u64);
5042}
5043bitmask!(PassthroughStateChangedFlagsFB);
5044#[doc = "See [XrPassthroughCapabilityFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCapabilityFlagsFB)"]
5045#[repr(transparent)]
5046#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5047pub struct PassthroughCapabilityFlagsFB(u64);
5048impl PassthroughCapabilityFlagsFB {
5049    #[doc = "The system supports passthrough."]
5050    pub const PASSTHROUGH_CAPABILITY: PassthroughCapabilityFlagsFB = Self(1 << 0u64);
5051    #[doc = "The system can show passthrough with realistic colors. XR_PASSTHROUGH_CAPABILITY_BIT_FB must: be set if XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB is set."]
5052    pub const COLOR: PassthroughCapabilityFlagsFB = Self(1 << 1u64);
5053    #[doc = "The system supports passthrough layers composited using depth testing. XR_PASSTHROUGH_CAPABILITY_BIT_FB must: be set if XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB is set."]
5054    pub const LAYER_DEPTH: PassthroughCapabilityFlagsFB = Self(1 << 2u64);
5055}
5056bitmask!(PassthroughCapabilityFlagsFB);
5057#[doc = "See [XrSemanticLabelsSupportFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsSupportFlagsFB)"]
5058#[repr(transparent)]
5059#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5060pub struct SemanticLabelsSupportFlagsFB(u64);
5061impl SemanticLabelsSupportFlagsFB {
5062    #[doc = "If set, and the runtime reports the extensionVersion as 2 or greater, the runtime may: return multiple semantic labels separated by a comma without spaces. Otherwise, the runtime must: return a single semantic label."]
5063    pub const MULTIPLE_SEMANTIC_LABELS: SemanticLabelsSupportFlagsFB = Self(1 << 0u64);
5064    #[doc = "If set, and the runtime reports the extensionVersion as 3 or greater, the runtime must: return \"TABLE\" instead of \"DESK\" as a semantic label to the application. Otherwise, the runtime must: return \"DESK\" instead of \"TABLE\" as a semantic label to the application, when applicable."]
5065    pub const ACCEPT_DESK_TO_TABLE_MIGRATION: SemanticLabelsSupportFlagsFB = Self(1 << 1u64);
5066    #[doc = "If set, and the runtime reports the extensionVersion as 4 or greater, the runtime may: return \"INVISIBLE_WALL_FACE\" instead of \"WALL_FACE\" as a semantic label to the application in order to represent an invisible wall used to conceptually separate a space (e.g., separate a living space from a kitchen space in an open floor plan house even though there is no real wall between the two spaces) instead of a real wall. Otherwise, the runtime must: return \"WALL_FACE\" as a semantic label to the application in order to represent both an invisible and real wall, when applicable."]
5067    pub const ACCEPT_INVISIBLE_WALL_FACE: SemanticLabelsSupportFlagsFB = Self(1 << 2u64);
5068}
5069bitmask!(SemanticLabelsSupportFlagsFB);
5070#[doc = "See [XrHandTrackingAimFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingAimFlagsFB)"]
5071#[repr(transparent)]
5072#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5073pub struct HandTrackingAimFlagsFB(u64);
5074impl HandTrackingAimFlagsFB {
5075    #[doc = "Aiming data is computed from additional sources beyond the hand data in the base structure"]
5076    pub const COMPUTED: HandTrackingAimFlagsFB = Self(1 << 0u64);
5077    #[doc = "Aiming data is valid"]
5078    pub const VALID: HandTrackingAimFlagsFB = Self(1 << 1u64);
5079    #[doc = "Index finger pinch discrete signal"]
5080    pub const INDEX_PINCHING: HandTrackingAimFlagsFB = Self(1 << 2u64);
5081    #[doc = "Middle finger pinch discrete signal"]
5082    pub const MIDDLE_PINCHING: HandTrackingAimFlagsFB = Self(1 << 3u64);
5083    #[doc = "Ring finger pinch discrete signal"]
5084    pub const RING_PINCHING: HandTrackingAimFlagsFB = Self(1 << 4u64);
5085    #[doc = "Little finger pinch discrete signal"]
5086    pub const LITTLE_PINCHING: HandTrackingAimFlagsFB = Self(1 << 5u64);
5087    #[doc = "System gesture is active"]
5088    pub const SYSTEM_GESTURE: HandTrackingAimFlagsFB = Self(1 << 6u64);
5089    #[doc = "Hand is currently marked as dominant for the system"]
5090    pub const DOMINANT_HAND: HandTrackingAimFlagsFB = Self(1 << 7u64);
5091    #[doc = "System menu gesture is active"]
5092    pub const MENU_PRESSED: HandTrackingAimFlagsFB = Self(1 << 8u64);
5093}
5094bitmask!(HandTrackingAimFlagsFB);
5095#[doc = "See [XrKeyboardTrackingFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingFlagsFB)"]
5096#[repr(transparent)]
5097#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5098pub struct KeyboardTrackingFlagsFB(u64);
5099impl KeyboardTrackingFlagsFB {
5100    #[doc = "indicates that the system has a physically tracked keyboard to report.  If not set then no other bits should be considered to be valid or meaningful.  If set either XR_KEYBOARD_TRACKING_LOCAL_BIT_FB or XR_KEYBOARD_TRACKING_REMOTE_BIT_FB must also be set."]
5101    pub const EXISTS: KeyboardTrackingFlagsFB = Self(1 << 0u64);
5102    #[doc = "indicates that the physically tracked keyboard is intended to be used in a local pairing with the system.  Mutally exclusive with XR_KEYBOARD_TRACKING_REMOTE_BIT_FB."]
5103    pub const LOCAL: KeyboardTrackingFlagsFB = Self(1 << 1u64);
5104    #[doc = "indicates that the physically tracked keyboard is intended to be used while paired to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_LOCAL_BIT_FB."]
5105    pub const REMOTE: KeyboardTrackingFlagsFB = Self(1 << 2u64);
5106    #[doc = "indicates that the physically tracked keyboard is actively connected to the headset and capable of sending key data"]
5107    pub const CONNECTED: KeyboardTrackingFlagsFB = Self(1 << 3u64);
5108}
5109bitmask!(KeyboardTrackingFlagsFB);
5110#[doc = "See [XrKeyboardTrackingQueryFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingQueryFlagsFB)"]
5111#[repr(transparent)]
5112#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5113pub struct KeyboardTrackingQueryFlagsFB(u64);
5114impl KeyboardTrackingQueryFlagsFB {
5115    #[doc = "indicates the query is for the physically tracked keyboard that is intended to be used in a local pairing with the System. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB."]
5116    pub const LOCAL: KeyboardTrackingQueryFlagsFB = Self(1 << 1u64);
5117    #[doc = "indicates the query is for the physically tracked keyboard that may be connected to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB."]
5118    pub const REMOTE: KeyboardTrackingQueryFlagsFB = Self(1 << 2u64);
5119}
5120bitmask!(KeyboardTrackingQueryFlagsFB);
5121#[doc = "See [XrCompositionLayerSpaceWarpInfoFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSpaceWarpInfoFlagsFB)"]
5122#[repr(transparent)]
5123#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5124pub struct CompositionLayerSpaceWarpInfoFlagsFB(u64);
5125impl CompositionLayerSpaceWarpInfoFlagsFB {
5126    #[doc = "Skip current frame's space warp extrapolation"]
5127    pub const FRAME_SKIP: CompositionLayerSpaceWarpInfoFlagsFB = Self(1 << 0u64);
5128}
5129bitmask!(CompositionLayerSpaceWarpInfoFlagsFB);
5130#[doc = "See [XrRenderModelFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelFlagsFB)"]
5131#[repr(transparent)]
5132#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5133pub struct RenderModelFlagsFB(u64);
5134impl RenderModelFlagsFB {
5135    #[doc = "Minimal level of support.  Can only contain a single mesh.  Can only contain a single texture.  Can not contain transparency.  Assumes unlit rendering.  Requires Extension KHR_texturebasisu."]
5136    pub const SUPPORTS_GLTF_2_0_SUBSET_1: RenderModelFlagsFB = Self(1 << 0u64);
5137    #[doc = "All of XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB support plus: Multiple meshes. Multiple Textures. Texture Transparency."]
5138    pub const SUPPORTS_GLTF_2_0_SUBSET_2: RenderModelFlagsFB = Self(1 << 1u64);
5139}
5140bitmask!(RenderModelFlagsFB);
5141#[doc = "See [XrDigitalLensControlFlagsALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDigitalLensControlFlagsALMALENCE)"]
5142#[repr(transparent)]
5143#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5144pub struct DigitalLensControlFlagsALMALENCE(u64);
5145impl DigitalLensControlFlagsALMALENCE {
5146    #[doc = "disables Digital Lens processing of render textures"]
5147    pub const PROCESSING_DISABLE: DigitalLensControlFlagsALMALENCE = Self(1 << 0u64);
5148}
5149bitmask!(DigitalLensControlFlagsALMALENCE);
5150#[doc = "See [XrCompositionLayerSettingsFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSettingsFlagsFB)"]
5151#[repr(transparent)]
5152#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5153pub struct CompositionLayerSettingsFlagsFB(u64);
5154impl CompositionLayerSettingsFlagsFB {
5155    #[doc = "Indicates compositor may: use layer texture supersampling."]
5156    pub const NORMAL_SUPER_SAMPLING: CompositionLayerSettingsFlagsFB = Self(1 << 0u64);
5157    #[doc = "Indicates compositor may: use high quality layer texture supersampling."]
5158    pub const QUALITY_SUPER_SAMPLING: CompositionLayerSettingsFlagsFB = Self(1 << 1u64);
5159    #[doc = "Indicates compositor may: use layer texture sharpening."]
5160    pub const NORMAL_SHARPENING: CompositionLayerSettingsFlagsFB = Self(1 << 2u64);
5161    #[doc = "Indicates compositor may: use high quality layer texture sharpening."]
5162    pub const QUALITY_SHARPENING: CompositionLayerSettingsFlagsFB = Self(1 << 3u64);
5163    #[doc = "Indicates compositor may: automatically toggle a texture filtering mechanism to improve visual quality of layer. This must: not be the only bit set. (Added by XR_META_automatic_layer_filter)"]
5164    pub const AUTO_LAYER_FILTER: CompositionLayerSettingsFlagsFB = Self(1 << 5u64);
5165}
5166bitmask!(CompositionLayerSettingsFlagsFB);
5167#[doc = "See [XrExternalCameraStatusFlagsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraStatusFlagsOCULUS)"]
5168#[repr(transparent)]
5169#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5170pub struct ExternalCameraStatusFlagsOCULUS(u64);
5171impl ExternalCameraStatusFlagsOCULUS {
5172    #[doc = "External camera is connected"]
5173    pub const CONNECTED: ExternalCameraStatusFlagsOCULUS = Self(1 << 0u64);
5174    #[doc = "External camera is undergoing calibration"]
5175    pub const CALIBRATING: ExternalCameraStatusFlagsOCULUS = Self(1 << 1u64);
5176    #[doc = "External camera has tried and failed calibration"]
5177    pub const CALIBRATION_FAILED: ExternalCameraStatusFlagsOCULUS = Self(1 << 2u64);
5178    #[doc = "External camera has tried and passed calibration"]
5179    pub const CALIBRATED: ExternalCameraStatusFlagsOCULUS = Self(1 << 3u64);
5180    #[doc = "External camera is capturing"]
5181    pub const CAPTURING: ExternalCameraStatusFlagsOCULUS = Self(1 << 4u64);
5182}
5183bitmask!(ExternalCameraStatusFlagsOCULUS);
5184#[doc = "See [XrPerformanceMetricsCounterFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterFlagsMETA)"]
5185#[repr(transparent)]
5186#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5187pub struct PerformanceMetricsCounterFlagsMETA(u64);
5188impl PerformanceMetricsCounterFlagsMETA {
5189    #[doc = "Indicates any of the values in XrPerformanceMetricsCounterMETA is valid."]
5190    pub const ANY_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 0u64);
5191    #[doc = "Indicates the uintValue in XrPerformanceMetricsCounterMETA is valid."]
5192    pub const UINT_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 1u64);
5193    #[doc = "Indicates the floatValue in XrPerformanceMetricsCounterMETA is valid."]
5194    pub const FLOAT_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 2u64);
5195}
5196bitmask!(PerformanceMetricsCounterFlagsMETA);
5197#[doc = "See [XrPassthroughPreferenceFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughPreferenceFlagsMETA)"]
5198#[repr(transparent)]
5199#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5200pub struct PassthroughPreferenceFlagsMETA(u64);
5201impl PassthroughPreferenceFlagsMETA {
5202    #[doc = "Indicates that the runtime recommends apps to default to a mixed reality experience with passthrough (if supported)."]
5203    pub const DEFAULT_TO_ACTIVE: PassthroughPreferenceFlagsMETA = Self(1 << 0u64);
5204}
5205bitmask!(PassthroughPreferenceFlagsMETA);
5206#[doc = "See [XrFoveationDynamicFlagsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicFlagsHTC)"]
5207#[repr(transparent)]
5208#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5209pub struct FoveationDynamicFlagsHTC(u64);
5210impl FoveationDynamicFlagsHTC {
5211    #[doc = "Allow system to set periphery pixel density dynamically."]
5212    pub const LEVEL_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 0u64);
5213    #[doc = "Allow system to set clear FOV degree dynamically."]
5214    pub const CLEAR_FOV_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 1u64);
5215    #[doc = "Allow system to set focal center offset dynamically."]
5216    pub const FOCAL_CENTER_OFFSET_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 2u64);
5217}
5218bitmask!(FoveationDynamicFlagsHTC);
5219#[doc = "See [XrFrameEndInfoFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfoFlagsML)"]
5220#[repr(transparent)]
5221#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5222pub struct FrameEndInfoFlagsML(u64);
5223impl FrameEndInfoFlagsML {
5224    #[doc = "Indicates that the content for this frame is protected and should not be recorded or captured outside the graphics system."]
5225    pub const PROTECTED: FrameEndInfoFlagsML = Self(1 << 0u64);
5226    #[doc = "Indicates that a soft fade to transparent should be added to the frame in the compositor to blend any hard edges at the FOV limits."]
5227    pub const VIGNETTE: FrameEndInfoFlagsML = Self(1 << 1u64);
5228}
5229bitmask!(FrameEndInfoFlagsML);
5230#[doc = "See [XrGlobalDimmerFrameEndInfoFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGlobalDimmerFrameEndInfoFlagsML)"]
5231#[repr(transparent)]
5232#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5233pub struct GlobalDimmerFrameEndInfoFlagsML(u64);
5234impl GlobalDimmerFrameEndInfoFlagsML {
5235    #[doc = "Indicates that the global dimmer should: be enabled and controlled by dimmerValue."]
5236    pub const ENABLED: GlobalDimmerFrameEndInfoFlagsML = Self(1 << 0u64);
5237}
5238bitmask!(GlobalDimmerFrameEndInfoFlagsML);
5239#[doc = "See [XrPlaneDetectorFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorFlagsEXT)"]
5240#[repr(transparent)]
5241#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5242pub struct PlaneDetectorFlagsEXT(u64);
5243impl PlaneDetectorFlagsEXT {
5244    #[doc = "populate the plane contour information"]
5245    pub const ENABLE_CONTOUR: PlaneDetectorFlagsEXT = Self(1 << 0u64);
5246}
5247bitmask!(PlaneDetectorFlagsEXT);
5248#[doc = "See [XrPlaneDetectionCapabilityFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectionCapabilityFlagsEXT)"]
5249#[repr(transparent)]
5250#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5251pub struct PlaneDetectionCapabilityFlagsEXT(u64);
5252impl PlaneDetectionCapabilityFlagsEXT {
5253    #[doc = "plane detection is supported"]
5254    pub const PLANE_DETECTION: PlaneDetectionCapabilityFlagsEXT = Self(1 << 0u64);
5255    #[doc = "polygon buffers for holes in planes can be generated"]
5256    pub const PLANE_HOLES: PlaneDetectionCapabilityFlagsEXT = Self(1 << 1u64);
5257    #[doc = "plane detection supports ceiling semantic classification"]
5258    pub const SEMANTIC_CEILING: PlaneDetectionCapabilityFlagsEXT = Self(1 << 2u64);
5259    #[doc = "plane detection supports floor semantic classification"]
5260    pub const SEMANTIC_FLOOR: PlaneDetectionCapabilityFlagsEXT = Self(1 << 3u64);
5261    #[doc = "plane detection supports wall semantic classification"]
5262    pub const SEMANTIC_WALL: PlaneDetectionCapabilityFlagsEXT = Self(1 << 4u64);
5263    #[doc = "plane detection supports platform semantic classification (for example table tops)"]
5264    pub const SEMANTIC_PLATFORM: PlaneDetectionCapabilityFlagsEXT = Self(1 << 5u64);
5265    #[doc = "plane detection supports plane orientation classification. If not supported planes are always classified as ARBITRARY."]
5266    pub const ORIENTATION: PlaneDetectionCapabilityFlagsEXT = Self(1 << 6u64);
5267}
5268bitmask!(PlaneDetectionCapabilityFlagsEXT);
5269#[doc = "See [XrVirtualKeyboardInputStateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputStateFlagsMETA)"]
5270#[repr(transparent)]
5271#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5272pub struct VirtualKeyboardInputStateFlagsMETA(u64);
5273impl VirtualKeyboardInputStateFlagsMETA {
5274    #[doc = "If the input source is considered 'pressed' at all. Pinch for hands, Primary button for controllers."]
5275    pub const PRESSED: VirtualKeyboardInputStateFlagsMETA = Self(1 << 0u64);
5276}
5277bitmask!(VirtualKeyboardInputStateFlagsMETA);
5278#[doc = "See [XrLocalizationMapErrorFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapErrorFlagsML)"]
5279#[repr(transparent)]
5280#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5281pub struct LocalizationMapErrorFlagsML(u64);
5282impl LocalizationMapErrorFlagsML {
5283    #[doc = "Localization failed for an unknown reason."]
5284    pub const UNKNOWN: LocalizationMapErrorFlagsML = Self(1 << 0u64);
5285    #[doc = "Localization failed because the user is outside of the mapped area."]
5286    pub const OUT_OF_MAPPED_AREA: LocalizationMapErrorFlagsML = Self(1 << 1u64);
5287    #[doc = "There are not enough features in the environment to successfully localize."]
5288    pub const LOW_FEATURE_COUNT: LocalizationMapErrorFlagsML = Self(1 << 2u64);
5289    #[doc = "Localization failed due to excessive motion."]
5290    pub const EXCESSIVE_MOTION: LocalizationMapErrorFlagsML = Self(1 << 3u64);
5291    #[doc = "Localization failed because the lighting levels are too low in the environment."]
5292    pub const LOW_LIGHT: LocalizationMapErrorFlagsML = Self(1 << 4u64);
5293    #[doc = "A headpose failure caused localization to be unsuccessful."]
5294    pub const HEADPOSE: LocalizationMapErrorFlagsML = Self(1 << 5u64);
5295}
5296bitmask!(LocalizationMapErrorFlagsML);
5297#[doc = "See [XrEnvironmentDepthProviderCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderCreateFlagsMETA)"]
5298#[repr(transparent)]
5299#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5300pub struct EnvironmentDepthProviderCreateFlagsMETA(u64);
5301impl EnvironmentDepthProviderCreateFlagsMETA {}
5302bitmask!(EnvironmentDepthProviderCreateFlagsMETA);
5303#[doc = "See [XrEnvironmentDepthSwapchainCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainCreateFlagsMETA)"]
5304#[repr(transparent)]
5305#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5306pub struct EnvironmentDepthSwapchainCreateFlagsMETA(u64);
5307impl EnvironmentDepthSwapchainCreateFlagsMETA {}
5308bitmask!(EnvironmentDepthSwapchainCreateFlagsMETA);
5309#[doc = "See [XrInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstance)"]
5310#[repr(transparent)]
5311#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5312pub struct Instance(u64);
5313handle!(Instance);
5314#[doc = "See [XrSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSession)"]
5315#[repr(transparent)]
5316#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5317pub struct Session(u64);
5318handle!(Session);
5319#[doc = "See [XrActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSet)"]
5320#[repr(transparent)]
5321#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5322pub struct ActionSet(u64);
5323handle!(ActionSet);
5324#[doc = "See [XrAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAction)"]
5325#[repr(transparent)]
5326#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5327pub struct Action(u64);
5328handle!(Action);
5329#[doc = "See [XrSwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchain)"]
5330#[repr(transparent)]
5331#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5332pub struct Swapchain(u64);
5333handle!(Swapchain);
5334#[doc = "See [XrSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpace)"]
5335#[repr(transparent)]
5336#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5337pub struct Space(u64);
5338handle!(Space);
5339#[doc = "See [XrDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerEXT)"]
5340#[repr(transparent)]
5341#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5342pub struct DebugUtilsMessengerEXT(u64);
5343handle!(DebugUtilsMessengerEXT);
5344#[doc = "See [XrSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorMSFT)"]
5345#[repr(transparent)]
5346#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5347pub struct SpatialAnchorMSFT(u64);
5348handle!(SpatialAnchorMSFT);
5349#[doc = "See [XrHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackerEXT)"]
5350#[repr(transparent)]
5351#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5352pub struct HandTrackerEXT(u64);
5353handle!(HandTrackerEXT);
5354#[doc = "See [XrFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationProfileFB)"]
5355#[repr(transparent)]
5356#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5357pub struct FoveationProfileFB(u64);
5358handle!(FoveationProfileFB);
5359#[doc = "See [XrTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshFB)"]
5360#[repr(transparent)]
5361#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5362pub struct TriangleMeshFB(u64);
5363handle!(TriangleMeshFB);
5364#[doc = "See [XrPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFB)"]
5365#[repr(transparent)]
5366#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5367pub struct PassthroughFB(u64);
5368handle!(PassthroughFB);
5369#[doc = "See [XrPassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerFB)"]
5370#[repr(transparent)]
5371#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5372pub struct PassthroughLayerFB(u64);
5373handle!(PassthroughLayerFB);
5374#[doc = "See [XrGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceFB)"]
5375#[repr(transparent)]
5376#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5377pub struct GeometryInstanceFB(u64);
5378handle!(GeometryInstanceFB);
5379#[doc = "See [XrFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackerHTC)"]
5380#[repr(transparent)]
5381#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5382pub struct FacialTrackerHTC(u64);
5383handle!(FacialTrackerHTC);
5384#[doc = "See [XrPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughHTC)"]
5385#[repr(transparent)]
5386#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5387pub struct PassthroughHTC(u64);
5388handle!(PassthroughHTC);
5389#[doc = "See [XrFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerFB)"]
5390#[repr(transparent)]
5391#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5392pub struct FaceTrackerFB(u64);
5393handle!(FaceTrackerFB);
5394#[doc = "See [XrFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTracker2FB)"]
5395#[repr(transparent)]
5396#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5397pub struct FaceTracker2FB(u64);
5398handle!(FaceTracker2FB);
5399#[doc = "See [XrBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyTrackerFB)"]
5400#[repr(transparent)]
5401#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5402pub struct BodyTrackerFB(u64);
5403handle!(BodyTrackerFB);
5404#[doc = "See [XrEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeTrackerFB)"]
5405#[repr(transparent)]
5406#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5407pub struct EyeTrackerFB(u64);
5408handle!(EyeTrackerFB);
5409#[doc = "See [XrSpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUserFB)"]
5410#[repr(transparent)]
5411#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5412pub struct SpaceUserFB(u64);
5413handle!(SpaceUserFB);
5414#[doc = "See [XrPassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutMETA)"]
5415#[repr(transparent)]
5416#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5417pub struct PassthroughColorLutMETA(u64);
5418handle!(PassthroughColorLutMETA);
5419#[doc = "See [XrPlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorEXT)"]
5420#[repr(transparent)]
5421#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5422pub struct PlaneDetectorEXT(u64);
5423handle!(PlaneDetectorEXT);
5424#[doc = "See [XrVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardMETA)"]
5425#[repr(transparent)]
5426#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5427pub struct VirtualKeyboardMETA(u64);
5428handle!(VirtualKeyboardMETA);
5429#[doc = "See [XrExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExportedLocalizationMapML)"]
5430#[repr(transparent)]
5431#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5432pub struct ExportedLocalizationMapML(u64);
5433handle!(ExportedLocalizationMapML);
5434#[doc = "See [XrMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorML)"]
5435#[repr(transparent)]
5436#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5437pub struct MarkerDetectorML(u64);
5438handle!(MarkerDetectorML);
5439#[doc = "See [XrEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderMETA)"]
5440#[repr(transparent)]
5441#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5442pub struct EnvironmentDepthProviderMETA(u64);
5443handle!(EnvironmentDepthProviderMETA);
5444#[doc = "See [XrEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainMETA)"]
5445#[repr(transparent)]
5446#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5447pub struct EnvironmentDepthSwapchainMETA(u64);
5448handle!(EnvironmentDepthSwapchainMETA);
5449#[doc = "See [XrSpatialGraphNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingMSFT)"]
5450#[repr(transparent)]
5451#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5452pub struct SpatialGraphNodeBindingMSFT(u64);
5453handle!(SpatialGraphNodeBindingMSFT);
5454#[doc = "See [XrSceneObserverMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneObserverMSFT)"]
5455#[repr(transparent)]
5456#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5457pub struct SceneObserverMSFT(u64);
5458handle!(SceneObserverMSFT);
5459#[doc = "See [XrSceneMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMSFT)"]
5460#[repr(transparent)]
5461#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5462pub struct SceneMSFT(u64);
5463handle!(SceneMSFT);
5464#[doc = "See [XrSpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorStoreConnectionMSFT)"]
5465#[repr(transparent)]
5466#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5467pub struct SpatialAnchorStoreConnectionMSFT(u64);
5468handle!(SpatialAnchorStoreConnectionMSFT);
5469#[repr(C)]
5470#[derive(Copy, Clone, Debug, Default, PartialEq)]
5471#[doc = "See [XrVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector2f)"]
5472pub struct Vector2f {
5473    pub x: f32,
5474    pub y: f32,
5475}
5476#[repr(C)]
5477#[derive(Copy, Clone, Debug, Default, PartialEq)]
5478#[doc = "See [XrVector3f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector3f)"]
5479pub struct Vector3f {
5480    pub x: f32,
5481    pub y: f32,
5482    pub z: f32,
5483}
5484#[repr(C)]
5485#[derive(Copy, Clone, Debug, Default, PartialEq)]
5486#[doc = "See [XrVector4f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector4f)"]
5487pub struct Vector4f {
5488    pub x: f32,
5489    pub y: f32,
5490    pub z: f32,
5491    pub w: f32,
5492}
5493#[repr(C)]
5494#[derive(Copy, Clone, Debug, Default, PartialEq)]
5495#[doc = "See [XrColor4f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColor4f)"]
5496pub struct Color4f {
5497    pub r: f32,
5498    pub g: f32,
5499    pub b: f32,
5500    pub a: f32,
5501}
5502#[repr(C)]
5503#[derive(Copy, Clone, Debug, Default, PartialEq)]
5504#[doc = "See [XrQuaternionf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrQuaternionf)"]
5505pub struct Quaternionf {
5506    pub x: f32,
5507    pub y: f32,
5508    pub z: f32,
5509    pub w: f32,
5510}
5511#[repr(C)]
5512#[derive(Copy, Clone, Debug, Default, PartialEq)]
5513#[doc = "See [XrPosef](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPosef)"]
5514pub struct Posef {
5515    pub orientation: Quaternionf,
5516    pub position: Vector3f,
5517}
5518#[repr(C)]
5519#[derive(Copy, Clone, Debug, Default, PartialEq)]
5520#[doc = "See [XrOffset2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset2Df)"]
5521pub struct Offset2Df {
5522    pub x: f32,
5523    pub y: f32,
5524}
5525#[repr(C)]
5526#[derive(Copy, Clone, Debug, Default, PartialEq)]
5527#[doc = "See [XrExtent2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent2Df)"]
5528pub struct Extent2Df {
5529    pub width: f32,
5530    pub height: f32,
5531}
5532#[repr(C)]
5533#[derive(Copy, Clone, Debug, Default, PartialEq)]
5534#[doc = "See [XrRect2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect2Df)"]
5535pub struct Rect2Df {
5536    pub offset: Offset2Df,
5537    pub extent: Extent2Df,
5538}
5539#[repr(C)]
5540#[derive(Copy, Clone, Debug, Default, PartialEq)]
5541#[doc = "See [XrOffset2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset2Di)"]
5542pub struct Offset2Di {
5543    pub x: i32,
5544    pub y: i32,
5545}
5546#[repr(C)]
5547#[derive(Copy, Clone, Debug, Default, PartialEq)]
5548#[doc = "See [XrExtent2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent2Di)"]
5549pub struct Extent2Di {
5550    pub width: i32,
5551    pub height: i32,
5552}
5553#[repr(C)]
5554#[derive(Copy, Clone, Debug, Default, PartialEq)]
5555#[doc = "See [XrRect2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect2Di)"]
5556pub struct Rect2Di {
5557    pub offset: Offset2Di,
5558    pub extent: Extent2Di,
5559}
5560#[repr(C)]
5561#[derive(Copy, Clone, Debug, PartialEq)]
5562#[doc = "See [XrNegotiateLoaderInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateLoaderInfo)"]
5563pub struct NegotiateLoaderInfo {
5564    pub struct_type: LoaderInterfaceStructs,
5565    pub struct_version: u32,
5566    pub struct_size: usize,
5567    pub min_interface_version: u32,
5568    pub max_interface_version: u32,
5569    pub min_api_version: Version,
5570    pub max_api_version: Version,
5571}
5572#[repr(C)]
5573#[derive(Copy, Clone, Debug, PartialEq)]
5574#[doc = "See [XrNegotiateApiLayerRequest](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateApiLayerRequest)"]
5575pub struct NegotiateApiLayerRequest {
5576    pub struct_type: LoaderInterfaceStructs,
5577    pub struct_version: u32,
5578    pub struct_size: usize,
5579    pub layer_interface_version: u32,
5580    pub layer_api_version: Version,
5581    pub get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5582    pub create_api_layer_instance: Option<pfn::CreateApiLayerInstance>,
5583}
5584#[repr(C)]
5585#[derive(Copy, Clone, Debug, PartialEq)]
5586#[doc = "See [XrNegotiateRuntimeRequest](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateRuntimeRequest)"]
5587pub struct NegotiateRuntimeRequest {
5588    pub struct_type: LoaderInterfaceStructs,
5589    pub struct_version: u32,
5590    pub struct_size: usize,
5591    pub runtime_interface_version: u32,
5592    pub runtime_api_version: Version,
5593    pub get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5594}
5595#[repr(C)]
5596#[derive(Copy, Clone)]
5597#[doc = "See [XrApiLayerNextInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerNextInfo)"]
5598pub struct ApiLayerNextInfo {
5599    pub struct_type: LoaderInterfaceStructs,
5600    pub struct_version: u32,
5601    pub struct_size: usize,
5602    pub layer_name: [c_char; MAX_API_LAYER_NAME_SIZE],
5603    pub next_get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5604    pub next_create_api_layer_instance: Option<pfn::CreateApiLayerInstance>,
5605    pub next: *mut ApiLayerNextInfo,
5606}
5607#[repr(C)]
5608#[derive(Copy, Clone)]
5609#[doc = "See [XrApiLayerCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerCreateInfo)"]
5610pub struct ApiLayerCreateInfo {
5611    pub struct_type: LoaderInterfaceStructs,
5612    pub struct_version: u32,
5613    pub struct_size: usize,
5614    pub loader_instance: *mut c_void,
5615    pub settings_file_location: [c_char; API_LAYER_MAX_SETTINGS_PATH_SIZE],
5616    pub next_info: *mut ApiLayerNextInfo,
5617}
5618#[repr(C)]
5619#[derive(Copy, Clone, Debug)]
5620#[doc = "See [XrBaseInStructure](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBaseInStructure)"]
5621pub struct BaseInStructure {
5622    pub ty: StructureType,
5623    pub next: *const BaseInStructure,
5624}
5625#[repr(C)]
5626#[derive(Copy, Clone, Debug)]
5627#[doc = "See [XrBaseOutStructure](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBaseOutStructure)"]
5628pub struct BaseOutStructure {
5629    pub ty: StructureType,
5630    pub next: *mut BaseOutStructure,
5631}
5632#[repr(C)]
5633#[derive(Copy, Clone, Debug)]
5634#[doc = "See [XrApiLayerProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerProperties)"]
5635pub struct ApiLayerProperties {
5636    pub ty: StructureType,
5637    pub next: *mut c_void,
5638    pub layer_name: [c_char; MAX_API_LAYER_NAME_SIZE],
5639    pub spec_version: Version,
5640    pub layer_version: u32,
5641    pub description: [c_char; MAX_API_LAYER_DESCRIPTION_SIZE],
5642}
5643impl ApiLayerProperties {
5644    pub const TYPE: StructureType = StructureType::API_LAYER_PROPERTIES;
5645    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5646    #[inline]
5647    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5648        let mut x = MaybeUninit::<Self>::uninit();
5649        unsafe {
5650            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5651                ty: Self::TYPE,
5652                next,
5653            });
5654        }
5655        x
5656    }
5657}
5658#[repr(C)]
5659#[derive(Copy, Clone, Debug)]
5660#[doc = "See [XrExtensionProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtensionProperties)"]
5661pub struct ExtensionProperties {
5662    pub ty: StructureType,
5663    pub next: *mut c_void,
5664    pub extension_name: [c_char; MAX_EXTENSION_NAME_SIZE],
5665    pub extension_version: u32,
5666}
5667impl ExtensionProperties {
5668    pub const TYPE: StructureType = StructureType::EXTENSION_PROPERTIES;
5669    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5670    #[inline]
5671    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5672        let mut x = MaybeUninit::<Self>::uninit();
5673        unsafe {
5674            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5675                ty: Self::TYPE,
5676                next,
5677            });
5678        }
5679        x
5680    }
5681}
5682#[repr(C)]
5683#[derive(Copy, Clone, Debug)]
5684#[doc = "See [XrApplicationInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApplicationInfo)"]
5685pub struct ApplicationInfo {
5686    pub application_name: [c_char; MAX_APPLICATION_NAME_SIZE],
5687    pub application_version: u32,
5688    pub engine_name: [c_char; MAX_ENGINE_NAME_SIZE],
5689    pub engine_version: u32,
5690    pub api_version: Version,
5691}
5692#[repr(C)]
5693#[derive(Copy, Clone, Debug)]
5694#[doc = "See [XrInstanceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateInfo)"]
5695pub struct InstanceCreateInfo {
5696    pub ty: StructureType,
5697    pub next: *const c_void,
5698    pub create_flags: InstanceCreateFlags,
5699    pub application_info: ApplicationInfo,
5700    pub enabled_api_layer_count: u32,
5701    pub enabled_api_layer_names: *const *const c_char,
5702    pub enabled_extension_count: u32,
5703    pub enabled_extension_names: *const *const c_char,
5704}
5705impl InstanceCreateInfo {
5706    pub const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO;
5707}
5708#[repr(C)]
5709#[derive(Copy, Clone, Debug)]
5710#[doc = "See [XrInstanceProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceProperties)"]
5711pub struct InstanceProperties {
5712    pub ty: StructureType,
5713    pub next: *mut c_void,
5714    pub runtime_version: Version,
5715    pub runtime_name: [c_char; MAX_RUNTIME_NAME_SIZE],
5716}
5717impl InstanceProperties {
5718    pub const TYPE: StructureType = StructureType::INSTANCE_PROPERTIES;
5719    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5720    #[inline]
5721    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5722        let mut x = MaybeUninit::<Self>::uninit();
5723        unsafe {
5724            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5725                ty: Self::TYPE,
5726                next,
5727            });
5728        }
5729        x
5730    }
5731}
5732#[repr(C)]
5733#[derive(Copy, Clone, Debug)]
5734#[doc = "See [XrSystemGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemGetInfo)"]
5735pub struct SystemGetInfo {
5736    pub ty: StructureType,
5737    pub next: *const c_void,
5738    pub form_factor: FormFactor,
5739}
5740impl SystemGetInfo {
5741    pub const TYPE: StructureType = StructureType::SYSTEM_GET_INFO;
5742}
5743#[repr(C)]
5744#[derive(Copy, Clone, Debug)]
5745#[doc = "See [XrSystemProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemProperties)"]
5746pub struct SystemProperties {
5747    pub ty: StructureType,
5748    pub next: *mut c_void,
5749    pub system_id: SystemId,
5750    pub vendor_id: u32,
5751    pub system_name: [c_char; MAX_SYSTEM_NAME_SIZE],
5752    pub graphics_properties: SystemGraphicsProperties,
5753    pub tracking_properties: SystemTrackingProperties,
5754}
5755impl SystemProperties {
5756    pub const TYPE: StructureType = StructureType::SYSTEM_PROPERTIES;
5757    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5758    #[inline]
5759    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5760        let mut x = MaybeUninit::<Self>::uninit();
5761        unsafe {
5762            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5763                ty: Self::TYPE,
5764                next,
5765            });
5766        }
5767        x
5768    }
5769}
5770#[repr(C)]
5771#[derive(Copy, Clone, Debug, Default, PartialEq)]
5772#[doc = "See [XrSystemGraphicsProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemGraphicsProperties)"]
5773pub struct SystemGraphicsProperties {
5774    pub max_swapchain_image_height: u32,
5775    pub max_swapchain_image_width: u32,
5776    pub max_layer_count: u32,
5777}
5778#[repr(C)]
5779#[derive(Copy, Clone, Debug, Default, PartialEq)]
5780#[doc = "See [XrSystemTrackingProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemTrackingProperties)"]
5781pub struct SystemTrackingProperties {
5782    pub orientation_tracking: Bool32,
5783    pub position_tracking: Bool32,
5784}
5785#[repr(C)]
5786#[derive(Copy, Clone, Debug)]
5787#[doc = "See [XrGraphicsBindingOpenGLWin32KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLWin32KHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5788#[cfg(windows)]
5789pub struct GraphicsBindingOpenGLWin32KHR {
5790    pub ty: StructureType,
5791    pub next: *const c_void,
5792    pub h_dc: HDC,
5793    pub h_glrc: HGLRC,
5794}
5795#[cfg(windows)]
5796impl GraphicsBindingOpenGLWin32KHR {
5797    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_WIN32_KHR;
5798}
5799#[repr(C)]
5800#[derive(Copy, Clone, Debug)]
5801#[doc = "See [XrGraphicsBindingOpenGLXlibKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLXlibKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5802pub struct GraphicsBindingOpenGLXlibKHR {
5803    pub ty: StructureType,
5804    pub next: *const c_void,
5805    pub x_display: *mut Display,
5806    pub visualid: u32,
5807    pub glx_fb_config: GLXFBConfig,
5808    pub glx_drawable: GLXDrawable,
5809    pub glx_context: GLXContext,
5810}
5811impl GraphicsBindingOpenGLXlibKHR {
5812    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_XLIB_KHR;
5813}
5814#[repr(C)]
5815#[derive(Copy, Clone, Debug)]
5816#[doc = "See [XrGraphicsBindingOpenGLXcbKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLXcbKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5817pub struct GraphicsBindingOpenGLXcbKHR {
5818    pub ty: StructureType,
5819    pub next: *const c_void,
5820    pub connection: *mut xcb_connection_t,
5821    pub screen_number: u32,
5822    pub fbconfigid: xcb_glx_fbconfig_t,
5823    pub visualid: xcb_visualid_t,
5824    pub glx_drawable: xcb_glx_drawable_t,
5825    pub glx_context: xcb_glx_context_t,
5826}
5827impl GraphicsBindingOpenGLXcbKHR {
5828    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_XCB_KHR;
5829}
5830#[repr(C)]
5831#[derive(Copy, Clone, Debug)]
5832#[doc = "See [XrGraphicsBindingOpenGLWaylandKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLWaylandKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5833pub struct GraphicsBindingOpenGLWaylandKHR {
5834    pub ty: StructureType,
5835    pub next: *const c_void,
5836    pub display: *mut wl_display,
5837}
5838impl GraphicsBindingOpenGLWaylandKHR {
5839    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_WAYLAND_KHR;
5840}
5841#[repr(C)]
5842#[derive(Copy, Clone, Debug)]
5843#[doc = "See [XrGraphicsBindingD3D11KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingD3D11KHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
5844#[cfg(windows)]
5845pub struct GraphicsBindingD3D11KHR {
5846    pub ty: StructureType,
5847    pub next: *const c_void,
5848    pub device: *mut ID3D11Device,
5849}
5850#[cfg(windows)]
5851impl GraphicsBindingD3D11KHR {
5852    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_D3D11_KHR;
5853}
5854#[repr(C)]
5855#[derive(Copy, Clone, Debug)]
5856#[doc = "See [XrGraphicsBindingD3D12KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingD3D12KHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
5857#[cfg(windows)]
5858pub struct GraphicsBindingD3D12KHR {
5859    pub ty: StructureType,
5860    pub next: *const c_void,
5861    pub device: *mut ID3D12Device,
5862    pub queue: *mut ID3D12CommandQueue,
5863}
5864#[cfg(windows)]
5865impl GraphicsBindingD3D12KHR {
5866    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_D3D12_KHR;
5867}
5868#[repr(C)]
5869#[derive(Copy, Clone, Debug)]
5870#[doc = "See [XrGraphicsBindingOpenGLESAndroidKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLESAndroidKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
5871#[cfg(target_os = "android")]
5872pub struct GraphicsBindingOpenGLESAndroidKHR {
5873    pub ty: StructureType,
5874    pub next: *const c_void,
5875    pub display: EGLDisplay,
5876    pub config: EGLConfig,
5877    pub context: EGLContext,
5878}
5879#[cfg(target_os = "android")]
5880impl GraphicsBindingOpenGLESAndroidKHR {
5881    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR;
5882}
5883#[repr(C)]
5884#[derive(Copy, Clone, Debug)]
5885#[doc = "See [XrGraphicsBindingVulkanKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingVulkanKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
5886pub struct GraphicsBindingVulkanKHR {
5887    pub ty: StructureType,
5888    pub next: *const c_void,
5889    pub instance: VkInstance,
5890    pub physical_device: VkPhysicalDevice,
5891    pub device: VkDevice,
5892    pub queue_family_index: u32,
5893    pub queue_index: u32,
5894}
5895impl GraphicsBindingVulkanKHR {
5896    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_VULKAN_KHR;
5897}
5898pub type GraphicsBindingVulkan2KHR = GraphicsBindingVulkanKHR;
5899#[repr(C)]
5900#[derive(Copy, Clone, Debug)]
5901#[doc = "See [XrSessionCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateInfo)"]
5902pub struct SessionCreateInfo {
5903    pub ty: StructureType,
5904    pub next: *const c_void,
5905    pub create_flags: SessionCreateFlags,
5906    pub system_id: SystemId,
5907}
5908impl SessionCreateInfo {
5909    pub const TYPE: StructureType = StructureType::SESSION_CREATE_INFO;
5910}
5911#[repr(C)]
5912#[derive(Copy, Clone, Debug)]
5913#[doc = "See [XrSessionBeginInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionBeginInfo)"]
5914pub struct SessionBeginInfo {
5915    pub ty: StructureType,
5916    pub next: *const c_void,
5917    pub primary_view_configuration_type: ViewConfigurationType,
5918}
5919impl SessionBeginInfo {
5920    pub const TYPE: StructureType = StructureType::SESSION_BEGIN_INFO;
5921}
5922#[repr(C)]
5923#[derive(Copy, Clone, Debug)]
5924#[doc = "See [XrSwapchainCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateInfo)"]
5925pub struct SwapchainCreateInfo {
5926    pub ty: StructureType,
5927    pub next: *const c_void,
5928    pub create_flags: SwapchainCreateFlags,
5929    pub usage_flags: SwapchainUsageFlags,
5930    pub format: i64,
5931    pub sample_count: u32,
5932    pub width: u32,
5933    pub height: u32,
5934    pub face_count: u32,
5935    pub array_size: u32,
5936    pub mip_count: u32,
5937}
5938impl SwapchainCreateInfo {
5939    pub const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO;
5940}
5941#[repr(C)]
5942#[derive(Copy, Clone, Debug)]
5943#[doc = "See [XrSwapchainImageBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageBaseHeader)"]
5944pub struct SwapchainImageBaseHeader {
5945    pub ty: StructureType,
5946    pub next: *mut c_void,
5947}
5948#[repr(C)]
5949#[derive(Copy, Clone, Debug)]
5950#[doc = "See [XrSwapchainImageOpenGLKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageOpenGLKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5951pub struct SwapchainImageOpenGLKHR {
5952    pub ty: StructureType,
5953    pub next: *mut c_void,
5954    pub image: u32,
5955}
5956impl SwapchainImageOpenGLKHR {
5957    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_OPENGL_KHR;
5958    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5959    #[inline]
5960    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5961        let mut x = MaybeUninit::<Self>::uninit();
5962        unsafe {
5963            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5964                ty: Self::TYPE,
5965                next,
5966            });
5967        }
5968        x
5969    }
5970}
5971#[repr(C)]
5972#[derive(Copy, Clone, Debug)]
5973#[doc = "See [XrSwapchainImageOpenGLESKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageOpenGLESKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
5974pub struct SwapchainImageOpenGLESKHR {
5975    pub ty: StructureType,
5976    pub next: *mut c_void,
5977    pub image: u32,
5978}
5979impl SwapchainImageOpenGLESKHR {
5980    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_OPENGL_ES_KHR;
5981    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5982    #[inline]
5983    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5984        let mut x = MaybeUninit::<Self>::uninit();
5985        unsafe {
5986            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5987                ty: Self::TYPE,
5988                next,
5989            });
5990        }
5991        x
5992    }
5993}
5994#[repr(C)]
5995#[derive(Copy, Clone, Debug)]
5996#[doc = "See [XrSwapchainImageVulkanKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageVulkanKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
5997pub struct SwapchainImageVulkanKHR {
5998    pub ty: StructureType,
5999    pub next: *mut c_void,
6000    pub image: VkImage,
6001}
6002impl SwapchainImageVulkanKHR {
6003    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_VULKAN_KHR;
6004    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6005    #[inline]
6006    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6007        let mut x = MaybeUninit::<Self>::uninit();
6008        unsafe {
6009            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6010                ty: Self::TYPE,
6011                next,
6012            });
6013        }
6014        x
6015    }
6016}
6017pub type SwapchainImageVulkan2KHR = SwapchainImageVulkanKHR;
6018#[repr(C)]
6019#[derive(Copy, Clone, Debug)]
6020#[doc = "See [XrSwapchainImageD3D11KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageD3D11KHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
6021#[cfg(windows)]
6022pub struct SwapchainImageD3D11KHR {
6023    pub ty: StructureType,
6024    pub next: *mut c_void,
6025    pub texture: *mut ID3D11Texture2D,
6026}
6027#[cfg(windows)]
6028impl SwapchainImageD3D11KHR {
6029    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_D3D11_KHR;
6030    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6031    #[inline]
6032    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6033        let mut x = MaybeUninit::<Self>::uninit();
6034        unsafe {
6035            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6036                ty: Self::TYPE,
6037                next,
6038            });
6039        }
6040        x
6041    }
6042}
6043#[repr(C)]
6044#[derive(Copy, Clone, Debug)]
6045#[doc = "See [XrSwapchainImageD3D12KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageD3D12KHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
6046#[cfg(windows)]
6047pub struct SwapchainImageD3D12KHR {
6048    pub ty: StructureType,
6049    pub next: *mut c_void,
6050    pub texture: *mut ID3D12Resource,
6051}
6052#[cfg(windows)]
6053impl SwapchainImageD3D12KHR {
6054    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_D3D12_KHR;
6055    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6056    #[inline]
6057    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6058        let mut x = MaybeUninit::<Self>::uninit();
6059        unsafe {
6060            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6061                ty: Self::TYPE,
6062                next,
6063            });
6064        }
6065        x
6066    }
6067}
6068#[repr(C)]
6069#[derive(Copy, Clone, Debug)]
6070#[doc = "See [XrSwapchainImageAcquireInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageAcquireInfo)"]
6071pub struct SwapchainImageAcquireInfo {
6072    pub ty: StructureType,
6073    pub next: *const c_void,
6074}
6075impl SwapchainImageAcquireInfo {
6076    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_ACQUIRE_INFO;
6077}
6078#[repr(C)]
6079#[derive(Copy, Clone, Debug)]
6080#[doc = "See [XrSwapchainImageWaitInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageWaitInfo)"]
6081pub struct SwapchainImageWaitInfo {
6082    pub ty: StructureType,
6083    pub next: *const c_void,
6084    pub timeout: Duration,
6085}
6086impl SwapchainImageWaitInfo {
6087    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_WAIT_INFO;
6088}
6089#[repr(C)]
6090#[derive(Copy, Clone, Debug)]
6091#[doc = "See [XrSwapchainImageReleaseInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageReleaseInfo)"]
6092pub struct SwapchainImageReleaseInfo {
6093    pub ty: StructureType,
6094    pub next: *const c_void,
6095}
6096impl SwapchainImageReleaseInfo {
6097    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_RELEASE_INFO;
6098}
6099#[repr(C)]
6100#[derive(Copy, Clone, Debug)]
6101#[doc = "See [XrReferenceSpaceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReferenceSpaceCreateInfo)"]
6102pub struct ReferenceSpaceCreateInfo {
6103    pub ty: StructureType,
6104    pub next: *const c_void,
6105    pub reference_space_type: ReferenceSpaceType,
6106    pub pose_in_reference_space: Posef,
6107}
6108impl ReferenceSpaceCreateInfo {
6109    pub const TYPE: StructureType = StructureType::REFERENCE_SPACE_CREATE_INFO;
6110}
6111#[repr(C)]
6112#[derive(Copy, Clone, Debug)]
6113#[doc = "See [XrActionSpaceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSpaceCreateInfo)"]
6114pub struct ActionSpaceCreateInfo {
6115    pub ty: StructureType,
6116    pub next: *const c_void,
6117    pub action: Action,
6118    pub subaction_path: Path,
6119    pub pose_in_action_space: Posef,
6120}
6121impl ActionSpaceCreateInfo {
6122    pub const TYPE: StructureType = StructureType::ACTION_SPACE_CREATE_INFO;
6123}
6124#[repr(C)]
6125#[derive(Copy, Clone, Debug)]
6126#[doc = "See [XrSpaceLocation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocation)"]
6127pub struct SpaceLocation {
6128    pub ty: StructureType,
6129    pub next: *mut c_void,
6130    pub location_flags: SpaceLocationFlags,
6131    pub pose: Posef,
6132}
6133impl SpaceLocation {
6134    pub const TYPE: StructureType = StructureType::SPACE_LOCATION;
6135    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6136    #[inline]
6137    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6138        let mut x = MaybeUninit::<Self>::uninit();
6139        unsafe {
6140            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6141                ty: Self::TYPE,
6142                next,
6143            });
6144        }
6145        x
6146    }
6147}
6148#[repr(C)]
6149#[derive(Copy, Clone, Debug)]
6150#[doc = "See [XrSpaceVelocity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocity)"]
6151pub struct SpaceVelocity {
6152    pub ty: StructureType,
6153    pub next: *mut c_void,
6154    pub velocity_flags: SpaceVelocityFlags,
6155    pub linear_velocity: Vector3f,
6156    pub angular_velocity: Vector3f,
6157}
6158impl SpaceVelocity {
6159    pub const TYPE: StructureType = StructureType::SPACE_VELOCITY;
6160    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6161    #[inline]
6162    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6163        let mut x = MaybeUninit::<Self>::uninit();
6164        unsafe {
6165            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6166                ty: Self::TYPE,
6167                next,
6168            });
6169        }
6170        x
6171    }
6172}
6173#[repr(C)]
6174#[derive(Copy, Clone, Debug, Default, PartialEq)]
6175#[doc = "See [XrFovf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFovf)"]
6176pub struct Fovf {
6177    pub angle_left: f32,
6178    pub angle_right: f32,
6179    pub angle_up: f32,
6180    pub angle_down: f32,
6181}
6182#[repr(C)]
6183#[derive(Copy, Clone, Debug)]
6184#[doc = "See [XrView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrView)"]
6185pub struct View {
6186    pub ty: StructureType,
6187    pub next: *mut c_void,
6188    pub pose: Posef,
6189    pub fov: Fovf,
6190}
6191impl View {
6192    pub const TYPE: StructureType = StructureType::VIEW;
6193    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6194    #[inline]
6195    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6196        let mut x = MaybeUninit::<Self>::uninit();
6197        unsafe {
6198            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6199                ty: Self::TYPE,
6200                next,
6201            });
6202        }
6203        x
6204    }
6205}
6206#[repr(C)]
6207#[derive(Copy, Clone, Debug)]
6208#[doc = "See [XrViewLocateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewLocateInfo)"]
6209pub struct ViewLocateInfo {
6210    pub ty: StructureType,
6211    pub next: *const c_void,
6212    pub view_configuration_type: ViewConfigurationType,
6213    pub display_time: Time,
6214    pub space: Space,
6215}
6216impl ViewLocateInfo {
6217    pub const TYPE: StructureType = StructureType::VIEW_LOCATE_INFO;
6218}
6219#[repr(C)]
6220#[derive(Copy, Clone, Debug)]
6221#[doc = "See [XrViewState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewState)"]
6222pub struct ViewState {
6223    pub ty: StructureType,
6224    pub next: *mut c_void,
6225    pub view_state_flags: ViewStateFlags,
6226}
6227impl ViewState {
6228    pub const TYPE: StructureType = StructureType::VIEW_STATE;
6229    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6230    #[inline]
6231    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6232        let mut x = MaybeUninit::<Self>::uninit();
6233        unsafe {
6234            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6235                ty: Self::TYPE,
6236                next,
6237            });
6238        }
6239        x
6240    }
6241}
6242#[repr(C)]
6243#[derive(Copy, Clone, Debug)]
6244#[doc = "See [XrViewConfigurationView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationView)"]
6245pub struct ViewConfigurationView {
6246    pub ty: StructureType,
6247    pub next: *mut c_void,
6248    pub recommended_image_rect_width: u32,
6249    pub max_image_rect_width: u32,
6250    pub recommended_image_rect_height: u32,
6251    pub max_image_rect_height: u32,
6252    pub recommended_swapchain_sample_count: u32,
6253    pub max_swapchain_sample_count: u32,
6254}
6255impl ViewConfigurationView {
6256    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_VIEW;
6257    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6258    #[inline]
6259    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6260        let mut x = MaybeUninit::<Self>::uninit();
6261        unsafe {
6262            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6263                ty: Self::TYPE,
6264                next,
6265            });
6266        }
6267        x
6268    }
6269}
6270#[repr(C)]
6271#[derive(Copy, Clone, Debug)]
6272#[doc = "See [XrSwapchainSubImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainSubImage)"]
6273pub struct SwapchainSubImage {
6274    pub swapchain: Swapchain,
6275    pub image_rect: Rect2Di,
6276    pub image_array_index: u32,
6277}
6278#[repr(C)]
6279#[derive(Copy, Clone, Debug)]
6280#[doc = "See [XrCompositionLayerBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerBaseHeader)"]
6281pub struct CompositionLayerBaseHeader {
6282    pub ty: StructureType,
6283    pub next: *const c_void,
6284    pub layer_flags: CompositionLayerFlags,
6285    pub space: Space,
6286}
6287#[repr(C)]
6288#[derive(Copy, Clone, Debug)]
6289#[doc = "See [XrCompositionLayerProjectionView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerProjectionView)"]
6290pub struct CompositionLayerProjectionView {
6291    pub ty: StructureType,
6292    pub next: *const c_void,
6293    pub pose: Posef,
6294    pub fov: Fovf,
6295    pub sub_image: SwapchainSubImage,
6296}
6297impl CompositionLayerProjectionView {
6298    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PROJECTION_VIEW;
6299}
6300#[repr(C)]
6301#[derive(Copy, Clone, Debug)]
6302#[doc = "See [XrCompositionLayerProjection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerProjection)"]
6303pub struct CompositionLayerProjection {
6304    pub ty: StructureType,
6305    pub next: *const c_void,
6306    pub layer_flags: CompositionLayerFlags,
6307    pub space: Space,
6308    pub view_count: u32,
6309    pub views: *const CompositionLayerProjectionView,
6310}
6311impl CompositionLayerProjection {
6312    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PROJECTION;
6313}
6314#[repr(C)]
6315#[derive(Copy, Clone, Debug)]
6316#[doc = "See [XrCompositionLayerQuad](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerQuad)"]
6317pub struct CompositionLayerQuad {
6318    pub ty: StructureType,
6319    pub next: *const c_void,
6320    pub layer_flags: CompositionLayerFlags,
6321    pub space: Space,
6322    pub eye_visibility: EyeVisibility,
6323    pub sub_image: SwapchainSubImage,
6324    pub pose: Posef,
6325    pub size: Extent2Df,
6326}
6327impl CompositionLayerQuad {
6328    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_QUAD;
6329}
6330#[repr(C)]
6331#[derive(Copy, Clone, Debug)]
6332#[doc = "See [XrCompositionLayerCylinderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerCylinderKHR) - defined by [XR_KHR_composition_layer_cylinder](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_cylinder)"]
6333pub struct CompositionLayerCylinderKHR {
6334    pub ty: StructureType,
6335    pub next: *const c_void,
6336    pub layer_flags: CompositionLayerFlags,
6337    pub space: Space,
6338    pub eye_visibility: EyeVisibility,
6339    pub sub_image: SwapchainSubImage,
6340    pub pose: Posef,
6341    pub radius: f32,
6342    pub central_angle: f32,
6343    pub aspect_ratio: f32,
6344}
6345impl CompositionLayerCylinderKHR {
6346    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_CYLINDER_KHR;
6347}
6348#[repr(C)]
6349#[derive(Copy, Clone, Debug)]
6350#[doc = "See [XrCompositionLayerCubeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerCubeKHR) - defined by [XR_KHR_composition_layer_cube](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_cube)"]
6351pub struct CompositionLayerCubeKHR {
6352    pub ty: StructureType,
6353    pub next: *const c_void,
6354    pub layer_flags: CompositionLayerFlags,
6355    pub space: Space,
6356    pub eye_visibility: EyeVisibility,
6357    pub swapchain: Swapchain,
6358    pub image_array_index: u32,
6359    pub orientation: Quaternionf,
6360}
6361impl CompositionLayerCubeKHR {
6362    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_CUBE_KHR;
6363}
6364#[repr(C)]
6365#[derive(Copy, Clone, Debug)]
6366#[doc = "See [XrCompositionLayerEquirectKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerEquirectKHR) - defined by [XR_KHR_composition_layer_equirect](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_equirect)"]
6367pub struct CompositionLayerEquirectKHR {
6368    pub ty: StructureType,
6369    pub next: *const c_void,
6370    pub layer_flags: CompositionLayerFlags,
6371    pub space: Space,
6372    pub eye_visibility: EyeVisibility,
6373    pub sub_image: SwapchainSubImage,
6374    pub pose: Posef,
6375    pub radius: f32,
6376    pub scale: Vector2f,
6377    pub bias: Vector2f,
6378}
6379impl CompositionLayerEquirectKHR {
6380    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_EQUIRECT_KHR;
6381}
6382#[repr(C)]
6383#[derive(Copy, Clone, Debug)]
6384#[doc = "See [XrCompositionLayerDepthInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerDepthInfoKHR) - defined by [XR_KHR_composition_layer_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_depth)"]
6385pub struct CompositionLayerDepthInfoKHR {
6386    pub ty: StructureType,
6387    pub next: *const c_void,
6388    pub sub_image: SwapchainSubImage,
6389    pub min_depth: f32,
6390    pub max_depth: f32,
6391    pub near_z: f32,
6392    pub far_z: f32,
6393}
6394impl CompositionLayerDepthInfoKHR {
6395    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_INFO_KHR;
6396}
6397#[repr(C)]
6398#[derive(Copy, Clone, Debug)]
6399#[doc = "See [XrFrameBeginInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameBeginInfo)"]
6400pub struct FrameBeginInfo {
6401    pub ty: StructureType,
6402    pub next: *const c_void,
6403}
6404impl FrameBeginInfo {
6405    pub const TYPE: StructureType = StructureType::FRAME_BEGIN_INFO;
6406}
6407#[repr(C)]
6408#[derive(Copy, Clone, Debug)]
6409#[doc = "See [XrFrameEndInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfo)"]
6410pub struct FrameEndInfo {
6411    pub ty: StructureType,
6412    pub next: *const c_void,
6413    pub display_time: Time,
6414    pub environment_blend_mode: EnvironmentBlendMode,
6415    pub layer_count: u32,
6416    pub layers: *const *const CompositionLayerBaseHeader,
6417}
6418impl FrameEndInfo {
6419    pub const TYPE: StructureType = StructureType::FRAME_END_INFO;
6420}
6421#[repr(C)]
6422#[derive(Copy, Clone, Debug)]
6423#[doc = "See [XrFrameWaitInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameWaitInfo)"]
6424pub struct FrameWaitInfo {
6425    pub ty: StructureType,
6426    pub next: *const c_void,
6427}
6428impl FrameWaitInfo {
6429    pub const TYPE: StructureType = StructureType::FRAME_WAIT_INFO;
6430}
6431#[repr(C)]
6432#[derive(Copy, Clone, Debug)]
6433#[doc = "See [XrFrameState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameState)"]
6434pub struct FrameState {
6435    pub ty: StructureType,
6436    pub next: *mut c_void,
6437    pub predicted_display_time: Time,
6438    pub predicted_display_period: Duration,
6439    pub should_render: Bool32,
6440}
6441impl FrameState {
6442    pub const TYPE: StructureType = StructureType::FRAME_STATE;
6443    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6444    #[inline]
6445    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6446        let mut x = MaybeUninit::<Self>::uninit();
6447        unsafe {
6448            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6449                ty: Self::TYPE,
6450                next,
6451            });
6452        }
6453        x
6454    }
6455}
6456#[repr(C)]
6457#[derive(Copy, Clone, Debug)]
6458#[doc = "See [XrHapticBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticBaseHeader)"]
6459pub struct HapticBaseHeader {
6460    pub ty: StructureType,
6461    pub next: *const c_void,
6462}
6463#[repr(C)]
6464#[derive(Copy, Clone, Debug)]
6465#[doc = "See [XrHapticVibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticVibration)"]
6466pub struct HapticVibration {
6467    pub ty: StructureType,
6468    pub next: *const c_void,
6469    pub duration: Duration,
6470    pub frequency: f32,
6471    pub amplitude: f32,
6472}
6473impl HapticVibration {
6474    pub const TYPE: StructureType = StructureType::HAPTIC_VIBRATION;
6475}
6476#[repr(C)]
6477#[derive(Copy, Clone, Debug)]
6478#[doc = "See [XrEventDataBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataBaseHeader)"]
6479pub struct EventDataBaseHeader {
6480    pub ty: StructureType,
6481    pub next: *const c_void,
6482}
6483#[repr(C)]
6484#[derive(Copy, Clone, Debug)]
6485#[doc = "See [XrEventDataBuffer](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataBuffer)"]
6486pub struct EventDataBuffer {
6487    pub ty: StructureType,
6488    pub next: *const c_void,
6489    pub varying: [u8; 4000usize],
6490}
6491impl EventDataBuffer {
6492    pub const TYPE: StructureType = StructureType::EVENT_DATA_BUFFER;
6493}
6494#[repr(C)]
6495#[derive(Copy, Clone, Debug)]
6496#[doc = "See [XrEventDataEventsLost](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataEventsLost)"]
6497pub struct EventDataEventsLost {
6498    pub ty: StructureType,
6499    pub next: *const c_void,
6500    pub lost_event_count: u32,
6501}
6502impl EventDataEventsLost {
6503    pub const TYPE: StructureType = StructureType::EVENT_DATA_EVENTS_LOST;
6504}
6505#[repr(C)]
6506#[derive(Copy, Clone, Debug)]
6507#[doc = "See [XrEventDataInstanceLossPending](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataInstanceLossPending)"]
6508pub struct EventDataInstanceLossPending {
6509    pub ty: StructureType,
6510    pub next: *const c_void,
6511    pub loss_time: Time,
6512}
6513impl EventDataInstanceLossPending {
6514    pub const TYPE: StructureType = StructureType::EVENT_DATA_INSTANCE_LOSS_PENDING;
6515}
6516#[repr(C)]
6517#[derive(Copy, Clone, Debug)]
6518#[doc = "See [XrEventDataSessionStateChanged](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSessionStateChanged)"]
6519pub struct EventDataSessionStateChanged {
6520    pub ty: StructureType,
6521    pub next: *const c_void,
6522    pub session: Session,
6523    pub state: SessionState,
6524    pub time: Time,
6525}
6526impl EventDataSessionStateChanged {
6527    pub const TYPE: StructureType = StructureType::EVENT_DATA_SESSION_STATE_CHANGED;
6528}
6529#[repr(C)]
6530#[derive(Copy, Clone, Debug)]
6531#[doc = "See [XrEventDataReferenceSpaceChangePending](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataReferenceSpaceChangePending)"]
6532pub struct EventDataReferenceSpaceChangePending {
6533    pub ty: StructureType,
6534    pub next: *const c_void,
6535    pub session: Session,
6536    pub reference_space_type: ReferenceSpaceType,
6537    pub change_time: Time,
6538    pub pose_valid: Bool32,
6539    pub pose_in_previous_space: Posef,
6540}
6541impl EventDataReferenceSpaceChangePending {
6542    pub const TYPE: StructureType = StructureType::EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING;
6543}
6544#[repr(C)]
6545#[derive(Copy, Clone, Debug)]
6546#[doc = "See [XrEventDataPerfSettingsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataPerfSettingsEXT) - defined by [XR_EXT_performance_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_performance_settings)"]
6547pub struct EventDataPerfSettingsEXT {
6548    pub ty: StructureType,
6549    pub next: *const c_void,
6550    pub domain: PerfSettingsDomainEXT,
6551    pub sub_domain: PerfSettingsSubDomainEXT,
6552    pub from_level: PerfSettingsNotificationLevelEXT,
6553    pub to_level: PerfSettingsNotificationLevelEXT,
6554}
6555impl EventDataPerfSettingsEXT {
6556    pub const TYPE: StructureType = StructureType::EVENT_DATA_PERF_SETTINGS_EXT;
6557}
6558#[repr(C)]
6559#[derive(Copy, Clone, Debug)]
6560#[doc = "See [XrEventDataVisibilityMaskChangedKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVisibilityMaskChangedKHR) - defined by [XR_KHR_visibility_mask](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_visibility_mask)"]
6561pub struct EventDataVisibilityMaskChangedKHR {
6562    pub ty: StructureType,
6563    pub next: *const c_void,
6564    pub session: Session,
6565    pub view_configuration_type: ViewConfigurationType,
6566    pub view_index: u32,
6567}
6568impl EventDataVisibilityMaskChangedKHR {
6569    pub const TYPE: StructureType = StructureType::EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR;
6570}
6571#[repr(C)]
6572#[derive(Copy, Clone, Debug)]
6573#[doc = "See [XrViewConfigurationProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationProperties)"]
6574pub struct ViewConfigurationProperties {
6575    pub ty: StructureType,
6576    pub next: *mut c_void,
6577    pub view_configuration_type: ViewConfigurationType,
6578    pub fov_mutable: Bool32,
6579}
6580impl ViewConfigurationProperties {
6581    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_PROPERTIES;
6582    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6583    #[inline]
6584    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6585        let mut x = MaybeUninit::<Self>::uninit();
6586        unsafe {
6587            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6588                ty: Self::TYPE,
6589                next,
6590            });
6591        }
6592        x
6593    }
6594}
6595#[repr(C)]
6596#[derive(Copy, Clone, Debug)]
6597#[doc = "See [XrActionStateBoolean](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateBoolean)"]
6598pub struct ActionStateBoolean {
6599    pub ty: StructureType,
6600    pub next: *mut c_void,
6601    pub current_state: Bool32,
6602    pub changed_since_last_sync: Bool32,
6603    pub last_change_time: Time,
6604    pub is_active: Bool32,
6605}
6606impl ActionStateBoolean {
6607    pub const TYPE: StructureType = StructureType::ACTION_STATE_BOOLEAN;
6608    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6609    #[inline]
6610    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6611        let mut x = MaybeUninit::<Self>::uninit();
6612        unsafe {
6613            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6614                ty: Self::TYPE,
6615                next,
6616            });
6617        }
6618        x
6619    }
6620}
6621#[repr(C)]
6622#[derive(Copy, Clone, Debug)]
6623#[doc = "See [XrActionStateFloat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateFloat)"]
6624pub struct ActionStateFloat {
6625    pub ty: StructureType,
6626    pub next: *mut c_void,
6627    pub current_state: f32,
6628    pub changed_since_last_sync: Bool32,
6629    pub last_change_time: Time,
6630    pub is_active: Bool32,
6631}
6632impl ActionStateFloat {
6633    pub const TYPE: StructureType = StructureType::ACTION_STATE_FLOAT;
6634    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6635    #[inline]
6636    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6637        let mut x = MaybeUninit::<Self>::uninit();
6638        unsafe {
6639            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6640                ty: Self::TYPE,
6641                next,
6642            });
6643        }
6644        x
6645    }
6646}
6647#[repr(C)]
6648#[derive(Copy, Clone, Debug)]
6649#[doc = "See [XrActionStateVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateVector2f)"]
6650pub struct ActionStateVector2f {
6651    pub ty: StructureType,
6652    pub next: *mut c_void,
6653    pub current_state: Vector2f,
6654    pub changed_since_last_sync: Bool32,
6655    pub last_change_time: Time,
6656    pub is_active: Bool32,
6657}
6658impl ActionStateVector2f {
6659    pub const TYPE: StructureType = StructureType::ACTION_STATE_VECTOR2F;
6660    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6661    #[inline]
6662    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6663        let mut x = MaybeUninit::<Self>::uninit();
6664        unsafe {
6665            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6666                ty: Self::TYPE,
6667                next,
6668            });
6669        }
6670        x
6671    }
6672}
6673#[repr(C)]
6674#[derive(Copy, Clone, Debug)]
6675#[doc = "See [XrActionStatePose](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStatePose)"]
6676pub struct ActionStatePose {
6677    pub ty: StructureType,
6678    pub next: *mut c_void,
6679    pub is_active: Bool32,
6680}
6681impl ActionStatePose {
6682    pub const TYPE: StructureType = StructureType::ACTION_STATE_POSE;
6683    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6684    #[inline]
6685    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6686        let mut x = MaybeUninit::<Self>::uninit();
6687        unsafe {
6688            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6689                ty: Self::TYPE,
6690                next,
6691            });
6692        }
6693        x
6694    }
6695}
6696#[repr(C)]
6697#[derive(Copy, Clone, Debug)]
6698#[doc = "See [XrActionStateGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateGetInfo)"]
6699pub struct ActionStateGetInfo {
6700    pub ty: StructureType,
6701    pub next: *const c_void,
6702    pub action: Action,
6703    pub subaction_path: Path,
6704}
6705impl ActionStateGetInfo {
6706    pub const TYPE: StructureType = StructureType::ACTION_STATE_GET_INFO;
6707}
6708#[repr(C)]
6709#[derive(Copy, Clone, Debug)]
6710#[doc = "See [XrHapticActionInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticActionInfo)"]
6711pub struct HapticActionInfo {
6712    pub ty: StructureType,
6713    pub next: *const c_void,
6714    pub action: Action,
6715    pub subaction_path: Path,
6716}
6717impl HapticActionInfo {
6718    pub const TYPE: StructureType = StructureType::HAPTIC_ACTION_INFO;
6719}
6720#[repr(C)]
6721#[derive(Copy, Clone, Debug)]
6722#[doc = "See [XrActionSetCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSetCreateInfo)"]
6723pub struct ActionSetCreateInfo {
6724    pub ty: StructureType,
6725    pub next: *const c_void,
6726    pub action_set_name: [c_char; MAX_ACTION_SET_NAME_SIZE],
6727    pub localized_action_set_name: [c_char; MAX_LOCALIZED_ACTION_SET_NAME_SIZE],
6728    pub priority: u32,
6729}
6730impl ActionSetCreateInfo {
6731    pub const TYPE: StructureType = StructureType::ACTION_SET_CREATE_INFO;
6732}
6733#[repr(C)]
6734#[derive(Copy, Clone, Debug)]
6735#[doc = "See [XrActionSuggestedBinding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSuggestedBinding)"]
6736pub struct ActionSuggestedBinding {
6737    pub action: Action,
6738    pub binding: Path,
6739}
6740#[repr(C)]
6741#[derive(Copy, Clone, Debug)]
6742#[doc = "See [XrInteractionProfileSuggestedBinding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileSuggestedBinding)"]
6743pub struct InteractionProfileSuggestedBinding {
6744    pub ty: StructureType,
6745    pub next: *const c_void,
6746    pub interaction_profile: Path,
6747    pub count_suggested_bindings: u32,
6748    pub suggested_bindings: *const ActionSuggestedBinding,
6749}
6750impl InteractionProfileSuggestedBinding {
6751    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_SUGGESTED_BINDING;
6752}
6753#[repr(C)]
6754#[derive(Copy, Clone, Debug)]
6755#[doc = "See [XrActiveActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSet)"]
6756pub struct ActiveActionSet {
6757    pub action_set: ActionSet,
6758    pub subaction_path: Path,
6759}
6760#[repr(C)]
6761#[derive(Copy, Clone, Debug)]
6762#[doc = "See [XrSessionActionSetsAttachInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionActionSetsAttachInfo)"]
6763pub struct SessionActionSetsAttachInfo {
6764    pub ty: StructureType,
6765    pub next: *const c_void,
6766    pub count_action_sets: u32,
6767    pub action_sets: *const ActionSet,
6768}
6769impl SessionActionSetsAttachInfo {
6770    pub const TYPE: StructureType = StructureType::SESSION_ACTION_SETS_ATTACH_INFO;
6771}
6772#[repr(C)]
6773#[derive(Copy, Clone, Debug)]
6774#[doc = "See [XrActionsSyncInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionsSyncInfo)"]
6775pub struct ActionsSyncInfo {
6776    pub ty: StructureType,
6777    pub next: *const c_void,
6778    pub count_active_action_sets: u32,
6779    pub active_action_sets: *const ActiveActionSet,
6780}
6781impl ActionsSyncInfo {
6782    pub const TYPE: StructureType = StructureType::ACTIONS_SYNC_INFO;
6783}
6784#[repr(C)]
6785#[derive(Copy, Clone, Debug)]
6786#[doc = "See [XrBoundSourcesForActionEnumerateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoundSourcesForActionEnumerateInfo)"]
6787pub struct BoundSourcesForActionEnumerateInfo {
6788    pub ty: StructureType,
6789    pub next: *const c_void,
6790    pub action: Action,
6791}
6792impl BoundSourcesForActionEnumerateInfo {
6793    pub const TYPE: StructureType = StructureType::BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO;
6794}
6795#[repr(C)]
6796#[derive(Copy, Clone, Debug)]
6797#[doc = "See [XrInputSourceLocalizedNameGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInputSourceLocalizedNameGetInfo)"]
6798pub struct InputSourceLocalizedNameGetInfo {
6799    pub ty: StructureType,
6800    pub next: *const c_void,
6801    pub source_path: Path,
6802    pub which_components: InputSourceLocalizedNameFlags,
6803}
6804impl InputSourceLocalizedNameGetInfo {
6805    pub const TYPE: StructureType = StructureType::INPUT_SOURCE_LOCALIZED_NAME_GET_INFO;
6806}
6807#[repr(C)]
6808#[derive(Copy, Clone, Debug)]
6809#[doc = "See [XrEventDataInteractionProfileChanged](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataInteractionProfileChanged)"]
6810pub struct EventDataInteractionProfileChanged {
6811    pub ty: StructureType,
6812    pub next: *const c_void,
6813    pub session: Session,
6814}
6815impl EventDataInteractionProfileChanged {
6816    pub const TYPE: StructureType = StructureType::EVENT_DATA_INTERACTION_PROFILE_CHANGED;
6817}
6818#[repr(C)]
6819#[derive(Copy, Clone, Debug)]
6820#[doc = "See [XrInteractionProfileState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileState)"]
6821pub struct InteractionProfileState {
6822    pub ty: StructureType,
6823    pub next: *mut c_void,
6824    pub interaction_profile: Path,
6825}
6826impl InteractionProfileState {
6827    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_STATE;
6828    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6829    #[inline]
6830    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6831        let mut x = MaybeUninit::<Self>::uninit();
6832        unsafe {
6833            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6834                ty: Self::TYPE,
6835                next,
6836            });
6837        }
6838        x
6839    }
6840}
6841#[repr(C)]
6842#[derive(Copy, Clone, Debug)]
6843#[doc = "See [XrActionCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionCreateInfo)"]
6844pub struct ActionCreateInfo {
6845    pub ty: StructureType,
6846    pub next: *const c_void,
6847    pub action_name: [c_char; MAX_ACTION_NAME_SIZE],
6848    pub action_type: ActionType,
6849    pub count_subaction_paths: u32,
6850    pub subaction_paths: *const Path,
6851    pub localized_action_name: [c_char; MAX_LOCALIZED_ACTION_NAME_SIZE],
6852}
6853impl ActionCreateInfo {
6854    pub const TYPE: StructureType = StructureType::ACTION_CREATE_INFO;
6855}
6856#[repr(C)]
6857#[derive(Copy, Clone, Debug)]
6858#[doc = "See [XrInstanceCreateInfoAndroidKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateInfoAndroidKHR) - defined by [XR_KHR_android_create_instance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_android_create_instance)"]
6859#[cfg(target_os = "android")]
6860pub struct InstanceCreateInfoAndroidKHR {
6861    pub ty: StructureType,
6862    pub next: *const c_void,
6863    pub application_vm: *mut c_void,
6864    pub application_activity: *mut c_void,
6865}
6866#[cfg(target_os = "android")]
6867impl InstanceCreateInfoAndroidKHR {
6868    pub const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO_ANDROID_KHR;
6869}
6870#[repr(C)]
6871#[derive(Copy, Clone, Debug)]
6872#[doc = "See [XrVulkanSwapchainFormatListCreateInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanSwapchainFormatListCreateInfoKHR) - defined by [XR_KHR_vulkan_swapchain_format_list](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_swapchain_format_list)"]
6873pub struct VulkanSwapchainFormatListCreateInfoKHR {
6874    pub ty: StructureType,
6875    pub next: *const c_void,
6876    pub view_format_count: u32,
6877    pub view_formats: *const VkFormat,
6878}
6879impl VulkanSwapchainFormatListCreateInfoKHR {
6880    pub const TYPE: StructureType = StructureType::VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR;
6881}
6882#[repr(C)]
6883#[derive(Copy, Clone, Debug)]
6884#[doc = "See [XrDebugUtilsObjectNameInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsObjectNameInfoEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6885pub struct DebugUtilsObjectNameInfoEXT {
6886    pub ty: StructureType,
6887    pub next: *const c_void,
6888    pub object_type: ObjectType,
6889    pub object_handle: u64,
6890    pub object_name: *const c_char,
6891}
6892impl DebugUtilsObjectNameInfoEXT {
6893    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
6894}
6895#[repr(C)]
6896#[derive(Copy, Clone, Debug)]
6897#[doc = "See [XrDebugUtilsLabelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsLabelEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6898pub struct DebugUtilsLabelEXT {
6899    pub ty: StructureType,
6900    pub next: *const c_void,
6901    pub label_name: *const c_char,
6902}
6903impl DebugUtilsLabelEXT {
6904    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_LABEL_EXT;
6905}
6906#[repr(C)]
6907#[derive(Copy, Clone, Debug)]
6908#[doc = "See [XrDebugUtilsMessengerCallbackDataEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerCallbackDataEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6909pub struct DebugUtilsMessengerCallbackDataEXT {
6910    pub ty: StructureType,
6911    pub next: *const c_void,
6912    pub message_id: *const c_char,
6913    pub function_name: *const c_char,
6914    pub message: *const c_char,
6915    pub object_count: u32,
6916    pub objects: *mut DebugUtilsObjectNameInfoEXT,
6917    pub session_label_count: u32,
6918    pub session_labels: *mut DebugUtilsLabelEXT,
6919}
6920impl DebugUtilsMessengerCallbackDataEXT {
6921    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
6922}
6923#[repr(C)]
6924#[derive(Copy, Clone)]
6925#[doc = "See [XrDebugUtilsMessengerCreateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerCreateInfoEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6926pub struct DebugUtilsMessengerCreateInfoEXT {
6927    pub ty: StructureType,
6928    pub next: *const c_void,
6929    pub message_severities: DebugUtilsMessageSeverityFlagsEXT,
6930    pub message_types: DebugUtilsMessageTypeFlagsEXT,
6931    pub user_callback: Option<pfn::DebugUtilsMessengerCallbackEXT>,
6932    pub user_data: *mut c_void,
6933}
6934impl DebugUtilsMessengerCreateInfoEXT {
6935    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
6936}
6937#[repr(C)]
6938#[derive(Copy, Clone, Debug)]
6939#[doc = "See [XrVisibilityMaskKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVisibilityMaskKHR) - defined by [XR_KHR_visibility_mask](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_visibility_mask)"]
6940pub struct VisibilityMaskKHR {
6941    pub ty: StructureType,
6942    pub next: *mut c_void,
6943    pub vertex_capacity_input: u32,
6944    pub vertex_count_output: u32,
6945    pub vertices: *mut Vector2f,
6946    pub index_capacity_input: u32,
6947    pub index_count_output: u32,
6948    pub indices: *mut u32,
6949}
6950impl VisibilityMaskKHR {
6951    pub const TYPE: StructureType = StructureType::VISIBILITY_MASK_KHR;
6952    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6953    #[inline]
6954    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6955        let mut x = MaybeUninit::<Self>::uninit();
6956        unsafe {
6957            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6958                ty: Self::TYPE,
6959                next,
6960            });
6961        }
6962        x
6963    }
6964}
6965#[repr(C)]
6966#[derive(Copy, Clone, Debug)]
6967#[doc = "See [XrGraphicsRequirementsOpenGLKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsOpenGLKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
6968pub struct GraphicsRequirementsOpenGLKHR {
6969    pub ty: StructureType,
6970    pub next: *mut c_void,
6971    pub min_api_version_supported: Version,
6972    pub max_api_version_supported: Version,
6973}
6974impl GraphicsRequirementsOpenGLKHR {
6975    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_OPENGL_KHR;
6976    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6977    #[inline]
6978    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6979        let mut x = MaybeUninit::<Self>::uninit();
6980        unsafe {
6981            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6982                ty: Self::TYPE,
6983                next,
6984            });
6985        }
6986        x
6987    }
6988}
6989#[repr(C)]
6990#[derive(Copy, Clone, Debug)]
6991#[doc = "See [XrGraphicsRequirementsOpenGLESKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsOpenGLESKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
6992pub struct GraphicsRequirementsOpenGLESKHR {
6993    pub ty: StructureType,
6994    pub next: *mut c_void,
6995    pub min_api_version_supported: Version,
6996    pub max_api_version_supported: Version,
6997}
6998impl GraphicsRequirementsOpenGLESKHR {
6999    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR;
7000    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7001    #[inline]
7002    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7003        let mut x = MaybeUninit::<Self>::uninit();
7004        unsafe {
7005            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7006                ty: Self::TYPE,
7007                next,
7008            });
7009        }
7010        x
7011    }
7012}
7013#[repr(C)]
7014#[derive(Copy, Clone, Debug)]
7015#[doc = "See [XrGraphicsRequirementsVulkanKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsVulkanKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
7016pub struct GraphicsRequirementsVulkanKHR {
7017    pub ty: StructureType,
7018    pub next: *mut c_void,
7019    pub min_api_version_supported: Version,
7020    pub max_api_version_supported: Version,
7021}
7022impl GraphicsRequirementsVulkanKHR {
7023    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_VULKAN_KHR;
7024    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7025    #[inline]
7026    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7027        let mut x = MaybeUninit::<Self>::uninit();
7028        unsafe {
7029            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7030                ty: Self::TYPE,
7031                next,
7032            });
7033        }
7034        x
7035    }
7036}
7037pub type GraphicsRequirementsVulkan2KHR = GraphicsRequirementsVulkanKHR;
7038#[repr(C)]
7039#[derive(Copy, Clone)]
7040#[doc = "See [XrGraphicsRequirementsD3D11KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsD3D11KHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
7041#[cfg(windows)]
7042pub struct GraphicsRequirementsD3D11KHR {
7043    pub ty: StructureType,
7044    pub next: *mut c_void,
7045    pub adapter_luid: LUID,
7046    pub min_feature_level: D3D_FEATURE_LEVEL,
7047}
7048#[cfg(windows)]
7049impl GraphicsRequirementsD3D11KHR {
7050    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_D3D11_KHR;
7051    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7052    #[inline]
7053    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7054        let mut x = MaybeUninit::<Self>::uninit();
7055        unsafe {
7056            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7057                ty: Self::TYPE,
7058                next,
7059            });
7060        }
7061        x
7062    }
7063}
7064#[repr(C)]
7065#[derive(Copy, Clone)]
7066#[doc = "See [XrGraphicsRequirementsD3D12KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsD3D12KHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
7067#[cfg(windows)]
7068pub struct GraphicsRequirementsD3D12KHR {
7069    pub ty: StructureType,
7070    pub next: *mut c_void,
7071    pub adapter_luid: LUID,
7072    pub min_feature_level: D3D_FEATURE_LEVEL,
7073}
7074#[cfg(windows)]
7075impl GraphicsRequirementsD3D12KHR {
7076    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_D3D12_KHR;
7077    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7078    #[inline]
7079    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7080        let mut x = MaybeUninit::<Self>::uninit();
7081        unsafe {
7082            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7083                ty: Self::TYPE,
7084                next,
7085            });
7086        }
7087        x
7088    }
7089}
7090#[repr(C)]
7091#[derive(Copy, Clone)]
7092#[doc = "See [XrVulkanInstanceCreateInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanInstanceCreateInfoKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
7093pub struct VulkanInstanceCreateInfoKHR {
7094    pub ty: StructureType,
7095    pub next: *const c_void,
7096    pub system_id: SystemId,
7097    pub create_flags: VulkanInstanceCreateFlagsKHR,
7098    pub pfn_get_instance_proc_addr: Option<VkGetInstanceProcAddr>,
7099    pub vulkan_create_info: *const VkInstanceCreateInfo,
7100    pub vulkan_allocator: *const VkAllocationCallbacks,
7101}
7102impl VulkanInstanceCreateInfoKHR {
7103    pub const TYPE: StructureType = StructureType::VULKAN_INSTANCE_CREATE_INFO_KHR;
7104}
7105#[repr(C)]
7106#[derive(Copy, Clone)]
7107#[doc = "See [XrVulkanDeviceCreateInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanDeviceCreateInfoKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
7108pub struct VulkanDeviceCreateInfoKHR {
7109    pub ty: StructureType,
7110    pub next: *const c_void,
7111    pub system_id: SystemId,
7112    pub create_flags: VulkanDeviceCreateFlagsKHR,
7113    pub pfn_get_instance_proc_addr: Option<VkGetInstanceProcAddr>,
7114    pub vulkan_physical_device: VkPhysicalDevice,
7115    pub vulkan_create_info: *const VkDeviceCreateInfo,
7116    pub vulkan_allocator: *const VkAllocationCallbacks,
7117}
7118impl VulkanDeviceCreateInfoKHR {
7119    pub const TYPE: StructureType = StructureType::VULKAN_DEVICE_CREATE_INFO_KHR;
7120}
7121#[repr(C)]
7122#[derive(Copy, Clone, Debug)]
7123#[doc = "See [XrVulkanGraphicsDeviceGetInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanGraphicsDeviceGetInfoKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
7124pub struct VulkanGraphicsDeviceGetInfoKHR {
7125    pub ty: StructureType,
7126    pub next: *const c_void,
7127    pub system_id: SystemId,
7128    pub vulkan_instance: VkInstance,
7129}
7130impl VulkanGraphicsDeviceGetInfoKHR {
7131    pub const TYPE: StructureType = StructureType::VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR;
7132}
7133#[repr(C)]
7134#[derive(Copy, Clone, Debug)]
7135#[doc = "See [XrVulkanSwapchainCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanSwapchainCreateInfoMETA) - defined by [XR_META_vulkan_swapchain_create_info](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_vulkan_swapchain_create_info)"]
7136pub struct VulkanSwapchainCreateInfoMETA {
7137    pub ty: StructureType,
7138    pub next: *const c_void,
7139    pub additional_create_flags: VkImageCreateFlags,
7140    pub additional_usage_flags: VkImageUsageFlags,
7141}
7142impl VulkanSwapchainCreateInfoMETA {
7143    pub const TYPE: StructureType = StructureType::VULKAN_SWAPCHAIN_CREATE_INFO_META;
7144}
7145#[repr(C)]
7146#[derive(Copy, Clone, Debug)]
7147#[doc = "See [XrSessionCreateInfoOverlayEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateInfoOverlayEXTX) - defined by [XR_EXTX_overlay](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXTX_overlay)"]
7148pub struct SessionCreateInfoOverlayEXTX {
7149    pub ty: StructureType,
7150    pub next: *const c_void,
7151    pub create_flags: OverlaySessionCreateFlagsEXTX,
7152    pub session_layers_placement: u32,
7153}
7154impl SessionCreateInfoOverlayEXTX {
7155    pub const TYPE: StructureType = StructureType::SESSION_CREATE_INFO_OVERLAY_EXTX;
7156}
7157#[repr(C)]
7158#[derive(Copy, Clone, Debug)]
7159#[doc = "See [XrEventDataMainSessionVisibilityChangedEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataMainSessionVisibilityChangedEXTX) - defined by [XR_EXTX_overlay](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXTX_overlay)"]
7160pub struct EventDataMainSessionVisibilityChangedEXTX {
7161    pub ty: StructureType,
7162    pub next: *const c_void,
7163    pub visible: Bool32,
7164    pub flags: OverlayMainSessionFlagsEXTX,
7165}
7166impl EventDataMainSessionVisibilityChangedEXTX {
7167    pub const TYPE: StructureType = StructureType::EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX;
7168}
7169#[repr(C)]
7170#[derive(Copy, Clone, Debug)]
7171#[doc = "See [XrEventDataDisplayRefreshRateChangedFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataDisplayRefreshRateChangedFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
7172pub struct EventDataDisplayRefreshRateChangedFB {
7173    pub ty: StructureType,
7174    pub next: *const c_void,
7175    pub from_display_refresh_rate: f32,
7176    pub to_display_refresh_rate: f32,
7177}
7178impl EventDataDisplayRefreshRateChangedFB {
7179    pub const TYPE: StructureType = StructureType::EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB;
7180}
7181#[repr(C)]
7182#[derive(Copy, Clone, Debug)]
7183#[doc = "See [XrViewConfigurationDepthRangeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationDepthRangeEXT) - defined by [XR_EXT_view_configuration_depth_range](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_view_configuration_depth_range)"]
7184pub struct ViewConfigurationDepthRangeEXT {
7185    pub ty: StructureType,
7186    pub next: *mut c_void,
7187    pub recommended_near_z: f32,
7188    pub min_near_z: f32,
7189    pub recommended_far_z: f32,
7190    pub max_far_z: f32,
7191}
7192impl ViewConfigurationDepthRangeEXT {
7193    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_DEPTH_RANGE_EXT;
7194    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7195    #[inline]
7196    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7197        let mut x = MaybeUninit::<Self>::uninit();
7198        unsafe {
7199            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7200                ty: Self::TYPE,
7201                next,
7202            });
7203        }
7204        x
7205    }
7206}
7207#[repr(C)]
7208#[derive(Copy, Clone, Debug)]
7209#[doc = "See [XrViewConfigurationViewFovEPIC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationViewFovEPIC) - defined by [XR_EPIC_view_configuration_fov](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EPIC_view_configuration_fov)"]
7210pub struct ViewConfigurationViewFovEPIC {
7211    pub ty: StructureType,
7212    pub next: *const c_void,
7213    pub recommended_fov: Fovf,
7214    pub max_mutable_fov: Fovf,
7215}
7216impl ViewConfigurationViewFovEPIC {
7217    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_VIEW_FOV_EPIC;
7218}
7219#[repr(C)]
7220#[derive(Copy, Clone, Debug)]
7221#[doc = "See [XrInteractionProfileDpadBindingEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileDpadBindingEXT) - defined by [XR_EXT_dpad_binding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_dpad_binding)"]
7222pub struct InteractionProfileDpadBindingEXT {
7223    pub ty: StructureType,
7224    pub next: *const c_void,
7225    pub binding: Path,
7226    pub action_set: ActionSet,
7227    pub force_threshold: f32,
7228    pub force_threshold_released: f32,
7229    pub center_region: f32,
7230    pub wedge_angle: f32,
7231    pub is_sticky: Bool32,
7232    pub on_haptic: *const HapticBaseHeader,
7233    pub off_haptic: *const HapticBaseHeader,
7234}
7235impl InteractionProfileDpadBindingEXT {
7236    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_DPAD_BINDING_EXT;
7237}
7238#[repr(C)]
7239#[derive(Copy, Clone, Debug)]
7240#[doc = "See [XrInteractionProfileAnalogThresholdVALVE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileAnalogThresholdVALVE) - defined by [XR_VALVE_analog_threshold](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VALVE_analog_threshold)"]
7241pub struct InteractionProfileAnalogThresholdVALVE {
7242    pub ty: StructureType,
7243    pub next: *const c_void,
7244    pub action: Action,
7245    pub binding: Path,
7246    pub on_threshold: f32,
7247    pub off_threshold: f32,
7248    pub on_haptic: *const HapticBaseHeader,
7249    pub off_haptic: *const HapticBaseHeader,
7250}
7251impl InteractionProfileAnalogThresholdVALVE {
7252    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE;
7253}
7254#[repr(C)]
7255#[derive(Copy, Clone, Debug)]
7256#[doc = "See [XrBindingModificationsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBindingModificationsKHR) - defined by [XR_KHR_binding_modification](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_binding_modification)"]
7257pub struct BindingModificationsKHR {
7258    pub ty: StructureType,
7259    pub next: *const c_void,
7260    pub binding_modification_count: u32,
7261    pub binding_modifications: *const *const BindingModificationBaseHeaderKHR,
7262}
7263impl BindingModificationsKHR {
7264    pub const TYPE: StructureType = StructureType::BINDING_MODIFICATIONS_KHR;
7265}
7266#[repr(C)]
7267#[derive(Copy, Clone, Debug)]
7268#[doc = "See [XrBindingModificationBaseHeaderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBindingModificationBaseHeaderKHR) - defined by [XR_KHR_binding_modification](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_binding_modification)"]
7269pub struct BindingModificationBaseHeaderKHR {
7270    pub ty: StructureType,
7271    pub next: *const c_void,
7272}
7273#[repr(C)]
7274#[derive(Copy, Clone, Debug)]
7275#[doc = "See [XrSystemEyeGazeInteractionPropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemEyeGazeInteractionPropertiesEXT) - defined by [XR_EXT_eye_gaze_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_eye_gaze_interaction)"]
7276pub struct SystemEyeGazeInteractionPropertiesEXT {
7277    pub ty: StructureType,
7278    pub next: *mut c_void,
7279    pub supports_eye_gaze_interaction: Bool32,
7280}
7281impl SystemEyeGazeInteractionPropertiesEXT {
7282    pub const TYPE: StructureType = StructureType::SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT;
7283    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7284    #[inline]
7285    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7286        let mut x = MaybeUninit::<Self>::uninit();
7287        unsafe {
7288            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7289                ty: Self::TYPE,
7290                next,
7291            });
7292        }
7293        x
7294    }
7295}
7296#[repr(C)]
7297#[derive(Copy, Clone, Debug)]
7298#[doc = "See [XrEyeGazeSampleTimeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazeSampleTimeEXT) - defined by [XR_EXT_eye_gaze_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_eye_gaze_interaction)"]
7299pub struct EyeGazeSampleTimeEXT {
7300    pub ty: StructureType,
7301    pub next: *mut c_void,
7302    pub time: Time,
7303}
7304impl EyeGazeSampleTimeEXT {
7305    pub const TYPE: StructureType = StructureType::EYE_GAZE_SAMPLE_TIME_EXT;
7306    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7307    #[inline]
7308    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7309        let mut x = MaybeUninit::<Self>::uninit();
7310        unsafe {
7311            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7312                ty: Self::TYPE,
7313                next,
7314            });
7315        }
7316        x
7317    }
7318}
7319#[repr(C)]
7320#[derive(Copy, Clone, Debug)]
7321#[doc = "See [XrSpatialAnchorCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoMSFT)"]
7322pub struct SpatialAnchorCreateInfoMSFT {
7323    pub ty: StructureType,
7324    pub next: *const c_void,
7325    pub space: Space,
7326    pub pose: Posef,
7327    pub time: Time,
7328}
7329impl SpatialAnchorCreateInfoMSFT {
7330    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_MSFT;
7331}
7332#[repr(C)]
7333#[derive(Copy, Clone, Debug)]
7334#[doc = "See [XrSpatialAnchorSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorSpaceCreateInfoMSFT)"]
7335pub struct SpatialAnchorSpaceCreateInfoMSFT {
7336    pub ty: StructureType,
7337    pub next: *const c_void,
7338    pub anchor: SpatialAnchorMSFT,
7339    pub pose_in_anchor_space: Posef,
7340}
7341impl SpatialAnchorSpaceCreateInfoMSFT {
7342    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT;
7343}
7344#[repr(C)]
7345#[derive(Copy, Clone, Debug)]
7346#[doc = "See [XrCompositionLayerImageLayoutFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerImageLayoutFB) - defined by [XR_FB_composition_layer_image_layout](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_image_layout)"]
7347pub struct CompositionLayerImageLayoutFB {
7348    pub ty: StructureType,
7349    pub next: *mut c_void,
7350    pub flags: CompositionLayerImageLayoutFlagsFB,
7351}
7352impl CompositionLayerImageLayoutFB {
7353    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_IMAGE_LAYOUT_FB;
7354    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7355    #[inline]
7356    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7357        let mut x = MaybeUninit::<Self>::uninit();
7358        unsafe {
7359            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7360                ty: Self::TYPE,
7361                next,
7362            });
7363        }
7364        x
7365    }
7366}
7367#[repr(C)]
7368#[derive(Copy, Clone, Debug)]
7369#[doc = "See [XrCompositionLayerAlphaBlendFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerAlphaBlendFB) - defined by [XR_FB_composition_layer_alpha_blend](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_alpha_blend)"]
7370pub struct CompositionLayerAlphaBlendFB {
7371    pub ty: StructureType,
7372    pub next: *mut c_void,
7373    pub src_factor_color: BlendFactorFB,
7374    pub dst_factor_color: BlendFactorFB,
7375    pub src_factor_alpha: BlendFactorFB,
7376    pub dst_factor_alpha: BlendFactorFB,
7377}
7378impl CompositionLayerAlphaBlendFB {
7379    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_ALPHA_BLEND_FB;
7380    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7381    #[inline]
7382    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7383        let mut x = MaybeUninit::<Self>::uninit();
7384        unsafe {
7385            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7386                ty: Self::TYPE,
7387                next,
7388            });
7389        }
7390        x
7391    }
7392}
7393#[repr(C)]
7394#[derive(Copy, Clone)]
7395#[doc = "See [XrGraphicsBindingEGLMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingEGLMNDX) - defined by [XR_MNDX_egl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_egl_enable)"]
7396pub struct GraphicsBindingEGLMNDX {
7397    pub ty: StructureType,
7398    pub next: *const c_void,
7399    pub get_proc_address: Option<pfn::EglGetProcAddressMNDX>,
7400    pub display: EGLDisplay,
7401    pub config: EGLConfig,
7402    pub context: EGLContext,
7403}
7404impl GraphicsBindingEGLMNDX {
7405    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_EGL_MNDX;
7406}
7407#[repr(C)]
7408#[derive(Copy, Clone, Debug)]
7409#[doc = "See [XrSpatialGraphNodeSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeSpaceCreateInfoMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7410pub struct SpatialGraphNodeSpaceCreateInfoMSFT {
7411    pub ty: StructureType,
7412    pub next: *const c_void,
7413    pub node_type: SpatialGraphNodeTypeMSFT,
7414    pub node_id: [u8; GUID_SIZE_MSFT],
7415    pub pose: Posef,
7416}
7417impl SpatialGraphNodeSpaceCreateInfoMSFT {
7418    pub const TYPE: StructureType = StructureType::SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT;
7419}
7420#[repr(C)]
7421#[derive(Copy, Clone, Debug)]
7422#[doc = "See [XrSpatialGraphStaticNodeBindingCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphStaticNodeBindingCreateInfoMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7423pub struct SpatialGraphStaticNodeBindingCreateInfoMSFT {
7424    pub ty: StructureType,
7425    pub next: *const c_void,
7426    pub space: Space,
7427    pub pose_in_space: Posef,
7428    pub time: Time,
7429}
7430impl SpatialGraphStaticNodeBindingCreateInfoMSFT {
7431    pub const TYPE: StructureType =
7432        StructureType::SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT;
7433}
7434#[repr(C)]
7435#[derive(Copy, Clone, Debug)]
7436#[doc = "See [XrSpatialGraphNodeBindingPropertiesGetInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingPropertiesGetInfoMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7437pub struct SpatialGraphNodeBindingPropertiesGetInfoMSFT {
7438    pub ty: StructureType,
7439    pub next: *const c_void,
7440}
7441impl SpatialGraphNodeBindingPropertiesGetInfoMSFT {
7442    pub const TYPE: StructureType =
7443        StructureType::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT;
7444}
7445#[repr(C)]
7446#[derive(Copy, Clone, Debug)]
7447#[doc = "See [XrSpatialGraphNodeBindingPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingPropertiesMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7448pub struct SpatialGraphNodeBindingPropertiesMSFT {
7449    pub ty: StructureType,
7450    pub next: *mut c_void,
7451    pub node_id: [u8; GUID_SIZE_MSFT],
7452    pub pose_in_node_space: Posef,
7453}
7454impl SpatialGraphNodeBindingPropertiesMSFT {
7455    pub const TYPE: StructureType = StructureType::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT;
7456    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7457    #[inline]
7458    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7459        let mut x = MaybeUninit::<Self>::uninit();
7460        unsafe {
7461            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7462                ty: Self::TYPE,
7463                next,
7464            });
7465        }
7466        x
7467    }
7468}
7469#[repr(C)]
7470#[derive(Copy, Clone, Debug)]
7471#[doc = "See [XrSystemHandTrackingPropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemHandTrackingPropertiesEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7472pub struct SystemHandTrackingPropertiesEXT {
7473    pub ty: StructureType,
7474    pub next: *mut c_void,
7475    pub supports_hand_tracking: Bool32,
7476}
7477impl SystemHandTrackingPropertiesEXT {
7478    pub const TYPE: StructureType = StructureType::SYSTEM_HAND_TRACKING_PROPERTIES_EXT;
7479    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7480    #[inline]
7481    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7482        let mut x = MaybeUninit::<Self>::uninit();
7483        unsafe {
7484            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7485                ty: Self::TYPE,
7486                next,
7487            });
7488        }
7489        x
7490    }
7491}
7492#[repr(C)]
7493#[derive(Copy, Clone, Debug)]
7494#[doc = "See [XrHandTrackerCreateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackerCreateInfoEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7495pub struct HandTrackerCreateInfoEXT {
7496    pub ty: StructureType,
7497    pub next: *const c_void,
7498    pub hand: HandEXT,
7499    pub hand_joint_set: HandJointSetEXT,
7500}
7501impl HandTrackerCreateInfoEXT {
7502    pub const TYPE: StructureType = StructureType::HAND_TRACKER_CREATE_INFO_EXT;
7503}
7504#[repr(C)]
7505#[derive(Copy, Clone, Debug)]
7506#[doc = "See [XrHandJointsLocateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsLocateInfoEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7507pub struct HandJointsLocateInfoEXT {
7508    pub ty: StructureType,
7509    pub next: *const c_void,
7510    pub base_space: Space,
7511    pub time: Time,
7512}
7513impl HandJointsLocateInfoEXT {
7514    pub const TYPE: StructureType = StructureType::HAND_JOINTS_LOCATE_INFO_EXT;
7515}
7516#[repr(C)]
7517#[derive(Copy, Clone, Debug, Default, PartialEq)]
7518#[doc = "See [XrHandJointLocationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointLocationEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7519pub struct HandJointLocationEXT {
7520    pub location_flags: SpaceLocationFlags,
7521    pub pose: Posef,
7522    pub radius: f32,
7523}
7524#[repr(C)]
7525#[derive(Copy, Clone, Debug, Default, PartialEq)]
7526#[doc = "See [XrHandJointVelocityEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointVelocityEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7527pub struct HandJointVelocityEXT {
7528    pub velocity_flags: SpaceVelocityFlags,
7529    pub linear_velocity: Vector3f,
7530    pub angular_velocity: Vector3f,
7531}
7532#[repr(C)]
7533#[derive(Copy, Clone, Debug)]
7534#[doc = "See [XrHandJointLocationsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointLocationsEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7535pub struct HandJointLocationsEXT {
7536    pub ty: StructureType,
7537    pub next: *mut c_void,
7538    pub is_active: Bool32,
7539    pub joint_count: u32,
7540    pub joint_locations: *mut HandJointLocationEXT,
7541}
7542impl HandJointLocationsEXT {
7543    pub const TYPE: StructureType = StructureType::HAND_JOINT_LOCATIONS_EXT;
7544    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7545    #[inline]
7546    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7547        let mut x = MaybeUninit::<Self>::uninit();
7548        unsafe {
7549            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7550                ty: Self::TYPE,
7551                next,
7552            });
7553        }
7554        x
7555    }
7556}
7557#[repr(C)]
7558#[derive(Copy, Clone, Debug)]
7559#[doc = "See [XrHandJointVelocitiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointVelocitiesEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7560pub struct HandJointVelocitiesEXT {
7561    pub ty: StructureType,
7562    pub next: *mut c_void,
7563    pub joint_count: u32,
7564    pub joint_velocities: *mut HandJointVelocityEXT,
7565}
7566impl HandJointVelocitiesEXT {
7567    pub const TYPE: StructureType = StructureType::HAND_JOINT_VELOCITIES_EXT;
7568    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7569    #[inline]
7570    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7571        let mut x = MaybeUninit::<Self>::uninit();
7572        unsafe {
7573            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7574                ty: Self::TYPE,
7575                next,
7576            });
7577        }
7578        x
7579    }
7580}
7581#[repr(C)]
7582#[derive(Copy, Clone, Debug)]
7583#[doc = "See [XrSystemFaceTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFaceTrackingPropertiesFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7584pub struct SystemFaceTrackingPropertiesFB {
7585    pub ty: StructureType,
7586    pub next: *mut c_void,
7587    pub supports_face_tracking: Bool32,
7588}
7589impl SystemFaceTrackingPropertiesFB {
7590    pub const TYPE: StructureType = StructureType::SYSTEM_FACE_TRACKING_PROPERTIES_FB;
7591    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7592    #[inline]
7593    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7594        let mut x = MaybeUninit::<Self>::uninit();
7595        unsafe {
7596            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7597                ty: Self::TYPE,
7598                next,
7599            });
7600        }
7601        x
7602    }
7603}
7604#[repr(C)]
7605#[derive(Copy, Clone, Debug)]
7606#[doc = "See [XrFaceTrackerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerCreateInfoFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7607pub struct FaceTrackerCreateInfoFB {
7608    pub ty: StructureType,
7609    pub next: *const c_void,
7610    pub face_expression_set: FaceExpressionSetFB,
7611}
7612impl FaceTrackerCreateInfoFB {
7613    pub const TYPE: StructureType = StructureType::FACE_TRACKER_CREATE_INFO_FB;
7614}
7615#[repr(C)]
7616#[derive(Copy, Clone, Debug)]
7617#[doc = "See [XrFaceExpressionInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionInfoFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7618pub struct FaceExpressionInfoFB {
7619    pub ty: StructureType,
7620    pub next: *const c_void,
7621    pub time: Time,
7622}
7623impl FaceExpressionInfoFB {
7624    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_INFO_FB;
7625}
7626#[repr(C)]
7627#[derive(Copy, Clone, Debug, Default, PartialEq)]
7628#[doc = "See [XrFaceExpressionStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionStatusFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7629pub struct FaceExpressionStatusFB {
7630    pub is_valid: Bool32,
7631    pub is_eye_following_blendshapes_valid: Bool32,
7632}
7633#[repr(C)]
7634#[derive(Copy, Clone, Debug)]
7635#[doc = "See [XrFaceExpressionWeightsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionWeightsFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7636pub struct FaceExpressionWeightsFB {
7637    pub ty: StructureType,
7638    pub next: *mut c_void,
7639    pub weight_count: u32,
7640    pub weights: *mut f32,
7641    pub confidence_count: u32,
7642    pub confidences: *mut f32,
7643    pub status: FaceExpressionStatusFB,
7644    pub time: Time,
7645}
7646impl FaceExpressionWeightsFB {
7647    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_WEIGHTS_FB;
7648    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7649    #[inline]
7650    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7651        let mut x = MaybeUninit::<Self>::uninit();
7652        unsafe {
7653            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7654                ty: Self::TYPE,
7655                next,
7656            });
7657        }
7658        x
7659    }
7660}
7661#[repr(C)]
7662#[derive(Copy, Clone, Debug)]
7663#[doc = "See [XrSystemFaceTrackingProperties2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFaceTrackingProperties2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7664pub struct SystemFaceTrackingProperties2FB {
7665    pub ty: StructureType,
7666    pub next: *mut c_void,
7667    pub supports_visual_face_tracking: Bool32,
7668    pub supports_audio_face_tracking: Bool32,
7669}
7670impl SystemFaceTrackingProperties2FB {
7671    pub const TYPE: StructureType = StructureType::SYSTEM_FACE_TRACKING_PROPERTIES2_FB;
7672    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7673    #[inline]
7674    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7675        let mut x = MaybeUninit::<Self>::uninit();
7676        unsafe {
7677            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7678                ty: Self::TYPE,
7679                next,
7680            });
7681        }
7682        x
7683    }
7684}
7685#[repr(C)]
7686#[derive(Copy, Clone, Debug)]
7687#[doc = "See [XrFaceTrackerCreateInfo2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerCreateInfo2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7688pub struct FaceTrackerCreateInfo2FB {
7689    pub ty: StructureType,
7690    pub next: *const c_void,
7691    pub face_expression_set: FaceExpressionSet2FB,
7692    pub requested_data_source_count: u32,
7693    pub requested_data_sources: *mut FaceTrackingDataSource2FB,
7694}
7695impl FaceTrackerCreateInfo2FB {
7696    pub const TYPE: StructureType = StructureType::FACE_TRACKER_CREATE_INFO2_FB;
7697}
7698#[repr(C)]
7699#[derive(Copy, Clone, Debug)]
7700#[doc = "See [XrFaceExpressionInfo2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionInfo2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7701pub struct FaceExpressionInfo2FB {
7702    pub ty: StructureType,
7703    pub next: *const c_void,
7704    pub time: Time,
7705}
7706impl FaceExpressionInfo2FB {
7707    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_INFO2_FB;
7708}
7709#[repr(C)]
7710#[derive(Copy, Clone, Debug)]
7711#[doc = "See [XrFaceExpressionWeights2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionWeights2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7712pub struct FaceExpressionWeights2FB {
7713    pub ty: StructureType,
7714    pub next: *mut c_void,
7715    pub weight_count: u32,
7716    pub weights: *mut f32,
7717    pub confidence_count: u32,
7718    pub confidences: *mut f32,
7719    pub is_valid: Bool32,
7720    pub is_eye_following_blendshapes_valid: Bool32,
7721    pub data_source: FaceTrackingDataSource2FB,
7722    pub time: Time,
7723}
7724impl FaceExpressionWeights2FB {
7725    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_WEIGHTS2_FB;
7726    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7727    #[inline]
7728    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7729        let mut x = MaybeUninit::<Self>::uninit();
7730        unsafe {
7731            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7732                ty: Self::TYPE,
7733                next,
7734            });
7735        }
7736        x
7737    }
7738}
7739#[repr(C)]
7740#[derive(Copy, Clone, Debug)]
7741#[doc = "See [XrSystemBodyTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemBodyTrackingPropertiesFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7742pub struct SystemBodyTrackingPropertiesFB {
7743    pub ty: StructureType,
7744    pub next: *mut c_void,
7745    pub supports_body_tracking: Bool32,
7746}
7747impl SystemBodyTrackingPropertiesFB {
7748    pub const TYPE: StructureType = StructureType::SYSTEM_BODY_TRACKING_PROPERTIES_FB;
7749    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7750    #[inline]
7751    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7752        let mut x = MaybeUninit::<Self>::uninit();
7753        unsafe {
7754            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7755                ty: Self::TYPE,
7756                next,
7757            });
7758        }
7759        x
7760    }
7761}
7762#[repr(C)]
7763#[derive(Copy, Clone, Debug)]
7764#[doc = "See [XrBodyTrackerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyTrackerCreateInfoFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7765pub struct BodyTrackerCreateInfoFB {
7766    pub ty: StructureType,
7767    pub next: *const c_void,
7768    pub body_joint_set: BodyJointSetFB,
7769}
7770impl BodyTrackerCreateInfoFB {
7771    pub const TYPE: StructureType = StructureType::BODY_TRACKER_CREATE_INFO_FB;
7772}
7773#[repr(C)]
7774#[derive(Copy, Clone, Debug, Default, PartialEq)]
7775#[doc = "See [XrBodySkeletonJointFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodySkeletonJointFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7776pub struct BodySkeletonJointFB {
7777    pub joint: i32,
7778    pub parent_joint: i32,
7779    pub pose: Posef,
7780}
7781#[repr(C)]
7782#[derive(Copy, Clone, Debug)]
7783#[doc = "See [XrBodySkeletonFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodySkeletonFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7784pub struct BodySkeletonFB {
7785    pub ty: StructureType,
7786    pub next: *mut c_void,
7787    pub joint_count: u32,
7788    pub joints: *mut BodySkeletonJointFB,
7789}
7790impl BodySkeletonFB {
7791    pub const TYPE: StructureType = StructureType::BODY_SKELETON_FB;
7792    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7793    #[inline]
7794    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7795        let mut x = MaybeUninit::<Self>::uninit();
7796        unsafe {
7797            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7798                ty: Self::TYPE,
7799                next,
7800            });
7801        }
7802        x
7803    }
7804}
7805#[repr(C)]
7806#[derive(Copy, Clone, Debug)]
7807#[doc = "See [XrBodyJointsLocateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointsLocateInfoFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7808pub struct BodyJointsLocateInfoFB {
7809    pub ty: StructureType,
7810    pub next: *const c_void,
7811    pub base_space: Space,
7812    pub time: Time,
7813}
7814impl BodyJointsLocateInfoFB {
7815    pub const TYPE: StructureType = StructureType::BODY_JOINTS_LOCATE_INFO_FB;
7816}
7817#[repr(C)]
7818#[derive(Copy, Clone, Debug, Default, PartialEq)]
7819#[doc = "See [XrBodyJointLocationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointLocationFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7820pub struct BodyJointLocationFB {
7821    pub location_flags: SpaceLocationFlags,
7822    pub pose: Posef,
7823}
7824#[repr(C)]
7825#[derive(Copy, Clone, Debug)]
7826#[doc = "See [XrBodyJointLocationsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointLocationsFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7827pub struct BodyJointLocationsFB {
7828    pub ty: StructureType,
7829    pub next: *mut c_void,
7830    pub is_active: Bool32,
7831    pub confidence: f32,
7832    pub joint_count: u32,
7833    pub joint_locations: *mut BodyJointLocationFB,
7834    pub skeleton_changed_count: u32,
7835    pub time: Time,
7836}
7837impl BodyJointLocationsFB {
7838    pub const TYPE: StructureType = StructureType::BODY_JOINT_LOCATIONS_FB;
7839    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7840    #[inline]
7841    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7842        let mut x = MaybeUninit::<Self>::uninit();
7843        unsafe {
7844            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7845                ty: Self::TYPE,
7846                next,
7847            });
7848        }
7849        x
7850    }
7851}
7852#[repr(C)]
7853#[derive(Copy, Clone, Debug)]
7854#[doc = "See [XrSystemEyeTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemEyeTrackingPropertiesFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7855pub struct SystemEyeTrackingPropertiesFB {
7856    pub ty: StructureType,
7857    pub next: *mut c_void,
7858    pub supports_eye_tracking: Bool32,
7859}
7860impl SystemEyeTrackingPropertiesFB {
7861    pub const TYPE: StructureType = StructureType::SYSTEM_EYE_TRACKING_PROPERTIES_FB;
7862    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7863    #[inline]
7864    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7865        let mut x = MaybeUninit::<Self>::uninit();
7866        unsafe {
7867            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7868                ty: Self::TYPE,
7869                next,
7870            });
7871        }
7872        x
7873    }
7874}
7875#[repr(C)]
7876#[derive(Copy, Clone, Debug)]
7877#[doc = "See [XrEyeTrackerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeTrackerCreateInfoFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7878pub struct EyeTrackerCreateInfoFB {
7879    pub ty: StructureType,
7880    pub next: *const c_void,
7881}
7882impl EyeTrackerCreateInfoFB {
7883    pub const TYPE: StructureType = StructureType::EYE_TRACKER_CREATE_INFO_FB;
7884}
7885#[repr(C)]
7886#[derive(Copy, Clone, Debug)]
7887#[doc = "See [XrEyeGazesInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazesInfoFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7888pub struct EyeGazesInfoFB {
7889    pub ty: StructureType,
7890    pub next: *const c_void,
7891    pub base_space: Space,
7892    pub time: Time,
7893}
7894impl EyeGazesInfoFB {
7895    pub const TYPE: StructureType = StructureType::EYE_GAZES_INFO_FB;
7896}
7897#[repr(C)]
7898#[derive(Copy, Clone, Debug, Default, PartialEq)]
7899#[doc = "See [XrEyeGazeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazeFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7900pub struct EyeGazeFB {
7901    pub is_valid: Bool32,
7902    pub gaze_pose: Posef,
7903    pub gaze_confidence: f32,
7904}
7905#[repr(C)]
7906#[derive(Copy, Clone, Debug)]
7907#[doc = "See [XrEyeGazesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazesFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7908pub struct EyeGazesFB {
7909    pub ty: StructureType,
7910    pub next: *mut c_void,
7911    pub gaze: [EyeGazeFB; EYE_POSITION_COUNT_FB],
7912    pub time: Time,
7913}
7914impl EyeGazesFB {
7915    pub const TYPE: StructureType = StructureType::EYE_GAZES_FB;
7916    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7917    #[inline]
7918    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7919        let mut x = MaybeUninit::<Self>::uninit();
7920        unsafe {
7921            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7922                ty: Self::TYPE,
7923                next,
7924            });
7925        }
7926        x
7927    }
7928}
7929#[repr(C)]
7930#[derive(Copy, Clone, Debug)]
7931#[doc = "See [XrHandJointsMotionRangeInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsMotionRangeInfoEXT) - defined by [XR_EXT_hand_joints_motion_range](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_joints_motion_range)"]
7932pub struct HandJointsMotionRangeInfoEXT {
7933    pub ty: StructureType,
7934    pub next: *const c_void,
7935    pub hand_joints_motion_range: HandJointsMotionRangeEXT,
7936}
7937impl HandJointsMotionRangeInfoEXT {
7938    pub const TYPE: StructureType = StructureType::HAND_JOINTS_MOTION_RANGE_INFO_EXT;
7939}
7940#[repr(C)]
7941#[derive(Copy, Clone, Debug)]
7942#[doc = "See [XrHandTrackingDataSourceInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceInfoEXT) - defined by [XR_EXT_hand_tracking_data_source](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking_data_source)"]
7943pub struct HandTrackingDataSourceInfoEXT {
7944    pub ty: StructureType,
7945    pub next: *const c_void,
7946    pub requested_data_source_count: u32,
7947    pub requested_data_sources: *mut HandTrackingDataSourceEXT,
7948}
7949impl HandTrackingDataSourceInfoEXT {
7950    pub const TYPE: StructureType = StructureType::HAND_TRACKING_DATA_SOURCE_INFO_EXT;
7951}
7952#[repr(C)]
7953#[derive(Copy, Clone, Debug)]
7954#[doc = "See [XrHandTrackingDataSourceStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceStateEXT) - defined by [XR_EXT_hand_tracking_data_source](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking_data_source)"]
7955pub struct HandTrackingDataSourceStateEXT {
7956    pub ty: StructureType,
7957    pub next: *mut c_void,
7958    pub is_active: Bool32,
7959    pub data_source: HandTrackingDataSourceEXT,
7960}
7961impl HandTrackingDataSourceStateEXT {
7962    pub const TYPE: StructureType = StructureType::HAND_TRACKING_DATA_SOURCE_STATE_EXT;
7963    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7964    #[inline]
7965    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7966        let mut x = MaybeUninit::<Self>::uninit();
7967        unsafe {
7968            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7969                ty: Self::TYPE,
7970                next,
7971            });
7972        }
7973        x
7974    }
7975}
7976#[repr(C)]
7977#[derive(Copy, Clone, Debug)]
7978#[doc = "See [XrHandMeshSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshSpaceCreateInfoMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
7979pub struct HandMeshSpaceCreateInfoMSFT {
7980    pub ty: StructureType,
7981    pub next: *const c_void,
7982    pub hand_pose_type: HandPoseTypeMSFT,
7983    pub pose_in_hand_mesh_space: Posef,
7984}
7985impl HandMeshSpaceCreateInfoMSFT {
7986    pub const TYPE: StructureType = StructureType::HAND_MESH_SPACE_CREATE_INFO_MSFT;
7987}
7988#[repr(C)]
7989#[derive(Copy, Clone, Debug)]
7990#[doc = "See [XrHandMeshUpdateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshUpdateInfoMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
7991pub struct HandMeshUpdateInfoMSFT {
7992    pub ty: StructureType,
7993    pub next: *const c_void,
7994    pub time: Time,
7995    pub hand_pose_type: HandPoseTypeMSFT,
7996}
7997impl HandMeshUpdateInfoMSFT {
7998    pub const TYPE: StructureType = StructureType::HAND_MESH_UPDATE_INFO_MSFT;
7999}
8000#[repr(C)]
8001#[derive(Copy, Clone, Debug)]
8002#[doc = "See [XrHandMeshMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8003pub struct HandMeshMSFT {
8004    pub ty: StructureType,
8005    pub next: *mut c_void,
8006    pub is_active: Bool32,
8007    pub index_buffer_changed: Bool32,
8008    pub vertex_buffer_changed: Bool32,
8009    pub index_buffer: HandMeshIndexBufferMSFT,
8010    pub vertex_buffer: HandMeshVertexBufferMSFT,
8011}
8012impl HandMeshMSFT {
8013    pub const TYPE: StructureType = StructureType::HAND_MESH_MSFT;
8014    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8015    #[inline]
8016    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8017        let mut x = MaybeUninit::<Self>::uninit();
8018        unsafe {
8019            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8020                ty: Self::TYPE,
8021                next,
8022            });
8023        }
8024        x
8025    }
8026}
8027#[repr(C)]
8028#[derive(Copy, Clone, Debug)]
8029#[doc = "See [XrHandMeshIndexBufferMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshIndexBufferMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8030pub struct HandMeshIndexBufferMSFT {
8031    pub index_buffer_key: u32,
8032    pub index_capacity_input: u32,
8033    pub index_count_output: u32,
8034    pub indices: *mut u32,
8035}
8036#[repr(C)]
8037#[derive(Copy, Clone, Debug)]
8038#[doc = "See [XrHandMeshVertexBufferMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshVertexBufferMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8039pub struct HandMeshVertexBufferMSFT {
8040    pub vertex_update_time: Time,
8041    pub vertex_capacity_input: u32,
8042    pub vertex_count_output: u32,
8043    pub vertices: *mut HandMeshVertexMSFT,
8044}
8045#[repr(C)]
8046#[derive(Copy, Clone, Debug, Default, PartialEq)]
8047#[doc = "See [XrHandMeshVertexMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshVertexMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8048pub struct HandMeshVertexMSFT {
8049    pub position: Vector3f,
8050    pub normal: Vector3f,
8051}
8052#[repr(C)]
8053#[derive(Copy, Clone, Debug)]
8054#[doc = "See [XrSystemHandTrackingMeshPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemHandTrackingMeshPropertiesMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8055pub struct SystemHandTrackingMeshPropertiesMSFT {
8056    pub ty: StructureType,
8057    pub next: *mut c_void,
8058    pub supports_hand_tracking_mesh: Bool32,
8059    pub max_hand_mesh_index_count: u32,
8060    pub max_hand_mesh_vertex_count: u32,
8061}
8062impl SystemHandTrackingMeshPropertiesMSFT {
8063    pub const TYPE: StructureType = StructureType::SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT;
8064    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8065    #[inline]
8066    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8067        let mut x = MaybeUninit::<Self>::uninit();
8068        unsafe {
8069            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8070                ty: Self::TYPE,
8071                next,
8072            });
8073        }
8074        x
8075    }
8076}
8077#[repr(C)]
8078#[derive(Copy, Clone, Debug)]
8079#[doc = "See [XrHandPoseTypeInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandPoseTypeInfoMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8080pub struct HandPoseTypeInfoMSFT {
8081    pub ty: StructureType,
8082    pub next: *const c_void,
8083    pub hand_pose_type: HandPoseTypeMSFT,
8084}
8085impl HandPoseTypeInfoMSFT {
8086    pub const TYPE: StructureType = StructureType::HAND_POSE_TYPE_INFO_MSFT;
8087}
8088#[repr(C)]
8089#[derive(Copy, Clone, Debug)]
8090#[doc = "See [XrSecondaryViewConfigurationSessionBeginInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationSessionBeginInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8091pub struct SecondaryViewConfigurationSessionBeginInfoMSFT {
8092    pub ty: StructureType,
8093    pub next: *const c_void,
8094    pub view_configuration_count: u32,
8095    pub enabled_view_configuration_types: *const ViewConfigurationType,
8096}
8097impl SecondaryViewConfigurationSessionBeginInfoMSFT {
8098    pub const TYPE: StructureType =
8099        StructureType::SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT;
8100}
8101#[repr(C)]
8102#[derive(Copy, Clone, Debug)]
8103#[doc = "See [XrSecondaryViewConfigurationStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationStateMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8104pub struct SecondaryViewConfigurationStateMSFT {
8105    pub ty: StructureType,
8106    pub next: *mut c_void,
8107    pub view_configuration_type: ViewConfigurationType,
8108    pub active: Bool32,
8109}
8110impl SecondaryViewConfigurationStateMSFT {
8111    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_STATE_MSFT;
8112    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8113    #[inline]
8114    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8115        let mut x = MaybeUninit::<Self>::uninit();
8116        unsafe {
8117            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8118                ty: Self::TYPE,
8119                next,
8120            });
8121        }
8122        x
8123    }
8124}
8125#[repr(C)]
8126#[derive(Copy, Clone, Debug)]
8127#[doc = "See [XrSecondaryViewConfigurationFrameStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationFrameStateMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8128pub struct SecondaryViewConfigurationFrameStateMSFT {
8129    pub ty: StructureType,
8130    pub next: *mut c_void,
8131    pub view_configuration_count: u32,
8132    pub view_configuration_states: *mut SecondaryViewConfigurationStateMSFT,
8133}
8134impl SecondaryViewConfigurationFrameStateMSFT {
8135    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT;
8136    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8137    #[inline]
8138    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8139        let mut x = MaybeUninit::<Self>::uninit();
8140        unsafe {
8141            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8142                ty: Self::TYPE,
8143                next,
8144            });
8145        }
8146        x
8147    }
8148}
8149#[repr(C)]
8150#[derive(Copy, Clone, Debug)]
8151#[doc = "See [XrSecondaryViewConfigurationFrameEndInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationFrameEndInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8152pub struct SecondaryViewConfigurationFrameEndInfoMSFT {
8153    pub ty: StructureType,
8154    pub next: *const c_void,
8155    pub view_configuration_count: u32,
8156    pub view_configuration_layers_info: *const SecondaryViewConfigurationLayerInfoMSFT,
8157}
8158impl SecondaryViewConfigurationFrameEndInfoMSFT {
8159    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT;
8160}
8161#[repr(C)]
8162#[derive(Copy, Clone, Debug)]
8163#[doc = "See [XrSecondaryViewConfigurationLayerInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationLayerInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8164pub struct SecondaryViewConfigurationLayerInfoMSFT {
8165    pub ty: StructureType,
8166    pub next: *const c_void,
8167    pub view_configuration_type: ViewConfigurationType,
8168    pub environment_blend_mode: EnvironmentBlendMode,
8169    pub layer_count: u32,
8170    pub layers: *const *const CompositionLayerBaseHeader,
8171}
8172impl SecondaryViewConfigurationLayerInfoMSFT {
8173    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT;
8174}
8175#[repr(C)]
8176#[derive(Copy, Clone, Debug)]
8177#[doc = "See [XrSecondaryViewConfigurationSwapchainCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationSwapchainCreateInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8178pub struct SecondaryViewConfigurationSwapchainCreateInfoMSFT {
8179    pub ty: StructureType,
8180    pub next: *const c_void,
8181    pub view_configuration_type: ViewConfigurationType,
8182}
8183impl SecondaryViewConfigurationSwapchainCreateInfoMSFT {
8184    pub const TYPE: StructureType =
8185        StructureType::SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT;
8186}
8187#[repr(C)]
8188#[derive(Copy, Clone, Debug)]
8189#[doc = "See [XrHolographicWindowAttachmentMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHolographicWindowAttachmentMSFT) - defined by [XR_MSFT_holographic_window_attachment](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_holographic_window_attachment)"]
8190#[cfg(windows)]
8191pub struct HolographicWindowAttachmentMSFT {
8192    pub ty: StructureType,
8193    pub next: *const c_void,
8194    pub holographic_space: *mut IUnknown,
8195    pub core_window: *mut IUnknown,
8196}
8197#[cfg(windows)]
8198impl HolographicWindowAttachmentMSFT {
8199    pub const TYPE: StructureType = StructureType::HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT;
8200}
8201#[repr(C)]
8202#[derive(Copy, Clone, Debug)]
8203#[doc = "See [XrAndroidSurfaceSwapchainCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidSurfaceSwapchainCreateInfoFB) - defined by [XR_FB_android_surface_swapchain_create](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_android_surface_swapchain_create)"]
8204#[cfg(target_os = "android")]
8205pub struct AndroidSurfaceSwapchainCreateInfoFB {
8206    pub ty: StructureType,
8207    pub next: *const c_void,
8208    pub create_flags: AndroidSurfaceSwapchainFlagsFB,
8209}
8210#[cfg(target_os = "android")]
8211impl AndroidSurfaceSwapchainCreateInfoFB {
8212    pub const TYPE: StructureType = StructureType::ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB;
8213}
8214#[repr(C)]
8215#[derive(Copy, Clone, Debug)]
8216#[doc = "See [XrSwapchainStateBaseHeaderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateBaseHeaderFB) - defined by [XR_FB_swapchain_update_state](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state)"]
8217pub struct SwapchainStateBaseHeaderFB {
8218    pub ty: StructureType,
8219    pub next: *mut c_void,
8220}
8221#[repr(C)]
8222#[derive(Copy, Clone, Debug)]
8223#[doc = "See [XrSwapchainStateAndroidSurfaceDimensionsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateAndroidSurfaceDimensionsFB) - defined by [XR_FB_swapchain_update_state_android_surface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state_android_surface)"]
8224#[cfg(target_os = "android")]
8225pub struct SwapchainStateAndroidSurfaceDimensionsFB {
8226    pub ty: StructureType,
8227    pub next: *mut c_void,
8228    pub width: u32,
8229    pub height: u32,
8230}
8231#[cfg(target_os = "android")]
8232impl SwapchainStateAndroidSurfaceDimensionsFB {
8233    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB;
8234    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8235    #[inline]
8236    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8237        let mut x = MaybeUninit::<Self>::uninit();
8238        unsafe {
8239            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8240                ty: Self::TYPE,
8241                next,
8242            });
8243        }
8244        x
8245    }
8246}
8247#[repr(C)]
8248#[derive(Copy, Clone, Debug)]
8249#[doc = "See [XrSwapchainStateSamplerOpenGLESFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateSamplerOpenGLESFB) - defined by [XR_FB_swapchain_update_state_opengl_es](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state_opengl_es)"]
8250pub struct SwapchainStateSamplerOpenGLESFB {
8251    pub ty: StructureType,
8252    pub next: *mut c_void,
8253    pub min_filter: EGLenum,
8254    pub mag_filter: EGLenum,
8255    pub wrap_mode_s: EGLenum,
8256    pub wrap_mode_t: EGLenum,
8257    pub swizzle_red: EGLenum,
8258    pub swizzle_green: EGLenum,
8259    pub swizzle_blue: EGLenum,
8260    pub swizzle_alpha: EGLenum,
8261    pub max_anisotropy: f32,
8262    pub border_color: Color4f,
8263}
8264impl SwapchainStateSamplerOpenGLESFB {
8265    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB;
8266    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8267    #[inline]
8268    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8269        let mut x = MaybeUninit::<Self>::uninit();
8270        unsafe {
8271            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8272                ty: Self::TYPE,
8273                next,
8274            });
8275        }
8276        x
8277    }
8278}
8279#[repr(C)]
8280#[derive(Copy, Clone, Debug)]
8281#[doc = "See [XrSwapchainStateSamplerVulkanFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateSamplerVulkanFB) - defined by [XR_FB_swapchain_update_state_vulkan](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state_vulkan)"]
8282pub struct SwapchainStateSamplerVulkanFB {
8283    pub ty: StructureType,
8284    pub next: *mut c_void,
8285    pub min_filter: VkFilter,
8286    pub mag_filter: VkFilter,
8287    pub mipmap_mode: VkSamplerMipmapMode,
8288    pub wrap_mode_s: VkSamplerAddressMode,
8289    pub wrap_mode_t: VkSamplerAddressMode,
8290    pub swizzle_red: VkComponentSwizzle,
8291    pub swizzle_green: VkComponentSwizzle,
8292    pub swizzle_blue: VkComponentSwizzle,
8293    pub swizzle_alpha: VkComponentSwizzle,
8294    pub max_anisotropy: f32,
8295    pub border_color: Color4f,
8296}
8297impl SwapchainStateSamplerVulkanFB {
8298    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_SAMPLER_VULKAN_FB;
8299    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8300    #[inline]
8301    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8302        let mut x = MaybeUninit::<Self>::uninit();
8303        unsafe {
8304            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8305                ty: Self::TYPE,
8306                next,
8307            });
8308        }
8309        x
8310    }
8311}
8312#[repr(C)]
8313#[derive(Copy, Clone, Debug)]
8314#[doc = "See [XrCompositionLayerSecureContentFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSecureContentFB) - defined by [XR_FB_composition_layer_secure_content](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_secure_content)"]
8315pub struct CompositionLayerSecureContentFB {
8316    pub ty: StructureType,
8317    pub next: *const c_void,
8318    pub flags: CompositionLayerSecureContentFlagsFB,
8319}
8320impl CompositionLayerSecureContentFB {
8321    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SECURE_CONTENT_FB;
8322}
8323#[repr(C)]
8324#[derive(Copy, Clone, Debug)]
8325#[doc = "See [XrLoaderInitInfoBaseHeaderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLoaderInitInfoBaseHeaderKHR) - defined by [XR_KHR_loader_init](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_loader_init)"]
8326pub struct LoaderInitInfoBaseHeaderKHR {
8327    pub ty: StructureType,
8328    pub next: *const c_void,
8329}
8330#[repr(C)]
8331#[derive(Copy, Clone, Debug)]
8332#[doc = "See [XrLoaderInitInfoAndroidKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLoaderInitInfoAndroidKHR) - defined by [XR_KHR_loader_init_android](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_loader_init_android)"]
8333#[cfg(target_os = "android")]
8334pub struct LoaderInitInfoAndroidKHR {
8335    pub ty: StructureType,
8336    pub next: *const c_void,
8337    pub application_vm: *mut c_void,
8338    pub application_context: *mut c_void,
8339}
8340#[cfg(target_os = "android")]
8341impl LoaderInitInfoAndroidKHR {
8342    pub const TYPE: StructureType = StructureType::LOADER_INIT_INFO_ANDROID_KHR;
8343}
8344#[repr(C)]
8345#[derive(Copy, Clone, Debug)]
8346#[doc = "See [XrCompositionLayerEquirect2KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerEquirect2KHR) - defined by [XR_KHR_composition_layer_equirect2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_equirect2)"]
8347pub struct CompositionLayerEquirect2KHR {
8348    pub ty: StructureType,
8349    pub next: *const c_void,
8350    pub layer_flags: CompositionLayerFlags,
8351    pub space: Space,
8352    pub eye_visibility: EyeVisibility,
8353    pub sub_image: SwapchainSubImage,
8354    pub pose: Posef,
8355    pub radius: f32,
8356    pub central_horizontal_angle: f32,
8357    pub upper_vertical_angle: f32,
8358    pub lower_vertical_angle: f32,
8359}
8360impl CompositionLayerEquirect2KHR {
8361    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_EQUIRECT2_KHR;
8362}
8363#[repr(C)]
8364#[derive(Copy, Clone, Debug)]
8365#[doc = "See [XrCompositionLayerColorScaleBiasKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerColorScaleBiasKHR) - defined by [XR_KHR_composition_layer_color_scale_bias](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_color_scale_bias)"]
8366pub struct CompositionLayerColorScaleBiasKHR {
8367    pub ty: StructureType,
8368    pub next: *const c_void,
8369    pub color_scale: Color4f,
8370    pub color_bias: Color4f,
8371}
8372impl CompositionLayerColorScaleBiasKHR {
8373    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR;
8374}
8375#[repr(C)]
8376#[derive(Copy, Clone, Debug)]
8377#[doc = "See [XrControllerModelKeyStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelKeyStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8378pub struct ControllerModelKeyStateMSFT {
8379    pub ty: StructureType,
8380    pub next: *mut c_void,
8381    pub model_key: ControllerModelKeyMSFT,
8382}
8383impl ControllerModelKeyStateMSFT {
8384    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_KEY_STATE_MSFT;
8385    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8386    #[inline]
8387    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8388        let mut x = MaybeUninit::<Self>::uninit();
8389        unsafe {
8390            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8391                ty: Self::TYPE,
8392                next,
8393            });
8394        }
8395        x
8396    }
8397}
8398#[repr(C)]
8399#[derive(Copy, Clone, Debug)]
8400#[doc = "See [XrControllerModelNodePropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelNodePropertiesMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8401pub struct ControllerModelNodePropertiesMSFT {
8402    pub ty: StructureType,
8403    pub next: *mut c_void,
8404    pub parent_node_name: [c_char; MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT],
8405    pub node_name: [c_char; MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT],
8406}
8407impl ControllerModelNodePropertiesMSFT {
8408    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_NODE_PROPERTIES_MSFT;
8409    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8410    #[inline]
8411    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8412        let mut x = MaybeUninit::<Self>::uninit();
8413        unsafe {
8414            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8415                ty: Self::TYPE,
8416                next,
8417            });
8418        }
8419        x
8420    }
8421}
8422#[repr(C)]
8423#[derive(Copy, Clone, Debug)]
8424#[doc = "See [XrControllerModelPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelPropertiesMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8425pub struct ControllerModelPropertiesMSFT {
8426    pub ty: StructureType,
8427    pub next: *mut c_void,
8428    pub node_capacity_input: u32,
8429    pub node_count_output: u32,
8430    pub node_properties: *mut ControllerModelNodePropertiesMSFT,
8431}
8432impl ControllerModelPropertiesMSFT {
8433    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_PROPERTIES_MSFT;
8434    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8435    #[inline]
8436    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8437        let mut x = MaybeUninit::<Self>::uninit();
8438        unsafe {
8439            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8440                ty: Self::TYPE,
8441                next,
8442            });
8443        }
8444        x
8445    }
8446}
8447#[repr(C)]
8448#[derive(Copy, Clone, Debug)]
8449#[doc = "See [XrControllerModelNodeStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelNodeStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8450pub struct ControllerModelNodeStateMSFT {
8451    pub ty: StructureType,
8452    pub next: *mut c_void,
8453    pub node_pose: Posef,
8454}
8455impl ControllerModelNodeStateMSFT {
8456    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_NODE_STATE_MSFT;
8457    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8458    #[inline]
8459    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8460        let mut x = MaybeUninit::<Self>::uninit();
8461        unsafe {
8462            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8463                ty: Self::TYPE,
8464                next,
8465            });
8466        }
8467        x
8468    }
8469}
8470#[repr(C)]
8471#[derive(Copy, Clone, Debug)]
8472#[doc = "See [XrControllerModelStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8473pub struct ControllerModelStateMSFT {
8474    pub ty: StructureType,
8475    pub next: *mut c_void,
8476    pub node_capacity_input: u32,
8477    pub node_count_output: u32,
8478    pub node_states: *mut ControllerModelNodeStateMSFT,
8479}
8480impl ControllerModelStateMSFT {
8481    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_STATE_MSFT;
8482    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8483    #[inline]
8484    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8485        let mut x = MaybeUninit::<Self>::uninit();
8486        unsafe {
8487            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8488                ty: Self::TYPE,
8489                next,
8490            });
8491        }
8492        x
8493    }
8494}
8495#[repr(C)]
8496#[derive(Copy, Clone, Debug)]
8497#[doc = "See [XrSystemColorSpacePropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemColorSpacePropertiesFB) - defined by [XR_FB_color_space](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_color_space)"]
8498pub struct SystemColorSpacePropertiesFB {
8499    pub ty: StructureType,
8500    pub next: *mut c_void,
8501    pub color_space: ColorSpaceFB,
8502}
8503impl SystemColorSpacePropertiesFB {
8504    pub const TYPE: StructureType = StructureType::SYSTEM_COLOR_SPACE_PROPERTIES_FB;
8505    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8506    #[inline]
8507    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8508        let mut x = MaybeUninit::<Self>::uninit();
8509        unsafe {
8510            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8511                ty: Self::TYPE,
8512                next,
8513            });
8514        }
8515        x
8516    }
8517}
8518#[repr(C)]
8519#[derive(Copy, Clone, Debug)]
8520#[doc = "See [XrSystemSpatialEntityPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemSpatialEntityPropertiesFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8521pub struct SystemSpatialEntityPropertiesFB {
8522    pub ty: StructureType,
8523    pub next: *const c_void,
8524    pub supports_spatial_entity: Bool32,
8525}
8526impl SystemSpatialEntityPropertiesFB {
8527    pub const TYPE: StructureType = StructureType::SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB;
8528}
8529#[repr(C)]
8530#[derive(Copy, Clone, Debug)]
8531#[doc = "See [XrSpatialAnchorCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8532pub struct SpatialAnchorCreateInfoFB {
8533    pub ty: StructureType,
8534    pub next: *const c_void,
8535    pub space: Space,
8536    pub pose_in_space: Posef,
8537    pub time: Time,
8538}
8539impl SpatialAnchorCreateInfoFB {
8540    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_FB;
8541}
8542#[repr(C)]
8543#[derive(Copy, Clone, Debug)]
8544#[doc = "See [XrSpaceComponentStatusSetInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentStatusSetInfoFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8545pub struct SpaceComponentStatusSetInfoFB {
8546    pub ty: StructureType,
8547    pub next: *const c_void,
8548    pub component_type: SpaceComponentTypeFB,
8549    pub enabled: Bool32,
8550    pub timeout: Duration,
8551}
8552impl SpaceComponentStatusSetInfoFB {
8553    pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_STATUS_SET_INFO_FB;
8554}
8555#[repr(C)]
8556#[derive(Copy, Clone, Debug)]
8557#[doc = "See [XrSpaceComponentStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentStatusFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8558pub struct SpaceComponentStatusFB {
8559    pub ty: StructureType,
8560    pub next: *mut c_void,
8561    pub enabled: Bool32,
8562    pub change_pending: Bool32,
8563}
8564impl SpaceComponentStatusFB {
8565    pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_STATUS_FB;
8566    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8567    #[inline]
8568    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8569        let mut x = MaybeUninit::<Self>::uninit();
8570        unsafe {
8571            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8572                ty: Self::TYPE,
8573                next,
8574            });
8575        }
8576        x
8577    }
8578}
8579#[repr(C)]
8580#[derive(Copy, Clone, Debug)]
8581#[doc = "See [XrEventDataSpatialAnchorCreateCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpatialAnchorCreateCompleteFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8582pub struct EventDataSpatialAnchorCreateCompleteFB {
8583    pub ty: StructureType,
8584    pub next: *const c_void,
8585    pub request_id: AsyncRequestIdFB,
8586    pub result: Result,
8587    pub space: Space,
8588    pub uuid: UuidEXT,
8589}
8590impl EventDataSpatialAnchorCreateCompleteFB {
8591    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB;
8592}
8593#[repr(C)]
8594#[derive(Copy, Clone, Debug)]
8595#[doc = "See [XrEventDataSpaceSetStatusCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceSetStatusCompleteFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8596pub struct EventDataSpaceSetStatusCompleteFB {
8597    pub ty: StructureType,
8598    pub next: *const c_void,
8599    pub request_id: AsyncRequestIdFB,
8600    pub result: Result,
8601    pub space: Space,
8602    pub uuid: UuidEXT,
8603    pub component_type: SpaceComponentTypeFB,
8604    pub enabled: Bool32,
8605}
8606impl EventDataSpaceSetStatusCompleteFB {
8607    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB;
8608}
8609#[repr(C)]
8610#[derive(Copy, Clone, Debug)]
8611#[doc = "See [XrFoveationProfileCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationProfileCreateInfoFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
8612pub struct FoveationProfileCreateInfoFB {
8613    pub ty: StructureType,
8614    pub next: *mut c_void,
8615}
8616impl FoveationProfileCreateInfoFB {
8617    pub const TYPE: StructureType = StructureType::FOVEATION_PROFILE_CREATE_INFO_FB;
8618    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8619    #[inline]
8620    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8621        let mut x = MaybeUninit::<Self>::uninit();
8622        unsafe {
8623            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8624                ty: Self::TYPE,
8625                next,
8626            });
8627        }
8628        x
8629    }
8630}
8631#[repr(C)]
8632#[derive(Copy, Clone, Debug)]
8633#[doc = "See [XrSwapchainCreateInfoFoveationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateInfoFoveationFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
8634pub struct SwapchainCreateInfoFoveationFB {
8635    pub ty: StructureType,
8636    pub next: *mut c_void,
8637    pub flags: SwapchainCreateFoveationFlagsFB,
8638}
8639impl SwapchainCreateInfoFoveationFB {
8640    pub const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_FOVEATION_FB;
8641    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8642    #[inline]
8643    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8644        let mut x = MaybeUninit::<Self>::uninit();
8645        unsafe {
8646            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8647                ty: Self::TYPE,
8648                next,
8649            });
8650        }
8651        x
8652    }
8653}
8654#[repr(C)]
8655#[derive(Copy, Clone, Debug)]
8656#[doc = "See [XrSwapchainStateFoveationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateFoveationFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
8657pub struct SwapchainStateFoveationFB {
8658    pub ty: StructureType,
8659    pub next: *mut c_void,
8660    pub flags: SwapchainStateFoveationFlagsFB,
8661    pub profile: FoveationProfileFB,
8662}
8663impl SwapchainStateFoveationFB {
8664    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_FOVEATION_FB;
8665    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8666    #[inline]
8667    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8668        let mut x = MaybeUninit::<Self>::uninit();
8669        unsafe {
8670            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8671                ty: Self::TYPE,
8672                next,
8673            });
8674        }
8675        x
8676    }
8677}
8678#[repr(C)]
8679#[derive(Copy, Clone, Debug)]
8680#[doc = "See [XrSwapchainImageFoveationVulkanFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageFoveationVulkanFB) - defined by [XR_FB_foveation_vulkan](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation_vulkan)"]
8681pub struct SwapchainImageFoveationVulkanFB {
8682    pub ty: StructureType,
8683    pub next: *mut c_void,
8684    pub image: VkImage,
8685    pub width: u32,
8686    pub height: u32,
8687}
8688impl SwapchainImageFoveationVulkanFB {
8689    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB;
8690    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8691    #[inline]
8692    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8693        let mut x = MaybeUninit::<Self>::uninit();
8694        unsafe {
8695            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8696                ty: Self::TYPE,
8697                next,
8698            });
8699        }
8700        x
8701    }
8702}
8703#[repr(C)]
8704#[derive(Copy, Clone, Debug)]
8705#[doc = "See [XrFoveationLevelProfileCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelProfileCreateInfoFB) - defined by [XR_FB_foveation_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation_configuration)"]
8706pub struct FoveationLevelProfileCreateInfoFB {
8707    pub ty: StructureType,
8708    pub next: *mut c_void,
8709    pub level: FoveationLevelFB,
8710    pub vertical_offset: f32,
8711    pub dynamic: FoveationDynamicFB,
8712}
8713impl FoveationLevelProfileCreateInfoFB {
8714    pub const TYPE: StructureType = StructureType::FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB;
8715    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8716    #[inline]
8717    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8718        let mut x = MaybeUninit::<Self>::uninit();
8719        unsafe {
8720            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8721                ty: Self::TYPE,
8722                next,
8723            });
8724        }
8725        x
8726    }
8727}
8728#[repr(C)]
8729#[derive(Copy, Clone, Debug)]
8730#[doc = "See [XrFoveationEyeTrackedProfileCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedProfileCreateInfoMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
8731pub struct FoveationEyeTrackedProfileCreateInfoMETA {
8732    pub ty: StructureType,
8733    pub next: *const c_void,
8734    pub flags: FoveationEyeTrackedProfileCreateFlagsMETA,
8735}
8736impl FoveationEyeTrackedProfileCreateInfoMETA {
8737    pub const TYPE: StructureType = StructureType::FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META;
8738}
8739#[repr(C)]
8740#[derive(Copy, Clone, Debug)]
8741#[doc = "See [XrFoveationEyeTrackedStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedStateMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
8742pub struct FoveationEyeTrackedStateMETA {
8743    pub ty: StructureType,
8744    pub next: *mut c_void,
8745    pub foveation_center: [Vector2f; FOVEATION_CENTER_SIZE_META],
8746    pub flags: FoveationEyeTrackedStateFlagsMETA,
8747}
8748impl FoveationEyeTrackedStateMETA {
8749    pub const TYPE: StructureType = StructureType::FOVEATION_EYE_TRACKED_STATE_META;
8750    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8751    #[inline]
8752    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8753        let mut x = MaybeUninit::<Self>::uninit();
8754        unsafe {
8755            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8756                ty: Self::TYPE,
8757                next,
8758            });
8759        }
8760        x
8761    }
8762}
8763#[repr(C)]
8764#[derive(Copy, Clone, Debug)]
8765#[doc = "See [XrSystemFoveationEyeTrackedPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFoveationEyeTrackedPropertiesMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
8766pub struct SystemFoveationEyeTrackedPropertiesMETA {
8767    pub ty: StructureType,
8768    pub next: *mut c_void,
8769    pub supports_foveation_eye_tracked: Bool32,
8770}
8771impl SystemFoveationEyeTrackedPropertiesMETA {
8772    pub const TYPE: StructureType = StructureType::SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META;
8773    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8774    #[inline]
8775    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8776        let mut x = MaybeUninit::<Self>::uninit();
8777        unsafe {
8778            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8779                ty: Self::TYPE,
8780                next,
8781            });
8782        }
8783        x
8784    }
8785}
8786#[repr(C)]
8787#[derive(Copy, Clone, Debug, Default, PartialEq)]
8788#[doc = "See [XrVector4sFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector4sFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
8789pub struct Vector4sFB {
8790    pub x: i16,
8791    pub y: i16,
8792    pub z: i16,
8793    pub w: i16,
8794}
8795#[repr(C)]
8796#[derive(Copy, Clone, Debug)]
8797#[doc = "See [XrHandTrackingMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingMeshFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
8798pub struct HandTrackingMeshFB {
8799    pub ty: StructureType,
8800    pub next: *mut c_void,
8801    pub joint_capacity_input: u32,
8802    pub joint_count_output: u32,
8803    pub joint_bind_poses: *mut Posef,
8804    pub joint_radii: *mut f32,
8805    pub joint_parents: *mut HandJointEXT,
8806    pub vertex_capacity_input: u32,
8807    pub vertex_count_output: u32,
8808    pub vertex_positions: *mut Vector3f,
8809    pub vertex_normals: *mut Vector3f,
8810    pub vertex_u_vs: *mut Vector2f,
8811    pub vertex_blend_indices: *mut Vector4sFB,
8812    pub vertex_blend_weights: *mut Vector4f,
8813    pub index_capacity_input: u32,
8814    pub index_count_output: u32,
8815    pub indices: *mut i16,
8816}
8817impl HandTrackingMeshFB {
8818    pub const TYPE: StructureType = StructureType::HAND_TRACKING_MESH_FB;
8819    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8820    #[inline]
8821    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8822        let mut x = MaybeUninit::<Self>::uninit();
8823        unsafe {
8824            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8825                ty: Self::TYPE,
8826                next,
8827            });
8828        }
8829        x
8830    }
8831}
8832#[repr(C)]
8833#[derive(Copy, Clone, Debug)]
8834#[doc = "See [XrHandTrackingScaleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingScaleFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
8835pub struct HandTrackingScaleFB {
8836    pub ty: StructureType,
8837    pub next: *mut c_void,
8838    pub sensor_output: f32,
8839    pub current_output: f32,
8840    pub override_hand_scale: Bool32,
8841    pub override_value_input: f32,
8842}
8843impl HandTrackingScaleFB {
8844    pub const TYPE: StructureType = StructureType::HAND_TRACKING_SCALE_FB;
8845    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8846    #[inline]
8847    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8848        let mut x = MaybeUninit::<Self>::uninit();
8849        unsafe {
8850            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8851                ty: Self::TYPE,
8852                next,
8853            });
8854        }
8855        x
8856    }
8857}
8858#[repr(C)]
8859#[derive(Copy, Clone, Debug)]
8860#[doc = "See [XrHandTrackingAimStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingAimStateFB) - defined by [XR_FB_hand_tracking_aim](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_aim)"]
8861pub struct HandTrackingAimStateFB {
8862    pub ty: StructureType,
8863    pub next: *mut c_void,
8864    pub status: HandTrackingAimFlagsFB,
8865    pub aim_pose: Posef,
8866    pub pinch_strength_index: f32,
8867    pub pinch_strength_middle: f32,
8868    pub pinch_strength_ring: f32,
8869    pub pinch_strength_little: f32,
8870}
8871impl HandTrackingAimStateFB {
8872    pub const TYPE: StructureType = StructureType::HAND_TRACKING_AIM_STATE_FB;
8873    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8874    #[inline]
8875    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8876        let mut x = MaybeUninit::<Self>::uninit();
8877        unsafe {
8878            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8879                ty: Self::TYPE,
8880                next,
8881            });
8882        }
8883        x
8884    }
8885}
8886#[repr(C)]
8887#[derive(Copy, Clone, Debug)]
8888#[doc = "See [XrHandCapsuleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandCapsuleFB) - defined by [XR_FB_hand_tracking_capsules](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_capsules)"]
8889pub struct HandCapsuleFB {
8890    pub points: [Vector3f; HAND_TRACKING_CAPSULE_POINT_COUNT_FB],
8891    pub radius: f32,
8892    pub joint: HandJointEXT,
8893}
8894#[repr(C)]
8895#[derive(Copy, Clone, Debug)]
8896#[doc = "See [XrHandTrackingCapsulesStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingCapsulesStateFB) - defined by [XR_FB_hand_tracking_capsules](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_capsules)"]
8897pub struct HandTrackingCapsulesStateFB {
8898    pub ty: StructureType,
8899    pub next: *mut c_void,
8900    pub capsules: [HandCapsuleFB; HAND_TRACKING_CAPSULE_COUNT_FB],
8901}
8902impl HandTrackingCapsulesStateFB {
8903    pub const TYPE: StructureType = StructureType::HAND_TRACKING_CAPSULES_STATE_FB;
8904    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8905    #[inline]
8906    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8907        let mut x = MaybeUninit::<Self>::uninit();
8908        unsafe {
8909            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8910                ty: Self::TYPE,
8911                next,
8912            });
8913        }
8914        x
8915    }
8916}
8917#[repr(C)]
8918#[derive(Copy, Clone, Debug)]
8919#[doc = "See [XrRenderModelPathInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelPathInfoFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8920pub struct RenderModelPathInfoFB {
8921    pub ty: StructureType,
8922    pub next: *mut c_void,
8923    pub path: Path,
8924}
8925impl RenderModelPathInfoFB {
8926    pub const TYPE: StructureType = StructureType::RENDER_MODEL_PATH_INFO_FB;
8927    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8928    #[inline]
8929    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8930        let mut x = MaybeUninit::<Self>::uninit();
8931        unsafe {
8932            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8933                ty: Self::TYPE,
8934                next,
8935            });
8936        }
8937        x
8938    }
8939}
8940#[repr(C)]
8941#[derive(Copy, Clone, Debug)]
8942#[doc = "See [XrRenderModelPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelPropertiesFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8943pub struct RenderModelPropertiesFB {
8944    pub ty: StructureType,
8945    pub next: *mut c_void,
8946    pub vendor_id: u32,
8947    pub model_name: [c_char; MAX_RENDER_MODEL_NAME_SIZE_FB],
8948    pub model_key: RenderModelKeyFB,
8949    pub model_version: u32,
8950    pub flags: RenderModelFlagsFB,
8951}
8952impl RenderModelPropertiesFB {
8953    pub const TYPE: StructureType = StructureType::RENDER_MODEL_PROPERTIES_FB;
8954    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8955    #[inline]
8956    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8957        let mut x = MaybeUninit::<Self>::uninit();
8958        unsafe {
8959            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8960                ty: Self::TYPE,
8961                next,
8962            });
8963        }
8964        x
8965    }
8966}
8967#[repr(C)]
8968#[derive(Copy, Clone, Debug)]
8969#[doc = "See [XrRenderModelCapabilitiesRequestFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelCapabilitiesRequestFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8970pub struct RenderModelCapabilitiesRequestFB {
8971    pub ty: StructureType,
8972    pub next: *mut c_void,
8973    pub flags: RenderModelFlagsFB,
8974}
8975impl RenderModelCapabilitiesRequestFB {
8976    pub const TYPE: StructureType = StructureType::RENDER_MODEL_CAPABILITIES_REQUEST_FB;
8977    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8978    #[inline]
8979    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8980        let mut x = MaybeUninit::<Self>::uninit();
8981        unsafe {
8982            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8983                ty: Self::TYPE,
8984                next,
8985            });
8986        }
8987        x
8988    }
8989}
8990#[repr(C)]
8991#[derive(Copy, Clone, Debug)]
8992#[doc = "See [XrRenderModelBufferFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelBufferFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8993pub struct RenderModelBufferFB {
8994    pub ty: StructureType,
8995    pub next: *mut c_void,
8996    pub buffer_capacity_input: u32,
8997    pub buffer_count_output: u32,
8998    pub buffer: *mut u8,
8999}
9000impl RenderModelBufferFB {
9001    pub const TYPE: StructureType = StructureType::RENDER_MODEL_BUFFER_FB;
9002    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9003    #[inline]
9004    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9005        let mut x = MaybeUninit::<Self>::uninit();
9006        unsafe {
9007            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9008                ty: Self::TYPE,
9009                next,
9010            });
9011        }
9012        x
9013    }
9014}
9015#[repr(C)]
9016#[derive(Copy, Clone, Debug)]
9017#[doc = "See [XrRenderModelLoadInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelLoadInfoFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
9018pub struct RenderModelLoadInfoFB {
9019    pub ty: StructureType,
9020    pub next: *mut c_void,
9021    pub model_key: RenderModelKeyFB,
9022}
9023impl RenderModelLoadInfoFB {
9024    pub const TYPE: StructureType = StructureType::RENDER_MODEL_LOAD_INFO_FB;
9025    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9026    #[inline]
9027    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9028        let mut x = MaybeUninit::<Self>::uninit();
9029        unsafe {
9030            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9031                ty: Self::TYPE,
9032                next,
9033            });
9034        }
9035        x
9036    }
9037}
9038#[repr(C)]
9039#[derive(Copy, Clone, Debug)]
9040#[doc = "See [XrSystemRenderModelPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemRenderModelPropertiesFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
9041pub struct SystemRenderModelPropertiesFB {
9042    pub ty: StructureType,
9043    pub next: *mut c_void,
9044    pub supports_render_model_loading: Bool32,
9045}
9046impl SystemRenderModelPropertiesFB {
9047    pub const TYPE: StructureType = StructureType::SYSTEM_RENDER_MODEL_PROPERTIES_FB;
9048    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9049    #[inline]
9050    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9051        let mut x = MaybeUninit::<Self>::uninit();
9052        unsafe {
9053            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9054                ty: Self::TYPE,
9055                next,
9056            });
9057        }
9058        x
9059    }
9060}
9061#[repr(C)]
9062#[derive(Copy, Clone, Debug)]
9063#[doc = "See [XrSpaceQueryInfoBaseHeaderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryInfoBaseHeaderFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9064pub struct SpaceQueryInfoBaseHeaderFB {
9065    pub ty: StructureType,
9066    pub next: *const c_void,
9067}
9068#[repr(C)]
9069#[derive(Copy, Clone, Debug)]
9070#[doc = "See [XrSpaceFilterInfoBaseHeaderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceFilterInfoBaseHeaderFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9071pub struct SpaceFilterInfoBaseHeaderFB {
9072    pub ty: StructureType,
9073    pub next: *const c_void,
9074}
9075#[repr(C)]
9076#[derive(Copy, Clone, Debug)]
9077#[doc = "See [XrSpaceQueryInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9078pub struct SpaceQueryInfoFB {
9079    pub ty: StructureType,
9080    pub next: *const c_void,
9081    pub query_action: SpaceQueryActionFB,
9082    pub max_result_count: u32,
9083    pub timeout: Duration,
9084    pub filter: *const SpaceFilterInfoBaseHeaderFB,
9085    pub exclude_filter: *const SpaceFilterInfoBaseHeaderFB,
9086}
9087impl SpaceQueryInfoFB {
9088    pub const TYPE: StructureType = StructureType::SPACE_QUERY_INFO_FB;
9089}
9090#[repr(C)]
9091#[derive(Copy, Clone, Debug)]
9092#[doc = "See [XrSpaceStorageLocationFilterInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceStorageLocationFilterInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9093pub struct SpaceStorageLocationFilterInfoFB {
9094    pub ty: StructureType,
9095    pub next: *const c_void,
9096    pub location: SpaceStorageLocationFB,
9097}
9098impl SpaceStorageLocationFilterInfoFB {
9099    pub const TYPE: StructureType = StructureType::SPACE_STORAGE_LOCATION_FILTER_INFO_FB;
9100}
9101#[repr(C)]
9102#[derive(Copy, Clone, Debug)]
9103#[doc = "See [XrSpaceUuidFilterInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUuidFilterInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9104pub struct SpaceUuidFilterInfoFB {
9105    pub ty: StructureType,
9106    pub next: *const c_void,
9107    pub uuid_count: u32,
9108    pub uuids: *mut UuidEXT,
9109}
9110impl SpaceUuidFilterInfoFB {
9111    pub const TYPE: StructureType = StructureType::SPACE_UUID_FILTER_INFO_FB;
9112}
9113#[repr(C)]
9114#[derive(Copy, Clone, Debug)]
9115#[doc = "See [XrSpaceComponentFilterInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentFilterInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9116pub struct SpaceComponentFilterInfoFB {
9117    pub ty: StructureType,
9118    pub next: *const c_void,
9119    pub component_type: SpaceComponentTypeFB,
9120}
9121impl SpaceComponentFilterInfoFB {
9122    pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_FILTER_INFO_FB;
9123}
9124#[repr(C)]
9125#[derive(Copy, Clone, Debug)]
9126#[doc = "See [XrSpaceQueryResultFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryResultFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9127pub struct SpaceQueryResultFB {
9128    pub space: Space,
9129    pub uuid: UuidEXT,
9130}
9131#[repr(C)]
9132#[derive(Copy, Clone, Debug)]
9133#[doc = "See [XrSpaceQueryResultsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryResultsFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9134pub struct SpaceQueryResultsFB {
9135    pub ty: StructureType,
9136    pub next: *mut c_void,
9137    pub result_capacity_input: u32,
9138    pub result_count_output: u32,
9139    pub results: *mut SpaceQueryResultFB,
9140}
9141impl SpaceQueryResultsFB {
9142    pub const TYPE: StructureType = StructureType::SPACE_QUERY_RESULTS_FB;
9143    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9144    #[inline]
9145    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9146        let mut x = MaybeUninit::<Self>::uninit();
9147        unsafe {
9148            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9149                ty: Self::TYPE,
9150                next,
9151            });
9152        }
9153        x
9154    }
9155}
9156#[repr(C)]
9157#[derive(Copy, Clone, Debug)]
9158#[doc = "See [XrEventDataSpaceQueryResultsAvailableFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceQueryResultsAvailableFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9159pub struct EventDataSpaceQueryResultsAvailableFB {
9160    pub ty: StructureType,
9161    pub next: *const c_void,
9162    pub request_id: AsyncRequestIdFB,
9163}
9164impl EventDataSpaceQueryResultsAvailableFB {
9165    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB;
9166}
9167#[repr(C)]
9168#[derive(Copy, Clone, Debug)]
9169#[doc = "See [XrEventDataSpaceQueryCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceQueryCompleteFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9170pub struct EventDataSpaceQueryCompleteFB {
9171    pub ty: StructureType,
9172    pub next: *const c_void,
9173    pub request_id: AsyncRequestIdFB,
9174    pub result: Result,
9175}
9176impl EventDataSpaceQueryCompleteFB {
9177    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_QUERY_COMPLETE_FB;
9178}
9179#[repr(C)]
9180#[derive(Copy, Clone, Debug)]
9181#[doc = "See [XrSpaceSaveInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceSaveInfoFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9182pub struct SpaceSaveInfoFB {
9183    pub ty: StructureType,
9184    pub next: *const c_void,
9185    pub space: Space,
9186    pub location: SpaceStorageLocationFB,
9187    pub persistence_mode: SpacePersistenceModeFB,
9188}
9189impl SpaceSaveInfoFB {
9190    pub const TYPE: StructureType = StructureType::SPACE_SAVE_INFO_FB;
9191}
9192#[repr(C)]
9193#[derive(Copy, Clone, Debug)]
9194#[doc = "See [XrSpaceEraseInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceEraseInfoFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9195pub struct SpaceEraseInfoFB {
9196    pub ty: StructureType,
9197    pub next: *const c_void,
9198    pub space: Space,
9199    pub location: SpaceStorageLocationFB,
9200}
9201impl SpaceEraseInfoFB {
9202    pub const TYPE: StructureType = StructureType::SPACE_ERASE_INFO_FB;
9203}
9204#[repr(C)]
9205#[derive(Copy, Clone, Debug)]
9206#[doc = "See [XrEventDataSpaceSaveCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceSaveCompleteFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9207pub struct EventDataSpaceSaveCompleteFB {
9208    pub ty: StructureType,
9209    pub next: *const c_void,
9210    pub request_id: AsyncRequestIdFB,
9211    pub result: Result,
9212    pub space: Space,
9213    pub uuid: UuidEXT,
9214    pub location: SpaceStorageLocationFB,
9215}
9216impl EventDataSpaceSaveCompleteFB {
9217    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SAVE_COMPLETE_FB;
9218}
9219#[repr(C)]
9220#[derive(Copy, Clone, Debug)]
9221#[doc = "See [XrEventDataSpaceEraseCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceEraseCompleteFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9222pub struct EventDataSpaceEraseCompleteFB {
9223    pub ty: StructureType,
9224    pub next: *const c_void,
9225    pub request_id: AsyncRequestIdFB,
9226    pub result: Result,
9227    pub space: Space,
9228    pub uuid: UuidEXT,
9229    pub location: SpaceStorageLocationFB,
9230}
9231impl EventDataSpaceEraseCompleteFB {
9232    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_ERASE_COMPLETE_FB;
9233}
9234#[repr(C)]
9235#[derive(Copy, Clone, Debug)]
9236#[doc = "See [XrSpaceShareInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceShareInfoFB) - defined by [XR_FB_spatial_entity_sharing](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_sharing)"]
9237pub struct SpaceShareInfoFB {
9238    pub ty: StructureType,
9239    pub next: *const c_void,
9240    pub space_count: u32,
9241    pub spaces: *mut Space,
9242    pub user_count: u32,
9243    pub users: *mut SpaceUserFB,
9244}
9245impl SpaceShareInfoFB {
9246    pub const TYPE: StructureType = StructureType::SPACE_SHARE_INFO_FB;
9247}
9248#[repr(C)]
9249#[derive(Copy, Clone, Debug)]
9250#[doc = "See [XrEventDataSpaceShareCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceShareCompleteFB) - defined by [XR_FB_spatial_entity_sharing](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_sharing)"]
9251pub struct EventDataSpaceShareCompleteFB {
9252    pub ty: StructureType,
9253    pub next: *const c_void,
9254    pub request_id: AsyncRequestIdFB,
9255    pub result: Result,
9256}
9257impl EventDataSpaceShareCompleteFB {
9258    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SHARE_COMPLETE_FB;
9259}
9260#[repr(C)]
9261#[derive(Copy, Clone, Debug)]
9262#[doc = "See [XrSpaceListSaveInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceListSaveInfoFB) - defined by [XR_FB_spatial_entity_storage_batch](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage_batch)"]
9263pub struct SpaceListSaveInfoFB {
9264    pub ty: StructureType,
9265    pub next: *const c_void,
9266    pub space_count: u32,
9267    pub spaces: *mut Space,
9268    pub location: SpaceStorageLocationFB,
9269}
9270impl SpaceListSaveInfoFB {
9271    pub const TYPE: StructureType = StructureType::SPACE_LIST_SAVE_INFO_FB;
9272}
9273#[repr(C)]
9274#[derive(Copy, Clone, Debug)]
9275#[doc = "See [XrEventDataSpaceListSaveCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceListSaveCompleteFB) - defined by [XR_FB_spatial_entity_storage_batch](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage_batch)"]
9276pub struct EventDataSpaceListSaveCompleteFB {
9277    pub ty: StructureType,
9278    pub next: *const c_void,
9279    pub request_id: AsyncRequestIdFB,
9280    pub result: Result,
9281}
9282impl EventDataSpaceListSaveCompleteFB {
9283    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB;
9284}
9285#[repr(C)]
9286#[derive(Copy, Clone, Debug)]
9287#[doc = "See [XrSpaceContainerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceContainerFB) - defined by [XR_FB_spatial_entity_container](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_container)"]
9288pub struct SpaceContainerFB {
9289    pub ty: StructureType,
9290    pub next: *const c_void,
9291    pub uuid_capacity_input: u32,
9292    pub uuid_count_output: u32,
9293    pub uuids: *mut UuidEXT,
9294}
9295impl SpaceContainerFB {
9296    pub const TYPE: StructureType = StructureType::SPACE_CONTAINER_FB;
9297}
9298#[repr(C)]
9299#[derive(Copy, Clone, Debug)]
9300#[doc = "See [XrSpaceTriangleMeshGetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceTriangleMeshGetInfoMETA) - defined by [XR_META_spatial_entity_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_spatial_entity_mesh)"]
9301pub struct SpaceTriangleMeshGetInfoMETA {
9302    pub ty: StructureType,
9303    pub next: *const c_void,
9304}
9305impl SpaceTriangleMeshGetInfoMETA {
9306    pub const TYPE: StructureType = StructureType::SPACE_TRIANGLE_MESH_GET_INFO_META;
9307}
9308#[repr(C)]
9309#[derive(Copy, Clone, Debug)]
9310#[doc = "See [XrSpaceTriangleMeshMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceTriangleMeshMETA) - defined by [XR_META_spatial_entity_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_spatial_entity_mesh)"]
9311pub struct SpaceTriangleMeshMETA {
9312    pub ty: StructureType,
9313    pub next: *mut c_void,
9314    pub vertex_capacity_input: u32,
9315    pub vertex_count_output: u32,
9316    pub vertices: *mut Vector3f,
9317    pub index_capacity_input: u32,
9318    pub index_count_output: u32,
9319    pub indices: *mut u32,
9320}
9321impl SpaceTriangleMeshMETA {
9322    pub const TYPE: StructureType = StructureType::SPACE_TRIANGLE_MESH_META;
9323    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9324    #[inline]
9325    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9326        let mut x = MaybeUninit::<Self>::uninit();
9327        unsafe {
9328            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9329                ty: Self::TYPE,
9330                next,
9331            });
9332        }
9333        x
9334    }
9335}
9336#[repr(C)]
9337#[derive(Copy, Clone, Debug, Default, PartialEq)]
9338#[doc = "See [XrOffset3DfFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset3DfFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9339pub struct Offset3DfFB {
9340    pub x: f32,
9341    pub y: f32,
9342    pub z: f32,
9343}
9344#[repr(C)]
9345#[derive(Copy, Clone, Debug, Default, PartialEq)]
9346#[doc = "See [XrRect3DfFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect3DfFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9347pub struct Rect3DfFB {
9348    pub offset: Offset3DfFB,
9349    pub extent: Extent3DfFB,
9350}
9351#[repr(C)]
9352#[derive(Copy, Clone, Debug)]
9353#[doc = "See [XrSemanticLabelsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9354pub struct SemanticLabelsFB {
9355    pub ty: StructureType,
9356    pub next: *const c_void,
9357    pub buffer_capacity_input: u32,
9358    pub buffer_count_output: u32,
9359    pub buffer: *mut c_char,
9360}
9361impl SemanticLabelsFB {
9362    pub const TYPE: StructureType = StructureType::SEMANTIC_LABELS_FB;
9363}
9364#[repr(C)]
9365#[derive(Copy, Clone, Debug)]
9366#[doc = "See [XrRoomLayoutFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRoomLayoutFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9367pub struct RoomLayoutFB {
9368    pub ty: StructureType,
9369    pub next: *const c_void,
9370    pub floor_uuid: UuidEXT,
9371    pub ceiling_uuid: UuidEXT,
9372    pub wall_uuid_capacity_input: u32,
9373    pub wall_uuid_count_output: u32,
9374    pub wall_uuids: *mut UuidEXT,
9375}
9376impl RoomLayoutFB {
9377    pub const TYPE: StructureType = StructureType::ROOM_LAYOUT_FB;
9378}
9379#[repr(C)]
9380#[derive(Copy, Clone, Debug)]
9381#[doc = "See [XrBoundary2DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoundary2DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9382pub struct Boundary2DFB {
9383    pub ty: StructureType,
9384    pub next: *const c_void,
9385    pub vertex_capacity_input: u32,
9386    pub vertex_count_output: u32,
9387    pub vertices: *mut Vector2f,
9388}
9389impl Boundary2DFB {
9390    pub const TYPE: StructureType = StructureType::BOUNDARY_2D_FB;
9391}
9392#[repr(C)]
9393#[derive(Copy, Clone, Debug)]
9394#[doc = "See [XrSemanticLabelsSupportInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsSupportInfoFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9395pub struct SemanticLabelsSupportInfoFB {
9396    pub ty: StructureType,
9397    pub next: *const c_void,
9398    pub flags: SemanticLabelsSupportFlagsFB,
9399    pub recognized_labels: *const c_char,
9400}
9401impl SemanticLabelsSupportInfoFB {
9402    pub const TYPE: StructureType = StructureType::SEMANTIC_LABELS_SUPPORT_INFO_FB;
9403}
9404#[repr(C)]
9405#[derive(Copy, Clone, Debug)]
9406#[doc = "See [XrSceneCaptureRequestInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneCaptureRequestInfoFB) - defined by [XR_FB_scene_capture](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene_capture)"]
9407pub struct SceneCaptureRequestInfoFB {
9408    pub ty: StructureType,
9409    pub next: *const c_void,
9410    pub request_byte_count: u32,
9411    pub request: *const c_char,
9412}
9413impl SceneCaptureRequestInfoFB {
9414    pub const TYPE: StructureType = StructureType::SCENE_CAPTURE_REQUEST_INFO_FB;
9415}
9416#[repr(C)]
9417#[derive(Copy, Clone, Debug)]
9418#[doc = "See [XrEventDataSceneCaptureCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSceneCaptureCompleteFB) - defined by [XR_FB_scene_capture](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene_capture)"]
9419pub struct EventDataSceneCaptureCompleteFB {
9420    pub ty: StructureType,
9421    pub next: *const c_void,
9422    pub request_id: AsyncRequestIdFB,
9423    pub result: Result,
9424}
9425impl EventDataSceneCaptureCompleteFB {
9426    pub const TYPE: StructureType = StructureType::EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB;
9427}
9428#[repr(C)]
9429#[derive(Copy, Clone, Debug)]
9430#[doc = "See [XrSystemKeyboardTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemKeyboardTrackingPropertiesFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9431pub struct SystemKeyboardTrackingPropertiesFB {
9432    pub ty: StructureType,
9433    pub next: *mut c_void,
9434    pub supports_keyboard_tracking: Bool32,
9435}
9436impl SystemKeyboardTrackingPropertiesFB {
9437    pub const TYPE: StructureType = StructureType::SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB;
9438    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9439    #[inline]
9440    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9441        let mut x = MaybeUninit::<Self>::uninit();
9442        unsafe {
9443            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9444                ty: Self::TYPE,
9445                next,
9446            });
9447        }
9448        x
9449    }
9450}
9451#[repr(C)]
9452#[derive(Copy, Clone, Debug)]
9453#[doc = "See [XrKeyboardTrackingDescriptionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingDescriptionFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9454pub struct KeyboardTrackingDescriptionFB {
9455    pub tracked_keyboard_id: u64,
9456    pub size: Vector3f,
9457    pub flags: KeyboardTrackingFlagsFB,
9458    pub name: [c_char; MAX_KEYBOARD_TRACKING_NAME_SIZE_FB],
9459}
9460#[repr(C)]
9461#[derive(Copy, Clone, Debug)]
9462#[doc = "See [XrKeyboardSpaceCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardSpaceCreateInfoFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9463pub struct KeyboardSpaceCreateInfoFB {
9464    pub ty: StructureType,
9465    pub next: *mut c_void,
9466    pub tracked_keyboard_id: u64,
9467}
9468impl KeyboardSpaceCreateInfoFB {
9469    pub const TYPE: StructureType = StructureType::KEYBOARD_SPACE_CREATE_INFO_FB;
9470    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9471    #[inline]
9472    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9473        let mut x = MaybeUninit::<Self>::uninit();
9474        unsafe {
9475            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9476                ty: Self::TYPE,
9477                next,
9478            });
9479        }
9480        x
9481    }
9482}
9483#[repr(C)]
9484#[derive(Copy, Clone, Debug)]
9485#[doc = "See [XrKeyboardTrackingQueryFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingQueryFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9486pub struct KeyboardTrackingQueryFB {
9487    pub ty: StructureType,
9488    pub next: *mut c_void,
9489    pub flags: KeyboardTrackingQueryFlagsFB,
9490}
9491impl KeyboardTrackingQueryFB {
9492    pub const TYPE: StructureType = StructureType::KEYBOARD_TRACKING_QUERY_FB;
9493    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9494    #[inline]
9495    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9496        let mut x = MaybeUninit::<Self>::uninit();
9497        unsafe {
9498            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9499                ty: Self::TYPE,
9500                next,
9501            });
9502        }
9503        x
9504    }
9505}
9506#[repr(C)]
9507#[derive(Copy, Clone, Debug)]
9508#[doc = "See [XrCompositionLayerDepthTestVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerDepthTestVARJO) - defined by [XR_VARJO_composition_layer_depth_test](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_composition_layer_depth_test)"]
9509pub struct CompositionLayerDepthTestVARJO {
9510    pub ty: StructureType,
9511    pub next: *const c_void,
9512    pub depth_test_range_near_z: f32,
9513    pub depth_test_range_far_z: f32,
9514}
9515impl CompositionLayerDepthTestVARJO {
9516    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_TEST_VARJO;
9517}
9518#[repr(C)]
9519#[derive(Copy, Clone, Debug)]
9520#[doc = "See [XrViewLocateFoveatedRenderingVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewLocateFoveatedRenderingVARJO) - defined by [XR_VARJO_foveated_rendering](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_foveated_rendering)"]
9521pub struct ViewLocateFoveatedRenderingVARJO {
9522    pub ty: StructureType,
9523    pub next: *const c_void,
9524    pub foveated_rendering_active: Bool32,
9525}
9526impl ViewLocateFoveatedRenderingVARJO {
9527    pub const TYPE: StructureType = StructureType::VIEW_LOCATE_FOVEATED_RENDERING_VARJO;
9528}
9529#[repr(C)]
9530#[derive(Copy, Clone, Debug)]
9531#[doc = "See [XrFoveatedViewConfigurationViewVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveatedViewConfigurationViewVARJO) - defined by [XR_VARJO_foveated_rendering](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_foveated_rendering)"]
9532pub struct FoveatedViewConfigurationViewVARJO {
9533    pub ty: StructureType,
9534    pub next: *mut c_void,
9535    pub foveated_rendering_active: Bool32,
9536}
9537impl FoveatedViewConfigurationViewVARJO {
9538    pub const TYPE: StructureType = StructureType::FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO;
9539    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9540    #[inline]
9541    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9542        let mut x = MaybeUninit::<Self>::uninit();
9543        unsafe {
9544            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9545                ty: Self::TYPE,
9546                next,
9547            });
9548        }
9549        x
9550    }
9551}
9552#[repr(C)]
9553#[derive(Copy, Clone, Debug)]
9554#[doc = "See [XrSystemFoveatedRenderingPropertiesVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFoveatedRenderingPropertiesVARJO) - defined by [XR_VARJO_foveated_rendering](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_foveated_rendering)"]
9555pub struct SystemFoveatedRenderingPropertiesVARJO {
9556    pub ty: StructureType,
9557    pub next: *mut c_void,
9558    pub supports_foveated_rendering: Bool32,
9559}
9560impl SystemFoveatedRenderingPropertiesVARJO {
9561    pub const TYPE: StructureType = StructureType::SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO;
9562    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9563    #[inline]
9564    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9565        let mut x = MaybeUninit::<Self>::uninit();
9566        unsafe {
9567            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9568                ty: Self::TYPE,
9569                next,
9570            });
9571        }
9572        x
9573    }
9574}
9575#[repr(C)]
9576#[derive(Copy, Clone, Debug)]
9577#[doc = "See [XrCompositionLayerReprojectionInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerReprojectionInfoMSFT) - defined by [XR_MSFT_composition_layer_reprojection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_composition_layer_reprojection)"]
9578pub struct CompositionLayerReprojectionInfoMSFT {
9579    pub ty: StructureType,
9580    pub next: *const c_void,
9581    pub reprojection_mode: ReprojectionModeMSFT,
9582}
9583impl CompositionLayerReprojectionInfoMSFT {
9584    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_REPROJECTION_INFO_MSFT;
9585}
9586#[repr(C)]
9587#[derive(Copy, Clone, Debug)]
9588#[doc = "See [XrCompositionLayerReprojectionPlaneOverrideMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerReprojectionPlaneOverrideMSFT) - defined by [XR_MSFT_composition_layer_reprojection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_composition_layer_reprojection)"]
9589pub struct CompositionLayerReprojectionPlaneOverrideMSFT {
9590    pub ty: StructureType,
9591    pub next: *const c_void,
9592    pub position: Vector3f,
9593    pub normal: Vector3f,
9594    pub velocity: Vector3f,
9595}
9596impl CompositionLayerReprojectionPlaneOverrideMSFT {
9597    pub const TYPE: StructureType =
9598        StructureType::COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT;
9599}
9600#[repr(C)]
9601#[derive(Copy, Clone, Debug)]
9602#[doc = "See [XrTriangleMeshCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshCreateInfoFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
9603pub struct TriangleMeshCreateInfoFB {
9604    pub ty: StructureType,
9605    pub next: *const c_void,
9606    pub flags: TriangleMeshFlagsFB,
9607    pub winding_order: WindingOrderFB,
9608    pub vertex_count: u32,
9609    pub vertex_buffer: *const Vector3f,
9610    pub triangle_count: u32,
9611    pub index_buffer: *const u32,
9612}
9613impl TriangleMeshCreateInfoFB {
9614    pub const TYPE: StructureType = StructureType::TRIANGLE_MESH_CREATE_INFO_FB;
9615}
9616#[repr(C)]
9617#[derive(Copy, Clone, Debug)]
9618#[doc = "See [XrSystemPassthroughPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPassthroughPropertiesFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9619pub struct SystemPassthroughPropertiesFB {
9620    pub ty: StructureType,
9621    pub next: *const c_void,
9622    pub supports_passthrough: Bool32,
9623}
9624impl SystemPassthroughPropertiesFB {
9625    pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_PROPERTIES_FB;
9626}
9627#[repr(C)]
9628#[derive(Copy, Clone, Debug)]
9629#[doc = "See [XrSystemPassthroughProperties2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPassthroughProperties2FB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9630pub struct SystemPassthroughProperties2FB {
9631    pub ty: StructureType,
9632    pub next: *const c_void,
9633    pub capabilities: PassthroughCapabilityFlagsFB,
9634}
9635impl SystemPassthroughProperties2FB {
9636    pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_PROPERTIES2_FB;
9637}
9638#[repr(C)]
9639#[derive(Copy, Clone, Debug)]
9640#[doc = "See [XrPassthroughCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCreateInfoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9641pub struct PassthroughCreateInfoFB {
9642    pub ty: StructureType,
9643    pub next: *const c_void,
9644    pub flags: PassthroughFlagsFB,
9645}
9646impl PassthroughCreateInfoFB {
9647    pub const TYPE: StructureType = StructureType::PASSTHROUGH_CREATE_INFO_FB;
9648}
9649#[repr(C)]
9650#[derive(Copy, Clone, Debug)]
9651#[doc = "See [XrPassthroughLayerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerCreateInfoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9652pub struct PassthroughLayerCreateInfoFB {
9653    pub ty: StructureType,
9654    pub next: *const c_void,
9655    pub passthrough: PassthroughFB,
9656    pub flags: PassthroughFlagsFB,
9657    pub purpose: PassthroughLayerPurposeFB,
9658}
9659impl PassthroughLayerCreateInfoFB {
9660    pub const TYPE: StructureType = StructureType::PASSTHROUGH_LAYER_CREATE_INFO_FB;
9661}
9662#[repr(C)]
9663#[derive(Copy, Clone, Debug)]
9664#[doc = "See [XrCompositionLayerPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerPassthroughFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9665pub struct CompositionLayerPassthroughFB {
9666    pub ty: StructureType,
9667    pub next: *const c_void,
9668    pub flags: CompositionLayerFlags,
9669    pub space: Space,
9670    pub layer_handle: PassthroughLayerFB,
9671}
9672impl CompositionLayerPassthroughFB {
9673    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PASSTHROUGH_FB;
9674}
9675#[repr(C)]
9676#[derive(Copy, Clone, Debug)]
9677#[doc = "See [XrGeometryInstanceCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceCreateInfoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9678pub struct GeometryInstanceCreateInfoFB {
9679    pub ty: StructureType,
9680    pub next: *const c_void,
9681    pub layer: PassthroughLayerFB,
9682    pub mesh: TriangleMeshFB,
9683    pub base_space: Space,
9684    pub pose: Posef,
9685    pub scale: Vector3f,
9686}
9687impl GeometryInstanceCreateInfoFB {
9688    pub const TYPE: StructureType = StructureType::GEOMETRY_INSTANCE_CREATE_INFO_FB;
9689}
9690#[repr(C)]
9691#[derive(Copy, Clone, Debug)]
9692#[doc = "See [XrGeometryInstanceTransformFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceTransformFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9693pub struct GeometryInstanceTransformFB {
9694    pub ty: StructureType,
9695    pub next: *const c_void,
9696    pub base_space: Space,
9697    pub time: Time,
9698    pub pose: Posef,
9699    pub scale: Vector3f,
9700}
9701impl GeometryInstanceTransformFB {
9702    pub const TYPE: StructureType = StructureType::GEOMETRY_INSTANCE_TRANSFORM_FB;
9703}
9704#[repr(C)]
9705#[derive(Copy, Clone, Debug)]
9706#[doc = "See [XrPassthroughStyleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughStyleFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9707pub struct PassthroughStyleFB {
9708    pub ty: StructureType,
9709    pub next: *const c_void,
9710    pub texture_opacity_factor: f32,
9711    pub edge_color: Color4f,
9712}
9713impl PassthroughStyleFB {
9714    pub const TYPE: StructureType = StructureType::PASSTHROUGH_STYLE_FB;
9715}
9716#[repr(C)]
9717#[derive(Copy, Clone, Debug)]
9718#[doc = "See [XrPassthroughColorMapMonoToRgbaFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapMonoToRgbaFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9719pub struct PassthroughColorMapMonoToRgbaFB {
9720    pub ty: StructureType,
9721    pub next: *const c_void,
9722    pub texture_color_map: [Color4f; PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB],
9723}
9724impl PassthroughColorMapMonoToRgbaFB {
9725    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB;
9726}
9727#[repr(C)]
9728#[derive(Copy, Clone, Debug)]
9729#[doc = "See [XrPassthroughColorMapMonoToMonoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapMonoToMonoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9730pub struct PassthroughColorMapMonoToMonoFB {
9731    pub ty: StructureType,
9732    pub next: *const c_void,
9733    pub texture_color_map: [u8; PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB],
9734}
9735impl PassthroughColorMapMonoToMonoFB {
9736    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB;
9737}
9738#[repr(C)]
9739#[derive(Copy, Clone, Debug)]
9740#[doc = "See [XrPassthroughBrightnessContrastSaturationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughBrightnessContrastSaturationFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9741pub struct PassthroughBrightnessContrastSaturationFB {
9742    pub ty: StructureType,
9743    pub next: *const c_void,
9744    pub brightness: f32,
9745    pub contrast: f32,
9746    pub saturation: f32,
9747}
9748impl PassthroughBrightnessContrastSaturationFB {
9749    pub const TYPE: StructureType = StructureType::PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB;
9750}
9751#[repr(C)]
9752#[derive(Copy, Clone, Debug)]
9753#[doc = "See [XrEventDataPassthroughStateChangedFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataPassthroughStateChangedFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9754pub struct EventDataPassthroughStateChangedFB {
9755    pub ty: StructureType,
9756    pub next: *const c_void,
9757    pub flags: PassthroughStateChangedFlagsFB,
9758}
9759impl EventDataPassthroughStateChangedFB {
9760    pub const TYPE: StructureType = StructureType::EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB;
9761}
9762#[repr(C)]
9763#[derive(Copy, Clone, Debug)]
9764#[doc = "See [XrPassthroughKeyboardHandsIntensityFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughKeyboardHandsIntensityFB) - defined by [XR_FB_passthrough_keyboard_hands](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough_keyboard_hands)"]
9765pub struct PassthroughKeyboardHandsIntensityFB {
9766    pub ty: StructureType,
9767    pub next: *const c_void,
9768    pub left_hand_intensity: f32,
9769    pub right_hand_intensity: f32,
9770}
9771impl PassthroughKeyboardHandsIntensityFB {
9772    pub const TYPE: StructureType = StructureType::PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB;
9773}
9774#[repr(C)]
9775#[derive(Copy, Clone, Debug)]
9776#[doc = "See [XrLocalDimmingFrameEndInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalDimmingFrameEndInfoMETA) - defined by [XR_META_local_dimming](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_local_dimming)"]
9777pub struct LocalDimmingFrameEndInfoMETA {
9778    pub ty: StructureType,
9779    pub next: *const c_void,
9780    pub local_dimming_mode: LocalDimmingModeMETA,
9781}
9782impl LocalDimmingFrameEndInfoMETA {
9783    pub const TYPE: StructureType = StructureType::LOCAL_DIMMING_FRAME_END_INFO_META;
9784}
9785#[repr(C)]
9786#[derive(Copy, Clone, Debug)]
9787#[doc = "See [XrSpatialAnchorPersistenceNameMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorPersistenceNameMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
9788pub struct SpatialAnchorPersistenceNameMSFT {
9789    pub name: [c_char; MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT],
9790}
9791#[repr(C)]
9792#[derive(Copy, Clone, Debug)]
9793#[doc = "See [XrSpatialAnchorPersistenceInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorPersistenceInfoMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
9794pub struct SpatialAnchorPersistenceInfoMSFT {
9795    pub ty: StructureType,
9796    pub next: *const c_void,
9797    pub spatial_anchor_persistence_name: SpatialAnchorPersistenceNameMSFT,
9798    pub spatial_anchor: SpatialAnchorMSFT,
9799}
9800impl SpatialAnchorPersistenceInfoMSFT {
9801    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT;
9802}
9803#[repr(C)]
9804#[derive(Copy, Clone, Debug)]
9805#[doc = "See [XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
9806pub struct SpatialAnchorFromPersistedAnchorCreateInfoMSFT {
9807    pub ty: StructureType,
9808    pub next: *const c_void,
9809    pub spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
9810    pub spatial_anchor_persistence_name: SpatialAnchorPersistenceNameMSFT,
9811}
9812impl SpatialAnchorFromPersistedAnchorCreateInfoMSFT {
9813    pub const TYPE: StructureType =
9814        StructureType::SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT;
9815}
9816#[repr(C)]
9817#[derive(Copy, Clone, Debug)]
9818#[doc = "See [XrFacialTrackerCreateInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackerCreateInfoHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
9819pub struct FacialTrackerCreateInfoHTC {
9820    pub ty: StructureType,
9821    pub next: *const c_void,
9822    pub facial_tracking_type: FacialTrackingTypeHTC,
9823}
9824impl FacialTrackerCreateInfoHTC {
9825    pub const TYPE: StructureType = StructureType::FACIAL_TRACKER_CREATE_INFO_HTC;
9826}
9827#[repr(C)]
9828#[derive(Copy, Clone, Debug)]
9829#[doc = "See [XrSystemFacialTrackingPropertiesHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFacialTrackingPropertiesHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
9830pub struct SystemFacialTrackingPropertiesHTC {
9831    pub ty: StructureType,
9832    pub next: *mut c_void,
9833    pub support_eye_facial_tracking: Bool32,
9834    pub support_lip_facial_tracking: Bool32,
9835}
9836impl SystemFacialTrackingPropertiesHTC {
9837    pub const TYPE: StructureType = StructureType::SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC;
9838    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9839    #[inline]
9840    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9841        let mut x = MaybeUninit::<Self>::uninit();
9842        unsafe {
9843            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9844                ty: Self::TYPE,
9845                next,
9846            });
9847        }
9848        x
9849    }
9850}
9851#[repr(C)]
9852#[derive(Copy, Clone, Debug)]
9853#[doc = "See [XrFacialExpressionsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialExpressionsHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
9854pub struct FacialExpressionsHTC {
9855    pub ty: StructureType,
9856    pub next: *const c_void,
9857    pub is_active: Bool32,
9858    pub sample_time: Time,
9859    pub expression_count: u32,
9860    pub expression_weightings: *mut f32,
9861}
9862impl FacialExpressionsHTC {
9863    pub const TYPE: StructureType = StructureType::FACIAL_EXPRESSIONS_HTC;
9864}
9865#[repr(C)]
9866#[derive(Copy, Clone, Debug)]
9867#[doc = "See [XrPassthroughCreateInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCreateInfoHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9868pub struct PassthroughCreateInfoHTC {
9869    pub ty: StructureType,
9870    pub next: *const c_void,
9871    pub form: PassthroughFormHTC,
9872}
9873impl PassthroughCreateInfoHTC {
9874    pub const TYPE: StructureType = StructureType::PASSTHROUGH_CREATE_INFO_HTC;
9875}
9876#[repr(C)]
9877#[derive(Copy, Clone, Debug)]
9878#[doc = "See [XrPassthroughColorHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9879pub struct PassthroughColorHTC {
9880    pub ty: StructureType,
9881    pub next: *const c_void,
9882    pub alpha: f32,
9883}
9884impl PassthroughColorHTC {
9885    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_HTC;
9886}
9887#[repr(C)]
9888#[derive(Copy, Clone, Debug)]
9889#[doc = "See [XrPassthroughMeshTransformInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughMeshTransformInfoHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9890pub struct PassthroughMeshTransformInfoHTC {
9891    pub ty: StructureType,
9892    pub next: *const c_void,
9893    pub vertex_count: u32,
9894    pub vertices: *const Vector3f,
9895    pub index_count: u32,
9896    pub indices: *const u32,
9897    pub base_space: Space,
9898    pub time: Time,
9899    pub pose: Posef,
9900    pub scale: Vector3f,
9901}
9902impl PassthroughMeshTransformInfoHTC {
9903    pub const TYPE: StructureType = StructureType::PASSTHROUGH_MESH_TRANSFORM_INFO_HTC;
9904}
9905#[repr(C)]
9906#[derive(Copy, Clone, Debug)]
9907#[doc = "See [XrCompositionLayerPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerPassthroughHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9908pub struct CompositionLayerPassthroughHTC {
9909    pub ty: StructureType,
9910    pub next: *const c_void,
9911    pub layer_flags: CompositionLayerFlags,
9912    pub space: Space,
9913    pub passthrough: PassthroughHTC,
9914    pub color: PassthroughColorHTC,
9915}
9916impl CompositionLayerPassthroughHTC {
9917    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PASSTHROUGH_HTC;
9918}
9919#[repr(C)]
9920#[derive(Copy, Clone, Debug)]
9921#[doc = "See [XrSpatialAnchorCreateInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
9922pub struct SpatialAnchorCreateInfoHTC {
9923    pub ty: StructureType,
9924    pub next: *const c_void,
9925    pub space: Space,
9926    pub pose_in_space: Posef,
9927    pub name: SpatialAnchorNameHTC,
9928}
9929impl SpatialAnchorCreateInfoHTC {
9930    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_HTC;
9931}
9932#[repr(C)]
9933#[derive(Copy, Clone, Debug)]
9934#[doc = "See [XrSpatialAnchorNameHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorNameHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
9935pub struct SpatialAnchorNameHTC {
9936    pub name: [c_char; MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC],
9937}
9938#[repr(C)]
9939#[derive(Copy, Clone, Debug)]
9940#[doc = "See [XrSystemAnchorPropertiesHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemAnchorPropertiesHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
9941pub struct SystemAnchorPropertiesHTC {
9942    pub ty: StructureType,
9943    pub next: *mut c_void,
9944    pub supports_anchor: Bool32,
9945}
9946impl SystemAnchorPropertiesHTC {
9947    pub const TYPE: StructureType = StructureType::SYSTEM_ANCHOR_PROPERTIES_HTC;
9948    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9949    #[inline]
9950    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9951        let mut x = MaybeUninit::<Self>::uninit();
9952        unsafe {
9953            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9954                ty: Self::TYPE,
9955                next,
9956            });
9957        }
9958        x
9959    }
9960}
9961#[repr(C)]
9962#[derive(Copy, Clone, Debug)]
9963#[doc = "See [XrViveTrackerPathsHTCX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViveTrackerPathsHTCX) - defined by [XR_HTCX_vive_tracker_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTCX_vive_tracker_interaction)"]
9964pub struct ViveTrackerPathsHTCX {
9965    pub ty: StructureType,
9966    pub next: *mut c_void,
9967    pub persistent_path: Path,
9968    pub role_path: Path,
9969}
9970impl ViveTrackerPathsHTCX {
9971    pub const TYPE: StructureType = StructureType::VIVE_TRACKER_PATHS_HTCX;
9972    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9973    #[inline]
9974    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9975        let mut x = MaybeUninit::<Self>::uninit();
9976        unsafe {
9977            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9978                ty: Self::TYPE,
9979                next,
9980            });
9981        }
9982        x
9983    }
9984}
9985#[repr(C)]
9986#[derive(Copy, Clone, Debug)]
9987#[doc = "See [XrEventDataViveTrackerConnectedHTCX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataViveTrackerConnectedHTCX) - defined by [XR_HTCX_vive_tracker_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTCX_vive_tracker_interaction)"]
9988pub struct EventDataViveTrackerConnectedHTCX {
9989    pub ty: StructureType,
9990    pub next: *const c_void,
9991    pub paths: *mut ViveTrackerPathsHTCX,
9992}
9993impl EventDataViveTrackerConnectedHTCX {
9994    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX;
9995}
9996#[repr(C)]
9997#[derive(Copy, Clone, Debug)]
9998#[doc = "See [XrCompositionLayerSpaceWarpInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSpaceWarpInfoFB) - defined by [XR_FB_space_warp](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_space_warp)"]
9999pub struct CompositionLayerSpaceWarpInfoFB {
10000    pub ty: StructureType,
10001    pub next: *const c_void,
10002    pub layer_flags: CompositionLayerSpaceWarpInfoFlagsFB,
10003    pub motion_vector_sub_image: SwapchainSubImage,
10004    pub app_space_delta_pose: Posef,
10005    pub depth_sub_image: SwapchainSubImage,
10006    pub min_depth: f32,
10007    pub max_depth: f32,
10008    pub near_z: f32,
10009    pub far_z: f32,
10010}
10011impl CompositionLayerSpaceWarpInfoFB {
10012    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SPACE_WARP_INFO_FB;
10013}
10014#[repr(C)]
10015#[derive(Copy, Clone, Debug)]
10016#[doc = "See [XrSystemSpaceWarpPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemSpaceWarpPropertiesFB) - defined by [XR_FB_space_warp](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_space_warp)"]
10017pub struct SystemSpaceWarpPropertiesFB {
10018    pub ty: StructureType,
10019    pub next: *mut c_void,
10020    pub recommended_motion_vector_image_rect_width: u32,
10021    pub recommended_motion_vector_image_rect_height: u32,
10022}
10023impl SystemSpaceWarpPropertiesFB {
10024    pub const TYPE: StructureType = StructureType::SYSTEM_SPACE_WARP_PROPERTIES_FB;
10025    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10026    #[inline]
10027    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10028        let mut x = MaybeUninit::<Self>::uninit();
10029        unsafe {
10030            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10031                ty: Self::TYPE,
10032                next,
10033            });
10034        }
10035        x
10036    }
10037}
10038#[repr(C)]
10039#[derive(Copy, Clone, Debug)]
10040#[doc = "See [XrSystemMarkerTrackingPropertiesVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemMarkerTrackingPropertiesVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
10041pub struct SystemMarkerTrackingPropertiesVARJO {
10042    pub ty: StructureType,
10043    pub next: *mut c_void,
10044    pub supports_marker_tracking: Bool32,
10045}
10046impl SystemMarkerTrackingPropertiesVARJO {
10047    pub const TYPE: StructureType = StructureType::SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO;
10048    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10049    #[inline]
10050    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10051        let mut x = MaybeUninit::<Self>::uninit();
10052        unsafe {
10053            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10054                ty: Self::TYPE,
10055                next,
10056            });
10057        }
10058        x
10059    }
10060}
10061#[repr(C)]
10062#[derive(Copy, Clone, Debug)]
10063#[doc = "See [XrEventDataMarkerTrackingUpdateVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataMarkerTrackingUpdateVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
10064pub struct EventDataMarkerTrackingUpdateVARJO {
10065    pub ty: StructureType,
10066    pub next: *const c_void,
10067    pub marker_id: u64,
10068    pub is_active: Bool32,
10069    pub is_predicted: Bool32,
10070    pub time: Time,
10071}
10072impl EventDataMarkerTrackingUpdateVARJO {
10073    pub const TYPE: StructureType = StructureType::EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO;
10074}
10075#[repr(C)]
10076#[derive(Copy, Clone, Debug)]
10077#[doc = "See [XrMarkerSpaceCreateInfoVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerSpaceCreateInfoVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
10078pub struct MarkerSpaceCreateInfoVARJO {
10079    pub ty: StructureType,
10080    pub next: *const c_void,
10081    pub marker_id: u64,
10082    pub pose_in_marker_space: Posef,
10083}
10084impl MarkerSpaceCreateInfoVARJO {
10085    pub const TYPE: StructureType = StructureType::MARKER_SPACE_CREATE_INFO_VARJO;
10086}
10087#[repr(C)]
10088#[derive(Copy, Clone, Debug)]
10089#[doc = "See [XrGlobalDimmerFrameEndInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGlobalDimmerFrameEndInfoML) - defined by [XR_ML_global_dimmer](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_global_dimmer)"]
10090pub struct GlobalDimmerFrameEndInfoML {
10091    pub ty: StructureType,
10092    pub next: *const c_void,
10093    pub dimmer_value: f32,
10094    pub flags: GlobalDimmerFrameEndInfoFlagsML,
10095}
10096impl GlobalDimmerFrameEndInfoML {
10097    pub const TYPE: StructureType = StructureType::GLOBAL_DIMMER_FRAME_END_INFO_ML;
10098}
10099#[repr(C)]
10100#[derive(Copy, Clone, Debug)]
10101#[doc = "See [XrDigitalLensControlALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDigitalLensControlALMALENCE)"]
10102pub struct DigitalLensControlALMALENCE {
10103    pub ty: StructureType,
10104    pub next: *const c_void,
10105    pub flags: DigitalLensControlFlagsALMALENCE,
10106}
10107impl DigitalLensControlALMALENCE {
10108    pub const TYPE: StructureType = StructureType::DIGITAL_LENS_CONTROL_ALMALENCE;
10109}
10110#[repr(C)]
10111#[derive(Copy, Clone, Debug)]
10112#[doc = "See [XrCompositionLayerSettingsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSettingsFB) - defined by [XR_FB_composition_layer_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_settings)"]
10113pub struct CompositionLayerSettingsFB {
10114    pub ty: StructureType,
10115    pub next: *const c_void,
10116    pub layer_flags: CompositionLayerSettingsFlagsFB,
10117}
10118impl CompositionLayerSettingsFB {
10119    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SETTINGS_FB;
10120}
10121#[repr(C)]
10122#[derive(Copy, Clone, Debug, PartialEq)]
10123#[doc = "See [XrExternalCameraIntrinsicsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraIntrinsicsOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
10124pub struct ExternalCameraIntrinsicsOCULUS {
10125    pub last_change_time: Time,
10126    pub fov: Fovf,
10127    pub virtual_near_plane_distance: f32,
10128    pub virtual_far_plane_distance: f32,
10129    pub image_sensor_pixel_resolution: Extent2Di,
10130}
10131#[repr(C)]
10132#[derive(Copy, Clone, Debug, PartialEq)]
10133#[doc = "See [XrExternalCameraExtrinsicsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraExtrinsicsOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
10134pub struct ExternalCameraExtrinsicsOCULUS {
10135    pub last_change_time: Time,
10136    pub camera_status_flags: ExternalCameraStatusFlagsOCULUS,
10137    pub attached_to_device: ExternalCameraAttachedToDeviceOCULUS,
10138    pub relative_pose: Posef,
10139}
10140#[repr(C)]
10141#[derive(Copy, Clone, Debug)]
10142#[doc = "See [XrExternalCameraOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
10143pub struct ExternalCameraOCULUS {
10144    pub ty: StructureType,
10145    pub next: *const c_void,
10146    pub name: [c_char; MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS],
10147    pub intrinsics: ExternalCameraIntrinsicsOCULUS,
10148    pub extrinsics: ExternalCameraExtrinsicsOCULUS,
10149}
10150impl ExternalCameraOCULUS {
10151    pub const TYPE: StructureType = StructureType::EXTERNAL_CAMERA_OCULUS;
10152}
10153#[repr(C)]
10154#[derive(Copy, Clone, Debug)]
10155#[doc = "See [XrPerformanceMetricsStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsStateMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
10156pub struct PerformanceMetricsStateMETA {
10157    pub ty: StructureType,
10158    pub next: *const c_void,
10159    pub enabled: Bool32,
10160}
10161impl PerformanceMetricsStateMETA {
10162    pub const TYPE: StructureType = StructureType::PERFORMANCE_METRICS_STATE_META;
10163}
10164#[repr(C)]
10165#[derive(Copy, Clone, Debug)]
10166#[doc = "See [XrPerformanceMetricsCounterMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
10167pub struct PerformanceMetricsCounterMETA {
10168    pub ty: StructureType,
10169    pub next: *const c_void,
10170    pub counter_flags: PerformanceMetricsCounterFlagsMETA,
10171    pub counter_unit: PerformanceMetricsCounterUnitMETA,
10172    pub uint_value: u32,
10173    pub float_value: f32,
10174}
10175impl PerformanceMetricsCounterMETA {
10176    pub const TYPE: StructureType = StructureType::PERFORMANCE_METRICS_COUNTER_META;
10177}
10178#[repr(C)]
10179#[derive(Copy, Clone, Debug)]
10180#[doc = "See [XrPassthroughPreferencesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughPreferencesMETA) - defined by [XR_META_passthrough_preferences](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_preferences)"]
10181pub struct PassthroughPreferencesMETA {
10182    pub ty: StructureType,
10183    pub next: *const c_void,
10184    pub flags: PassthroughPreferenceFlagsMETA,
10185}
10186impl PassthroughPreferencesMETA {
10187    pub const TYPE: StructureType = StructureType::PASSTHROUGH_PREFERENCES_META;
10188}
10189#[repr(C)]
10190#[derive(Copy, Clone, Debug)]
10191#[doc = "See [XrSystemHeadsetIdPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemHeadsetIdPropertiesMETA) - defined by [XR_META_headset_id](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_headset_id)"]
10192pub struct SystemHeadsetIdPropertiesMETA {
10193    pub ty: StructureType,
10194    pub next: *mut c_void,
10195    pub id: UuidEXT,
10196}
10197impl SystemHeadsetIdPropertiesMETA {
10198    pub const TYPE: StructureType = StructureType::SYSTEM_HEADSET_ID_PROPERTIES_META;
10199    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10200    #[inline]
10201    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10202        let mut x = MaybeUninit::<Self>::uninit();
10203        unsafe {
10204            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10205                ty: Self::TYPE,
10206                next,
10207            });
10208        }
10209        x
10210    }
10211}
10212#[repr(C)]
10213#[derive(Copy, Clone, Debug)]
10214#[doc = "See [XrPassthroughColorLutDataMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutDataMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10215pub struct PassthroughColorLutDataMETA {
10216    pub buffer_size: u32,
10217    pub buffer: *const u8,
10218}
10219#[repr(C)]
10220#[derive(Copy, Clone, Debug)]
10221#[doc = "See [XrPassthroughColorLutCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutCreateInfoMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10222pub struct PassthroughColorLutCreateInfoMETA {
10223    pub ty: StructureType,
10224    pub next: *const c_void,
10225    pub channels: PassthroughColorLutChannelsMETA,
10226    pub resolution: u32,
10227    pub data: PassthroughColorLutDataMETA,
10228}
10229impl PassthroughColorLutCreateInfoMETA {
10230    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_LUT_CREATE_INFO_META;
10231}
10232#[repr(C)]
10233#[derive(Copy, Clone, Debug)]
10234#[doc = "See [XrPassthroughColorLutUpdateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutUpdateInfoMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10235pub struct PassthroughColorLutUpdateInfoMETA {
10236    pub ty: StructureType,
10237    pub next: *const c_void,
10238    pub data: PassthroughColorLutDataMETA,
10239}
10240impl PassthroughColorLutUpdateInfoMETA {
10241    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META;
10242}
10243#[repr(C)]
10244#[derive(Copy, Clone, Debug)]
10245#[doc = "See [XrPassthroughColorMapLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10246pub struct PassthroughColorMapLutMETA {
10247    pub ty: StructureType,
10248    pub next: *const c_void,
10249    pub color_lut: PassthroughColorLutMETA,
10250    pub weight: f32,
10251}
10252impl PassthroughColorMapLutMETA {
10253    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_LUT_META;
10254}
10255#[repr(C)]
10256#[derive(Copy, Clone, Debug)]
10257#[doc = "See [XrPassthroughColorMapInterpolatedLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapInterpolatedLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10258pub struct PassthroughColorMapInterpolatedLutMETA {
10259    pub ty: StructureType,
10260    pub next: *const c_void,
10261    pub source_color_lut: PassthroughColorLutMETA,
10262    pub target_color_lut: PassthroughColorLutMETA,
10263    pub weight: f32,
10264}
10265impl PassthroughColorMapInterpolatedLutMETA {
10266    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META;
10267}
10268#[repr(C)]
10269#[derive(Copy, Clone, Debug)]
10270#[doc = "See [XrSystemPassthroughColorLutPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPassthroughColorLutPropertiesMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10271pub struct SystemPassthroughColorLutPropertiesMETA {
10272    pub ty: StructureType,
10273    pub next: *const c_void,
10274    pub max_color_lut_resolution: u32,
10275}
10276impl SystemPassthroughColorLutPropertiesMETA {
10277    pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META;
10278}
10279#[repr(C)]
10280#[derive(Copy, Clone, Debug)]
10281#[doc = "See [XrFoveationApplyInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationApplyInfoHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10282pub struct FoveationApplyInfoHTC {
10283    pub ty: StructureType,
10284    pub next: *const c_void,
10285    pub mode: FoveationModeHTC,
10286    pub sub_image_count: u32,
10287    pub sub_images: *mut SwapchainSubImage,
10288}
10289impl FoveationApplyInfoHTC {
10290    pub const TYPE: StructureType = StructureType::FOVEATION_APPLY_INFO_HTC;
10291}
10292#[repr(C)]
10293#[derive(Copy, Clone, Debug, PartialEq)]
10294#[doc = "See [XrFoveationConfigurationHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationConfigurationHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10295pub struct FoveationConfigurationHTC {
10296    pub level: FoveationLevelHTC,
10297    pub clear_fov_degree: f32,
10298    pub focal_center_offset: Vector2f,
10299}
10300#[repr(C)]
10301#[derive(Copy, Clone, Debug)]
10302#[doc = "See [XrFoveationDynamicModeInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicModeInfoHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10303pub struct FoveationDynamicModeInfoHTC {
10304    pub ty: StructureType,
10305    pub next: *const c_void,
10306    pub dynamic_flags: FoveationDynamicFlagsHTC,
10307}
10308impl FoveationDynamicModeInfoHTC {
10309    pub const TYPE: StructureType = StructureType::FOVEATION_DYNAMIC_MODE_INFO_HTC;
10310}
10311#[repr(C)]
10312#[derive(Copy, Clone, Debug)]
10313#[doc = "See [XrFoveationCustomModeInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationCustomModeInfoHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10314pub struct FoveationCustomModeInfoHTC {
10315    pub ty: StructureType,
10316    pub next: *const c_void,
10317    pub config_count: u32,
10318    pub configs: *const FoveationConfigurationHTC,
10319}
10320impl FoveationCustomModeInfoHTC {
10321    pub const TYPE: StructureType = StructureType::FOVEATION_CUSTOM_MODE_INFO_HTC;
10322}
10323#[repr(C)]
10324#[derive(Copy, Clone, Debug)]
10325#[doc = "See [XrActiveActionSetPrioritiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSetPrioritiesEXT) - defined by [XR_EXT_active_action_set_priority](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_active_action_set_priority)"]
10326pub struct ActiveActionSetPrioritiesEXT {
10327    pub ty: StructureType,
10328    pub next: *const c_void,
10329    pub action_set_priority_count: u32,
10330    pub action_set_priorities: *const ActiveActionSetPriorityEXT,
10331}
10332impl ActiveActionSetPrioritiesEXT {
10333    pub const TYPE: StructureType = StructureType::ACTIVE_ACTION_SET_PRIORITIES_EXT;
10334}
10335#[repr(C)]
10336#[derive(Copy, Clone, Debug)]
10337#[doc = "See [XrActiveActionSetPriorityEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSetPriorityEXT) - defined by [XR_EXT_active_action_set_priority](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_active_action_set_priority)"]
10338pub struct ActiveActionSetPriorityEXT {
10339    pub action_set: ActionSet,
10340    pub priority_override: u32,
10341}
10342#[repr(C)]
10343#[derive(Copy, Clone, Debug)]
10344#[doc = "See [XrCompositionLayerDepthTestFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerDepthTestFB) - defined by [XR_FB_composition_layer_depth_test](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_depth_test)"]
10345pub struct CompositionLayerDepthTestFB {
10346    pub ty: StructureType,
10347    pub next: *const c_void,
10348    pub depth_mask: Bool32,
10349    pub compare_op: CompareOpFB,
10350}
10351impl CompositionLayerDepthTestFB {
10352    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_TEST_FB;
10353}
10354#[repr(C)]
10355#[derive(Copy, Clone, Debug)]
10356#[doc = "See [XrCoordinateSpaceCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCoordinateSpaceCreateInfoML)"]
10357pub struct CoordinateSpaceCreateInfoML {
10358    pub ty: StructureType,
10359    pub next: *const c_void,
10360    pub cfuid: MLCoordinateFrameUID,
10361    pub pose_in_coordinate_space: Posef,
10362}
10363impl CoordinateSpaceCreateInfoML {
10364    pub const TYPE: StructureType = StructureType::COORDINATE_SPACE_CREATE_INFO_ML;
10365}
10366#[repr(C)]
10367#[derive(Copy, Clone, Debug)]
10368#[doc = "See [XrFrameEndInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfoML) - defined by [XR_ML_frame_end_info](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_frame_end_info)"]
10369pub struct FrameEndInfoML {
10370    pub ty: StructureType,
10371    pub next: *const c_void,
10372    pub focus_distance: f32,
10373    pub flags: FrameEndInfoFlagsML,
10374}
10375impl FrameEndInfoML {
10376    pub const TYPE: StructureType = StructureType::FRAME_END_INFO_ML;
10377}
10378#[repr(C)]
10379#[derive(Copy, Clone, Debug)]
10380#[doc = "See [XrHapticAmplitudeEnvelopeVibrationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticAmplitudeEnvelopeVibrationFB) - defined by [XR_FB_haptic_amplitude_envelope](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_amplitude_envelope)"]
10381pub struct HapticAmplitudeEnvelopeVibrationFB {
10382    pub ty: StructureType,
10383    pub next: *const c_void,
10384    pub duration: Duration,
10385    pub amplitude_count: u32,
10386    pub amplitudes: *const f32,
10387}
10388impl HapticAmplitudeEnvelopeVibrationFB {
10389    pub const TYPE: StructureType = StructureType::HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB;
10390}
10391#[repr(C)]
10392#[derive(Copy, Clone, Debug)]
10393#[doc = "See [XrHapticPcmVibrationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticPcmVibrationFB) - defined by [XR_FB_haptic_pcm](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_pcm)"]
10394pub struct HapticPcmVibrationFB {
10395    pub ty: StructureType,
10396    pub next: *const c_void,
10397    pub buffer_size: u32,
10398    pub buffer: *const f32,
10399    pub sample_rate: f32,
10400    pub append: Bool32,
10401    pub samples_consumed: *mut u32,
10402}
10403impl HapticPcmVibrationFB {
10404    pub const TYPE: StructureType = StructureType::HAPTIC_PCM_VIBRATION_FB;
10405}
10406#[repr(C)]
10407#[derive(Copy, Clone, Debug)]
10408#[doc = "See [XrDevicePcmSampleRateStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDevicePcmSampleRateStateFB) - defined by [XR_FB_haptic_pcm](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_pcm)"]
10409pub struct DevicePcmSampleRateStateFB {
10410    pub ty: StructureType,
10411    pub next: *mut c_void,
10412    pub sample_rate: f32,
10413}
10414impl DevicePcmSampleRateStateFB {
10415    pub const TYPE: StructureType = StructureType::DEVICE_PCM_SAMPLE_RATE_STATE_FB;
10416    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10417    #[inline]
10418    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10419        let mut x = MaybeUninit::<Self>::uninit();
10420        unsafe {
10421            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10422                ty: Self::TYPE,
10423                next,
10424            });
10425        }
10426        x
10427    }
10428}
10429pub type DevicePcmSampleRateGetInfoFB = DevicePcmSampleRateStateFB;
10430#[repr(C)]
10431#[derive(Copy, Clone, Debug)]
10432#[doc = "See [XrSpaceUserCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUserCreateInfoFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
10433pub struct SpaceUserCreateInfoFB {
10434    pub ty: StructureType,
10435    pub next: *const c_void,
10436    pub user_id: SpaceUserIdFB,
10437}
10438impl SpaceUserCreateInfoFB {
10439    pub const TYPE: StructureType = StructureType::SPACE_USER_CREATE_INFO_FB;
10440}
10441#[repr(C)]
10442#[derive(Copy, Clone, Debug)]
10443#[doc = "See [XrSystemForceFeedbackCurlPropertiesMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemForceFeedbackCurlPropertiesMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
10444pub struct SystemForceFeedbackCurlPropertiesMNDX {
10445    pub ty: StructureType,
10446    pub next: *mut c_void,
10447    pub supports_force_feedback_curl: Bool32,
10448}
10449impl SystemForceFeedbackCurlPropertiesMNDX {
10450    pub const TYPE: StructureType = StructureType::SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX;
10451    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10452    #[inline]
10453    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10454        let mut x = MaybeUninit::<Self>::uninit();
10455        unsafe {
10456            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10457                ty: Self::TYPE,
10458                next,
10459            });
10460        }
10461        x
10462    }
10463}
10464#[repr(C)]
10465#[derive(Copy, Clone, Debug)]
10466#[doc = "See [XrForceFeedbackCurlApplyLocationsMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlApplyLocationsMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
10467pub struct ForceFeedbackCurlApplyLocationsMNDX {
10468    pub ty: StructureType,
10469    pub next: *const c_void,
10470    pub location_count: u32,
10471    pub locations: *mut ForceFeedbackCurlApplyLocationMNDX,
10472}
10473impl ForceFeedbackCurlApplyLocationsMNDX {
10474    pub const TYPE: StructureType = StructureType::FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX;
10475}
10476#[repr(C)]
10477#[derive(Copy, Clone, Debug, PartialEq)]
10478#[doc = "See [XrForceFeedbackCurlApplyLocationMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlApplyLocationMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
10479pub struct ForceFeedbackCurlApplyLocationMNDX {
10480    pub location: ForceFeedbackCurlLocationMNDX,
10481    pub value: f32,
10482}
10483#[repr(C)]
10484#[derive(Copy, Clone, Debug)]
10485#[doc = "See [XrSystemPlaneDetectionPropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPlaneDetectionPropertiesEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10486pub struct SystemPlaneDetectionPropertiesEXT {
10487    pub ty: StructureType,
10488    pub next: *mut c_void,
10489    pub supported_features: PlaneDetectionCapabilityFlagsEXT,
10490}
10491impl SystemPlaneDetectionPropertiesEXT {
10492    pub const TYPE: StructureType = StructureType::SYSTEM_PLANE_DETECTION_PROPERTIES_EXT;
10493    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10494    #[inline]
10495    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10496        let mut x = MaybeUninit::<Self>::uninit();
10497        unsafe {
10498            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10499                ty: Self::TYPE,
10500                next,
10501            });
10502        }
10503        x
10504    }
10505}
10506#[repr(C)]
10507#[derive(Copy, Clone, Debug)]
10508#[doc = "See [XrPlaneDetectorCreateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorCreateInfoEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10509pub struct PlaneDetectorCreateInfoEXT {
10510    pub ty: StructureType,
10511    pub next: *const c_void,
10512    pub flags: PlaneDetectorFlagsEXT,
10513}
10514impl PlaneDetectorCreateInfoEXT {
10515    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_CREATE_INFO_EXT;
10516}
10517#[repr(C)]
10518#[derive(Copy, Clone, Debug)]
10519#[doc = "See [XrPlaneDetectorBeginInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorBeginInfoEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10520pub struct PlaneDetectorBeginInfoEXT {
10521    pub ty: StructureType,
10522    pub next: *const c_void,
10523    pub base_space: Space,
10524    pub time: Time,
10525    pub orientation_count: u32,
10526    pub orientations: *const PlaneDetectorOrientationEXT,
10527    pub semantic_type_count: u32,
10528    pub semantic_types: *const PlaneDetectorSemanticTypeEXT,
10529    pub max_planes: u32,
10530    pub min_area: f32,
10531    pub bounding_box_pose: Posef,
10532    pub bounding_box_extent: Extent3DfEXT,
10533}
10534impl PlaneDetectorBeginInfoEXT {
10535    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_BEGIN_INFO_EXT;
10536}
10537#[repr(C)]
10538#[derive(Copy, Clone, Debug)]
10539#[doc = "See [XrPlaneDetectorGetInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorGetInfoEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10540pub struct PlaneDetectorGetInfoEXT {
10541    pub ty: StructureType,
10542    pub next: *const c_void,
10543    pub base_space: Space,
10544    pub time: Time,
10545}
10546impl PlaneDetectorGetInfoEXT {
10547    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_GET_INFO_EXT;
10548}
10549#[repr(C)]
10550#[derive(Copy, Clone, Debug)]
10551#[doc = "See [XrPlaneDetectorLocationsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorLocationsEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10552pub struct PlaneDetectorLocationsEXT {
10553    pub ty: StructureType,
10554    pub next: *mut c_void,
10555    pub plane_location_capacity_input: u32,
10556    pub plane_location_count_output: u32,
10557    pub plane_locations: *mut PlaneDetectorLocationEXT,
10558}
10559impl PlaneDetectorLocationsEXT {
10560    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_LOCATIONS_EXT;
10561    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10562    #[inline]
10563    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10564        let mut x = MaybeUninit::<Self>::uninit();
10565        unsafe {
10566            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10567                ty: Self::TYPE,
10568                next,
10569            });
10570        }
10571        x
10572    }
10573}
10574#[repr(C)]
10575#[derive(Copy, Clone, Debug)]
10576#[doc = "See [XrPlaneDetectorLocationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorLocationEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10577pub struct PlaneDetectorLocationEXT {
10578    pub ty: StructureType,
10579    pub next: *mut c_void,
10580    pub plane_id: u64,
10581    pub location_flags: SpaceLocationFlags,
10582    pub pose: Posef,
10583    pub extents: Extent2Df,
10584    pub orientation: PlaneDetectorOrientationEXT,
10585    pub semantic_type: PlaneDetectorSemanticTypeEXT,
10586    pub polygon_buffer_count: u32,
10587}
10588impl PlaneDetectorLocationEXT {
10589    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_LOCATION_EXT;
10590    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10591    #[inline]
10592    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10593        let mut x = MaybeUninit::<Self>::uninit();
10594        unsafe {
10595            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10596                ty: Self::TYPE,
10597                next,
10598            });
10599        }
10600        x
10601    }
10602}
10603#[repr(C)]
10604#[derive(Copy, Clone, Debug)]
10605#[doc = "See [XrPlaneDetectorPolygonBufferEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorPolygonBufferEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10606pub struct PlaneDetectorPolygonBufferEXT {
10607    pub ty: StructureType,
10608    pub next: *mut c_void,
10609    pub vertex_capacity_input: u32,
10610    pub vertex_count_output: u32,
10611    pub vertices: *mut Vector2f,
10612}
10613impl PlaneDetectorPolygonBufferEXT {
10614    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_POLYGON_BUFFER_EXT;
10615    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10616    #[inline]
10617    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10618        let mut x = MaybeUninit::<Self>::uninit();
10619        unsafe {
10620            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10621                ty: Self::TYPE,
10622                next,
10623            });
10624        }
10625        x
10626    }
10627}
10628#[repr(C)]
10629#[derive(Copy, Clone, Debug)]
10630#[doc = "See [XrSystemVirtualKeyboardPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemVirtualKeyboardPropertiesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10631pub struct SystemVirtualKeyboardPropertiesMETA {
10632    pub ty: StructureType,
10633    pub next: *mut c_void,
10634    pub supports_virtual_keyboard: Bool32,
10635}
10636impl SystemVirtualKeyboardPropertiesMETA {
10637    pub const TYPE: StructureType = StructureType::SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META;
10638    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10639    #[inline]
10640    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10641        let mut x = MaybeUninit::<Self>::uninit();
10642        unsafe {
10643            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10644                ty: Self::TYPE,
10645                next,
10646            });
10647        }
10648        x
10649    }
10650}
10651#[repr(C)]
10652#[derive(Copy, Clone, Debug)]
10653#[doc = "See [XrVirtualKeyboardCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardCreateInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10654pub struct VirtualKeyboardCreateInfoMETA {
10655    pub ty: StructureType,
10656    pub next: *const c_void,
10657}
10658impl VirtualKeyboardCreateInfoMETA {
10659    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_CREATE_INFO_META;
10660}
10661#[repr(C)]
10662#[derive(Copy, Clone, Debug)]
10663#[doc = "See [XrVirtualKeyboardSpaceCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardSpaceCreateInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10664pub struct VirtualKeyboardSpaceCreateInfoMETA {
10665    pub ty: StructureType,
10666    pub next: *const c_void,
10667    pub location_type: VirtualKeyboardLocationTypeMETA,
10668    pub space: Space,
10669    pub pose_in_space: Posef,
10670}
10671impl VirtualKeyboardSpaceCreateInfoMETA {
10672    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META;
10673}
10674#[repr(C)]
10675#[derive(Copy, Clone, Debug)]
10676#[doc = "See [XrVirtualKeyboardLocationInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardLocationInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10677pub struct VirtualKeyboardLocationInfoMETA {
10678    pub ty: StructureType,
10679    pub next: *const c_void,
10680    pub location_type: VirtualKeyboardLocationTypeMETA,
10681    pub space: Space,
10682    pub pose_in_space: Posef,
10683    pub scale: f32,
10684}
10685impl VirtualKeyboardLocationInfoMETA {
10686    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_LOCATION_INFO_META;
10687}
10688#[repr(C)]
10689#[derive(Copy, Clone, Debug)]
10690#[doc = "See [XrVirtualKeyboardModelVisibilitySetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardModelVisibilitySetInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10691pub struct VirtualKeyboardModelVisibilitySetInfoMETA {
10692    pub ty: StructureType,
10693    pub next: *const c_void,
10694    pub visible: Bool32,
10695}
10696impl VirtualKeyboardModelVisibilitySetInfoMETA {
10697    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META;
10698}
10699#[repr(C)]
10700#[derive(Copy, Clone, Debug)]
10701#[doc = "See [XrVirtualKeyboardAnimationStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardAnimationStateMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10702pub struct VirtualKeyboardAnimationStateMETA {
10703    pub ty: StructureType,
10704    pub next: *mut c_void,
10705    pub animation_index: i32,
10706    pub fraction: f32,
10707}
10708impl VirtualKeyboardAnimationStateMETA {
10709    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_ANIMATION_STATE_META;
10710    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10711    #[inline]
10712    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10713        let mut x = MaybeUninit::<Self>::uninit();
10714        unsafe {
10715            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10716                ty: Self::TYPE,
10717                next,
10718            });
10719        }
10720        x
10721    }
10722}
10723#[repr(C)]
10724#[derive(Copy, Clone, Debug)]
10725#[doc = "See [XrVirtualKeyboardModelAnimationStatesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardModelAnimationStatesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10726pub struct VirtualKeyboardModelAnimationStatesMETA {
10727    pub ty: StructureType,
10728    pub next: *mut c_void,
10729    pub state_capacity_input: u32,
10730    pub state_count_output: u32,
10731    pub states: *mut VirtualKeyboardAnimationStateMETA,
10732}
10733impl VirtualKeyboardModelAnimationStatesMETA {
10734    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META;
10735    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10736    #[inline]
10737    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10738        let mut x = MaybeUninit::<Self>::uninit();
10739        unsafe {
10740            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10741                ty: Self::TYPE,
10742                next,
10743            });
10744        }
10745        x
10746    }
10747}
10748#[repr(C)]
10749#[derive(Copy, Clone, Debug)]
10750#[doc = "See [XrVirtualKeyboardTextureDataMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardTextureDataMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10751pub struct VirtualKeyboardTextureDataMETA {
10752    pub ty: StructureType,
10753    pub next: *mut c_void,
10754    pub texture_width: u32,
10755    pub texture_height: u32,
10756    pub buffer_capacity_input: u32,
10757    pub buffer_count_output: u32,
10758    pub buffer: *mut u8,
10759}
10760impl VirtualKeyboardTextureDataMETA {
10761    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_TEXTURE_DATA_META;
10762    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10763    #[inline]
10764    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10765        let mut x = MaybeUninit::<Self>::uninit();
10766        unsafe {
10767            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10768                ty: Self::TYPE,
10769                next,
10770            });
10771        }
10772        x
10773    }
10774}
10775#[repr(C)]
10776#[derive(Copy, Clone, Debug)]
10777#[doc = "See [XrVirtualKeyboardInputInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10778pub struct VirtualKeyboardInputInfoMETA {
10779    pub ty: StructureType,
10780    pub next: *const c_void,
10781    pub input_source: VirtualKeyboardInputSourceMETA,
10782    pub input_space: Space,
10783    pub input_pose_in_space: Posef,
10784    pub input_state: VirtualKeyboardInputStateFlagsMETA,
10785}
10786impl VirtualKeyboardInputInfoMETA {
10787    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_INPUT_INFO_META;
10788}
10789#[repr(C)]
10790#[derive(Copy, Clone, Debug)]
10791#[doc = "See [XrVirtualKeyboardTextContextChangeInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardTextContextChangeInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10792pub struct VirtualKeyboardTextContextChangeInfoMETA {
10793    pub ty: StructureType,
10794    pub next: *const c_void,
10795    pub text_context: *const c_char,
10796}
10797impl VirtualKeyboardTextContextChangeInfoMETA {
10798    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META;
10799}
10800#[repr(C)]
10801#[derive(Copy, Clone, Debug)]
10802#[doc = "See [XrEventDataVirtualKeyboardCommitTextMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardCommitTextMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10803pub struct EventDataVirtualKeyboardCommitTextMETA {
10804    pub ty: StructureType,
10805    pub next: *const c_void,
10806    pub keyboard: VirtualKeyboardMETA,
10807    pub text: [c_char; MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META],
10808}
10809impl EventDataVirtualKeyboardCommitTextMETA {
10810    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META;
10811}
10812#[repr(C)]
10813#[derive(Copy, Clone, Debug)]
10814#[doc = "See [XrEventDataVirtualKeyboardBackspaceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardBackspaceMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10815pub struct EventDataVirtualKeyboardBackspaceMETA {
10816    pub ty: StructureType,
10817    pub next: *const c_void,
10818    pub keyboard: VirtualKeyboardMETA,
10819}
10820impl EventDataVirtualKeyboardBackspaceMETA {
10821    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META;
10822}
10823#[repr(C)]
10824#[derive(Copy, Clone, Debug)]
10825#[doc = "See [XrEventDataVirtualKeyboardEnterMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardEnterMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10826pub struct EventDataVirtualKeyboardEnterMETA {
10827    pub ty: StructureType,
10828    pub next: *const c_void,
10829    pub keyboard: VirtualKeyboardMETA,
10830}
10831impl EventDataVirtualKeyboardEnterMETA {
10832    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META;
10833}
10834#[repr(C)]
10835#[derive(Copy, Clone, Debug)]
10836#[doc = "See [XrEventDataVirtualKeyboardShownMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardShownMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10837pub struct EventDataVirtualKeyboardShownMETA {
10838    pub ty: StructureType,
10839    pub next: *const c_void,
10840    pub keyboard: VirtualKeyboardMETA,
10841}
10842impl EventDataVirtualKeyboardShownMETA {
10843    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META;
10844}
10845#[repr(C)]
10846#[derive(Copy, Clone, Debug)]
10847#[doc = "See [XrEventDataVirtualKeyboardHiddenMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardHiddenMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10848pub struct EventDataVirtualKeyboardHiddenMETA {
10849    pub ty: StructureType,
10850    pub next: *const c_void,
10851    pub keyboard: VirtualKeyboardMETA,
10852}
10853impl EventDataVirtualKeyboardHiddenMETA {
10854    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META;
10855}
10856#[repr(C)]
10857#[derive(Copy, Clone, Debug)]
10858#[doc = "See [XrUserCalibrationEnableEventsInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrUserCalibrationEnableEventsInfoML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
10859pub struct UserCalibrationEnableEventsInfoML {
10860    pub ty: StructureType,
10861    pub next: *const c_void,
10862    pub enabled: Bool32,
10863}
10864impl UserCalibrationEnableEventsInfoML {
10865    pub const TYPE: StructureType = StructureType::USER_CALIBRATION_ENABLE_EVENTS_INFO_ML;
10866}
10867#[repr(C)]
10868#[derive(Copy, Clone, Debug)]
10869#[doc = "See [XrEventDataHeadsetFitChangedML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataHeadsetFitChangedML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
10870pub struct EventDataHeadsetFitChangedML {
10871    pub ty: StructureType,
10872    pub next: *const c_void,
10873    pub status: HeadsetFitStatusML,
10874    pub time: Time,
10875}
10876impl EventDataHeadsetFitChangedML {
10877    pub const TYPE: StructureType = StructureType::EVENT_DATA_HEADSET_FIT_CHANGED_ML;
10878}
10879#[repr(C)]
10880#[derive(Copy, Clone, Debug)]
10881#[doc = "See [XrEventDataEyeCalibrationChangedML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataEyeCalibrationChangedML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
10882pub struct EventDataEyeCalibrationChangedML {
10883    pub ty: StructureType,
10884    pub next: *const c_void,
10885    pub status: EyeCalibrationStatusML,
10886}
10887impl EventDataEyeCalibrationChangedML {
10888    pub const TYPE: StructureType = StructureType::EVENT_DATA_EYE_CALIBRATION_CHANGED_ML;
10889}
10890#[repr(C)]
10891#[derive(Copy, Clone, Debug)]
10892#[doc = "See [XrLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10893pub struct LocalizationMapML {
10894    pub ty: StructureType,
10895    pub next: *mut c_void,
10896    pub name: [c_char; MAX_LOCALIZATION_MAP_NAME_LENGTH_ML],
10897    pub map_uuid: UuidEXT,
10898    pub map_type: LocalizationMapTypeML,
10899}
10900impl LocalizationMapML {
10901    pub const TYPE: StructureType = StructureType::LOCALIZATION_MAP_ML;
10902    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10903    #[inline]
10904    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10905        let mut x = MaybeUninit::<Self>::uninit();
10906        unsafe {
10907            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10908                ty: Self::TYPE,
10909                next,
10910            });
10911        }
10912        x
10913    }
10914}
10915#[repr(C)]
10916#[derive(Copy, Clone, Debug)]
10917#[doc = "See [XrLocalizationEnableEventsInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationEnableEventsInfoML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10918pub struct LocalizationEnableEventsInfoML {
10919    pub ty: StructureType,
10920    pub next: *const c_void,
10921    pub enabled: Bool32,
10922}
10923impl LocalizationEnableEventsInfoML {
10924    pub const TYPE: StructureType = StructureType::LOCALIZATION_ENABLE_EVENTS_INFO_ML;
10925}
10926#[repr(C)]
10927#[derive(Copy, Clone, Debug)]
10928#[doc = "See [XrEventDataLocalizationChangedML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataLocalizationChangedML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10929pub struct EventDataLocalizationChangedML {
10930    pub ty: StructureType,
10931    pub next: *const c_void,
10932    pub session: Session,
10933    pub state: LocalizationMapStateML,
10934    pub map: LocalizationMapML,
10935    pub confidence: LocalizationMapConfidenceML,
10936    pub error_flags: LocalizationMapErrorFlagsML,
10937}
10938impl EventDataLocalizationChangedML {
10939    pub const TYPE: StructureType = StructureType::EVENT_DATA_LOCALIZATION_CHANGED_ML;
10940}
10941#[repr(C)]
10942#[derive(Copy, Clone, Debug)]
10943#[doc = "See [XrLocalizationMapQueryInfoBaseHeaderML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapQueryInfoBaseHeaderML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10944pub struct LocalizationMapQueryInfoBaseHeaderML {
10945    pub ty: StructureType,
10946    pub next: *const c_void,
10947}
10948#[repr(C)]
10949#[derive(Copy, Clone, Debug)]
10950#[doc = "See [XrMapLocalizationRequestInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMapLocalizationRequestInfoML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10951pub struct MapLocalizationRequestInfoML {
10952    pub ty: StructureType,
10953    pub next: *const c_void,
10954    pub map_uuid: UuidEXT,
10955}
10956impl MapLocalizationRequestInfoML {
10957    pub const TYPE: StructureType = StructureType::MAP_LOCALIZATION_REQUEST_INFO_ML;
10958}
10959#[repr(C)]
10960#[derive(Copy, Clone, Debug)]
10961#[doc = "See [XrLocalizationMapImportInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapImportInfoML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10962pub struct LocalizationMapImportInfoML {
10963    pub ty: StructureType,
10964    pub next: *const c_void,
10965    pub size: u32,
10966    pub data: *mut c_char,
10967}
10968impl LocalizationMapImportInfoML {
10969    pub const TYPE: StructureType = StructureType::LOCALIZATION_MAP_IMPORT_INFO_ML;
10970}
10971#[repr(C)]
10972#[derive(Copy, Clone, Debug)]
10973#[doc = "See [XrSystemMarkerUnderstandingPropertiesML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemMarkerUnderstandingPropertiesML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
10974pub struct SystemMarkerUnderstandingPropertiesML {
10975    pub ty: StructureType,
10976    pub next: *mut c_void,
10977    pub supports_marker_understanding: Bool32,
10978}
10979impl SystemMarkerUnderstandingPropertiesML {
10980    pub const TYPE: StructureType = StructureType::SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML;
10981    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10982    #[inline]
10983    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10984        let mut x = MaybeUninit::<Self>::uninit();
10985        unsafe {
10986            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10987                ty: Self::TYPE,
10988                next,
10989            });
10990        }
10991        x
10992    }
10993}
10994#[repr(C)]
10995#[derive(Copy, Clone, Debug)]
10996#[doc = "See [XrMarkerDetectorCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCreateInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
10997pub struct MarkerDetectorCreateInfoML {
10998    pub ty: StructureType,
10999    pub next: *const c_void,
11000    pub profile: MarkerDetectorProfileML,
11001    pub marker_type: MarkerTypeML,
11002}
11003impl MarkerDetectorCreateInfoML {
11004    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_CREATE_INFO_ML;
11005}
11006#[repr(C)]
11007#[derive(Copy, Clone, Debug)]
11008#[doc = "See [XrMarkerDetectorArucoInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorArucoInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11009pub struct MarkerDetectorArucoInfoML {
11010    pub ty: StructureType,
11011    pub next: *const c_void,
11012    pub aruco_dict: MarkerArucoDictML,
11013}
11014impl MarkerDetectorArucoInfoML {
11015    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_ARUCO_INFO_ML;
11016}
11017#[repr(C)]
11018#[derive(Copy, Clone, Debug)]
11019#[doc = "See [XrMarkerDetectorSizeInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorSizeInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11020pub struct MarkerDetectorSizeInfoML {
11021    pub ty: StructureType,
11022    pub next: *const c_void,
11023    pub marker_length: f32,
11024}
11025impl MarkerDetectorSizeInfoML {
11026    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_SIZE_INFO_ML;
11027}
11028#[repr(C)]
11029#[derive(Copy, Clone, Debug)]
11030#[doc = "See [XrMarkerDetectorAprilTagInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorAprilTagInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11031pub struct MarkerDetectorAprilTagInfoML {
11032    pub ty: StructureType,
11033    pub next: *const c_void,
11034    pub april_tag_dict: MarkerAprilTagDictML,
11035}
11036impl MarkerDetectorAprilTagInfoML {
11037    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_APRIL_TAG_INFO_ML;
11038}
11039#[repr(C)]
11040#[derive(Copy, Clone, Debug)]
11041#[doc = "See [XrMarkerDetectorCustomProfileInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCustomProfileInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11042pub struct MarkerDetectorCustomProfileInfoML {
11043    pub ty: StructureType,
11044    pub next: *const c_void,
11045    pub fps_hint: MarkerDetectorFpsML,
11046    pub resolution_hint: MarkerDetectorResolutionML,
11047    pub camera_hint: MarkerDetectorCameraML,
11048    pub corner_refine_method: MarkerDetectorCornerRefineMethodML,
11049    pub use_edge_refinement: Bool32,
11050    pub full_analysis_interval_hint: MarkerDetectorFullAnalysisIntervalML,
11051}
11052impl MarkerDetectorCustomProfileInfoML {
11053    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML;
11054}
11055#[repr(C)]
11056#[derive(Copy, Clone, Debug)]
11057#[doc = "See [XrMarkerDetectorSnapshotInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorSnapshotInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11058pub struct MarkerDetectorSnapshotInfoML {
11059    pub ty: StructureType,
11060    pub next: *const c_void,
11061}
11062impl MarkerDetectorSnapshotInfoML {
11063    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_SNAPSHOT_INFO_ML;
11064}
11065#[repr(C)]
11066#[derive(Copy, Clone, Debug)]
11067#[doc = "See [XrMarkerDetectorStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorStateML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11068pub struct MarkerDetectorStateML {
11069    pub ty: StructureType,
11070    pub next: *mut c_void,
11071    pub state: MarkerDetectorStatusML,
11072}
11073impl MarkerDetectorStateML {
11074    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_STATE_ML;
11075    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11076    #[inline]
11077    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11078        let mut x = MaybeUninit::<Self>::uninit();
11079        unsafe {
11080            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11081                ty: Self::TYPE,
11082                next,
11083            });
11084        }
11085        x
11086    }
11087}
11088#[repr(C)]
11089#[derive(Copy, Clone, Debug)]
11090#[doc = "See [XrMarkerSpaceCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerSpaceCreateInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11091pub struct MarkerSpaceCreateInfoML {
11092    pub ty: StructureType,
11093    pub next: *const c_void,
11094    pub marker_detector: MarkerDetectorML,
11095    pub marker: MarkerML,
11096    pub pose_in_marker_space: Posef,
11097}
11098impl MarkerSpaceCreateInfoML {
11099    pub const TYPE: StructureType = StructureType::MARKER_SPACE_CREATE_INFO_ML;
11100}
11101#[repr(C)]
11102#[derive(Copy, Clone, Debug, Default, PartialEq)]
11103#[doc = "See [XrColor3f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColor3f)"]
11104pub struct Color3f {
11105    pub r: f32,
11106    pub g: f32,
11107    pub b: f32,
11108}
11109pub type Color3fKHR = Color3f;
11110#[repr(C)]
11111#[derive(Copy, Clone, Debug, Default, PartialEq)]
11112#[doc = "See [XrExtent3Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent3Df)"]
11113pub struct Extent3Df {
11114    pub width: f32,
11115    pub height: f32,
11116    pub depth: f32,
11117}
11118pub type Extent3DfEXT = Extent3Df;
11119pub type Extent3DfFB = Extent3Df;
11120pub type Extent3DfKHR = Extent3Df;
11121#[repr(C)]
11122#[derive(Copy, Clone, Debug, Default, PartialEq)]
11123#[doc = "See [XrSpheref](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpheref)"]
11124pub struct Spheref {
11125    pub center: Posef,
11126    pub radius: f32,
11127}
11128pub type SpherefKHR = Spheref;
11129#[repr(C)]
11130#[derive(Copy, Clone, Debug, Default, PartialEq)]
11131#[doc = "See [XrBoxf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoxf)"]
11132pub struct Boxf {
11133    pub center: Posef,
11134    pub extents: Extent3Df,
11135}
11136pub type BoxfKHR = Boxf;
11137#[repr(C)]
11138#[derive(Copy, Clone, Debug, Default, PartialEq)]
11139#[doc = "See [XrFrustumf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrustumf)"]
11140pub struct Frustumf {
11141    pub pose: Posef,
11142    pub fov: Fovf,
11143    pub near_z: f32,
11144    pub far_z: f32,
11145}
11146pub type FrustumfKHR = Frustumf;
11147#[repr(C)]
11148#[derive(Copy, Clone, Debug)]
11149#[doc = "See [XrUuid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrUuid)"]
11150pub struct Uuid {
11151    pub data: [u8; UUID_SIZE],
11152}
11153pub type UuidEXT = Uuid;
11154#[repr(C)]
11155#[derive(Copy, Clone, Debug)]
11156#[doc = "See [XrRecommendedLayerResolutionMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRecommendedLayerResolutionMETA) - defined by [XR_META_recommended_layer_resolution](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_recommended_layer_resolution)"]
11157pub struct RecommendedLayerResolutionMETA {
11158    pub ty: StructureType,
11159    pub next: *mut c_void,
11160    pub recommended_image_dimensions: Extent2Di,
11161    pub is_valid: Bool32,
11162}
11163impl RecommendedLayerResolutionMETA {
11164    pub const TYPE: StructureType = StructureType::RECOMMENDED_LAYER_RESOLUTION_META;
11165    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11166    #[inline]
11167    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11168        let mut x = MaybeUninit::<Self>::uninit();
11169        unsafe {
11170            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11171                ty: Self::TYPE,
11172                next,
11173            });
11174        }
11175        x
11176    }
11177}
11178#[repr(C)]
11179#[derive(Copy, Clone, Debug)]
11180#[doc = "See [XrRecommendedLayerResolutionGetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRecommendedLayerResolutionGetInfoMETA) - defined by [XR_META_recommended_layer_resolution](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_recommended_layer_resolution)"]
11181pub struct RecommendedLayerResolutionGetInfoMETA {
11182    pub ty: StructureType,
11183    pub next: *const c_void,
11184    pub layer: *const CompositionLayerBaseHeader,
11185    pub predicted_display_time: Time,
11186}
11187impl RecommendedLayerResolutionGetInfoMETA {
11188    pub const TYPE: StructureType = StructureType::RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META;
11189}
11190#[repr(C)]
11191#[derive(Copy, Clone, Debug)]
11192#[doc = "See [XrSystemUserPresencePropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemUserPresencePropertiesEXT) - defined by [XR_EXT_user_presence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_user_presence)"]
11193pub struct SystemUserPresencePropertiesEXT {
11194    pub ty: StructureType,
11195    pub next: *mut c_void,
11196    pub supports_user_presence: Bool32,
11197}
11198impl SystemUserPresencePropertiesEXT {
11199    pub const TYPE: StructureType = StructureType::SYSTEM_USER_PRESENCE_PROPERTIES_EXT;
11200    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11201    #[inline]
11202    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11203        let mut x = MaybeUninit::<Self>::uninit();
11204        unsafe {
11205            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11206                ty: Self::TYPE,
11207                next,
11208            });
11209        }
11210        x
11211    }
11212}
11213#[repr(C)]
11214#[derive(Copy, Clone, Debug)]
11215#[doc = "See [XrEventDataUserPresenceChangedEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataUserPresenceChangedEXT) - defined by [XR_EXT_user_presence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_user_presence)"]
11216pub struct EventDataUserPresenceChangedEXT {
11217    pub ty: StructureType,
11218    pub next: *const c_void,
11219    pub session: Session,
11220    pub is_user_present: Bool32,
11221}
11222impl EventDataUserPresenceChangedEXT {
11223    pub const TYPE: StructureType = StructureType::EVENT_DATA_USER_PRESENCE_CHANGED_EXT;
11224}
11225#[repr(C)]
11226#[derive(Copy, Clone, Debug)]
11227#[doc = "See [XrFutureCompletionBaseHeaderEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureCompletionBaseHeaderEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11228pub struct FutureCompletionBaseHeaderEXT {
11229    pub ty: StructureType,
11230    pub next: *mut c_void,
11231    pub future_result: Result,
11232}
11233#[repr(C)]
11234#[derive(Copy, Clone, Debug)]
11235#[doc = "See [XrFutureCompletionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureCompletionEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11236pub struct FutureCompletionEXT {
11237    pub ty: StructureType,
11238    pub next: *mut c_void,
11239    pub future_result: Result,
11240}
11241impl FutureCompletionEXT {
11242    pub const TYPE: StructureType = StructureType::FUTURE_COMPLETION_EXT;
11243    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11244    #[inline]
11245    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11246        let mut x = MaybeUninit::<Self>::uninit();
11247        unsafe {
11248            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11249                ty: Self::TYPE,
11250                next,
11251            });
11252        }
11253        x
11254    }
11255}
11256#[repr(C)]
11257#[derive(Copy, Clone, Debug)]
11258#[doc = "See [XrFutureCancelInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureCancelInfoEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11259pub struct FutureCancelInfoEXT {
11260    pub ty: StructureType,
11261    pub next: *const c_void,
11262    pub future: FutureEXT,
11263}
11264impl FutureCancelInfoEXT {
11265    pub const TYPE: StructureType = StructureType::FUTURE_CANCEL_INFO_EXT;
11266}
11267#[repr(C)]
11268#[derive(Copy, Clone, Debug)]
11269#[doc = "See [XrFuturePollInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFuturePollInfoEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11270pub struct FuturePollInfoEXT {
11271    pub ty: StructureType,
11272    pub next: *const c_void,
11273    pub future: FutureEXT,
11274}
11275impl FuturePollInfoEXT {
11276    pub const TYPE: StructureType = StructureType::FUTURE_POLL_INFO_EXT;
11277}
11278#[repr(C)]
11279#[derive(Copy, Clone, Debug)]
11280#[doc = "See [XrFuturePollResultEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFuturePollResultEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11281pub struct FuturePollResultEXT {
11282    pub ty: StructureType,
11283    pub next: *mut c_void,
11284    pub state: FutureStateEXT,
11285}
11286impl FuturePollResultEXT {
11287    pub const TYPE: StructureType = StructureType::FUTURE_POLL_RESULT_EXT;
11288    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11289    #[inline]
11290    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11291        let mut x = MaybeUninit::<Self>::uninit();
11292        unsafe {
11293            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11294                ty: Self::TYPE,
11295                next,
11296            });
11297        }
11298        x
11299    }
11300}
11301#[repr(C)]
11302#[derive(Copy, Clone, Debug)]
11303#[doc = "See [XrEnvironmentDepthProviderCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderCreateInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11304pub struct EnvironmentDepthProviderCreateInfoMETA {
11305    pub ty: StructureType,
11306    pub next: *const c_void,
11307    pub create_flags: EnvironmentDepthProviderCreateFlagsMETA,
11308}
11309impl EnvironmentDepthProviderCreateInfoMETA {
11310    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META;
11311}
11312#[repr(C)]
11313#[derive(Copy, Clone, Debug)]
11314#[doc = "See [XrEnvironmentDepthSwapchainCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainCreateInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11315pub struct EnvironmentDepthSwapchainCreateInfoMETA {
11316    pub ty: StructureType,
11317    pub next: *const c_void,
11318    pub create_flags: EnvironmentDepthSwapchainCreateFlagsMETA,
11319}
11320impl EnvironmentDepthSwapchainCreateInfoMETA {
11321    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META;
11322}
11323#[repr(C)]
11324#[derive(Copy, Clone, Debug)]
11325#[doc = "See [XrEnvironmentDepthSwapchainStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainStateMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11326pub struct EnvironmentDepthSwapchainStateMETA {
11327    pub ty: StructureType,
11328    pub next: *mut c_void,
11329    pub width: u32,
11330    pub height: u32,
11331}
11332impl EnvironmentDepthSwapchainStateMETA {
11333    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META;
11334    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11335    #[inline]
11336    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11337        let mut x = MaybeUninit::<Self>::uninit();
11338        unsafe {
11339            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11340                ty: Self::TYPE,
11341                next,
11342            });
11343        }
11344        x
11345    }
11346}
11347#[repr(C)]
11348#[derive(Copy, Clone, Debug)]
11349#[doc = "See [XrEnvironmentDepthImageAcquireInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthImageAcquireInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11350pub struct EnvironmentDepthImageAcquireInfoMETA {
11351    pub ty: StructureType,
11352    pub next: *const c_void,
11353    pub space: Space,
11354    pub display_time: Time,
11355}
11356impl EnvironmentDepthImageAcquireInfoMETA {
11357    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META;
11358}
11359#[repr(C)]
11360#[derive(Copy, Clone, Debug)]
11361#[doc = "See [XrEnvironmentDepthImageViewMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthImageViewMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11362pub struct EnvironmentDepthImageViewMETA {
11363    pub ty: StructureType,
11364    pub next: *const c_void,
11365    pub fov: Fovf,
11366    pub pose: Posef,
11367}
11368impl EnvironmentDepthImageViewMETA {
11369    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_VIEW_META;
11370}
11371#[repr(C)]
11372#[derive(Copy, Clone, Debug)]
11373#[doc = "See [XrEnvironmentDepthImageMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthImageMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11374pub struct EnvironmentDepthImageMETA {
11375    pub ty: StructureType,
11376    pub next: *const c_void,
11377    pub swapchain_index: u32,
11378    pub near_z: f32,
11379    pub far_z: f32,
11380    pub views: [EnvironmentDepthImageViewMETA; 2usize],
11381}
11382impl EnvironmentDepthImageMETA {
11383    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_META;
11384}
11385#[repr(C)]
11386#[derive(Copy, Clone, Debug)]
11387#[doc = "See [XrEnvironmentDepthHandRemovalSetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthHandRemovalSetInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11388pub struct EnvironmentDepthHandRemovalSetInfoMETA {
11389    pub ty: StructureType,
11390    pub next: *const c_void,
11391    pub enabled: Bool32,
11392}
11393impl EnvironmentDepthHandRemovalSetInfoMETA {
11394    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META;
11395}
11396#[repr(C)]
11397#[derive(Copy, Clone, Debug)]
11398#[doc = "See [XrSystemEnvironmentDepthPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemEnvironmentDepthPropertiesMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11399pub struct SystemEnvironmentDepthPropertiesMETA {
11400    pub ty: StructureType,
11401    pub next: *mut c_void,
11402    pub supports_environment_depth: Bool32,
11403    pub supports_hand_removal: Bool32,
11404}
11405impl SystemEnvironmentDepthPropertiesMETA {
11406    pub const TYPE: StructureType = StructureType::SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META;
11407    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11408    #[inline]
11409    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11410        let mut x = MaybeUninit::<Self>::uninit();
11411        unsafe {
11412            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11413                ty: Self::TYPE,
11414                next,
11415            });
11416        }
11417        x
11418    }
11419}
11420#[repr(C)]
11421#[derive(Copy, Clone, Debug)]
11422#[doc = "See [XrSpacesLocateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpacesLocateInfo)"]
11423pub struct SpacesLocateInfo {
11424    pub ty: StructureType,
11425    pub next: *const c_void,
11426    pub base_space: Space,
11427    pub time: Time,
11428    pub space_count: u32,
11429    pub spaces: *const Space,
11430}
11431impl SpacesLocateInfo {
11432    pub const TYPE: StructureType = StructureType::SPACES_LOCATE_INFO;
11433}
11434pub type SpacesLocateInfoKHR = SpacesLocateInfo;
11435#[repr(C)]
11436#[derive(Copy, Clone, Debug)]
11437#[doc = "See [XrSpaceLocations](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocations)"]
11438pub struct SpaceLocations {
11439    pub ty: StructureType,
11440    pub next: *mut c_void,
11441    pub location_count: u32,
11442    pub locations: *mut SpaceLocationData,
11443}
11444impl SpaceLocations {
11445    pub const TYPE: StructureType = StructureType::SPACE_LOCATIONS;
11446    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11447    #[inline]
11448    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11449        let mut x = MaybeUninit::<Self>::uninit();
11450        unsafe {
11451            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11452                ty: Self::TYPE,
11453                next,
11454            });
11455        }
11456        x
11457    }
11458}
11459pub type SpaceLocationsKHR = SpaceLocations;
11460#[repr(C)]
11461#[derive(Copy, Clone, Debug, Default, PartialEq)]
11462#[doc = "See [XrSpaceLocationData](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocationData)"]
11463pub struct SpaceLocationData {
11464    pub location_flags: SpaceLocationFlags,
11465    pub pose: Posef,
11466}
11467pub type SpaceLocationDataKHR = SpaceLocationData;
11468#[repr(C)]
11469#[derive(Copy, Clone, Debug)]
11470#[doc = "See [XrSpaceVelocities](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocities)"]
11471pub struct SpaceVelocities {
11472    pub ty: StructureType,
11473    pub next: *mut c_void,
11474    pub velocity_count: u32,
11475    pub velocities: *mut SpaceVelocityData,
11476}
11477impl SpaceVelocities {
11478    pub const TYPE: StructureType = StructureType::SPACE_VELOCITIES;
11479    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11480    #[inline]
11481    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11482        let mut x = MaybeUninit::<Self>::uninit();
11483        unsafe {
11484            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11485                ty: Self::TYPE,
11486                next,
11487            });
11488        }
11489        x
11490    }
11491}
11492pub type SpaceVelocitiesKHR = SpaceVelocities;
11493#[repr(C)]
11494#[derive(Copy, Clone, Debug, Default, PartialEq)]
11495#[doc = "See [XrSpaceVelocityData](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocityData)"]
11496pub struct SpaceVelocityData {
11497    pub velocity_flags: SpaceVelocityFlags,
11498    pub linear_velocity: Vector3f,
11499    pub angular_velocity: Vector3f,
11500}
11501pub type SpaceVelocityDataKHR = SpaceVelocityData;
11502#[doc = r" Function pointer prototypes"]
11503pub mod pfn {
11504    use super::*;
11505    pub use crate::platform::EglGetProcAddressMNDX;
11506    pub type VoidFunction = unsafe extern "system" fn();
11507    pub type DebugUtilsMessengerCallbackEXT = unsafe extern "system" fn(
11508        DebugUtilsMessageSeverityFlagsEXT,
11509        DebugUtilsMessageTypeFlagsEXT,
11510        *const DebugUtilsMessengerCallbackDataEXT,
11511        *mut c_void,
11512    ) -> Bool32;
11513    #[doc = "See [xrNegotiateLoaderRuntimeInterface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrNegotiateLoaderRuntimeInterface)"]
11514    pub type NegotiateLoaderRuntimeInterface = unsafe extern "system" fn(
11515        loader_info: *const NegotiateLoaderInfo,
11516        runtime_request: *mut NegotiateRuntimeRequest,
11517    ) -> Result;
11518    #[doc = "See [xrNegotiateLoaderApiLayerInterface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrNegotiateLoaderApiLayerInterface)"]
11519    pub type NegotiateLoaderApiLayerInterface = unsafe extern "system" fn(
11520        loader_info: *const NegotiateLoaderInfo,
11521        layer_name: *const c_char,
11522        api_layer_request: *mut NegotiateApiLayerRequest,
11523    ) -> Result;
11524    #[doc = "See [xrCreateApiLayerInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateApiLayerInstance)"]
11525    pub type CreateApiLayerInstance = unsafe extern "system" fn(
11526        info: *const InstanceCreateInfo,
11527        layer_info: *const ApiLayerCreateInfo,
11528        instance: *mut Instance,
11529    ) -> Result;
11530    #[doc = "See [xrGetInstanceProcAddr](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInstanceProcAddr)"]
11531    pub type GetInstanceProcAddr = unsafe extern "system" fn(
11532        instance: Instance,
11533        name: *const c_char,
11534        function: *mut Option<pfn::VoidFunction>,
11535    ) -> Result;
11536    #[doc = "See [xrEnumerateApiLayerProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateApiLayerProperties)"]
11537    pub type EnumerateApiLayerProperties = unsafe extern "system" fn(
11538        property_capacity_input: u32,
11539        property_count_output: *mut u32,
11540        properties: *mut ApiLayerProperties,
11541    ) -> Result;
11542    #[doc = "See [xrEnumerateInstanceExtensionProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateInstanceExtensionProperties)"]
11543    pub type EnumerateInstanceExtensionProperties = unsafe extern "system" fn(
11544        layer_name: *const c_char,
11545        property_capacity_input: u32,
11546        property_count_output: *mut u32,
11547        properties: *mut ExtensionProperties,
11548    ) -> Result;
11549    #[doc = "See [xrCreateInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateInstance)"]
11550    pub type CreateInstance = unsafe extern "system" fn(
11551        create_info: *const InstanceCreateInfo,
11552        instance: *mut Instance,
11553    ) -> Result;
11554    #[doc = "See [xrDestroyInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyInstance)"]
11555    pub type DestroyInstance = unsafe extern "system" fn(instance: Instance) -> Result;
11556    #[doc = "See [xrResultToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrResultToString)"]
11557    pub type ResultToString =
11558        unsafe extern "system" fn(instance: Instance, value: Result, buffer: *mut c_char) -> Result;
11559    #[doc = "See [xrStructureTypeToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStructureTypeToString)"]
11560    pub type StructureTypeToString = unsafe extern "system" fn(
11561        instance: Instance,
11562        value: StructureType,
11563        buffer: *mut c_char,
11564    ) -> Result;
11565    #[doc = "See [xrGetInstanceProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInstanceProperties)"]
11566    pub type GetInstanceProperties = unsafe extern "system" fn(
11567        instance: Instance,
11568        instance_properties: *mut InstanceProperties,
11569    ) -> Result;
11570    #[doc = "See [xrGetSystem](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSystem)"]
11571    pub type GetSystem = unsafe extern "system" fn(
11572        instance: Instance,
11573        get_info: *const SystemGetInfo,
11574        system_id: *mut SystemId,
11575    ) -> Result;
11576    #[doc = "See [xrGetSystemProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSystemProperties)"]
11577    pub type GetSystemProperties = unsafe extern "system" fn(
11578        instance: Instance,
11579        system_id: SystemId,
11580        properties: *mut SystemProperties,
11581    ) -> Result;
11582    #[doc = "See [xrCreateSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSession)"]
11583    pub type CreateSession = unsafe extern "system" fn(
11584        instance: Instance,
11585        create_info: *const SessionCreateInfo,
11586        session: *mut Session,
11587    ) -> Result;
11588    #[doc = "See [xrDestroySession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySession)"]
11589    pub type DestroySession = unsafe extern "system" fn(session: Session) -> Result;
11590    #[doc = "See [xrDestroySpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpace)"]
11591    pub type DestroySpace = unsafe extern "system" fn(space: Space) -> Result;
11592    #[doc = "See [xrEnumerateSwapchainFormats](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSwapchainFormats)"]
11593    pub type EnumerateSwapchainFormats = unsafe extern "system" fn(
11594        session: Session,
11595        format_capacity_input: u32,
11596        format_count_output: *mut u32,
11597        formats: *mut i64,
11598    ) -> Result;
11599    #[doc = "See [xrCreateSwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSwapchain)"]
11600    pub type CreateSwapchain = unsafe extern "system" fn(
11601        session: Session,
11602        create_info: *const SwapchainCreateInfo,
11603        swapchain: *mut Swapchain,
11604    ) -> Result;
11605    #[doc = "See [xrDestroySwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySwapchain)"]
11606    pub type DestroySwapchain = unsafe extern "system" fn(swapchain: Swapchain) -> Result;
11607    #[doc = "See [xrEnumerateSwapchainImages](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSwapchainImages)"]
11608    pub type EnumerateSwapchainImages = unsafe extern "system" fn(
11609        swapchain: Swapchain,
11610        image_capacity_input: u32,
11611        image_count_output: *mut u32,
11612        images: *mut SwapchainImageBaseHeader,
11613    ) -> Result;
11614    #[doc = "See [xrAcquireSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAcquireSwapchainImage)"]
11615    pub type AcquireSwapchainImage = unsafe extern "system" fn(
11616        swapchain: Swapchain,
11617        acquire_info: *const SwapchainImageAcquireInfo,
11618        index: *mut u32,
11619    ) -> Result;
11620    #[doc = "See [xrWaitSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrWaitSwapchainImage)"]
11621    pub type WaitSwapchainImage = unsafe extern "system" fn(
11622        swapchain: Swapchain,
11623        wait_info: *const SwapchainImageWaitInfo,
11624    ) -> Result;
11625    #[doc = "See [xrReleaseSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrReleaseSwapchainImage)"]
11626    pub type ReleaseSwapchainImage = unsafe extern "system" fn(
11627        swapchain: Swapchain,
11628        release_info: *const SwapchainImageReleaseInfo,
11629    ) -> Result;
11630    #[doc = "See [xrBeginSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginSession)"]
11631    pub type BeginSession =
11632        unsafe extern "system" fn(session: Session, begin_info: *const SessionBeginInfo) -> Result;
11633    #[doc = "See [xrEndSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEndSession)"]
11634    pub type EndSession = unsafe extern "system" fn(session: Session) -> Result;
11635    #[doc = "See [xrRequestExitSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestExitSession)"]
11636    pub type RequestExitSession = unsafe extern "system" fn(session: Session) -> Result;
11637    #[doc = "See [xrEnumerateReferenceSpaces](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateReferenceSpaces)"]
11638    pub type EnumerateReferenceSpaces = unsafe extern "system" fn(
11639        session: Session,
11640        space_capacity_input: u32,
11641        space_count_output: *mut u32,
11642        spaces: *mut ReferenceSpaceType,
11643    ) -> Result;
11644    #[doc = "See [xrCreateReferenceSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateReferenceSpace)"]
11645    pub type CreateReferenceSpace = unsafe extern "system" fn(
11646        session: Session,
11647        create_info: *const ReferenceSpaceCreateInfo,
11648        space: *mut Space,
11649    ) -> Result;
11650    #[doc = "See [xrCreateActionSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateActionSpace)"]
11651    pub type CreateActionSpace = unsafe extern "system" fn(
11652        session: Session,
11653        create_info: *const ActionSpaceCreateInfo,
11654        space: *mut Space,
11655    ) -> Result;
11656    #[doc = "See [xrLocateSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpace)"]
11657    pub type LocateSpace = unsafe extern "system" fn(
11658        space: Space,
11659        base_space: Space,
11660        time: Time,
11661        location: *mut SpaceLocation,
11662    ) -> Result;
11663    #[doc = "See [xrEnumerateViewConfigurations](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViewConfigurations)"]
11664    pub type EnumerateViewConfigurations = unsafe extern "system" fn(
11665        instance: Instance,
11666        system_id: SystemId,
11667        view_configuration_type_capacity_input: u32,
11668        view_configuration_type_count_output: *mut u32,
11669        view_configuration_types: *mut ViewConfigurationType,
11670    ) -> Result;
11671    #[doc = "See [xrEnumerateEnvironmentBlendModes](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateEnvironmentBlendModes)"]
11672    pub type EnumerateEnvironmentBlendModes = unsafe extern "system" fn(
11673        instance: Instance,
11674        system_id: SystemId,
11675        view_configuration_type: ViewConfigurationType,
11676        environment_blend_mode_capacity_input: u32,
11677        environment_blend_mode_count_output: *mut u32,
11678        environment_blend_modes: *mut EnvironmentBlendMode,
11679    ) -> Result;
11680    #[doc = "See [xrGetViewConfigurationProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetViewConfigurationProperties)"]
11681    pub type GetViewConfigurationProperties = unsafe extern "system" fn(
11682        instance: Instance,
11683        system_id: SystemId,
11684        view_configuration_type: ViewConfigurationType,
11685        configuration_properties: *mut ViewConfigurationProperties,
11686    ) -> Result;
11687    #[doc = "See [xrEnumerateViewConfigurationViews](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViewConfigurationViews)"]
11688    pub type EnumerateViewConfigurationViews = unsafe extern "system" fn(
11689        instance: Instance,
11690        system_id: SystemId,
11691        view_configuration_type: ViewConfigurationType,
11692        view_capacity_input: u32,
11693        view_count_output: *mut u32,
11694        views: *mut ViewConfigurationView,
11695    ) -> Result;
11696    #[doc = "See [xrBeginFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginFrame)"]
11697    pub type BeginFrame = unsafe extern "system" fn(
11698        session: Session,
11699        frame_begin_info: *const FrameBeginInfo,
11700    ) -> Result;
11701    #[doc = "See [xrLocateViews](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateViews)"]
11702    pub type LocateViews = unsafe extern "system" fn(
11703        session: Session,
11704        view_locate_info: *const ViewLocateInfo,
11705        view_state: *mut ViewState,
11706        view_capacity_input: u32,
11707        view_count_output: *mut u32,
11708        views: *mut View,
11709    ) -> Result;
11710    #[doc = "See [xrEndFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEndFrame)"]
11711    pub type EndFrame =
11712        unsafe extern "system" fn(session: Session, frame_end_info: *const FrameEndInfo) -> Result;
11713    #[doc = "See [xrWaitFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrWaitFrame)"]
11714    pub type WaitFrame = unsafe extern "system" fn(
11715        session: Session,
11716        frame_wait_info: *const FrameWaitInfo,
11717        frame_state: *mut FrameState,
11718    ) -> Result;
11719    #[doc = "See [xrApplyHapticFeedback](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyHapticFeedback)"]
11720    pub type ApplyHapticFeedback = unsafe extern "system" fn(
11721        session: Session,
11722        haptic_action_info: *const HapticActionInfo,
11723        haptic_feedback: *const HapticBaseHeader,
11724    ) -> Result;
11725    #[doc = "See [xrStopHapticFeedback](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStopHapticFeedback)"]
11726    pub type StopHapticFeedback = unsafe extern "system" fn(
11727        session: Session,
11728        haptic_action_info: *const HapticActionInfo,
11729    ) -> Result;
11730    #[doc = "See [xrPollEvent](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPollEvent)"]
11731    pub type PollEvent =
11732        unsafe extern "system" fn(instance: Instance, event_data: *mut EventDataBuffer) -> Result;
11733    #[doc = "See [xrStringToPath](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStringToPath)"]
11734    pub type StringToPath = unsafe extern "system" fn(
11735        instance: Instance,
11736        path_string: *const c_char,
11737        path: *mut Path,
11738    ) -> Result;
11739    #[doc = "See [xrPathToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPathToString)"]
11740    pub type PathToString = unsafe extern "system" fn(
11741        instance: Instance,
11742        path: Path,
11743        buffer_capacity_input: u32,
11744        buffer_count_output: *mut u32,
11745        buffer: *mut c_char,
11746    ) -> Result;
11747    #[doc = "See [xrGetReferenceSpaceBoundsRect](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetReferenceSpaceBoundsRect)"]
11748    pub type GetReferenceSpaceBoundsRect = unsafe extern "system" fn(
11749        session: Session,
11750        reference_space_type: ReferenceSpaceType,
11751        bounds: *mut Extent2Df,
11752    ) -> Result;
11753    #[cfg(target_os = "android")]
11754    #[doc = "See [xrSetAndroidApplicationThreadKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetAndroidApplicationThreadKHR) - defined by [XR_KHR_android_thread_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_android_thread_settings)"]
11755    pub type SetAndroidApplicationThreadKHR = unsafe extern "system" fn(
11756        session: Session,
11757        thread_type: AndroidThreadTypeKHR,
11758        thread_id: u32,
11759    ) -> Result;
11760    #[cfg(target_os = "android")]
11761    #[doc = "See [xrCreateSwapchainAndroidSurfaceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSwapchainAndroidSurfaceKHR) - defined by [XR_KHR_android_surface_swapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_android_surface_swapchain)"]
11762    pub type CreateSwapchainAndroidSurfaceKHR = unsafe extern "system" fn(
11763        session: Session,
11764        info: *const SwapchainCreateInfo,
11765        swapchain: *mut Swapchain,
11766        surface: *mut jobject,
11767    ) -> Result;
11768    #[doc = "See [xrGetActionStateBoolean](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateBoolean)"]
11769    pub type GetActionStateBoolean = unsafe extern "system" fn(
11770        session: Session,
11771        get_info: *const ActionStateGetInfo,
11772        state: *mut ActionStateBoolean,
11773    ) -> Result;
11774    #[doc = "See [xrGetActionStateFloat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateFloat)"]
11775    pub type GetActionStateFloat = unsafe extern "system" fn(
11776        session: Session,
11777        get_info: *const ActionStateGetInfo,
11778        state: *mut ActionStateFloat,
11779    ) -> Result;
11780    #[doc = "See [xrGetActionStateVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateVector2f)"]
11781    pub type GetActionStateVector2f = unsafe extern "system" fn(
11782        session: Session,
11783        get_info: *const ActionStateGetInfo,
11784        state: *mut ActionStateVector2f,
11785    ) -> Result;
11786    #[doc = "See [xrGetActionStatePose](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStatePose)"]
11787    pub type GetActionStatePose = unsafe extern "system" fn(
11788        session: Session,
11789        get_info: *const ActionStateGetInfo,
11790        state: *mut ActionStatePose,
11791    ) -> Result;
11792    #[doc = "See [xrCreateActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateActionSet)"]
11793    pub type CreateActionSet = unsafe extern "system" fn(
11794        instance: Instance,
11795        create_info: *const ActionSetCreateInfo,
11796        action_set: *mut ActionSet,
11797    ) -> Result;
11798    #[doc = "See [xrDestroyActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyActionSet)"]
11799    pub type DestroyActionSet = unsafe extern "system" fn(action_set: ActionSet) -> Result;
11800    #[doc = "See [xrCreateAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateAction)"]
11801    pub type CreateAction = unsafe extern "system" fn(
11802        action_set: ActionSet,
11803        create_info: *const ActionCreateInfo,
11804        action: *mut Action,
11805    ) -> Result;
11806    #[doc = "See [xrDestroyAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyAction)"]
11807    pub type DestroyAction = unsafe extern "system" fn(action: Action) -> Result;
11808    #[doc = "See [xrSuggestInteractionProfileBindings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSuggestInteractionProfileBindings)"]
11809    pub type SuggestInteractionProfileBindings = unsafe extern "system" fn(
11810        instance: Instance,
11811        suggested_bindings: *const InteractionProfileSuggestedBinding,
11812    ) -> Result;
11813    #[doc = "See [xrAttachSessionActionSets](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAttachSessionActionSets)"]
11814    pub type AttachSessionActionSets = unsafe extern "system" fn(
11815        session: Session,
11816        attach_info: *const SessionActionSetsAttachInfo,
11817    ) -> Result;
11818    #[doc = "See [xrGetCurrentInteractionProfile](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetCurrentInteractionProfile)"]
11819    pub type GetCurrentInteractionProfile = unsafe extern "system" fn(
11820        session: Session,
11821        top_level_user_path: Path,
11822        interaction_profile: *mut InteractionProfileState,
11823    ) -> Result;
11824    #[doc = "See [xrSyncActions](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSyncActions)"]
11825    pub type SyncActions =
11826        unsafe extern "system" fn(session: Session, sync_info: *const ActionsSyncInfo) -> Result;
11827    #[doc = "See [xrEnumerateBoundSourcesForAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateBoundSourcesForAction)"]
11828    pub type EnumerateBoundSourcesForAction = unsafe extern "system" fn(
11829        session: Session,
11830        enumerate_info: *const BoundSourcesForActionEnumerateInfo,
11831        source_capacity_input: u32,
11832        source_count_output: *mut u32,
11833        sources: *mut Path,
11834    ) -> Result;
11835    #[doc = "See [xrGetInputSourceLocalizedName](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInputSourceLocalizedName)"]
11836    pub type GetInputSourceLocalizedName = unsafe extern "system" fn(
11837        session: Session,
11838        get_info: *const InputSourceLocalizedNameGetInfo,
11839        buffer_capacity_input: u32,
11840        buffer_count_output: *mut u32,
11841        buffer: *mut c_char,
11842    ) -> Result;
11843    #[doc = "See [xrGetVulkanInstanceExtensionsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanInstanceExtensionsKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11844    pub type GetVulkanInstanceExtensionsKHR = unsafe extern "system" fn(
11845        instance: Instance,
11846        system_id: SystemId,
11847        buffer_capacity_input: u32,
11848        buffer_count_output: *mut u32,
11849        buffer: *mut c_char,
11850    ) -> Result;
11851    #[doc = "See [xrGetVulkanDeviceExtensionsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanDeviceExtensionsKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11852    pub type GetVulkanDeviceExtensionsKHR = unsafe extern "system" fn(
11853        instance: Instance,
11854        system_id: SystemId,
11855        buffer_capacity_input: u32,
11856        buffer_count_output: *mut u32,
11857        buffer: *mut c_char,
11858    ) -> Result;
11859    #[doc = "See [xrGetVulkanGraphicsDeviceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsDeviceKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11860    pub type GetVulkanGraphicsDeviceKHR = unsafe extern "system" fn(
11861        instance: Instance,
11862        system_id: SystemId,
11863        vk_instance: VkInstance,
11864        vk_physical_device: *mut VkPhysicalDevice,
11865    ) -> Result;
11866    #[doc = "See [xrGetOpenGLGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetOpenGLGraphicsRequirementsKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
11867    pub type GetOpenGLGraphicsRequirementsKHR = unsafe extern "system" fn(
11868        instance: Instance,
11869        system_id: SystemId,
11870        graphics_requirements: *mut GraphicsRequirementsOpenGLKHR,
11871    ) -> Result;
11872    #[doc = "See [xrGetOpenGLESGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetOpenGLESGraphicsRequirementsKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
11873    pub type GetOpenGLESGraphicsRequirementsKHR = unsafe extern "system" fn(
11874        instance: Instance,
11875        system_id: SystemId,
11876        graphics_requirements: *mut GraphicsRequirementsOpenGLESKHR,
11877    ) -> Result;
11878    #[doc = "See [xrGetVulkanGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsRequirementsKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11879    pub type GetVulkanGraphicsRequirementsKHR = unsafe extern "system" fn(
11880        instance: Instance,
11881        system_id: SystemId,
11882        graphics_requirements: *mut GraphicsRequirementsVulkanKHR,
11883    ) -> Result;
11884    #[cfg(windows)]
11885    #[doc = "See [xrGetD3D11GraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetD3D11GraphicsRequirementsKHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
11886    pub type GetD3D11GraphicsRequirementsKHR = unsafe extern "system" fn(
11887        instance: Instance,
11888        system_id: SystemId,
11889        graphics_requirements: *mut GraphicsRequirementsD3D11KHR,
11890    ) -> Result;
11891    #[cfg(windows)]
11892    #[doc = "See [xrGetD3D12GraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetD3D12GraphicsRequirementsKHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
11893    pub type GetD3D12GraphicsRequirementsKHR = unsafe extern "system" fn(
11894        instance: Instance,
11895        system_id: SystemId,
11896        graphics_requirements: *mut GraphicsRequirementsD3D12KHR,
11897    ) -> Result;
11898    #[doc = "See [xrPerfSettingsSetPerformanceLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPerfSettingsSetPerformanceLevelEXT) - defined by [XR_EXT_performance_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_performance_settings)"]
11899    pub type PerfSettingsSetPerformanceLevelEXT = unsafe extern "system" fn(
11900        session: Session,
11901        domain: PerfSettingsDomainEXT,
11902        level: PerfSettingsLevelEXT,
11903    ) -> Result;
11904    #[doc = "See [xrThermalGetTemperatureTrendEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrThermalGetTemperatureTrendEXT) - defined by [XR_EXT_thermal_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_thermal_query)"]
11905    pub type ThermalGetTemperatureTrendEXT = unsafe extern "system" fn(
11906        session: Session,
11907        domain: PerfSettingsDomainEXT,
11908        notification_level: *mut PerfSettingsNotificationLevelEXT,
11909        temp_headroom: *mut f32,
11910        temp_slope: *mut f32,
11911    ) -> Result;
11912    #[doc = "See [xrSetDebugUtilsObjectNameEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetDebugUtilsObjectNameEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11913    pub type SetDebugUtilsObjectNameEXT = unsafe extern "system" fn(
11914        instance: Instance,
11915        name_info: *const DebugUtilsObjectNameInfoEXT,
11916    ) -> Result;
11917    #[doc = "See [xrCreateDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateDebugUtilsMessengerEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11918    pub type CreateDebugUtilsMessengerEXT = unsafe extern "system" fn(
11919        instance: Instance,
11920        create_info: *const DebugUtilsMessengerCreateInfoEXT,
11921        messenger: *mut DebugUtilsMessengerEXT,
11922    ) -> Result;
11923    #[doc = "See [xrDestroyDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyDebugUtilsMessengerEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11924    pub type DestroyDebugUtilsMessengerEXT =
11925        unsafe extern "system" fn(messenger: DebugUtilsMessengerEXT) -> Result;
11926    #[doc = "See [xrSubmitDebugUtilsMessageEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSubmitDebugUtilsMessageEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11927    pub type SubmitDebugUtilsMessageEXT = unsafe extern "system" fn(
11928        instance: Instance,
11929        message_severity: DebugUtilsMessageSeverityFlagsEXT,
11930        message_types: DebugUtilsMessageTypeFlagsEXT,
11931        callback_data: *const DebugUtilsMessengerCallbackDataEXT,
11932    ) -> Result;
11933    #[doc = "See [xrSessionBeginDebugUtilsLabelRegionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSessionBeginDebugUtilsLabelRegionEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11934    pub type SessionBeginDebugUtilsLabelRegionEXT = unsafe extern "system" fn(
11935        session: Session,
11936        label_info: *const DebugUtilsLabelEXT,
11937    ) -> Result;
11938    #[doc = "See [xrSessionEndDebugUtilsLabelRegionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSessionEndDebugUtilsLabelRegionEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11939    pub type SessionEndDebugUtilsLabelRegionEXT =
11940        unsafe extern "system" fn(session: Session) -> Result;
11941    #[doc = "See [xrSessionInsertDebugUtilsLabelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSessionInsertDebugUtilsLabelEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11942    pub type SessionInsertDebugUtilsLabelEXT = unsafe extern "system" fn(
11943        session: Session,
11944        label_info: *const DebugUtilsLabelEXT,
11945    ) -> Result;
11946    #[cfg(windows)]
11947    #[doc = "See [xrConvertTimeToWin32PerformanceCounterKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertTimeToWin32PerformanceCounterKHR) - defined by [XR_KHR_win32_convert_performance_counter_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_win32_convert_performance_counter_time)"]
11948    pub type ConvertTimeToWin32PerformanceCounterKHR = unsafe extern "system" fn(
11949        instance: Instance,
11950        time: Time,
11951        performance_counter: *mut LARGE_INTEGER,
11952    ) -> Result;
11953    #[cfg(windows)]
11954    #[doc = "See [xrConvertWin32PerformanceCounterToTimeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertWin32PerformanceCounterToTimeKHR) - defined by [XR_KHR_win32_convert_performance_counter_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_win32_convert_performance_counter_time)"]
11955    pub type ConvertWin32PerformanceCounterToTimeKHR = unsafe extern "system" fn(
11956        instance: Instance,
11957        performance_counter: *const LARGE_INTEGER,
11958        time: *mut Time,
11959    ) -> Result;
11960    #[doc = "See [xrCreateVulkanInstanceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVulkanInstanceKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
11961    pub type CreateVulkanInstanceKHR = unsafe extern "system" fn(
11962        instance: Instance,
11963        create_info: *const VulkanInstanceCreateInfoKHR,
11964        vulkan_instance: *mut VkInstance,
11965        vulkan_result: *mut VkResult,
11966    ) -> Result;
11967    #[doc = "See [xrCreateVulkanDeviceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVulkanDeviceKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
11968    pub type CreateVulkanDeviceKHR = unsafe extern "system" fn(
11969        instance: Instance,
11970        create_info: *const VulkanDeviceCreateInfoKHR,
11971        vulkan_device: *mut VkDevice,
11972        vulkan_result: *mut VkResult,
11973    ) -> Result;
11974    #[doc = "See [xrGetVulkanGraphicsDevice2KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsDevice2KHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
11975    pub type GetVulkanGraphicsDevice2KHR = unsafe extern "system" fn(
11976        instance: Instance,
11977        get_info: *const VulkanGraphicsDeviceGetInfoKHR,
11978        vulkan_physical_device: *mut VkPhysicalDevice,
11979    ) -> Result;
11980    #[doc = "See [xrConvertTimeToTimespecTimeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertTimeToTimespecTimeKHR) - defined by [XR_KHR_convert_timespec_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_convert_timespec_time)"]
11981    pub type ConvertTimeToTimespecTimeKHR = unsafe extern "system" fn(
11982        instance: Instance,
11983        time: Time,
11984        timespec_time: *mut timespec,
11985    ) -> Result;
11986    #[doc = "See [xrConvertTimespecTimeToTimeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertTimespecTimeToTimeKHR) - defined by [XR_KHR_convert_timespec_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_convert_timespec_time)"]
11987    pub type ConvertTimespecTimeToTimeKHR = unsafe extern "system" fn(
11988        instance: Instance,
11989        timespec_time: *const timespec,
11990        time: *mut Time,
11991    ) -> Result;
11992    #[doc = "See [xrGetVisibilityMaskKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVisibilityMaskKHR) - defined by [XR_KHR_visibility_mask](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_visibility_mask)"]
11993    pub type GetVisibilityMaskKHR = unsafe extern "system" fn(
11994        session: Session,
11995        view_configuration_type: ViewConfigurationType,
11996        view_index: u32,
11997        visibility_mask_type: VisibilityMaskTypeKHR,
11998        visibility_mask: *mut VisibilityMaskKHR,
11999    ) -> Result;
12000    #[doc = "See [xrCreateSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor)"]
12001    pub type CreateSpatialAnchorMSFT = unsafe extern "system" fn(
12002        session: Session,
12003        create_info: *const SpatialAnchorCreateInfoMSFT,
12004        anchor: *mut SpatialAnchorMSFT,
12005    ) -> Result;
12006    #[doc = "See [xrCreateSpatialAnchorSpaceMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorSpaceMSFT) - defined by [XR_MSFT_spatial_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor)"]
12007    pub type CreateSpatialAnchorSpaceMSFT = unsafe extern "system" fn(
12008        session: Session,
12009        create_info: *const SpatialAnchorSpaceCreateInfoMSFT,
12010        space: *mut Space,
12011    ) -> Result;
12012    #[doc = "See [xrDestroySpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor)"]
12013    pub type DestroySpatialAnchorMSFT =
12014        unsafe extern "system" fn(anchor: SpatialAnchorMSFT) -> Result;
12015    #[doc = "See [xrSetInputDeviceActiveEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceActiveEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12016    pub type SetInputDeviceActiveEXT = unsafe extern "system" fn(
12017        session: Session,
12018        interaction_profile: Path,
12019        top_level_path: Path,
12020        is_active: Bool32,
12021    ) -> Result;
12022    #[doc = "See [xrSetInputDeviceStateBoolEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceStateBoolEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12023    pub type SetInputDeviceStateBoolEXT = unsafe extern "system" fn(
12024        session: Session,
12025        top_level_path: Path,
12026        input_source_path: Path,
12027        state: Bool32,
12028    ) -> Result;
12029    #[doc = "See [xrSetInputDeviceStateFloatEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceStateFloatEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12030    pub type SetInputDeviceStateFloatEXT = unsafe extern "system" fn(
12031        session: Session,
12032        top_level_path: Path,
12033        input_source_path: Path,
12034        state: f32,
12035    ) -> Result;
12036    #[doc = "See [xrSetInputDeviceStateVector2fEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceStateVector2fEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12037    pub type SetInputDeviceStateVector2fEXT = unsafe extern "system" fn(
12038        session: Session,
12039        top_level_path: Path,
12040        input_source_path: Path,
12041        state: Vector2f,
12042    ) -> Result;
12043    #[doc = "See [xrSetInputDeviceLocationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceLocationEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12044    pub type SetInputDeviceLocationEXT = unsafe extern "system" fn(
12045        session: Session,
12046        top_level_path: Path,
12047        input_source_path: Path,
12048        space: Space,
12049        pose: Posef,
12050    ) -> Result;
12051    #[doc = "See [xrInitializeLoaderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrInitializeLoaderKHR) - defined by [XR_KHR_loader_init](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_loader_init)"]
12052    pub type InitializeLoaderKHR =
12053        unsafe extern "system" fn(loader_init_info: *const LoaderInitInfoBaseHeaderKHR) -> Result;
12054    #[doc = "See [xrCreateSpatialGraphNodeSpaceMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialGraphNodeSpaceMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12055    pub type CreateSpatialGraphNodeSpaceMSFT = unsafe extern "system" fn(
12056        session: Session,
12057        create_info: *const SpatialGraphNodeSpaceCreateInfoMSFT,
12058        space: *mut Space,
12059    ) -> Result;
12060    #[doc = "See [xrTryCreateSpatialGraphStaticNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTryCreateSpatialGraphStaticNodeBindingMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12061    pub type TryCreateSpatialGraphStaticNodeBindingMSFT = unsafe extern "system" fn(
12062        session: Session,
12063        create_info: *const SpatialGraphStaticNodeBindingCreateInfoMSFT,
12064        node_binding: *mut SpatialGraphNodeBindingMSFT,
12065    ) -> Result;
12066    #[doc = "See [xrDestroySpatialGraphNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpatialGraphNodeBindingMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12067    pub type DestroySpatialGraphNodeBindingMSFT =
12068        unsafe extern "system" fn(node_binding: SpatialGraphNodeBindingMSFT) -> Result;
12069    #[doc = "See [xrGetSpatialGraphNodeBindingPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpatialGraphNodeBindingPropertiesMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12070    pub type GetSpatialGraphNodeBindingPropertiesMSFT = unsafe extern "system" fn(
12071        node_binding: SpatialGraphNodeBindingMSFT,
12072        get_info: *const SpatialGraphNodeBindingPropertiesGetInfoMSFT,
12073        properties: *mut SpatialGraphNodeBindingPropertiesMSFT,
12074    ) -> Result;
12075    #[doc = "See [xrCreateHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateHandTrackerEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
12076    pub type CreateHandTrackerEXT = unsafe extern "system" fn(
12077        session: Session,
12078        create_info: *const HandTrackerCreateInfoEXT,
12079        hand_tracker: *mut HandTrackerEXT,
12080    ) -> Result;
12081    #[doc = "See [xrDestroyHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyHandTrackerEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
12082    pub type DestroyHandTrackerEXT =
12083        unsafe extern "system" fn(hand_tracker: HandTrackerEXT) -> Result;
12084    #[doc = "See [xrLocateHandJointsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateHandJointsEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
12085    pub type LocateHandJointsEXT = unsafe extern "system" fn(
12086        hand_tracker: HandTrackerEXT,
12087        locate_info: *const HandJointsLocateInfoEXT,
12088        locations: *mut HandJointLocationsEXT,
12089    ) -> Result;
12090    #[doc = "See [xrCreateFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFaceTrackerFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
12091    pub type CreateFaceTrackerFB = unsafe extern "system" fn(
12092        session: Session,
12093        create_info: *const FaceTrackerCreateInfoFB,
12094        face_tracker: *mut FaceTrackerFB,
12095    ) -> Result;
12096    #[doc = "See [xrDestroyFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFaceTrackerFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
12097    pub type DestroyFaceTrackerFB =
12098        unsafe extern "system" fn(face_tracker: FaceTrackerFB) -> Result;
12099    #[doc = "See [xrGetFaceExpressionWeightsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFaceExpressionWeightsFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
12100    pub type GetFaceExpressionWeightsFB = unsafe extern "system" fn(
12101        face_tracker: FaceTrackerFB,
12102        expression_info: *const FaceExpressionInfoFB,
12103        expression_weights: *mut FaceExpressionWeightsFB,
12104    ) -> Result;
12105    #[doc = "See [xrCreateFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFaceTracker2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
12106    pub type CreateFaceTracker2FB = unsafe extern "system" fn(
12107        session: Session,
12108        create_info: *const FaceTrackerCreateInfo2FB,
12109        face_tracker: *mut FaceTracker2FB,
12110    ) -> Result;
12111    #[doc = "See [xrDestroyFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFaceTracker2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
12112    pub type DestroyFaceTracker2FB =
12113        unsafe extern "system" fn(face_tracker: FaceTracker2FB) -> Result;
12114    #[doc = "See [xrGetFaceExpressionWeights2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFaceExpressionWeights2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
12115    pub type GetFaceExpressionWeights2FB = unsafe extern "system" fn(
12116        face_tracker: FaceTracker2FB,
12117        expression_info: *const FaceExpressionInfo2FB,
12118        expression_weights: *mut FaceExpressionWeights2FB,
12119    ) -> Result;
12120    #[doc = "See [xrCreateBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateBodyTrackerFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12121    pub type CreateBodyTrackerFB = unsafe extern "system" fn(
12122        session: Session,
12123        create_info: *const BodyTrackerCreateInfoFB,
12124        body_tracker: *mut BodyTrackerFB,
12125    ) -> Result;
12126    #[doc = "See [xrDestroyBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyBodyTrackerFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12127    pub type DestroyBodyTrackerFB =
12128        unsafe extern "system" fn(body_tracker: BodyTrackerFB) -> Result;
12129    #[doc = "See [xrLocateBodyJointsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateBodyJointsFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12130    pub type LocateBodyJointsFB = unsafe extern "system" fn(
12131        body_tracker: BodyTrackerFB,
12132        locate_info: *const BodyJointsLocateInfoFB,
12133        locations: *mut BodyJointLocationsFB,
12134    ) -> Result;
12135    #[doc = "See [xrGetBodySkeletonFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetBodySkeletonFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12136    pub type GetBodySkeletonFB = unsafe extern "system" fn(
12137        body_tracker: BodyTrackerFB,
12138        skeleton: *mut BodySkeletonFB,
12139    ) -> Result;
12140    #[doc = "See [xrCreateEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateEyeTrackerFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
12141    pub type CreateEyeTrackerFB = unsafe extern "system" fn(
12142        session: Session,
12143        create_info: *const EyeTrackerCreateInfoFB,
12144        eye_tracker: *mut EyeTrackerFB,
12145    ) -> Result;
12146    #[doc = "See [xrDestroyEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyEyeTrackerFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
12147    pub type DestroyEyeTrackerFB = unsafe extern "system" fn(eye_tracker: EyeTrackerFB) -> Result;
12148    #[doc = "See [xrGetEyeGazesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetEyeGazesFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
12149    pub type GetEyeGazesFB = unsafe extern "system" fn(
12150        eye_tracker: EyeTrackerFB,
12151        gaze_info: *const EyeGazesInfoFB,
12152        eye_gazes: *mut EyeGazesFB,
12153    ) -> Result;
12154    #[doc = "See [xrCreateHandMeshSpaceMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateHandMeshSpaceMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
12155    pub type CreateHandMeshSpaceMSFT = unsafe extern "system" fn(
12156        hand_tracker: HandTrackerEXT,
12157        create_info: *const HandMeshSpaceCreateInfoMSFT,
12158        space: *mut Space,
12159    ) -> Result;
12160    #[doc = "See [xrUpdateHandMeshMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUpdateHandMeshMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
12161    pub type UpdateHandMeshMSFT = unsafe extern "system" fn(
12162        hand_tracker: HandTrackerEXT,
12163        update_info: *const HandMeshUpdateInfoMSFT,
12164        hand_mesh: *mut HandMeshMSFT,
12165    ) -> Result;
12166    #[doc = "See [xrGetControllerModelKeyMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetControllerModelKeyMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12167    pub type GetControllerModelKeyMSFT = unsafe extern "system" fn(
12168        session: Session,
12169        top_level_user_path: Path,
12170        controller_model_key_state: *mut ControllerModelKeyStateMSFT,
12171    ) -> Result;
12172    #[doc = "See [xrLoadControllerModelMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLoadControllerModelMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12173    pub type LoadControllerModelMSFT = unsafe extern "system" fn(
12174        session: Session,
12175        model_key: ControllerModelKeyMSFT,
12176        buffer_capacity_input: u32,
12177        buffer_count_output: *mut u32,
12178        buffer: *mut u8,
12179    ) -> Result;
12180    #[doc = "See [xrGetControllerModelPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetControllerModelPropertiesMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12181    pub type GetControllerModelPropertiesMSFT = unsafe extern "system" fn(
12182        session: Session,
12183        model_key: ControllerModelKeyMSFT,
12184        properties: *mut ControllerModelPropertiesMSFT,
12185    ) -> Result;
12186    #[doc = "See [xrGetControllerModelStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetControllerModelStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12187    pub type GetControllerModelStateMSFT = unsafe extern "system" fn(
12188        session: Session,
12189        model_key: ControllerModelKeyMSFT,
12190        state: *mut ControllerModelStateMSFT,
12191    ) -> Result;
12192    #[doc = "See [xrEnumerateDisplayRefreshRatesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateDisplayRefreshRatesFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
12193    pub type EnumerateDisplayRefreshRatesFB = unsafe extern "system" fn(
12194        session: Session,
12195        display_refresh_rate_capacity_input: u32,
12196        display_refresh_rate_count_output: *mut u32,
12197        display_refresh_rates: *mut f32,
12198    ) -> Result;
12199    #[doc = "See [xrGetDisplayRefreshRateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetDisplayRefreshRateFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
12200    pub type GetDisplayRefreshRateFB =
12201        unsafe extern "system" fn(session: Session, display_refresh_rate: *mut f32) -> Result;
12202    #[doc = "See [xrRequestDisplayRefreshRateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestDisplayRefreshRateFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
12203    pub type RequestDisplayRefreshRateFB =
12204        unsafe extern "system" fn(session: Session, display_refresh_rate: f32) -> Result;
12205    #[cfg(windows)]
12206    #[doc = "See [xrCreateSpatialAnchorFromPerceptionAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorFromPerceptionAnchorMSFT) - defined by [XR_MSFT_perception_anchor_interop](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_perception_anchor_interop)"]
12207    pub type CreateSpatialAnchorFromPerceptionAnchorMSFT = unsafe extern "system" fn(
12208        session: Session,
12209        perception_anchor: *mut IUnknown,
12210        anchor: *mut SpatialAnchorMSFT,
12211    ) -> Result;
12212    #[cfg(windows)]
12213    #[doc = "See [xrTryGetPerceptionAnchorFromSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTryGetPerceptionAnchorFromSpatialAnchorMSFT) - defined by [XR_MSFT_perception_anchor_interop](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_perception_anchor_interop)"]
12214    pub type TryGetPerceptionAnchorFromSpatialAnchorMSFT = unsafe extern "system" fn(
12215        session: Session,
12216        anchor: SpatialAnchorMSFT,
12217        perception_anchor: *mut *mut IUnknown,
12218    ) -> Result;
12219    #[doc = "See [xrUpdateSwapchainFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUpdateSwapchainFB) - defined by [XR_FB_swapchain_update_state](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state)"]
12220    pub type UpdateSwapchainFB = unsafe extern "system" fn(
12221        swapchain: Swapchain,
12222        state: *const SwapchainStateBaseHeaderFB,
12223    ) -> Result;
12224    #[doc = "See [xrGetSwapchainStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSwapchainStateFB) - defined by [XR_FB_swapchain_update_state](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state)"]
12225    pub type GetSwapchainStateFB = unsafe extern "system" fn(
12226        swapchain: Swapchain,
12227        state: *mut SwapchainStateBaseHeaderFB,
12228    ) -> Result;
12229    #[doc = "See [xrEnumerateColorSpacesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateColorSpacesFB) - defined by [XR_FB_color_space](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_color_space)"]
12230    pub type EnumerateColorSpacesFB = unsafe extern "system" fn(
12231        session: Session,
12232        color_space_capacity_input: u32,
12233        color_space_count_output: *mut u32,
12234        color_spaces: *mut ColorSpaceFB,
12235    ) -> Result;
12236    #[doc = "See [xrSetColorSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetColorSpaceFB) - defined by [XR_FB_color_space](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_color_space)"]
12237    pub type SetColorSpaceFB =
12238        unsafe extern "system" fn(session: Session, color_space: ColorSpaceFB) -> Result;
12239    #[doc = "See [xrCreateFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFoveationProfileFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
12240    pub type CreateFoveationProfileFB = unsafe extern "system" fn(
12241        session: Session,
12242        create_info: *const FoveationProfileCreateInfoFB,
12243        profile: *mut FoveationProfileFB,
12244    ) -> Result;
12245    #[doc = "See [xrDestroyFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFoveationProfileFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
12246    pub type DestroyFoveationProfileFB =
12247        unsafe extern "system" fn(profile: FoveationProfileFB) -> Result;
12248    #[doc = "See [xrGetFoveationEyeTrackedStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFoveationEyeTrackedStateMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
12249    pub type GetFoveationEyeTrackedStateMETA = unsafe extern "system" fn(
12250        session: Session,
12251        foveation_state: *mut FoveationEyeTrackedStateMETA,
12252    ) -> Result;
12253    #[doc = "See [xrGetHandMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetHandMeshFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
12254    pub type GetHandMeshFB = unsafe extern "system" fn(
12255        hand_tracker: HandTrackerEXT,
12256        mesh: *mut HandTrackingMeshFB,
12257    ) -> Result;
12258    #[doc = "See [xrEnumerateRenderModelPathsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateRenderModelPathsFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
12259    pub type EnumerateRenderModelPathsFB = unsafe extern "system" fn(
12260        session: Session,
12261        path_capacity_input: u32,
12262        path_count_output: *mut u32,
12263        paths: *mut RenderModelPathInfoFB,
12264    ) -> Result;
12265    #[doc = "See [xrGetRenderModelPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetRenderModelPropertiesFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
12266    pub type GetRenderModelPropertiesFB = unsafe extern "system" fn(
12267        session: Session,
12268        path: Path,
12269        properties: *mut RenderModelPropertiesFB,
12270    ) -> Result;
12271    #[doc = "See [xrLoadRenderModelFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLoadRenderModelFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
12272    pub type LoadRenderModelFB = unsafe extern "system" fn(
12273        session: Session,
12274        info: *const RenderModelLoadInfoFB,
12275        buffer: *mut RenderModelBufferFB,
12276    ) -> Result;
12277    #[doc = "See [xrQuerySystemTrackedKeyboardFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQuerySystemTrackedKeyboardFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
12278    pub type QuerySystemTrackedKeyboardFB = unsafe extern "system" fn(
12279        session: Session,
12280        query_info: *const KeyboardTrackingQueryFB,
12281        keyboard: *mut KeyboardTrackingDescriptionFB,
12282    ) -> Result;
12283    #[doc = "See [xrCreateKeyboardSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateKeyboardSpaceFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
12284    pub type CreateKeyboardSpaceFB = unsafe extern "system" fn(
12285        session: Session,
12286        create_info: *const KeyboardSpaceCreateInfoFB,
12287        keyboard_space: *mut Space,
12288    ) -> Result;
12289    #[doc = "See [xrSetEnvironmentDepthEstimationVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetEnvironmentDepthEstimationVARJO) - defined by [XR_VARJO_environment_depth_estimation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_environment_depth_estimation)"]
12290    pub type SetEnvironmentDepthEstimationVARJO =
12291        unsafe extern "system" fn(session: Session, enabled: Bool32) -> Result;
12292    #[doc = "See [xrEnumerateReprojectionModesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateReprojectionModesMSFT) - defined by [XR_MSFT_composition_layer_reprojection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_composition_layer_reprojection)"]
12293    pub type EnumerateReprojectionModesMSFT = unsafe extern "system" fn(
12294        instance: Instance,
12295        system_id: SystemId,
12296        view_configuration_type: ViewConfigurationType,
12297        mode_capacity_input: u32,
12298        mode_count_output: *mut u32,
12299        modes: *mut ReprojectionModeMSFT,
12300    ) -> Result;
12301    #[doc = "See [xrGetAudioOutputDeviceGuidOculus](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetAudioOutputDeviceGuidOculus) - defined by [XR_OCULUS_audio_device_guid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_audio_device_guid)"]
12302    pub type GetAudioOutputDeviceGuidOculus =
12303        unsafe extern "system" fn(instance: Instance, buffer: *mut wchar_t) -> Result;
12304    #[doc = "See [xrGetAudioInputDeviceGuidOculus](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetAudioInputDeviceGuidOculus) - defined by [XR_OCULUS_audio_device_guid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_audio_device_guid)"]
12305    pub type GetAudioInputDeviceGuidOculus =
12306        unsafe extern "system" fn(instance: Instance, buffer: *mut wchar_t) -> Result;
12307    #[doc = "See [xrCreateSpatialAnchorFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12308    pub type CreateSpatialAnchorFB = unsafe extern "system" fn(
12309        session: Session,
12310        info: *const SpatialAnchorCreateInfoFB,
12311        request_id: *mut AsyncRequestIdFB,
12312    ) -> Result;
12313    #[doc = "See [xrGetSpaceUuidFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceUuidFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12314    pub type GetSpaceUuidFB = unsafe extern "system" fn(space: Space, uuid: *mut UuidEXT) -> Result;
12315    #[doc = "See [xrEnumerateSpaceSupportedComponentsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSpaceSupportedComponentsFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12316    pub type EnumerateSpaceSupportedComponentsFB = unsafe extern "system" fn(
12317        space: Space,
12318        component_type_capacity_input: u32,
12319        component_type_count_output: *mut u32,
12320        component_types: *mut SpaceComponentTypeFB,
12321    ) -> Result;
12322    #[doc = "See [xrSetSpaceComponentStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetSpaceComponentStatusFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12323    pub type SetSpaceComponentStatusFB = unsafe extern "system" fn(
12324        space: Space,
12325        info: *const SpaceComponentStatusSetInfoFB,
12326        request_id: *mut AsyncRequestIdFB,
12327    ) -> Result;
12328    #[doc = "See [xrGetSpaceComponentStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceComponentStatusFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12329    pub type GetSpaceComponentStatusFB = unsafe extern "system" fn(
12330        space: Space,
12331        component_type: SpaceComponentTypeFB,
12332        status: *mut SpaceComponentStatusFB,
12333    ) -> Result;
12334    #[doc = "See [xrCreateTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateTriangleMeshFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12335    pub type CreateTriangleMeshFB = unsafe extern "system" fn(
12336        session: Session,
12337        create_info: *const TriangleMeshCreateInfoFB,
12338        out_triangle_mesh: *mut TriangleMeshFB,
12339    ) -> Result;
12340    #[doc = "See [xrDestroyTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyTriangleMeshFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12341    pub type DestroyTriangleMeshFB = unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12342    #[doc = "See [xrTriangleMeshGetVertexBufferFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshGetVertexBufferFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12343    pub type TriangleMeshGetVertexBufferFB = unsafe extern "system" fn(
12344        mesh: TriangleMeshFB,
12345        out_vertex_buffer: *mut *mut Vector3f,
12346    ) -> Result;
12347    #[doc = "See [xrTriangleMeshGetIndexBufferFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshGetIndexBufferFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12348    pub type TriangleMeshGetIndexBufferFB =
12349        unsafe extern "system" fn(mesh: TriangleMeshFB, out_index_buffer: *mut *mut u32) -> Result;
12350    #[doc = "See [xrTriangleMeshBeginUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshBeginUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12351    pub type TriangleMeshBeginUpdateFB = unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12352    #[doc = "See [xrTriangleMeshEndUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshEndUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12353    pub type TriangleMeshEndUpdateFB = unsafe extern "system" fn(
12354        mesh: TriangleMeshFB,
12355        vertex_count: u32,
12356        triangle_count: u32,
12357    ) -> Result;
12358    #[doc = "See [xrTriangleMeshBeginVertexBufferUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshBeginVertexBufferUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12359    pub type TriangleMeshBeginVertexBufferUpdateFB =
12360        unsafe extern "system" fn(mesh: TriangleMeshFB, out_vertex_count: *mut u32) -> Result;
12361    #[doc = "See [xrTriangleMeshEndVertexBufferUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshEndVertexBufferUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12362    pub type TriangleMeshEndVertexBufferUpdateFB =
12363        unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12364    #[doc = "See [xrCreatePassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12365    pub type CreatePassthroughFB = unsafe extern "system" fn(
12366        session: Session,
12367        create_info: *const PassthroughCreateInfoFB,
12368        out_passthrough: *mut PassthroughFB,
12369    ) -> Result;
12370    #[doc = "See [xrDestroyPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12371    pub type DestroyPassthroughFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12372    #[doc = "See [xrPassthroughStartFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughStartFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12373    pub type PassthroughStartFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12374    #[doc = "See [xrPassthroughPauseFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughPauseFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12375    pub type PassthroughPauseFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12376    #[doc = "See [xrCreatePassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughLayerFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12377    pub type CreatePassthroughLayerFB = unsafe extern "system" fn(
12378        session: Session,
12379        create_info: *const PassthroughLayerCreateInfoFB,
12380        out_layer: *mut PassthroughLayerFB,
12381    ) -> Result;
12382    #[doc = "See [xrDestroyPassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughLayerFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12383    pub type DestroyPassthroughLayerFB =
12384        unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12385    #[doc = "See [xrPassthroughLayerPauseFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerPauseFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12386    pub type PassthroughLayerPauseFB =
12387        unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12388    #[doc = "See [xrPassthroughLayerResumeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerResumeFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12389    pub type PassthroughLayerResumeFB =
12390        unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12391    #[doc = "See [xrPassthroughLayerSetStyleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerSetStyleFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12392    pub type PassthroughLayerSetStyleFB = unsafe extern "system" fn(
12393        layer: PassthroughLayerFB,
12394        style: *const PassthroughStyleFB,
12395    ) -> Result;
12396    #[doc = "See [xrCreateGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateGeometryInstanceFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12397    pub type CreateGeometryInstanceFB = unsafe extern "system" fn(
12398        session: Session,
12399        create_info: *const GeometryInstanceCreateInfoFB,
12400        out_geometry_instance: *mut GeometryInstanceFB,
12401    ) -> Result;
12402    #[doc = "See [xrDestroyGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyGeometryInstanceFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12403    pub type DestroyGeometryInstanceFB =
12404        unsafe extern "system" fn(instance: GeometryInstanceFB) -> Result;
12405    #[doc = "See [xrGeometryInstanceSetTransformFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGeometryInstanceSetTransformFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12406    pub type GeometryInstanceSetTransformFB = unsafe extern "system" fn(
12407        instance: GeometryInstanceFB,
12408        transformation: *const GeometryInstanceTransformFB,
12409    ) -> Result;
12410    #[doc = "See [xrQuerySpacesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQuerySpacesFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
12411    pub type QuerySpacesFB = unsafe extern "system" fn(
12412        session: Session,
12413        info: *const SpaceQueryInfoBaseHeaderFB,
12414        request_id: *mut AsyncRequestIdFB,
12415    ) -> Result;
12416    #[doc = "See [xrRetrieveSpaceQueryResultsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRetrieveSpaceQueryResultsFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
12417    pub type RetrieveSpaceQueryResultsFB = unsafe extern "system" fn(
12418        session: Session,
12419        request_id: AsyncRequestIdFB,
12420        results: *mut SpaceQueryResultsFB,
12421    ) -> Result;
12422    #[doc = "See [xrSaveSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSaveSpaceFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
12423    pub type SaveSpaceFB = unsafe extern "system" fn(
12424        session: Session,
12425        info: *const SpaceSaveInfoFB,
12426        request_id: *mut AsyncRequestIdFB,
12427    ) -> Result;
12428    #[doc = "See [xrEraseSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEraseSpaceFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
12429    pub type EraseSpaceFB = unsafe extern "system" fn(
12430        session: Session,
12431        info: *const SpaceEraseInfoFB,
12432        request_id: *mut AsyncRequestIdFB,
12433    ) -> Result;
12434    #[doc = "See [xrSaveSpaceListFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSaveSpaceListFB) - defined by [XR_FB_spatial_entity_storage_batch](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage_batch)"]
12435    pub type SaveSpaceListFB = unsafe extern "system" fn(
12436        session: Session,
12437        info: *const SpaceListSaveInfoFB,
12438        request_id: *mut AsyncRequestIdFB,
12439    ) -> Result;
12440    #[doc = "See [xrShareSpacesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrShareSpacesFB) - defined by [XR_FB_spatial_entity_sharing](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_sharing)"]
12441    pub type ShareSpacesFB = unsafe extern "system" fn(
12442        session: Session,
12443        info: *const SpaceShareInfoFB,
12444        request_id: *mut AsyncRequestIdFB,
12445    ) -> Result;
12446    #[doc = "See [xrGetSpaceContainerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceContainerFB) - defined by [XR_FB_spatial_entity_container](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_container)"]
12447    pub type GetSpaceContainerFB = unsafe extern "system" fn(
12448        session: Session,
12449        space: Space,
12450        space_container_output: *mut SpaceContainerFB,
12451    ) -> Result;
12452    #[doc = "See [xrGetSpaceTriangleMeshMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceTriangleMeshMETA) - defined by [XR_META_spatial_entity_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_spatial_entity_mesh)"]
12453    pub type GetSpaceTriangleMeshMETA = unsafe extern "system" fn(
12454        space: Space,
12455        get_info: *const SpaceTriangleMeshGetInfoMETA,
12456        triangle_mesh_output: *mut SpaceTriangleMeshMETA,
12457    ) -> Result;
12458    #[doc = "See [xrGetSpaceBoundingBox2DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceBoundingBox2DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12459    pub type GetSpaceBoundingBox2DFB = unsafe extern "system" fn(
12460        session: Session,
12461        space: Space,
12462        bounding_box2_d_output: *mut Rect2Df,
12463    ) -> Result;
12464    #[doc = "See [xrGetSpaceBoundingBox3DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceBoundingBox3DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12465    pub type GetSpaceBoundingBox3DFB = unsafe extern "system" fn(
12466        session: Session,
12467        space: Space,
12468        bounding_box3_d_output: *mut Rect3DfFB,
12469    ) -> Result;
12470    #[doc = "See [xrGetSpaceSemanticLabelsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceSemanticLabelsFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12471    pub type GetSpaceSemanticLabelsFB = unsafe extern "system" fn(
12472        session: Session,
12473        space: Space,
12474        semantic_labels_output: *mut SemanticLabelsFB,
12475    ) -> Result;
12476    #[doc = "See [xrGetSpaceBoundary2DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceBoundary2DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12477    pub type GetSpaceBoundary2DFB = unsafe extern "system" fn(
12478        session: Session,
12479        space: Space,
12480        boundary2_d_output: *mut Boundary2DFB,
12481    ) -> Result;
12482    #[doc = "See [xrGetSpaceRoomLayoutFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceRoomLayoutFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12483    pub type GetSpaceRoomLayoutFB = unsafe extern "system" fn(
12484        session: Session,
12485        space: Space,
12486        room_layout_output: *mut RoomLayoutFB,
12487    ) -> Result;
12488    #[doc = "See [xrRequestSceneCaptureFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestSceneCaptureFB) - defined by [XR_FB_scene_capture](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene_capture)"]
12489    pub type RequestSceneCaptureFB = unsafe extern "system" fn(
12490        session: Session,
12491        info: *const SceneCaptureRequestInfoFB,
12492        request_id: *mut AsyncRequestIdFB,
12493    ) -> Result;
12494    #[doc = "See [xrPassthroughLayerSetKeyboardHandsIntensityFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerSetKeyboardHandsIntensityFB) - defined by [XR_FB_passthrough_keyboard_hands](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough_keyboard_hands)"]
12495    pub type PassthroughLayerSetKeyboardHandsIntensityFB = unsafe extern "system" fn(
12496        layer: PassthroughLayerFB,
12497        intensity: *const PassthroughKeyboardHandsIntensityFB,
12498    ) -> Result;
12499    #[doc = "See [xrCreateSpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorStoreConnectionMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12500    pub type CreateSpatialAnchorStoreConnectionMSFT = unsafe extern "system" fn(
12501        session: Session,
12502        spatial_anchor_store: *mut SpatialAnchorStoreConnectionMSFT,
12503    ) -> Result;
12504    #[doc = "See [xrDestroySpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpatialAnchorStoreConnectionMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12505    pub type DestroySpatialAnchorStoreConnectionMSFT =
12506        unsafe extern "system" fn(spatial_anchor_store: SpatialAnchorStoreConnectionMSFT) -> Result;
12507    #[doc = "See [xrPersistSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPersistSpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12508    pub type PersistSpatialAnchorMSFT = unsafe extern "system" fn(
12509        spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12510        spatial_anchor_persistence_info: *const SpatialAnchorPersistenceInfoMSFT,
12511    ) -> Result;
12512    #[doc = "See [xrEnumeratePersistedSpatialAnchorNamesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumeratePersistedSpatialAnchorNamesMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12513    pub type EnumeratePersistedSpatialAnchorNamesMSFT = unsafe extern "system" fn(
12514        spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12515        spatial_anchor_name_capacity_input: u32,
12516        spatial_anchor_name_count_output: *mut u32,
12517        spatial_anchor_names: *mut SpatialAnchorPersistenceNameMSFT,
12518    ) -> Result;
12519    #[doc = "See [xrCreateSpatialAnchorFromPersistedNameMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorFromPersistedNameMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12520    pub type CreateSpatialAnchorFromPersistedNameMSFT = unsafe extern "system" fn(
12521        session: Session,
12522        spatial_anchor_create_info: *const SpatialAnchorFromPersistedAnchorCreateInfoMSFT,
12523        spatial_anchor: *mut SpatialAnchorMSFT,
12524    ) -> Result;
12525    #[doc = "See [xrUnpersistSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUnpersistSpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12526    pub type UnpersistSpatialAnchorMSFT = unsafe extern "system" fn(
12527        spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12528        spatial_anchor_persistence_name: *const SpatialAnchorPersistenceNameMSFT,
12529    ) -> Result;
12530    #[doc = "See [xrClearSpatialAnchorStoreMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrClearSpatialAnchorStoreMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12531    pub type ClearSpatialAnchorStoreMSFT =
12532        unsafe extern "system" fn(spatial_anchor_store: SpatialAnchorStoreConnectionMSFT) -> Result;
12533    #[doc = "See [xrCreateFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFacialTrackerHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
12534    pub type CreateFacialTrackerHTC = unsafe extern "system" fn(
12535        session: Session,
12536        create_info: *const FacialTrackerCreateInfoHTC,
12537        facial_tracker: *mut FacialTrackerHTC,
12538    ) -> Result;
12539    #[doc = "See [xrDestroyFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFacialTrackerHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
12540    pub type DestroyFacialTrackerHTC =
12541        unsafe extern "system" fn(facial_tracker: FacialTrackerHTC) -> Result;
12542    #[doc = "See [xrGetFacialExpressionsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFacialExpressionsHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
12543    pub type GetFacialExpressionsHTC = unsafe extern "system" fn(
12544        facial_tracker: FacialTrackerHTC,
12545        facial_expressions: *mut FacialExpressionsHTC,
12546    ) -> Result;
12547    #[doc = "See [xrCreatePassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
12548    pub type CreatePassthroughHTC = unsafe extern "system" fn(
12549        session: Session,
12550        create_info: *const PassthroughCreateInfoHTC,
12551        passthrough: *mut PassthroughHTC,
12552    ) -> Result;
12553    #[doc = "See [xrDestroyPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
12554    pub type DestroyPassthroughHTC =
12555        unsafe extern "system" fn(passthrough: PassthroughHTC) -> Result;
12556    #[doc = "See [xrCreateSpatialAnchorHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
12557    pub type CreateSpatialAnchorHTC = unsafe extern "system" fn(
12558        session: Session,
12559        create_info: *const SpatialAnchorCreateInfoHTC,
12560        anchor: *mut Space,
12561    ) -> Result;
12562    #[doc = "See [xrGetSpatialAnchorNameHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpatialAnchorNameHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
12563    pub type GetSpatialAnchorNameHTC =
12564        unsafe extern "system" fn(anchor: Space, name: *mut SpatialAnchorNameHTC) -> Result;
12565    #[doc = "See [xrEnumerateViveTrackerPathsHTCX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViveTrackerPathsHTCX) - defined by [XR_HTCX_vive_tracker_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTCX_vive_tracker_interaction)"]
12566    pub type EnumerateViveTrackerPathsHTCX = unsafe extern "system" fn(
12567        instance: Instance,
12568        path_capacity_input: u32,
12569        path_count_output: *mut u32,
12570        paths: *mut ViveTrackerPathsHTCX,
12571    ) -> Result;
12572    #[doc = "See [xrSetMarkerTrackingVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetMarkerTrackingVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12573    pub type SetMarkerTrackingVARJO =
12574        unsafe extern "system" fn(session: Session, enabled: Bool32) -> Result;
12575    #[doc = "See [xrSetMarkerTrackingTimeoutVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetMarkerTrackingTimeoutVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12576    pub type SetMarkerTrackingTimeoutVARJO =
12577        unsafe extern "system" fn(session: Session, marker_id: u64, timeout: Duration) -> Result;
12578    #[doc = "See [xrSetMarkerTrackingPredictionVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetMarkerTrackingPredictionVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12579    pub type SetMarkerTrackingPredictionVARJO =
12580        unsafe extern "system" fn(session: Session, marker_id: u64, enable: Bool32) -> Result;
12581    #[doc = "See [xrGetMarkerSizeVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerSizeVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12582    pub type GetMarkerSizeVARJO =
12583        unsafe extern "system" fn(session: Session, marker_id: u64, size: *mut Extent2Df) -> Result;
12584    #[doc = "See [xrCreateMarkerSpaceVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateMarkerSpaceVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12585    pub type CreateMarkerSpaceVARJO = unsafe extern "system" fn(
12586        session: Session,
12587        create_info: *const MarkerSpaceCreateInfoVARJO,
12588        space: *mut Space,
12589    ) -> Result;
12590    #[doc = "See [xrSetDigitalLensControlALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetDigitalLensControlALMALENCE) - defined by [XR_ALMALENCE_digital_lens_control](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ALMALENCE_digital_lens_control)"]
12591    pub type SetDigitalLensControlALMALENCE = unsafe extern "system" fn(
12592        session: Session,
12593        digital_lens_control: *const DigitalLensControlALMALENCE,
12594    ) -> Result;
12595    #[doc = "See [xrSetViewOffsetVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetViewOffsetVARJO) - defined by [XR_VARJO_view_offset](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_view_offset)"]
12596    pub type SetViewOffsetVARJO =
12597        unsafe extern "system" fn(session: Session, offset: f32) -> Result;
12598    #[doc = "See [xrEnumerateExternalCamerasOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateExternalCamerasOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
12599    pub type EnumerateExternalCamerasOCULUS = unsafe extern "system" fn(
12600        session: Session,
12601        camera_capacity_input: u32,
12602        camera_count_output: *mut u32,
12603        cameras: *mut ExternalCameraOCULUS,
12604    ) -> Result;
12605    #[doc = "See [xrCreatePassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughColorLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
12606    pub type CreatePassthroughColorLutMETA = unsafe extern "system" fn(
12607        passthrough: PassthroughFB,
12608        create_info: *const PassthroughColorLutCreateInfoMETA,
12609        color_lut: *mut PassthroughColorLutMETA,
12610    ) -> Result;
12611    #[doc = "See [xrDestroyPassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughColorLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
12612    pub type DestroyPassthroughColorLutMETA =
12613        unsafe extern "system" fn(color_lut: PassthroughColorLutMETA) -> Result;
12614    #[doc = "See [xrUpdatePassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUpdatePassthroughColorLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
12615    pub type UpdatePassthroughColorLutMETA = unsafe extern "system" fn(
12616        color_lut: PassthroughColorLutMETA,
12617        update_info: *const PassthroughColorLutUpdateInfoMETA,
12618    ) -> Result;
12619    #[doc = "See [xrEnumeratePerformanceMetricsCounterPathsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumeratePerformanceMetricsCounterPathsMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12620    pub type EnumeratePerformanceMetricsCounterPathsMETA = unsafe extern "system" fn(
12621        instance: Instance,
12622        counter_path_capacity_input: u32,
12623        counter_path_count_output: *mut u32,
12624        counter_paths: *mut Path,
12625    ) -> Result;
12626    #[doc = "See [xrSetPerformanceMetricsStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetPerformanceMetricsStateMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12627    pub type SetPerformanceMetricsStateMETA = unsafe extern "system" fn(
12628        session: Session,
12629        state: *const PerformanceMetricsStateMETA,
12630    ) -> Result;
12631    #[doc = "See [xrGetPerformanceMetricsStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPerformanceMetricsStateMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12632    pub type GetPerformanceMetricsStateMETA = unsafe extern "system" fn(
12633        session: Session,
12634        state: *mut PerformanceMetricsStateMETA,
12635    ) -> Result;
12636    #[doc = "See [xrQueryPerformanceMetricsCounterMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQueryPerformanceMetricsCounterMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12637    pub type QueryPerformanceMetricsCounterMETA = unsafe extern "system" fn(
12638        session: Session,
12639        counter_path: Path,
12640        counter: *mut PerformanceMetricsCounterMETA,
12641    ) -> Result;
12642    #[doc = "See [xrGetPassthroughPreferencesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPassthroughPreferencesMETA) - defined by [XR_META_passthrough_preferences](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_preferences)"]
12643    pub type GetPassthroughPreferencesMETA = unsafe extern "system" fn(
12644        session: Session,
12645        preferences: *mut PassthroughPreferencesMETA,
12646    ) -> Result;
12647    #[doc = "See [xrApplyFoveationHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyFoveationHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
12648    pub type ApplyFoveationHTC = unsafe extern "system" fn(
12649        session: Session,
12650        apply_info: *const FoveationApplyInfoHTC,
12651    ) -> Result;
12652    #[doc = "See [xrCreateSpaceFromCoordinateFrameUIDML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpaceFromCoordinateFrameUIDML) - defined by [XR_ML_compat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_compat)"]
12653    pub type CreateSpaceFromCoordinateFrameUIDML = unsafe extern "system" fn(
12654        session: Session,
12655        create_info: *const CoordinateSpaceCreateInfoML,
12656        space: *mut Space,
12657    ) -> Result;
12658    #[doc = "See [xrGetDeviceSampleRateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetDeviceSampleRateFB) - defined by [XR_FB_haptic_pcm](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_pcm)"]
12659    pub type GetDeviceSampleRateFB = unsafe extern "system" fn(
12660        session: Session,
12661        haptic_action_info: *const HapticActionInfo,
12662        device_sample_rate: *mut DevicePcmSampleRateGetInfoFB,
12663    ) -> Result;
12664    #[doc = "See [xrSetTrackingOptimizationSettingsHintQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetTrackingOptimizationSettingsHintQCOM) - defined by [XR_QCOM_tracking_optimization_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_QCOM_tracking_optimization_settings)"]
12665    pub type SetTrackingOptimizationSettingsHintQCOM = unsafe extern "system" fn(
12666        session: Session,
12667        domain: TrackingOptimizationSettingsDomainQCOM,
12668        hint: TrackingOptimizationSettingsHintQCOM,
12669    ) -> Result;
12670    #[doc = "See [xrCreateSpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpaceUserFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
12671    pub type CreateSpaceUserFB = unsafe extern "system" fn(
12672        session: Session,
12673        info: *const SpaceUserCreateInfoFB,
12674        user: *mut SpaceUserFB,
12675    ) -> Result;
12676    #[doc = "See [xrGetSpaceUserIdFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceUserIdFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
12677    pub type GetSpaceUserIdFB =
12678        unsafe extern "system" fn(user: SpaceUserFB, user_id: *mut SpaceUserIdFB) -> Result;
12679    #[doc = "See [xrDestroySpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpaceUserFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
12680    pub type DestroySpaceUserFB = unsafe extern "system" fn(user: SpaceUserFB) -> Result;
12681    #[doc = "See [xrGetRecommendedLayerResolutionMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetRecommendedLayerResolutionMETA) - defined by [XR_META_recommended_layer_resolution](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_recommended_layer_resolution)"]
12682    pub type GetRecommendedLayerResolutionMETA = unsafe extern "system" fn(
12683        session: Session,
12684        info: *const RecommendedLayerResolutionGetInfoMETA,
12685        resolution: *mut RecommendedLayerResolutionMETA,
12686    ) -> Result;
12687    #[doc = "See [xrApplyForceFeedbackCurlMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyForceFeedbackCurlMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
12688    pub type ApplyForceFeedbackCurlMNDX = unsafe extern "system" fn(
12689        hand_tracker: HandTrackerEXT,
12690        locations: *const ForceFeedbackCurlApplyLocationsMNDX,
12691    ) -> Result;
12692    #[doc = "See [xrCreatePlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePlaneDetectorEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12693    pub type CreatePlaneDetectorEXT = unsafe extern "system" fn(
12694        session: Session,
12695        create_info: *const PlaneDetectorCreateInfoEXT,
12696        plane_detector: *mut PlaneDetectorEXT,
12697    ) -> Result;
12698    #[doc = "See [xrDestroyPlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPlaneDetectorEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12699    pub type DestroyPlaneDetectorEXT =
12700        unsafe extern "system" fn(plane_detector: PlaneDetectorEXT) -> Result;
12701    #[doc = "See [xrBeginPlaneDetectionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginPlaneDetectionEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12702    pub type BeginPlaneDetectionEXT = unsafe extern "system" fn(
12703        plane_detector: PlaneDetectorEXT,
12704        begin_info: *const PlaneDetectorBeginInfoEXT,
12705    ) -> Result;
12706    #[doc = "See [xrGetPlaneDetectionStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPlaneDetectionStateEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12707    pub type GetPlaneDetectionStateEXT = unsafe extern "system" fn(
12708        plane_detector: PlaneDetectorEXT,
12709        state: *mut PlaneDetectionStateEXT,
12710    ) -> Result;
12711    #[doc = "See [xrGetPlaneDetectionsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPlaneDetectionsEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12712    pub type GetPlaneDetectionsEXT = unsafe extern "system" fn(
12713        plane_detector: PlaneDetectorEXT,
12714        info: *const PlaneDetectorGetInfoEXT,
12715        locations: *mut PlaneDetectorLocationsEXT,
12716    ) -> Result;
12717    #[doc = "See [xrGetPlanePolygonBufferEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPlanePolygonBufferEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12718    pub type GetPlanePolygonBufferEXT = unsafe extern "system" fn(
12719        plane_detector: PlaneDetectorEXT,
12720        plane_id: u64,
12721        polygon_buffer_index: u32,
12722        polygon_buffer: *mut PlaneDetectorPolygonBufferEXT,
12723    ) -> Result;
12724    #[doc = "See [xrCreateVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVirtualKeyboardMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12725    pub type CreateVirtualKeyboardMETA = unsafe extern "system" fn(
12726        session: Session,
12727        create_info: *const VirtualKeyboardCreateInfoMETA,
12728        keyboard: *mut VirtualKeyboardMETA,
12729    ) -> Result;
12730    #[doc = "See [xrDestroyVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyVirtualKeyboardMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12731    pub type DestroyVirtualKeyboardMETA =
12732        unsafe extern "system" fn(keyboard: VirtualKeyboardMETA) -> Result;
12733    #[doc = "See [xrCreateVirtualKeyboardSpaceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVirtualKeyboardSpaceMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12734    pub type CreateVirtualKeyboardSpaceMETA = unsafe extern "system" fn(
12735        session: Session,
12736        keyboard: VirtualKeyboardMETA,
12737        create_info: *const VirtualKeyboardSpaceCreateInfoMETA,
12738        keyboard_space: *mut Space,
12739    ) -> Result;
12740    #[doc = "See [xrSuggestVirtualKeyboardLocationMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSuggestVirtualKeyboardLocationMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12741    pub type SuggestVirtualKeyboardLocationMETA = unsafe extern "system" fn(
12742        keyboard: VirtualKeyboardMETA,
12743        location_info: *const VirtualKeyboardLocationInfoMETA,
12744    ) -> Result;
12745    #[doc = "See [xrGetVirtualKeyboardScaleMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardScaleMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12746    pub type GetVirtualKeyboardScaleMETA =
12747        unsafe extern "system" fn(keyboard: VirtualKeyboardMETA, scale: *mut f32) -> Result;
12748    #[doc = "See [xrSetVirtualKeyboardModelVisibilityMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetVirtualKeyboardModelVisibilityMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12749    pub type SetVirtualKeyboardModelVisibilityMETA = unsafe extern "system" fn(
12750        keyboard: VirtualKeyboardMETA,
12751        model_visibility: *const VirtualKeyboardModelVisibilitySetInfoMETA,
12752    ) -> Result;
12753    #[doc = "See [xrGetVirtualKeyboardModelAnimationStatesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardModelAnimationStatesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12754    pub type GetVirtualKeyboardModelAnimationStatesMETA = unsafe extern "system" fn(
12755        keyboard: VirtualKeyboardMETA,
12756        animation_states: *mut VirtualKeyboardModelAnimationStatesMETA,
12757    ) -> Result;
12758    #[doc = "See [xrGetVirtualKeyboardDirtyTexturesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardDirtyTexturesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12759    pub type GetVirtualKeyboardDirtyTexturesMETA = unsafe extern "system" fn(
12760        keyboard: VirtualKeyboardMETA,
12761        texture_id_capacity_input: u32,
12762        texture_id_count_output: *mut u32,
12763        texture_ids: *mut u64,
12764    ) -> Result;
12765    #[doc = "See [xrGetVirtualKeyboardTextureDataMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardTextureDataMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12766    pub type GetVirtualKeyboardTextureDataMETA = unsafe extern "system" fn(
12767        keyboard: VirtualKeyboardMETA,
12768        texture_id: u64,
12769        texture_data: *mut VirtualKeyboardTextureDataMETA,
12770    ) -> Result;
12771    #[doc = "See [xrSendVirtualKeyboardInputMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSendVirtualKeyboardInputMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12772    pub type SendVirtualKeyboardInputMETA = unsafe extern "system" fn(
12773        keyboard: VirtualKeyboardMETA,
12774        info: *const VirtualKeyboardInputInfoMETA,
12775        interactor_root_pose: *mut Posef,
12776    ) -> Result;
12777    #[doc = "See [xrChangeVirtualKeyboardTextContextMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrChangeVirtualKeyboardTextContextMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12778    pub type ChangeVirtualKeyboardTextContextMETA = unsafe extern "system" fn(
12779        keyboard: VirtualKeyboardMETA,
12780        change_info: *const VirtualKeyboardTextContextChangeInfoMETA,
12781    ) -> Result;
12782    #[doc = "See [xrEnableUserCalibrationEventsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnableUserCalibrationEventsML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
12783    pub type EnableUserCalibrationEventsML = unsafe extern "system" fn(
12784        instance: Instance,
12785        enable_info: *const UserCalibrationEnableEventsInfoML,
12786    ) -> Result;
12787    #[doc = "See [xrEnableLocalizationEventsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnableLocalizationEventsML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12788    pub type EnableLocalizationEventsML = unsafe extern "system" fn(
12789        session: Session,
12790        info: *const LocalizationEnableEventsInfoML,
12791    ) -> Result;
12792    #[doc = "See [xrQueryLocalizationMapsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQueryLocalizationMapsML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12793    pub type QueryLocalizationMapsML = unsafe extern "system" fn(
12794        session: Session,
12795        query_info: *const LocalizationMapQueryInfoBaseHeaderML,
12796        map_capacity_input: u32,
12797        map_count_output: *mut u32,
12798        maps: *mut LocalizationMapML,
12799    ) -> Result;
12800    #[doc = "See [xrRequestMapLocalizationML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestMapLocalizationML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12801    pub type RequestMapLocalizationML = unsafe extern "system" fn(
12802        session: Session,
12803        request_info: *const MapLocalizationRequestInfoML,
12804    ) -> Result;
12805    #[doc = "See [xrImportLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrImportLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12806    pub type ImportLocalizationMapML = unsafe extern "system" fn(
12807        session: Session,
12808        import_info: *const LocalizationMapImportInfoML,
12809        map_uuid: *mut UuidEXT,
12810    ) -> Result;
12811    #[doc = "See [xrCreateExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateExportedLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12812    pub type CreateExportedLocalizationMapML = unsafe extern "system" fn(
12813        session: Session,
12814        map_uuid: *const UuidEXT,
12815        map: *mut ExportedLocalizationMapML,
12816    ) -> Result;
12817    #[doc = "See [xrDestroyExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyExportedLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12818    pub type DestroyExportedLocalizationMapML =
12819        unsafe extern "system" fn(map: ExportedLocalizationMapML) -> Result;
12820    #[doc = "See [xrGetExportedLocalizationMapDataML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetExportedLocalizationMapDataML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12821    pub type GetExportedLocalizationMapDataML = unsafe extern "system" fn(
12822        map: ExportedLocalizationMapML,
12823        buffer_capacity_input: u32,
12824        buffer_count_output: *mut u32,
12825        buffer: *mut c_char,
12826    ) -> Result;
12827    #[doc = "See [xrCreateMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateMarkerDetectorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12828    pub type CreateMarkerDetectorML = unsafe extern "system" fn(
12829        session: Session,
12830        create_info: *const MarkerDetectorCreateInfoML,
12831        marker_detector: *mut MarkerDetectorML,
12832    ) -> Result;
12833    #[doc = "See [xrDestroyMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyMarkerDetectorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12834    pub type DestroyMarkerDetectorML =
12835        unsafe extern "system" fn(marker_detector: MarkerDetectorML) -> Result;
12836    #[doc = "See [xrSnapshotMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSnapshotMarkerDetectorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12837    pub type SnapshotMarkerDetectorML = unsafe extern "system" fn(
12838        marker_detector: MarkerDetectorML,
12839        snapshot_info: *mut MarkerDetectorSnapshotInfoML,
12840    ) -> Result;
12841    #[doc = "See [xrGetMarkerDetectorStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerDetectorStateML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12842    pub type GetMarkerDetectorStateML = unsafe extern "system" fn(
12843        marker_detector: MarkerDetectorML,
12844        state: *mut MarkerDetectorStateML,
12845    ) -> Result;
12846    #[doc = "See [xrGetMarkersML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkersML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12847    pub type GetMarkersML = unsafe extern "system" fn(
12848        marker_detector: MarkerDetectorML,
12849        marker_capacity_input: u32,
12850        marker_count_output: *mut u32,
12851        markers: *mut MarkerML,
12852    ) -> Result;
12853    #[doc = "See [xrGetMarkerReprojectionErrorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerReprojectionErrorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12854    pub type GetMarkerReprojectionErrorML = unsafe extern "system" fn(
12855        marker_detector: MarkerDetectorML,
12856        marker: MarkerML,
12857        reprojection_error_meters: *mut f32,
12858    ) -> Result;
12859    #[doc = "See [xrGetMarkerLengthML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerLengthML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12860    pub type GetMarkerLengthML = unsafe extern "system" fn(
12861        marker_detector: MarkerDetectorML,
12862        marker: MarkerML,
12863        meters: *mut f32,
12864    ) -> Result;
12865    #[doc = "See [xrGetMarkerNumberML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerNumberML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12866    pub type GetMarkerNumberML = unsafe extern "system" fn(
12867        marker_detector: MarkerDetectorML,
12868        marker: MarkerML,
12869        number: *mut u64,
12870    ) -> Result;
12871    #[doc = "See [xrGetMarkerStringML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerStringML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12872    pub type GetMarkerStringML = unsafe extern "system" fn(
12873        marker_detector: MarkerDetectorML,
12874        marker: MarkerML,
12875        buffer_capacity_input: u32,
12876        buffer_count_output: *mut u32,
12877        buffer: *mut c_char,
12878    ) -> Result;
12879    #[doc = "See [xrCreateMarkerSpaceML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateMarkerSpaceML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12880    pub type CreateMarkerSpaceML = unsafe extern "system" fn(
12881        session: Session,
12882        create_info: *const MarkerSpaceCreateInfoML,
12883        space: *mut Space,
12884    ) -> Result;
12885    #[doc = "See [xrPollFutureEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPollFutureEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
12886    pub type PollFutureEXT = unsafe extern "system" fn(
12887        instance: Instance,
12888        poll_info: *const FuturePollInfoEXT,
12889        poll_result: *mut FuturePollResultEXT,
12890    ) -> Result;
12891    #[doc = "See [xrCancelFutureEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCancelFutureEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
12892    pub type CancelFutureEXT = unsafe extern "system" fn(
12893        instance: Instance,
12894        cancel_info: *const FutureCancelInfoEXT,
12895    ) -> Result;
12896    #[doc = "See [xrCreateEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12897    pub type CreateEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12898        session: Session,
12899        create_info: *const EnvironmentDepthProviderCreateInfoMETA,
12900        environment_depth_provider: *mut EnvironmentDepthProviderMETA,
12901    ) -> Result;
12902    #[doc = "See [xrDestroyEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12903    pub type DestroyEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12904        environment_depth_provider: EnvironmentDepthProviderMETA,
12905    ) -> Result;
12906    #[doc = "See [xrStartEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStartEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12907    pub type StartEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12908        environment_depth_provider: EnvironmentDepthProviderMETA,
12909    ) -> Result;
12910    #[doc = "See [xrStopEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStopEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12911    pub type StopEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12912        environment_depth_provider: EnvironmentDepthProviderMETA,
12913    ) -> Result;
12914    #[doc = "See [xrCreateEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateEnvironmentDepthSwapchainMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12915    pub type CreateEnvironmentDepthSwapchainMETA = unsafe extern "system" fn(
12916        environment_depth_provider: EnvironmentDepthProviderMETA,
12917        create_info: *const EnvironmentDepthSwapchainCreateInfoMETA,
12918        swapchain: *mut EnvironmentDepthSwapchainMETA,
12919    ) -> Result;
12920    #[doc = "See [xrDestroyEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyEnvironmentDepthSwapchainMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12921    pub type DestroyEnvironmentDepthSwapchainMETA =
12922        unsafe extern "system" fn(swapchain: EnvironmentDepthSwapchainMETA) -> Result;
12923    #[doc = "See [xrEnumerateEnvironmentDepthSwapchainImagesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateEnvironmentDepthSwapchainImagesMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12924    pub type EnumerateEnvironmentDepthSwapchainImagesMETA = unsafe extern "system" fn(
12925        swapchain: EnvironmentDepthSwapchainMETA,
12926        image_capacity_input: u32,
12927        image_count_output: *mut u32,
12928        images: *mut SwapchainImageBaseHeader,
12929    )
12930        -> Result;
12931    #[doc = "See [xrGetEnvironmentDepthSwapchainStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetEnvironmentDepthSwapchainStateMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12932    pub type GetEnvironmentDepthSwapchainStateMETA = unsafe extern "system" fn(
12933        swapchain: EnvironmentDepthSwapchainMETA,
12934        state: *mut EnvironmentDepthSwapchainStateMETA,
12935    ) -> Result;
12936    #[doc = "See [xrAcquireEnvironmentDepthImageMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAcquireEnvironmentDepthImageMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12937    pub type AcquireEnvironmentDepthImageMETA = unsafe extern "system" fn(
12938        environment_depth_provider: EnvironmentDepthProviderMETA,
12939        acquire_info: *const EnvironmentDepthImageAcquireInfoMETA,
12940        environment_depth_image: *mut EnvironmentDepthImageMETA,
12941    ) -> Result;
12942    #[doc = "See [xrSetEnvironmentDepthHandRemovalMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetEnvironmentDepthHandRemovalMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12943    pub type SetEnvironmentDepthHandRemovalMETA = unsafe extern "system" fn(
12944        environment_depth_provider: EnvironmentDepthProviderMETA,
12945        set_info: *const EnvironmentDepthHandRemovalSetInfoMETA,
12946    ) -> Result;
12947    #[doc = "See [xrLocateSpaces](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpaces)"]
12948    pub type LocateSpaces = unsafe extern "system" fn(
12949        session: Session,
12950        locate_info: *const SpacesLocateInfo,
12951        space_locations: *mut SpaceLocations,
12952    ) -> Result;
12953    #[doc = "See [xrGetVulkanGraphicsRequirements2KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsRequirements2KHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
12954    pub type GetVulkanGraphicsRequirements2KHR = unsafe extern "system" fn(
12955        instance: Instance,
12956        system_id: SystemId,
12957        graphics_requirements: *mut GraphicsRequirementsVulkanKHR,
12958    ) -> Result;
12959    #[doc = "See [xrLocateSpacesKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpacesKHR)"]
12960    pub type LocateSpacesKHR = unsafe extern "system" fn(
12961        session: Session,
12962        locate_info: *const SpacesLocateInfo,
12963        space_locations: *mut SpaceLocations,
12964    ) -> Result;
12965}
12966pub const ALMALENCE_digital_lens_control_SPEC_VERSION: u32 = 1u32;
12967pub const ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME: &[u8] =
12968    b"XR_ALMALENCE_digital_lens_control\0";
12969pub const BD_controller_interaction_SPEC_VERSION: u32 = 2u32;
12970pub const BD_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_BD_controller_interaction\0";
12971pub const EPIC_view_configuration_fov_SPEC_VERSION: u32 = 2u32;
12972pub const EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME: &[u8] = b"XR_EPIC_view_configuration_fov\0";
12973pub const EXT_performance_settings_SPEC_VERSION: u32 = 4u32;
12974pub const EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME: &[u8] = b"XR_EXT_performance_settings\0";
12975pub const EXT_thermal_query_SPEC_VERSION: u32 = 2u32;
12976pub const EXT_THERMAL_QUERY_EXTENSION_NAME: &[u8] = b"XR_EXT_thermal_query\0";
12977pub const EXT_debug_utils_SPEC_VERSION: u32 = 5u32;
12978pub const EXT_DEBUG_UTILS_EXTENSION_NAME: &[u8] = b"XR_EXT_debug_utils\0";
12979pub const EXT_eye_gaze_interaction_SPEC_VERSION: u32 = 2u32;
12980pub const EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_EXT_eye_gaze_interaction\0";
12981pub const EXT_view_configuration_depth_range_SPEC_VERSION: u32 = 1u32;
12982pub const EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME: &[u8] =
12983    b"XR_EXT_view_configuration_depth_range\0";
12984pub const EXT_conformance_automation_SPEC_VERSION: u32 = 3u32;
12985pub const EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME: &[u8] = b"XR_EXT_conformance_automation\0";
12986pub const EXT_hand_tracking_SPEC_VERSION: u32 = 4u32;
12987pub const EXT_HAND_TRACKING_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_tracking\0";
12988#[cfg(windows)]
12989pub const EXT_win32_appcontainer_compatible_SPEC_VERSION: u32 = 1u32;
12990#[cfg(windows)]
12991pub const EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME: &[u8] =
12992    b"XR_EXT_win32_appcontainer_compatible\0";
12993pub const EXT_dpad_binding_SPEC_VERSION: u32 = 1u32;
12994pub const EXT_DPAD_BINDING_EXTENSION_NAME: &[u8] = b"XR_EXT_dpad_binding\0";
12995pub const EXT_hand_joints_motion_range_SPEC_VERSION: u32 = 1u32;
12996pub const EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_joints_motion_range\0";
12997pub const EXT_samsung_odyssey_controller_SPEC_VERSION: u32 = 1u32;
12998pub const EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME: &[u8] =
12999    b"XR_EXT_samsung_odyssey_controller\0";
13000pub const EXT_hp_mixed_reality_controller_SPEC_VERSION: u32 = 1u32;
13001pub const EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME: &[u8] =
13002    b"XR_EXT_hp_mixed_reality_controller\0";
13003pub const EXT_palm_pose_SPEC_VERSION: u32 = 3u32;
13004pub const EXT_PALM_POSE_EXTENSION_NAME: &[u8] = b"XR_EXT_palm_pose\0";
13005pub const EXT_uuid_SPEC_VERSION: u32 = 1u32;
13006pub const EXT_UUID_EXTENSION_NAME: &[u8] = b"XR_EXT_uuid\0";
13007pub const EXT_hand_interaction_SPEC_VERSION: u32 = 1u32;
13008pub const EXT_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_interaction\0";
13009pub const EXT_active_action_set_priority_SPEC_VERSION: u32 = 1u32;
13010pub const EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME: &[u8] =
13011    b"XR_EXT_active_action_set_priority\0";
13012pub const EXT_local_floor_SPEC_VERSION: u32 = 1u32;
13013pub const EXT_LOCAL_FLOOR_EXTENSION_NAME: &[u8] = b"XR_EXT_local_floor\0";
13014pub const EXT_hand_tracking_data_source_SPEC_VERSION: u32 = 1u32;
13015pub const EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME: &[u8] =
13016    b"XR_EXT_hand_tracking_data_source\0";
13017pub const EXT_plane_detection_SPEC_VERSION: u32 = 1u32;
13018pub const EXT_PLANE_DETECTION_EXTENSION_NAME: &[u8] = b"XR_EXT_plane_detection\0";
13019pub const EXT_future_SPEC_VERSION: u32 = 1u32;
13020pub const EXT_FUTURE_EXTENSION_NAME: &[u8] = b"XR_EXT_future\0";
13021pub const EXT_user_presence_SPEC_VERSION: u32 = 1u32;
13022pub const EXT_USER_PRESENCE_EXTENSION_NAME: &[u8] = b"XR_EXT_user_presence\0";
13023pub const FB_composition_layer_image_layout_SPEC_VERSION: u32 = 1u32;
13024pub const FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME: &[u8] =
13025    b"XR_FB_composition_layer_image_layout\0";
13026pub const FB_composition_layer_alpha_blend_SPEC_VERSION: u32 = 2u32;
13027pub const FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME: &[u8] =
13028    b"XR_FB_composition_layer_alpha_blend\0";
13029#[cfg(target_os = "android")]
13030pub const FB_android_surface_swapchain_create_SPEC_VERSION: u32 = 1u32;
13031#[cfg(target_os = "android")]
13032pub const FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME: &[u8] =
13033    b"XR_FB_android_surface_swapchain_create\0";
13034pub const FB_swapchain_update_state_SPEC_VERSION: u32 = 3u32;
13035pub const FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME: &[u8] = b"XR_FB_swapchain_update_state\0";
13036pub const FB_composition_layer_secure_content_SPEC_VERSION: u32 = 1u32;
13037pub const FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME: &[u8] =
13038    b"XR_FB_composition_layer_secure_content\0";
13039pub const FB_body_tracking_SPEC_VERSION: u32 = 1u32;
13040pub const FB_BODY_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_body_tracking\0";
13041pub const FB_display_refresh_rate_SPEC_VERSION: u32 = 1u32;
13042pub const FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME: &[u8] = b"XR_FB_display_refresh_rate\0";
13043pub const FB_color_space_SPEC_VERSION: u32 = 3u32;
13044pub const FB_COLOR_SPACE_EXTENSION_NAME: &[u8] = b"XR_FB_color_space\0";
13045pub const FB_hand_tracking_mesh_SPEC_VERSION: u32 = 3u32;
13046pub const FB_HAND_TRACKING_MESH_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_mesh\0";
13047pub const FB_hand_tracking_aim_SPEC_VERSION: u32 = 2u32;
13048pub const FB_HAND_TRACKING_AIM_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_aim\0";
13049pub const FB_hand_tracking_capsules_SPEC_VERSION: u32 = 3u32;
13050pub const FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_capsules\0";
13051pub const FB_spatial_entity_SPEC_VERSION: u32 = 3u32;
13052pub const FB_SPATIAL_ENTITY_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity\0";
13053pub const FB_foveation_SPEC_VERSION: u32 = 1u32;
13054pub const FB_FOVEATION_EXTENSION_NAME: &[u8] = b"XR_FB_foveation\0";
13055pub const FB_foveation_configuration_SPEC_VERSION: u32 = 1u32;
13056pub const FB_FOVEATION_CONFIGURATION_EXTENSION_NAME: &[u8] = b"XR_FB_foveation_configuration\0";
13057pub const FB_keyboard_tracking_SPEC_VERSION: u32 = 1u32;
13058pub const FB_KEYBOARD_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_keyboard_tracking\0";
13059pub const FB_triangle_mesh_SPEC_VERSION: u32 = 2u32;
13060pub const FB_TRIANGLE_MESH_EXTENSION_NAME: &[u8] = b"XR_FB_triangle_mesh\0";
13061pub const FB_passthrough_SPEC_VERSION: u32 = 3u32;
13062pub const FB_PASSTHROUGH_EXTENSION_NAME: &[u8] = b"XR_FB_passthrough\0";
13063pub const FB_render_model_SPEC_VERSION: u32 = 4u32;
13064pub const FB_RENDER_MODEL_EXTENSION_NAME: &[u8] = b"XR_FB_render_model\0";
13065pub const FB_spatial_entity_query_SPEC_VERSION: u32 = 1u32;
13066pub const FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_query\0";
13067pub const FB_spatial_entity_storage_SPEC_VERSION: u32 = 1u32;
13068pub const FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_storage\0";
13069pub const FB_foveation_vulkan_SPEC_VERSION: u32 = 1u32;
13070pub const FB_FOVEATION_VULKAN_EXTENSION_NAME: &[u8] = b"XR_FB_foveation_vulkan\0";
13071#[cfg(target_os = "android")]
13072pub const FB_swapchain_update_state_android_surface_SPEC_VERSION: u32 = 1u32;
13073#[cfg(target_os = "android")]
13074pub const FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME: &[u8] =
13075    b"XR_FB_swapchain_update_state_android_surface\0";
13076pub const FB_swapchain_update_state_opengl_es_SPEC_VERSION: u32 = 1u32;
13077pub const FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME: &[u8] =
13078    b"XR_FB_swapchain_update_state_opengl_es\0";
13079pub const FB_swapchain_update_state_vulkan_SPEC_VERSION: u32 = 1u32;
13080pub const FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME: &[u8] =
13081    b"XR_FB_swapchain_update_state_vulkan\0";
13082pub const FB_touch_controller_pro_SPEC_VERSION: u32 = 1u32;
13083pub const FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME: &[u8] = b"XR_FB_touch_controller_pro\0";
13084pub const FB_spatial_entity_sharing_SPEC_VERSION: u32 = 1u32;
13085pub const FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_sharing\0";
13086pub const FB_space_warp_SPEC_VERSION: u32 = 2u32;
13087pub const FB_SPACE_WARP_EXTENSION_NAME: &[u8] = b"XR_FB_space_warp\0";
13088pub const FB_haptic_amplitude_envelope_SPEC_VERSION: u32 = 1u32;
13089pub const FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME: &[u8] = b"XR_FB_haptic_amplitude_envelope\0";
13090pub const FB_scene_SPEC_VERSION: u32 = 4u32;
13091pub const FB_SCENE_EXTENSION_NAME: &[u8] = b"XR_FB_scene\0";
13092pub const FB_scene_capture_SPEC_VERSION: u32 = 1u32;
13093pub const FB_SCENE_CAPTURE_EXTENSION_NAME: &[u8] = b"XR_FB_scene_capture\0";
13094pub const FB_spatial_entity_container_SPEC_VERSION: u32 = 2u32;
13095pub const FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_container\0";
13096pub const FB_face_tracking_SPEC_VERSION: u32 = 1u32;
13097pub const FB_FACE_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_face_tracking\0";
13098pub const FB_eye_tracking_social_SPEC_VERSION: u32 = 1u32;
13099pub const FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME: &[u8] = b"XR_FB_eye_tracking_social\0";
13100pub const FB_passthrough_keyboard_hands_SPEC_VERSION: u32 = 2u32;
13101pub const FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME: &[u8] =
13102    b"XR_FB_passthrough_keyboard_hands\0";
13103pub const FB_composition_layer_settings_SPEC_VERSION: u32 = 1u32;
13104pub const FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME: &[u8] =
13105    b"XR_FB_composition_layer_settings\0";
13106pub const FB_touch_controller_proximity_SPEC_VERSION: u32 = 1u32;
13107pub const FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME: &[u8] =
13108    b"XR_FB_touch_controller_proximity\0";
13109pub const FB_haptic_pcm_SPEC_VERSION: u32 = 1u32;
13110pub const FB_HAPTIC_PCM_EXTENSION_NAME: &[u8] = b"XR_FB_haptic_pcm\0";
13111pub const FB_composition_layer_depth_test_SPEC_VERSION: u32 = 1u32;
13112pub const FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME: &[u8] =
13113    b"XR_FB_composition_layer_depth_test\0";
13114pub const FB_spatial_entity_storage_batch_SPEC_VERSION: u32 = 1u32;
13115pub const FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME: &[u8] =
13116    b"XR_FB_spatial_entity_storage_batch\0";
13117pub const FB_spatial_entity_user_SPEC_VERSION: u32 = 1u32;
13118pub const FB_SPATIAL_ENTITY_USER_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_user\0";
13119pub const FB_face_tracking2_SPEC_VERSION: u32 = 1u32;
13120pub const FB_FACE_TRACKING2_EXTENSION_NAME: &[u8] = b"XR_FB_face_tracking2\0";
13121pub const HTC_vive_cosmos_controller_interaction_SPEC_VERSION: u32 = 1u32;
13122pub const HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13123    b"XR_HTC_vive_cosmos_controller_interaction\0";
13124pub const HTC_facial_tracking_SPEC_VERSION: u32 = 2u32;
13125pub const HTC_FACIAL_TRACKING_EXTENSION_NAME: &[u8] = b"XR_HTC_facial_tracking\0";
13126pub const HTC_vive_focus3_controller_interaction_SPEC_VERSION: u32 = 2u32;
13127pub const HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13128    b"XR_HTC_vive_focus3_controller_interaction\0";
13129pub const HTC_hand_interaction_SPEC_VERSION: u32 = 1u32;
13130pub const HTC_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_HTC_hand_interaction\0";
13131pub const HTC_vive_wrist_tracker_interaction_SPEC_VERSION: u32 = 1u32;
13132pub const HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME: &[u8] =
13133    b"XR_HTC_vive_wrist_tracker_interaction\0";
13134pub const HTC_passthrough_SPEC_VERSION: u32 = 1u32;
13135pub const HTC_PASSTHROUGH_EXTENSION_NAME: &[u8] = b"XR_HTC_passthrough\0";
13136pub const HTC_foveation_SPEC_VERSION: u32 = 1u32;
13137pub const HTC_FOVEATION_EXTENSION_NAME: &[u8] = b"XR_HTC_foveation\0";
13138pub const HTC_anchor_SPEC_VERSION: u32 = 1u32;
13139pub const HTC_ANCHOR_EXTENSION_NAME: &[u8] = b"XR_HTC_anchor\0";
13140pub const HUAWEI_controller_interaction_SPEC_VERSION: u32 = 1u32;
13141pub const HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13142    b"XR_HUAWEI_controller_interaction\0";
13143#[cfg(target_os = "android")]
13144pub const KHR_android_thread_settings_SPEC_VERSION: u32 = 6u32;
13145#[cfg(target_os = "android")]
13146pub const KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME: &[u8] = b"XR_KHR_android_thread_settings\0";
13147#[cfg(target_os = "android")]
13148pub const KHR_android_surface_swapchain_SPEC_VERSION: u32 = 4u32;
13149#[cfg(target_os = "android")]
13150pub const KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME: &[u8] =
13151    b"XR_KHR_android_surface_swapchain\0";
13152pub const KHR_composition_layer_cube_SPEC_VERSION: u32 = 8u32;
13153pub const KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME: &[u8] = b"XR_KHR_composition_layer_cube\0";
13154#[cfg(target_os = "android")]
13155pub const KHR_android_create_instance_SPEC_VERSION: u32 = 3u32;
13156#[cfg(target_os = "android")]
13157pub const KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME: &[u8] = b"XR_KHR_android_create_instance\0";
13158pub const KHR_composition_layer_depth_SPEC_VERSION: u32 = 6u32;
13159pub const KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME: &[u8] = b"XR_KHR_composition_layer_depth\0";
13160pub const KHR_vulkan_swapchain_format_list_SPEC_VERSION: u32 = 4u32;
13161pub const KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME: &[u8] =
13162    b"XR_KHR_vulkan_swapchain_format_list\0";
13163pub const KHR_composition_layer_cylinder_SPEC_VERSION: u32 = 4u32;
13164pub const KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME: &[u8] =
13165    b"XR_KHR_composition_layer_cylinder\0";
13166pub const KHR_composition_layer_equirect_SPEC_VERSION: u32 = 3u32;
13167pub const KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME: &[u8] =
13168    b"XR_KHR_composition_layer_equirect\0";
13169pub const KHR_opengl_enable_SPEC_VERSION: u32 = 10u32;
13170pub const KHR_OPENGL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_opengl_enable\0";
13171pub const KHR_opengl_es_enable_SPEC_VERSION: u32 = 8u32;
13172pub const KHR_OPENGL_ES_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_opengl_es_enable\0";
13173pub const KHR_vulkan_enable_SPEC_VERSION: u32 = 8u32;
13174pub const KHR_VULKAN_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_vulkan_enable\0";
13175#[cfg(windows)]
13176pub const KHR_D3D11_enable_SPEC_VERSION: u32 = 9u32;
13177#[cfg(windows)]
13178pub const KHR_D3D11_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_D3D11_enable\0";
13179#[cfg(windows)]
13180pub const KHR_D3D12_enable_SPEC_VERSION: u32 = 9u32;
13181#[cfg(windows)]
13182pub const KHR_D3D12_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_D3D12_enable\0";
13183pub const KHR_visibility_mask_SPEC_VERSION: u32 = 2u32;
13184pub const KHR_VISIBILITY_MASK_EXTENSION_NAME: &[u8] = b"XR_KHR_visibility_mask\0";
13185pub const KHR_composition_layer_color_scale_bias_SPEC_VERSION: u32 = 5u32;
13186pub const KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME: &[u8] =
13187    b"XR_KHR_composition_layer_color_scale_bias\0";
13188#[cfg(windows)]
13189pub const KHR_win32_convert_performance_counter_time_SPEC_VERSION: u32 = 1u32;
13190#[cfg(windows)]
13191pub const KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME: &[u8] =
13192    b"XR_KHR_win32_convert_performance_counter_time\0";
13193pub const KHR_convert_timespec_time_SPEC_VERSION: u32 = 1u32;
13194pub const KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME: &[u8] = b"XR_KHR_convert_timespec_time\0";
13195pub const KHR_loader_init_SPEC_VERSION: u32 = 2u32;
13196pub const KHR_LOADER_INIT_EXTENSION_NAME: &[u8] = b"XR_KHR_loader_init\0";
13197#[cfg(target_os = "android")]
13198pub const KHR_loader_init_android_SPEC_VERSION: u32 = 1u32;
13199#[cfg(target_os = "android")]
13200pub const KHR_LOADER_INIT_ANDROID_EXTENSION_NAME: &[u8] = b"XR_KHR_loader_init_android\0";
13201pub const KHR_vulkan_enable2_SPEC_VERSION: u32 = 2u32;
13202pub const KHR_VULKAN_ENABLE2_EXTENSION_NAME: &[u8] = b"XR_KHR_vulkan_enable2\0";
13203pub const KHR_composition_layer_equirect2_SPEC_VERSION: u32 = 1u32;
13204pub const KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME: &[u8] =
13205    b"XR_KHR_composition_layer_equirect2\0";
13206pub const KHR_binding_modification_SPEC_VERSION: u32 = 1u32;
13207pub const KHR_BINDING_MODIFICATION_EXTENSION_NAME: &[u8] = b"XR_KHR_binding_modification\0";
13208pub const KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION: u32 = 3u32;
13209pub const KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME: &[u8] =
13210    b"XR_KHR_swapchain_usage_input_attachment_bit\0";
13211pub const KHR_locate_spaces_SPEC_VERSION: u32 = 1u32;
13212pub const KHR_LOCATE_SPACES_EXTENSION_NAME: &[u8] = b"XR_KHR_locate_spaces\0";
13213pub const KHR_maintenance1_SPEC_VERSION: u32 = 1u32;
13214pub const KHR_MAINTENANCE1_EXTENSION_NAME: &[u8] = b"XR_KHR_maintenance1\0";
13215pub const META_foveation_eye_tracked_SPEC_VERSION: u32 = 1u32;
13216pub const META_FOVEATION_EYE_TRACKED_EXTENSION_NAME: &[u8] = b"XR_META_foveation_eye_tracked\0";
13217pub const META_local_dimming_SPEC_VERSION: u32 = 1u32;
13218pub const META_LOCAL_DIMMING_EXTENSION_NAME: &[u8] = b"XR_META_local_dimming\0";
13219pub const META_passthrough_preferences_SPEC_VERSION: u32 = 1u32;
13220pub const META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME: &[u8] = b"XR_META_passthrough_preferences\0";
13221pub const META_virtual_keyboard_SPEC_VERSION: u32 = 1u32;
13222pub const META_VIRTUAL_KEYBOARD_EXTENSION_NAME: &[u8] = b"XR_META_virtual_keyboard\0";
13223pub const META_vulkan_swapchain_create_info_SPEC_VERSION: u32 = 1u32;
13224pub const META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME: &[u8] =
13225    b"XR_META_vulkan_swapchain_create_info\0";
13226pub const META_performance_metrics_SPEC_VERSION: u32 = 2u32;
13227pub const META_PERFORMANCE_METRICS_EXTENSION_NAME: &[u8] = b"XR_META_performance_metrics\0";
13228pub const META_headset_id_SPEC_VERSION: u32 = 2u32;
13229pub const META_HEADSET_ID_EXTENSION_NAME: &[u8] = b"XR_META_headset_id\0";
13230pub const META_recommended_layer_resolution_SPEC_VERSION: u32 = 1u32;
13231pub const META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME: &[u8] =
13232    b"XR_META_recommended_layer_resolution\0";
13233pub const META_passthrough_color_lut_SPEC_VERSION: u32 = 1u32;
13234pub const META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME: &[u8] = b"XR_META_passthrough_color_lut\0";
13235pub const META_spatial_entity_mesh_SPEC_VERSION: u32 = 1u32;
13236pub const META_SPATIAL_ENTITY_MESH_EXTENSION_NAME: &[u8] = b"XR_META_spatial_entity_mesh\0";
13237pub const META_automatic_layer_filter_SPEC_VERSION: u32 = 1u32;
13238pub const META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME: &[u8] = b"XR_META_automatic_layer_filter\0";
13239pub const META_touch_controller_plus_SPEC_VERSION: u32 = 1u32;
13240pub const META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME: &[u8] = b"XR_META_touch_controller_plus\0";
13241pub const META_environment_depth_SPEC_VERSION: u32 = 1u32;
13242pub const META_ENVIRONMENT_DEPTH_EXTENSION_NAME: &[u8] = b"XR_META_environment_depth\0";
13243pub const ML_ml2_controller_interaction_SPEC_VERSION: u32 = 1u32;
13244pub const ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13245    b"XR_ML_ml2_controller_interaction\0";
13246pub const ML_frame_end_info_SPEC_VERSION: u32 = 1u32;
13247pub const ML_FRAME_END_INFO_EXTENSION_NAME: &[u8] = b"XR_ML_frame_end_info\0";
13248pub const ML_global_dimmer_SPEC_VERSION: u32 = 1u32;
13249pub const ML_GLOBAL_DIMMER_EXTENSION_NAME: &[u8] = b"XR_ML_global_dimmer\0";
13250pub const ML_compat_SPEC_VERSION: u32 = 1u32;
13251pub const ML_COMPAT_EXTENSION_NAME: &[u8] = b"XR_ML_compat\0";
13252pub const ML_marker_understanding_SPEC_VERSION: u32 = 1u32;
13253pub const ML_MARKER_UNDERSTANDING_EXTENSION_NAME: &[u8] = b"XR_ML_marker_understanding\0";
13254pub const ML_localization_map_SPEC_VERSION: u32 = 1u32;
13255pub const ML_LOCALIZATION_MAP_EXTENSION_NAME: &[u8] = b"XR_ML_localization_map\0";
13256pub const ML_user_calibration_SPEC_VERSION: u32 = 1u32;
13257pub const ML_USER_CALIBRATION_EXTENSION_NAME: &[u8] = b"XR_ML_user_calibration\0";
13258pub const MND_headless_SPEC_VERSION: u32 = 2u32;
13259pub const MND_HEADLESS_EXTENSION_NAME: &[u8] = b"XR_MND_headless\0";
13260pub const MND_swapchain_usage_input_attachment_bit_SPEC_VERSION: u32 = 2u32;
13261pub const MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME: &[u8] =
13262    b"XR_MND_swapchain_usage_input_attachment_bit\0";
13263pub const MSFT_unbounded_reference_space_SPEC_VERSION: u32 = 1u32;
13264pub const MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME: &[u8] =
13265    b"XR_MSFT_unbounded_reference_space\0";
13266pub const MSFT_spatial_anchor_SPEC_VERSION: u32 = 2u32;
13267pub const MSFT_SPATIAL_ANCHOR_EXTENSION_NAME: &[u8] = b"XR_MSFT_spatial_anchor\0";
13268pub const MSFT_spatial_graph_bridge_SPEC_VERSION: u32 = 2u32;
13269pub const MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME: &[u8] = b"XR_MSFT_spatial_graph_bridge\0";
13270pub const MSFT_hand_interaction_SPEC_VERSION: u32 = 1u32;
13271pub const MSFT_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_MSFT_hand_interaction\0";
13272pub const MSFT_hand_tracking_mesh_SPEC_VERSION: u32 = 4u32;
13273pub const MSFT_HAND_TRACKING_MESH_EXTENSION_NAME: &[u8] = b"XR_MSFT_hand_tracking_mesh\0";
13274pub const MSFT_secondary_view_configuration_SPEC_VERSION: u32 = 1u32;
13275pub const MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME: &[u8] =
13276    b"XR_MSFT_secondary_view_configuration\0";
13277pub const MSFT_first_person_observer_SPEC_VERSION: u32 = 1u32;
13278pub const MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME: &[u8] = b"XR_MSFT_first_person_observer\0";
13279pub const MSFT_controller_model_SPEC_VERSION: u32 = 2u32;
13280pub const MSFT_CONTROLLER_MODEL_EXTENSION_NAME: &[u8] = b"XR_MSFT_controller_model\0";
13281#[cfg(windows)]
13282pub const MSFT_perception_anchor_interop_SPEC_VERSION: u32 = 1u32;
13283#[cfg(windows)]
13284pub const MSFT_PERCEPTION_ANCHOR_INTEROP_EXTENSION_NAME: &[u8] =
13285    b"XR_MSFT_perception_anchor_interop\0";
13286#[cfg(windows)]
13287pub const MSFT_holographic_window_attachment_SPEC_VERSION: u32 = 1u32;
13288#[cfg(windows)]
13289pub const MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME: &[u8] =
13290    b"XR_MSFT_holographic_window_attachment\0";
13291pub const MSFT_composition_layer_reprojection_SPEC_VERSION: u32 = 1u32;
13292pub const MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME: &[u8] =
13293    b"XR_MSFT_composition_layer_reprojection\0";
13294pub const MSFT_scene_understanding_SPEC_VERSION: u32 = 2u32;
13295pub const MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME: &[u8] = b"XR_MSFT_scene_understanding\0";
13296pub const MSFT_scene_understanding_serialization_SPEC_VERSION: u32 = 2u32;
13297pub const MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME: &[u8] =
13298    b"XR_MSFT_scene_understanding_serialization\0";
13299pub const MSFT_spatial_anchor_persistence_SPEC_VERSION: u32 = 2u32;
13300pub const MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME: &[u8] =
13301    b"XR_MSFT_spatial_anchor_persistence\0";
13302pub const MSFT_scene_marker_SPEC_VERSION: u32 = 1u32;
13303pub const MSFT_SCENE_MARKER_EXTENSION_NAME: &[u8] = b"XR_MSFT_scene_marker\0";
13304#[cfg(target_os = "android")]
13305pub const OCULUS_android_session_state_enable_SPEC_VERSION: u32 = 1u32;
13306#[cfg(target_os = "android")]
13307pub const OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME: &[u8] =
13308    b"XR_OCULUS_android_session_state_enable\0";
13309pub const OCULUS_audio_device_guid_SPEC_VERSION: u32 = 1u32;
13310pub const OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME: &[u8] = b"XR_OCULUS_audio_device_guid\0";
13311pub const OCULUS_external_camera_SPEC_VERSION: u32 = 1u32;
13312pub const OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME: &[u8] = b"XR_OCULUS_external_camera\0";
13313pub const OPPO_controller_interaction_SPEC_VERSION: u32 = 1u32;
13314pub const OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_OPPO_controller_interaction\0";
13315pub const QCOM_tracking_optimization_settings_SPEC_VERSION: u32 = 1u32;
13316pub const QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME: &[u8] =
13317    b"XR_QCOM_tracking_optimization_settings\0";
13318pub const ULTRALEAP_hand_tracking_forearm_SPEC_VERSION: u32 = 1u32;
13319pub const ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME: &[u8] =
13320    b"XR_ULTRALEAP_hand_tracking_forearm\0";
13321pub const VALVE_analog_threshold_SPEC_VERSION: u32 = 2u32;
13322pub const VALVE_ANALOG_THRESHOLD_EXTENSION_NAME: &[u8] = b"XR_VALVE_analog_threshold\0";
13323pub const VARJO_quad_views_SPEC_VERSION: u32 = 1u32;
13324pub const VARJO_QUAD_VIEWS_EXTENSION_NAME: &[u8] = b"XR_VARJO_quad_views\0";
13325pub const VARJO_foveated_rendering_SPEC_VERSION: u32 = 3u32;
13326pub const VARJO_FOVEATED_RENDERING_EXTENSION_NAME: &[u8] = b"XR_VARJO_foveated_rendering\0";
13327pub const VARJO_composition_layer_depth_test_SPEC_VERSION: u32 = 2u32;
13328pub const VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME: &[u8] =
13329    b"XR_VARJO_composition_layer_depth_test\0";
13330pub const VARJO_environment_depth_estimation_SPEC_VERSION: u32 = 1u32;
13331pub const VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME: &[u8] =
13332    b"XR_VARJO_environment_depth_estimation\0";
13333pub const VARJO_marker_tracking_SPEC_VERSION: u32 = 1u32;
13334pub const VARJO_MARKER_TRACKING_EXTENSION_NAME: &[u8] = b"XR_VARJO_marker_tracking\0";
13335pub const VARJO_view_offset_SPEC_VERSION: u32 = 1u32;
13336pub const VARJO_VIEW_OFFSET_EXTENSION_NAME: &[u8] = b"XR_VARJO_view_offset\0";
13337pub const VARJO_xr4_controller_interaction_SPEC_VERSION: u32 = 1u32;
13338pub const VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13339    b"XR_VARJO_xr4_controller_interaction\0";
13340pub const YVR_controller_interaction_SPEC_VERSION: u32 = 1u32;
13341pub const YVR_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_YVR_controller_interaction\0";
13342pub const EXTX_overlay_SPEC_VERSION: u32 = 5u32;
13343pub const EXTX_OVERLAY_EXTENSION_NAME: &[u8] = b"XR_EXTX_overlay\0";
13344pub const MNDX_egl_enable_SPEC_VERSION: u32 = 2u32;
13345pub const MNDX_EGL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_MNDX_egl_enable\0";
13346pub const MNDX_force_feedback_curl_SPEC_VERSION: u32 = 1u32;
13347pub const MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME: &[u8] = b"XR_MNDX_force_feedback_curl\0";
13348pub const HTCX_vive_tracker_interaction_SPEC_VERSION: u32 = 3u32;
13349pub const HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME: &[u8] =
13350    b"XR_HTCX_vive_tracker_interaction\0";
13351#[cfg(feature = "linked")]
13352extern "system" {
13353    #[link_name = "xrNegotiateLoaderRuntimeInterface"]
13354    pub fn negotiate_loader_runtime_interface(
13355        loader_info: *const NegotiateLoaderInfo,
13356        runtime_request: *mut NegotiateRuntimeRequest,
13357    ) -> Result;
13358    #[link_name = "xrNegotiateLoaderApiLayerInterface"]
13359    pub fn negotiate_loader_api_layer_interface(
13360        loader_info: *const NegotiateLoaderInfo,
13361        layer_name: *const c_char,
13362        api_layer_request: *mut NegotiateApiLayerRequest,
13363    ) -> Result;
13364    #[link_name = "xrCreateApiLayerInstance"]
13365    pub fn create_api_layer_instance(
13366        info: *const InstanceCreateInfo,
13367        layer_info: *const ApiLayerCreateInfo,
13368        instance: *mut Instance,
13369    ) -> Result;
13370    #[link_name = "xrGetInstanceProcAddr"]
13371    pub fn get_instance_proc_addr(
13372        instance: Instance,
13373        name: *const c_char,
13374        function: *mut Option<pfn::VoidFunction>,
13375    ) -> Result;
13376    #[link_name = "xrEnumerateApiLayerProperties"]
13377    pub fn enumerate_api_layer_properties(
13378        property_capacity_input: u32,
13379        property_count_output: *mut u32,
13380        properties: *mut ApiLayerProperties,
13381    ) -> Result;
13382    #[link_name = "xrEnumerateInstanceExtensionProperties"]
13383    pub fn enumerate_instance_extension_properties(
13384        layer_name: *const c_char,
13385        property_capacity_input: u32,
13386        property_count_output: *mut u32,
13387        properties: *mut ExtensionProperties,
13388    ) -> Result;
13389    #[link_name = "xrCreateInstance"]
13390    pub fn create_instance(
13391        create_info: *const InstanceCreateInfo,
13392        instance: *mut Instance,
13393    ) -> Result;
13394    #[link_name = "xrDestroyInstance"]
13395    pub fn destroy_instance(instance: Instance) -> Result;
13396    #[link_name = "xrResultToString"]
13397    pub fn result_to_string(instance: Instance, value: Result, buffer: *mut c_char) -> Result;
13398    #[link_name = "xrStructureTypeToString"]
13399    pub fn structure_type_to_string(
13400        instance: Instance,
13401        value: StructureType,
13402        buffer: *mut c_char,
13403    ) -> Result;
13404    #[link_name = "xrGetInstanceProperties"]
13405    pub fn get_instance_properties(
13406        instance: Instance,
13407        instance_properties: *mut InstanceProperties,
13408    ) -> Result;
13409    #[link_name = "xrGetSystem"]
13410    pub fn get_system(
13411        instance: Instance,
13412        get_info: *const SystemGetInfo,
13413        system_id: *mut SystemId,
13414    ) -> Result;
13415    #[link_name = "xrGetSystemProperties"]
13416    pub fn get_system_properties(
13417        instance: Instance,
13418        system_id: SystemId,
13419        properties: *mut SystemProperties,
13420    ) -> Result;
13421    #[link_name = "xrCreateSession"]
13422    pub fn create_session(
13423        instance: Instance,
13424        create_info: *const SessionCreateInfo,
13425        session: *mut Session,
13426    ) -> Result;
13427    #[link_name = "xrDestroySession"]
13428    pub fn destroy_session(session: Session) -> Result;
13429    #[link_name = "xrDestroySpace"]
13430    pub fn destroy_space(space: Space) -> Result;
13431    #[link_name = "xrEnumerateSwapchainFormats"]
13432    pub fn enumerate_swapchain_formats(
13433        session: Session,
13434        format_capacity_input: u32,
13435        format_count_output: *mut u32,
13436        formats: *mut i64,
13437    ) -> Result;
13438    #[link_name = "xrCreateSwapchain"]
13439    pub fn create_swapchain(
13440        session: Session,
13441        create_info: *const SwapchainCreateInfo,
13442        swapchain: *mut Swapchain,
13443    ) -> Result;
13444    #[link_name = "xrDestroySwapchain"]
13445    pub fn destroy_swapchain(swapchain: Swapchain) -> Result;
13446    #[link_name = "xrEnumerateSwapchainImages"]
13447    pub fn enumerate_swapchain_images(
13448        swapchain: Swapchain,
13449        image_capacity_input: u32,
13450        image_count_output: *mut u32,
13451        images: *mut SwapchainImageBaseHeader,
13452    ) -> Result;
13453    #[link_name = "xrAcquireSwapchainImage"]
13454    pub fn acquire_swapchain_image(
13455        swapchain: Swapchain,
13456        acquire_info: *const SwapchainImageAcquireInfo,
13457        index: *mut u32,
13458    ) -> Result;
13459    #[link_name = "xrWaitSwapchainImage"]
13460    pub fn wait_swapchain_image(
13461        swapchain: Swapchain,
13462        wait_info: *const SwapchainImageWaitInfo,
13463    ) -> Result;
13464    #[link_name = "xrReleaseSwapchainImage"]
13465    pub fn release_swapchain_image(
13466        swapchain: Swapchain,
13467        release_info: *const SwapchainImageReleaseInfo,
13468    ) -> Result;
13469    #[link_name = "xrBeginSession"]
13470    pub fn begin_session(session: Session, begin_info: *const SessionBeginInfo) -> Result;
13471    #[link_name = "xrEndSession"]
13472    pub fn end_session(session: Session) -> Result;
13473    #[link_name = "xrRequestExitSession"]
13474    pub fn request_exit_session(session: Session) -> Result;
13475    #[link_name = "xrEnumerateReferenceSpaces"]
13476    pub fn enumerate_reference_spaces(
13477        session: Session,
13478        space_capacity_input: u32,
13479        space_count_output: *mut u32,
13480        spaces: *mut ReferenceSpaceType,
13481    ) -> Result;
13482    #[link_name = "xrCreateReferenceSpace"]
13483    pub fn create_reference_space(
13484        session: Session,
13485        create_info: *const ReferenceSpaceCreateInfo,
13486        space: *mut Space,
13487    ) -> Result;
13488    #[link_name = "xrCreateActionSpace"]
13489    pub fn create_action_space(
13490        session: Session,
13491        create_info: *const ActionSpaceCreateInfo,
13492        space: *mut Space,
13493    ) -> Result;
13494    #[link_name = "xrLocateSpace"]
13495    pub fn locate_space(
13496        space: Space,
13497        base_space: Space,
13498        time: Time,
13499        location: *mut SpaceLocation,
13500    ) -> Result;
13501    #[link_name = "xrEnumerateViewConfigurations"]
13502    pub fn enumerate_view_configurations(
13503        instance: Instance,
13504        system_id: SystemId,
13505        view_configuration_type_capacity_input: u32,
13506        view_configuration_type_count_output: *mut u32,
13507        view_configuration_types: *mut ViewConfigurationType,
13508    ) -> Result;
13509    #[link_name = "xrEnumerateEnvironmentBlendModes"]
13510    pub fn enumerate_environment_blend_modes(
13511        instance: Instance,
13512        system_id: SystemId,
13513        view_configuration_type: ViewConfigurationType,
13514        environment_blend_mode_capacity_input: u32,
13515        environment_blend_mode_count_output: *mut u32,
13516        environment_blend_modes: *mut EnvironmentBlendMode,
13517    ) -> Result;
13518    #[link_name = "xrGetViewConfigurationProperties"]
13519    pub fn get_view_configuration_properties(
13520        instance: Instance,
13521        system_id: SystemId,
13522        view_configuration_type: ViewConfigurationType,
13523        configuration_properties: *mut ViewConfigurationProperties,
13524    ) -> Result;
13525    #[link_name = "xrEnumerateViewConfigurationViews"]
13526    pub fn enumerate_view_configuration_views(
13527        instance: Instance,
13528        system_id: SystemId,
13529        view_configuration_type: ViewConfigurationType,
13530        view_capacity_input: u32,
13531        view_count_output: *mut u32,
13532        views: *mut ViewConfigurationView,
13533    ) -> Result;
13534    #[link_name = "xrBeginFrame"]
13535    pub fn begin_frame(session: Session, frame_begin_info: *const FrameBeginInfo) -> Result;
13536    #[link_name = "xrLocateViews"]
13537    pub fn locate_views(
13538        session: Session,
13539        view_locate_info: *const ViewLocateInfo,
13540        view_state: *mut ViewState,
13541        view_capacity_input: u32,
13542        view_count_output: *mut u32,
13543        views: *mut View,
13544    ) -> Result;
13545    #[link_name = "xrEndFrame"]
13546    pub fn end_frame(session: Session, frame_end_info: *const FrameEndInfo) -> Result;
13547    #[link_name = "xrWaitFrame"]
13548    pub fn wait_frame(
13549        session: Session,
13550        frame_wait_info: *const FrameWaitInfo,
13551        frame_state: *mut FrameState,
13552    ) -> Result;
13553    #[link_name = "xrApplyHapticFeedback"]
13554    pub fn apply_haptic_feedback(
13555        session: Session,
13556        haptic_action_info: *const HapticActionInfo,
13557        haptic_feedback: *const HapticBaseHeader,
13558    ) -> Result;
13559    #[link_name = "xrStopHapticFeedback"]
13560    pub fn stop_haptic_feedback(
13561        session: Session,
13562        haptic_action_info: *const HapticActionInfo,
13563    ) -> Result;
13564    #[link_name = "xrPollEvent"]
13565    pub fn poll_event(instance: Instance, event_data: *mut EventDataBuffer) -> Result;
13566    #[link_name = "xrStringToPath"]
13567    pub fn string_to_path(
13568        instance: Instance,
13569        path_string: *const c_char,
13570        path: *mut Path,
13571    ) -> Result;
13572    #[link_name = "xrPathToString"]
13573    pub fn path_to_string(
13574        instance: Instance,
13575        path: Path,
13576        buffer_capacity_input: u32,
13577        buffer_count_output: *mut u32,
13578        buffer: *mut c_char,
13579    ) -> Result;
13580    #[link_name = "xrGetReferenceSpaceBoundsRect"]
13581    pub fn get_reference_space_bounds_rect(
13582        session: Session,
13583        reference_space_type: ReferenceSpaceType,
13584        bounds: *mut Extent2Df,
13585    ) -> Result;
13586    #[link_name = "xrGetActionStateBoolean"]
13587    pub fn get_action_state_boolean(
13588        session: Session,
13589        get_info: *const ActionStateGetInfo,
13590        state: *mut ActionStateBoolean,
13591    ) -> Result;
13592    #[link_name = "xrGetActionStateFloat"]
13593    pub fn get_action_state_float(
13594        session: Session,
13595        get_info: *const ActionStateGetInfo,
13596        state: *mut ActionStateFloat,
13597    ) -> Result;
13598    #[link_name = "xrGetActionStateVector2f"]
13599    pub fn get_action_state_vector2f(
13600        session: Session,
13601        get_info: *const ActionStateGetInfo,
13602        state: *mut ActionStateVector2f,
13603    ) -> Result;
13604    #[link_name = "xrGetActionStatePose"]
13605    pub fn get_action_state_pose(
13606        session: Session,
13607        get_info: *const ActionStateGetInfo,
13608        state: *mut ActionStatePose,
13609    ) -> Result;
13610    #[link_name = "xrCreateActionSet"]
13611    pub fn create_action_set(
13612        instance: Instance,
13613        create_info: *const ActionSetCreateInfo,
13614        action_set: *mut ActionSet,
13615    ) -> Result;
13616    #[link_name = "xrDestroyActionSet"]
13617    pub fn destroy_action_set(action_set: ActionSet) -> Result;
13618    #[link_name = "xrCreateAction"]
13619    pub fn create_action(
13620        action_set: ActionSet,
13621        create_info: *const ActionCreateInfo,
13622        action: *mut Action,
13623    ) -> Result;
13624    #[link_name = "xrDestroyAction"]
13625    pub fn destroy_action(action: Action) -> Result;
13626    #[link_name = "xrSuggestInteractionProfileBindings"]
13627    pub fn suggest_interaction_profile_bindings(
13628        instance: Instance,
13629        suggested_bindings: *const InteractionProfileSuggestedBinding,
13630    ) -> Result;
13631    #[link_name = "xrAttachSessionActionSets"]
13632    pub fn attach_session_action_sets(
13633        session: Session,
13634        attach_info: *const SessionActionSetsAttachInfo,
13635    ) -> Result;
13636    #[link_name = "xrGetCurrentInteractionProfile"]
13637    pub fn get_current_interaction_profile(
13638        session: Session,
13639        top_level_user_path: Path,
13640        interaction_profile: *mut InteractionProfileState,
13641    ) -> Result;
13642    #[link_name = "xrSyncActions"]
13643    pub fn sync_actions(session: Session, sync_info: *const ActionsSyncInfo) -> Result;
13644    #[link_name = "xrEnumerateBoundSourcesForAction"]
13645    pub fn enumerate_bound_sources_for_action(
13646        session: Session,
13647        enumerate_info: *const BoundSourcesForActionEnumerateInfo,
13648        source_capacity_input: u32,
13649        source_count_output: *mut u32,
13650        sources: *mut Path,
13651    ) -> Result;
13652    #[link_name = "xrGetInputSourceLocalizedName"]
13653    pub fn get_input_source_localized_name(
13654        session: Session,
13655        get_info: *const InputSourceLocalizedNameGetInfo,
13656        buffer_capacity_input: u32,
13657        buffer_count_output: *mut u32,
13658        buffer: *mut c_char,
13659    ) -> Result;
13660    #[link_name = "xrLocateSpaces"]
13661    pub fn locate_spaces(
13662        session: Session,
13663        locate_info: *const SpacesLocateInfo,
13664        space_locations: *mut SpaceLocations,
13665    ) -> Result;
13666    #[link_name = "xrLocateSpacesKHR"]
13667    pub fn locate_spaces_khr(
13668        session: Session,
13669        locate_info: *const SpacesLocateInfo,
13670        space_locations: *mut SpaceLocations,
13671    ) -> Result;
13672}