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, 40u32);
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 UNINTIALIZED: LoaderInterfaceStructs = Self(0i32);
77    pub const LOADER_INFO: LoaderInterfaceStructs = Self(1i32);
78    pub const API_LAYER_REQUEST: LoaderInterfaceStructs = Self(2i32);
79    pub const RUNTIME_REQUEST: LoaderInterfaceStructs = Self(3i32);
80    pub const API_LAYER_CREATE_INFO: LoaderInterfaceStructs = Self(4i32);
81    pub const API_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::UNINTIALIZED => Some("UNINTIALIZED"),
93            Self::LOADER_INFO => Some("LOADER_INFO"),
94            Self::API_LAYER_REQUEST => Some("API_LAYER_REQUEST"),
95            Self::RUNTIME_REQUEST => Some("RUNTIME_REQUEST"),
96            Self::API_LAYER_CREATE_INFO => Some("API_LAYER_CREATE_INFO"),
97            Self::API_LAYER_NEXT_INFO => Some("API_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 GRAPHICS_BINDING_METAL_KHR: StructureType = Self(1000029000i32);
191    pub const SWAPCHAIN_IMAGE_METAL_KHR: StructureType = Self(1000029001i32);
192    pub const GRAPHICS_REQUIREMENTS_METAL_KHR: StructureType = Self(1000029002i32);
193    pub const SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT: StructureType = Self(1000030000i32);
194    pub const EYE_GAZE_SAMPLE_TIME_EXT: StructureType = Self(1000030001i32);
195    pub const VISIBILITY_MASK_KHR: StructureType = Self(1000031000i32);
196    pub const EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR: StructureType = Self(1000031001i32);
197    pub const SESSION_CREATE_INFO_OVERLAY_EXTX: StructureType = Self(1000033000i32);
198    pub const EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX: StructureType = Self(1000033003i32);
199    pub const COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR: StructureType = Self(1000034000i32);
200    pub const SPATIAL_ANCHOR_CREATE_INFO_MSFT: StructureType = Self(1000039000i32);
201    pub const SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000039001i32);
202    pub const COMPOSITION_LAYER_IMAGE_LAYOUT_FB: StructureType = Self(1000040000i32);
203    pub const COMPOSITION_LAYER_ALPHA_BLEND_FB: StructureType = Self(1000041001i32);
204    pub const VIEW_CONFIGURATION_DEPTH_RANGE_EXT: StructureType = Self(1000046000i32);
205    pub const GRAPHICS_BINDING_EGL_MNDX: StructureType = Self(1000048004i32);
206    pub const SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000049000i32);
207    pub const SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT: StructureType =
208        Self(1000049001i32);
209    pub const SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT: StructureType =
210        Self(1000049002i32);
211    pub const SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT: StructureType = Self(1000049003i32);
212    pub const SYSTEM_HAND_TRACKING_PROPERTIES_EXT: StructureType = Self(1000051000i32);
213    pub const HAND_TRACKER_CREATE_INFO_EXT: StructureType = Self(1000051001i32);
214    pub const HAND_JOINTS_LOCATE_INFO_EXT: StructureType = Self(1000051002i32);
215    pub const HAND_JOINT_LOCATIONS_EXT: StructureType = Self(1000051003i32);
216    pub const HAND_JOINT_VELOCITIES_EXT: StructureType = Self(1000051004i32);
217    pub const SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT: StructureType = Self(1000052000i32);
218    pub const HAND_MESH_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000052001i32);
219    pub const HAND_MESH_UPDATE_INFO_MSFT: StructureType = Self(1000052002i32);
220    pub const HAND_MESH_MSFT: StructureType = Self(1000052003i32);
221    pub const HAND_POSE_TYPE_INFO_MSFT: StructureType = Self(1000052004i32);
222    pub const SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT: StructureType =
223        Self(1000053000i32);
224    pub const SECONDARY_VIEW_CONFIGURATION_STATE_MSFT: StructureType = Self(1000053001i32);
225    pub const SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT: StructureType = Self(1000053002i32);
226    pub const SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT: StructureType = Self(1000053003i32);
227    pub const SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT: StructureType = Self(1000053004i32);
228    pub const SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT: StructureType =
229        Self(1000053005i32);
230    pub const CONTROLLER_MODEL_KEY_STATE_MSFT: StructureType = Self(1000055000i32);
231    pub const CONTROLLER_MODEL_NODE_PROPERTIES_MSFT: StructureType = Self(1000055001i32);
232    pub const CONTROLLER_MODEL_PROPERTIES_MSFT: StructureType = Self(1000055002i32);
233    pub const CONTROLLER_MODEL_NODE_STATE_MSFT: StructureType = Self(1000055003i32);
234    pub const CONTROLLER_MODEL_STATE_MSFT: StructureType = Self(1000055004i32);
235    pub const VIEW_CONFIGURATION_VIEW_FOV_EPIC: StructureType = Self(1000059000i32);
236    pub const HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT: StructureType = Self(1000063000i32);
237    pub const COMPOSITION_LAYER_REPROJECTION_INFO_MSFT: StructureType = Self(1000066000i32);
238    pub const COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT: StructureType =
239        Self(1000066001i32);
240    pub const ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB: StructureType = Self(1000070000i32);
241    pub const COMPOSITION_LAYER_SECURE_CONTENT_FB: StructureType = Self(1000072000i32);
242    pub const BODY_TRACKER_CREATE_INFO_FB: StructureType = Self(1000076001i32);
243    pub const BODY_JOINTS_LOCATE_INFO_FB: StructureType = Self(1000076002i32);
244    pub const SYSTEM_BODY_TRACKING_PROPERTIES_FB: StructureType = Self(1000076004i32);
245    pub const BODY_JOINT_LOCATIONS_FB: StructureType = Self(1000076005i32);
246    pub const BODY_SKELETON_FB: StructureType = Self(1000076006i32);
247    pub const INTERACTION_PROFILE_DPAD_BINDING_EXT: StructureType = Self(1000078000i32);
248    pub const INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE: StructureType = Self(1000079000i32);
249    pub const HAND_JOINTS_MOTION_RANGE_INFO_EXT: StructureType = Self(1000080000i32);
250    pub const LOADER_INIT_INFO_ANDROID_KHR: StructureType = Self(1000089000i32);
251    pub const VULKAN_INSTANCE_CREATE_INFO_KHR: StructureType = Self(1000090000i32);
252    pub const VULKAN_DEVICE_CREATE_INFO_KHR: StructureType = Self(1000090001i32);
253    pub const VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR: StructureType = Self(1000090003i32);
254    pub const GRAPHICS_BINDING_VULKAN2_KHR: StructureType = Self::GRAPHICS_BINDING_VULKAN_KHR;
255    pub const SWAPCHAIN_IMAGE_VULKAN2_KHR: StructureType = Self::SWAPCHAIN_IMAGE_VULKAN_KHR;
256    pub const GRAPHICS_REQUIREMENTS_VULKAN2_KHR: StructureType =
257        Self::GRAPHICS_REQUIREMENTS_VULKAN_KHR;
258    pub const COMPOSITION_LAYER_EQUIRECT2_KHR: StructureType = Self(1000091000i32);
259    pub const SCENE_OBSERVER_CREATE_INFO_MSFT: StructureType = Self(1000097000i32);
260    pub const SCENE_CREATE_INFO_MSFT: StructureType = Self(1000097001i32);
261    pub const NEW_SCENE_COMPUTE_INFO_MSFT: StructureType = Self(1000097002i32);
262    pub const VISUAL_MESH_COMPUTE_LOD_INFO_MSFT: StructureType = Self(1000097003i32);
263    pub const SCENE_COMPONENTS_MSFT: StructureType = Self(1000097004i32);
264    pub const SCENE_COMPONENTS_GET_INFO_MSFT: StructureType = Self(1000097005i32);
265    pub const SCENE_COMPONENT_LOCATIONS_MSFT: StructureType = Self(1000097006i32);
266    pub const SCENE_COMPONENTS_LOCATE_INFO_MSFT: StructureType = Self(1000097007i32);
267    pub const SCENE_OBJECTS_MSFT: StructureType = Self(1000097008i32);
268    pub const SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT: StructureType = Self(1000097009i32);
269    pub const SCENE_OBJECT_TYPES_FILTER_INFO_MSFT: StructureType = Self(1000097010i32);
270    pub const SCENE_PLANES_MSFT: StructureType = Self(1000097011i32);
271    pub const SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT: StructureType = Self(1000097012i32);
272    pub const SCENE_MESHES_MSFT: StructureType = Self(1000097013i32);
273    pub const SCENE_MESH_BUFFERS_GET_INFO_MSFT: StructureType = Self(1000097014i32);
274    pub const SCENE_MESH_BUFFERS_MSFT: StructureType = Self(1000097015i32);
275    pub const SCENE_MESH_VERTEX_BUFFER_MSFT: StructureType = Self(1000097016i32);
276    pub const SCENE_MESH_INDICES_UINT32_MSFT: StructureType = Self(1000097017i32);
277    pub const SCENE_MESH_INDICES_UINT16_MSFT: StructureType = Self(1000097018i32);
278    pub const SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT: StructureType = Self(1000098000i32);
279    pub const SCENE_DESERIALIZE_INFO_MSFT: StructureType = Self(1000098001i32);
280    pub const EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB: StructureType = Self(1000101000i32);
281    pub const VIVE_TRACKER_PATHS_HTCX: StructureType = Self(1000103000i32);
282    pub const EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX: StructureType = Self(1000103001i32);
283    pub const SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC: StructureType = Self(1000104000i32);
284    pub const FACIAL_TRACKER_CREATE_INFO_HTC: StructureType = Self(1000104001i32);
285    pub const FACIAL_EXPRESSIONS_HTC: StructureType = Self(1000104002i32);
286    pub const SYSTEM_COLOR_SPACE_PROPERTIES_FB: StructureType = Self(1000108000i32);
287    pub const HAND_TRACKING_MESH_FB: StructureType = Self(1000110001i32);
288    pub const HAND_TRACKING_SCALE_FB: StructureType = Self(1000110003i32);
289    pub const HAND_TRACKING_AIM_STATE_FB: StructureType = Self(1000111001i32);
290    pub const HAND_TRACKING_CAPSULES_STATE_FB: StructureType = Self(1000112000i32);
291    pub const SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB: StructureType = Self(1000113004i32);
292    pub const SPATIAL_ANCHOR_CREATE_INFO_FB: StructureType = Self(1000113003i32);
293    pub const SPACE_COMPONENT_STATUS_SET_INFO_FB: StructureType = Self(1000113007i32);
294    pub const SPACE_COMPONENT_STATUS_FB: StructureType = Self(1000113001i32);
295    pub const EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB: StructureType = Self(1000113005i32);
296    pub const EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB: StructureType = Self(1000113006i32);
297    pub const FOVEATION_PROFILE_CREATE_INFO_FB: StructureType = Self(1000114000i32);
298    pub const SWAPCHAIN_CREATE_INFO_FOVEATION_FB: StructureType = Self(1000114001i32);
299    pub const SWAPCHAIN_STATE_FOVEATION_FB: StructureType = Self(1000114002i32);
300    pub const FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB: StructureType = Self(1000115000i32);
301    pub const KEYBOARD_SPACE_CREATE_INFO_FB: StructureType = Self(1000116009i32);
302    pub const KEYBOARD_TRACKING_QUERY_FB: StructureType = Self(1000116004i32);
303    pub const SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB: StructureType = Self(1000116002i32);
304    pub const TRIANGLE_MESH_CREATE_INFO_FB: StructureType = Self(1000117001i32);
305    pub const SYSTEM_PASSTHROUGH_PROPERTIES_FB: StructureType = Self(1000118000i32);
306    pub const PASSTHROUGH_CREATE_INFO_FB: StructureType = Self(1000118001i32);
307    pub const PASSTHROUGH_LAYER_CREATE_INFO_FB: StructureType = Self(1000118002i32);
308    pub const COMPOSITION_LAYER_PASSTHROUGH_FB: StructureType = Self(1000118003i32);
309    pub const GEOMETRY_INSTANCE_CREATE_INFO_FB: StructureType = Self(1000118004i32);
310    pub const GEOMETRY_INSTANCE_TRANSFORM_FB: StructureType = Self(1000118005i32);
311    pub const SYSTEM_PASSTHROUGH_PROPERTIES2_FB: StructureType = Self(1000118006i32);
312    pub const PASSTHROUGH_STYLE_FB: StructureType = Self(1000118020i32);
313    pub const PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB: StructureType = Self(1000118021i32);
314    pub const PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB: StructureType = Self(1000118022i32);
315    pub const PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB: StructureType = Self(1000118023i32);
316    pub const EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB: StructureType = Self(1000118030i32);
317    pub const RENDER_MODEL_PATH_INFO_FB: StructureType = Self(1000119000i32);
318    pub const RENDER_MODEL_PROPERTIES_FB: StructureType = Self(1000119001i32);
319    pub const RENDER_MODEL_BUFFER_FB: StructureType = Self(1000119002i32);
320    pub const RENDER_MODEL_LOAD_INFO_FB: StructureType = Self(1000119003i32);
321    pub const SYSTEM_RENDER_MODEL_PROPERTIES_FB: StructureType = Self(1000119004i32);
322    pub const RENDER_MODEL_CAPABILITIES_REQUEST_FB: StructureType = Self(1000119005i32);
323    pub const BINDING_MODIFICATIONS_KHR: StructureType = Self(1000120000i32);
324    pub const VIEW_LOCATE_FOVEATED_RENDERING_VARJO: StructureType = Self(1000121000i32);
325    pub const FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO: StructureType = Self(1000121001i32);
326    pub const SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO: StructureType = Self(1000121002i32);
327    pub const COMPOSITION_LAYER_DEPTH_TEST_VARJO: StructureType = Self(1000122000i32);
328    pub const SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO: StructureType = Self(1000124000i32);
329    pub const EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO: StructureType = Self(1000124001i32);
330    pub const MARKER_SPACE_CREATE_INFO_VARJO: StructureType = Self(1000124002i32);
331    pub const FRAME_END_INFO_ML: StructureType = Self(1000135000i32);
332    pub const GLOBAL_DIMMER_FRAME_END_INFO_ML: StructureType = Self(1000136000i32);
333    pub const COORDINATE_SPACE_CREATE_INFO_ML: StructureType = Self(1000137000i32);
334    pub const SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML: StructureType = Self(1000138000i32);
335    pub const MARKER_DETECTOR_CREATE_INFO_ML: StructureType = Self(1000138001i32);
336    pub const MARKER_DETECTOR_ARUCO_INFO_ML: StructureType = Self(1000138002i32);
337    pub const MARKER_DETECTOR_SIZE_INFO_ML: StructureType = Self(1000138003i32);
338    pub const MARKER_DETECTOR_APRIL_TAG_INFO_ML: StructureType = Self(1000138004i32);
339    pub const MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML: StructureType = Self(1000138005i32);
340    pub const MARKER_DETECTOR_SNAPSHOT_INFO_ML: StructureType = Self(1000138006i32);
341    pub const MARKER_DETECTOR_STATE_ML: StructureType = Self(1000138007i32);
342    pub const MARKER_SPACE_CREATE_INFO_ML: StructureType = Self(1000138008i32);
343    pub const LOCALIZATION_MAP_ML: StructureType = Self(1000139000i32);
344    pub const EVENT_DATA_LOCALIZATION_CHANGED_ML: StructureType = Self(1000139001i32);
345    pub const MAP_LOCALIZATION_REQUEST_INFO_ML: StructureType = Self(1000139002i32);
346    pub const LOCALIZATION_MAP_IMPORT_INFO_ML: StructureType = Self(1000139003i32);
347    pub const LOCALIZATION_ENABLE_EVENTS_INFO_ML: StructureType = Self(1000139004i32);
348    pub const EVENT_DATA_HEADSET_FIT_CHANGED_ML: StructureType = Self(1000472000i32);
349    pub const EVENT_DATA_EYE_CALIBRATION_CHANGED_ML: StructureType = Self(1000472001i32);
350    pub const USER_CALIBRATION_ENABLE_EVENTS_INFO_ML: StructureType = Self(1000472002i32);
351    pub const SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT: StructureType = Self(1000142000i32);
352    pub const SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT: StructureType =
353        Self(1000142001i32);
354    pub const SCENE_MARKERS_MSFT: StructureType = Self(1000147000i32);
355    pub const SCENE_MARKER_TYPE_FILTER_MSFT: StructureType = Self(1000147001i32);
356    pub const SCENE_MARKER_QR_CODES_MSFT: StructureType = Self(1000147002i32);
357    pub const SPACE_QUERY_INFO_FB: StructureType = Self(1000156001i32);
358    pub const SPACE_QUERY_RESULTS_FB: StructureType = Self(1000156002i32);
359    pub const SPACE_STORAGE_LOCATION_FILTER_INFO_FB: StructureType = Self(1000156003i32);
360    pub const SPACE_UUID_FILTER_INFO_FB: StructureType = Self(1000156054i32);
361    pub const SPACE_COMPONENT_FILTER_INFO_FB: StructureType = Self(1000156052i32);
362    pub const EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB: StructureType = Self(1000156103i32);
363    pub const EVENT_DATA_SPACE_QUERY_COMPLETE_FB: StructureType = Self(1000156104i32);
364    pub const SPACE_SAVE_INFO_FB: StructureType = Self(1000158000i32);
365    pub const SPACE_ERASE_INFO_FB: StructureType = Self(1000158001i32);
366    pub const EVENT_DATA_SPACE_SAVE_COMPLETE_FB: StructureType = Self(1000158106i32);
367    pub const EVENT_DATA_SPACE_ERASE_COMPLETE_FB: StructureType = Self(1000158107i32);
368    pub const SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB: StructureType = Self(1000160000i32);
369    pub const SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB: StructureType = Self(1000161000i32);
370    pub const SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB: StructureType = Self(1000162000i32);
371    pub const SWAPCHAIN_STATE_SAMPLER_VULKAN_FB: StructureType = Self(1000163000i32);
372    pub const SPACE_SHARE_INFO_FB: StructureType = Self(1000169001i32);
373    pub const EVENT_DATA_SPACE_SHARE_COMPLETE_FB: StructureType = Self(1000169002i32);
374    pub const COMPOSITION_LAYER_SPACE_WARP_INFO_FB: StructureType = Self(1000171000i32);
375    pub const SYSTEM_SPACE_WARP_PROPERTIES_FB: StructureType = Self(1000171001i32);
376    pub const HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB: StructureType = Self(1000173001i32);
377    pub const SEMANTIC_LABELS_FB: StructureType = Self(1000175000i32);
378    pub const ROOM_LAYOUT_FB: StructureType = Self(1000175001i32);
379    pub const BOUNDARY_2D_FB: StructureType = Self(1000175002i32);
380    pub const SEMANTIC_LABELS_SUPPORT_INFO_FB: StructureType = Self(1000175010i32);
381    pub const DIGITAL_LENS_CONTROL_ALMALENCE: StructureType = Self(1000196000i32);
382    pub const EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB: StructureType = Self(1000198001i32);
383    pub const SCENE_CAPTURE_REQUEST_INFO_FB: StructureType = Self(1000198050i32);
384    pub const SPACE_CONTAINER_FB: StructureType = Self(1000199000i32);
385    pub const FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META: StructureType = Self(1000200000i32);
386    pub const FOVEATION_EYE_TRACKED_STATE_META: StructureType = Self(1000200001i32);
387    pub const SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META: StructureType = Self(1000200002i32);
388    pub const SYSTEM_FACE_TRACKING_PROPERTIES_FB: StructureType = Self(1000201004i32);
389    pub const FACE_TRACKER_CREATE_INFO_FB: StructureType = Self(1000201005i32);
390    pub const FACE_EXPRESSION_INFO_FB: StructureType = Self(1000201002i32);
391    pub const FACE_EXPRESSION_WEIGHTS_FB: StructureType = Self(1000201006i32);
392    pub const EYE_TRACKER_CREATE_INFO_FB: StructureType = Self(1000202001i32);
393    pub const EYE_GAZES_INFO_FB: StructureType = Self(1000202002i32);
394    pub const EYE_GAZES_FB: StructureType = Self(1000202003i32);
395    pub const SYSTEM_EYE_TRACKING_PROPERTIES_FB: StructureType = Self(1000202004i32);
396    pub const PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB: StructureType = Self(1000203002i32);
397    pub const COMPOSITION_LAYER_SETTINGS_FB: StructureType = Self(1000204000i32);
398    pub const HAPTIC_PCM_VIBRATION_FB: StructureType = Self(1000209001i32);
399    pub const DEVICE_PCM_SAMPLE_RATE_STATE_FB: StructureType = Self(1000209002i32);
400    pub const DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB: StructureType =
401        Self::DEVICE_PCM_SAMPLE_RATE_STATE_FB;
402    pub const COMPOSITION_LAYER_DEPTH_TEST_FB: StructureType = Self(1000212000i32);
403    pub const LOCAL_DIMMING_FRAME_END_INFO_META: StructureType = Self(1000216000i32);
404    pub const PASSTHROUGH_PREFERENCES_META: StructureType = Self(1000217000i32);
405    pub const SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META: StructureType = Self(1000219001i32);
406    pub const VIRTUAL_KEYBOARD_CREATE_INFO_META: StructureType = Self(1000219002i32);
407    pub const VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META: StructureType = Self(1000219003i32);
408    pub const VIRTUAL_KEYBOARD_LOCATION_INFO_META: StructureType = Self(1000219004i32);
409    pub const VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META: StructureType = Self(1000219005i32);
410    pub const VIRTUAL_KEYBOARD_ANIMATION_STATE_META: StructureType = Self(1000219006i32);
411    pub const VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META: StructureType = Self(1000219007i32);
412    pub const VIRTUAL_KEYBOARD_TEXTURE_DATA_META: StructureType = Self(1000219009i32);
413    pub const VIRTUAL_KEYBOARD_INPUT_INFO_META: StructureType = Self(1000219010i32);
414    pub const VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META: StructureType = Self(1000219011i32);
415    pub const EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META: StructureType = Self(1000219014i32);
416    pub const EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META: StructureType = Self(1000219015i32);
417    pub const EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META: StructureType = Self(1000219016i32);
418    pub const EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META: StructureType = Self(1000219017i32);
419    pub const EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META: StructureType = Self(1000219018i32);
420    pub const EXTERNAL_CAMERA_OCULUS: StructureType = Self(1000226000i32);
421    pub const VULKAN_SWAPCHAIN_CREATE_INFO_META: StructureType = Self(1000227000i32);
422    pub const PERFORMANCE_METRICS_STATE_META: StructureType = Self(1000232001i32);
423    pub const PERFORMANCE_METRICS_COUNTER_META: StructureType = Self(1000232002i32);
424    pub const SPACE_LIST_SAVE_INFO_FB: StructureType = Self(1000238000i32);
425    pub const EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB: StructureType = Self(1000238001i32);
426    pub const SPACE_USER_CREATE_INFO_FB: StructureType = Self(1000241001i32);
427    pub const SYSTEM_HEADSET_ID_PROPERTIES_META: StructureType = Self(1000245000i32);
428    pub const RECOMMENDED_LAYER_RESOLUTION_META: StructureType = Self(1000254000i32);
429    pub const RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META: StructureType = Self(1000254001i32);
430    pub const SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META: StructureType = Self(1000266000i32);
431    pub const PASSTHROUGH_COLOR_LUT_CREATE_INFO_META: StructureType = Self(1000266001i32);
432    pub const PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META: StructureType = Self(1000266002i32);
433    pub const PASSTHROUGH_COLOR_MAP_LUT_META: StructureType = Self(1000266100i32);
434    pub const PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META: StructureType = Self(1000266101i32);
435    pub const SPACE_TRIANGLE_MESH_GET_INFO_META: StructureType = Self(1000269001i32);
436    pub const SPACE_TRIANGLE_MESH_META: StructureType = Self(1000269002i32);
437    pub const SYSTEM_FACE_TRACKING_PROPERTIES2_FB: StructureType = Self(1000287013i32);
438    pub const FACE_TRACKER_CREATE_INFO2_FB: StructureType = Self(1000287014i32);
439    pub const FACE_EXPRESSION_INFO2_FB: StructureType = Self(1000287015i32);
440    pub const FACE_EXPRESSION_WEIGHTS2_FB: StructureType = Self(1000287016i32);
441    pub const ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META: StructureType = Self(1000291000i32);
442    pub const ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META: StructureType = Self(1000291001i32);
443    pub const ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META: StructureType = Self(1000291002i32);
444    pub const ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META: StructureType = Self(1000291003i32);
445    pub const ENVIRONMENT_DEPTH_IMAGE_VIEW_META: StructureType = Self(1000291004i32);
446    pub const ENVIRONMENT_DEPTH_IMAGE_META: StructureType = Self(1000291005i32);
447    pub const ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META: StructureType = Self(1000291006i32);
448    pub const SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META: StructureType = Self(1000291007i32);
449    pub const PASSTHROUGH_CREATE_INFO_HTC: StructureType = Self(1000317001i32);
450    pub const PASSTHROUGH_COLOR_HTC: StructureType = Self(1000317002i32);
451    pub const PASSTHROUGH_MESH_TRANSFORM_INFO_HTC: StructureType = Self(1000317003i32);
452    pub const COMPOSITION_LAYER_PASSTHROUGH_HTC: StructureType = Self(1000317004i32);
453    pub const FOVEATION_APPLY_INFO_HTC: StructureType = Self(1000318000i32);
454    pub const FOVEATION_DYNAMIC_MODE_INFO_HTC: StructureType = Self(1000318001i32);
455    pub const FOVEATION_CUSTOM_MODE_INFO_HTC: StructureType = Self(1000318002i32);
456    pub const SYSTEM_ANCHOR_PROPERTIES_HTC: StructureType = Self(1000319000i32);
457    pub const SPATIAL_ANCHOR_CREATE_INFO_HTC: StructureType = Self(1000319001i32);
458    pub const ACTIVE_ACTION_SET_PRIORITIES_EXT: StructureType = Self(1000373000i32);
459    pub const SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX: StructureType = Self(1000375000i32);
460    pub const FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX: StructureType = Self(1000375001i32);
461    pub const HAND_TRACKING_DATA_SOURCE_INFO_EXT: StructureType = Self(1000428000i32);
462    pub const HAND_TRACKING_DATA_SOURCE_STATE_EXT: StructureType = Self(1000428001i32);
463    pub const PLANE_DETECTOR_CREATE_INFO_EXT: StructureType = Self(1000429001i32);
464    pub const PLANE_DETECTOR_BEGIN_INFO_EXT: StructureType = Self(1000429002i32);
465    pub const PLANE_DETECTOR_GET_INFO_EXT: StructureType = Self(1000429003i32);
466    pub const PLANE_DETECTOR_LOCATIONS_EXT: StructureType = Self(1000429004i32);
467    pub const PLANE_DETECTOR_LOCATION_EXT: StructureType = Self(1000429005i32);
468    pub const PLANE_DETECTOR_POLYGON_BUFFER_EXT: StructureType = Self(1000429006i32);
469    pub const SYSTEM_PLANE_DETECTION_PROPERTIES_EXT: StructureType = Self(1000429007i32);
470    pub const FUTURE_CANCEL_INFO_EXT: StructureType = Self(1000469000i32);
471    pub const FUTURE_POLL_INFO_EXT: StructureType = Self(1000469001i32);
472    pub const FUTURE_COMPLETION_EXT: StructureType = Self(1000469002i32);
473    pub const FUTURE_POLL_RESULT_EXT: StructureType = Self(1000469003i32);
474    pub const EVENT_DATA_USER_PRESENCE_CHANGED_EXT: StructureType = Self(1000470000i32);
475    pub const SYSTEM_USER_PRESENCE_PROPERTIES_EXT: StructureType = Self(1000470001i32);
476    pub const SPACES_LOCATE_INFO_KHR: StructureType = Self::SPACES_LOCATE_INFO;
477    pub const SPACE_LOCATIONS_KHR: StructureType = Self::SPACE_LOCATIONS;
478    pub const SPACE_VELOCITIES_KHR: StructureType = Self::SPACE_VELOCITIES;
479    pub fn from_raw(x: i32) -> Self {
480        Self(x)
481    }
482    pub fn into_raw(self) -> i32 {
483        self.0
484    }
485}
486impl fmt::Debug for StructureType {
487    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
488        let name = match *self {
489            Self::UNKNOWN => Some("UNKNOWN"),
490            Self::API_LAYER_PROPERTIES => Some("API_LAYER_PROPERTIES"),
491            Self::EXTENSION_PROPERTIES => Some("EXTENSION_PROPERTIES"),
492            Self::INSTANCE_CREATE_INFO => Some("INSTANCE_CREATE_INFO"),
493            Self::SYSTEM_GET_INFO => Some("SYSTEM_GET_INFO"),
494            Self::SYSTEM_PROPERTIES => Some("SYSTEM_PROPERTIES"),
495            Self::VIEW_LOCATE_INFO => Some("VIEW_LOCATE_INFO"),
496            Self::VIEW => Some("VIEW"),
497            Self::SESSION_CREATE_INFO => Some("SESSION_CREATE_INFO"),
498            Self::SWAPCHAIN_CREATE_INFO => Some("SWAPCHAIN_CREATE_INFO"),
499            Self::SESSION_BEGIN_INFO => Some("SESSION_BEGIN_INFO"),
500            Self::VIEW_STATE => Some("VIEW_STATE"),
501            Self::FRAME_END_INFO => Some("FRAME_END_INFO"),
502            Self::HAPTIC_VIBRATION => Some("HAPTIC_VIBRATION"),
503            Self::EVENT_DATA_BUFFER => Some("EVENT_DATA_BUFFER"),
504            Self::EVENT_DATA_INSTANCE_LOSS_PENDING => Some("EVENT_DATA_INSTANCE_LOSS_PENDING"),
505            Self::EVENT_DATA_SESSION_STATE_CHANGED => Some("EVENT_DATA_SESSION_STATE_CHANGED"),
506            Self::ACTION_STATE_BOOLEAN => Some("ACTION_STATE_BOOLEAN"),
507            Self::ACTION_STATE_FLOAT => Some("ACTION_STATE_FLOAT"),
508            Self::ACTION_STATE_VECTOR2F => Some("ACTION_STATE_VECTOR2F"),
509            Self::ACTION_STATE_POSE => Some("ACTION_STATE_POSE"),
510            Self::ACTION_SET_CREATE_INFO => Some("ACTION_SET_CREATE_INFO"),
511            Self::ACTION_CREATE_INFO => Some("ACTION_CREATE_INFO"),
512            Self::INSTANCE_PROPERTIES => Some("INSTANCE_PROPERTIES"),
513            Self::FRAME_WAIT_INFO => Some("FRAME_WAIT_INFO"),
514            Self::COMPOSITION_LAYER_PROJECTION => Some("COMPOSITION_LAYER_PROJECTION"),
515            Self::COMPOSITION_LAYER_QUAD => Some("COMPOSITION_LAYER_QUAD"),
516            Self::REFERENCE_SPACE_CREATE_INFO => Some("REFERENCE_SPACE_CREATE_INFO"),
517            Self::ACTION_SPACE_CREATE_INFO => Some("ACTION_SPACE_CREATE_INFO"),
518            Self::EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING => {
519                Some("EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING")
520            }
521            Self::VIEW_CONFIGURATION_VIEW => Some("VIEW_CONFIGURATION_VIEW"),
522            Self::SPACE_LOCATION => Some("SPACE_LOCATION"),
523            Self::SPACE_VELOCITY => Some("SPACE_VELOCITY"),
524            Self::FRAME_STATE => Some("FRAME_STATE"),
525            Self::VIEW_CONFIGURATION_PROPERTIES => Some("VIEW_CONFIGURATION_PROPERTIES"),
526            Self::FRAME_BEGIN_INFO => Some("FRAME_BEGIN_INFO"),
527            Self::COMPOSITION_LAYER_PROJECTION_VIEW => Some("COMPOSITION_LAYER_PROJECTION_VIEW"),
528            Self::EVENT_DATA_EVENTS_LOST => Some("EVENT_DATA_EVENTS_LOST"),
529            Self::INTERACTION_PROFILE_SUGGESTED_BINDING => {
530                Some("INTERACTION_PROFILE_SUGGESTED_BINDING")
531            }
532            Self::EVENT_DATA_INTERACTION_PROFILE_CHANGED => {
533                Some("EVENT_DATA_INTERACTION_PROFILE_CHANGED")
534            }
535            Self::INTERACTION_PROFILE_STATE => Some("INTERACTION_PROFILE_STATE"),
536            Self::SWAPCHAIN_IMAGE_ACQUIRE_INFO => Some("SWAPCHAIN_IMAGE_ACQUIRE_INFO"),
537            Self::SWAPCHAIN_IMAGE_WAIT_INFO => Some("SWAPCHAIN_IMAGE_WAIT_INFO"),
538            Self::SWAPCHAIN_IMAGE_RELEASE_INFO => Some("SWAPCHAIN_IMAGE_RELEASE_INFO"),
539            Self::ACTION_STATE_GET_INFO => Some("ACTION_STATE_GET_INFO"),
540            Self::HAPTIC_ACTION_INFO => Some("HAPTIC_ACTION_INFO"),
541            Self::SESSION_ACTION_SETS_ATTACH_INFO => Some("SESSION_ACTION_SETS_ATTACH_INFO"),
542            Self::ACTIONS_SYNC_INFO => Some("ACTIONS_SYNC_INFO"),
543            Self::BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO => {
544                Some("BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO")
545            }
546            Self::INPUT_SOURCE_LOCALIZED_NAME_GET_INFO => {
547                Some("INPUT_SOURCE_LOCALIZED_NAME_GET_INFO")
548            }
549            Self::SPACES_LOCATE_INFO => Some("SPACES_LOCATE_INFO"),
550            Self::SPACE_LOCATIONS => Some("SPACE_LOCATIONS"),
551            Self::SPACE_VELOCITIES => Some("SPACE_VELOCITIES"),
552            Self::COMPOSITION_LAYER_CUBE_KHR => Some("COMPOSITION_LAYER_CUBE_KHR"),
553            Self::INSTANCE_CREATE_INFO_ANDROID_KHR => Some("INSTANCE_CREATE_INFO_ANDROID_KHR"),
554            Self::COMPOSITION_LAYER_DEPTH_INFO_KHR => Some("COMPOSITION_LAYER_DEPTH_INFO_KHR"),
555            Self::VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR => {
556                Some("VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR")
557            }
558            Self::EVENT_DATA_PERF_SETTINGS_EXT => Some("EVENT_DATA_PERF_SETTINGS_EXT"),
559            Self::COMPOSITION_LAYER_CYLINDER_KHR => Some("COMPOSITION_LAYER_CYLINDER_KHR"),
560            Self::COMPOSITION_LAYER_EQUIRECT_KHR => Some("COMPOSITION_LAYER_EQUIRECT_KHR"),
561            Self::DEBUG_UTILS_OBJECT_NAME_INFO_EXT => Some("DEBUG_UTILS_OBJECT_NAME_INFO_EXT"),
562            Self::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT => {
563                Some("DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT")
564            }
565            Self::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT => {
566                Some("DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT")
567            }
568            Self::DEBUG_UTILS_LABEL_EXT => Some("DEBUG_UTILS_LABEL_EXT"),
569            Self::GRAPHICS_BINDING_OPENGL_WIN32_KHR => Some("GRAPHICS_BINDING_OPENGL_WIN32_KHR"),
570            Self::GRAPHICS_BINDING_OPENGL_XLIB_KHR => Some("GRAPHICS_BINDING_OPENGL_XLIB_KHR"),
571            Self::GRAPHICS_BINDING_OPENGL_XCB_KHR => Some("GRAPHICS_BINDING_OPENGL_XCB_KHR"),
572            Self::GRAPHICS_BINDING_OPENGL_WAYLAND_KHR => {
573                Some("GRAPHICS_BINDING_OPENGL_WAYLAND_KHR")
574            }
575            Self::SWAPCHAIN_IMAGE_OPENGL_KHR => Some("SWAPCHAIN_IMAGE_OPENGL_KHR"),
576            Self::GRAPHICS_REQUIREMENTS_OPENGL_KHR => Some("GRAPHICS_REQUIREMENTS_OPENGL_KHR"),
577            Self::GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR => {
578                Some("GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR")
579            }
580            Self::SWAPCHAIN_IMAGE_OPENGL_ES_KHR => Some("SWAPCHAIN_IMAGE_OPENGL_ES_KHR"),
581            Self::GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR => {
582                Some("GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR")
583            }
584            Self::GRAPHICS_BINDING_VULKAN_KHR => Some("GRAPHICS_BINDING_VULKAN_KHR"),
585            Self::SWAPCHAIN_IMAGE_VULKAN_KHR => Some("SWAPCHAIN_IMAGE_VULKAN_KHR"),
586            Self::GRAPHICS_REQUIREMENTS_VULKAN_KHR => Some("GRAPHICS_REQUIREMENTS_VULKAN_KHR"),
587            Self::GRAPHICS_BINDING_D3D11_KHR => Some("GRAPHICS_BINDING_D3D11_KHR"),
588            Self::SWAPCHAIN_IMAGE_D3D11_KHR => Some("SWAPCHAIN_IMAGE_D3D11_KHR"),
589            Self::GRAPHICS_REQUIREMENTS_D3D11_KHR => Some("GRAPHICS_REQUIREMENTS_D3D11_KHR"),
590            Self::GRAPHICS_BINDING_D3D12_KHR => Some("GRAPHICS_BINDING_D3D12_KHR"),
591            Self::SWAPCHAIN_IMAGE_D3D12_KHR => Some("SWAPCHAIN_IMAGE_D3D12_KHR"),
592            Self::GRAPHICS_REQUIREMENTS_D3D12_KHR => Some("GRAPHICS_REQUIREMENTS_D3D12_KHR"),
593            Self::GRAPHICS_BINDING_METAL_KHR => Some("GRAPHICS_BINDING_METAL_KHR"),
594            Self::SWAPCHAIN_IMAGE_METAL_KHR => Some("SWAPCHAIN_IMAGE_METAL_KHR"),
595            Self::GRAPHICS_REQUIREMENTS_METAL_KHR => Some("GRAPHICS_REQUIREMENTS_METAL_KHR"),
596            Self::SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT => {
597                Some("SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT")
598            }
599            Self::EYE_GAZE_SAMPLE_TIME_EXT => Some("EYE_GAZE_SAMPLE_TIME_EXT"),
600            Self::VISIBILITY_MASK_KHR => Some("VISIBILITY_MASK_KHR"),
601            Self::EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR => {
602                Some("EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR")
603            }
604            Self::SESSION_CREATE_INFO_OVERLAY_EXTX => Some("SESSION_CREATE_INFO_OVERLAY_EXTX"),
605            Self::EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX => {
606                Some("EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX")
607            }
608            Self::COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR => {
609                Some("COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR")
610            }
611            Self::SPATIAL_ANCHOR_CREATE_INFO_MSFT => Some("SPATIAL_ANCHOR_CREATE_INFO_MSFT"),
612            Self::SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT => {
613                Some("SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT")
614            }
615            Self::COMPOSITION_LAYER_IMAGE_LAYOUT_FB => Some("COMPOSITION_LAYER_IMAGE_LAYOUT_FB"),
616            Self::COMPOSITION_LAYER_ALPHA_BLEND_FB => Some("COMPOSITION_LAYER_ALPHA_BLEND_FB"),
617            Self::VIEW_CONFIGURATION_DEPTH_RANGE_EXT => Some("VIEW_CONFIGURATION_DEPTH_RANGE_EXT"),
618            Self::GRAPHICS_BINDING_EGL_MNDX => Some("GRAPHICS_BINDING_EGL_MNDX"),
619            Self::SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT => {
620                Some("SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT")
621            }
622            Self::SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT => {
623                Some("SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT")
624            }
625            Self::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT => {
626                Some("SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT")
627            }
628            Self::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT => {
629                Some("SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT")
630            }
631            Self::SYSTEM_HAND_TRACKING_PROPERTIES_EXT => {
632                Some("SYSTEM_HAND_TRACKING_PROPERTIES_EXT")
633            }
634            Self::HAND_TRACKER_CREATE_INFO_EXT => Some("HAND_TRACKER_CREATE_INFO_EXT"),
635            Self::HAND_JOINTS_LOCATE_INFO_EXT => Some("HAND_JOINTS_LOCATE_INFO_EXT"),
636            Self::HAND_JOINT_LOCATIONS_EXT => Some("HAND_JOINT_LOCATIONS_EXT"),
637            Self::HAND_JOINT_VELOCITIES_EXT => Some("HAND_JOINT_VELOCITIES_EXT"),
638            Self::SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT => {
639                Some("SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT")
640            }
641            Self::HAND_MESH_SPACE_CREATE_INFO_MSFT => Some("HAND_MESH_SPACE_CREATE_INFO_MSFT"),
642            Self::HAND_MESH_UPDATE_INFO_MSFT => Some("HAND_MESH_UPDATE_INFO_MSFT"),
643            Self::HAND_MESH_MSFT => Some("HAND_MESH_MSFT"),
644            Self::HAND_POSE_TYPE_INFO_MSFT => Some("HAND_POSE_TYPE_INFO_MSFT"),
645            Self::SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT => {
646                Some("SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT")
647            }
648            Self::SECONDARY_VIEW_CONFIGURATION_STATE_MSFT => {
649                Some("SECONDARY_VIEW_CONFIGURATION_STATE_MSFT")
650            }
651            Self::SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT => {
652                Some("SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT")
653            }
654            Self::SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT => {
655                Some("SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT")
656            }
657            Self::SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT => {
658                Some("SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT")
659            }
660            Self::SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT => {
661                Some("SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT")
662            }
663            Self::CONTROLLER_MODEL_KEY_STATE_MSFT => Some("CONTROLLER_MODEL_KEY_STATE_MSFT"),
664            Self::CONTROLLER_MODEL_NODE_PROPERTIES_MSFT => {
665                Some("CONTROLLER_MODEL_NODE_PROPERTIES_MSFT")
666            }
667            Self::CONTROLLER_MODEL_PROPERTIES_MSFT => Some("CONTROLLER_MODEL_PROPERTIES_MSFT"),
668            Self::CONTROLLER_MODEL_NODE_STATE_MSFT => Some("CONTROLLER_MODEL_NODE_STATE_MSFT"),
669            Self::CONTROLLER_MODEL_STATE_MSFT => Some("CONTROLLER_MODEL_STATE_MSFT"),
670            Self::VIEW_CONFIGURATION_VIEW_FOV_EPIC => Some("VIEW_CONFIGURATION_VIEW_FOV_EPIC"),
671            Self::HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT => Some("HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"),
672            Self::COMPOSITION_LAYER_REPROJECTION_INFO_MSFT => {
673                Some("COMPOSITION_LAYER_REPROJECTION_INFO_MSFT")
674            }
675            Self::COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT => {
676                Some("COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT")
677            }
678            Self::ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB => {
679                Some("ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB")
680            }
681            Self::COMPOSITION_LAYER_SECURE_CONTENT_FB => {
682                Some("COMPOSITION_LAYER_SECURE_CONTENT_FB")
683            }
684            Self::BODY_TRACKER_CREATE_INFO_FB => Some("BODY_TRACKER_CREATE_INFO_FB"),
685            Self::BODY_JOINTS_LOCATE_INFO_FB => Some("BODY_JOINTS_LOCATE_INFO_FB"),
686            Self::SYSTEM_BODY_TRACKING_PROPERTIES_FB => Some("SYSTEM_BODY_TRACKING_PROPERTIES_FB"),
687            Self::BODY_JOINT_LOCATIONS_FB => Some("BODY_JOINT_LOCATIONS_FB"),
688            Self::BODY_SKELETON_FB => Some("BODY_SKELETON_FB"),
689            Self::INTERACTION_PROFILE_DPAD_BINDING_EXT => {
690                Some("INTERACTION_PROFILE_DPAD_BINDING_EXT")
691            }
692            Self::INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE => {
693                Some("INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE")
694            }
695            Self::HAND_JOINTS_MOTION_RANGE_INFO_EXT => Some("HAND_JOINTS_MOTION_RANGE_INFO_EXT"),
696            Self::LOADER_INIT_INFO_ANDROID_KHR => Some("LOADER_INIT_INFO_ANDROID_KHR"),
697            Self::VULKAN_INSTANCE_CREATE_INFO_KHR => Some("VULKAN_INSTANCE_CREATE_INFO_KHR"),
698            Self::VULKAN_DEVICE_CREATE_INFO_KHR => Some("VULKAN_DEVICE_CREATE_INFO_KHR"),
699            Self::VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR => {
700                Some("VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR")
701            }
702            Self::COMPOSITION_LAYER_EQUIRECT2_KHR => Some("COMPOSITION_LAYER_EQUIRECT2_KHR"),
703            Self::SCENE_OBSERVER_CREATE_INFO_MSFT => Some("SCENE_OBSERVER_CREATE_INFO_MSFT"),
704            Self::SCENE_CREATE_INFO_MSFT => Some("SCENE_CREATE_INFO_MSFT"),
705            Self::NEW_SCENE_COMPUTE_INFO_MSFT => Some("NEW_SCENE_COMPUTE_INFO_MSFT"),
706            Self::VISUAL_MESH_COMPUTE_LOD_INFO_MSFT => Some("VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"),
707            Self::SCENE_COMPONENTS_MSFT => Some("SCENE_COMPONENTS_MSFT"),
708            Self::SCENE_COMPONENTS_GET_INFO_MSFT => Some("SCENE_COMPONENTS_GET_INFO_MSFT"),
709            Self::SCENE_COMPONENT_LOCATIONS_MSFT => Some("SCENE_COMPONENT_LOCATIONS_MSFT"),
710            Self::SCENE_COMPONENTS_LOCATE_INFO_MSFT => Some("SCENE_COMPONENTS_LOCATE_INFO_MSFT"),
711            Self::SCENE_OBJECTS_MSFT => Some("SCENE_OBJECTS_MSFT"),
712            Self::SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT => {
713                Some("SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT")
714            }
715            Self::SCENE_OBJECT_TYPES_FILTER_INFO_MSFT => {
716                Some("SCENE_OBJECT_TYPES_FILTER_INFO_MSFT")
717            }
718            Self::SCENE_PLANES_MSFT => Some("SCENE_PLANES_MSFT"),
719            Self::SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT => {
720                Some("SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT")
721            }
722            Self::SCENE_MESHES_MSFT => Some("SCENE_MESHES_MSFT"),
723            Self::SCENE_MESH_BUFFERS_GET_INFO_MSFT => Some("SCENE_MESH_BUFFERS_GET_INFO_MSFT"),
724            Self::SCENE_MESH_BUFFERS_MSFT => Some("SCENE_MESH_BUFFERS_MSFT"),
725            Self::SCENE_MESH_VERTEX_BUFFER_MSFT => Some("SCENE_MESH_VERTEX_BUFFER_MSFT"),
726            Self::SCENE_MESH_INDICES_UINT32_MSFT => Some("SCENE_MESH_INDICES_UINT32_MSFT"),
727            Self::SCENE_MESH_INDICES_UINT16_MSFT => Some("SCENE_MESH_INDICES_UINT16_MSFT"),
728            Self::SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT => {
729                Some("SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT")
730            }
731            Self::SCENE_DESERIALIZE_INFO_MSFT => Some("SCENE_DESERIALIZE_INFO_MSFT"),
732            Self::EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB => {
733                Some("EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB")
734            }
735            Self::VIVE_TRACKER_PATHS_HTCX => Some("VIVE_TRACKER_PATHS_HTCX"),
736            Self::EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX => {
737                Some("EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX")
738            }
739            Self::SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC => {
740                Some("SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC")
741            }
742            Self::FACIAL_TRACKER_CREATE_INFO_HTC => Some("FACIAL_TRACKER_CREATE_INFO_HTC"),
743            Self::FACIAL_EXPRESSIONS_HTC => Some("FACIAL_EXPRESSIONS_HTC"),
744            Self::SYSTEM_COLOR_SPACE_PROPERTIES_FB => Some("SYSTEM_COLOR_SPACE_PROPERTIES_FB"),
745            Self::HAND_TRACKING_MESH_FB => Some("HAND_TRACKING_MESH_FB"),
746            Self::HAND_TRACKING_SCALE_FB => Some("HAND_TRACKING_SCALE_FB"),
747            Self::HAND_TRACKING_AIM_STATE_FB => Some("HAND_TRACKING_AIM_STATE_FB"),
748            Self::HAND_TRACKING_CAPSULES_STATE_FB => Some("HAND_TRACKING_CAPSULES_STATE_FB"),
749            Self::SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB => {
750                Some("SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB")
751            }
752            Self::SPATIAL_ANCHOR_CREATE_INFO_FB => Some("SPATIAL_ANCHOR_CREATE_INFO_FB"),
753            Self::SPACE_COMPONENT_STATUS_SET_INFO_FB => Some("SPACE_COMPONENT_STATUS_SET_INFO_FB"),
754            Self::SPACE_COMPONENT_STATUS_FB => Some("SPACE_COMPONENT_STATUS_FB"),
755            Self::EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB => {
756                Some("EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB")
757            }
758            Self::EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB => {
759                Some("EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB")
760            }
761            Self::FOVEATION_PROFILE_CREATE_INFO_FB => Some("FOVEATION_PROFILE_CREATE_INFO_FB"),
762            Self::SWAPCHAIN_CREATE_INFO_FOVEATION_FB => Some("SWAPCHAIN_CREATE_INFO_FOVEATION_FB"),
763            Self::SWAPCHAIN_STATE_FOVEATION_FB => Some("SWAPCHAIN_STATE_FOVEATION_FB"),
764            Self::FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB => {
765                Some("FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB")
766            }
767            Self::KEYBOARD_SPACE_CREATE_INFO_FB => Some("KEYBOARD_SPACE_CREATE_INFO_FB"),
768            Self::KEYBOARD_TRACKING_QUERY_FB => Some("KEYBOARD_TRACKING_QUERY_FB"),
769            Self::SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB => {
770                Some("SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB")
771            }
772            Self::TRIANGLE_MESH_CREATE_INFO_FB => Some("TRIANGLE_MESH_CREATE_INFO_FB"),
773            Self::SYSTEM_PASSTHROUGH_PROPERTIES_FB => Some("SYSTEM_PASSTHROUGH_PROPERTIES_FB"),
774            Self::PASSTHROUGH_CREATE_INFO_FB => Some("PASSTHROUGH_CREATE_INFO_FB"),
775            Self::PASSTHROUGH_LAYER_CREATE_INFO_FB => Some("PASSTHROUGH_LAYER_CREATE_INFO_FB"),
776            Self::COMPOSITION_LAYER_PASSTHROUGH_FB => Some("COMPOSITION_LAYER_PASSTHROUGH_FB"),
777            Self::GEOMETRY_INSTANCE_CREATE_INFO_FB => Some("GEOMETRY_INSTANCE_CREATE_INFO_FB"),
778            Self::GEOMETRY_INSTANCE_TRANSFORM_FB => Some("GEOMETRY_INSTANCE_TRANSFORM_FB"),
779            Self::SYSTEM_PASSTHROUGH_PROPERTIES2_FB => Some("SYSTEM_PASSTHROUGH_PROPERTIES2_FB"),
780            Self::PASSTHROUGH_STYLE_FB => Some("PASSTHROUGH_STYLE_FB"),
781            Self::PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB => {
782                Some("PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB")
783            }
784            Self::PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB => {
785                Some("PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB")
786            }
787            Self::PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB => {
788                Some("PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB")
789            }
790            Self::EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB => {
791                Some("EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB")
792            }
793            Self::RENDER_MODEL_PATH_INFO_FB => Some("RENDER_MODEL_PATH_INFO_FB"),
794            Self::RENDER_MODEL_PROPERTIES_FB => Some("RENDER_MODEL_PROPERTIES_FB"),
795            Self::RENDER_MODEL_BUFFER_FB => Some("RENDER_MODEL_BUFFER_FB"),
796            Self::RENDER_MODEL_LOAD_INFO_FB => Some("RENDER_MODEL_LOAD_INFO_FB"),
797            Self::SYSTEM_RENDER_MODEL_PROPERTIES_FB => Some("SYSTEM_RENDER_MODEL_PROPERTIES_FB"),
798            Self::RENDER_MODEL_CAPABILITIES_REQUEST_FB => {
799                Some("RENDER_MODEL_CAPABILITIES_REQUEST_FB")
800            }
801            Self::BINDING_MODIFICATIONS_KHR => Some("BINDING_MODIFICATIONS_KHR"),
802            Self::VIEW_LOCATE_FOVEATED_RENDERING_VARJO => {
803                Some("VIEW_LOCATE_FOVEATED_RENDERING_VARJO")
804            }
805            Self::FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO => {
806                Some("FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO")
807            }
808            Self::SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO => {
809                Some("SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO")
810            }
811            Self::COMPOSITION_LAYER_DEPTH_TEST_VARJO => Some("COMPOSITION_LAYER_DEPTH_TEST_VARJO"),
812            Self::SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO => {
813                Some("SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO")
814            }
815            Self::EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO => {
816                Some("EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO")
817            }
818            Self::MARKER_SPACE_CREATE_INFO_VARJO => Some("MARKER_SPACE_CREATE_INFO_VARJO"),
819            Self::FRAME_END_INFO_ML => Some("FRAME_END_INFO_ML"),
820            Self::GLOBAL_DIMMER_FRAME_END_INFO_ML => Some("GLOBAL_DIMMER_FRAME_END_INFO_ML"),
821            Self::COORDINATE_SPACE_CREATE_INFO_ML => Some("COORDINATE_SPACE_CREATE_INFO_ML"),
822            Self::SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML => {
823                Some("SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML")
824            }
825            Self::MARKER_DETECTOR_CREATE_INFO_ML => Some("MARKER_DETECTOR_CREATE_INFO_ML"),
826            Self::MARKER_DETECTOR_ARUCO_INFO_ML => Some("MARKER_DETECTOR_ARUCO_INFO_ML"),
827            Self::MARKER_DETECTOR_SIZE_INFO_ML => Some("MARKER_DETECTOR_SIZE_INFO_ML"),
828            Self::MARKER_DETECTOR_APRIL_TAG_INFO_ML => Some("MARKER_DETECTOR_APRIL_TAG_INFO_ML"),
829            Self::MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML => {
830                Some("MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML")
831            }
832            Self::MARKER_DETECTOR_SNAPSHOT_INFO_ML => Some("MARKER_DETECTOR_SNAPSHOT_INFO_ML"),
833            Self::MARKER_DETECTOR_STATE_ML => Some("MARKER_DETECTOR_STATE_ML"),
834            Self::MARKER_SPACE_CREATE_INFO_ML => Some("MARKER_SPACE_CREATE_INFO_ML"),
835            Self::LOCALIZATION_MAP_ML => Some("LOCALIZATION_MAP_ML"),
836            Self::EVENT_DATA_LOCALIZATION_CHANGED_ML => Some("EVENT_DATA_LOCALIZATION_CHANGED_ML"),
837            Self::MAP_LOCALIZATION_REQUEST_INFO_ML => Some("MAP_LOCALIZATION_REQUEST_INFO_ML"),
838            Self::LOCALIZATION_MAP_IMPORT_INFO_ML => Some("LOCALIZATION_MAP_IMPORT_INFO_ML"),
839            Self::LOCALIZATION_ENABLE_EVENTS_INFO_ML => Some("LOCALIZATION_ENABLE_EVENTS_INFO_ML"),
840            Self::EVENT_DATA_HEADSET_FIT_CHANGED_ML => Some("EVENT_DATA_HEADSET_FIT_CHANGED_ML"),
841            Self::EVENT_DATA_EYE_CALIBRATION_CHANGED_ML => {
842                Some("EVENT_DATA_EYE_CALIBRATION_CHANGED_ML")
843            }
844            Self::USER_CALIBRATION_ENABLE_EVENTS_INFO_ML => {
845                Some("USER_CALIBRATION_ENABLE_EVENTS_INFO_ML")
846            }
847            Self::SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT => {
848                Some("SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT")
849            }
850            Self::SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT => {
851                Some("SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT")
852            }
853            Self::SCENE_MARKERS_MSFT => Some("SCENE_MARKERS_MSFT"),
854            Self::SCENE_MARKER_TYPE_FILTER_MSFT => Some("SCENE_MARKER_TYPE_FILTER_MSFT"),
855            Self::SCENE_MARKER_QR_CODES_MSFT => Some("SCENE_MARKER_QR_CODES_MSFT"),
856            Self::SPACE_QUERY_INFO_FB => Some("SPACE_QUERY_INFO_FB"),
857            Self::SPACE_QUERY_RESULTS_FB => Some("SPACE_QUERY_RESULTS_FB"),
858            Self::SPACE_STORAGE_LOCATION_FILTER_INFO_FB => {
859                Some("SPACE_STORAGE_LOCATION_FILTER_INFO_FB")
860            }
861            Self::SPACE_UUID_FILTER_INFO_FB => Some("SPACE_UUID_FILTER_INFO_FB"),
862            Self::SPACE_COMPONENT_FILTER_INFO_FB => Some("SPACE_COMPONENT_FILTER_INFO_FB"),
863            Self::EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB => {
864                Some("EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB")
865            }
866            Self::EVENT_DATA_SPACE_QUERY_COMPLETE_FB => Some("EVENT_DATA_SPACE_QUERY_COMPLETE_FB"),
867            Self::SPACE_SAVE_INFO_FB => Some("SPACE_SAVE_INFO_FB"),
868            Self::SPACE_ERASE_INFO_FB => Some("SPACE_ERASE_INFO_FB"),
869            Self::EVENT_DATA_SPACE_SAVE_COMPLETE_FB => Some("EVENT_DATA_SPACE_SAVE_COMPLETE_FB"),
870            Self::EVENT_DATA_SPACE_ERASE_COMPLETE_FB => Some("EVENT_DATA_SPACE_ERASE_COMPLETE_FB"),
871            Self::SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB => {
872                Some("SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB")
873            }
874            Self::SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB => {
875                Some("SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB")
876            }
877            Self::SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB => {
878                Some("SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB")
879            }
880            Self::SWAPCHAIN_STATE_SAMPLER_VULKAN_FB => Some("SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"),
881            Self::SPACE_SHARE_INFO_FB => Some("SPACE_SHARE_INFO_FB"),
882            Self::EVENT_DATA_SPACE_SHARE_COMPLETE_FB => Some("EVENT_DATA_SPACE_SHARE_COMPLETE_FB"),
883            Self::COMPOSITION_LAYER_SPACE_WARP_INFO_FB => {
884                Some("COMPOSITION_LAYER_SPACE_WARP_INFO_FB")
885            }
886            Self::SYSTEM_SPACE_WARP_PROPERTIES_FB => Some("SYSTEM_SPACE_WARP_PROPERTIES_FB"),
887            Self::HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB => {
888                Some("HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB")
889            }
890            Self::SEMANTIC_LABELS_FB => Some("SEMANTIC_LABELS_FB"),
891            Self::ROOM_LAYOUT_FB => Some("ROOM_LAYOUT_FB"),
892            Self::BOUNDARY_2D_FB => Some("BOUNDARY_2D_FB"),
893            Self::SEMANTIC_LABELS_SUPPORT_INFO_FB => Some("SEMANTIC_LABELS_SUPPORT_INFO_FB"),
894            Self::DIGITAL_LENS_CONTROL_ALMALENCE => Some("DIGITAL_LENS_CONTROL_ALMALENCE"),
895            Self::EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB => {
896                Some("EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB")
897            }
898            Self::SCENE_CAPTURE_REQUEST_INFO_FB => Some("SCENE_CAPTURE_REQUEST_INFO_FB"),
899            Self::SPACE_CONTAINER_FB => Some("SPACE_CONTAINER_FB"),
900            Self::FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META => {
901                Some("FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META")
902            }
903            Self::FOVEATION_EYE_TRACKED_STATE_META => Some("FOVEATION_EYE_TRACKED_STATE_META"),
904            Self::SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META => {
905                Some("SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META")
906            }
907            Self::SYSTEM_FACE_TRACKING_PROPERTIES_FB => Some("SYSTEM_FACE_TRACKING_PROPERTIES_FB"),
908            Self::FACE_TRACKER_CREATE_INFO_FB => Some("FACE_TRACKER_CREATE_INFO_FB"),
909            Self::FACE_EXPRESSION_INFO_FB => Some("FACE_EXPRESSION_INFO_FB"),
910            Self::FACE_EXPRESSION_WEIGHTS_FB => Some("FACE_EXPRESSION_WEIGHTS_FB"),
911            Self::EYE_TRACKER_CREATE_INFO_FB => Some("EYE_TRACKER_CREATE_INFO_FB"),
912            Self::EYE_GAZES_INFO_FB => Some("EYE_GAZES_INFO_FB"),
913            Self::EYE_GAZES_FB => Some("EYE_GAZES_FB"),
914            Self::SYSTEM_EYE_TRACKING_PROPERTIES_FB => Some("SYSTEM_EYE_TRACKING_PROPERTIES_FB"),
915            Self::PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB => {
916                Some("PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB")
917            }
918            Self::COMPOSITION_LAYER_SETTINGS_FB => Some("COMPOSITION_LAYER_SETTINGS_FB"),
919            Self::HAPTIC_PCM_VIBRATION_FB => Some("HAPTIC_PCM_VIBRATION_FB"),
920            Self::DEVICE_PCM_SAMPLE_RATE_STATE_FB => Some("DEVICE_PCM_SAMPLE_RATE_STATE_FB"),
921            Self::COMPOSITION_LAYER_DEPTH_TEST_FB => Some("COMPOSITION_LAYER_DEPTH_TEST_FB"),
922            Self::LOCAL_DIMMING_FRAME_END_INFO_META => Some("LOCAL_DIMMING_FRAME_END_INFO_META"),
923            Self::PASSTHROUGH_PREFERENCES_META => Some("PASSTHROUGH_PREFERENCES_META"),
924            Self::SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META => {
925                Some("SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META")
926            }
927            Self::VIRTUAL_KEYBOARD_CREATE_INFO_META => Some("VIRTUAL_KEYBOARD_CREATE_INFO_META"),
928            Self::VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META => {
929                Some("VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META")
930            }
931            Self::VIRTUAL_KEYBOARD_LOCATION_INFO_META => {
932                Some("VIRTUAL_KEYBOARD_LOCATION_INFO_META")
933            }
934            Self::VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META => {
935                Some("VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META")
936            }
937            Self::VIRTUAL_KEYBOARD_ANIMATION_STATE_META => {
938                Some("VIRTUAL_KEYBOARD_ANIMATION_STATE_META")
939            }
940            Self::VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META => {
941                Some("VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META")
942            }
943            Self::VIRTUAL_KEYBOARD_TEXTURE_DATA_META => Some("VIRTUAL_KEYBOARD_TEXTURE_DATA_META"),
944            Self::VIRTUAL_KEYBOARD_INPUT_INFO_META => Some("VIRTUAL_KEYBOARD_INPUT_INFO_META"),
945            Self::VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META => {
946                Some("VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META")
947            }
948            Self::EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META => {
949                Some("EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META")
950            }
951            Self::EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META => {
952                Some("EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META")
953            }
954            Self::EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META => {
955                Some("EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META")
956            }
957            Self::EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META => {
958                Some("EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META")
959            }
960            Self::EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META => {
961                Some("EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META")
962            }
963            Self::EXTERNAL_CAMERA_OCULUS => Some("EXTERNAL_CAMERA_OCULUS"),
964            Self::VULKAN_SWAPCHAIN_CREATE_INFO_META => Some("VULKAN_SWAPCHAIN_CREATE_INFO_META"),
965            Self::PERFORMANCE_METRICS_STATE_META => Some("PERFORMANCE_METRICS_STATE_META"),
966            Self::PERFORMANCE_METRICS_COUNTER_META => Some("PERFORMANCE_METRICS_COUNTER_META"),
967            Self::SPACE_LIST_SAVE_INFO_FB => Some("SPACE_LIST_SAVE_INFO_FB"),
968            Self::EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB => {
969                Some("EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB")
970            }
971            Self::SPACE_USER_CREATE_INFO_FB => Some("SPACE_USER_CREATE_INFO_FB"),
972            Self::SYSTEM_HEADSET_ID_PROPERTIES_META => Some("SYSTEM_HEADSET_ID_PROPERTIES_META"),
973            Self::RECOMMENDED_LAYER_RESOLUTION_META => Some("RECOMMENDED_LAYER_RESOLUTION_META"),
974            Self::RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META => {
975                Some("RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META")
976            }
977            Self::SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META => {
978                Some("SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META")
979            }
980            Self::PASSTHROUGH_COLOR_LUT_CREATE_INFO_META => {
981                Some("PASSTHROUGH_COLOR_LUT_CREATE_INFO_META")
982            }
983            Self::PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META => {
984                Some("PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META")
985            }
986            Self::PASSTHROUGH_COLOR_MAP_LUT_META => Some("PASSTHROUGH_COLOR_MAP_LUT_META"),
987            Self::PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META => {
988                Some("PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META")
989            }
990            Self::SPACE_TRIANGLE_MESH_GET_INFO_META => Some("SPACE_TRIANGLE_MESH_GET_INFO_META"),
991            Self::SPACE_TRIANGLE_MESH_META => Some("SPACE_TRIANGLE_MESH_META"),
992            Self::SYSTEM_FACE_TRACKING_PROPERTIES2_FB => {
993                Some("SYSTEM_FACE_TRACKING_PROPERTIES2_FB")
994            }
995            Self::FACE_TRACKER_CREATE_INFO2_FB => Some("FACE_TRACKER_CREATE_INFO2_FB"),
996            Self::FACE_EXPRESSION_INFO2_FB => Some("FACE_EXPRESSION_INFO2_FB"),
997            Self::FACE_EXPRESSION_WEIGHTS2_FB => Some("FACE_EXPRESSION_WEIGHTS2_FB"),
998            Self::ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META => {
999                Some("ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META")
1000            }
1001            Self::ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META => {
1002                Some("ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META")
1003            }
1004            Self::ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META => {
1005                Some("ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META")
1006            }
1007            Self::ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META => {
1008                Some("ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META")
1009            }
1010            Self::ENVIRONMENT_DEPTH_IMAGE_VIEW_META => Some("ENVIRONMENT_DEPTH_IMAGE_VIEW_META"),
1011            Self::ENVIRONMENT_DEPTH_IMAGE_META => Some("ENVIRONMENT_DEPTH_IMAGE_META"),
1012            Self::ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META => {
1013                Some("ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META")
1014            }
1015            Self::SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META => {
1016                Some("SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META")
1017            }
1018            Self::PASSTHROUGH_CREATE_INFO_HTC => Some("PASSTHROUGH_CREATE_INFO_HTC"),
1019            Self::PASSTHROUGH_COLOR_HTC => Some("PASSTHROUGH_COLOR_HTC"),
1020            Self::PASSTHROUGH_MESH_TRANSFORM_INFO_HTC => {
1021                Some("PASSTHROUGH_MESH_TRANSFORM_INFO_HTC")
1022            }
1023            Self::COMPOSITION_LAYER_PASSTHROUGH_HTC => Some("COMPOSITION_LAYER_PASSTHROUGH_HTC"),
1024            Self::FOVEATION_APPLY_INFO_HTC => Some("FOVEATION_APPLY_INFO_HTC"),
1025            Self::FOVEATION_DYNAMIC_MODE_INFO_HTC => Some("FOVEATION_DYNAMIC_MODE_INFO_HTC"),
1026            Self::FOVEATION_CUSTOM_MODE_INFO_HTC => Some("FOVEATION_CUSTOM_MODE_INFO_HTC"),
1027            Self::SYSTEM_ANCHOR_PROPERTIES_HTC => Some("SYSTEM_ANCHOR_PROPERTIES_HTC"),
1028            Self::SPATIAL_ANCHOR_CREATE_INFO_HTC => Some("SPATIAL_ANCHOR_CREATE_INFO_HTC"),
1029            Self::ACTIVE_ACTION_SET_PRIORITIES_EXT => Some("ACTIVE_ACTION_SET_PRIORITIES_EXT"),
1030            Self::SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX => {
1031                Some("SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX")
1032            }
1033            Self::FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX => {
1034                Some("FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX")
1035            }
1036            Self::HAND_TRACKING_DATA_SOURCE_INFO_EXT => Some("HAND_TRACKING_DATA_SOURCE_INFO_EXT"),
1037            Self::HAND_TRACKING_DATA_SOURCE_STATE_EXT => {
1038                Some("HAND_TRACKING_DATA_SOURCE_STATE_EXT")
1039            }
1040            Self::PLANE_DETECTOR_CREATE_INFO_EXT => Some("PLANE_DETECTOR_CREATE_INFO_EXT"),
1041            Self::PLANE_DETECTOR_BEGIN_INFO_EXT => Some("PLANE_DETECTOR_BEGIN_INFO_EXT"),
1042            Self::PLANE_DETECTOR_GET_INFO_EXT => Some("PLANE_DETECTOR_GET_INFO_EXT"),
1043            Self::PLANE_DETECTOR_LOCATIONS_EXT => Some("PLANE_DETECTOR_LOCATIONS_EXT"),
1044            Self::PLANE_DETECTOR_LOCATION_EXT => Some("PLANE_DETECTOR_LOCATION_EXT"),
1045            Self::PLANE_DETECTOR_POLYGON_BUFFER_EXT => Some("PLANE_DETECTOR_POLYGON_BUFFER_EXT"),
1046            Self::SYSTEM_PLANE_DETECTION_PROPERTIES_EXT => {
1047                Some("SYSTEM_PLANE_DETECTION_PROPERTIES_EXT")
1048            }
1049            Self::FUTURE_CANCEL_INFO_EXT => Some("FUTURE_CANCEL_INFO_EXT"),
1050            Self::FUTURE_POLL_INFO_EXT => Some("FUTURE_POLL_INFO_EXT"),
1051            Self::FUTURE_COMPLETION_EXT => Some("FUTURE_COMPLETION_EXT"),
1052            Self::FUTURE_POLL_RESULT_EXT => Some("FUTURE_POLL_RESULT_EXT"),
1053            Self::EVENT_DATA_USER_PRESENCE_CHANGED_EXT => {
1054                Some("EVENT_DATA_USER_PRESENCE_CHANGED_EXT")
1055            }
1056            Self::SYSTEM_USER_PRESENCE_PROPERTIES_EXT => {
1057                Some("SYSTEM_USER_PRESENCE_PROPERTIES_EXT")
1058            }
1059            _ => None,
1060        };
1061        fmt_enum(fmt, self.0, name)
1062    }
1063}
1064#[doc = "Error and return codes - see [XrResult](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrResult)"]
1065#[repr(transparent)]
1066#[derive(Copy, Clone, Eq, PartialEq)]
1067pub struct Result(i32);
1068impl Result {
1069    #[doc = "Function successfully completed."]
1070    pub const SUCCESS: Result = Self(0i32);
1071    #[doc = "The specified timeout time occurred before the operation could complete."]
1072    pub const TIMEOUT_EXPIRED: Result = Self(1i32);
1073    #[doc = "The session will be lost soon."]
1074    pub const SESSION_LOSS_PENDING: Result = Self(3i32);
1075    #[doc = "No event was available."]
1076    pub const EVENT_UNAVAILABLE: Result = Self(4i32);
1077    #[doc = "The space's bounds are not known at the moment."]
1078    pub const SPACE_BOUNDS_UNAVAILABLE: Result = Self(7i32);
1079    #[doc = "The session is not in the focused state."]
1080    pub const SESSION_NOT_FOCUSED: Result = Self(8i32);
1081    #[doc = "A frame has been discarded from composition."]
1082    pub const FRAME_DISCARDED: Result = Self(9i32);
1083    #[doc = "The function usage was invalid in some way."]
1084    pub const ERROR_VALIDATION_FAILURE: Result = Self(-1i32);
1085    #[doc = "The runtime failed to handle the function in an unexpected way that is not covered by another error result."]
1086    pub const ERROR_RUNTIME_FAILURE: Result = Self(-2i32);
1087    #[doc = "A memory allocation has failed."]
1088    pub const ERROR_OUT_OF_MEMORY: Result = Self(-3i32);
1089    #[doc = "The runtime does not support the requested API version."]
1090    pub const ERROR_API_VERSION_UNSUPPORTED: Result = Self(-4i32);
1091    #[doc = "Initialization of object could not be completed."]
1092    pub const ERROR_INITIALIZATION_FAILED: Result = Self(-6i32);
1093    #[doc = "The requested function was not found or is otherwise unsupported."]
1094    pub const ERROR_FUNCTION_UNSUPPORTED: Result = Self(-7i32);
1095    #[doc = "The requested feature is not supported."]
1096    pub const ERROR_FEATURE_UNSUPPORTED: Result = Self(-8i32);
1097    #[doc = "A requested extension is not supported."]
1098    pub const ERROR_EXTENSION_NOT_PRESENT: Result = Self(-9i32);
1099    #[doc = "The runtime supports no more of the requested resource."]
1100    pub const ERROR_LIMIT_REACHED: Result = Self(-10i32);
1101    #[doc = "The supplied size was smaller than required."]
1102    pub const ERROR_SIZE_INSUFFICIENT: Result = Self(-11i32);
1103    #[doc = "A supplied object handle was invalid."]
1104    pub const ERROR_HANDLE_INVALID: Result = Self(-12i32);
1105    #[doc = "The XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated."]
1106    pub const ERROR_INSTANCE_LOST: Result = Self(-13i32);
1107    #[doc = "The session is already running."]
1108    pub const ERROR_SESSION_RUNNING: Result = Self(-14i32);
1109    #[doc = "The session is not yet running."]
1110    pub const ERROR_SESSION_NOT_RUNNING: Result = Self(-16i32);
1111    #[doc = "The XrSession was lost. It will need to be destroyed and optionally recreated."]
1112    pub const ERROR_SESSION_LOST: Result = Self(-17i32);
1113    #[doc = "The provided XrSystemId was invalid."]
1114    pub const ERROR_SYSTEM_INVALID: Result = Self(-18i32);
1115    #[doc = "The provided XrPath was not valid."]
1116    pub const ERROR_PATH_INVALID: Result = Self(-19i32);
1117    #[doc = "The maximum number of supported semantic paths has been reached."]
1118    pub const ERROR_PATH_COUNT_EXCEEDED: Result = Self(-20i32);
1119    #[doc = "The semantic path character format is invalid."]
1120    pub const ERROR_PATH_FORMAT_INVALID: Result = Self(-21i32);
1121    #[doc = "The semantic path is unsupported."]
1122    pub const ERROR_PATH_UNSUPPORTED: Result = Self(-22i32);
1123    #[doc = "The layer was NULL or otherwise invalid."]
1124    pub const ERROR_LAYER_INVALID: Result = Self(-23i32);
1125    #[doc = "The number of specified layers is greater than the supported number."]
1126    pub const ERROR_LAYER_LIMIT_EXCEEDED: Result = Self(-24i32);
1127    #[doc = "The image rect was negatively sized or otherwise invalid."]
1128    pub const ERROR_SWAPCHAIN_RECT_INVALID: Result = Self(-25i32);
1129    #[doc = "The image format is not supported by the runtime or platform."]
1130    pub const ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED: Result = Self(-26i32);
1131    #[doc = "The API used to retrieve an action's state does not match the action's type."]
1132    pub const ERROR_ACTION_TYPE_MISMATCH: Result = Self(-27i32);
1133    #[doc = "The session is not in the ready state."]
1134    pub const ERROR_SESSION_NOT_READY: Result = Self(-28i32);
1135    #[doc = "The session is not in the stopping state."]
1136    pub const ERROR_SESSION_NOT_STOPPING: Result = Self(-29i32);
1137    #[doc = "The provided XrTime was zero, negative, or out of range."]
1138    pub const ERROR_TIME_INVALID: Result = Self(-30i32);
1139    #[doc = "The specified reference space is not supported by the runtime or system."]
1140    pub const ERROR_REFERENCE_SPACE_UNSUPPORTED: Result = Self(-31i32);
1141    #[doc = "The file could not be accessed."]
1142    pub const ERROR_FILE_ACCESS_ERROR: Result = Self(-32i32);
1143    #[doc = "The file's contents were invalid."]
1144    pub const ERROR_FILE_CONTENTS_INVALID: Result = Self(-33i32);
1145    #[doc = "The specified form factor is not supported by the current runtime or platform."]
1146    pub const ERROR_FORM_FACTOR_UNSUPPORTED: Result = Self(-34i32);
1147    #[doc = "The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off."]
1148    pub const ERROR_FORM_FACTOR_UNAVAILABLE: Result = Self(-35i32);
1149    #[doc = "A requested API layer is not present or could not be loaded."]
1150    pub const ERROR_API_LAYER_NOT_PRESENT: Result = Self(-36i32);
1151    #[doc = "The call was made without having made a previously required call."]
1152    pub const ERROR_CALL_ORDER_INVALID: Result = Self(-37i32);
1153    #[doc = "The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements."]
1154    pub const ERROR_GRAPHICS_DEVICE_INVALID: Result = Self(-38i32);
1155    #[doc = "The supplied pose was invalid with respect to the requirements."]
1156    pub const ERROR_POSE_INVALID: Result = Self(-39i32);
1157    #[doc = "The supplied index was outside the range of valid indices."]
1158    pub const ERROR_INDEX_OUT_OF_RANGE: Result = Self(-40i32);
1159    #[doc = "The specified view configuration type is not supported by the runtime or platform."]
1160    pub const ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED: Result = Self(-41i32);
1161    #[doc = "The specified environment blend mode is not supported by the runtime or platform."]
1162    pub const ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED: Result = Self(-42i32);
1163    #[doc = "The name provided was a duplicate of an already-existing resource."]
1164    pub const ERROR_NAME_DUPLICATED: Result = Self(-44i32);
1165    #[doc = "The name provided was invalid."]
1166    pub const ERROR_NAME_INVALID: Result = Self(-45i32);
1167    #[doc = "A referenced action set is not attached to the session."]
1168    pub const ERROR_ACTIONSET_NOT_ATTACHED: Result = Self(-46i32);
1169    #[doc = "The session already has attached action sets."]
1170    pub const ERROR_ACTIONSETS_ALREADY_ATTACHED: Result = Self(-47i32);
1171    #[doc = "The localized name provided was a duplicate of an already-existing resource."]
1172    pub const ERROR_LOCALIZED_NAME_DUPLICATED: Result = Self(-48i32);
1173    #[doc = "The localized name provided was invalid."]
1174    pub const ERROR_LOCALIZED_NAME_INVALID: Result = Self(-49i32);
1175    #[doc = "The xrGetGraphicsRequirements* call was not made before calling xrCreateSession."]
1176    pub const ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING: Result = Self(-50i32);
1177    #[doc = "The loader was unable to find or load a runtime."]
1178    pub const ERROR_RUNTIME_UNAVAILABLE: Result = Self(-51i32);
1179    #[doc = "One or more of the extensions being enabled has dependency on extensions that are not enabled."]
1180    pub const ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED: Result = Self(-1000710001i32);
1181    #[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."]
1182    pub const ERROR_PERMISSION_INSUFFICIENT: Result = Self(-1000710000i32);
1183    #[doc = "xrSetAndroidApplicationThreadKHR failed as thread id is invalid."]
1184    pub const ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR: Result = Self(-1000003000i32);
1185    #[doc = "xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority."]
1186    pub const ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR: Result = Self(-1000003001i32);
1187    #[doc = "Spatial anchor could not be created at that location."]
1188    pub const ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT: Result = Self(-1000039001i32);
1189    #[doc = "The secondary view configuration was not enabled when creating the session."]
1190    pub const ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT: Result =
1191        Self(-1000053000i32);
1192    #[doc = "The controller model key is invalid."]
1193    pub const ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT: Result = Self(-1000055000i32);
1194    #[doc = "The reprojection mode is not supported."]
1195    pub const ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT: Result = Self(-1000066000i32);
1196    #[doc = "Compute new scene not completed."]
1197    pub const ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT: Result = Self(-1000097000i32);
1198    #[doc = "Scene component id invalid."]
1199    pub const ERROR_SCENE_COMPONENT_ID_INVALID_MSFT: Result = Self(-1000097001i32);
1200    #[doc = "Scene component type mismatch."]
1201    pub const ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT: Result = Self(-1000097002i32);
1202    #[doc = "Scene mesh buffer id invalid."]
1203    pub const ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT: Result = Self(-1000097003i32);
1204    #[doc = "Scene compute feature incompatible."]
1205    pub const ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT: Result = Self(-1000097004i32);
1206    #[doc = "Scene compute consistency mismatch."]
1207    pub const ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT: Result = Self(-1000097005i32);
1208    #[doc = "The display refresh rate is not supported by the platform."]
1209    pub const ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB: Result = Self(-1000101000i32);
1210    #[doc = "The color space is not supported by the runtime."]
1211    pub const ERROR_COLOR_SPACE_UNSUPPORTED_FB: Result = Self(-1000108000i32);
1212    #[doc = "The component type is not supported for this space."]
1213    pub const ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB: Result = Self(-1000113000i32);
1214    #[doc = "The required component is not enabled for this space."]
1215    pub const ERROR_SPACE_COMPONENT_NOT_ENABLED_FB: Result = Self(-1000113001i32);
1216    #[doc = "A request to set the component's status is currently pending."]
1217    pub const ERROR_SPACE_COMPONENT_STATUS_PENDING_FB: Result = Self(-1000113002i32);
1218    #[doc = "The component is already set to the requested value."]
1219    pub const ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB: Result = Self(-1000113003i32);
1220    #[doc = "The object state is unexpected for the issued command."]
1221    pub const ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB: Result = Self(-1000118000i32);
1222    #[doc = "Trying to create an MR feature when one was already created and only one instance is allowed."]
1223    pub const ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB: Result = Self(-1000118001i32);
1224    #[doc = "Requested functionality requires a feature to be created first."]
1225    pub const ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB: Result = Self(-1000118002i32);
1226    #[doc = "Requested functionality is not permitted - application is not allowed to perform the requested operation."]
1227    pub const ERROR_NOT_PERMITTED_PASSTHROUGH_FB: Result = Self(-1000118003i32);
1228    #[doc = "There were insufficient resources available to perform an operation."]
1229    pub const ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB: Result = Self(-1000118004i32);
1230    #[doc = "Unknown Passthrough error (no further details provided)."]
1231    pub const ERROR_UNKNOWN_PASSTHROUGH_FB: Result = Self(-1000118050i32);
1232    #[doc = "The model key is invalid."]
1233    pub const ERROR_RENDER_MODEL_KEY_INVALID_FB: Result = Self(-1000119000i32);
1234    #[doc = "The model is unavailable."]
1235    pub const RENDER_MODEL_UNAVAILABLE_FB: Result = Self(1000119020i32);
1236    #[doc = "Marker tracking is disabled or the specified marker is not currently tracked."]
1237    pub const ERROR_MARKER_NOT_TRACKED_VARJO: Result = Self(-1000124000i32);
1238    #[doc = "The specified marker ID is not valid."]
1239    pub const ERROR_MARKER_ID_INVALID_VARJO: Result = Self(-1000124001i32);
1240    #[doc = "The com.magicleap.permission.MARKER_TRACKING permission was denied."]
1241    pub const ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML: Result = Self(-1000138000i32);
1242    #[doc = "The specified marker could not be located spatially."]
1243    pub const ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML: Result = Self(-1000138001i32);
1244    #[doc = "The marker queried does not contain data of the requested type."]
1245    pub const ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML: Result = Self(-1000138002i32);
1246    #[doc = "createInfo contains mutually exclusive parameters, such as setting XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with XR_MARKER_TYPE_ARUCO_ML."]
1247    pub const ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML: Result = Self(-1000138003i32);
1248    #[doc = "The marker id passed to the function was invalid."]
1249    pub const ERROR_MARKER_INVALID_ML: Result = Self(-1000138004i32);
1250    #[doc = "The localization map being imported is not compatible with current OS or mode."]
1251    pub const ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML: Result = Self(-1000139000i32);
1252    #[doc = "The localization map requested is not available."]
1253    pub const ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML: Result = Self(-1000139001i32);
1254    #[doc = "The map localization service failed to fulfill the request, retry later."]
1255    pub const ERROR_LOCALIZATION_MAP_FAIL_ML: Result = Self(-1000139002i32);
1256    #[doc = "The com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied."]
1257    pub const ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML: Result =
1258        Self(-1000139003i32);
1259    #[doc = "The com.magicleap.permission.SPACE_MANAGER permission was denied."]
1260    pub const ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML: Result = Self(-1000139004i32);
1261    #[doc = "The map being imported already exists in the system."]
1262    pub const ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML: Result = Self(-1000139005i32);
1263    #[doc = "The map localization service cannot export cloud based maps."]
1264    pub const ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML: Result = Self(-1000139006i32);
1265    #[doc = "A spatial anchor was not found associated with the spatial anchor name provided"]
1266    pub const ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT: Result = Self(-1000142001i32);
1267    #[doc = "The spatial anchor name provided was not valid"]
1268    pub const ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT: Result = Self(-1000142002i32);
1269    #[doc = "Marker does not encode a string."]
1270    pub const SCENE_MARKER_DATA_NOT_STRING_MSFT: Result = Self(1000147000i32);
1271    #[doc = "Anchor import from cloud or export from device failed."]
1272    pub const ERROR_SPACE_MAPPING_INSUFFICIENT_FB: Result = Self(-1000169000i32);
1273    #[doc = "Anchors were downloaded from the cloud but failed to be imported/aligned on the device."]
1274    pub const ERROR_SPACE_LOCALIZATION_FAILED_FB: Result = Self(-1000169001i32);
1275    #[doc = "Timeout occurred while waiting for network request to complete."]
1276    pub const ERROR_SPACE_NETWORK_TIMEOUT_FB: Result = Self(-1000169002i32);
1277    #[doc = "The network request failed."]
1278    pub const ERROR_SPACE_NETWORK_REQUEST_FAILED_FB: Result = Self(-1000169003i32);
1279    #[doc = "Cloud storage is required for this operation but is currently disabled."]
1280    pub const ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB: Result = Self(-1000169004i32);
1281    #[doc = "The provided data buffer did not match the required size."]
1282    pub const ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META: Result = Self(-1000266000i32);
1283    #[doc = "Warning: The requested depth image is not yet available."]
1284    pub const ENVIRONMENT_DEPTH_NOT_AVAILABLE_META: Result = Self(1000291000i32);
1285    #[doc = "Tracking optimization hint is already set for the domain."]
1286    pub const ERROR_HINT_ALREADY_SET_QCOM: Result = Self(-1000306000i32);
1287    #[doc = "The provided space is valid but not an anchor."]
1288    pub const ERROR_NOT_AN_ANCHOR_HTC: Result = Self(-1000319000i32);
1289    #[doc = "The space passed to the function was not locatable."]
1290    pub const ERROR_SPACE_NOT_LOCATABLE_EXT: Result = Self(-1000429000i32);
1291    #[doc = "The permission for this resource was not granted."]
1292    pub const ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT: Result = Self(-1000429001i32);
1293    #[doc = "Returned by completion function to indicate future is not ready."]
1294    pub const ERROR_FUTURE_PENDING_EXT: Result = Self(-1000469001i32);
1295    #[doc = "Returned by completion function to indicate future is not valid."]
1296    pub const ERROR_FUTURE_INVALID_EXT: Result = Self(-1000469002i32);
1297    pub const ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR: Result =
1298        Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED;
1299    pub const ERROR_PERMISSION_INSUFFICIENT_KHR: Result = Self::ERROR_PERMISSION_INSUFFICIENT;
1300    pub fn from_raw(x: i32) -> Self {
1301        Self(x)
1302    }
1303    pub fn into_raw(self) -> i32 {
1304        self.0
1305    }
1306}
1307impl fmt::Debug for Result {
1308    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1309        let name = match *self {
1310            Self::SUCCESS => Some("SUCCESS"),
1311            Self::TIMEOUT_EXPIRED => Some("TIMEOUT_EXPIRED"),
1312            Self::SESSION_LOSS_PENDING => Some("SESSION_LOSS_PENDING"),
1313            Self::EVENT_UNAVAILABLE => Some("EVENT_UNAVAILABLE"),
1314            Self::SPACE_BOUNDS_UNAVAILABLE => Some("SPACE_BOUNDS_UNAVAILABLE"),
1315            Self::SESSION_NOT_FOCUSED => Some("SESSION_NOT_FOCUSED"),
1316            Self::FRAME_DISCARDED => Some("FRAME_DISCARDED"),
1317            Self::ERROR_VALIDATION_FAILURE => Some("ERROR_VALIDATION_FAILURE"),
1318            Self::ERROR_RUNTIME_FAILURE => Some("ERROR_RUNTIME_FAILURE"),
1319            Self::ERROR_OUT_OF_MEMORY => Some("ERROR_OUT_OF_MEMORY"),
1320            Self::ERROR_API_VERSION_UNSUPPORTED => Some("ERROR_API_VERSION_UNSUPPORTED"),
1321            Self::ERROR_INITIALIZATION_FAILED => Some("ERROR_INITIALIZATION_FAILED"),
1322            Self::ERROR_FUNCTION_UNSUPPORTED => Some("ERROR_FUNCTION_UNSUPPORTED"),
1323            Self::ERROR_FEATURE_UNSUPPORTED => Some("ERROR_FEATURE_UNSUPPORTED"),
1324            Self::ERROR_EXTENSION_NOT_PRESENT => Some("ERROR_EXTENSION_NOT_PRESENT"),
1325            Self::ERROR_LIMIT_REACHED => Some("ERROR_LIMIT_REACHED"),
1326            Self::ERROR_SIZE_INSUFFICIENT => Some("ERROR_SIZE_INSUFFICIENT"),
1327            Self::ERROR_HANDLE_INVALID => Some("ERROR_HANDLE_INVALID"),
1328            Self::ERROR_INSTANCE_LOST => Some("ERROR_INSTANCE_LOST"),
1329            Self::ERROR_SESSION_RUNNING => Some("ERROR_SESSION_RUNNING"),
1330            Self::ERROR_SESSION_NOT_RUNNING => Some("ERROR_SESSION_NOT_RUNNING"),
1331            Self::ERROR_SESSION_LOST => Some("ERROR_SESSION_LOST"),
1332            Self::ERROR_SYSTEM_INVALID => Some("ERROR_SYSTEM_INVALID"),
1333            Self::ERROR_PATH_INVALID => Some("ERROR_PATH_INVALID"),
1334            Self::ERROR_PATH_COUNT_EXCEEDED => Some("ERROR_PATH_COUNT_EXCEEDED"),
1335            Self::ERROR_PATH_FORMAT_INVALID => Some("ERROR_PATH_FORMAT_INVALID"),
1336            Self::ERROR_PATH_UNSUPPORTED => Some("ERROR_PATH_UNSUPPORTED"),
1337            Self::ERROR_LAYER_INVALID => Some("ERROR_LAYER_INVALID"),
1338            Self::ERROR_LAYER_LIMIT_EXCEEDED => Some("ERROR_LAYER_LIMIT_EXCEEDED"),
1339            Self::ERROR_SWAPCHAIN_RECT_INVALID => Some("ERROR_SWAPCHAIN_RECT_INVALID"),
1340            Self::ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED => Some("ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED"),
1341            Self::ERROR_ACTION_TYPE_MISMATCH => Some("ERROR_ACTION_TYPE_MISMATCH"),
1342            Self::ERROR_SESSION_NOT_READY => Some("ERROR_SESSION_NOT_READY"),
1343            Self::ERROR_SESSION_NOT_STOPPING => Some("ERROR_SESSION_NOT_STOPPING"),
1344            Self::ERROR_TIME_INVALID => Some("ERROR_TIME_INVALID"),
1345            Self::ERROR_REFERENCE_SPACE_UNSUPPORTED => Some("ERROR_REFERENCE_SPACE_UNSUPPORTED"),
1346            Self::ERROR_FILE_ACCESS_ERROR => Some("ERROR_FILE_ACCESS_ERROR"),
1347            Self::ERROR_FILE_CONTENTS_INVALID => Some("ERROR_FILE_CONTENTS_INVALID"),
1348            Self::ERROR_FORM_FACTOR_UNSUPPORTED => Some("ERROR_FORM_FACTOR_UNSUPPORTED"),
1349            Self::ERROR_FORM_FACTOR_UNAVAILABLE => Some("ERROR_FORM_FACTOR_UNAVAILABLE"),
1350            Self::ERROR_API_LAYER_NOT_PRESENT => Some("ERROR_API_LAYER_NOT_PRESENT"),
1351            Self::ERROR_CALL_ORDER_INVALID => Some("ERROR_CALL_ORDER_INVALID"),
1352            Self::ERROR_GRAPHICS_DEVICE_INVALID => Some("ERROR_GRAPHICS_DEVICE_INVALID"),
1353            Self::ERROR_POSE_INVALID => Some("ERROR_POSE_INVALID"),
1354            Self::ERROR_INDEX_OUT_OF_RANGE => Some("ERROR_INDEX_OUT_OF_RANGE"),
1355            Self::ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED => {
1356                Some("ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED")
1357            }
1358            Self::ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED => {
1359                Some("ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED")
1360            }
1361            Self::ERROR_NAME_DUPLICATED => Some("ERROR_NAME_DUPLICATED"),
1362            Self::ERROR_NAME_INVALID => Some("ERROR_NAME_INVALID"),
1363            Self::ERROR_ACTIONSET_NOT_ATTACHED => Some("ERROR_ACTIONSET_NOT_ATTACHED"),
1364            Self::ERROR_ACTIONSETS_ALREADY_ATTACHED => Some("ERROR_ACTIONSETS_ALREADY_ATTACHED"),
1365            Self::ERROR_LOCALIZED_NAME_DUPLICATED => Some("ERROR_LOCALIZED_NAME_DUPLICATED"),
1366            Self::ERROR_LOCALIZED_NAME_INVALID => Some("ERROR_LOCALIZED_NAME_INVALID"),
1367            Self::ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING => {
1368                Some("ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING")
1369            }
1370            Self::ERROR_RUNTIME_UNAVAILABLE => Some("ERROR_RUNTIME_UNAVAILABLE"),
1371            Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED => {
1372                Some("ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED")
1373            }
1374            Self::ERROR_PERMISSION_INSUFFICIENT => Some("ERROR_PERMISSION_INSUFFICIENT"),
1375            Self::ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR => {
1376                Some("ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR")
1377            }
1378            Self::ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR => {
1379                Some("ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR")
1380            }
1381            Self::ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT => {
1382                Some("ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT")
1383            }
1384            Self::ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT => {
1385                Some("ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT")
1386            }
1387            Self::ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT => {
1388                Some("ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT")
1389            }
1390            Self::ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT => {
1391                Some("ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT")
1392            }
1393            Self::ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT => {
1394                Some("ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT")
1395            }
1396            Self::ERROR_SCENE_COMPONENT_ID_INVALID_MSFT => {
1397                Some("ERROR_SCENE_COMPONENT_ID_INVALID_MSFT")
1398            }
1399            Self::ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT => {
1400                Some("ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT")
1401            }
1402            Self::ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT => {
1403                Some("ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT")
1404            }
1405            Self::ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT => {
1406                Some("ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT")
1407            }
1408            Self::ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT => {
1409                Some("ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT")
1410            }
1411            Self::ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB => {
1412                Some("ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB")
1413            }
1414            Self::ERROR_COLOR_SPACE_UNSUPPORTED_FB => Some("ERROR_COLOR_SPACE_UNSUPPORTED_FB"),
1415            Self::ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB => {
1416                Some("ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB")
1417            }
1418            Self::ERROR_SPACE_COMPONENT_NOT_ENABLED_FB => {
1419                Some("ERROR_SPACE_COMPONENT_NOT_ENABLED_FB")
1420            }
1421            Self::ERROR_SPACE_COMPONENT_STATUS_PENDING_FB => {
1422                Some("ERROR_SPACE_COMPONENT_STATUS_PENDING_FB")
1423            }
1424            Self::ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB => {
1425                Some("ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB")
1426            }
1427            Self::ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB => {
1428                Some("ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB")
1429            }
1430            Self::ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB => {
1431                Some("ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB")
1432            }
1433            Self::ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB => {
1434                Some("ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB")
1435            }
1436            Self::ERROR_NOT_PERMITTED_PASSTHROUGH_FB => Some("ERROR_NOT_PERMITTED_PASSTHROUGH_FB"),
1437            Self::ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB => {
1438                Some("ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB")
1439            }
1440            Self::ERROR_UNKNOWN_PASSTHROUGH_FB => Some("ERROR_UNKNOWN_PASSTHROUGH_FB"),
1441            Self::ERROR_RENDER_MODEL_KEY_INVALID_FB => Some("ERROR_RENDER_MODEL_KEY_INVALID_FB"),
1442            Self::RENDER_MODEL_UNAVAILABLE_FB => Some("RENDER_MODEL_UNAVAILABLE_FB"),
1443            Self::ERROR_MARKER_NOT_TRACKED_VARJO => Some("ERROR_MARKER_NOT_TRACKED_VARJO"),
1444            Self::ERROR_MARKER_ID_INVALID_VARJO => Some("ERROR_MARKER_ID_INVALID_VARJO"),
1445            Self::ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML => {
1446                Some("ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML")
1447            }
1448            Self::ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML => {
1449                Some("ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML")
1450            }
1451            Self::ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML => {
1452                Some("ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML")
1453            }
1454            Self::ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML => {
1455                Some("ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML")
1456            }
1457            Self::ERROR_MARKER_INVALID_ML => Some("ERROR_MARKER_INVALID_ML"),
1458            Self::ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML => {
1459                Some("ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML")
1460            }
1461            Self::ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML => {
1462                Some("ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML")
1463            }
1464            Self::ERROR_LOCALIZATION_MAP_FAIL_ML => Some("ERROR_LOCALIZATION_MAP_FAIL_ML"),
1465            Self::ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML => {
1466                Some("ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML")
1467            }
1468            Self::ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML => {
1469                Some("ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML")
1470            }
1471            Self::ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML => {
1472                Some("ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML")
1473            }
1474            Self::ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML => {
1475                Some("ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML")
1476            }
1477            Self::ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT => {
1478                Some("ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT")
1479            }
1480            Self::ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT => {
1481                Some("ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT")
1482            }
1483            Self::SCENE_MARKER_DATA_NOT_STRING_MSFT => Some("SCENE_MARKER_DATA_NOT_STRING_MSFT"),
1484            Self::ERROR_SPACE_MAPPING_INSUFFICIENT_FB => {
1485                Some("ERROR_SPACE_MAPPING_INSUFFICIENT_FB")
1486            }
1487            Self::ERROR_SPACE_LOCALIZATION_FAILED_FB => Some("ERROR_SPACE_LOCALIZATION_FAILED_FB"),
1488            Self::ERROR_SPACE_NETWORK_TIMEOUT_FB => Some("ERROR_SPACE_NETWORK_TIMEOUT_FB"),
1489            Self::ERROR_SPACE_NETWORK_REQUEST_FAILED_FB => {
1490                Some("ERROR_SPACE_NETWORK_REQUEST_FAILED_FB")
1491            }
1492            Self::ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB => {
1493                Some("ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB")
1494            }
1495            Self::ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META => {
1496                Some("ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META")
1497            }
1498            Self::ENVIRONMENT_DEPTH_NOT_AVAILABLE_META => {
1499                Some("ENVIRONMENT_DEPTH_NOT_AVAILABLE_META")
1500            }
1501            Self::ERROR_HINT_ALREADY_SET_QCOM => Some("ERROR_HINT_ALREADY_SET_QCOM"),
1502            Self::ERROR_NOT_AN_ANCHOR_HTC => Some("ERROR_NOT_AN_ANCHOR_HTC"),
1503            Self::ERROR_SPACE_NOT_LOCATABLE_EXT => Some("ERROR_SPACE_NOT_LOCATABLE_EXT"),
1504            Self::ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT => {
1505                Some("ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT")
1506            }
1507            Self::ERROR_FUTURE_PENDING_EXT => Some("ERROR_FUTURE_PENDING_EXT"),
1508            Self::ERROR_FUTURE_INVALID_EXT => Some("ERROR_FUTURE_INVALID_EXT"),
1509            _ => None,
1510        };
1511        fmt_enum(fmt, self.0, name)
1512    }
1513}
1514impl fmt::Display for Result {
1515    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1516        let reason = match *self {
1517            Self::SUCCESS => Some("function successfully completed"),
1518            Self::TIMEOUT_EXPIRED => {
1519                Some("the specified timeout time occurred before the operation could complete")
1520            }
1521            Self::SESSION_LOSS_PENDING => Some("the session will be lost soon"),
1522            Self::EVENT_UNAVAILABLE => Some("no event was available"),
1523            Self::SPACE_BOUNDS_UNAVAILABLE => {
1524                Some("the space's bounds are not known at the moment")
1525            }
1526            Self::SESSION_NOT_FOCUSED => Some("the session is not in the focused state"),
1527            Self::FRAME_DISCARDED => Some("a frame has been discarded from composition"),
1528            Self::ERROR_VALIDATION_FAILURE => Some("the function usage was invalid in some way"),
1529            Self::ERROR_RUNTIME_FAILURE => Some(
1530                "the runtime failed to handle the function in an unexpected way that is not covered by another error result",
1531            ),
1532            Self::ERROR_OUT_OF_MEMORY => Some("a memory allocation has failed"),
1533            Self::ERROR_API_VERSION_UNSUPPORTED => {
1534                Some("the runtime does not support the requested API version")
1535            }
1536            Self::ERROR_INITIALIZATION_FAILED => {
1537                Some("initialization of object could not be completed")
1538            }
1539            Self::ERROR_FUNCTION_UNSUPPORTED => {
1540                Some("the requested function was not found or is otherwise unsupported")
1541            }
1542            Self::ERROR_FEATURE_UNSUPPORTED => Some("the requested feature is not supported"),
1543            Self::ERROR_EXTENSION_NOT_PRESENT => Some("a requested extension is not supported"),
1544            Self::ERROR_LIMIT_REACHED => {
1545                Some("the runtime supports no more of the requested resource")
1546            }
1547            Self::ERROR_SIZE_INSUFFICIENT => Some("the supplied size was smaller than required"),
1548            Self::ERROR_HANDLE_INVALID => Some("a supplied object handle was invalid"),
1549            Self::ERROR_INSTANCE_LOST => Some(
1550                "the XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated",
1551            ),
1552            Self::ERROR_SESSION_RUNNING => Some("the session is already running"),
1553            Self::ERROR_SESSION_NOT_RUNNING => Some("the session is not yet running"),
1554            Self::ERROR_SESSION_LOST => Some(
1555                "the XrSession was lost. It will need to be destroyed and optionally recreated",
1556            ),
1557            Self::ERROR_SYSTEM_INVALID => Some("the provided XrSystemId was invalid"),
1558            Self::ERROR_PATH_INVALID => Some("the provided XrPath was not valid"),
1559            Self::ERROR_PATH_COUNT_EXCEEDED => {
1560                Some("the maximum number of supported semantic paths has been reached")
1561            }
1562            Self::ERROR_PATH_FORMAT_INVALID => {
1563                Some("the semantic path character format is invalid")
1564            }
1565            Self::ERROR_PATH_UNSUPPORTED => Some("the semantic path is unsupported"),
1566            Self::ERROR_LAYER_INVALID => Some("the layer was NULL or otherwise invalid"),
1567            Self::ERROR_LAYER_LIMIT_EXCEEDED => {
1568                Some("the number of specified layers is greater than the supported number")
1569            }
1570            Self::ERROR_SWAPCHAIN_RECT_INVALID => {
1571                Some("the image rect was negatively sized or otherwise invalid")
1572            }
1573            Self::ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED => {
1574                Some("the image format is not supported by the runtime or platform")
1575            }
1576            Self::ERROR_ACTION_TYPE_MISMATCH => {
1577                Some("the API used to retrieve an action's state does not match the action's type")
1578            }
1579            Self::ERROR_SESSION_NOT_READY => Some("the session is not in the ready state"),
1580            Self::ERROR_SESSION_NOT_STOPPING => Some("the session is not in the stopping state"),
1581            Self::ERROR_TIME_INVALID => {
1582                Some("the provided XrTime was zero, negative, or out of range")
1583            }
1584            Self::ERROR_REFERENCE_SPACE_UNSUPPORTED => {
1585                Some("the specified reference space is not supported by the runtime or system")
1586            }
1587            Self::ERROR_FILE_ACCESS_ERROR => Some("the file could not be accessed"),
1588            Self::ERROR_FILE_CONTENTS_INVALID => Some("the file's contents were invalid"),
1589            Self::ERROR_FORM_FACTOR_UNSUPPORTED => Some(
1590                "the specified form factor is not supported by the current runtime or platform",
1591            ),
1592            Self::ERROR_FORM_FACTOR_UNAVAILABLE => Some(
1593                "the specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off",
1594            ),
1595            Self::ERROR_API_LAYER_NOT_PRESENT => {
1596                Some("a requested API layer is not present or could not be loaded")
1597            }
1598            Self::ERROR_CALL_ORDER_INVALID => {
1599                Some("the call was made without having made a previously required call")
1600            }
1601            Self::ERROR_GRAPHICS_DEVICE_INVALID => Some(
1602                "the given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements",
1603            ),
1604            Self::ERROR_POSE_INVALID => {
1605                Some("the supplied pose was invalid with respect to the requirements")
1606            }
1607            Self::ERROR_INDEX_OUT_OF_RANGE => {
1608                Some("the supplied index was outside the range of valid indices")
1609            }
1610            Self::ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED => Some(
1611                "the specified view configuration type is not supported by the runtime or platform",
1612            ),
1613            Self::ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED => Some(
1614                "the specified environment blend mode is not supported by the runtime or platform",
1615            ),
1616            Self::ERROR_NAME_DUPLICATED => {
1617                Some("the name provided was a duplicate of an already-existing resource")
1618            }
1619            Self::ERROR_NAME_INVALID => Some("the name provided was invalid"),
1620            Self::ERROR_ACTIONSET_NOT_ATTACHED => {
1621                Some("a referenced action set is not attached to the session")
1622            }
1623            Self::ERROR_ACTIONSETS_ALREADY_ATTACHED => {
1624                Some("the session already has attached action sets")
1625            }
1626            Self::ERROR_LOCALIZED_NAME_DUPLICATED => {
1627                Some("the localized name provided was a duplicate of an already-existing resource")
1628            }
1629            Self::ERROR_LOCALIZED_NAME_INVALID => Some("the localized name provided was invalid"),
1630            Self::ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING => Some(
1631                "the xrGetGraphicsRequirements* call was not made before calling xrCreateSession",
1632            ),
1633            Self::ERROR_RUNTIME_UNAVAILABLE => {
1634                Some("the loader was unable to find or load a runtime")
1635            }
1636            Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED => Some(
1637                "one or more of the extensions being enabled has dependency on extensions that are not enabled",
1638            ),
1639            Self::ERROR_PERMISSION_INSUFFICIENT => Some(
1640                "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",
1641            ),
1642            Self::ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR => {
1643                Some("xrSetAndroidApplicationThreadKHR failed as thread id is invalid")
1644            }
1645            Self::ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR => Some(
1646                "xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority",
1647            ),
1648            Self::ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT => {
1649                Some("spatial anchor could not be created at that location")
1650            }
1651            Self::ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT => {
1652                Some("the secondary view configuration was not enabled when creating the session")
1653            }
1654            Self::ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT => {
1655                Some("the controller model key is invalid")
1656            }
1657            Self::ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT => {
1658                Some("the reprojection mode is not supported")
1659            }
1660            Self::ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT => {
1661                Some("compute new scene not completed")
1662            }
1663            Self::ERROR_SCENE_COMPONENT_ID_INVALID_MSFT => Some("scene component id invalid"),
1664            Self::ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT => Some("scene component type mismatch"),
1665            Self::ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT => Some("scene mesh buffer id invalid"),
1666            Self::ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT => {
1667                Some("scene compute feature incompatible")
1668            }
1669            Self::ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT => {
1670                Some("scene compute consistency mismatch")
1671            }
1672            Self::ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB => {
1673                Some("the display refresh rate is not supported by the platform")
1674            }
1675            Self::ERROR_COLOR_SPACE_UNSUPPORTED_FB => {
1676                Some("the color space is not supported by the runtime")
1677            }
1678            Self::ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB => {
1679                Some("the component type is not supported for this space")
1680            }
1681            Self::ERROR_SPACE_COMPONENT_NOT_ENABLED_FB => {
1682                Some("the required component is not enabled for this space")
1683            }
1684            Self::ERROR_SPACE_COMPONENT_STATUS_PENDING_FB => {
1685                Some("a request to set the component's status is currently pending")
1686            }
1687            Self::ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB => {
1688                Some("the component is already set to the requested value")
1689            }
1690            Self::ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB => {
1691                Some("the object state is unexpected for the issued command")
1692            }
1693            Self::ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB => Some(
1694                "trying to create an MR feature when one was already created and only one instance is allowed",
1695            ),
1696            Self::ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB => {
1697                Some("requested functionality requires a feature to be created first")
1698            }
1699            Self::ERROR_NOT_PERMITTED_PASSTHROUGH_FB => Some(
1700                "requested functionality is not permitted - application is not allowed to perform the requested operation",
1701            ),
1702            Self::ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB => {
1703                Some("there were insufficient resources available to perform an operation")
1704            }
1705            Self::ERROR_UNKNOWN_PASSTHROUGH_FB => {
1706                Some("unknown Passthrough error (no further details provided)")
1707            }
1708            Self::ERROR_RENDER_MODEL_KEY_INVALID_FB => Some("the model key is invalid"),
1709            Self::RENDER_MODEL_UNAVAILABLE_FB => Some("the model is unavailable"),
1710            Self::ERROR_MARKER_NOT_TRACKED_VARJO => {
1711                Some("marker tracking is disabled or the specified marker is not currently tracked")
1712            }
1713            Self::ERROR_MARKER_ID_INVALID_VARJO => Some("the specified marker ID is not valid"),
1714            Self::ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML => {
1715                Some("the com.magicleap.permission.MARKER_TRACKING permission was denied")
1716            }
1717            Self::ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML => {
1718                Some("the specified marker could not be located spatially")
1719            }
1720            Self::ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML => {
1721                Some("the marker queried does not contain data of the requested type")
1722            }
1723            Self::ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML => Some(
1724                "createInfo contains mutually exclusive parameters, such as setting XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with XR_MARKER_TYPE_ARUCO_ML",
1725            ),
1726            Self::ERROR_MARKER_INVALID_ML => {
1727                Some("the marker id passed to the function was invalid")
1728            }
1729            Self::ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML => Some(
1730                "the localization map being imported is not compatible with current OS or mode",
1731            ),
1732            Self::ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML => {
1733                Some("the localization map requested is not available")
1734            }
1735            Self::ERROR_LOCALIZATION_MAP_FAIL_ML => {
1736                Some("the map localization service failed to fulfill the request, retry later")
1737            }
1738            Self::ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML => {
1739                Some("the com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied")
1740            }
1741            Self::ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML => {
1742                Some("the com.magicleap.permission.SPACE_MANAGER permission was denied")
1743            }
1744            Self::ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML => {
1745                Some("the map being imported already exists in the system")
1746            }
1747            Self::ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML => {
1748                Some("the map localization service cannot export cloud based maps")
1749            }
1750            Self::ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT => Some(
1751                "a spatial anchor was not found associated with the spatial anchor name provided",
1752            ),
1753            Self::ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT => {
1754                Some("the spatial anchor name provided was not valid")
1755            }
1756            Self::SCENE_MARKER_DATA_NOT_STRING_MSFT => Some("marker does not encode a string"),
1757            Self::ERROR_SPACE_MAPPING_INSUFFICIENT_FB => {
1758                Some("anchor import from cloud or export from device failed")
1759            }
1760            Self::ERROR_SPACE_LOCALIZATION_FAILED_FB => Some(
1761                "anchors were downloaded from the cloud but failed to be imported/aligned on the device",
1762            ),
1763            Self::ERROR_SPACE_NETWORK_TIMEOUT_FB => {
1764                Some("timeout occurred while waiting for network request to complete")
1765            }
1766            Self::ERROR_SPACE_NETWORK_REQUEST_FAILED_FB => Some("the network request failed"),
1767            Self::ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB => {
1768                Some("cloud storage is required for this operation but is currently disabled")
1769            }
1770            Self::ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META => {
1771                Some("the provided data buffer did not match the required size")
1772            }
1773            Self::ENVIRONMENT_DEPTH_NOT_AVAILABLE_META => {
1774                Some("warning: The requested depth image is not yet available")
1775            }
1776            Self::ERROR_HINT_ALREADY_SET_QCOM => {
1777                Some("tracking optimization hint is already set for the domain")
1778            }
1779            Self::ERROR_NOT_AN_ANCHOR_HTC => Some("the provided space is valid but not an anchor"),
1780            Self::ERROR_SPACE_NOT_LOCATABLE_EXT => {
1781                Some("the space passed to the function was not locatable")
1782            }
1783            Self::ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT => {
1784                Some("the permission for this resource was not granted")
1785            }
1786            Self::ERROR_FUTURE_PENDING_EXT => {
1787                Some("returned by completion function to indicate future is not ready")
1788            }
1789            Self::ERROR_FUTURE_INVALID_EXT => {
1790                Some("returned by completion function to indicate future is not valid")
1791            }
1792            Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR => {
1793                Some("ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR")
1794            }
1795            Self::ERROR_PERMISSION_INSUFFICIENT_KHR => Some("ERROR_PERMISSION_INSUFFICIENT_KHR"),
1796            _ => None,
1797        };
1798        if let Some(reason) = reason {
1799            fmt.pad(reason)
1800        } else {
1801            write!(fmt, "unknown error (code {})", self.0)
1802        }
1803    }
1804}
1805impl std::error::Error for Result {}
1806#[doc = "Enums to track objects of various types - see [XrObjectType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrObjectType)"]
1807#[repr(transparent)]
1808#[derive(Copy, Clone, Eq, PartialEq)]
1809pub struct ObjectType(i32);
1810impl ObjectType {
1811    pub const UNKNOWN: ObjectType = Self(0i32);
1812    #[doc = "XrInstance"]
1813    pub const INSTANCE: ObjectType = Self(1i32);
1814    #[doc = "XrSession"]
1815    pub const SESSION: ObjectType = Self(2i32);
1816    #[doc = "XrSwapchain"]
1817    pub const SWAPCHAIN: ObjectType = Self(3i32);
1818    #[doc = "XrSpace"]
1819    pub const SPACE: ObjectType = Self(4i32);
1820    #[doc = "XrActionSet"]
1821    pub const ACTION_SET: ObjectType = Self(5i32);
1822    #[doc = "XrAction"]
1823    pub const ACTION: ObjectType = Self(6i32);
1824    #[doc = "XrDebugUtilsMessengerEXT"]
1825    pub const DEBUG_UTILS_MESSENGER_EXT: ObjectType = Self(1000019000i32);
1826    #[doc = "XrSpatialAnchorMSFT"]
1827    pub const SPATIAL_ANCHOR_MSFT: ObjectType = Self(1000039000i32);
1828    #[doc = "XrSpatialGraphNodeBindingMSFT"]
1829    pub const SPATIAL_GRAPH_NODE_BINDING_MSFT: ObjectType = Self(1000049000i32);
1830    #[doc = "XrHandTrackerEXT"]
1831    pub const HAND_TRACKER_EXT: ObjectType = Self(1000051000i32);
1832    #[doc = "XrBodyTrackerFB"]
1833    pub const BODY_TRACKER_FB: ObjectType = Self(1000076000i32);
1834    #[doc = "XrSceneObserverMSFT"]
1835    pub const SCENE_OBSERVER_MSFT: ObjectType = Self(1000097000i32);
1836    #[doc = "XrSceneMSFT"]
1837    pub const SCENE_MSFT: ObjectType = Self(1000097001i32);
1838    #[doc = "XrFacialTrackerHTC"]
1839    pub const FACIAL_TRACKER_HTC: ObjectType = Self(1000104000i32);
1840    #[doc = "XrFoveationProfileFB"]
1841    pub const FOVEATION_PROFILE_FB: ObjectType = Self(1000114000i32);
1842    #[doc = "XrTriangleMeshFB"]
1843    pub const TRIANGLE_MESH_FB: ObjectType = Self(1000117000i32);
1844    #[doc = "XrPassthroughFB"]
1845    pub const PASSTHROUGH_FB: ObjectType = Self(1000118000i32);
1846    #[doc = "XrPassthroughLayerFB"]
1847    pub const PASSTHROUGH_LAYER_FB: ObjectType = Self(1000118002i32);
1848    #[doc = "XrGeometryInstanceFB"]
1849    pub const GEOMETRY_INSTANCE_FB: ObjectType = Self(1000118004i32);
1850    #[doc = "XrMarkerDetectorML"]
1851    pub const MARKER_DETECTOR_ML: ObjectType = Self(1000138000i32);
1852    #[doc = "XrExportedLocalizationMapML"]
1853    pub const EXPORTED_LOCALIZATION_MAP_ML: ObjectType = Self(1000139000i32);
1854    #[doc = "XrSpatialAnchorStoreConnectionMSFT"]
1855    pub const SPATIAL_ANCHOR_STORE_CONNECTION_MSFT: ObjectType = Self(1000142000i32);
1856    #[doc = "XrFaceTrackerFB"]
1857    pub const FACE_TRACKER_FB: ObjectType = Self(1000201000i32);
1858    #[doc = "XrEyeTrackerFB"]
1859    pub const EYE_TRACKER_FB: ObjectType = Self(1000202000i32);
1860    #[doc = "XrVirtualKeyboardMETA"]
1861    pub const VIRTUAL_KEYBOARD_META: ObjectType = Self(1000219000i32);
1862    #[doc = "XrSpaceUserFB"]
1863    pub const SPACE_USER_FB: ObjectType = Self(1000241000i32);
1864    #[doc = "XrPassthroughColorLutMETA"]
1865    pub const PASSTHROUGH_COLOR_LUT_META: ObjectType = Self(1000266000i32);
1866    #[doc = "XrFaceTracker2FB"]
1867    pub const FACE_TRACKER2_FB: ObjectType = Self(1000287012i32);
1868    #[doc = "XrEnvironmentDepthProviderMETA"]
1869    pub const ENVIRONMENT_DEPTH_PROVIDER_META: ObjectType = Self(1000291000i32);
1870    #[doc = "XrEnvironmentDepthSwapchainMETA"]
1871    pub const ENVIRONMENT_DEPTH_SWAPCHAIN_META: ObjectType = Self(1000291001i32);
1872    #[doc = "XrPassthroughHTC"]
1873    pub const PASSTHROUGH_HTC: ObjectType = Self(1000317000i32);
1874    #[doc = "XrPlaneDetectorEXT"]
1875    pub const PLANE_DETECTOR_EXT: ObjectType = Self(1000429000i32);
1876    pub fn from_raw(x: i32) -> Self {
1877        Self(x)
1878    }
1879    pub fn into_raw(self) -> i32 {
1880        self.0
1881    }
1882}
1883impl fmt::Debug for ObjectType {
1884    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1885        let name = match *self {
1886            Self::UNKNOWN => Some("UNKNOWN"),
1887            Self::INSTANCE => Some("INSTANCE"),
1888            Self::SESSION => Some("SESSION"),
1889            Self::SWAPCHAIN => Some("SWAPCHAIN"),
1890            Self::SPACE => Some("SPACE"),
1891            Self::ACTION_SET => Some("ACTION_SET"),
1892            Self::ACTION => Some("ACTION"),
1893            Self::DEBUG_UTILS_MESSENGER_EXT => Some("DEBUG_UTILS_MESSENGER_EXT"),
1894            Self::SPATIAL_ANCHOR_MSFT => Some("SPATIAL_ANCHOR_MSFT"),
1895            Self::SPATIAL_GRAPH_NODE_BINDING_MSFT => Some("SPATIAL_GRAPH_NODE_BINDING_MSFT"),
1896            Self::HAND_TRACKER_EXT => Some("HAND_TRACKER_EXT"),
1897            Self::BODY_TRACKER_FB => Some("BODY_TRACKER_FB"),
1898            Self::SCENE_OBSERVER_MSFT => Some("SCENE_OBSERVER_MSFT"),
1899            Self::SCENE_MSFT => Some("SCENE_MSFT"),
1900            Self::FACIAL_TRACKER_HTC => Some("FACIAL_TRACKER_HTC"),
1901            Self::FOVEATION_PROFILE_FB => Some("FOVEATION_PROFILE_FB"),
1902            Self::TRIANGLE_MESH_FB => Some("TRIANGLE_MESH_FB"),
1903            Self::PASSTHROUGH_FB => Some("PASSTHROUGH_FB"),
1904            Self::PASSTHROUGH_LAYER_FB => Some("PASSTHROUGH_LAYER_FB"),
1905            Self::GEOMETRY_INSTANCE_FB => Some("GEOMETRY_INSTANCE_FB"),
1906            Self::MARKER_DETECTOR_ML => Some("MARKER_DETECTOR_ML"),
1907            Self::EXPORTED_LOCALIZATION_MAP_ML => Some("EXPORTED_LOCALIZATION_MAP_ML"),
1908            Self::SPATIAL_ANCHOR_STORE_CONNECTION_MSFT => {
1909                Some("SPATIAL_ANCHOR_STORE_CONNECTION_MSFT")
1910            }
1911            Self::FACE_TRACKER_FB => Some("FACE_TRACKER_FB"),
1912            Self::EYE_TRACKER_FB => Some("EYE_TRACKER_FB"),
1913            Self::VIRTUAL_KEYBOARD_META => Some("VIRTUAL_KEYBOARD_META"),
1914            Self::SPACE_USER_FB => Some("SPACE_USER_FB"),
1915            Self::PASSTHROUGH_COLOR_LUT_META => Some("PASSTHROUGH_COLOR_LUT_META"),
1916            Self::FACE_TRACKER2_FB => Some("FACE_TRACKER2_FB"),
1917            Self::ENVIRONMENT_DEPTH_PROVIDER_META => Some("ENVIRONMENT_DEPTH_PROVIDER_META"),
1918            Self::ENVIRONMENT_DEPTH_SWAPCHAIN_META => Some("ENVIRONMENT_DEPTH_SWAPCHAIN_META"),
1919            Self::PASSTHROUGH_HTC => Some("PASSTHROUGH_HTC"),
1920            Self::PLANE_DETECTOR_EXT => Some("PLANE_DETECTOR_EXT"),
1921            _ => None,
1922        };
1923        fmt_enum(fmt, self.0, name)
1924    }
1925}
1926#[doc = "Android Thread Types - see [XrAndroidThreadTypeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidThreadTypeKHR)"]
1927#[repr(transparent)]
1928#[derive(Copy, Clone, Eq, PartialEq)]
1929pub struct AndroidThreadTypeKHR(i32);
1930impl AndroidThreadTypeKHR {
1931    pub const APPLICATION_MAIN: AndroidThreadTypeKHR = Self(1i32);
1932    pub const APPLICATION_WORKER: AndroidThreadTypeKHR = Self(2i32);
1933    pub const RENDERER_MAIN: AndroidThreadTypeKHR = Self(3i32);
1934    pub const RENDERER_WORKER: AndroidThreadTypeKHR = Self(4i32);
1935    pub fn from_raw(x: i32) -> Self {
1936        Self(x)
1937    }
1938    pub fn into_raw(self) -> i32 {
1939        self.0
1940    }
1941}
1942impl fmt::Debug for AndroidThreadTypeKHR {
1943    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1944        let name = match *self {
1945            Self::APPLICATION_MAIN => Some("APPLICATION_MAIN"),
1946            Self::APPLICATION_WORKER => Some("APPLICATION_WORKER"),
1947            Self::RENDERER_MAIN => Some("RENDERER_MAIN"),
1948            Self::RENDERER_WORKER => Some("RENDERER_WORKER"),
1949            _ => None,
1950        };
1951        fmt_enum(fmt, self.0, name)
1952    }
1953}
1954#[doc = "eye visibility selector - see [XrEyeVisibility](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeVisibility)"]
1955#[repr(transparent)]
1956#[derive(Copy, Clone, Eq, PartialEq)]
1957pub struct EyeVisibility(i32);
1958impl EyeVisibility {
1959    #[doc = "Display in both eyes."]
1960    pub const BOTH: EyeVisibility = Self(0i32);
1961    #[doc = "Display in the left eye only."]
1962    pub const LEFT: EyeVisibility = Self(1i32);
1963    #[doc = "Display in the right eye only."]
1964    pub const RIGHT: EyeVisibility = Self(2i32);
1965    pub fn from_raw(x: i32) -> Self {
1966        Self(x)
1967    }
1968    pub fn into_raw(self) -> i32 {
1969        self.0
1970    }
1971}
1972impl fmt::Debug for EyeVisibility {
1973    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1974        let name = match *self {
1975            Self::BOTH => Some("BOTH"),
1976            Self::LEFT => Some("LEFT"),
1977            Self::RIGHT => Some("RIGHT"),
1978            _ => None,
1979        };
1980        fmt_enum(fmt, self.0, name)
1981    }
1982}
1983#[doc = "See [XrActionType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionType)"]
1984#[repr(transparent)]
1985#[derive(Copy, Clone, Eq, PartialEq)]
1986pub struct ActionType(i32);
1987impl ActionType {
1988    pub const BOOLEAN_INPUT: ActionType = Self(1i32);
1989    pub const FLOAT_INPUT: ActionType = Self(2i32);
1990    pub const VECTOR2F_INPUT: ActionType = Self(3i32);
1991    pub const POSE_INPUT: ActionType = Self(4i32);
1992    pub const VIBRATION_OUTPUT: ActionType = Self(100i32);
1993    pub fn from_raw(x: i32) -> Self {
1994        Self(x)
1995    }
1996    pub fn into_raw(self) -> i32 {
1997        self.0
1998    }
1999}
2000impl fmt::Debug for ActionType {
2001    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2002        let name = match *self {
2003            Self::BOOLEAN_INPUT => Some("BOOLEAN_INPUT"),
2004            Self::FLOAT_INPUT => Some("FLOAT_INPUT"),
2005            Self::VECTOR2F_INPUT => Some("VECTOR2F_INPUT"),
2006            Self::POSE_INPUT => Some("POSE_INPUT"),
2007            Self::VIBRATION_OUTPUT => Some("VIBRATION_OUTPUT"),
2008            _ => None,
2009        };
2010        fmt_enum(fmt, self.0, name)
2011    }
2012}
2013#[doc = "See [XrReferenceSpaceType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReferenceSpaceType)"]
2014#[repr(transparent)]
2015#[derive(Copy, Clone, Eq, PartialEq)]
2016pub struct ReferenceSpaceType(i32);
2017impl ReferenceSpaceType {
2018    pub const VIEW: ReferenceSpaceType = Self(1i32);
2019    pub const LOCAL: ReferenceSpaceType = Self(2i32);
2020    pub const STAGE: ReferenceSpaceType = Self(3i32);
2021    pub const LOCAL_FLOOR: ReferenceSpaceType = Self(1000426000i32);
2022    pub const UNBOUNDED_MSFT: ReferenceSpaceType = Self(1000038000i32);
2023    pub const COMBINED_EYE_VARJO: ReferenceSpaceType = Self(1000121000i32);
2024    pub const LOCALIZATION_MAP_ML: ReferenceSpaceType = Self(1000139000i32);
2025    pub const LOCAL_FLOOR_EXT: ReferenceSpaceType = Self::LOCAL_FLOOR;
2026    pub fn from_raw(x: i32) -> Self {
2027        Self(x)
2028    }
2029    pub fn into_raw(self) -> i32 {
2030        self.0
2031    }
2032}
2033impl fmt::Debug for ReferenceSpaceType {
2034    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2035        let name = match *self {
2036            Self::VIEW => Some("VIEW"),
2037            Self::LOCAL => Some("LOCAL"),
2038            Self::STAGE => Some("STAGE"),
2039            Self::LOCAL_FLOOR => Some("LOCAL_FLOOR"),
2040            Self::UNBOUNDED_MSFT => Some("UNBOUNDED_MSFT"),
2041            Self::COMBINED_EYE_VARJO => Some("COMBINED_EYE_VARJO"),
2042            Self::LOCALIZATION_MAP_ML => Some("LOCALIZATION_MAP_ML"),
2043            _ => None,
2044        };
2045        fmt_enum(fmt, self.0, name)
2046    }
2047}
2048#[doc = "See [XrFormFactor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFormFactor)"]
2049#[repr(transparent)]
2050#[derive(Copy, Clone, Eq, PartialEq)]
2051pub struct FormFactor(i32);
2052impl FormFactor {
2053    pub const HEAD_MOUNTED_DISPLAY: FormFactor = Self(1i32);
2054    pub const HANDHELD_DISPLAY: FormFactor = Self(2i32);
2055    pub fn from_raw(x: i32) -> Self {
2056        Self(x)
2057    }
2058    pub fn into_raw(self) -> i32 {
2059        self.0
2060    }
2061}
2062impl fmt::Debug for FormFactor {
2063    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2064        let name = match *self {
2065            Self::HEAD_MOUNTED_DISPLAY => Some("HEAD_MOUNTED_DISPLAY"),
2066            Self::HANDHELD_DISPLAY => Some("HANDHELD_DISPLAY"),
2067            _ => None,
2068        };
2069        fmt_enum(fmt, self.0, name)
2070    }
2071}
2072#[doc = "See [XrViewConfigurationType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationType)"]
2073#[repr(transparent)]
2074#[derive(Copy, Clone, Eq, PartialEq)]
2075pub struct ViewConfigurationType(i32);
2076impl ViewConfigurationType {
2077    pub const PRIMARY_MONO: ViewConfigurationType = Self(1i32);
2078    pub const PRIMARY_STEREO: ViewConfigurationType = Self(2i32);
2079    pub const PRIMARY_STEREO_WITH_FOVEATED_INSET: ViewConfigurationType = Self(1000037000i32);
2080    pub const PRIMARY_QUAD_VARJO: ViewConfigurationType = Self::PRIMARY_STEREO_WITH_FOVEATED_INSET;
2081    pub const SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT: ViewConfigurationType =
2082        Self(1000054000i32);
2083    pub fn from_raw(x: i32) -> Self {
2084        Self(x)
2085    }
2086    pub fn into_raw(self) -> i32 {
2087        self.0
2088    }
2089}
2090impl fmt::Debug for ViewConfigurationType {
2091    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2092        let name = match *self {
2093            Self::PRIMARY_MONO => Some("PRIMARY_MONO"),
2094            Self::PRIMARY_STEREO => Some("PRIMARY_STEREO"),
2095            Self::PRIMARY_STEREO_WITH_FOVEATED_INSET => Some("PRIMARY_STEREO_WITH_FOVEATED_INSET"),
2096            Self::SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT => {
2097                Some("SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT")
2098            }
2099            _ => None,
2100        };
2101        fmt_enum(fmt, self.0, name)
2102    }
2103}
2104#[doc = "See [XrEnvironmentBlendMode](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentBlendMode)"]
2105#[repr(transparent)]
2106#[derive(Copy, Clone, Eq, PartialEq)]
2107pub struct EnvironmentBlendMode(i32);
2108impl EnvironmentBlendMode {
2109    pub const OPAQUE: EnvironmentBlendMode = Self(1i32);
2110    pub const ADDITIVE: EnvironmentBlendMode = Self(2i32);
2111    pub const ALPHA_BLEND: EnvironmentBlendMode = Self(3i32);
2112    pub fn from_raw(x: i32) -> Self {
2113        Self(x)
2114    }
2115    pub fn into_raw(self) -> i32 {
2116        self.0
2117    }
2118}
2119impl fmt::Debug for EnvironmentBlendMode {
2120    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2121        let name = match *self {
2122            Self::OPAQUE => Some("OPAQUE"),
2123            Self::ADDITIVE => Some("ADDITIVE"),
2124            Self::ALPHA_BLEND => Some("ALPHA_BLEND"),
2125            _ => None,
2126        };
2127        fmt_enum(fmt, self.0, name)
2128    }
2129}
2130#[doc = "See [XrSessionState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionState)"]
2131#[repr(transparent)]
2132#[derive(Copy, Clone, Eq, PartialEq)]
2133pub struct SessionState(i32);
2134impl SessionState {
2135    pub const UNKNOWN: SessionState = Self(0i32);
2136    pub const IDLE: SessionState = Self(1i32);
2137    pub const READY: SessionState = Self(2i32);
2138    pub const SYNCHRONIZED: SessionState = Self(3i32);
2139    pub const VISIBLE: SessionState = Self(4i32);
2140    pub const FOCUSED: SessionState = Self(5i32);
2141    pub const STOPPING: SessionState = Self(6i32);
2142    pub const LOSS_PENDING: SessionState = Self(7i32);
2143    pub const EXITING: SessionState = Self(8i32);
2144    pub fn from_raw(x: i32) -> Self {
2145        Self(x)
2146    }
2147    pub fn into_raw(self) -> i32 {
2148        self.0
2149    }
2150}
2151impl fmt::Debug for SessionState {
2152    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2153        let name = match *self {
2154            Self::UNKNOWN => Some("UNKNOWN"),
2155            Self::IDLE => Some("IDLE"),
2156            Self::READY => Some("READY"),
2157            Self::SYNCHRONIZED => Some("SYNCHRONIZED"),
2158            Self::VISIBLE => Some("VISIBLE"),
2159            Self::FOCUSED => Some("FOCUSED"),
2160            Self::STOPPING => Some("STOPPING"),
2161            Self::LOSS_PENDING => Some("LOSS_PENDING"),
2162            Self::EXITING => Some("EXITING"),
2163            _ => None,
2164        };
2165        fmt_enum(fmt, self.0, name)
2166    }
2167}
2168#[doc = "See [XrPerfSettingsDomainEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsDomainEXT)"]
2169#[repr(transparent)]
2170#[derive(Copy, Clone, Eq, PartialEq)]
2171pub struct PerfSettingsDomainEXT(i32);
2172impl PerfSettingsDomainEXT {
2173    #[doc = "Indicates that the performance settings or notification applies to CPU domain"]
2174    pub const CPU: PerfSettingsDomainEXT = Self(1i32);
2175    #[doc = "Indicates that the performance settings or notification applies to GPU domain"]
2176    pub const GPU: PerfSettingsDomainEXT = Self(2i32);
2177    pub fn from_raw(x: i32) -> Self {
2178        Self(x)
2179    }
2180    pub fn into_raw(self) -> i32 {
2181        self.0
2182    }
2183}
2184impl fmt::Debug for PerfSettingsDomainEXT {
2185    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2186        let name = match *self {
2187            Self::CPU => Some("CPU"),
2188            Self::GPU => Some("GPU"),
2189            _ => None,
2190        };
2191        fmt_enum(fmt, self.0, name)
2192    }
2193}
2194#[doc = "See [XrPerfSettingsSubDomainEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsSubDomainEXT)"]
2195#[repr(transparent)]
2196#[derive(Copy, Clone, Eq, PartialEq)]
2197pub struct PerfSettingsSubDomainEXT(i32);
2198impl PerfSettingsSubDomainEXT {
2199    #[doc = "Indicates that the performance notification originates from the COMPOSITING sub-domain"]
2200    pub const COMPOSITING: PerfSettingsSubDomainEXT = Self(1i32);
2201    #[doc = "Indicates that the performance notification originates from the RENDERING sub-domain"]
2202    pub const RENDERING: PerfSettingsSubDomainEXT = Self(2i32);
2203    #[doc = "Indicates that the performance notification originates from the THERMAL sub-domain"]
2204    pub const THERMAL: PerfSettingsSubDomainEXT = Self(3i32);
2205    pub fn from_raw(x: i32) -> Self {
2206        Self(x)
2207    }
2208    pub fn into_raw(self) -> i32 {
2209        self.0
2210    }
2211}
2212impl fmt::Debug for PerfSettingsSubDomainEXT {
2213    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2214        let name = match *self {
2215            Self::COMPOSITING => Some("COMPOSITING"),
2216            Self::RENDERING => Some("RENDERING"),
2217            Self::THERMAL => Some("THERMAL"),
2218            _ => None,
2219        };
2220        fmt_enum(fmt, self.0, name)
2221    }
2222}
2223#[doc = "See [XrPerfSettingsLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsLevelEXT)"]
2224#[repr(transparent)]
2225#[derive(Copy, Clone, Eq, PartialEq)]
2226pub struct PerfSettingsLevelEXT(i32);
2227impl PerfSettingsLevelEXT {
2228    #[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"]
2229    pub const POWER_SAVINGS: PerfSettingsLevelEXT = Self(0i32);
2230    #[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"]
2231    pub const SUSTAINED_LOW: PerfSettingsLevelEXT = Self(25i32);
2232    #[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"]
2233    pub const SUSTAINED_HIGH: PerfSettingsLevelEXT = Self(50i32);
2234    #[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"]
2235    pub const BOOST: PerfSettingsLevelEXT = Self(75i32);
2236    pub fn from_raw(x: i32) -> Self {
2237        Self(x)
2238    }
2239    pub fn into_raw(self) -> i32 {
2240        self.0
2241    }
2242}
2243impl fmt::Debug for PerfSettingsLevelEXT {
2244    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2245        let name = match *self {
2246            Self::POWER_SAVINGS => Some("POWER_SAVINGS"),
2247            Self::SUSTAINED_LOW => Some("SUSTAINED_LOW"),
2248            Self::SUSTAINED_HIGH => Some("SUSTAINED_HIGH"),
2249            Self::BOOST => Some("BOOST"),
2250            _ => None,
2251        };
2252        fmt_enum(fmt, self.0, name)
2253    }
2254}
2255#[doc = "See [XrPerfSettingsNotificationLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsNotificationLevelEXT)"]
2256#[repr(transparent)]
2257#[derive(Copy, Clone, Eq, PartialEq)]
2258pub struct PerfSettingsNotificationLevelEXT(i32);
2259impl PerfSettingsNotificationLevelEXT {
2260    #[doc = "Notifies that the sub-domain has reached a level where no further actions other than currently applied are necessary"]
2261    pub const NORMAL: PerfSettingsNotificationLevelEXT = Self(0i32);
2262    #[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"]
2263    pub const WARNING: PerfSettingsNotificationLevelEXT = Self(25i32);
2264    #[doc = "Notifies that the sub-domain has reached a critical level with significant performance degradation. The application should take drastic mitigation action"]
2265    pub const IMPAIRED: PerfSettingsNotificationLevelEXT = Self(75i32);
2266    pub fn from_raw(x: i32) -> Self {
2267        Self(x)
2268    }
2269    pub fn into_raw(self) -> i32 {
2270        self.0
2271    }
2272}
2273impl fmt::Debug for PerfSettingsNotificationLevelEXT {
2274    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2275        let name = match *self {
2276            Self::NORMAL => Some("NORMAL"),
2277            Self::WARNING => Some("WARNING"),
2278            Self::IMPAIRED => Some("IMPAIRED"),
2279            _ => None,
2280        };
2281        fmt_enum(fmt, self.0, name)
2282    }
2283}
2284#[doc = "See [XrVisibilityMaskTypeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVisibilityMaskTypeKHR)"]
2285#[repr(transparent)]
2286#[derive(Copy, Clone, Eq, PartialEq)]
2287pub struct VisibilityMaskTypeKHR(i32);
2288impl VisibilityMaskTypeKHR {
2289    #[doc = "exclusive mesh; indicates that which the viewer cannot see."]
2290    pub const HIDDEN_TRIANGLE_MESH: VisibilityMaskTypeKHR = Self(1i32);
2291    #[doc = "inclusive mesh; indicates strictly that which the viewer can see."]
2292    pub const VISIBLE_TRIANGLE_MESH: VisibilityMaskTypeKHR = Self(2i32);
2293    #[doc = "line loop; traces the outline of the area the viewer can see."]
2294    pub const LINE_LOOP: VisibilityMaskTypeKHR = Self(3i32);
2295    pub fn from_raw(x: i32) -> Self {
2296        Self(x)
2297    }
2298    pub fn into_raw(self) -> i32 {
2299        self.0
2300    }
2301}
2302impl fmt::Debug for VisibilityMaskTypeKHR {
2303    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2304        let name = match *self {
2305            Self::HIDDEN_TRIANGLE_MESH => Some("HIDDEN_TRIANGLE_MESH"),
2306            Self::VISIBLE_TRIANGLE_MESH => Some("VISIBLE_TRIANGLE_MESH"),
2307            Self::LINE_LOOP => Some("LINE_LOOP"),
2308            _ => None,
2309        };
2310        fmt_enum(fmt, self.0, name)
2311    }
2312}
2313#[doc = "See [XrSpatialGraphNodeTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeTypeMSFT)"]
2314#[repr(transparent)]
2315#[derive(Copy, Clone, Eq, PartialEq)]
2316pub struct SpatialGraphNodeTypeMSFT(i32);
2317impl SpatialGraphNodeTypeMSFT {
2318    pub const STATIC: SpatialGraphNodeTypeMSFT = Self(1i32);
2319    pub const DYNAMIC: SpatialGraphNodeTypeMSFT = Self(2i32);
2320    pub fn from_raw(x: i32) -> Self {
2321        Self(x)
2322    }
2323    pub fn into_raw(self) -> i32 {
2324        self.0
2325    }
2326}
2327impl fmt::Debug for SpatialGraphNodeTypeMSFT {
2328    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2329        let name = match *self {
2330            Self::STATIC => Some("STATIC"),
2331            Self::DYNAMIC => Some("DYNAMIC"),
2332            _ => None,
2333        };
2334        fmt_enum(fmt, self.0, name)
2335    }
2336}
2337#[doc = "See [XrBlendFactorFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBlendFactorFB)"]
2338#[repr(transparent)]
2339#[derive(Copy, Clone, Eq, PartialEq)]
2340pub struct BlendFactorFB(i32);
2341impl BlendFactorFB {
2342    pub const ZERO: BlendFactorFB = Self(0i32);
2343    pub const ONE: BlendFactorFB = Self(1i32);
2344    pub const SRC_ALPHA: BlendFactorFB = Self(2i32);
2345    pub const ONE_MINUS_SRC_ALPHA: BlendFactorFB = Self(3i32);
2346    pub const DST_ALPHA: BlendFactorFB = Self(4i32);
2347    pub const ONE_MINUS_DST_ALPHA: BlendFactorFB = Self(5i32);
2348    pub fn from_raw(x: i32) -> Self {
2349        Self(x)
2350    }
2351    pub fn into_raw(self) -> i32 {
2352        self.0
2353    }
2354}
2355impl fmt::Debug for BlendFactorFB {
2356    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2357        let name = match *self {
2358            Self::ZERO => Some("ZERO"),
2359            Self::ONE => Some("ONE"),
2360            Self::SRC_ALPHA => Some("SRC_ALPHA"),
2361            Self::ONE_MINUS_SRC_ALPHA => Some("ONE_MINUS_SRC_ALPHA"),
2362            Self::DST_ALPHA => Some("DST_ALPHA"),
2363            Self::ONE_MINUS_DST_ALPHA => Some("ONE_MINUS_DST_ALPHA"),
2364            _ => None,
2365        };
2366        fmt_enum(fmt, self.0, name)
2367    }
2368}
2369#[doc = "See [XrSpaceComponentTypeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentTypeFB)"]
2370#[repr(transparent)]
2371#[derive(Copy, Clone, Eq, PartialEq)]
2372pub struct SpaceComponentTypeFB(i32);
2373impl SpaceComponentTypeFB {
2374    #[doc = "Enables tracking the 6 DOF pose of the XrSpace with xrLocateSpace."]
2375    pub const LOCATABLE: SpaceComponentTypeFB = Self(0i32);
2376    #[doc = "Enables persistence operations: save and erase."]
2377    pub const STORABLE: SpaceComponentTypeFB = Self(1i32);
2378    #[doc = "Enables sharing of spatial entities."]
2379    pub const SHARABLE: SpaceComponentTypeFB = Self(2i32);
2380    #[doc = "Bounded 2D component."]
2381    pub const BOUNDED_2D: SpaceComponentTypeFB = Self(3i32);
2382    #[doc = "Bounded 3D component."]
2383    pub const BOUNDED_3D: SpaceComponentTypeFB = Self(4i32);
2384    #[doc = "Semantic labels component."]
2385    pub const SEMANTIC_LABELS: SpaceComponentTypeFB = Self(5i32);
2386    #[doc = "Room layout component."]
2387    pub const ROOM_LAYOUT: SpaceComponentTypeFB = Self(6i32);
2388    #[doc = "Space container component."]
2389    pub const SPACE_CONTAINER: SpaceComponentTypeFB = Self(7i32);
2390    pub const TRIANGLE_MESH_M: SpaceComponentTypeFB = Self(1000269000i32);
2391    pub fn from_raw(x: i32) -> Self {
2392        Self(x)
2393    }
2394    pub fn into_raw(self) -> i32 {
2395        self.0
2396    }
2397}
2398impl fmt::Debug for SpaceComponentTypeFB {
2399    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2400        let name = match *self {
2401            Self::LOCATABLE => Some("LOCATABLE"),
2402            Self::STORABLE => Some("STORABLE"),
2403            Self::SHARABLE => Some("SHARABLE"),
2404            Self::BOUNDED_2D => Some("BOUNDED_2D"),
2405            Self::BOUNDED_3D => Some("BOUNDED_3D"),
2406            Self::SEMANTIC_LABELS => Some("SEMANTIC_LABELS"),
2407            Self::ROOM_LAYOUT => Some("ROOM_LAYOUT"),
2408            Self::SPACE_CONTAINER => Some("SPACE_CONTAINER"),
2409            Self::TRIANGLE_MESH_M => Some("TRIANGLE_MESH_M"),
2410            _ => None,
2411        };
2412        fmt_enum(fmt, self.0, name)
2413    }
2414}
2415#[doc = "See [XrWindingOrderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrWindingOrderFB)"]
2416#[repr(transparent)]
2417#[derive(Copy, Clone, Eq, PartialEq)]
2418pub struct WindingOrderFB(i32);
2419impl WindingOrderFB {
2420    #[doc = "Winding order is unknown and the runtime cannot make any assumptions on the triangle orientation"]
2421    pub const UNKNOWN: WindingOrderFB = Self(0i32);
2422    #[doc = "Clockwise winding order"]
2423    pub const CW: WindingOrderFB = Self(1i32);
2424    #[doc = "Counter-clockwise winding order"]
2425    pub const CCW: WindingOrderFB = Self(2i32);
2426    pub fn from_raw(x: i32) -> Self {
2427        Self(x)
2428    }
2429    pub fn into_raw(self) -> i32 {
2430        self.0
2431    }
2432}
2433impl fmt::Debug for WindingOrderFB {
2434    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2435        let name = match *self {
2436            Self::UNKNOWN => Some("UNKNOWN"),
2437            Self::CW => Some("CW"),
2438            Self::CCW => Some("CCW"),
2439            _ => None,
2440        };
2441        fmt_enum(fmt, self.0, name)
2442    }
2443}
2444#[doc = "See [XrPassthroughLayerPurposeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerPurposeFB)"]
2445#[repr(transparent)]
2446#[derive(Copy, Clone, Eq, PartialEq)]
2447pub struct PassthroughLayerPurposeFB(i32);
2448impl PassthroughLayerPurposeFB {
2449    #[doc = "Reconstruction passthrough (full screen environment)"]
2450    pub const RECONSTRUCTION: PassthroughLayerPurposeFB = Self(0i32);
2451    #[doc = "Projected passthrough (using a custom surface)"]
2452    pub const PROJECTED: PassthroughLayerPurposeFB = Self(1i32);
2453    #[doc = "Passthrough layer purpose for keyboard hands presence."]
2454    pub const TRACKED_KEYBOARD_HANDS: PassthroughLayerPurposeFB = Self(1000203001i32);
2455    #[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)."]
2456    pub const TRACKED_KEYBOARD_MASKED_HANDS: PassthroughLayerPurposeFB = Self(1000203002i32);
2457    pub fn from_raw(x: i32) -> Self {
2458        Self(x)
2459    }
2460    pub fn into_raw(self) -> i32 {
2461        self.0
2462    }
2463}
2464impl fmt::Debug for PassthroughLayerPurposeFB {
2465    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2466        let name = match *self {
2467            Self::RECONSTRUCTION => Some("RECONSTRUCTION"),
2468            Self::PROJECTED => Some("PROJECTED"),
2469            Self::TRACKED_KEYBOARD_HANDS => Some("TRACKED_KEYBOARD_HANDS"),
2470            Self::TRACKED_KEYBOARD_MASKED_HANDS => Some("TRACKED_KEYBOARD_MASKED_HANDS"),
2471            _ => None,
2472        };
2473        fmt_enum(fmt, self.0, name)
2474    }
2475}
2476#[doc = "See [XrSpaceQueryActionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryActionFB)"]
2477#[repr(transparent)]
2478#[derive(Copy, Clone, Eq, PartialEq)]
2479pub struct SpaceQueryActionFB(i32);
2480impl SpaceQueryActionFB {
2481    #[doc = "Tells the query to perform a load operation on any XrSpace returned by the query."]
2482    pub const LOAD: SpaceQueryActionFB = Self(0i32);
2483    pub fn from_raw(x: i32) -> Self {
2484        Self(x)
2485    }
2486    pub fn into_raw(self) -> i32 {
2487        self.0
2488    }
2489}
2490impl fmt::Debug for SpaceQueryActionFB {
2491    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2492        let name = match *self {
2493            Self::LOAD => Some("LOAD"),
2494            _ => None,
2495        };
2496        fmt_enum(fmt, self.0, name)
2497    }
2498}
2499#[doc = "See [XrSpaceStorageLocationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceStorageLocationFB)"]
2500#[repr(transparent)]
2501#[derive(Copy, Clone, Eq, PartialEq)]
2502pub struct SpaceStorageLocationFB(i32);
2503impl SpaceStorageLocationFB {
2504    #[doc = "Invalid storage location"]
2505    pub const INVALID: SpaceStorageLocationFB = Self(0i32);
2506    #[doc = "Local device storage"]
2507    pub const LOCAL: SpaceStorageLocationFB = Self(1i32);
2508    #[doc = "Cloud storage"]
2509    pub const CLOUD: SpaceStorageLocationFB = Self(2i32);
2510    pub fn from_raw(x: i32) -> Self {
2511        Self(x)
2512    }
2513    pub fn into_raw(self) -> i32 {
2514        self.0
2515    }
2516}
2517impl fmt::Debug for SpaceStorageLocationFB {
2518    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2519        let name = match *self {
2520            Self::INVALID => Some("INVALID"),
2521            Self::LOCAL => Some("LOCAL"),
2522            Self::CLOUD => Some("CLOUD"),
2523            _ => None,
2524        };
2525        fmt_enum(fmt, self.0, name)
2526    }
2527}
2528#[doc = "See [XrSpacePersistenceModeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpacePersistenceModeFB)"]
2529#[repr(transparent)]
2530#[derive(Copy, Clone, Eq, PartialEq)]
2531pub struct SpacePersistenceModeFB(i32);
2532impl SpacePersistenceModeFB {
2533    #[doc = "Invalid storage persistence"]
2534    pub const INVALID: SpacePersistenceModeFB = Self(0i32);
2535    #[doc = "Store XrSpace indefinitely, or until erased"]
2536    pub const INDEFINITE: SpacePersistenceModeFB = Self(1i32);
2537    pub fn from_raw(x: i32) -> Self {
2538        Self(x)
2539    }
2540    pub fn into_raw(self) -> i32 {
2541        self.0
2542    }
2543}
2544impl fmt::Debug for SpacePersistenceModeFB {
2545    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2546        let name = match *self {
2547            Self::INVALID => Some("INVALID"),
2548            Self::INDEFINITE => Some("INDEFINITE"),
2549            _ => None,
2550        };
2551        fmt_enum(fmt, self.0, name)
2552    }
2553}
2554#[doc = "See [XrExternalCameraAttachedToDeviceOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraAttachedToDeviceOCULUS)"]
2555#[repr(transparent)]
2556#[derive(Copy, Clone, Eq, PartialEq)]
2557pub struct ExternalCameraAttachedToDeviceOCULUS(i32);
2558impl ExternalCameraAttachedToDeviceOCULUS {
2559    #[doc = "External camera is at a fixed point in LOCAL space"]
2560    pub const NONE: ExternalCameraAttachedToDeviceOCULUS = Self(0i32);
2561    #[doc = "External camera is attached to the HMD"]
2562    pub const HMD: ExternalCameraAttachedToDeviceOCULUS = Self(1i32);
2563    #[doc = "External camera is attached to a left Touch controller"]
2564    pub const LTOUCH: ExternalCameraAttachedToDeviceOCULUS = Self(2i32);
2565    #[doc = "External camera is attached to a right Touch controller"]
2566    pub const RTOUCH: ExternalCameraAttachedToDeviceOCULUS = Self(3i32);
2567    pub fn from_raw(x: i32) -> Self {
2568        Self(x)
2569    }
2570    pub fn into_raw(self) -> i32 {
2571        self.0
2572    }
2573}
2574impl fmt::Debug for ExternalCameraAttachedToDeviceOCULUS {
2575    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2576        let name = match *self {
2577            Self::NONE => Some("NONE"),
2578            Self::HMD => Some("HMD"),
2579            Self::LTOUCH => Some("LTOUCH"),
2580            Self::RTOUCH => Some("RTOUCH"),
2581            _ => None,
2582        };
2583        fmt_enum(fmt, self.0, name)
2584    }
2585}
2586#[doc = "See [XrPassthroughColorLutChannelsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutChannelsMETA)"]
2587#[repr(transparent)]
2588#[derive(Copy, Clone, Eq, PartialEq)]
2589pub struct PassthroughColorLutChannelsMETA(i32);
2590impl PassthroughColorLutChannelsMETA {
2591    pub const RGB: PassthroughColorLutChannelsMETA = Self(1i32);
2592    pub const RGBA: PassthroughColorLutChannelsMETA = Self(2i32);
2593    pub fn from_raw(x: i32) -> Self {
2594        Self(x)
2595    }
2596    pub fn into_raw(self) -> i32 {
2597        self.0
2598    }
2599}
2600impl fmt::Debug for PassthroughColorLutChannelsMETA {
2601    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2602        let name = match *self {
2603            Self::RGB => Some("RGB"),
2604            Self::RGBA => Some("RGBA"),
2605            _ => None,
2606        };
2607        fmt_enum(fmt, self.0, name)
2608    }
2609}
2610#[doc = "See [XrPerformanceMetricsCounterUnitMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterUnitMETA)"]
2611#[repr(transparent)]
2612#[derive(Copy, Clone, Eq, PartialEq)]
2613pub struct PerformanceMetricsCounterUnitMETA(i32);
2614impl PerformanceMetricsCounterUnitMETA {
2615    #[doc = "the performance counter unit is generic (unspecified)."]
2616    pub const GENERIC: PerformanceMetricsCounterUnitMETA = Self(0i32);
2617    #[doc = "the performance counter unit is percentage (%)."]
2618    pub const PERCENTAGE: PerformanceMetricsCounterUnitMETA = Self(1i32);
2619    #[doc = "the performance counter unit is millisecond."]
2620    pub const MILLISECONDS: PerformanceMetricsCounterUnitMETA = Self(2i32);
2621    #[doc = "the performance counter unit is byte."]
2622    pub const BYTES: PerformanceMetricsCounterUnitMETA = Self(3i32);
2623    #[doc = "the performance counter unit is hertz (Hz)."]
2624    pub const HERTZ: PerformanceMetricsCounterUnitMETA = Self(4i32);
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 PerformanceMetricsCounterUnitMETA {
2633    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2634        let name = match *self {
2635            Self::GENERIC => Some("GENERIC"),
2636            Self::PERCENTAGE => Some("PERCENTAGE"),
2637            Self::MILLISECONDS => Some("MILLISECONDS"),
2638            Self::BYTES => Some("BYTES"),
2639            Self::HERTZ => Some("HERTZ"),
2640            _ => None,
2641        };
2642        fmt_enum(fmt, self.0, name)
2643    }
2644}
2645#[doc = "See [XrFacialTrackingTypeHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackingTypeHTC)"]
2646#[repr(transparent)]
2647#[derive(Copy, Clone, Eq, PartialEq)]
2648pub struct FacialTrackingTypeHTC(i32);
2649impl FacialTrackingTypeHTC {
2650    #[doc = "Specifies this handle will observe eye expressions, with values indexed by XrEyeExpressionHTC whose count is XR_FACIAL_EXPRESSION_EYE_COUNT_HTC."]
2651    pub const EYE_DEFAULT: FacialTrackingTypeHTC = Self(1i32);
2652    #[doc = "Specifies this handle will observe lip expressions, with values indexed by XrLipExpressionHTC whose count is XR_FACIAL_EXPRESSION_LIP_COUNT_HTC."]
2653    pub const LIP_DEFAULT: FacialTrackingTypeHTC = Self(2i32);
2654    pub fn from_raw(x: i32) -> Self {
2655        Self(x)
2656    }
2657    pub fn into_raw(self) -> i32 {
2658        self.0
2659    }
2660}
2661impl fmt::Debug for FacialTrackingTypeHTC {
2662    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2663        let name = match *self {
2664            Self::EYE_DEFAULT => Some("EYE_DEFAULT"),
2665            Self::LIP_DEFAULT => Some("LIP_DEFAULT"),
2666            _ => None,
2667        };
2668        fmt_enum(fmt, self.0, name)
2669    }
2670}
2671#[doc = "See [XrEyeExpressionHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeExpressionHTC)"]
2672#[repr(transparent)]
2673#[derive(Copy, Clone, Eq, PartialEq)]
2674pub struct EyeExpressionHTC(i32);
2675impl EyeExpressionHTC {
2676    pub const LEFT_BLINK: EyeExpressionHTC = Self(0i32);
2677    pub const LEFT_WIDE: EyeExpressionHTC = Self(1i32);
2678    pub const RIGHT_BLINK: EyeExpressionHTC = Self(2i32);
2679    pub const RIGHT_WIDE: EyeExpressionHTC = Self(3i32);
2680    pub const LEFT_SQUEEZE: EyeExpressionHTC = Self(4i32);
2681    pub const RIGHT_SQUEEZE: EyeExpressionHTC = Self(5i32);
2682    pub const LEFT_DOWN: EyeExpressionHTC = Self(6i32);
2683    pub const RIGHT_DOWN: EyeExpressionHTC = Self(7i32);
2684    pub const LEFT_OUT: EyeExpressionHTC = Self(8i32);
2685    pub const RIGHT_IN: EyeExpressionHTC = Self(9i32);
2686    pub const LEFT_IN: EyeExpressionHTC = Self(10i32);
2687    pub const RIGHT_OUT: EyeExpressionHTC = Self(11i32);
2688    pub const LEFT_UP: EyeExpressionHTC = Self(12i32);
2689    pub const RIGHT_UP: EyeExpressionHTC = Self(13i32);
2690    pub fn from_raw(x: i32) -> Self {
2691        Self(x)
2692    }
2693    pub fn into_raw(self) -> i32 {
2694        self.0
2695    }
2696}
2697impl fmt::Debug for EyeExpressionHTC {
2698    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2699        let name = match *self {
2700            Self::LEFT_BLINK => Some("LEFT_BLINK"),
2701            Self::LEFT_WIDE => Some("LEFT_WIDE"),
2702            Self::RIGHT_BLINK => Some("RIGHT_BLINK"),
2703            Self::RIGHT_WIDE => Some("RIGHT_WIDE"),
2704            Self::LEFT_SQUEEZE => Some("LEFT_SQUEEZE"),
2705            Self::RIGHT_SQUEEZE => Some("RIGHT_SQUEEZE"),
2706            Self::LEFT_DOWN => Some("LEFT_DOWN"),
2707            Self::RIGHT_DOWN => Some("RIGHT_DOWN"),
2708            Self::LEFT_OUT => Some("LEFT_OUT"),
2709            Self::RIGHT_IN => Some("RIGHT_IN"),
2710            Self::LEFT_IN => Some("LEFT_IN"),
2711            Self::RIGHT_OUT => Some("RIGHT_OUT"),
2712            Self::LEFT_UP => Some("LEFT_UP"),
2713            Self::RIGHT_UP => Some("RIGHT_UP"),
2714            _ => None,
2715        };
2716        fmt_enum(fmt, self.0, name)
2717    }
2718}
2719#[doc = "See [XrLipExpressionHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLipExpressionHTC)"]
2720#[repr(transparent)]
2721#[derive(Copy, Clone, Eq, PartialEq)]
2722pub struct LipExpressionHTC(i32);
2723impl LipExpressionHTC {
2724    pub const JAW_RIGHT: LipExpressionHTC = Self(0i32);
2725    pub const JAW_LEFT: LipExpressionHTC = Self(1i32);
2726    pub const JAW_FORWARD: LipExpressionHTC = Self(2i32);
2727    pub const JAW_OPEN: LipExpressionHTC = Self(3i32);
2728    pub const MOUTH_APE_SHAPE: LipExpressionHTC = Self(4i32);
2729    pub const MOUTH_UPPER_RIGHT: LipExpressionHTC = Self(5i32);
2730    pub const MOUTH_UPPER_LEFT: LipExpressionHTC = Self(6i32);
2731    pub const MOUTH_LOWER_RIGHT: LipExpressionHTC = Self(7i32);
2732    pub const MOUTH_LOWER_LEFT: LipExpressionHTC = Self(8i32);
2733    pub const MOUTH_UPPER_OVERTURN: LipExpressionHTC = Self(9i32);
2734    pub const MOUTH_LOWER_OVERTURN: LipExpressionHTC = Self(10i32);
2735    pub const MOUTH_POUT: LipExpressionHTC = Self(11i32);
2736    pub const MOUTH_SMILE_RIGHT: LipExpressionHTC = Self(12i32);
2737    pub const MOUTH_SMILE_LEFT: LipExpressionHTC = Self(13i32);
2738    pub const MOUTH_SAD_RIGHT: LipExpressionHTC = Self(14i32);
2739    pub const MOUTH_SAD_LEFT: LipExpressionHTC = Self(15i32);
2740    pub const CHEEK_PUFF_RIGHT: LipExpressionHTC = Self(16i32);
2741    pub const CHEEK_PUFF_LEFT: LipExpressionHTC = Self(17i32);
2742    pub const CHEEK_SUCK: LipExpressionHTC = Self(18i32);
2743    pub const MOUTH_UPPER_UPRIGHT: LipExpressionHTC = Self(19i32);
2744    pub const MOUTH_UPPER_UPLEFT: LipExpressionHTC = Self(20i32);
2745    pub const MOUTH_LOWER_DOWNRIGHT: LipExpressionHTC = Self(21i32);
2746    pub const MOUTH_LOWER_DOWNLEFT: LipExpressionHTC = Self(22i32);
2747    pub const MOUTH_UPPER_INSIDE: LipExpressionHTC = Self(23i32);
2748    pub const MOUTH_LOWER_INSIDE: LipExpressionHTC = Self(24i32);
2749    pub const MOUTH_LOWER_OVERLAY: LipExpressionHTC = Self(25i32);
2750    pub const TONGUE_LONGSTEP1: LipExpressionHTC = Self(26i32);
2751    pub const TONGUE_LEFT: LipExpressionHTC = Self(27i32);
2752    pub const TONGUE_RIGHT: LipExpressionHTC = Self(28i32);
2753    pub const TONGUE_UP: LipExpressionHTC = Self(29i32);
2754    pub const TONGUE_DOWN: LipExpressionHTC = Self(30i32);
2755    pub const TONGUE_ROLL: LipExpressionHTC = Self(31i32);
2756    pub const TONGUE_LONGSTEP2: LipExpressionHTC = Self(32i32);
2757    pub const TONGUE_UPRIGHT_MORPH: LipExpressionHTC = Self(33i32);
2758    pub const TONGUE_UPLEFT_MORPH: LipExpressionHTC = Self(34i32);
2759    pub const TONGUE_DOWNRIGHT_MORPH: LipExpressionHTC = Self(35i32);
2760    pub const TONGUE_DOWNLEFT_MORPH: LipExpressionHTC = Self(36i32);
2761    pub fn from_raw(x: i32) -> Self {
2762        Self(x)
2763    }
2764    pub fn into_raw(self) -> i32 {
2765        self.0
2766    }
2767}
2768impl fmt::Debug for LipExpressionHTC {
2769    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2770        let name = match *self {
2771            Self::JAW_RIGHT => Some("JAW_RIGHT"),
2772            Self::JAW_LEFT => Some("JAW_LEFT"),
2773            Self::JAW_FORWARD => Some("JAW_FORWARD"),
2774            Self::JAW_OPEN => Some("JAW_OPEN"),
2775            Self::MOUTH_APE_SHAPE => Some("MOUTH_APE_SHAPE"),
2776            Self::MOUTH_UPPER_RIGHT => Some("MOUTH_UPPER_RIGHT"),
2777            Self::MOUTH_UPPER_LEFT => Some("MOUTH_UPPER_LEFT"),
2778            Self::MOUTH_LOWER_RIGHT => Some("MOUTH_LOWER_RIGHT"),
2779            Self::MOUTH_LOWER_LEFT => Some("MOUTH_LOWER_LEFT"),
2780            Self::MOUTH_UPPER_OVERTURN => Some("MOUTH_UPPER_OVERTURN"),
2781            Self::MOUTH_LOWER_OVERTURN => Some("MOUTH_LOWER_OVERTURN"),
2782            Self::MOUTH_POUT => Some("MOUTH_POUT"),
2783            Self::MOUTH_SMILE_RIGHT => Some("MOUTH_SMILE_RIGHT"),
2784            Self::MOUTH_SMILE_LEFT => Some("MOUTH_SMILE_LEFT"),
2785            Self::MOUTH_SAD_RIGHT => Some("MOUTH_SAD_RIGHT"),
2786            Self::MOUTH_SAD_LEFT => Some("MOUTH_SAD_LEFT"),
2787            Self::CHEEK_PUFF_RIGHT => Some("CHEEK_PUFF_RIGHT"),
2788            Self::CHEEK_PUFF_LEFT => Some("CHEEK_PUFF_LEFT"),
2789            Self::CHEEK_SUCK => Some("CHEEK_SUCK"),
2790            Self::MOUTH_UPPER_UPRIGHT => Some("MOUTH_UPPER_UPRIGHT"),
2791            Self::MOUTH_UPPER_UPLEFT => Some("MOUTH_UPPER_UPLEFT"),
2792            Self::MOUTH_LOWER_DOWNRIGHT => Some("MOUTH_LOWER_DOWNRIGHT"),
2793            Self::MOUTH_LOWER_DOWNLEFT => Some("MOUTH_LOWER_DOWNLEFT"),
2794            Self::MOUTH_UPPER_INSIDE => Some("MOUTH_UPPER_INSIDE"),
2795            Self::MOUTH_LOWER_INSIDE => Some("MOUTH_LOWER_INSIDE"),
2796            Self::MOUTH_LOWER_OVERLAY => Some("MOUTH_LOWER_OVERLAY"),
2797            Self::TONGUE_LONGSTEP1 => Some("TONGUE_LONGSTEP1"),
2798            Self::TONGUE_LEFT => Some("TONGUE_LEFT"),
2799            Self::TONGUE_RIGHT => Some("TONGUE_RIGHT"),
2800            Self::TONGUE_UP => Some("TONGUE_UP"),
2801            Self::TONGUE_DOWN => Some("TONGUE_DOWN"),
2802            Self::TONGUE_ROLL => Some("TONGUE_ROLL"),
2803            Self::TONGUE_LONGSTEP2 => Some("TONGUE_LONGSTEP2"),
2804            Self::TONGUE_UPRIGHT_MORPH => Some("TONGUE_UPRIGHT_MORPH"),
2805            Self::TONGUE_UPLEFT_MORPH => Some("TONGUE_UPLEFT_MORPH"),
2806            Self::TONGUE_DOWNRIGHT_MORPH => Some("TONGUE_DOWNRIGHT_MORPH"),
2807            Self::TONGUE_DOWNLEFT_MORPH => Some("TONGUE_DOWNLEFT_MORPH"),
2808            _ => None,
2809        };
2810        fmt_enum(fmt, self.0, name)
2811    }
2812}
2813#[doc = "See [XrPassthroughFormHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFormHTC)"]
2814#[repr(transparent)]
2815#[derive(Copy, Clone, Eq, PartialEq)]
2816pub struct PassthroughFormHTC(i32);
2817impl PassthroughFormHTC {
2818    #[doc = "Presents the passthrough with full of the entire screen."]
2819    pub const PLANAR: PassthroughFormHTC = Self(0i32);
2820    #[doc = "Presents the passthrough projecting onto a custom mesh."]
2821    pub const PROJECTED: PassthroughFormHTC = Self(1i32);
2822    pub fn from_raw(x: i32) -> Self {
2823        Self(x)
2824    }
2825    pub fn into_raw(self) -> i32 {
2826        self.0
2827    }
2828}
2829impl fmt::Debug for PassthroughFormHTC {
2830    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2831        let name = match *self {
2832            Self::PLANAR => Some("PLANAR"),
2833            Self::PROJECTED => Some("PROJECTED"),
2834            _ => None,
2835        };
2836        fmt_enum(fmt, self.0, name)
2837    }
2838}
2839#[doc = "See [XrFoveationModeHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationModeHTC)"]
2840#[repr(transparent)]
2841#[derive(Copy, Clone, Eq, PartialEq)]
2842pub struct FoveationModeHTC(i32);
2843impl FoveationModeHTC {
2844    #[doc = "No foveation"]
2845    pub const DISABLE: FoveationModeHTC = Self(0i32);
2846    #[doc = "Apply system default setting with fixed clear FOV and periphery quality."]
2847    pub const FIXED: FoveationModeHTC = Self(1i32);
2848    #[doc = "Allow system to set foveation dynamically according realtime system metric or other extensions."]
2849    pub const DYNAMIC: FoveationModeHTC = Self(2i32);
2850    #[doc = "Allow application to set foveation with desired clear FOV, periphery quality, and focal center offset."]
2851    pub const CUSTOM: FoveationModeHTC = Self(3i32);
2852    pub fn from_raw(x: i32) -> Self {
2853        Self(x)
2854    }
2855    pub fn into_raw(self) -> i32 {
2856        self.0
2857    }
2858}
2859impl fmt::Debug for FoveationModeHTC {
2860    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2861        let name = match *self {
2862            Self::DISABLE => Some("DISABLE"),
2863            Self::FIXED => Some("FIXED"),
2864            Self::DYNAMIC => Some("DYNAMIC"),
2865            Self::CUSTOM => Some("CUSTOM"),
2866            _ => None,
2867        };
2868        fmt_enum(fmt, self.0, name)
2869    }
2870}
2871#[doc = "See [XrFoveationLevelHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelHTC)"]
2872#[repr(transparent)]
2873#[derive(Copy, Clone, Eq, PartialEq)]
2874pub struct FoveationLevelHTC(i32);
2875impl FoveationLevelHTC {
2876    #[doc = "No foveation"]
2877    pub const NONE: FoveationLevelHTC = Self(0i32);
2878    #[doc = "Light periphery pixel density drop and lower performance gain."]
2879    pub const LOW: FoveationLevelHTC = Self(1i32);
2880    #[doc = "Medium periphery pixel density drop and medium performance gain"]
2881    pub const MEDIUM: FoveationLevelHTC = Self(2i32);
2882    #[doc = "Heavy periphery pixel density drop and higher performance gain"]
2883    pub const HIGH: FoveationLevelHTC = Self(3i32);
2884    pub fn from_raw(x: i32) -> Self {
2885        Self(x)
2886    }
2887    pub fn into_raw(self) -> i32 {
2888        self.0
2889    }
2890}
2891impl fmt::Debug for FoveationLevelHTC {
2892    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2893        let name = match *self {
2894            Self::NONE => Some("NONE"),
2895            Self::LOW => Some("LOW"),
2896            Self::MEDIUM => Some("MEDIUM"),
2897            Self::HIGH => Some("HIGH"),
2898            _ => None,
2899        };
2900        fmt_enum(fmt, self.0, name)
2901    }
2902}
2903#[doc = "See [XrLocalDimmingModeMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalDimmingModeMETA)"]
2904#[repr(transparent)]
2905#[derive(Copy, Clone, Eq, PartialEq)]
2906pub struct LocalDimmingModeMETA(i32);
2907impl LocalDimmingModeMETA {
2908    #[doc = "Local dimming is turned off by default for the current submitted frame. This is the same as not chaining XrLocalDimmingModeMETA."]
2909    pub const OFF: LocalDimmingModeMETA = Self(0i32);
2910    #[doc = "Local dimming is turned on for the current submitted frame."]
2911    pub const ON: LocalDimmingModeMETA = Self(1i32);
2912    pub fn from_raw(x: i32) -> Self {
2913        Self(x)
2914    }
2915    pub fn into_raw(self) -> i32 {
2916        self.0
2917    }
2918}
2919impl fmt::Debug for LocalDimmingModeMETA {
2920    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2921        let name = match *self {
2922            Self::OFF => Some("OFF"),
2923            Self::ON => Some("ON"),
2924            _ => None,
2925        };
2926        fmt_enum(fmt, self.0, name)
2927    }
2928}
2929#[doc = "See [XrFaceExpressionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionFB)"]
2930#[repr(transparent)]
2931#[derive(Copy, Clone, Eq, PartialEq)]
2932pub struct FaceExpressionFB(i32);
2933impl FaceExpressionFB {
2934    pub const BROW_LOWERER_L: FaceExpressionFB = Self(0i32);
2935    pub const BROW_LOWERER_R: FaceExpressionFB = Self(1i32);
2936    pub const CHEEK_PUFF_L: FaceExpressionFB = Self(2i32);
2937    pub const CHEEK_PUFF_R: FaceExpressionFB = Self(3i32);
2938    pub const CHEEK_RAISER_L: FaceExpressionFB = Self(4i32);
2939    pub const CHEEK_RAISER_R: FaceExpressionFB = Self(5i32);
2940    pub const CHEEK_SUCK_L: FaceExpressionFB = Self(6i32);
2941    pub const CHEEK_SUCK_R: FaceExpressionFB = Self(7i32);
2942    pub const CHIN_RAISER_B: FaceExpressionFB = Self(8i32);
2943    pub const CHIN_RAISER_T: FaceExpressionFB = Self(9i32);
2944    pub const DIMPLER_L: FaceExpressionFB = Self(10i32);
2945    pub const DIMPLER_R: FaceExpressionFB = Self(11i32);
2946    pub const EYES_CLOSED_L: FaceExpressionFB = Self(12i32);
2947    pub const EYES_CLOSED_R: FaceExpressionFB = Self(13i32);
2948    pub const EYES_LOOK_DOWN_L: FaceExpressionFB = Self(14i32);
2949    pub const EYES_LOOK_DOWN_R: FaceExpressionFB = Self(15i32);
2950    pub const EYES_LOOK_LEFT_L: FaceExpressionFB = Self(16i32);
2951    pub const EYES_LOOK_LEFT_R: FaceExpressionFB = Self(17i32);
2952    pub const EYES_LOOK_RIGHT_L: FaceExpressionFB = Self(18i32);
2953    pub const EYES_LOOK_RIGHT_R: FaceExpressionFB = Self(19i32);
2954    pub const EYES_LOOK_UP_L: FaceExpressionFB = Self(20i32);
2955    pub const EYES_LOOK_UP_R: FaceExpressionFB = Self(21i32);
2956    pub const INNER_BROW_RAISER_L: FaceExpressionFB = Self(22i32);
2957    pub const INNER_BROW_RAISER_R: FaceExpressionFB = Self(23i32);
2958    pub const JAW_DROP: FaceExpressionFB = Self(24i32);
2959    pub const JAW_SIDEWAYS_LEFT: FaceExpressionFB = Self(25i32);
2960    pub const JAW_SIDEWAYS_RIGHT: FaceExpressionFB = Self(26i32);
2961    pub const JAW_THRUST: FaceExpressionFB = Self(27i32);
2962    pub const LID_TIGHTENER_L: FaceExpressionFB = Self(28i32);
2963    pub const LID_TIGHTENER_R: FaceExpressionFB = Self(29i32);
2964    pub const LIP_CORNER_DEPRESSOR_L: FaceExpressionFB = Self(30i32);
2965    pub const LIP_CORNER_DEPRESSOR_R: FaceExpressionFB = Self(31i32);
2966    pub const LIP_CORNER_PULLER_L: FaceExpressionFB = Self(32i32);
2967    pub const LIP_CORNER_PULLER_R: FaceExpressionFB = Self(33i32);
2968    pub const LIP_FUNNELER_LB: FaceExpressionFB = Self(34i32);
2969    pub const LIP_FUNNELER_LT: FaceExpressionFB = Self(35i32);
2970    pub const LIP_FUNNELER_RB: FaceExpressionFB = Self(36i32);
2971    pub const LIP_FUNNELER_RT: FaceExpressionFB = Self(37i32);
2972    pub const LIP_PRESSOR_L: FaceExpressionFB = Self(38i32);
2973    pub const LIP_PRESSOR_R: FaceExpressionFB = Self(39i32);
2974    pub const LIP_PUCKER_L: FaceExpressionFB = Self(40i32);
2975    pub const LIP_PUCKER_R: FaceExpressionFB = Self(41i32);
2976    pub const LIP_STRETCHER_L: FaceExpressionFB = Self(42i32);
2977    pub const LIP_STRETCHER_R: FaceExpressionFB = Self(43i32);
2978    pub const LIP_SUCK_LB: FaceExpressionFB = Self(44i32);
2979    pub const LIP_SUCK_LT: FaceExpressionFB = Self(45i32);
2980    pub const LIP_SUCK_RB: FaceExpressionFB = Self(46i32);
2981    pub const LIP_SUCK_RT: FaceExpressionFB = Self(47i32);
2982    pub const LIP_TIGHTENER_L: FaceExpressionFB = Self(48i32);
2983    pub const LIP_TIGHTENER_R: FaceExpressionFB = Self(49i32);
2984    pub const LIPS_TOWARD: FaceExpressionFB = Self(50i32);
2985    pub const LOWER_LIP_DEPRESSOR_L: FaceExpressionFB = Self(51i32);
2986    pub const LOWER_LIP_DEPRESSOR_R: FaceExpressionFB = Self(52i32);
2987    pub const MOUTH_LEFT: FaceExpressionFB = Self(53i32);
2988    pub const MOUTH_RIGHT: FaceExpressionFB = Self(54i32);
2989    pub const NOSE_WRINKLER_L: FaceExpressionFB = Self(55i32);
2990    pub const NOSE_WRINKLER_R: FaceExpressionFB = Self(56i32);
2991    pub const OUTER_BROW_RAISER_L: FaceExpressionFB = Self(57i32);
2992    pub const OUTER_BROW_RAISER_R: FaceExpressionFB = Self(58i32);
2993    pub const UPPER_LID_RAISER_L: FaceExpressionFB = Self(59i32);
2994    pub const UPPER_LID_RAISER_R: FaceExpressionFB = Self(60i32);
2995    pub const UPPER_LIP_RAISER_L: FaceExpressionFB = Self(61i32);
2996    pub const UPPER_LIP_RAISER_R: FaceExpressionFB = Self(62i32);
2997    pub const COUNT: FaceExpressionFB = Self(63i32);
2998    pub fn from_raw(x: i32) -> Self {
2999        Self(x)
3000    }
3001    pub fn into_raw(self) -> i32 {
3002        self.0
3003    }
3004}
3005impl fmt::Debug for FaceExpressionFB {
3006    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3007        let name = match *self {
3008            Self::BROW_LOWERER_L => Some("BROW_LOWERER_L"),
3009            Self::BROW_LOWERER_R => Some("BROW_LOWERER_R"),
3010            Self::CHEEK_PUFF_L => Some("CHEEK_PUFF_L"),
3011            Self::CHEEK_PUFF_R => Some("CHEEK_PUFF_R"),
3012            Self::CHEEK_RAISER_L => Some("CHEEK_RAISER_L"),
3013            Self::CHEEK_RAISER_R => Some("CHEEK_RAISER_R"),
3014            Self::CHEEK_SUCK_L => Some("CHEEK_SUCK_L"),
3015            Self::CHEEK_SUCK_R => Some("CHEEK_SUCK_R"),
3016            Self::CHIN_RAISER_B => Some("CHIN_RAISER_B"),
3017            Self::CHIN_RAISER_T => Some("CHIN_RAISER_T"),
3018            Self::DIMPLER_L => Some("DIMPLER_L"),
3019            Self::DIMPLER_R => Some("DIMPLER_R"),
3020            Self::EYES_CLOSED_L => Some("EYES_CLOSED_L"),
3021            Self::EYES_CLOSED_R => Some("EYES_CLOSED_R"),
3022            Self::EYES_LOOK_DOWN_L => Some("EYES_LOOK_DOWN_L"),
3023            Self::EYES_LOOK_DOWN_R => Some("EYES_LOOK_DOWN_R"),
3024            Self::EYES_LOOK_LEFT_L => Some("EYES_LOOK_LEFT_L"),
3025            Self::EYES_LOOK_LEFT_R => Some("EYES_LOOK_LEFT_R"),
3026            Self::EYES_LOOK_RIGHT_L => Some("EYES_LOOK_RIGHT_L"),
3027            Self::EYES_LOOK_RIGHT_R => Some("EYES_LOOK_RIGHT_R"),
3028            Self::EYES_LOOK_UP_L => Some("EYES_LOOK_UP_L"),
3029            Self::EYES_LOOK_UP_R => Some("EYES_LOOK_UP_R"),
3030            Self::INNER_BROW_RAISER_L => Some("INNER_BROW_RAISER_L"),
3031            Self::INNER_BROW_RAISER_R => Some("INNER_BROW_RAISER_R"),
3032            Self::JAW_DROP => Some("JAW_DROP"),
3033            Self::JAW_SIDEWAYS_LEFT => Some("JAW_SIDEWAYS_LEFT"),
3034            Self::JAW_SIDEWAYS_RIGHT => Some("JAW_SIDEWAYS_RIGHT"),
3035            Self::JAW_THRUST => Some("JAW_THRUST"),
3036            Self::LID_TIGHTENER_L => Some("LID_TIGHTENER_L"),
3037            Self::LID_TIGHTENER_R => Some("LID_TIGHTENER_R"),
3038            Self::LIP_CORNER_DEPRESSOR_L => Some("LIP_CORNER_DEPRESSOR_L"),
3039            Self::LIP_CORNER_DEPRESSOR_R => Some("LIP_CORNER_DEPRESSOR_R"),
3040            Self::LIP_CORNER_PULLER_L => Some("LIP_CORNER_PULLER_L"),
3041            Self::LIP_CORNER_PULLER_R => Some("LIP_CORNER_PULLER_R"),
3042            Self::LIP_FUNNELER_LB => Some("LIP_FUNNELER_LB"),
3043            Self::LIP_FUNNELER_LT => Some("LIP_FUNNELER_LT"),
3044            Self::LIP_FUNNELER_RB => Some("LIP_FUNNELER_RB"),
3045            Self::LIP_FUNNELER_RT => Some("LIP_FUNNELER_RT"),
3046            Self::LIP_PRESSOR_L => Some("LIP_PRESSOR_L"),
3047            Self::LIP_PRESSOR_R => Some("LIP_PRESSOR_R"),
3048            Self::LIP_PUCKER_L => Some("LIP_PUCKER_L"),
3049            Self::LIP_PUCKER_R => Some("LIP_PUCKER_R"),
3050            Self::LIP_STRETCHER_L => Some("LIP_STRETCHER_L"),
3051            Self::LIP_STRETCHER_R => Some("LIP_STRETCHER_R"),
3052            Self::LIP_SUCK_LB => Some("LIP_SUCK_LB"),
3053            Self::LIP_SUCK_LT => Some("LIP_SUCK_LT"),
3054            Self::LIP_SUCK_RB => Some("LIP_SUCK_RB"),
3055            Self::LIP_SUCK_RT => Some("LIP_SUCK_RT"),
3056            Self::LIP_TIGHTENER_L => Some("LIP_TIGHTENER_L"),
3057            Self::LIP_TIGHTENER_R => Some("LIP_TIGHTENER_R"),
3058            Self::LIPS_TOWARD => Some("LIPS_TOWARD"),
3059            Self::LOWER_LIP_DEPRESSOR_L => Some("LOWER_LIP_DEPRESSOR_L"),
3060            Self::LOWER_LIP_DEPRESSOR_R => Some("LOWER_LIP_DEPRESSOR_R"),
3061            Self::MOUTH_LEFT => Some("MOUTH_LEFT"),
3062            Self::MOUTH_RIGHT => Some("MOUTH_RIGHT"),
3063            Self::NOSE_WRINKLER_L => Some("NOSE_WRINKLER_L"),
3064            Self::NOSE_WRINKLER_R => Some("NOSE_WRINKLER_R"),
3065            Self::OUTER_BROW_RAISER_L => Some("OUTER_BROW_RAISER_L"),
3066            Self::OUTER_BROW_RAISER_R => Some("OUTER_BROW_RAISER_R"),
3067            Self::UPPER_LID_RAISER_L => Some("UPPER_LID_RAISER_L"),
3068            Self::UPPER_LID_RAISER_R => Some("UPPER_LID_RAISER_R"),
3069            Self::UPPER_LIP_RAISER_L => Some("UPPER_LIP_RAISER_L"),
3070            Self::UPPER_LIP_RAISER_R => Some("UPPER_LIP_RAISER_R"),
3071            Self::COUNT => Some("COUNT"),
3072            _ => None,
3073        };
3074        fmt_enum(fmt, self.0, name)
3075    }
3076}
3077#[doc = "See [XrFaceExpressionSetFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionSetFB)"]
3078#[repr(transparent)]
3079#[derive(Copy, Clone, Eq, PartialEq)]
3080pub struct FaceExpressionSetFB(i32);
3081impl FaceExpressionSetFB {
3082    #[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."]
3083    pub const DEFAULT: FaceExpressionSetFB = Self(0i32);
3084    pub fn from_raw(x: i32) -> Self {
3085        Self(x)
3086    }
3087    pub fn into_raw(self) -> i32 {
3088        self.0
3089    }
3090}
3091impl fmt::Debug for FaceExpressionSetFB {
3092    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3093        let name = match *self {
3094            Self::DEFAULT => Some("DEFAULT"),
3095            _ => None,
3096        };
3097        fmt_enum(fmt, self.0, name)
3098    }
3099}
3100#[doc = "See [XrFaceConfidenceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceConfidenceFB)"]
3101#[repr(transparent)]
3102#[derive(Copy, Clone, Eq, PartialEq)]
3103pub struct FaceConfidenceFB(i32);
3104impl FaceConfidenceFB {
3105    pub const LOWER_FACE: FaceConfidenceFB = Self(0i32);
3106    pub const UPPER_FACE: FaceConfidenceFB = Self(1i32);
3107    pub const COUNT: FaceConfidenceFB = Self(2i32);
3108    pub fn from_raw(x: i32) -> Self {
3109        Self(x)
3110    }
3111    pub fn into_raw(self) -> i32 {
3112        self.0
3113    }
3114}
3115impl fmt::Debug for FaceConfidenceFB {
3116    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3117        let name = match *self {
3118            Self::LOWER_FACE => Some("LOWER_FACE"),
3119            Self::UPPER_FACE => Some("UPPER_FACE"),
3120            Self::COUNT => Some("COUNT"),
3121            _ => None,
3122        };
3123        fmt_enum(fmt, self.0, name)
3124    }
3125}
3126#[doc = "See [XrFaceExpression2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpression2FB)"]
3127#[repr(transparent)]
3128#[derive(Copy, Clone, Eq, PartialEq)]
3129pub struct FaceExpression2FB(i32);
3130impl FaceExpression2FB {
3131    pub const BROW_LOWERER_L: FaceExpression2FB = Self(0i32);
3132    pub const BROW_LOWERER_R: FaceExpression2FB = Self(1i32);
3133    pub const CHEEK_PUFF_L: FaceExpression2FB = Self(2i32);
3134    pub const CHEEK_PUFF_R: FaceExpression2FB = Self(3i32);
3135    pub const CHEEK_RAISER_L: FaceExpression2FB = Self(4i32);
3136    pub const CHEEK_RAISER_R: FaceExpression2FB = Self(5i32);
3137    pub const CHEEK_SUCK_L: FaceExpression2FB = Self(6i32);
3138    pub const CHEEK_SUCK_R: FaceExpression2FB = Self(7i32);
3139    pub const CHIN_RAISER_B: FaceExpression2FB = Self(8i32);
3140    pub const CHIN_RAISER_T: FaceExpression2FB = Self(9i32);
3141    pub const DIMPLER_L: FaceExpression2FB = Self(10i32);
3142    pub const DIMPLER_R: FaceExpression2FB = Self(11i32);
3143    pub const EYES_CLOSED_L: FaceExpression2FB = Self(12i32);
3144    pub const EYES_CLOSED_R: FaceExpression2FB = Self(13i32);
3145    pub const EYES_LOOK_DOWN_L: FaceExpression2FB = Self(14i32);
3146    pub const EYES_LOOK_DOWN_R: FaceExpression2FB = Self(15i32);
3147    pub const EYES_LOOK_LEFT_L: FaceExpression2FB = Self(16i32);
3148    pub const EYES_LOOK_LEFT_R: FaceExpression2FB = Self(17i32);
3149    pub const EYES_LOOK_RIGHT_L: FaceExpression2FB = Self(18i32);
3150    pub const EYES_LOOK_RIGHT_R: FaceExpression2FB = Self(19i32);
3151    pub const EYES_LOOK_UP_L: FaceExpression2FB = Self(20i32);
3152    pub const EYES_LOOK_UP_R: FaceExpression2FB = Self(21i32);
3153    pub const INNER_BROW_RAISER_L: FaceExpression2FB = Self(22i32);
3154    pub const INNER_BROW_RAISER_R: FaceExpression2FB = Self(23i32);
3155    pub const JAW_DROP: FaceExpression2FB = Self(24i32);
3156    pub const JAW_SIDEWAYS_LEFT: FaceExpression2FB = Self(25i32);
3157    pub const JAW_SIDEWAYS_RIGHT: FaceExpression2FB = Self(26i32);
3158    pub const JAW_THRUST: FaceExpression2FB = Self(27i32);
3159    pub const LID_TIGHTENER_L: FaceExpression2FB = Self(28i32);
3160    pub const LID_TIGHTENER_R: FaceExpression2FB = Self(29i32);
3161    pub const LIP_CORNER_DEPRESSOR_L: FaceExpression2FB = Self(30i32);
3162    pub const LIP_CORNER_DEPRESSOR_R: FaceExpression2FB = Self(31i32);
3163    pub const LIP_CORNER_PULLER_L: FaceExpression2FB = Self(32i32);
3164    pub const LIP_CORNER_PULLER_R: FaceExpression2FB = Self(33i32);
3165    pub const LIP_FUNNELER_LB: FaceExpression2FB = Self(34i32);
3166    pub const LIP_FUNNELER_LT: FaceExpression2FB = Self(35i32);
3167    pub const LIP_FUNNELER_RB: FaceExpression2FB = Self(36i32);
3168    pub const LIP_FUNNELER_RT: FaceExpression2FB = Self(37i32);
3169    pub const LIP_PRESSOR_L: FaceExpression2FB = Self(38i32);
3170    pub const LIP_PRESSOR_R: FaceExpression2FB = Self(39i32);
3171    pub const LIP_PUCKER_L: FaceExpression2FB = Self(40i32);
3172    pub const LIP_PUCKER_R: FaceExpression2FB = Self(41i32);
3173    pub const LIP_STRETCHER_L: FaceExpression2FB = Self(42i32);
3174    pub const LIP_STRETCHER_R: FaceExpression2FB = Self(43i32);
3175    pub const LIP_SUCK_LB: FaceExpression2FB = Self(44i32);
3176    pub const LIP_SUCK_LT: FaceExpression2FB = Self(45i32);
3177    pub const LIP_SUCK_RB: FaceExpression2FB = Self(46i32);
3178    pub const LIP_SUCK_RT: FaceExpression2FB = Self(47i32);
3179    pub const LIP_TIGHTENER_L: FaceExpression2FB = Self(48i32);
3180    pub const LIP_TIGHTENER_R: FaceExpression2FB = Self(49i32);
3181    pub const LIPS_TOWARD: FaceExpression2FB = Self(50i32);
3182    pub const LOWER_LIP_DEPRESSOR_L: FaceExpression2FB = Self(51i32);
3183    pub const LOWER_LIP_DEPRESSOR_R: FaceExpression2FB = Self(52i32);
3184    pub const MOUTH_LEFT: FaceExpression2FB = Self(53i32);
3185    pub const MOUTH_RIGHT: FaceExpression2FB = Self(54i32);
3186    pub const NOSE_WRINKLER_L: FaceExpression2FB = Self(55i32);
3187    pub const NOSE_WRINKLER_R: FaceExpression2FB = Self(56i32);
3188    pub const OUTER_BROW_RAISER_L: FaceExpression2FB = Self(57i32);
3189    pub const OUTER_BROW_RAISER_R: FaceExpression2FB = Self(58i32);
3190    pub const UPPER_LID_RAISER_L: FaceExpression2FB = Self(59i32);
3191    pub const UPPER_LID_RAISER_R: FaceExpression2FB = Self(60i32);
3192    pub const UPPER_LIP_RAISER_L: FaceExpression2FB = Self(61i32);
3193    pub const UPPER_LIP_RAISER_R: FaceExpression2FB = Self(62i32);
3194    pub const TONGUE_TIP_INTERDENTAL: FaceExpression2FB = Self(63i32);
3195    pub const TONGUE_TIP_ALVEOLAR: FaceExpression2FB = Self(64i32);
3196    pub const TONGUE_FRONT_DORSAL_PALATE: FaceExpression2FB = Self(65i32);
3197    pub const TONGUE_MID_DORSAL_PALATE: FaceExpression2FB = Self(66i32);
3198    pub const TONGUE_BACK_DORSAL_VELAR: FaceExpression2FB = Self(67i32);
3199    pub const TONGUE_OUT: FaceExpression2FB = Self(68i32);
3200    pub const TONGUE_RETREAT: FaceExpression2FB = Self(69i32);
3201    pub const COUNT: FaceExpression2FB = Self(70i32);
3202    pub fn from_raw(x: i32) -> Self {
3203        Self(x)
3204    }
3205    pub fn into_raw(self) -> i32 {
3206        self.0
3207    }
3208}
3209impl fmt::Debug for FaceExpression2FB {
3210    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3211        let name = match *self {
3212            Self::BROW_LOWERER_L => Some("BROW_LOWERER_L"),
3213            Self::BROW_LOWERER_R => Some("BROW_LOWERER_R"),
3214            Self::CHEEK_PUFF_L => Some("CHEEK_PUFF_L"),
3215            Self::CHEEK_PUFF_R => Some("CHEEK_PUFF_R"),
3216            Self::CHEEK_RAISER_L => Some("CHEEK_RAISER_L"),
3217            Self::CHEEK_RAISER_R => Some("CHEEK_RAISER_R"),
3218            Self::CHEEK_SUCK_L => Some("CHEEK_SUCK_L"),
3219            Self::CHEEK_SUCK_R => Some("CHEEK_SUCK_R"),
3220            Self::CHIN_RAISER_B => Some("CHIN_RAISER_B"),
3221            Self::CHIN_RAISER_T => Some("CHIN_RAISER_T"),
3222            Self::DIMPLER_L => Some("DIMPLER_L"),
3223            Self::DIMPLER_R => Some("DIMPLER_R"),
3224            Self::EYES_CLOSED_L => Some("EYES_CLOSED_L"),
3225            Self::EYES_CLOSED_R => Some("EYES_CLOSED_R"),
3226            Self::EYES_LOOK_DOWN_L => Some("EYES_LOOK_DOWN_L"),
3227            Self::EYES_LOOK_DOWN_R => Some("EYES_LOOK_DOWN_R"),
3228            Self::EYES_LOOK_LEFT_L => Some("EYES_LOOK_LEFT_L"),
3229            Self::EYES_LOOK_LEFT_R => Some("EYES_LOOK_LEFT_R"),
3230            Self::EYES_LOOK_RIGHT_L => Some("EYES_LOOK_RIGHT_L"),
3231            Self::EYES_LOOK_RIGHT_R => Some("EYES_LOOK_RIGHT_R"),
3232            Self::EYES_LOOK_UP_L => Some("EYES_LOOK_UP_L"),
3233            Self::EYES_LOOK_UP_R => Some("EYES_LOOK_UP_R"),
3234            Self::INNER_BROW_RAISER_L => Some("INNER_BROW_RAISER_L"),
3235            Self::INNER_BROW_RAISER_R => Some("INNER_BROW_RAISER_R"),
3236            Self::JAW_DROP => Some("JAW_DROP"),
3237            Self::JAW_SIDEWAYS_LEFT => Some("JAW_SIDEWAYS_LEFT"),
3238            Self::JAW_SIDEWAYS_RIGHT => Some("JAW_SIDEWAYS_RIGHT"),
3239            Self::JAW_THRUST => Some("JAW_THRUST"),
3240            Self::LID_TIGHTENER_L => Some("LID_TIGHTENER_L"),
3241            Self::LID_TIGHTENER_R => Some("LID_TIGHTENER_R"),
3242            Self::LIP_CORNER_DEPRESSOR_L => Some("LIP_CORNER_DEPRESSOR_L"),
3243            Self::LIP_CORNER_DEPRESSOR_R => Some("LIP_CORNER_DEPRESSOR_R"),
3244            Self::LIP_CORNER_PULLER_L => Some("LIP_CORNER_PULLER_L"),
3245            Self::LIP_CORNER_PULLER_R => Some("LIP_CORNER_PULLER_R"),
3246            Self::LIP_FUNNELER_LB => Some("LIP_FUNNELER_LB"),
3247            Self::LIP_FUNNELER_LT => Some("LIP_FUNNELER_LT"),
3248            Self::LIP_FUNNELER_RB => Some("LIP_FUNNELER_RB"),
3249            Self::LIP_FUNNELER_RT => Some("LIP_FUNNELER_RT"),
3250            Self::LIP_PRESSOR_L => Some("LIP_PRESSOR_L"),
3251            Self::LIP_PRESSOR_R => Some("LIP_PRESSOR_R"),
3252            Self::LIP_PUCKER_L => Some("LIP_PUCKER_L"),
3253            Self::LIP_PUCKER_R => Some("LIP_PUCKER_R"),
3254            Self::LIP_STRETCHER_L => Some("LIP_STRETCHER_L"),
3255            Self::LIP_STRETCHER_R => Some("LIP_STRETCHER_R"),
3256            Self::LIP_SUCK_LB => Some("LIP_SUCK_LB"),
3257            Self::LIP_SUCK_LT => Some("LIP_SUCK_LT"),
3258            Self::LIP_SUCK_RB => Some("LIP_SUCK_RB"),
3259            Self::LIP_SUCK_RT => Some("LIP_SUCK_RT"),
3260            Self::LIP_TIGHTENER_L => Some("LIP_TIGHTENER_L"),
3261            Self::LIP_TIGHTENER_R => Some("LIP_TIGHTENER_R"),
3262            Self::LIPS_TOWARD => Some("LIPS_TOWARD"),
3263            Self::LOWER_LIP_DEPRESSOR_L => Some("LOWER_LIP_DEPRESSOR_L"),
3264            Self::LOWER_LIP_DEPRESSOR_R => Some("LOWER_LIP_DEPRESSOR_R"),
3265            Self::MOUTH_LEFT => Some("MOUTH_LEFT"),
3266            Self::MOUTH_RIGHT => Some("MOUTH_RIGHT"),
3267            Self::NOSE_WRINKLER_L => Some("NOSE_WRINKLER_L"),
3268            Self::NOSE_WRINKLER_R => Some("NOSE_WRINKLER_R"),
3269            Self::OUTER_BROW_RAISER_L => Some("OUTER_BROW_RAISER_L"),
3270            Self::OUTER_BROW_RAISER_R => Some("OUTER_BROW_RAISER_R"),
3271            Self::UPPER_LID_RAISER_L => Some("UPPER_LID_RAISER_L"),
3272            Self::UPPER_LID_RAISER_R => Some("UPPER_LID_RAISER_R"),
3273            Self::UPPER_LIP_RAISER_L => Some("UPPER_LIP_RAISER_L"),
3274            Self::UPPER_LIP_RAISER_R => Some("UPPER_LIP_RAISER_R"),
3275            Self::TONGUE_TIP_INTERDENTAL => Some("TONGUE_TIP_INTERDENTAL"),
3276            Self::TONGUE_TIP_ALVEOLAR => Some("TONGUE_TIP_ALVEOLAR"),
3277            Self::TONGUE_FRONT_DORSAL_PALATE => Some("TONGUE_FRONT_DORSAL_PALATE"),
3278            Self::TONGUE_MID_DORSAL_PALATE => Some("TONGUE_MID_DORSAL_PALATE"),
3279            Self::TONGUE_BACK_DORSAL_VELAR => Some("TONGUE_BACK_DORSAL_VELAR"),
3280            Self::TONGUE_OUT => Some("TONGUE_OUT"),
3281            Self::TONGUE_RETREAT => Some("TONGUE_RETREAT"),
3282            Self::COUNT => Some("COUNT"),
3283            _ => None,
3284        };
3285        fmt_enum(fmt, self.0, name)
3286    }
3287}
3288#[doc = "See [XrFaceExpressionSet2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionSet2FB)"]
3289#[repr(transparent)]
3290#[derive(Copy, Clone, Eq, PartialEq)]
3291pub struct FaceExpressionSet2FB(i32);
3292impl FaceExpressionSet2FB {
3293    #[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."]
3294    pub const DEFAULT: FaceExpressionSet2FB = Self(0i32);
3295    pub fn from_raw(x: i32) -> Self {
3296        Self(x)
3297    }
3298    pub fn into_raw(self) -> i32 {
3299        self.0
3300    }
3301}
3302impl fmt::Debug for FaceExpressionSet2FB {
3303    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3304        let name = match *self {
3305            Self::DEFAULT => Some("DEFAULT"),
3306            _ => None,
3307        };
3308        fmt_enum(fmt, self.0, name)
3309    }
3310}
3311#[doc = "See [XrFaceTrackingDataSource2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackingDataSource2FB)"]
3312#[repr(transparent)]
3313#[derive(Copy, Clone, Eq, PartialEq)]
3314pub struct FaceTrackingDataSource2FB(i32);
3315impl FaceTrackingDataSource2FB {
3316    #[doc = "face tracking uses visual data to estimate expressions. Face tracking may use audio to further improve the quality of face tracking."]
3317    pub const VISUAL: FaceTrackingDataSource2FB = Self(0i32);
3318    #[doc = "face tracking uses audio data to estimate expressions."]
3319    pub const AUDIO: FaceTrackingDataSource2FB = Self(1i32);
3320    pub fn from_raw(x: i32) -> Self {
3321        Self(x)
3322    }
3323    pub fn into_raw(self) -> i32 {
3324        self.0
3325    }
3326}
3327impl fmt::Debug for FaceTrackingDataSource2FB {
3328    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3329        let name = match *self {
3330            Self::VISUAL => Some("VISUAL"),
3331            Self::AUDIO => Some("AUDIO"),
3332            _ => None,
3333        };
3334        fmt_enum(fmt, self.0, name)
3335    }
3336}
3337#[doc = "See [XrFaceConfidence2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceConfidence2FB)"]
3338#[repr(transparent)]
3339#[derive(Copy, Clone, Eq, PartialEq)]
3340pub struct FaceConfidence2FB(i32);
3341impl FaceConfidence2FB {
3342    pub const LOWER_FACE: FaceConfidence2FB = Self(0i32);
3343    pub const UPPER_FACE: FaceConfidence2FB = Self(1i32);
3344    pub const COUNT: FaceConfidence2FB = Self(2i32);
3345    pub fn from_raw(x: i32) -> Self {
3346        Self(x)
3347    }
3348    pub fn into_raw(self) -> i32 {
3349        self.0
3350    }
3351}
3352impl fmt::Debug for FaceConfidence2FB {
3353    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3354        let name = match *self {
3355            Self::LOWER_FACE => Some("LOWER_FACE"),
3356            Self::UPPER_FACE => Some("UPPER_FACE"),
3357            Self::COUNT => Some("COUNT"),
3358            _ => None,
3359        };
3360        fmt_enum(fmt, self.0, name)
3361    }
3362}
3363#[doc = "See [XrBodyJointFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointFB)"]
3364#[repr(transparent)]
3365#[derive(Copy, Clone, Eq, PartialEq)]
3366pub struct BodyJointFB(i32);
3367impl BodyJointFB {
3368    pub const ROOT: BodyJointFB = Self(0i32);
3369    pub const HIPS: BodyJointFB = Self(1i32);
3370    pub const SPINE_LOWER: BodyJointFB = Self(2i32);
3371    pub const SPINE_MIDDLE: BodyJointFB = Self(3i32);
3372    pub const SPINE_UPPER: BodyJointFB = Self(4i32);
3373    pub const CHEST: BodyJointFB = Self(5i32);
3374    pub const NECK: BodyJointFB = Self(6i32);
3375    pub const HEAD: BodyJointFB = Self(7i32);
3376    pub const LEFT_SHOULDER: BodyJointFB = Self(8i32);
3377    pub const LEFT_SCAPULA: BodyJointFB = Self(9i32);
3378    pub const LEFT_ARM_UPPER: BodyJointFB = Self(10i32);
3379    pub const LEFT_ARM_LOWER: BodyJointFB = Self(11i32);
3380    pub const LEFT_HAND_WRIST_TWIST: BodyJointFB = Self(12i32);
3381    pub const RIGHT_SHOULDER: BodyJointFB = Self(13i32);
3382    pub const RIGHT_SCAPULA: BodyJointFB = Self(14i32);
3383    pub const RIGHT_ARM_UPPER: BodyJointFB = Self(15i32);
3384    pub const RIGHT_ARM_LOWER: BodyJointFB = Self(16i32);
3385    pub const RIGHT_HAND_WRIST_TWIST: BodyJointFB = Self(17i32);
3386    pub const LEFT_HAND_PALM: BodyJointFB = Self(18i32);
3387    pub const LEFT_HAND_WRIST: BodyJointFB = Self(19i32);
3388    pub const LEFT_HAND_THUMB_METACARPAL: BodyJointFB = Self(20i32);
3389    pub const LEFT_HAND_THUMB_PROXIMAL: BodyJointFB = Self(21i32);
3390    pub const LEFT_HAND_THUMB_DISTAL: BodyJointFB = Self(22i32);
3391    pub const LEFT_HAND_THUMB_TIP: BodyJointFB = Self(23i32);
3392    pub const LEFT_HAND_INDEX_METACARPAL: BodyJointFB = Self(24i32);
3393    pub const LEFT_HAND_INDEX_PROXIMAL: BodyJointFB = Self(25i32);
3394    pub const LEFT_HAND_INDEX_INTERMEDIATE: BodyJointFB = Self(26i32);
3395    pub const LEFT_HAND_INDEX_DISTAL: BodyJointFB = Self(27i32);
3396    pub const LEFT_HAND_INDEX_TIP: BodyJointFB = Self(28i32);
3397    pub const LEFT_HAND_MIDDLE_METACARPAL: BodyJointFB = Self(29i32);
3398    pub const LEFT_HAND_MIDDLE_PROXIMAL: BodyJointFB = Self(30i32);
3399    pub const LEFT_HAND_MIDDLE_INTERMEDIATE: BodyJointFB = Self(31i32);
3400    pub const LEFT_HAND_MIDDLE_DISTAL: BodyJointFB = Self(32i32);
3401    pub const LEFT_HAND_MIDDLE_TIP: BodyJointFB = Self(33i32);
3402    pub const LEFT_HAND_RING_METACARPAL: BodyJointFB = Self(34i32);
3403    pub const LEFT_HAND_RING_PROXIMAL: BodyJointFB = Self(35i32);
3404    pub const LEFT_HAND_RING_INTERMEDIATE: BodyJointFB = Self(36i32);
3405    pub const LEFT_HAND_RING_DISTAL: BodyJointFB = Self(37i32);
3406    pub const LEFT_HAND_RING_TIP: BodyJointFB = Self(38i32);
3407    pub const LEFT_HAND_LITTLE_METACARPAL: BodyJointFB = Self(39i32);
3408    pub const LEFT_HAND_LITTLE_PROXIMAL: BodyJointFB = Self(40i32);
3409    pub const LEFT_HAND_LITTLE_INTERMEDIATE: BodyJointFB = Self(41i32);
3410    pub const LEFT_HAND_LITTLE_DISTAL: BodyJointFB = Self(42i32);
3411    pub const LEFT_HAND_LITTLE_TIP: BodyJointFB = Self(43i32);
3412    pub const RIGHT_HAND_PALM: BodyJointFB = Self(44i32);
3413    pub const RIGHT_HAND_WRIST: BodyJointFB = Self(45i32);
3414    pub const RIGHT_HAND_THUMB_METACARPAL: BodyJointFB = Self(46i32);
3415    pub const RIGHT_HAND_THUMB_PROXIMAL: BodyJointFB = Self(47i32);
3416    pub const RIGHT_HAND_THUMB_DISTAL: BodyJointFB = Self(48i32);
3417    pub const RIGHT_HAND_THUMB_TIP: BodyJointFB = Self(49i32);
3418    pub const RIGHT_HAND_INDEX_METACARPAL: BodyJointFB = Self(50i32);
3419    pub const RIGHT_HAND_INDEX_PROXIMAL: BodyJointFB = Self(51i32);
3420    pub const RIGHT_HAND_INDEX_INTERMEDIATE: BodyJointFB = Self(52i32);
3421    pub const RIGHT_HAND_INDEX_DISTAL: BodyJointFB = Self(53i32);
3422    pub const RIGHT_HAND_INDEX_TIP: BodyJointFB = Self(54i32);
3423    pub const RIGHT_HAND_MIDDLE_METACARPAL: BodyJointFB = Self(55i32);
3424    pub const RIGHT_HAND_MIDDLE_PROXIMAL: BodyJointFB = Self(56i32);
3425    pub const RIGHT_HAND_MIDDLE_INTERMEDIATE: BodyJointFB = Self(57i32);
3426    pub const RIGHT_HAND_MIDDLE_DISTAL: BodyJointFB = Self(58i32);
3427    pub const RIGHT_HAND_MIDDLE_TIP: BodyJointFB = Self(59i32);
3428    pub const RIGHT_HAND_RING_METACARPAL: BodyJointFB = Self(60i32);
3429    pub const RIGHT_HAND_RING_PROXIMAL: BodyJointFB = Self(61i32);
3430    pub const RIGHT_HAND_RING_INTERMEDIATE: BodyJointFB = Self(62i32);
3431    pub const RIGHT_HAND_RING_DISTAL: BodyJointFB = Self(63i32);
3432    pub const RIGHT_HAND_RING_TIP: BodyJointFB = Self(64i32);
3433    pub const RIGHT_HAND_LITTLE_METACARPAL: BodyJointFB = Self(65i32);
3434    pub const RIGHT_HAND_LITTLE_PROXIMAL: BodyJointFB = Self(66i32);
3435    pub const RIGHT_HAND_LITTLE_INTERMEDIATE: BodyJointFB = Self(67i32);
3436    pub const RIGHT_HAND_LITTLE_DISTAL: BodyJointFB = Self(68i32);
3437    pub const RIGHT_HAND_LITTLE_TIP: BodyJointFB = Self(69i32);
3438    pub const COUNT: BodyJointFB = Self(70i32);
3439    pub const NONE: BodyJointFB = Self(-1i32);
3440    pub fn from_raw(x: i32) -> Self {
3441        Self(x)
3442    }
3443    pub fn into_raw(self) -> i32 {
3444        self.0
3445    }
3446}
3447impl fmt::Debug for BodyJointFB {
3448    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3449        let name = match *self {
3450            Self::ROOT => Some("ROOT"),
3451            Self::HIPS => Some("HIPS"),
3452            Self::SPINE_LOWER => Some("SPINE_LOWER"),
3453            Self::SPINE_MIDDLE => Some("SPINE_MIDDLE"),
3454            Self::SPINE_UPPER => Some("SPINE_UPPER"),
3455            Self::CHEST => Some("CHEST"),
3456            Self::NECK => Some("NECK"),
3457            Self::HEAD => Some("HEAD"),
3458            Self::LEFT_SHOULDER => Some("LEFT_SHOULDER"),
3459            Self::LEFT_SCAPULA => Some("LEFT_SCAPULA"),
3460            Self::LEFT_ARM_UPPER => Some("LEFT_ARM_UPPER"),
3461            Self::LEFT_ARM_LOWER => Some("LEFT_ARM_LOWER"),
3462            Self::LEFT_HAND_WRIST_TWIST => Some("LEFT_HAND_WRIST_TWIST"),
3463            Self::RIGHT_SHOULDER => Some("RIGHT_SHOULDER"),
3464            Self::RIGHT_SCAPULA => Some("RIGHT_SCAPULA"),
3465            Self::RIGHT_ARM_UPPER => Some("RIGHT_ARM_UPPER"),
3466            Self::RIGHT_ARM_LOWER => Some("RIGHT_ARM_LOWER"),
3467            Self::RIGHT_HAND_WRIST_TWIST => Some("RIGHT_HAND_WRIST_TWIST"),
3468            Self::LEFT_HAND_PALM => Some("LEFT_HAND_PALM"),
3469            Self::LEFT_HAND_WRIST => Some("LEFT_HAND_WRIST"),
3470            Self::LEFT_HAND_THUMB_METACARPAL => Some("LEFT_HAND_THUMB_METACARPAL"),
3471            Self::LEFT_HAND_THUMB_PROXIMAL => Some("LEFT_HAND_THUMB_PROXIMAL"),
3472            Self::LEFT_HAND_THUMB_DISTAL => Some("LEFT_HAND_THUMB_DISTAL"),
3473            Self::LEFT_HAND_THUMB_TIP => Some("LEFT_HAND_THUMB_TIP"),
3474            Self::LEFT_HAND_INDEX_METACARPAL => Some("LEFT_HAND_INDEX_METACARPAL"),
3475            Self::LEFT_HAND_INDEX_PROXIMAL => Some("LEFT_HAND_INDEX_PROXIMAL"),
3476            Self::LEFT_HAND_INDEX_INTERMEDIATE => Some("LEFT_HAND_INDEX_INTERMEDIATE"),
3477            Self::LEFT_HAND_INDEX_DISTAL => Some("LEFT_HAND_INDEX_DISTAL"),
3478            Self::LEFT_HAND_INDEX_TIP => Some("LEFT_HAND_INDEX_TIP"),
3479            Self::LEFT_HAND_MIDDLE_METACARPAL => Some("LEFT_HAND_MIDDLE_METACARPAL"),
3480            Self::LEFT_HAND_MIDDLE_PROXIMAL => Some("LEFT_HAND_MIDDLE_PROXIMAL"),
3481            Self::LEFT_HAND_MIDDLE_INTERMEDIATE => Some("LEFT_HAND_MIDDLE_INTERMEDIATE"),
3482            Self::LEFT_HAND_MIDDLE_DISTAL => Some("LEFT_HAND_MIDDLE_DISTAL"),
3483            Self::LEFT_HAND_MIDDLE_TIP => Some("LEFT_HAND_MIDDLE_TIP"),
3484            Self::LEFT_HAND_RING_METACARPAL => Some("LEFT_HAND_RING_METACARPAL"),
3485            Self::LEFT_HAND_RING_PROXIMAL => Some("LEFT_HAND_RING_PROXIMAL"),
3486            Self::LEFT_HAND_RING_INTERMEDIATE => Some("LEFT_HAND_RING_INTERMEDIATE"),
3487            Self::LEFT_HAND_RING_DISTAL => Some("LEFT_HAND_RING_DISTAL"),
3488            Self::LEFT_HAND_RING_TIP => Some("LEFT_HAND_RING_TIP"),
3489            Self::LEFT_HAND_LITTLE_METACARPAL => Some("LEFT_HAND_LITTLE_METACARPAL"),
3490            Self::LEFT_HAND_LITTLE_PROXIMAL => Some("LEFT_HAND_LITTLE_PROXIMAL"),
3491            Self::LEFT_HAND_LITTLE_INTERMEDIATE => Some("LEFT_HAND_LITTLE_INTERMEDIATE"),
3492            Self::LEFT_HAND_LITTLE_DISTAL => Some("LEFT_HAND_LITTLE_DISTAL"),
3493            Self::LEFT_HAND_LITTLE_TIP => Some("LEFT_HAND_LITTLE_TIP"),
3494            Self::RIGHT_HAND_PALM => Some("RIGHT_HAND_PALM"),
3495            Self::RIGHT_HAND_WRIST => Some("RIGHT_HAND_WRIST"),
3496            Self::RIGHT_HAND_THUMB_METACARPAL => Some("RIGHT_HAND_THUMB_METACARPAL"),
3497            Self::RIGHT_HAND_THUMB_PROXIMAL => Some("RIGHT_HAND_THUMB_PROXIMAL"),
3498            Self::RIGHT_HAND_THUMB_DISTAL => Some("RIGHT_HAND_THUMB_DISTAL"),
3499            Self::RIGHT_HAND_THUMB_TIP => Some("RIGHT_HAND_THUMB_TIP"),
3500            Self::RIGHT_HAND_INDEX_METACARPAL => Some("RIGHT_HAND_INDEX_METACARPAL"),
3501            Self::RIGHT_HAND_INDEX_PROXIMAL => Some("RIGHT_HAND_INDEX_PROXIMAL"),
3502            Self::RIGHT_HAND_INDEX_INTERMEDIATE => Some("RIGHT_HAND_INDEX_INTERMEDIATE"),
3503            Self::RIGHT_HAND_INDEX_DISTAL => Some("RIGHT_HAND_INDEX_DISTAL"),
3504            Self::RIGHT_HAND_INDEX_TIP => Some("RIGHT_HAND_INDEX_TIP"),
3505            Self::RIGHT_HAND_MIDDLE_METACARPAL => Some("RIGHT_HAND_MIDDLE_METACARPAL"),
3506            Self::RIGHT_HAND_MIDDLE_PROXIMAL => Some("RIGHT_HAND_MIDDLE_PROXIMAL"),
3507            Self::RIGHT_HAND_MIDDLE_INTERMEDIATE => Some("RIGHT_HAND_MIDDLE_INTERMEDIATE"),
3508            Self::RIGHT_HAND_MIDDLE_DISTAL => Some("RIGHT_HAND_MIDDLE_DISTAL"),
3509            Self::RIGHT_HAND_MIDDLE_TIP => Some("RIGHT_HAND_MIDDLE_TIP"),
3510            Self::RIGHT_HAND_RING_METACARPAL => Some("RIGHT_HAND_RING_METACARPAL"),
3511            Self::RIGHT_HAND_RING_PROXIMAL => Some("RIGHT_HAND_RING_PROXIMAL"),
3512            Self::RIGHT_HAND_RING_INTERMEDIATE => Some("RIGHT_HAND_RING_INTERMEDIATE"),
3513            Self::RIGHT_HAND_RING_DISTAL => Some("RIGHT_HAND_RING_DISTAL"),
3514            Self::RIGHT_HAND_RING_TIP => Some("RIGHT_HAND_RING_TIP"),
3515            Self::RIGHT_HAND_LITTLE_METACARPAL => Some("RIGHT_HAND_LITTLE_METACARPAL"),
3516            Self::RIGHT_HAND_LITTLE_PROXIMAL => Some("RIGHT_HAND_LITTLE_PROXIMAL"),
3517            Self::RIGHT_HAND_LITTLE_INTERMEDIATE => Some("RIGHT_HAND_LITTLE_INTERMEDIATE"),
3518            Self::RIGHT_HAND_LITTLE_DISTAL => Some("RIGHT_HAND_LITTLE_DISTAL"),
3519            Self::RIGHT_HAND_LITTLE_TIP => Some("RIGHT_HAND_LITTLE_TIP"),
3520            Self::COUNT => Some("COUNT"),
3521            Self::NONE => Some("NONE"),
3522            _ => None,
3523        };
3524        fmt_enum(fmt, self.0, name)
3525    }
3526}
3527#[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)"]
3528#[repr(transparent)]
3529#[derive(Copy, Clone, Eq, PartialEq)]
3530pub struct BodyJointSetFB(i32);
3531impl BodyJointSetFB {
3532    #[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."]
3533    pub const DEFAULT: BodyJointSetFB = Self(0i32);
3534    pub fn from_raw(x: i32) -> Self {
3535        Self(x)
3536    }
3537    pub fn into_raw(self) -> i32 {
3538        self.0
3539    }
3540}
3541impl fmt::Debug for BodyJointSetFB {
3542    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3543        let name = match *self {
3544            Self::DEFAULT => Some("DEFAULT"),
3545            _ => None,
3546        };
3547        fmt_enum(fmt, self.0, name)
3548    }
3549}
3550#[doc = "See [XrEyePositionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyePositionFB)"]
3551#[repr(transparent)]
3552#[derive(Copy, Clone, Eq, PartialEq)]
3553pub struct EyePositionFB(i32);
3554impl EyePositionFB {
3555    #[doc = "Specifies the position of the left eye."]
3556    pub const LEFT: EyePositionFB = Self(0i32);
3557    #[doc = "Specifies the position of the right eye."]
3558    pub const RIGHT: EyePositionFB = Self(1i32);
3559    pub const COUNT: EyePositionFB = Self(2i32);
3560    pub fn from_raw(x: i32) -> Self {
3561        Self(x)
3562    }
3563    pub fn into_raw(self) -> i32 {
3564        self.0
3565    }
3566}
3567impl fmt::Debug for EyePositionFB {
3568    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3569        let name = match *self {
3570            Self::LEFT => Some("LEFT"),
3571            Self::RIGHT => Some("RIGHT"),
3572            Self::COUNT => Some("COUNT"),
3573            _ => None,
3574        };
3575        fmt_enum(fmt, self.0, name)
3576    }
3577}
3578#[doc = "See [XrTrackingOptimizationSettingsDomainQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTrackingOptimizationSettingsDomainQCOM)"]
3579#[repr(transparent)]
3580#[derive(Copy, Clone, Eq, PartialEq)]
3581pub struct TrackingOptimizationSettingsDomainQCOM(i32);
3582impl TrackingOptimizationSettingsDomainQCOM {
3583    #[doc = "Setting applies to all QCOM tracking extensions."]
3584    pub const ALL: TrackingOptimizationSettingsDomainQCOM = Self(1i32);
3585    pub fn from_raw(x: i32) -> Self {
3586        Self(x)
3587    }
3588    pub fn into_raw(self) -> i32 {
3589        self.0
3590    }
3591}
3592impl fmt::Debug for TrackingOptimizationSettingsDomainQCOM {
3593    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3594        let name = match *self {
3595            Self::ALL => Some("ALL"),
3596            _ => None,
3597        };
3598        fmt_enum(fmt, self.0, name)
3599    }
3600}
3601#[doc = "See [XrTrackingOptimizationSettingsHintQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTrackingOptimizationSettingsHintQCOM)"]
3602#[repr(transparent)]
3603#[derive(Copy, Clone, Eq, PartialEq)]
3604pub struct TrackingOptimizationSettingsHintQCOM(i32);
3605impl TrackingOptimizationSettingsHintQCOM {
3606    #[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."]
3607    pub const NONE: TrackingOptimizationSettingsHintQCOM = Self(0i32);
3608    #[doc = "Used by the application to indicate that it prefers tracking to be optimized for long range, possibly at the expense of competing interests."]
3609    pub const LONG_RANGE_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(1i32);
3610    #[doc = "Used by the application to indicate that it prefers tracking to be optimized for close range, possibly at the expense of competing interests."]
3611    pub const CLOSE_RANGE_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(2i32);
3612    #[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."]
3613    pub const LOW_POWER_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(3i32);
3614    #[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."]
3615    pub const HIGH_POWER_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(4i32);
3616    pub fn from_raw(x: i32) -> Self {
3617        Self(x)
3618    }
3619    pub fn into_raw(self) -> i32 {
3620        self.0
3621    }
3622}
3623impl fmt::Debug for TrackingOptimizationSettingsHintQCOM {
3624    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3625        let name = match *self {
3626            Self::NONE => Some("NONE"),
3627            Self::LONG_RANGE_PRIORIZATION => Some("LONG_RANGE_PRIORIZATION"),
3628            Self::CLOSE_RANGE_PRIORIZATION => Some("CLOSE_RANGE_PRIORIZATION"),
3629            Self::LOW_POWER_PRIORIZATION => Some("LOW_POWER_PRIORIZATION"),
3630            Self::HIGH_POWER_PRIORIZATION => Some("HIGH_POWER_PRIORIZATION"),
3631            _ => None,
3632        };
3633        fmt_enum(fmt, self.0, name)
3634    }
3635}
3636#[doc = "See [XrForceFeedbackCurlLocationMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlLocationMNDX)"]
3637#[repr(transparent)]
3638#[derive(Copy, Clone, Eq, PartialEq)]
3639pub struct ForceFeedbackCurlLocationMNDX(i32);
3640impl ForceFeedbackCurlLocationMNDX {
3641    #[doc = "force feedback for thumb curl"]
3642    pub const THUMB_CURL: ForceFeedbackCurlLocationMNDX = Self(0i32);
3643    #[doc = "force feedback for index finger curl"]
3644    pub const INDEX_CURL: ForceFeedbackCurlLocationMNDX = Self(1i32);
3645    #[doc = "force feedback for middle finger curl"]
3646    pub const MIDDLE_CURL: ForceFeedbackCurlLocationMNDX = Self(2i32);
3647    #[doc = "force feedback for ring finger curl"]
3648    pub const RING_CURL: ForceFeedbackCurlLocationMNDX = Self(3i32);
3649    #[doc = "force feedback for little finger curl"]
3650    pub const LITTLE_CURL: ForceFeedbackCurlLocationMNDX = Self(4i32);
3651    pub fn from_raw(x: i32) -> Self {
3652        Self(x)
3653    }
3654    pub fn into_raw(self) -> i32 {
3655        self.0
3656    }
3657}
3658impl fmt::Debug for ForceFeedbackCurlLocationMNDX {
3659    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3660        let name = match *self {
3661            Self::THUMB_CURL => Some("THUMB_CURL"),
3662            Self::INDEX_CURL => Some("INDEX_CURL"),
3663            Self::MIDDLE_CURL => Some("MIDDLE_CURL"),
3664            Self::RING_CURL => Some("RING_CURL"),
3665            Self::LITTLE_CURL => Some("LITTLE_CURL"),
3666            _ => None,
3667        };
3668        fmt_enum(fmt, self.0, name)
3669    }
3670}
3671#[doc = "See [XrPlaneDetectionStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectionStateEXT)"]
3672#[repr(transparent)]
3673#[derive(Copy, Clone, Eq, PartialEq)]
3674pub struct PlaneDetectionStateEXT(i32);
3675impl PlaneDetectionStateEXT {
3676    pub const NONE: PlaneDetectionStateEXT = Self(0i32);
3677    pub const PENDING: PlaneDetectionStateEXT = Self(1i32);
3678    pub const DONE: PlaneDetectionStateEXT = Self(2i32);
3679    pub const ERROR: PlaneDetectionStateEXT = Self(3i32);
3680    pub const FATAL: PlaneDetectionStateEXT = Self(4i32);
3681    pub fn from_raw(x: i32) -> Self {
3682        Self(x)
3683    }
3684    pub fn into_raw(self) -> i32 {
3685        self.0
3686    }
3687}
3688impl fmt::Debug for PlaneDetectionStateEXT {
3689    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3690        let name = match *self {
3691            Self::NONE => Some("NONE"),
3692            Self::PENDING => Some("PENDING"),
3693            Self::DONE => Some("DONE"),
3694            Self::ERROR => Some("ERROR"),
3695            Self::FATAL => Some("FATAL"),
3696            _ => None,
3697        };
3698        fmt_enum(fmt, self.0, name)
3699    }
3700}
3701#[doc = "See [XrPlaneDetectorOrientationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorOrientationEXT)"]
3702#[repr(transparent)]
3703#[derive(Copy, Clone, Eq, PartialEq)]
3704pub struct PlaneDetectorOrientationEXT(i32);
3705impl PlaneDetectorOrientationEXT {
3706    #[doc = "The detected plane is horizontal and faces upward (e.g. floor)."]
3707    pub const HORIZONTAL_UPWARD: PlaneDetectorOrientationEXT = Self(0i32);
3708    #[doc = "The detected plane is horizontal and faces downward (e.g. ceiling)."]
3709    pub const HORIZONTAL_DOWNWARD: PlaneDetectorOrientationEXT = Self(1i32);
3710    #[doc = "The detected plane is vertical (e.g. wall)."]
3711    pub const VERTICAL: PlaneDetectorOrientationEXT = Self(2i32);
3712    #[doc = "The detected plane has an arbitrary, non-vertical and non-horizontal orientation."]
3713    pub const ARBITRARY: PlaneDetectorOrientationEXT = Self(3i32);
3714    pub fn from_raw(x: i32) -> Self {
3715        Self(x)
3716    }
3717    pub fn into_raw(self) -> i32 {
3718        self.0
3719    }
3720}
3721impl fmt::Debug for PlaneDetectorOrientationEXT {
3722    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3723        let name = match *self {
3724            Self::HORIZONTAL_UPWARD => Some("HORIZONTAL_UPWARD"),
3725            Self::HORIZONTAL_DOWNWARD => Some("HORIZONTAL_DOWNWARD"),
3726            Self::VERTICAL => Some("VERTICAL"),
3727            Self::ARBITRARY => Some("ARBITRARY"),
3728            _ => None,
3729        };
3730        fmt_enum(fmt, self.0, name)
3731    }
3732}
3733#[doc = "See [XrPlaneDetectorSemanticTypeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorSemanticTypeEXT)"]
3734#[repr(transparent)]
3735#[derive(Copy, Clone, Eq, PartialEq)]
3736pub struct PlaneDetectorSemanticTypeEXT(i32);
3737impl PlaneDetectorSemanticTypeEXT {
3738    #[doc = "The runtime was unable to classify this plane."]
3739    pub const UNDEFINED: PlaneDetectorSemanticTypeEXT = Self(0i32);
3740    #[doc = "The detected plane is a ceiling."]
3741    pub const CEILING: PlaneDetectorSemanticTypeEXT = Self(1i32);
3742    #[doc = "The detected plane is a floor."]
3743    pub const FLOOR: PlaneDetectorSemanticTypeEXT = Self(2i32);
3744    #[doc = "The detected plane is a wall."]
3745    pub const WALL: PlaneDetectorSemanticTypeEXT = Self(3i32);
3746    #[doc = "The detected plane is a platform, like a table."]
3747    pub const PLATFORM: PlaneDetectorSemanticTypeEXT = Self(4i32);
3748    pub fn from_raw(x: i32) -> Self {
3749        Self(x)
3750    }
3751    pub fn into_raw(self) -> i32 {
3752        self.0
3753    }
3754}
3755impl fmt::Debug for PlaneDetectorSemanticTypeEXT {
3756    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3757        let name = match *self {
3758            Self::UNDEFINED => Some("UNDEFINED"),
3759            Self::CEILING => Some("CEILING"),
3760            Self::FLOOR => Some("FLOOR"),
3761            Self::WALL => Some("WALL"),
3762            Self::PLATFORM => Some("PLATFORM"),
3763            _ => None,
3764        };
3765        fmt_enum(fmt, self.0, name)
3766    }
3767}
3768#[doc = "See [XrVirtualKeyboardLocationTypeMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardLocationTypeMETA)"]
3769#[repr(transparent)]
3770#[derive(Copy, Clone, Eq, PartialEq)]
3771pub struct VirtualKeyboardLocationTypeMETA(i32);
3772impl VirtualKeyboardLocationTypeMETA {
3773    #[doc = "Indicates that the application will provide the position and scale of the keyboard."]
3774    pub const CUSTOM: VirtualKeyboardLocationTypeMETA = Self(0i32);
3775    #[doc = "Indicates that the runtime will set the position and scale for far field keyboard."]
3776    pub const FAR: VirtualKeyboardLocationTypeMETA = Self(1i32);
3777    #[doc = "Indicates that the runtime will set the position and scale for direct interaction keyboard."]
3778    pub const DIRECT: VirtualKeyboardLocationTypeMETA = Self(2i32);
3779    pub fn from_raw(x: i32) -> Self {
3780        Self(x)
3781    }
3782    pub fn into_raw(self) -> i32 {
3783        self.0
3784    }
3785}
3786impl fmt::Debug for VirtualKeyboardLocationTypeMETA {
3787    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3788        let name = match *self {
3789            Self::CUSTOM => Some("CUSTOM"),
3790            Self::FAR => Some("FAR"),
3791            Self::DIRECT => Some("DIRECT"),
3792            _ => None,
3793        };
3794        fmt_enum(fmt, self.0, name)
3795    }
3796}
3797#[doc = "See [XrVirtualKeyboardInputSourceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputSourceMETA)"]
3798#[repr(transparent)]
3799#[derive(Copy, Clone, Eq, PartialEq)]
3800pub struct VirtualKeyboardInputSourceMETA(i32);
3801impl VirtualKeyboardInputSourceMETA {
3802    #[doc = "Left controller ray."]
3803    pub const CONTROLLER_RAY_LEFT: VirtualKeyboardInputSourceMETA = Self(1i32);
3804    #[doc = "Right controller ray."]
3805    pub const CONTROLLER_RAY_RIGHT: VirtualKeyboardInputSourceMETA = Self(2i32);
3806    #[doc = "Left hand ray."]
3807    pub const HAND_RAY_LEFT: VirtualKeyboardInputSourceMETA = Self(3i32);
3808    #[doc = "Right hand ray."]
3809    pub const HAND_RAY_RIGHT: VirtualKeyboardInputSourceMETA = Self(4i32);
3810    #[doc = "Left controller direct touch."]
3811    pub const CONTROLLER_DIRECT_LEFT: VirtualKeyboardInputSourceMETA = Self(5i32);
3812    #[doc = "Right controller direct touch."]
3813    pub const CONTROLLER_DIRECT_RIGHT: VirtualKeyboardInputSourceMETA = Self(6i32);
3814    #[doc = "Left hand direct touch."]
3815    pub const HAND_DIRECT_INDEX_TIP_LEFT: VirtualKeyboardInputSourceMETA = Self(7i32);
3816    #[doc = "Right hand direct touch."]
3817    pub const HAND_DIRECT_INDEX_TIP_RIGHT: VirtualKeyboardInputSourceMETA = Self(8i32);
3818    pub fn from_raw(x: i32) -> Self {
3819        Self(x)
3820    }
3821    pub fn into_raw(self) -> i32 {
3822        self.0
3823    }
3824}
3825impl fmt::Debug for VirtualKeyboardInputSourceMETA {
3826    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3827        let name = match *self {
3828            Self::CONTROLLER_RAY_LEFT => Some("CONTROLLER_RAY_LEFT"),
3829            Self::CONTROLLER_RAY_RIGHT => Some("CONTROLLER_RAY_RIGHT"),
3830            Self::HAND_RAY_LEFT => Some("HAND_RAY_LEFT"),
3831            Self::HAND_RAY_RIGHT => Some("HAND_RAY_RIGHT"),
3832            Self::CONTROLLER_DIRECT_LEFT => Some("CONTROLLER_DIRECT_LEFT"),
3833            Self::CONTROLLER_DIRECT_RIGHT => Some("CONTROLLER_DIRECT_RIGHT"),
3834            Self::HAND_DIRECT_INDEX_TIP_LEFT => Some("HAND_DIRECT_INDEX_TIP_LEFT"),
3835            Self::HAND_DIRECT_INDEX_TIP_RIGHT => Some("HAND_DIRECT_INDEX_TIP_RIGHT"),
3836            _ => None,
3837        };
3838        fmt_enum(fmt, self.0, name)
3839    }
3840}
3841#[doc = "See [XrHeadsetFitStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHeadsetFitStatusML)"]
3842#[repr(transparent)]
3843#[derive(Copy, Clone, Eq, PartialEq)]
3844pub struct HeadsetFitStatusML(i32);
3845impl HeadsetFitStatusML {
3846    #[doc = "Headset fit status not available for unknown reason."]
3847    pub const UNKNOWN: HeadsetFitStatusML = Self(0i32);
3848    #[doc = "Headset not worn."]
3849    pub const NOT_WORN: HeadsetFitStatusML = Self(1i32);
3850    #[doc = "Good fit."]
3851    pub const GOOD_FIT: HeadsetFitStatusML = Self(2i32);
3852    #[doc = "Bad fit."]
3853    pub const BAD_FIT: HeadsetFitStatusML = Self(3i32);
3854    pub fn from_raw(x: i32) -> Self {
3855        Self(x)
3856    }
3857    pub fn into_raw(self) -> i32 {
3858        self.0
3859    }
3860}
3861impl fmt::Debug for HeadsetFitStatusML {
3862    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3863        let name = match *self {
3864            Self::UNKNOWN => Some("UNKNOWN"),
3865            Self::NOT_WORN => Some("NOT_WORN"),
3866            Self::GOOD_FIT => Some("GOOD_FIT"),
3867            Self::BAD_FIT => Some("BAD_FIT"),
3868            _ => None,
3869        };
3870        fmt_enum(fmt, self.0, name)
3871    }
3872}
3873#[doc = "See [XrEyeCalibrationStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeCalibrationStatusML)"]
3874#[repr(transparent)]
3875#[derive(Copy, Clone, Eq, PartialEq)]
3876pub struct EyeCalibrationStatusML(i32);
3877impl EyeCalibrationStatusML {
3878    #[doc = "Eye calibration status not available for unknown reason."]
3879    pub const UNKNOWN: EyeCalibrationStatusML = Self(0i32);
3880    #[doc = "User has not performed the eye calibration step. Use system provided app to perform eye calibration."]
3881    pub const NONE: EyeCalibrationStatusML = Self(1i32);
3882    #[doc = "Eye calibration is of lower accuracy."]
3883    pub const COARSE: EyeCalibrationStatusML = Self(2i32);
3884    #[doc = "Eye calibration is of higher accuracy."]
3885    pub const FINE: EyeCalibrationStatusML = Self(3i32);
3886    pub fn from_raw(x: i32) -> Self {
3887        Self(x)
3888    }
3889    pub fn into_raw(self) -> i32 {
3890        self.0
3891    }
3892}
3893impl fmt::Debug for EyeCalibrationStatusML {
3894    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3895        let name = match *self {
3896            Self::UNKNOWN => Some("UNKNOWN"),
3897            Self::NONE => Some("NONE"),
3898            Self::COARSE => Some("COARSE"),
3899            Self::FINE => Some("FINE"),
3900            _ => None,
3901        };
3902        fmt_enum(fmt, self.0, name)
3903    }
3904}
3905#[doc = "See [XrLocalizationMapStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapStateML)"]
3906#[repr(transparent)]
3907#[derive(Copy, Clone, Eq, PartialEq)]
3908pub struct LocalizationMapStateML(i32);
3909impl LocalizationMapStateML {
3910    #[doc = "The system is not localized into a map. Features like Spatial Anchors relying on localization will not work."]
3911    pub const NOT_LOCALIZED: LocalizationMapStateML = Self(0i32);
3912    #[doc = "The system is localized into a map."]
3913    pub const LOCALIZED: LocalizationMapStateML = Self(1i32);
3914    #[doc = "The system is localizing into a map."]
3915    pub const LOCALIZATION_PENDING: LocalizationMapStateML = Self(2i32);
3916    #[doc = "Initial localization failed, the system will retry localization."]
3917    pub const LOCALIZATION_SLEEPING_BEFORE_RETRY: LocalizationMapStateML = Self(3i32);
3918    pub fn from_raw(x: i32) -> Self {
3919        Self(x)
3920    }
3921    pub fn into_raw(self) -> i32 {
3922        self.0
3923    }
3924}
3925impl fmt::Debug for LocalizationMapStateML {
3926    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3927        let name = match *self {
3928            Self::NOT_LOCALIZED => Some("NOT_LOCALIZED"),
3929            Self::LOCALIZED => Some("LOCALIZED"),
3930            Self::LOCALIZATION_PENDING => Some("LOCALIZATION_PENDING"),
3931            Self::LOCALIZATION_SLEEPING_BEFORE_RETRY => Some("LOCALIZATION_SLEEPING_BEFORE_RETRY"),
3932            _ => None,
3933        };
3934        fmt_enum(fmt, self.0, name)
3935    }
3936}
3937#[doc = "See [XrLocalizationMapTypeML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapTypeML)"]
3938#[repr(transparent)]
3939#[derive(Copy, Clone, Eq, PartialEq)]
3940pub struct LocalizationMapTypeML(i32);
3941impl LocalizationMapTypeML {
3942    #[doc = "The system is localized into an On-Device map, published anchors are not shared between different devices."]
3943    pub const ON_DEVICE: LocalizationMapTypeML = Self(0i32);
3944    #[doc = "The system is localized into a Cloud Map, anchors are shared per cloud account settings."]
3945    pub const CLOUD: LocalizationMapTypeML = Self(1i32);
3946    pub fn from_raw(x: i32) -> Self {
3947        Self(x)
3948    }
3949    pub fn into_raw(self) -> i32 {
3950        self.0
3951    }
3952}
3953impl fmt::Debug for LocalizationMapTypeML {
3954    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3955        let name = match *self {
3956            Self::ON_DEVICE => Some("ON_DEVICE"),
3957            Self::CLOUD => Some("CLOUD"),
3958            _ => None,
3959        };
3960        fmt_enum(fmt, self.0, name)
3961    }
3962}
3963#[doc = "See [XrLocalizationMapConfidenceML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapConfidenceML)"]
3964#[repr(transparent)]
3965#[derive(Copy, Clone, Eq, PartialEq)]
3966pub struct LocalizationMapConfidenceML(i32);
3967impl LocalizationMapConfidenceML {
3968    #[doc = "The localization map has poor confidence, systems relying on the localization map are likely to have poor performance."]
3969    pub const POOR: LocalizationMapConfidenceML = Self(0i32);
3970    #[doc = "The confidence is fair, current environmental conditions may adversely affect localization."]
3971    pub const FAIR: LocalizationMapConfidenceML = Self(1i32);
3972    #[doc = "The confidence is high, persistent content should be stable."]
3973    pub const GOOD: LocalizationMapConfidenceML = Self(2i32);
3974    #[doc = "This is a very high-confidence localization, persistent content will be very stable."]
3975    pub const EXCELLENT: LocalizationMapConfidenceML = Self(3i32);
3976    pub fn from_raw(x: i32) -> Self {
3977        Self(x)
3978    }
3979    pub fn into_raw(self) -> i32 {
3980        self.0
3981    }
3982}
3983impl fmt::Debug for LocalizationMapConfidenceML {
3984    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3985        let name = match *self {
3986            Self::POOR => Some("POOR"),
3987            Self::FAIR => Some("FAIR"),
3988            Self::GOOD => Some("GOOD"),
3989            Self::EXCELLENT => Some("EXCELLENT"),
3990            _ => None,
3991        };
3992        fmt_enum(fmt, self.0, name)
3993    }
3994}
3995#[doc = "See [XrMarkerDetectorProfileML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorProfileML)"]
3996#[repr(transparent)]
3997#[derive(Copy, Clone, Eq, PartialEq)]
3998pub struct MarkerDetectorProfileML(i32);
3999impl MarkerDetectorProfileML {
4000    #[doc = "Tracker profile that covers standard use cases. If this does not suite the needs of the application try the other profiles listed below."]
4001    pub const DEFAULT: MarkerDetectorProfileML = Self(0i32);
4002    #[doc = "Optimized for speed. Use this profile to reduce the compute load and increase detection/tracker speed. This can result in low accuracy poses."]
4003    pub const SPEED: MarkerDetectorProfileML = Self(1i32);
4004    #[doc = "Optimized for accuracy. Use this profile to optimize for accurate marker poses. This can cause increased load on the compute."]
4005    pub const ACCURACY: MarkerDetectorProfileML = Self(2i32);
4006    #[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."]
4007    pub const SMALL_TARGETS: MarkerDetectorProfileML = Self(3i32);
4008    #[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."]
4009    pub const LARGE_FOV: MarkerDetectorProfileML = Self(4i32);
4010    #[doc = "Custom Tracker Profile. The application can define a custom tracker profile. See XrMarkerDetectorCustomProfileInfoML for more details."]
4011    pub const CUSTOM: MarkerDetectorProfileML = Self(5i32);
4012    pub fn from_raw(x: i32) -> Self {
4013        Self(x)
4014    }
4015    pub fn into_raw(self) -> i32 {
4016        self.0
4017    }
4018}
4019impl fmt::Debug for MarkerDetectorProfileML {
4020    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4021        let name = match *self {
4022            Self::DEFAULT => Some("DEFAULT"),
4023            Self::SPEED => Some("SPEED"),
4024            Self::ACCURACY => Some("ACCURACY"),
4025            Self::SMALL_TARGETS => Some("SMALL_TARGETS"),
4026            Self::LARGE_FOV => Some("LARGE_FOV"),
4027            Self::CUSTOM => Some("CUSTOM"),
4028            _ => None,
4029        };
4030        fmt_enum(fmt, self.0, name)
4031    }
4032}
4033#[doc = "See [XrMarkerTypeML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerTypeML)"]
4034#[repr(transparent)]
4035#[derive(Copy, Clone, Eq, PartialEq)]
4036pub struct MarkerTypeML(i32);
4037impl MarkerTypeML {
4038    #[doc = "Aruco Marker detection and localization. The marker id of the Aruco marker is available via xrGetMarkerNumberML."]
4039    pub const ARUCO: MarkerTypeML = Self(0i32);
4040    #[doc = "AprilTag detection and localization. The marker id of the AprilTags is available via xrGetMarkerNumberML."]
4041    pub const APRIL_TAG: MarkerTypeML = Self(1i32);
4042    #[doc = "QR code detection and localization. The contents of the QR code is available via xrGetMarkerStringML."]
4043    pub const QR: MarkerTypeML = Self(2i32);
4044    #[doc = "EAN-13, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
4045    pub const EAN_13: MarkerTypeML = Self(3i32);
4046    #[doc = "UPC-A, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
4047    pub const UPC_A: MarkerTypeML = Self(4i32);
4048    #[doc = "Code 128, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
4049    pub const CODE_128: MarkerTypeML = Self(5i32);
4050    pub fn from_raw(x: i32) -> Self {
4051        Self(x)
4052    }
4053    pub fn into_raw(self) -> i32 {
4054        self.0
4055    }
4056}
4057impl fmt::Debug for MarkerTypeML {
4058    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4059        let name = match *self {
4060            Self::ARUCO => Some("ARUCO"),
4061            Self::APRIL_TAG => Some("APRIL_TAG"),
4062            Self::QR => Some("QR"),
4063            Self::EAN_13 => Some("EAN_13"),
4064            Self::UPC_A => Some("UPC_A"),
4065            Self::CODE_128 => Some("CODE_128"),
4066            _ => None,
4067        };
4068        fmt_enum(fmt, self.0, name)
4069    }
4070}
4071#[doc = "See [XrMarkerArucoDictML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerArucoDictML)"]
4072#[repr(transparent)]
4073#[derive(Copy, Clone, Eq, PartialEq)]
4074pub struct MarkerArucoDictML(i32);
4075impl MarkerArucoDictML {
4076    #[doc = "4 by 4 pixel Aruco marker dictionary with 50 IDs."]
4077    pub const DICT_4X4_50: MarkerArucoDictML = Self(0i32);
4078    #[doc = "4 by 4 pixel Aruco marker dictionary with 100 IDs."]
4079    pub const DICT_4X4_100: MarkerArucoDictML = Self(1i32);
4080    #[doc = "4 by 4 pixel Aruco marker dictionary with 250 IDs."]
4081    pub const DICT_4X4_250: MarkerArucoDictML = Self(2i32);
4082    #[doc = "4 by 4 pixel Aruco marker dictionary with 1000 IDs."]
4083    pub const DICT_4X4_1000: MarkerArucoDictML = Self(3i32);
4084    #[doc = "5 by 5 pixel Aruco marker dictionary with 50 IDs."]
4085    pub const DICT_5X5_50: MarkerArucoDictML = Self(4i32);
4086    #[doc = "5 by 5 pixel Aruco marker dictionary with 100 IDs."]
4087    pub const DICT_5X5_100: MarkerArucoDictML = Self(5i32);
4088    #[doc = "5 by 5 pixel Aruco marker dictionary with 250 IDs."]
4089    pub const DICT_5X5_250: MarkerArucoDictML = Self(6i32);
4090    #[doc = "5 by 5 pixel Aruco marker dictionary with 1000 IDs."]
4091    pub const DICT_5X5_1000: MarkerArucoDictML = Self(7i32);
4092    #[doc = "6 by 6 pixel Aruco marker dictionary with 50 IDs."]
4093    pub const DICT_6X6_50: MarkerArucoDictML = Self(8i32);
4094    #[doc = "6 by 6 pixel Aruco marker dictionary with 100 IDs."]
4095    pub const DICT_6X6_100: MarkerArucoDictML = Self(9i32);
4096    #[doc = "6 by 6 pixel Aruco marker dictionary with 250 IDs."]
4097    pub const DICT_6X6_250: MarkerArucoDictML = Self(10i32);
4098    #[doc = "6 by 6 pixel Aruco marker dictionary with 1000 IDs."]
4099    pub const DICT_6X6_1000: MarkerArucoDictML = Self(11i32);
4100    #[doc = "7 by 7 pixel Aruco marker dictionary with 50 IDs."]
4101    pub const DICT_7X7_50: MarkerArucoDictML = Self(12i32);
4102    #[doc = "7 by 7 pixel Aruco marker dictionary with 100 IDs."]
4103    pub const DICT_7X7_100: MarkerArucoDictML = Self(13i32);
4104    #[doc = "7 by 7 pixel Aruco marker dictionary with 250 IDs."]
4105    pub const DICT_7X7_250: MarkerArucoDictML = Self(14i32);
4106    #[doc = "7 by 7 pixel Aruco marker dictionary with 1000 IDs."]
4107    pub const DICT_7X7_1000: MarkerArucoDictML = Self(15i32);
4108    pub fn from_raw(x: i32) -> Self {
4109        Self(x)
4110    }
4111    pub fn into_raw(self) -> i32 {
4112        self.0
4113    }
4114}
4115impl fmt::Debug for MarkerArucoDictML {
4116    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4117        let name = match *self {
4118            Self::DICT_4X4_50 => Some("DICT_4X4_50"),
4119            Self::DICT_4X4_100 => Some("DICT_4X4_100"),
4120            Self::DICT_4X4_250 => Some("DICT_4X4_250"),
4121            Self::DICT_4X4_1000 => Some("DICT_4X4_1000"),
4122            Self::DICT_5X5_50 => Some("DICT_5X5_50"),
4123            Self::DICT_5X5_100 => Some("DICT_5X5_100"),
4124            Self::DICT_5X5_250 => Some("DICT_5X5_250"),
4125            Self::DICT_5X5_1000 => Some("DICT_5X5_1000"),
4126            Self::DICT_6X6_50 => Some("DICT_6X6_50"),
4127            Self::DICT_6X6_100 => Some("DICT_6X6_100"),
4128            Self::DICT_6X6_250 => Some("DICT_6X6_250"),
4129            Self::DICT_6X6_1000 => Some("DICT_6X6_1000"),
4130            Self::DICT_7X7_50 => Some("DICT_7X7_50"),
4131            Self::DICT_7X7_100 => Some("DICT_7X7_100"),
4132            Self::DICT_7X7_250 => Some("DICT_7X7_250"),
4133            Self::DICT_7X7_1000 => Some("DICT_7X7_1000"),
4134            _ => None,
4135        };
4136        fmt_enum(fmt, self.0, name)
4137    }
4138}
4139#[doc = "See [XrMarkerAprilTagDictML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerAprilTagDictML)"]
4140#[repr(transparent)]
4141#[derive(Copy, Clone, Eq, PartialEq)]
4142pub struct MarkerAprilTagDictML(i32);
4143impl MarkerAprilTagDictML {
4144    #[doc = "4 by 4 bits, minimum Hamming distance between any two codes = 5, 30 codes."]
4145    pub const DICT_16H5: MarkerAprilTagDictML = Self(0i32);
4146    #[doc = "5 by 5 bits, minimum Hamming distance between any two codes = 9, 35 codes."]
4147    pub const DICT_25H9: MarkerAprilTagDictML = Self(1i32);
4148    #[doc = "6 by 6 bits, minimum Hamming distance between any two codes = 10, 2320 codes."]
4149    pub const DICT_36H10: MarkerAprilTagDictML = Self(2i32);
4150    #[doc = "6 by 6 bits, minimum Hamming distance between any two codes = 11, 587 codes."]
4151    pub const DICT_36H11: MarkerAprilTagDictML = Self(3i32);
4152    pub fn from_raw(x: i32) -> Self {
4153        Self(x)
4154    }
4155    pub fn into_raw(self) -> i32 {
4156        self.0
4157    }
4158}
4159impl fmt::Debug for MarkerAprilTagDictML {
4160    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4161        let name = match *self {
4162            Self::DICT_16H5 => Some("DICT_16H5"),
4163            Self::DICT_25H9 => Some("DICT_25H9"),
4164            Self::DICT_36H10 => Some("DICT_36H10"),
4165            Self::DICT_36H11 => Some("DICT_36H11"),
4166            _ => None,
4167        };
4168        fmt_enum(fmt, self.0, name)
4169    }
4170}
4171#[doc = "See [XrMarkerDetectorFpsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorFpsML)"]
4172#[repr(transparent)]
4173#[derive(Copy, Clone, Eq, PartialEq)]
4174pub struct MarkerDetectorFpsML(i32);
4175impl MarkerDetectorFpsML {
4176    #[doc = "Low FPS."]
4177    pub const LOW: MarkerDetectorFpsML = Self(0i32);
4178    #[doc = "Medium FPS."]
4179    pub const MEDIUM: MarkerDetectorFpsML = Self(1i32);
4180    #[doc = "High FPS."]
4181    pub const HIGH: MarkerDetectorFpsML = Self(2i32);
4182    #[doc = "Max possible FPS."]
4183    pub const MAX: MarkerDetectorFpsML = Self(3i32);
4184    pub fn from_raw(x: i32) -> Self {
4185        Self(x)
4186    }
4187    pub fn into_raw(self) -> i32 {
4188        self.0
4189    }
4190}
4191impl fmt::Debug for MarkerDetectorFpsML {
4192    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4193        let name = match *self {
4194            Self::LOW => Some("LOW"),
4195            Self::MEDIUM => Some("MEDIUM"),
4196            Self::HIGH => Some("HIGH"),
4197            Self::MAX => Some("MAX"),
4198            _ => None,
4199        };
4200        fmt_enum(fmt, self.0, name)
4201    }
4202}
4203#[doc = "See [XrMarkerDetectorResolutionML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorResolutionML)"]
4204#[repr(transparent)]
4205#[derive(Copy, Clone, Eq, PartialEq)]
4206pub struct MarkerDetectorResolutionML(i32);
4207impl MarkerDetectorResolutionML {
4208    #[doc = "Low Resolution."]
4209    pub const LOW: MarkerDetectorResolutionML = Self(0i32);
4210    #[doc = "Medium Resolution."]
4211    pub const MEDIUM: MarkerDetectorResolutionML = Self(1i32);
4212    #[doc = "High Resolution."]
4213    pub const HIGH: MarkerDetectorResolutionML = Self(2i32);
4214    pub fn from_raw(x: i32) -> Self {
4215        Self(x)
4216    }
4217    pub fn into_raw(self) -> i32 {
4218        self.0
4219    }
4220}
4221impl fmt::Debug for MarkerDetectorResolutionML {
4222    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4223        let name = match *self {
4224            Self::LOW => Some("LOW"),
4225            Self::MEDIUM => Some("MEDIUM"),
4226            Self::HIGH => Some("HIGH"),
4227            _ => None,
4228        };
4229        fmt_enum(fmt, self.0, name)
4230    }
4231}
4232#[doc = "See [XrMarkerDetectorCameraML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCameraML)"]
4233#[repr(transparent)]
4234#[derive(Copy, Clone, Eq, PartialEq)]
4235pub struct MarkerDetectorCameraML(i32);
4236impl MarkerDetectorCameraML {
4237    #[doc = "Single RGB camera."]
4238    pub const RGB_CAMERA: MarkerDetectorCameraML = Self(0i32);
4239    #[doc = "One or more world cameras."]
4240    pub const WORLD_CAMERAS: MarkerDetectorCameraML = Self(1i32);
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 MarkerDetectorCameraML {
4249    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4250        let name = match *self {
4251            Self::RGB_CAMERA => Some("RGB_CAMERA"),
4252            Self::WORLD_CAMERAS => Some("WORLD_CAMERAS"),
4253            _ => None,
4254        };
4255        fmt_enum(fmt, self.0, name)
4256    }
4257}
4258#[doc = "See [XrMarkerDetectorCornerRefineMethodML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCornerRefineMethodML)"]
4259#[repr(transparent)]
4260#[derive(Copy, Clone, Eq, PartialEq)]
4261pub struct MarkerDetectorCornerRefineMethodML(i32);
4262impl MarkerDetectorCornerRefineMethodML {
4263    #[doc = "No refinement. Inaccurate corners."]
4264    pub const NONE: MarkerDetectorCornerRefineMethodML = Self(0i32);
4265    #[doc = "Subpixel refinement. Corners have subpixel coordinates. High detection rate, very fast, reasonable accuracy."]
4266    pub const SUBPIX: MarkerDetectorCornerRefineMethodML = Self(1i32);
4267    #[doc = "Contour refinement. High detection rate, fast, reasonable accuracy."]
4268    pub const CONTOUR: MarkerDetectorCornerRefineMethodML = Self(2i32);
4269    #[doc = "AprilTag refinement. Reasonable detection rate, slowest, but very accurate. Only valid with AprilTags."]
4270    pub const APRIL_TAG: MarkerDetectorCornerRefineMethodML = Self(3i32);
4271    pub fn from_raw(x: i32) -> Self {
4272        Self(x)
4273    }
4274    pub fn into_raw(self) -> i32 {
4275        self.0
4276    }
4277}
4278impl fmt::Debug for MarkerDetectorCornerRefineMethodML {
4279    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4280        let name = match *self {
4281            Self::NONE => Some("NONE"),
4282            Self::SUBPIX => Some("SUBPIX"),
4283            Self::CONTOUR => Some("CONTOUR"),
4284            Self::APRIL_TAG => Some("APRIL_TAG"),
4285            _ => None,
4286        };
4287        fmt_enum(fmt, self.0, name)
4288    }
4289}
4290#[doc = "See [XrMarkerDetectorFullAnalysisIntervalML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorFullAnalysisIntervalML)"]
4291#[repr(transparent)]
4292#[derive(Copy, Clone, Eq, PartialEq)]
4293pub struct MarkerDetectorFullAnalysisIntervalML(i32);
4294impl MarkerDetectorFullAnalysisIntervalML {
4295    #[doc = "Detector analyzes every frame fully."]
4296    pub const MAX: MarkerDetectorFullAnalysisIntervalML = Self(0i32);
4297    #[doc = "Detector analyzes frame fully very often."]
4298    pub const FAST: MarkerDetectorFullAnalysisIntervalML = Self(1i32);
4299    #[doc = "Detector analyzes frame fully a few times per second."]
4300    pub const MEDIUM: MarkerDetectorFullAnalysisIntervalML = Self(2i32);
4301    #[doc = "Detector analyzes frame fully about every second."]
4302    pub const SLOW: MarkerDetectorFullAnalysisIntervalML = Self(3i32);
4303    pub fn from_raw(x: i32) -> Self {
4304        Self(x)
4305    }
4306    pub fn into_raw(self) -> i32 {
4307        self.0
4308    }
4309}
4310impl fmt::Debug for MarkerDetectorFullAnalysisIntervalML {
4311    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4312        let name = match *self {
4313            Self::MAX => Some("MAX"),
4314            Self::FAST => Some("FAST"),
4315            Self::MEDIUM => Some("MEDIUM"),
4316            Self::SLOW => Some("SLOW"),
4317            _ => None,
4318        };
4319        fmt_enum(fmt, self.0, name)
4320    }
4321}
4322#[doc = "See [XrMarkerDetectorStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorStatusML)"]
4323#[repr(transparent)]
4324#[derive(Copy, Clone, Eq, PartialEq)]
4325pub struct MarkerDetectorStatusML(i32);
4326impl MarkerDetectorStatusML {
4327    #[doc = "The marker detector is working on a new snapshot."]
4328    pub const PENDING: MarkerDetectorStatusML = Self(0i32);
4329    #[doc = "The marker detector is ready to be inspected."]
4330    pub const READY: MarkerDetectorStatusML = Self(1i32);
4331    #[doc = "The marker detector has encountered a fatal error."]
4332    pub const ERROR: MarkerDetectorStatusML = Self(2i32);
4333    pub fn from_raw(x: i32) -> Self {
4334        Self(x)
4335    }
4336    pub fn into_raw(self) -> i32 {
4337        self.0
4338    }
4339}
4340impl fmt::Debug for MarkerDetectorStatusML {
4341    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4342        let name = match *self {
4343            Self::PENDING => Some("PENDING"),
4344            Self::READY => Some("READY"),
4345            Self::ERROR => Some("ERROR"),
4346            _ => None,
4347        };
4348        fmt_enum(fmt, self.0, name)
4349    }
4350}
4351#[doc = "See [XrFutureStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureStateEXT)"]
4352#[repr(transparent)]
4353#[derive(Copy, Clone, Eq, PartialEq)]
4354pub struct FutureStateEXT(i32);
4355impl FutureStateEXT {
4356    pub const PENDING: FutureStateEXT = Self(1i32);
4357    pub const READY: FutureStateEXT = Self(2i32);
4358    pub fn from_raw(x: i32) -> Self {
4359        Self(x)
4360    }
4361    pub fn into_raw(self) -> i32 {
4362        self.0
4363    }
4364}
4365impl fmt::Debug for FutureStateEXT {
4366    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4367        let name = match *self {
4368            Self::PENDING => Some("PENDING"),
4369            Self::READY => Some("READY"),
4370            _ => None,
4371        };
4372        fmt_enum(fmt, self.0, name)
4373    }
4374}
4375#[doc = "See [XrHandEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandEXT)"]
4376#[repr(transparent)]
4377#[derive(Copy, Clone, Eq, PartialEq)]
4378pub struct HandEXT(i32);
4379impl HandEXT {
4380    pub const LEFT: HandEXT = Self(1i32);
4381    pub const RIGHT: HandEXT = Self(2i32);
4382    pub fn from_raw(x: i32) -> Self {
4383        Self(x)
4384    }
4385    pub fn into_raw(self) -> i32 {
4386        self.0
4387    }
4388}
4389impl fmt::Debug for HandEXT {
4390    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4391        let name = match *self {
4392            Self::LEFT => Some("LEFT"),
4393            Self::RIGHT => Some("RIGHT"),
4394            _ => None,
4395        };
4396        fmt_enum(fmt, self.0, name)
4397    }
4398}
4399#[doc = "See [XrHandJointEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointEXT)"]
4400#[repr(transparent)]
4401#[derive(Copy, Clone, Eq, PartialEq)]
4402pub struct HandJointEXT(i32);
4403impl HandJointEXT {
4404    pub const PALM: HandJointEXT = Self(0i32);
4405    pub const WRIST: HandJointEXT = Self(1i32);
4406    pub const THUMB_METACARPAL: HandJointEXT = Self(2i32);
4407    pub const THUMB_PROXIMAL: HandJointEXT = Self(3i32);
4408    pub const THUMB_DISTAL: HandJointEXT = Self(4i32);
4409    pub const THUMB_TIP: HandJointEXT = Self(5i32);
4410    pub const INDEX_METACARPAL: HandJointEXT = Self(6i32);
4411    pub const INDEX_PROXIMAL: HandJointEXT = Self(7i32);
4412    pub const INDEX_INTERMEDIATE: HandJointEXT = Self(8i32);
4413    pub const INDEX_DISTAL: HandJointEXT = Self(9i32);
4414    pub const INDEX_TIP: HandJointEXT = Self(10i32);
4415    pub const MIDDLE_METACARPAL: HandJointEXT = Self(11i32);
4416    pub const MIDDLE_PROXIMAL: HandJointEXT = Self(12i32);
4417    pub const MIDDLE_INTERMEDIATE: HandJointEXT = Self(13i32);
4418    pub const MIDDLE_DISTAL: HandJointEXT = Self(14i32);
4419    pub const MIDDLE_TIP: HandJointEXT = Self(15i32);
4420    pub const RING_METACARPAL: HandJointEXT = Self(16i32);
4421    pub const RING_PROXIMAL: HandJointEXT = Self(17i32);
4422    pub const RING_INTERMEDIATE: HandJointEXT = Self(18i32);
4423    pub const RING_DISTAL: HandJointEXT = Self(19i32);
4424    pub const RING_TIP: HandJointEXT = Self(20i32);
4425    pub const LITTLE_METACARPAL: HandJointEXT = Self(21i32);
4426    pub const LITTLE_PROXIMAL: HandJointEXT = Self(22i32);
4427    pub const LITTLE_INTERMEDIATE: HandJointEXT = Self(23i32);
4428    pub const LITTLE_DISTAL: HandJointEXT = Self(24i32);
4429    pub const LITTLE_TIP: HandJointEXT = Self(25i32);
4430    pub fn from_raw(x: i32) -> Self {
4431        Self(x)
4432    }
4433    pub fn into_raw(self) -> i32 {
4434        self.0
4435    }
4436}
4437impl fmt::Debug for HandJointEXT {
4438    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4439        let name = match *self {
4440            Self::PALM => Some("PALM"),
4441            Self::WRIST => Some("WRIST"),
4442            Self::THUMB_METACARPAL => Some("THUMB_METACARPAL"),
4443            Self::THUMB_PROXIMAL => Some("THUMB_PROXIMAL"),
4444            Self::THUMB_DISTAL => Some("THUMB_DISTAL"),
4445            Self::THUMB_TIP => Some("THUMB_TIP"),
4446            Self::INDEX_METACARPAL => Some("INDEX_METACARPAL"),
4447            Self::INDEX_PROXIMAL => Some("INDEX_PROXIMAL"),
4448            Self::INDEX_INTERMEDIATE => Some("INDEX_INTERMEDIATE"),
4449            Self::INDEX_DISTAL => Some("INDEX_DISTAL"),
4450            Self::INDEX_TIP => Some("INDEX_TIP"),
4451            Self::MIDDLE_METACARPAL => Some("MIDDLE_METACARPAL"),
4452            Self::MIDDLE_PROXIMAL => Some("MIDDLE_PROXIMAL"),
4453            Self::MIDDLE_INTERMEDIATE => Some("MIDDLE_INTERMEDIATE"),
4454            Self::MIDDLE_DISTAL => Some("MIDDLE_DISTAL"),
4455            Self::MIDDLE_TIP => Some("MIDDLE_TIP"),
4456            Self::RING_METACARPAL => Some("RING_METACARPAL"),
4457            Self::RING_PROXIMAL => Some("RING_PROXIMAL"),
4458            Self::RING_INTERMEDIATE => Some("RING_INTERMEDIATE"),
4459            Self::RING_DISTAL => Some("RING_DISTAL"),
4460            Self::RING_TIP => Some("RING_TIP"),
4461            Self::LITTLE_METACARPAL => Some("LITTLE_METACARPAL"),
4462            Self::LITTLE_PROXIMAL => Some("LITTLE_PROXIMAL"),
4463            Self::LITTLE_INTERMEDIATE => Some("LITTLE_INTERMEDIATE"),
4464            Self::LITTLE_DISTAL => Some("LITTLE_DISTAL"),
4465            Self::LITTLE_TIP => Some("LITTLE_TIP"),
4466            _ => None,
4467        };
4468        fmt_enum(fmt, self.0, name)
4469    }
4470}
4471#[doc = "See [XrHandJointSetEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointSetEXT)"]
4472#[repr(transparent)]
4473#[derive(Copy, Clone, Eq, PartialEq)]
4474pub struct HandJointSetEXT(i32);
4475impl HandJointSetEXT {
4476    pub const DEFAULT: HandJointSetEXT = Self(0i32);
4477    pub const HAND_WITH_FOREARM_ULTRA: HandJointSetEXT = Self(1000149000i32);
4478    pub fn from_raw(x: i32) -> Self {
4479        Self(x)
4480    }
4481    pub fn into_raw(self) -> i32 {
4482        self.0
4483    }
4484}
4485impl fmt::Debug for HandJointSetEXT {
4486    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4487        let name = match *self {
4488            Self::DEFAULT => Some("DEFAULT"),
4489            Self::HAND_WITH_FOREARM_ULTRA => Some("HAND_WITH_FOREARM_ULTRA"),
4490            _ => None,
4491        };
4492        fmt_enum(fmt, self.0, name)
4493    }
4494}
4495#[doc = "See [XrHandJointsMotionRangeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsMotionRangeEXT)"]
4496#[repr(transparent)]
4497#[derive(Copy, Clone, Eq, PartialEq)]
4498pub struct HandJointsMotionRangeEXT(i32);
4499impl HandJointsMotionRangeEXT {
4500    pub const UNOBSTRUCTED: HandJointsMotionRangeEXT = Self(1i32);
4501    pub const CONFORMING_TO_CONTROLLER: HandJointsMotionRangeEXT = Self(2i32);
4502    pub fn from_raw(x: i32) -> Self {
4503        Self(x)
4504    }
4505    pub fn into_raw(self) -> i32 {
4506        self.0
4507    }
4508}
4509impl fmt::Debug for HandJointsMotionRangeEXT {
4510    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4511        let name = match *self {
4512            Self::UNOBSTRUCTED => Some("UNOBSTRUCTED"),
4513            Self::CONFORMING_TO_CONTROLLER => Some("CONFORMING_TO_CONTROLLER"),
4514            _ => None,
4515        };
4516        fmt_enum(fmt, self.0, name)
4517    }
4518}
4519#[doc = "See [XrHandTrackingDataSourceEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceEXT)"]
4520#[repr(transparent)]
4521#[derive(Copy, Clone, Eq, PartialEq)]
4522pub struct HandTrackingDataSourceEXT(i32);
4523impl HandTrackingDataSourceEXT {
4524    #[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."]
4525    pub const UNOBSTRUCTED: HandTrackingDataSourceEXT = Self(1i32);
4526    #[doc = "This data source value indicates hand joints are inferred based on motion controller state."]
4527    pub const CONTROLLER: HandTrackingDataSourceEXT = Self(2i32);
4528    pub fn from_raw(x: i32) -> Self {
4529        Self(x)
4530    }
4531    pub fn into_raw(self) -> i32 {
4532        self.0
4533    }
4534}
4535impl fmt::Debug for HandTrackingDataSourceEXT {
4536    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4537        let name = match *self {
4538            Self::UNOBSTRUCTED => Some("UNOBSTRUCTED"),
4539            Self::CONTROLLER => Some("CONTROLLER"),
4540            _ => None,
4541        };
4542        fmt_enum(fmt, self.0, name)
4543    }
4544}
4545#[doc = "See [XrHandPoseTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandPoseTypeMSFT)"]
4546#[repr(transparent)]
4547#[derive(Copy, Clone, Eq, PartialEq)]
4548pub struct HandPoseTypeMSFT(i32);
4549impl HandPoseTypeMSFT {
4550    pub const TRACKED: HandPoseTypeMSFT = Self(0i32);
4551    pub const REFERENCE_OPEN_PALM: HandPoseTypeMSFT = Self(1i32);
4552    pub fn from_raw(x: i32) -> Self {
4553        Self(x)
4554    }
4555    pub fn into_raw(self) -> i32 {
4556        self.0
4557    }
4558}
4559impl fmt::Debug for HandPoseTypeMSFT {
4560    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4561        let name = match *self {
4562            Self::TRACKED => Some("TRACKED"),
4563            Self::REFERENCE_OPEN_PALM => Some("REFERENCE_OPEN_PALM"),
4564            _ => None,
4565        };
4566        fmt_enum(fmt, self.0, name)
4567    }
4568}
4569#[doc = "See [XrSceneObjectTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneObjectTypeMSFT)"]
4570#[repr(transparent)]
4571#[derive(Copy, Clone, Eq, PartialEq)]
4572pub struct SceneObjectTypeMSFT(i32);
4573impl SceneObjectTypeMSFT {
4574    pub const UNCATEGORIZED: SceneObjectTypeMSFT = Self(-1i32);
4575    pub const BACKGROUND: SceneObjectTypeMSFT = Self(1i32);
4576    pub const WALL: SceneObjectTypeMSFT = Self(2i32);
4577    pub const FLOOR: SceneObjectTypeMSFT = Self(3i32);
4578    pub const CEILING: SceneObjectTypeMSFT = Self(4i32);
4579    pub const PLATFORM: SceneObjectTypeMSFT = Self(5i32);
4580    pub const INFERRED: SceneObjectTypeMSFT = Self(6i32);
4581    pub fn from_raw(x: i32) -> Self {
4582        Self(x)
4583    }
4584    pub fn into_raw(self) -> i32 {
4585        self.0
4586    }
4587}
4588impl fmt::Debug for SceneObjectTypeMSFT {
4589    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4590        let name = match *self {
4591            Self::UNCATEGORIZED => Some("UNCATEGORIZED"),
4592            Self::BACKGROUND => Some("BACKGROUND"),
4593            Self::WALL => Some("WALL"),
4594            Self::FLOOR => Some("FLOOR"),
4595            Self::CEILING => Some("CEILING"),
4596            Self::PLATFORM => Some("PLATFORM"),
4597            Self::INFERRED => Some("INFERRED"),
4598            _ => None,
4599        };
4600        fmt_enum(fmt, self.0, name)
4601    }
4602}
4603#[doc = "See [XrScenePlaneAlignmentTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrScenePlaneAlignmentTypeMSFT)"]
4604#[repr(transparent)]
4605#[derive(Copy, Clone, Eq, PartialEq)]
4606pub struct ScenePlaneAlignmentTypeMSFT(i32);
4607impl ScenePlaneAlignmentTypeMSFT {
4608    pub const NON_ORTHOGONAL: ScenePlaneAlignmentTypeMSFT = Self(0i32);
4609    pub const HORIZONTAL: ScenePlaneAlignmentTypeMSFT = Self(1i32);
4610    pub const VERTICAL: ScenePlaneAlignmentTypeMSFT = Self(2i32);
4611    pub fn from_raw(x: i32) -> Self {
4612        Self(x)
4613    }
4614    pub fn into_raw(self) -> i32 {
4615        self.0
4616    }
4617}
4618impl fmt::Debug for ScenePlaneAlignmentTypeMSFT {
4619    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4620        let name = match *self {
4621            Self::NON_ORTHOGONAL => Some("NON_ORTHOGONAL"),
4622            Self::HORIZONTAL => Some("HORIZONTAL"),
4623            Self::VERTICAL => Some("VERTICAL"),
4624            _ => None,
4625        };
4626        fmt_enum(fmt, self.0, name)
4627    }
4628}
4629#[doc = "See [XrSceneComputeStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeStateMSFT)"]
4630#[repr(transparent)]
4631#[derive(Copy, Clone, Eq, PartialEq)]
4632pub struct SceneComputeStateMSFT(i32);
4633impl SceneComputeStateMSFT {
4634    pub const NONE: SceneComputeStateMSFT = Self(0i32);
4635    pub const UPDATING: SceneComputeStateMSFT = Self(1i32);
4636    pub const COMPLETED: SceneComputeStateMSFT = Self(2i32);
4637    pub const COMPLETED_WITH_ERROR: SceneComputeStateMSFT = Self(3i32);
4638    pub fn from_raw(x: i32) -> Self {
4639        Self(x)
4640    }
4641    pub fn into_raw(self) -> i32 {
4642        self.0
4643    }
4644}
4645impl fmt::Debug for SceneComputeStateMSFT {
4646    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4647        let name = match *self {
4648            Self::NONE => Some("NONE"),
4649            Self::UPDATING => Some("UPDATING"),
4650            Self::COMPLETED => Some("COMPLETED"),
4651            Self::COMPLETED_WITH_ERROR => Some("COMPLETED_WITH_ERROR"),
4652            _ => None,
4653        };
4654        fmt_enum(fmt, self.0, name)
4655    }
4656}
4657#[doc = "See [XrSceneComputeFeatureMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeFeatureMSFT)"]
4658#[repr(transparent)]
4659#[derive(Copy, Clone, Eq, PartialEq)]
4660pub struct SceneComputeFeatureMSFT(i32);
4661impl SceneComputeFeatureMSFT {
4662    pub const PLANE: SceneComputeFeatureMSFT = Self(1i32);
4663    pub const PLANE_MESH: SceneComputeFeatureMSFT = Self(2i32);
4664    pub const VISUAL_MESH: SceneComputeFeatureMSFT = Self(3i32);
4665    pub const COLLIDER_MESH: SceneComputeFeatureMSFT = Self(4i32);
4666    pub const SERIALIZE_SCENE: SceneComputeFeatureMSFT = Self(1000098000i32);
4667    pub const MARKER: SceneComputeFeatureMSFT = Self(1000147000i32);
4668    pub fn from_raw(x: i32) -> Self {
4669        Self(x)
4670    }
4671    pub fn into_raw(self) -> i32 {
4672        self.0
4673    }
4674}
4675impl fmt::Debug for SceneComputeFeatureMSFT {
4676    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4677        let name = match *self {
4678            Self::PLANE => Some("PLANE"),
4679            Self::PLANE_MESH => Some("PLANE_MESH"),
4680            Self::VISUAL_MESH => Some("VISUAL_MESH"),
4681            Self::COLLIDER_MESH => Some("COLLIDER_MESH"),
4682            Self::SERIALIZE_SCENE => Some("SERIALIZE_SCENE"),
4683            Self::MARKER => Some("MARKER"),
4684            _ => None,
4685        };
4686        fmt_enum(fmt, self.0, name)
4687    }
4688}
4689#[doc = "See [XrSceneComputeConsistencyMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeConsistencyMSFT)"]
4690#[repr(transparent)]
4691#[derive(Copy, Clone, Eq, PartialEq)]
4692pub struct SceneComputeConsistencyMSFT(i32);
4693impl SceneComputeConsistencyMSFT {
4694    pub const SNAPSHOT_COMPLETE: SceneComputeConsistencyMSFT = Self(1i32);
4695    pub const SNAPSHOT_INCOMPLETE_FAST: SceneComputeConsistencyMSFT = Self(2i32);
4696    pub const OCCLUSION_OPTIMIZED: SceneComputeConsistencyMSFT = Self(3i32);
4697    pub fn from_raw(x: i32) -> Self {
4698        Self(x)
4699    }
4700    pub fn into_raw(self) -> i32 {
4701        self.0
4702    }
4703}
4704impl fmt::Debug for SceneComputeConsistencyMSFT {
4705    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4706        let name = match *self {
4707            Self::SNAPSHOT_COMPLETE => Some("SNAPSHOT_COMPLETE"),
4708            Self::SNAPSHOT_INCOMPLETE_FAST => Some("SNAPSHOT_INCOMPLETE_FAST"),
4709            Self::OCCLUSION_OPTIMIZED => Some("OCCLUSION_OPTIMIZED"),
4710            _ => None,
4711        };
4712        fmt_enum(fmt, self.0, name)
4713    }
4714}
4715#[doc = "See [XrSceneComponentTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComponentTypeMSFT)"]
4716#[repr(transparent)]
4717#[derive(Copy, Clone, Eq, PartialEq)]
4718pub struct SceneComponentTypeMSFT(i32);
4719impl SceneComponentTypeMSFT {
4720    pub const INVALID: SceneComponentTypeMSFT = Self(-1i32);
4721    pub const OBJECT: SceneComponentTypeMSFT = Self(1i32);
4722    pub const PLANE: SceneComponentTypeMSFT = Self(2i32);
4723    pub const VISUAL_MESH: SceneComponentTypeMSFT = Self(3i32);
4724    pub const COLLIDER_MESH: SceneComponentTypeMSFT = Self(4i32);
4725    pub const SERIALIZED_SCENE_FRAGMENT: SceneComponentTypeMSFT = Self(1000098000i32);
4726    pub const MARKER: SceneComponentTypeMSFT = Self(1000147000i32);
4727    pub fn from_raw(x: i32) -> Self {
4728        Self(x)
4729    }
4730    pub fn into_raw(self) -> i32 {
4731        self.0
4732    }
4733}
4734impl fmt::Debug for SceneComponentTypeMSFT {
4735    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4736        let name = match *self {
4737            Self::INVALID => Some("INVALID"),
4738            Self::OBJECT => Some("OBJECT"),
4739            Self::PLANE => Some("PLANE"),
4740            Self::VISUAL_MESH => Some("VISUAL_MESH"),
4741            Self::COLLIDER_MESH => Some("COLLIDER_MESH"),
4742            Self::SERIALIZED_SCENE_FRAGMENT => Some("SERIALIZED_SCENE_FRAGMENT"),
4743            Self::MARKER => Some("MARKER"),
4744            _ => None,
4745        };
4746        fmt_enum(fmt, self.0, name)
4747    }
4748}
4749#[doc = "See [XrMeshComputeLodMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMeshComputeLodMSFT)"]
4750#[repr(transparent)]
4751#[derive(Copy, Clone, Eq, PartialEq)]
4752pub struct MeshComputeLodMSFT(i32);
4753impl MeshComputeLodMSFT {
4754    pub const COARSE: MeshComputeLodMSFT = Self(1i32);
4755    pub const MEDIUM: MeshComputeLodMSFT = Self(2i32);
4756    pub const FINE: MeshComputeLodMSFT = Self(3i32);
4757    pub const UNLIMITED: MeshComputeLodMSFT = Self(4i32);
4758    pub fn from_raw(x: i32) -> Self {
4759        Self(x)
4760    }
4761    pub fn into_raw(self) -> i32 {
4762        self.0
4763    }
4764}
4765impl fmt::Debug for MeshComputeLodMSFT {
4766    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4767        let name = match *self {
4768            Self::COARSE => Some("COARSE"),
4769            Self::MEDIUM => Some("MEDIUM"),
4770            Self::FINE => Some("FINE"),
4771            Self::UNLIMITED => Some("UNLIMITED"),
4772            _ => None,
4773        };
4774        fmt_enum(fmt, self.0, name)
4775    }
4776}
4777#[doc = "See [XrSceneMarkerTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMarkerTypeMSFT)"]
4778#[repr(transparent)]
4779#[derive(Copy, Clone, Eq, PartialEq)]
4780pub struct SceneMarkerTypeMSFT(i32);
4781impl SceneMarkerTypeMSFT {
4782    pub const QR_CODE: SceneMarkerTypeMSFT = Self(1i32);
4783    pub fn from_raw(x: i32) -> Self {
4784        Self(x)
4785    }
4786    pub fn into_raw(self) -> i32 {
4787        self.0
4788    }
4789}
4790impl fmt::Debug for SceneMarkerTypeMSFT {
4791    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4792        let name = match *self {
4793            Self::QR_CODE => Some("QR_CODE"),
4794            _ => None,
4795        };
4796        fmt_enum(fmt, self.0, name)
4797    }
4798}
4799#[doc = "See [XrSceneMarkerQRCodeSymbolTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMarkerQRCodeSymbolTypeMSFT)"]
4800#[repr(transparent)]
4801#[derive(Copy, Clone, Eq, PartialEq)]
4802pub struct SceneMarkerQRCodeSymbolTypeMSFT(i32);
4803impl SceneMarkerQRCodeSymbolTypeMSFT {
4804    pub const QR_CODE: SceneMarkerQRCodeSymbolTypeMSFT = Self(1i32);
4805    pub const MICRO_QR_CODE: SceneMarkerQRCodeSymbolTypeMSFT = Self(2i32);
4806    pub fn from_raw(x: i32) -> Self {
4807        Self(x)
4808    }
4809    pub fn into_raw(self) -> i32 {
4810        self.0
4811    }
4812}
4813impl fmt::Debug for SceneMarkerQRCodeSymbolTypeMSFT {
4814    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4815        let name = match *self {
4816            Self::QR_CODE => Some("QR_CODE"),
4817            Self::MICRO_QR_CODE => Some("MICRO_QR_CODE"),
4818            _ => None,
4819        };
4820        fmt_enum(fmt, self.0, name)
4821    }
4822}
4823#[doc = "See [XrColorSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColorSpaceFB)"]
4824#[repr(transparent)]
4825#[derive(Copy, Clone, Eq, PartialEq)]
4826pub struct ColorSpaceFB(i32);
4827impl ColorSpaceFB {
4828    pub const UNMANAGED: ColorSpaceFB = Self(0i32);
4829    pub const REC2020: ColorSpaceFB = Self(1i32);
4830    pub const REC709: ColorSpaceFB = Self(2i32);
4831    pub const RIFT_CV1: ColorSpaceFB = Self(3i32);
4832    pub const RIFT_S: ColorSpaceFB = Self(4i32);
4833    pub const QUEST: ColorSpaceFB = Self(5i32);
4834    pub const P3: ColorSpaceFB = Self(6i32);
4835    pub const ADOBE_RGB: ColorSpaceFB = Self(7i32);
4836    pub fn from_raw(x: i32) -> Self {
4837        Self(x)
4838    }
4839    pub fn into_raw(self) -> i32 {
4840        self.0
4841    }
4842}
4843impl fmt::Debug for ColorSpaceFB {
4844    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4845        let name = match *self {
4846            Self::UNMANAGED => Some("UNMANAGED"),
4847            Self::REC2020 => Some("REC2020"),
4848            Self::REC709 => Some("REC709"),
4849            Self::RIFT_CV1 => Some("RIFT_CV1"),
4850            Self::RIFT_S => Some("RIFT_S"),
4851            Self::QUEST => Some("QUEST"),
4852            Self::P3 => Some("P3"),
4853            Self::ADOBE_RGB => Some("ADOBE_RGB"),
4854            _ => None,
4855        };
4856        fmt_enum(fmt, self.0, name)
4857    }
4858}
4859#[doc = "See [XrFoveationLevelFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelFB)"]
4860#[repr(transparent)]
4861#[derive(Copy, Clone, Eq, PartialEq)]
4862pub struct FoveationLevelFB(i32);
4863impl FoveationLevelFB {
4864    #[doc = "No foveation"]
4865    pub const NONE: FoveationLevelFB = Self(0i32);
4866    #[doc = "Less foveation (higher periphery visual fidelity, lower performance)"]
4867    pub const LOW: FoveationLevelFB = Self(1i32);
4868    #[doc = "Medium foveation (medium periphery visual fidelity, medium performance)"]
4869    pub const MEDIUM: FoveationLevelFB = Self(2i32);
4870    #[doc = "High foveation (lower periphery visual fidelity, higher performance)"]
4871    pub const HIGH: FoveationLevelFB = Self(3i32);
4872    pub fn from_raw(x: i32) -> Self {
4873        Self(x)
4874    }
4875    pub fn into_raw(self) -> i32 {
4876        self.0
4877    }
4878}
4879impl fmt::Debug for FoveationLevelFB {
4880    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4881        let name = match *self {
4882            Self::NONE => Some("NONE"),
4883            Self::LOW => Some("LOW"),
4884            Self::MEDIUM => Some("MEDIUM"),
4885            Self::HIGH => Some("HIGH"),
4886            _ => None,
4887        };
4888        fmt_enum(fmt, self.0, name)
4889    }
4890}
4891#[doc = "See [XrFoveationDynamicFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicFB)"]
4892#[repr(transparent)]
4893#[derive(Copy, Clone, Eq, PartialEq)]
4894pub struct FoveationDynamicFB(i32);
4895impl FoveationDynamicFB {
4896    #[doc = "Static foveation at the maximum desired level"]
4897    pub const DISABLED: FoveationDynamicFB = Self(0i32);
4898    #[doc = "Dynamic changing foveation based on performance headroom available up to the maximum desired level"]
4899    pub const LEVEL_ENABLED: FoveationDynamicFB = Self(1i32);
4900    pub fn from_raw(x: i32) -> Self {
4901        Self(x)
4902    }
4903    pub fn into_raw(self) -> i32 {
4904        self.0
4905    }
4906}
4907impl fmt::Debug for FoveationDynamicFB {
4908    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4909        let name = match *self {
4910            Self::DISABLED => Some("DISABLED"),
4911            Self::LEVEL_ENABLED => Some("LEVEL_ENABLED"),
4912            _ => None,
4913        };
4914        fmt_enum(fmt, self.0, name)
4915    }
4916}
4917#[doc = "See [XrReprojectionModeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReprojectionModeMSFT)"]
4918#[repr(transparent)]
4919#[derive(Copy, Clone, Eq, PartialEq)]
4920pub struct ReprojectionModeMSFT(i32);
4921impl ReprojectionModeMSFT {
4922    pub const DEPTH: ReprojectionModeMSFT = Self(1i32);
4923    pub const PLANAR_FROM_DEPTH: ReprojectionModeMSFT = Self(2i32);
4924    pub const PLANAR_MANUAL: ReprojectionModeMSFT = Self(3i32);
4925    pub const ORIENTATION_ONLY: ReprojectionModeMSFT = Self(4i32);
4926    pub fn from_raw(x: i32) -> Self {
4927        Self(x)
4928    }
4929    pub fn into_raw(self) -> i32 {
4930        self.0
4931    }
4932}
4933impl fmt::Debug for ReprojectionModeMSFT {
4934    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4935        let name = match *self {
4936            Self::DEPTH => Some("DEPTH"),
4937            Self::PLANAR_FROM_DEPTH => Some("PLANAR_FROM_DEPTH"),
4938            Self::PLANAR_MANUAL => Some("PLANAR_MANUAL"),
4939            Self::ORIENTATION_ONLY => Some("ORIENTATION_ONLY"),
4940            _ => None,
4941        };
4942        fmt_enum(fmt, self.0, name)
4943    }
4944}
4945#[doc = "See [XrHandForearmJointULTRALEAP](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandForearmJointULTRALEAP)"]
4946#[repr(transparent)]
4947#[derive(Copy, Clone, Eq, PartialEq)]
4948pub struct HandForearmJointULTRALEAP(i32);
4949impl HandForearmJointULTRALEAP {
4950    pub const PALM: HandForearmJointULTRALEAP = Self(0i32);
4951    pub const WRIST: HandForearmJointULTRALEAP = Self(1i32);
4952    pub const THUMB_METACARPAL: HandForearmJointULTRALEAP = Self(2i32);
4953    pub const THUMB_PROXIMAL: HandForearmJointULTRALEAP = Self(3i32);
4954    pub const THUMB_DISTAL: HandForearmJointULTRALEAP = Self(4i32);
4955    pub const THUMB_TIP: HandForearmJointULTRALEAP = Self(5i32);
4956    pub const INDEX_METACARPAL: HandForearmJointULTRALEAP = Self(6i32);
4957    pub const INDEX_PROXIMAL: HandForearmJointULTRALEAP = Self(7i32);
4958    pub const INDEX_INTERMEDIATE: HandForearmJointULTRALEAP = Self(8i32);
4959    pub const INDEX_DISTAL: HandForearmJointULTRALEAP = Self(9i32);
4960    pub const INDEX_TIP: HandForearmJointULTRALEAP = Self(10i32);
4961    pub const MIDDLE_METACARPAL: HandForearmJointULTRALEAP = Self(11i32);
4962    pub const MIDDLE_PROXIMAL: HandForearmJointULTRALEAP = Self(12i32);
4963    pub const MIDDLE_INTERMEDIATE: HandForearmJointULTRALEAP = Self(13i32);
4964    pub const MIDDLE_DISTAL: HandForearmJointULTRALEAP = Self(14i32);
4965    pub const MIDDLE_TIP: HandForearmJointULTRALEAP = Self(15i32);
4966    pub const RING_METACARPAL: HandForearmJointULTRALEAP = Self(16i32);
4967    pub const RING_PROXIMAL: HandForearmJointULTRALEAP = Self(17i32);
4968    pub const RING_INTERMEDIATE: HandForearmJointULTRALEAP = Self(18i32);
4969    pub const RING_DISTAL: HandForearmJointULTRALEAP = Self(19i32);
4970    pub const RING_TIP: HandForearmJointULTRALEAP = Self(20i32);
4971    pub const LITTLE_METACARPAL: HandForearmJointULTRALEAP = Self(21i32);
4972    pub const LITTLE_PROXIMAL: HandForearmJointULTRALEAP = Self(22i32);
4973    pub const LITTLE_INTERMEDIATE: HandForearmJointULTRALEAP = Self(23i32);
4974    pub const LITTLE_DISTAL: HandForearmJointULTRALEAP = Self(24i32);
4975    pub const LITTLE_TIP: HandForearmJointULTRALEAP = Self(25i32);
4976    pub const ELBOW: HandForearmJointULTRALEAP = Self(26i32);
4977    pub fn from_raw(x: i32) -> Self {
4978        Self(x)
4979    }
4980    pub fn into_raw(self) -> i32 {
4981        self.0
4982    }
4983}
4984impl fmt::Debug for HandForearmJointULTRALEAP {
4985    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4986        let name = match *self {
4987            Self::PALM => Some("PALM"),
4988            Self::WRIST => Some("WRIST"),
4989            Self::THUMB_METACARPAL => Some("THUMB_METACARPAL"),
4990            Self::THUMB_PROXIMAL => Some("THUMB_PROXIMAL"),
4991            Self::THUMB_DISTAL => Some("THUMB_DISTAL"),
4992            Self::THUMB_TIP => Some("THUMB_TIP"),
4993            Self::INDEX_METACARPAL => Some("INDEX_METACARPAL"),
4994            Self::INDEX_PROXIMAL => Some("INDEX_PROXIMAL"),
4995            Self::INDEX_INTERMEDIATE => Some("INDEX_INTERMEDIATE"),
4996            Self::INDEX_DISTAL => Some("INDEX_DISTAL"),
4997            Self::INDEX_TIP => Some("INDEX_TIP"),
4998            Self::MIDDLE_METACARPAL => Some("MIDDLE_METACARPAL"),
4999            Self::MIDDLE_PROXIMAL => Some("MIDDLE_PROXIMAL"),
5000            Self::MIDDLE_INTERMEDIATE => Some("MIDDLE_INTERMEDIATE"),
5001            Self::MIDDLE_DISTAL => Some("MIDDLE_DISTAL"),
5002            Self::MIDDLE_TIP => Some("MIDDLE_TIP"),
5003            Self::RING_METACARPAL => Some("RING_METACARPAL"),
5004            Self::RING_PROXIMAL => Some("RING_PROXIMAL"),
5005            Self::RING_INTERMEDIATE => Some("RING_INTERMEDIATE"),
5006            Self::RING_DISTAL => Some("RING_DISTAL"),
5007            Self::RING_TIP => Some("RING_TIP"),
5008            Self::LITTLE_METACARPAL => Some("LITTLE_METACARPAL"),
5009            Self::LITTLE_PROXIMAL => Some("LITTLE_PROXIMAL"),
5010            Self::LITTLE_INTERMEDIATE => Some("LITTLE_INTERMEDIATE"),
5011            Self::LITTLE_DISTAL => Some("LITTLE_DISTAL"),
5012            Self::LITTLE_TIP => Some("LITTLE_TIP"),
5013            Self::ELBOW => Some("ELBOW"),
5014            _ => None,
5015        };
5016        fmt_enum(fmt, self.0, name)
5017    }
5018}
5019#[doc = "See [XrCompareOpFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompareOpFB)"]
5020#[repr(transparent)]
5021#[derive(Copy, Clone, Eq, PartialEq)]
5022pub struct CompareOpFB(i32);
5023impl CompareOpFB {
5024    #[doc = "Comparison is never true."]
5025    pub const NEVER: CompareOpFB = Self(0i32);
5026    #[doc = "Comparison is true if source less than is destination."]
5027    pub const LESS: CompareOpFB = Self(1i32);
5028    #[doc = "Comparison is true if source is equal to destination."]
5029    pub const EQUAL: CompareOpFB = Self(2i32);
5030    #[doc = "Comparison is true if source is less than or equal to destination."]
5031    pub const LESS_OR_EQUAL: CompareOpFB = Self(3i32);
5032    #[doc = "Comparison is true if source is greater than destination."]
5033    pub const GREATER: CompareOpFB = Self(4i32);
5034    #[doc = "Comparison is true if source is not equal to destination."]
5035    pub const NOT_EQUAL: CompareOpFB = Self(5i32);
5036    #[doc = "Comparison is true if source is greater than or equal to destination."]
5037    pub const GREATER_OR_EQUAL: CompareOpFB = Self(6i32);
5038    #[doc = "Comparison is always true."]
5039    pub const ALWAYS: CompareOpFB = Self(7i32);
5040    pub fn from_raw(x: i32) -> Self {
5041        Self(x)
5042    }
5043    pub fn into_raw(self) -> i32 {
5044        self.0
5045    }
5046}
5047impl fmt::Debug for CompareOpFB {
5048    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
5049        let name = match *self {
5050            Self::NEVER => Some("NEVER"),
5051            Self::LESS => Some("LESS"),
5052            Self::EQUAL => Some("EQUAL"),
5053            Self::LESS_OR_EQUAL => Some("LESS_OR_EQUAL"),
5054            Self::GREATER => Some("GREATER"),
5055            Self::NOT_EQUAL => Some("NOT_EQUAL"),
5056            Self::GREATER_OR_EQUAL => Some("GREATER_OR_EQUAL"),
5057            Self::ALWAYS => Some("ALWAYS"),
5058            _ => None,
5059        };
5060        fmt_enum(fmt, self.0, name)
5061    }
5062}
5063#[doc = "See [XrInstanceCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateFlagBits)"]
5064#[repr(transparent)]
5065#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5066pub struct InstanceCreateFlags(u64);
5067impl InstanceCreateFlags {}
5068bitmask!(InstanceCreateFlags);
5069#[doc = "See [XrSessionCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateFlagBits)"]
5070#[repr(transparent)]
5071#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5072pub struct SessionCreateFlags(u64);
5073impl SessionCreateFlags {}
5074bitmask!(SessionCreateFlags);
5075#[doc = "See [XrSwapchainCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateFlagBits)"]
5076#[repr(transparent)]
5077#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5078pub struct SwapchainCreateFlags(u64);
5079impl SwapchainCreateFlags {
5080    #[doc = "Content will be protected from CPU access"]
5081    pub const PROTECTED_CONTENT: SwapchainCreateFlags = Self(1 << 0u64);
5082    #[doc = "Only one image will be acquired from this swapchain over its lifetime"]
5083    pub const STATIC_IMAGE: SwapchainCreateFlags = Self(1 << 1u64);
5084}
5085bitmask!(SwapchainCreateFlags);
5086#[doc = "See [XrSwapchainUsageFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainUsageFlagBits)"]
5087#[repr(transparent)]
5088#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5089pub struct SwapchainUsageFlags(u64);
5090impl SwapchainUsageFlags {
5091    #[doc = "Specifies that the image may: be a color rendering target."]
5092    pub const COLOR_ATTACHMENT: SwapchainUsageFlags = Self(1 << 0u64);
5093    #[doc = "Specifies that the image may: be a depth/stencil rendering target."]
5094    pub const DEPTH_STENCIL_ATTACHMENT: SwapchainUsageFlags = Self(1 << 1u64);
5095    #[doc = "Specifies that the image may: be accessed out of order and that access may: be via atomic operations."]
5096    pub const UNORDERED_ACCESS: SwapchainUsageFlags = Self(1 << 2u64);
5097    #[doc = "Specifies that the image may: be used as the source of a transfer operation."]
5098    pub const TRANSFER_SRC: SwapchainUsageFlags = Self(1 << 3u64);
5099    #[doc = "Specifies that the image may: be used as the destination of a transfer operation."]
5100    pub const TRANSFER_DST: SwapchainUsageFlags = Self(1 << 4u64);
5101    #[doc = "Specifies that the image may: be sampled by a shader."]
5102    pub const SAMPLED: SwapchainUsageFlags = Self(1 << 5u64);
5103    #[doc = "Specifies that the image may: be reinterpreted as another image format."]
5104    pub const MUTABLE_FORMAT: SwapchainUsageFlags = Self(1 << 6u64);
5105    #[doc = "Specifies that the image may: be used as a input attachment."]
5106    pub const INPUT_ATTACHMENT: SwapchainUsageFlags = Self(1 << 7u64);
5107}
5108bitmask!(SwapchainUsageFlags);
5109#[doc = "See [XrViewStateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewStateFlagBits)"]
5110#[repr(transparent)]
5111#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5112pub struct ViewStateFlags(u64);
5113impl ViewStateFlags {
5114    #[doc = "Indicates validity of all XrView orientations"]
5115    pub const ORIENTATION_VALID: ViewStateFlags = Self(1 << 0u64);
5116    #[doc = "Indicates validity of all XrView positions"]
5117    pub const POSITION_VALID: ViewStateFlags = Self(1 << 1u64);
5118    #[doc = "Indicates whether all XrView orientations are actively tracked"]
5119    pub const ORIENTATION_TRACKED: ViewStateFlags = Self(1 << 2u64);
5120    #[doc = "Indicates whether all XrView positions are actively tracked"]
5121    pub const POSITION_TRACKED: ViewStateFlags = Self(1 << 3u64);
5122}
5123bitmask!(ViewStateFlags);
5124#[doc = "See [XrCompositionLayerFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerFlagBits)"]
5125#[repr(transparent)]
5126#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5127pub struct CompositionLayerFlags(u64);
5128impl CompositionLayerFlags {
5129    #[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."]
5130    pub const CORRECT_CHROMATIC_ABERRATION: CompositionLayerFlags = Self(1 << 0u64);
5131    #[doc = "Enables the layer texture alpha channel."]
5132    pub const BLEND_TEXTURE_SOURCE_ALPHA: CompositionLayerFlags = Self(1 << 1u64);
5133    #[doc = "Indicates the texture color channels have not been premultiplied by the texture alpha channel."]
5134    pub const UNPREMULTIPLIED_ALPHA: CompositionLayerFlags = Self(1 << 2u64);
5135    #[doc = "Indicates that the texture alpha channel stores transparency instead of opacity, and is to be inverted before layer blending."]
5136    pub const INVERTED_ALPHA: CompositionLayerFlags = Self(1 << 3u64);
5137}
5138bitmask!(CompositionLayerFlags);
5139#[doc = "See [XrSpaceLocationFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocationFlagBits)"]
5140#[repr(transparent)]
5141#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5142pub struct SpaceLocationFlags(u64);
5143impl SpaceLocationFlags {
5144    #[doc = "Indicates that the orientation member contains valid data"]
5145    pub const ORIENTATION_VALID: SpaceLocationFlags = Self(1 << 0u64);
5146    #[doc = "Indicates that the position member contains valid data"]
5147    pub const POSITION_VALID: SpaceLocationFlags = Self(1 << 1u64);
5148    #[doc = "Indicates whether pose member contains an actively tracked orientation"]
5149    pub const ORIENTATION_TRACKED: SpaceLocationFlags = Self(1 << 2u64);
5150    #[doc = "Indicates whether pose member contains an actively tracked position"]
5151    pub const POSITION_TRACKED: SpaceLocationFlags = Self(1 << 3u64);
5152}
5153bitmask!(SpaceLocationFlags);
5154#[doc = "See [XrSpaceVelocityFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocityFlagBits)"]
5155#[repr(transparent)]
5156#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5157pub struct SpaceVelocityFlags(u64);
5158impl SpaceVelocityFlags {
5159    #[doc = "Indicates that the linearVelocity member contains valid data. Applications must: not read the linearVelocity field if this flag is unset."]
5160    pub const LINEAR_VALID: SpaceVelocityFlags = Self(1 << 0u64);
5161    #[doc = "Indicates that the angularVelocity member contains valid data. Applications must: not read the angularVelocity field if this flag is unset."]
5162    pub const ANGULAR_VALID: SpaceVelocityFlags = Self(1 << 1u64);
5163}
5164bitmask!(SpaceVelocityFlags);
5165#[doc = "See [XrInputSourceLocalizedNameFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInputSourceLocalizedNameFlagBits)"]
5166#[repr(transparent)]
5167#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5168pub struct InputSourceLocalizedNameFlags(u64);
5169impl InputSourceLocalizedNameFlags {
5170    #[doc = "Asks for the part of the string which indicates the top level user path the source represents"]
5171    pub const USER_PATH: InputSourceLocalizedNameFlags = Self(1 << 0u64);
5172    #[doc = "Asks for the part of the string which represents the interaction profile of the source"]
5173    pub const INTERACTION_PROFILE: InputSourceLocalizedNameFlags = Self(1 << 1u64);
5174    #[doc = "Asks for the part of the string which represents the component on the device which needs to be interacted with"]
5175    pub const COMPONENT: InputSourceLocalizedNameFlags = Self(1 << 2u64);
5176}
5177bitmask!(InputSourceLocalizedNameFlags);
5178#[doc = "See [XrVulkanInstanceCreateFlagsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanInstanceCreateFlagsKHR)"]
5179#[repr(transparent)]
5180#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5181pub struct VulkanInstanceCreateFlagsKHR(u64);
5182impl VulkanInstanceCreateFlagsKHR {}
5183bitmask!(VulkanInstanceCreateFlagsKHR);
5184#[doc = "See [XrVulkanDeviceCreateFlagsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanDeviceCreateFlagsKHR)"]
5185#[repr(transparent)]
5186#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5187pub struct VulkanDeviceCreateFlagsKHR(u64);
5188impl VulkanDeviceCreateFlagsKHR {}
5189bitmask!(VulkanDeviceCreateFlagsKHR);
5190#[doc = "See [XrDebugUtilsMessageSeverityFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessageSeverityFlagsEXT)"]
5191#[repr(transparent)]
5192#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5193pub struct DebugUtilsMessageSeverityFlagsEXT(u64);
5194impl DebugUtilsMessageSeverityFlagsEXT {
5195    #[doc = "Most verbose output severity, typically used for debugging."]
5196    pub const VERBOSE: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 0u64);
5197    #[doc = "General info message"]
5198    pub const INFO: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 4u64);
5199    #[doc = "Indicates the item may be the cause of issues."]
5200    pub const WARNING: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 8u64);
5201    #[doc = "Indicates that the item is definitely related to erroneous behavior."]
5202    pub const ERROR: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 12u64);
5203}
5204bitmask!(DebugUtilsMessageSeverityFlagsEXT);
5205#[doc = "See [XrDebugUtilsMessageTypeFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessageTypeFlagsEXT)"]
5206#[repr(transparent)]
5207#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5208pub struct DebugUtilsMessageTypeFlagsEXT(u64);
5209impl DebugUtilsMessageTypeFlagsEXT {
5210    #[doc = "Indicates this is a general message"]
5211    pub const GENERAL: DebugUtilsMessageTypeFlagsEXT = Self(1 << 0u64);
5212    #[doc = "Indicates the message is related to a validation message"]
5213    pub const VALIDATION: DebugUtilsMessageTypeFlagsEXT = Self(1 << 1u64);
5214    #[doc = "Indicates the message is related to a potential performance situation"]
5215    pub const PERFORMANCE: DebugUtilsMessageTypeFlagsEXT = Self(1 << 2u64);
5216    #[doc = "Indicates the message is related to a non-conformant runtime result"]
5217    pub const CONFORMANCE: DebugUtilsMessageTypeFlagsEXT = Self(1 << 3u64);
5218}
5219bitmask!(DebugUtilsMessageTypeFlagsEXT);
5220#[doc = "See [XrOverlayMainSessionFlagsEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOverlayMainSessionFlagsEXTX)"]
5221#[repr(transparent)]
5222#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5223pub struct OverlayMainSessionFlagsEXTX(u64);
5224impl OverlayMainSessionFlagsEXTX {
5225    #[doc = "Indicates the main session enabled `XR_KHR_composition_layer_depth`"]
5226    pub const ENABLED_COMPOSITION_LAYER_INFO_DEPTH: OverlayMainSessionFlagsEXTX = Self(1 << 0u64);
5227}
5228bitmask!(OverlayMainSessionFlagsEXTX);
5229#[doc = "See [XrOverlaySessionCreateFlagsEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOverlaySessionCreateFlagsEXTX)"]
5230#[repr(transparent)]
5231#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5232pub struct OverlaySessionCreateFlagsEXTX(u64);
5233impl OverlaySessionCreateFlagsEXTX {}
5234bitmask!(OverlaySessionCreateFlagsEXTX);
5235#[doc = "See [XrAndroidSurfaceSwapchainFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidSurfaceSwapchainFlagsFB)"]
5236#[repr(transparent)]
5237#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5238pub struct AndroidSurfaceSwapchainFlagsFB(u64);
5239impl AndroidSurfaceSwapchainFlagsFB {
5240    #[doc = "Create the underlying BufferQueue in synchronous mode"]
5241    pub const SYNCHRONOUS: AndroidSurfaceSwapchainFlagsFB = Self(1 << 0u64);
5242    #[doc = "Acquire most recent buffer whose presentation timestamp is not greater than display time of final composited frame"]
5243    pub const USE_TIMESTAMPS: AndroidSurfaceSwapchainFlagsFB = Self(1 << 1u64);
5244}
5245bitmask!(AndroidSurfaceSwapchainFlagsFB);
5246#[doc = "See [XrCompositionLayerImageLayoutFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerImageLayoutFlagsFB)"]
5247#[repr(transparent)]
5248#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5249pub struct CompositionLayerImageLayoutFlagsFB(u64);
5250impl CompositionLayerImageLayoutFlagsFB {
5251    #[doc = "The coordinate origin of the swapchain image must be considered to be flipped vertically."]
5252    pub const VERTICAL_FLIP: CompositionLayerImageLayoutFlagsFB = Self(1 << 0u64);
5253}
5254bitmask!(CompositionLayerImageLayoutFlagsFB);
5255#[doc = "See [XrCompositionLayerSecureContentFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSecureContentFlagsFB)"]
5256#[repr(transparent)]
5257#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5258pub struct CompositionLayerSecureContentFlagsFB(u64);
5259impl CompositionLayerSecureContentFlagsFB {
5260    #[doc = "Indicates the layer will only be visible inside the HMD, and not visible to external sources"]
5261    pub const EXCLUDE_LAYER: CompositionLayerSecureContentFlagsFB = Self(1 << 0u64);
5262    #[doc = "Indicates the layer will be displayed inside the HMD, but replaced by proxy content when written to external sources"]
5263    pub const REPLACE_LAYER: CompositionLayerSecureContentFlagsFB = Self(1 << 1u64);
5264}
5265bitmask!(CompositionLayerSecureContentFlagsFB);
5266#[doc = "See [XrSwapchainCreateFoveationFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateFoveationFlagsFB)"]
5267#[repr(transparent)]
5268#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5269pub struct SwapchainCreateFoveationFlagsFB(u64);
5270impl SwapchainCreateFoveationFlagsFB {
5271    #[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."]
5272    pub const SCALED_BIN: SwapchainCreateFoveationFlagsFB = Self(1 << 0u64);
5273    #[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."]
5274    pub const FRAGMENT_DENSITY_MAP: SwapchainCreateFoveationFlagsFB = Self(1 << 1u64);
5275}
5276bitmask!(SwapchainCreateFoveationFlagsFB);
5277#[doc = "See [XrSwapchainStateFoveationFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateFoveationFlagsFB)"]
5278#[repr(transparent)]
5279#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5280pub struct SwapchainStateFoveationFlagsFB(u64);
5281impl SwapchainStateFoveationFlagsFB {}
5282bitmask!(SwapchainStateFoveationFlagsFB);
5283#[doc = "See [XrFoveationEyeTrackedProfileCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedProfileCreateFlagsMETA)"]
5284#[repr(transparent)]
5285#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5286pub struct FoveationEyeTrackedProfileCreateFlagsMETA(u64);
5287impl FoveationEyeTrackedProfileCreateFlagsMETA {}
5288bitmask!(FoveationEyeTrackedProfileCreateFlagsMETA);
5289#[doc = "See [XrFoveationEyeTrackedStateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedStateFlagsMETA)"]
5290#[repr(transparent)]
5291#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5292pub struct FoveationEyeTrackedStateFlagsMETA(u64);
5293impl FoveationEyeTrackedStateFlagsMETA {
5294    #[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."]
5295    pub const VALID: FoveationEyeTrackedStateFlagsMETA = Self(1 << 0u64);
5296}
5297bitmask!(FoveationEyeTrackedStateFlagsMETA);
5298#[doc = "See [XrTriangleMeshFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshFlagsFB)"]
5299#[repr(transparent)]
5300#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5301pub struct TriangleMeshFlagsFB(u64);
5302impl TriangleMeshFlagsFB {
5303    #[doc = "The triangle mesh is mutable (can be modified after it is created)."]
5304    pub const MUTABLE: TriangleMeshFlagsFB = Self(1 << 0u64);
5305}
5306bitmask!(TriangleMeshFlagsFB);
5307#[doc = "See [XrPassthroughFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFlagsFB)"]
5308#[repr(transparent)]
5309#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5310pub struct PassthroughFlagsFB(u64);
5311impl PassthroughFlagsFB {
5312    #[doc = "The object (passthrough, layer) is running at creation."]
5313    pub const IS_RUNNING_AT_CREATION: PassthroughFlagsFB = Self(1 << 0u64);
5314    #[doc = "The passthrough system sends depth information to the compositor. Only applicable to layer objects."]
5315    pub const LAYER_DEPTH: PassthroughFlagsFB = Self(1 << 1u64);
5316}
5317bitmask!(PassthroughFlagsFB);
5318#[doc = "See [XrPassthroughStateChangedFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughStateChangedFlagsFB)"]
5319#[repr(transparent)]
5320#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5321pub struct PassthroughStateChangedFlagsFB(u64);
5322impl PassthroughStateChangedFlagsFB {
5323    #[doc = "Passthrough system requires reinitialization."]
5324    pub const REINIT_REQUIRED: PassthroughStateChangedFlagsFB = Self(1 << 0u64);
5325    #[doc = "Non-recoverable error has occurred. A device reboot or a firmware update may be required."]
5326    pub const NON_RECOVERABLE_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 1u64);
5327    #[doc = "A recoverable error has occurred. The runtime will attempt to recover, but some functionality may be temporarily unavailable."]
5328    pub const RECOVERABLE_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 2u64);
5329    #[doc = "The runtime has recovered from a previous error and is functioning normally."]
5330    pub const RESTORED_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 3u64);
5331}
5332bitmask!(PassthroughStateChangedFlagsFB);
5333#[doc = "See [XrPassthroughCapabilityFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCapabilityFlagsFB)"]
5334#[repr(transparent)]
5335#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5336pub struct PassthroughCapabilityFlagsFB(u64);
5337impl PassthroughCapabilityFlagsFB {
5338    #[doc = "The system supports passthrough."]
5339    pub const PASSTHROUGH_CAPABILITY: PassthroughCapabilityFlagsFB = Self(1 << 0u64);
5340    #[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."]
5341    pub const COLOR: PassthroughCapabilityFlagsFB = Self(1 << 1u64);
5342    #[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."]
5343    pub const LAYER_DEPTH: PassthroughCapabilityFlagsFB = Self(1 << 2u64);
5344}
5345bitmask!(PassthroughCapabilityFlagsFB);
5346#[doc = "See [XrSemanticLabelsSupportFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsSupportFlagsFB)"]
5347#[repr(transparent)]
5348#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5349pub struct SemanticLabelsSupportFlagsFB(u64);
5350impl SemanticLabelsSupportFlagsFB {
5351    #[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."]
5352    pub const MULTIPLE_SEMANTIC_LABELS: SemanticLabelsSupportFlagsFB = Self(1 << 0u64);
5353    #[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."]
5354    pub const ACCEPT_DESK_TO_TABLE_MIGRATION: SemanticLabelsSupportFlagsFB = Self(1 << 1u64);
5355    #[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."]
5356    pub const ACCEPT_INVISIBLE_WALL_FACE: SemanticLabelsSupportFlagsFB = Self(1 << 2u64);
5357}
5358bitmask!(SemanticLabelsSupportFlagsFB);
5359#[doc = "See [XrHandTrackingAimFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingAimFlagsFB)"]
5360#[repr(transparent)]
5361#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5362pub struct HandTrackingAimFlagsFB(u64);
5363impl HandTrackingAimFlagsFB {
5364    #[doc = "Aiming data is computed from additional sources beyond the hand data in the base structure"]
5365    pub const COMPUTED: HandTrackingAimFlagsFB = Self(1 << 0u64);
5366    #[doc = "Aiming data is valid"]
5367    pub const VALID: HandTrackingAimFlagsFB = Self(1 << 1u64);
5368    #[doc = "Index finger pinch discrete signal"]
5369    pub const INDEX_PINCHING: HandTrackingAimFlagsFB = Self(1 << 2u64);
5370    #[doc = "Middle finger pinch discrete signal"]
5371    pub const MIDDLE_PINCHING: HandTrackingAimFlagsFB = Self(1 << 3u64);
5372    #[doc = "Ring finger pinch discrete signal"]
5373    pub const RING_PINCHING: HandTrackingAimFlagsFB = Self(1 << 4u64);
5374    #[doc = "Little finger pinch discrete signal"]
5375    pub const LITTLE_PINCHING: HandTrackingAimFlagsFB = Self(1 << 5u64);
5376    #[doc = "System gesture is active"]
5377    pub const SYSTEM_GESTURE: HandTrackingAimFlagsFB = Self(1 << 6u64);
5378    #[doc = "Hand is currently marked as dominant for the system"]
5379    pub const DOMINANT_HAND: HandTrackingAimFlagsFB = Self(1 << 7u64);
5380    #[doc = "System menu gesture is active"]
5381    pub const MENU_PRESSED: HandTrackingAimFlagsFB = Self(1 << 8u64);
5382}
5383bitmask!(HandTrackingAimFlagsFB);
5384#[doc = "See [XrKeyboardTrackingFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingFlagsFB)"]
5385#[repr(transparent)]
5386#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5387pub struct KeyboardTrackingFlagsFB(u64);
5388impl KeyboardTrackingFlagsFB {
5389    #[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."]
5390    pub const EXISTS: KeyboardTrackingFlagsFB = Self(1 << 0u64);
5391    #[doc = "indicates that the physically tracked keyboard is intended to be used in a local pairing with the system.  Mutually exclusive with XR_KEYBOARD_TRACKING_REMOTE_BIT_FB."]
5392    pub const LOCAL: KeyboardTrackingFlagsFB = Self(1 << 1u64);
5393    #[doc = "indicates that the physically tracked keyboard is intended to be used while paired to a separate remote computing device. Mutually exclusive with XR_KEYBOARD_TRACKING_LOCAL_BIT_FB."]
5394    pub const REMOTE: KeyboardTrackingFlagsFB = Self(1 << 2u64);
5395    #[doc = "indicates that the physically tracked keyboard is actively connected to the headset and capable of sending key data"]
5396    pub const CONNECTED: KeyboardTrackingFlagsFB = Self(1 << 3u64);
5397}
5398bitmask!(KeyboardTrackingFlagsFB);
5399#[doc = "See [XrKeyboardTrackingQueryFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingQueryFlagsFB)"]
5400#[repr(transparent)]
5401#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5402pub struct KeyboardTrackingQueryFlagsFB(u64);
5403impl KeyboardTrackingQueryFlagsFB {
5404    #[doc = "indicates the query is for the physically tracked keyboard that is intended to be used in a local pairing with the System. Mutually exclusive with XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB."]
5405    pub const LOCAL: KeyboardTrackingQueryFlagsFB = Self(1 << 1u64);
5406    #[doc = "indicates the query is for the physically tracked keyboard that may be connected to a separate remote computing device. Mutually exclusive with XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB."]
5407    pub const REMOTE: KeyboardTrackingQueryFlagsFB = Self(1 << 2u64);
5408}
5409bitmask!(KeyboardTrackingQueryFlagsFB);
5410#[doc = "See [XrCompositionLayerSpaceWarpInfoFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSpaceWarpInfoFlagsFB)"]
5411#[repr(transparent)]
5412#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5413pub struct CompositionLayerSpaceWarpInfoFlagsFB(u64);
5414impl CompositionLayerSpaceWarpInfoFlagsFB {
5415    #[doc = "Skip current frame's space warp extrapolation"]
5416    pub const FRAME_SKIP: CompositionLayerSpaceWarpInfoFlagsFB = Self(1 << 0u64);
5417}
5418bitmask!(CompositionLayerSpaceWarpInfoFlagsFB);
5419#[doc = "See [XrRenderModelFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelFlagsFB)"]
5420#[repr(transparent)]
5421#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5422pub struct RenderModelFlagsFB(u64);
5423impl RenderModelFlagsFB {
5424    #[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."]
5425    pub const SUPPORTS_GLTF_2_0_SUBSET_1: RenderModelFlagsFB = Self(1 << 0u64);
5426    #[doc = "All of XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB support plus: Multiple meshes. Multiple Textures. Texture Transparency."]
5427    pub const SUPPORTS_GLTF_2_0_SUBSET_2: RenderModelFlagsFB = Self(1 << 1u64);
5428}
5429bitmask!(RenderModelFlagsFB);
5430#[doc = "See [XrDigitalLensControlFlagsALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDigitalLensControlFlagsALMALENCE)"]
5431#[repr(transparent)]
5432#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5433pub struct DigitalLensControlFlagsALMALENCE(u64);
5434impl DigitalLensControlFlagsALMALENCE {
5435    #[doc = "disables Digital Lens processing of render textures"]
5436    pub const PROCESSING_DISABLE: DigitalLensControlFlagsALMALENCE = Self(1 << 0u64);
5437}
5438bitmask!(DigitalLensControlFlagsALMALENCE);
5439#[doc = "See [XrCompositionLayerSettingsFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSettingsFlagsFB)"]
5440#[repr(transparent)]
5441#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5442pub struct CompositionLayerSettingsFlagsFB(u64);
5443impl CompositionLayerSettingsFlagsFB {
5444    #[doc = "Indicates compositor may: use layer texture supersampling."]
5445    pub const NORMAL_SUPER_SAMPLING: CompositionLayerSettingsFlagsFB = Self(1 << 0u64);
5446    #[doc = "Indicates compositor may: use high quality layer texture supersampling."]
5447    pub const QUALITY_SUPER_SAMPLING: CompositionLayerSettingsFlagsFB = Self(1 << 1u64);
5448    #[doc = "Indicates compositor may: use layer texture sharpening."]
5449    pub const NORMAL_SHARPENING: CompositionLayerSettingsFlagsFB = Self(1 << 2u64);
5450    #[doc = "Indicates compositor may: use high quality layer texture sharpening."]
5451    pub const QUALITY_SHARPENING: CompositionLayerSettingsFlagsFB = Self(1 << 3u64);
5452    #[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)"]
5453    pub const AUTO_LAYER_FILTER: CompositionLayerSettingsFlagsFB = Self(1 << 5u64);
5454}
5455bitmask!(CompositionLayerSettingsFlagsFB);
5456#[doc = "See [XrExternalCameraStatusFlagsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraStatusFlagsOCULUS)"]
5457#[repr(transparent)]
5458#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5459pub struct ExternalCameraStatusFlagsOCULUS(u64);
5460impl ExternalCameraStatusFlagsOCULUS {
5461    #[doc = "External camera is connected"]
5462    pub const CONNECTED: ExternalCameraStatusFlagsOCULUS = Self(1 << 0u64);
5463    #[doc = "External camera is undergoing calibration"]
5464    pub const CALIBRATING: ExternalCameraStatusFlagsOCULUS = Self(1 << 1u64);
5465    #[doc = "External camera has tried and failed calibration"]
5466    pub const CALIBRATION_FAILED: ExternalCameraStatusFlagsOCULUS = Self(1 << 2u64);
5467    #[doc = "External camera has tried and passed calibration"]
5468    pub const CALIBRATED: ExternalCameraStatusFlagsOCULUS = Self(1 << 3u64);
5469    #[doc = "External camera is capturing"]
5470    pub const CAPTURING: ExternalCameraStatusFlagsOCULUS = Self(1 << 4u64);
5471}
5472bitmask!(ExternalCameraStatusFlagsOCULUS);
5473#[doc = "See [XrPerformanceMetricsCounterFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterFlagsMETA)"]
5474#[repr(transparent)]
5475#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5476pub struct PerformanceMetricsCounterFlagsMETA(u64);
5477impl PerformanceMetricsCounterFlagsMETA {
5478    #[doc = "Indicates any of the values in XrPerformanceMetricsCounterMETA is valid."]
5479    pub const ANY_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 0u64);
5480    #[doc = "Indicates the uintValue in XrPerformanceMetricsCounterMETA is valid."]
5481    pub const UINT_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 1u64);
5482    #[doc = "Indicates the floatValue in XrPerformanceMetricsCounterMETA is valid."]
5483    pub const FLOAT_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 2u64);
5484}
5485bitmask!(PerformanceMetricsCounterFlagsMETA);
5486#[doc = "See [XrPassthroughPreferenceFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughPreferenceFlagsMETA)"]
5487#[repr(transparent)]
5488#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5489pub struct PassthroughPreferenceFlagsMETA(u64);
5490impl PassthroughPreferenceFlagsMETA {
5491    #[doc = "Indicates that the runtime recommends apps to default to a mixed reality experience with passthrough (if supported)."]
5492    pub const DEFAULT_TO_ACTIVE: PassthroughPreferenceFlagsMETA = Self(1 << 0u64);
5493}
5494bitmask!(PassthroughPreferenceFlagsMETA);
5495#[doc = "See [XrFoveationDynamicFlagsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicFlagsHTC)"]
5496#[repr(transparent)]
5497#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5498pub struct FoveationDynamicFlagsHTC(u64);
5499impl FoveationDynamicFlagsHTC {
5500    #[doc = "Allow system to set periphery pixel density dynamically."]
5501    pub const LEVEL_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 0u64);
5502    #[doc = "Allow system to set clear FOV degree dynamically."]
5503    pub const CLEAR_FOV_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 1u64);
5504    #[doc = "Allow system to set focal center offset dynamically."]
5505    pub const FOCAL_CENTER_OFFSET_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 2u64);
5506}
5507bitmask!(FoveationDynamicFlagsHTC);
5508#[doc = "See [XrFrameEndInfoFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfoFlagsML)"]
5509#[repr(transparent)]
5510#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5511pub struct FrameEndInfoFlagsML(u64);
5512impl FrameEndInfoFlagsML {
5513    #[doc = "Indicates that the content for this frame is protected and should not be recorded or captured outside the graphics system."]
5514    pub const PROTECTED: FrameEndInfoFlagsML = Self(1 << 0u64);
5515    #[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."]
5516    pub const VIGNETTE: FrameEndInfoFlagsML = Self(1 << 1u64);
5517}
5518bitmask!(FrameEndInfoFlagsML);
5519#[doc = "See [XrGlobalDimmerFrameEndInfoFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGlobalDimmerFrameEndInfoFlagsML)"]
5520#[repr(transparent)]
5521#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5522pub struct GlobalDimmerFrameEndInfoFlagsML(u64);
5523impl GlobalDimmerFrameEndInfoFlagsML {
5524    #[doc = "Indicates that the global dimmer should: be enabled and controlled by dimmerValue."]
5525    pub const ENABLED: GlobalDimmerFrameEndInfoFlagsML = Self(1 << 0u64);
5526}
5527bitmask!(GlobalDimmerFrameEndInfoFlagsML);
5528#[doc = "See [XrPlaneDetectorFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorFlagsEXT)"]
5529#[repr(transparent)]
5530#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5531pub struct PlaneDetectorFlagsEXT(u64);
5532impl PlaneDetectorFlagsEXT {
5533    #[doc = "populate the plane contour information"]
5534    pub const ENABLE_CONTOUR: PlaneDetectorFlagsEXT = Self(1 << 0u64);
5535}
5536bitmask!(PlaneDetectorFlagsEXT);
5537#[doc = "See [XrPlaneDetectionCapabilityFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectionCapabilityFlagsEXT)"]
5538#[repr(transparent)]
5539#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5540pub struct PlaneDetectionCapabilityFlagsEXT(u64);
5541impl PlaneDetectionCapabilityFlagsEXT {
5542    #[doc = "plane detection is supported"]
5543    pub const PLANE_DETECTION: PlaneDetectionCapabilityFlagsEXT = Self(1 << 0u64);
5544    #[doc = "polygon buffers for holes in planes can be generated"]
5545    pub const PLANE_HOLES: PlaneDetectionCapabilityFlagsEXT = Self(1 << 1u64);
5546    #[doc = "plane detection supports ceiling semantic classification"]
5547    pub const SEMANTIC_CEILING: PlaneDetectionCapabilityFlagsEXT = Self(1 << 2u64);
5548    #[doc = "plane detection supports floor semantic classification"]
5549    pub const SEMANTIC_FLOOR: PlaneDetectionCapabilityFlagsEXT = Self(1 << 3u64);
5550    #[doc = "plane detection supports wall semantic classification"]
5551    pub const SEMANTIC_WALL: PlaneDetectionCapabilityFlagsEXT = Self(1 << 4u64);
5552    #[doc = "plane detection supports platform semantic classification (for example table tops)"]
5553    pub const SEMANTIC_PLATFORM: PlaneDetectionCapabilityFlagsEXT = Self(1 << 5u64);
5554    #[doc = "plane detection supports plane orientation classification. If not supported planes are always classified as ARBITRARY."]
5555    pub const ORIENTATION: PlaneDetectionCapabilityFlagsEXT = Self(1 << 6u64);
5556}
5557bitmask!(PlaneDetectionCapabilityFlagsEXT);
5558#[doc = "See [XrVirtualKeyboardInputStateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputStateFlagsMETA)"]
5559#[repr(transparent)]
5560#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5561pub struct VirtualKeyboardInputStateFlagsMETA(u64);
5562impl VirtualKeyboardInputStateFlagsMETA {
5563    #[doc = "If the input source is considered 'pressed' at all. Pinch for hands, Primary button for controllers."]
5564    pub const PRESSED: VirtualKeyboardInputStateFlagsMETA = Self(1 << 0u64);
5565}
5566bitmask!(VirtualKeyboardInputStateFlagsMETA);
5567#[doc = "See [XrLocalizationMapErrorFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapErrorFlagsML)"]
5568#[repr(transparent)]
5569#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5570pub struct LocalizationMapErrorFlagsML(u64);
5571impl LocalizationMapErrorFlagsML {
5572    #[doc = "Localization failed for an unknown reason."]
5573    pub const UNKNOWN: LocalizationMapErrorFlagsML = Self(1 << 0u64);
5574    #[doc = "Localization failed because the user is outside of the mapped area."]
5575    pub const OUT_OF_MAPPED_AREA: LocalizationMapErrorFlagsML = Self(1 << 1u64);
5576    #[doc = "There are not enough features in the environment to successfully localize."]
5577    pub const LOW_FEATURE_COUNT: LocalizationMapErrorFlagsML = Self(1 << 2u64);
5578    #[doc = "Localization failed due to excessive motion."]
5579    pub const EXCESSIVE_MOTION: LocalizationMapErrorFlagsML = Self(1 << 3u64);
5580    #[doc = "Localization failed because the lighting levels are too low in the environment."]
5581    pub const LOW_LIGHT: LocalizationMapErrorFlagsML = Self(1 << 4u64);
5582    #[doc = "A headpose failure caused localization to be unsuccessful."]
5583    pub const HEADPOSE: LocalizationMapErrorFlagsML = Self(1 << 5u64);
5584}
5585bitmask!(LocalizationMapErrorFlagsML);
5586#[doc = "See [XrEnvironmentDepthProviderCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderCreateFlagsMETA)"]
5587#[repr(transparent)]
5588#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5589pub struct EnvironmentDepthProviderCreateFlagsMETA(u64);
5590impl EnvironmentDepthProviderCreateFlagsMETA {}
5591bitmask!(EnvironmentDepthProviderCreateFlagsMETA);
5592#[doc = "See [XrEnvironmentDepthSwapchainCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainCreateFlagsMETA)"]
5593#[repr(transparent)]
5594#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5595pub struct EnvironmentDepthSwapchainCreateFlagsMETA(u64);
5596impl EnvironmentDepthSwapchainCreateFlagsMETA {}
5597bitmask!(EnvironmentDepthSwapchainCreateFlagsMETA);
5598#[doc = "See [XrInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstance)"]
5599#[repr(transparent)]
5600#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5601pub struct Instance(u64);
5602handle!(Instance);
5603#[doc = "See [XrSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSession)"]
5604#[repr(transparent)]
5605#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5606pub struct Session(u64);
5607handle!(Session);
5608#[doc = "See [XrActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSet)"]
5609#[repr(transparent)]
5610#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5611pub struct ActionSet(u64);
5612handle!(ActionSet);
5613#[doc = "See [XrAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAction)"]
5614#[repr(transparent)]
5615#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5616pub struct Action(u64);
5617handle!(Action);
5618#[doc = "See [XrSwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchain)"]
5619#[repr(transparent)]
5620#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5621pub struct Swapchain(u64);
5622handle!(Swapchain);
5623#[doc = "See [XrSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpace)"]
5624#[repr(transparent)]
5625#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5626pub struct Space(u64);
5627handle!(Space);
5628#[doc = "See [XrDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerEXT)"]
5629#[repr(transparent)]
5630#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5631pub struct DebugUtilsMessengerEXT(u64);
5632handle!(DebugUtilsMessengerEXT);
5633#[doc = "See [XrSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorMSFT)"]
5634#[repr(transparent)]
5635#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5636pub struct SpatialAnchorMSFT(u64);
5637handle!(SpatialAnchorMSFT);
5638#[doc = "See [XrHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackerEXT)"]
5639#[repr(transparent)]
5640#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5641pub struct HandTrackerEXT(u64);
5642handle!(HandTrackerEXT);
5643#[doc = "See [XrFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationProfileFB)"]
5644#[repr(transparent)]
5645#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5646pub struct FoveationProfileFB(u64);
5647handle!(FoveationProfileFB);
5648#[doc = "See [XrTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshFB)"]
5649#[repr(transparent)]
5650#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5651pub struct TriangleMeshFB(u64);
5652handle!(TriangleMeshFB);
5653#[doc = "See [XrPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFB)"]
5654#[repr(transparent)]
5655#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5656pub struct PassthroughFB(u64);
5657handle!(PassthroughFB);
5658#[doc = "See [XrPassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerFB)"]
5659#[repr(transparent)]
5660#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5661pub struct PassthroughLayerFB(u64);
5662handle!(PassthroughLayerFB);
5663#[doc = "See [XrGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceFB)"]
5664#[repr(transparent)]
5665#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5666pub struct GeometryInstanceFB(u64);
5667handle!(GeometryInstanceFB);
5668#[doc = "See [XrFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackerHTC)"]
5669#[repr(transparent)]
5670#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5671pub struct FacialTrackerHTC(u64);
5672handle!(FacialTrackerHTC);
5673#[doc = "See [XrPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughHTC)"]
5674#[repr(transparent)]
5675#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5676pub struct PassthroughHTC(u64);
5677handle!(PassthroughHTC);
5678#[doc = "See [XrFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerFB)"]
5679#[repr(transparent)]
5680#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5681pub struct FaceTrackerFB(u64);
5682handle!(FaceTrackerFB);
5683#[doc = "See [XrFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTracker2FB)"]
5684#[repr(transparent)]
5685#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5686pub struct FaceTracker2FB(u64);
5687handle!(FaceTracker2FB);
5688#[doc = "See [XrBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyTrackerFB)"]
5689#[repr(transparent)]
5690#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5691pub struct BodyTrackerFB(u64);
5692handle!(BodyTrackerFB);
5693#[doc = "See [XrEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeTrackerFB)"]
5694#[repr(transparent)]
5695#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5696pub struct EyeTrackerFB(u64);
5697handle!(EyeTrackerFB);
5698#[doc = "See [XrSpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUserFB)"]
5699#[repr(transparent)]
5700#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5701pub struct SpaceUserFB(u64);
5702handle!(SpaceUserFB);
5703#[doc = "See [XrPassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutMETA)"]
5704#[repr(transparent)]
5705#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5706pub struct PassthroughColorLutMETA(u64);
5707handle!(PassthroughColorLutMETA);
5708#[doc = "See [XrPlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorEXT)"]
5709#[repr(transparent)]
5710#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5711pub struct PlaneDetectorEXT(u64);
5712handle!(PlaneDetectorEXT);
5713#[doc = "See [XrVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardMETA)"]
5714#[repr(transparent)]
5715#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5716pub struct VirtualKeyboardMETA(u64);
5717handle!(VirtualKeyboardMETA);
5718#[doc = "See [XrExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExportedLocalizationMapML)"]
5719#[repr(transparent)]
5720#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5721pub struct ExportedLocalizationMapML(u64);
5722handle!(ExportedLocalizationMapML);
5723#[doc = "See [XrMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorML)"]
5724#[repr(transparent)]
5725#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5726pub struct MarkerDetectorML(u64);
5727handle!(MarkerDetectorML);
5728#[doc = "See [XrEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderMETA)"]
5729#[repr(transparent)]
5730#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5731pub struct EnvironmentDepthProviderMETA(u64);
5732handle!(EnvironmentDepthProviderMETA);
5733#[doc = "See [XrEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainMETA)"]
5734#[repr(transparent)]
5735#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5736pub struct EnvironmentDepthSwapchainMETA(u64);
5737handle!(EnvironmentDepthSwapchainMETA);
5738#[doc = "See [XrSpatialGraphNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingMSFT)"]
5739#[repr(transparent)]
5740#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5741pub struct SpatialGraphNodeBindingMSFT(u64);
5742handle!(SpatialGraphNodeBindingMSFT);
5743#[doc = "See [XrSceneObserverMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneObserverMSFT)"]
5744#[repr(transparent)]
5745#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5746pub struct SceneObserverMSFT(u64);
5747handle!(SceneObserverMSFT);
5748#[doc = "See [XrSceneMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMSFT)"]
5749#[repr(transparent)]
5750#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5751pub struct SceneMSFT(u64);
5752handle!(SceneMSFT);
5753#[doc = "See [XrSpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorStoreConnectionMSFT)"]
5754#[repr(transparent)]
5755#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5756pub struct SpatialAnchorStoreConnectionMSFT(u64);
5757handle!(SpatialAnchorStoreConnectionMSFT);
5758#[repr(C)]
5759#[derive(Copy, Clone, Debug, Default, PartialEq)]
5760#[doc = "See [XrVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector2f)"]
5761pub struct Vector2f {
5762    pub x: f32,
5763    pub y: f32,
5764}
5765#[repr(C)]
5766#[derive(Copy, Clone, Debug, Default, PartialEq)]
5767#[doc = "See [XrVector3f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector3f)"]
5768pub struct Vector3f {
5769    pub x: f32,
5770    pub y: f32,
5771    pub z: f32,
5772}
5773#[repr(C)]
5774#[derive(Copy, Clone, Debug, Default, PartialEq)]
5775#[doc = "See [XrVector4f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector4f)"]
5776pub struct Vector4f {
5777    pub x: f32,
5778    pub y: f32,
5779    pub z: f32,
5780    pub w: f32,
5781}
5782#[repr(C)]
5783#[derive(Copy, Clone, Debug, Default, PartialEq)]
5784#[doc = "See [XrColor4f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColor4f)"]
5785pub struct Color4f {
5786    pub r: f32,
5787    pub g: f32,
5788    pub b: f32,
5789    pub a: f32,
5790}
5791#[repr(C)]
5792#[derive(Copy, Clone, Debug, Default, PartialEq)]
5793#[doc = "See [XrQuaternionf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrQuaternionf)"]
5794pub struct Quaternionf {
5795    pub x: f32,
5796    pub y: f32,
5797    pub z: f32,
5798    pub w: f32,
5799}
5800#[repr(C)]
5801#[derive(Copy, Clone, Debug, Default, PartialEq)]
5802#[doc = "See [XrPosef](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPosef)"]
5803pub struct Posef {
5804    pub orientation: Quaternionf,
5805    pub position: Vector3f,
5806}
5807#[repr(C)]
5808#[derive(Copy, Clone, Debug, Default, PartialEq)]
5809#[doc = "See [XrOffset2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset2Df)"]
5810pub struct Offset2Df {
5811    pub x: f32,
5812    pub y: f32,
5813}
5814#[repr(C)]
5815#[derive(Copy, Clone, Debug, Default, PartialEq)]
5816#[doc = "See [XrExtent2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent2Df)"]
5817pub struct Extent2Df {
5818    pub width: f32,
5819    pub height: f32,
5820}
5821#[repr(C)]
5822#[derive(Copy, Clone, Debug, Default, PartialEq)]
5823#[doc = "See [XrRect2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect2Df)"]
5824pub struct Rect2Df {
5825    pub offset: Offset2Df,
5826    pub extent: Extent2Df,
5827}
5828#[repr(C)]
5829#[derive(Copy, Clone, Debug, Default, PartialEq)]
5830#[doc = "See [XrOffset2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset2Di)"]
5831pub struct Offset2Di {
5832    pub x: i32,
5833    pub y: i32,
5834}
5835#[repr(C)]
5836#[derive(Copy, Clone, Debug, Default, PartialEq)]
5837#[doc = "See [XrExtent2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent2Di)"]
5838pub struct Extent2Di {
5839    pub width: i32,
5840    pub height: i32,
5841}
5842#[repr(C)]
5843#[derive(Copy, Clone, Debug, Default, PartialEq)]
5844#[doc = "See [XrRect2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect2Di)"]
5845pub struct Rect2Di {
5846    pub offset: Offset2Di,
5847    pub extent: Extent2Di,
5848}
5849#[repr(C)]
5850#[derive(Copy, Clone, Debug, PartialEq)]
5851#[doc = "See [XrNegotiateLoaderInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateLoaderInfo)"]
5852pub struct NegotiateLoaderInfo {
5853    pub struct_type: LoaderInterfaceStructs,
5854    pub struct_version: u32,
5855    pub struct_size: usize,
5856    pub min_interface_version: u32,
5857    pub max_interface_version: u32,
5858    pub min_api_version: Version,
5859    pub max_api_version: Version,
5860}
5861#[repr(C)]
5862#[derive(Copy, Clone)]
5863#[doc = "See [XrNegotiateApiLayerRequest](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateApiLayerRequest)"]
5864pub struct NegotiateApiLayerRequest {
5865    pub struct_type: LoaderInterfaceStructs,
5866    pub struct_version: u32,
5867    pub struct_size: usize,
5868    pub layer_interface_version: u32,
5869    pub layer_api_version: Version,
5870    pub get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5871    pub create_api_layer_instance: Option<pfn::CreateApiLayerInstance>,
5872}
5873#[repr(C)]
5874#[derive(Copy, Clone)]
5875#[doc = "See [XrNegotiateRuntimeRequest](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateRuntimeRequest)"]
5876pub struct NegotiateRuntimeRequest {
5877    pub struct_type: LoaderInterfaceStructs,
5878    pub struct_version: u32,
5879    pub struct_size: usize,
5880    pub runtime_interface_version: u32,
5881    pub runtime_api_version: Version,
5882    pub get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5883}
5884#[repr(C)]
5885#[derive(Copy, Clone)]
5886#[doc = "See [XrApiLayerNextInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerNextInfo)"]
5887pub struct ApiLayerNextInfo {
5888    pub struct_type: LoaderInterfaceStructs,
5889    pub struct_version: u32,
5890    pub struct_size: usize,
5891    pub layer_name: [c_char; MAX_API_LAYER_NAME_SIZE],
5892    pub next_get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5893    pub next_create_api_layer_instance: Option<pfn::CreateApiLayerInstance>,
5894    pub next: *mut ApiLayerNextInfo,
5895}
5896#[repr(C)]
5897#[derive(Copy, Clone)]
5898#[doc = "See [XrApiLayerCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerCreateInfo)"]
5899pub struct ApiLayerCreateInfo {
5900    pub struct_type: LoaderInterfaceStructs,
5901    pub struct_version: u32,
5902    pub struct_size: usize,
5903    pub loader_instance: *mut c_void,
5904    pub settings_file_location: [c_char; API_LAYER_MAX_SETTINGS_PATH_SIZE],
5905    pub next_info: *mut ApiLayerNextInfo,
5906}
5907#[repr(C)]
5908#[derive(Copy, Clone, Debug)]
5909#[doc = "See [XrBaseInStructure](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBaseInStructure)"]
5910pub struct BaseInStructure {
5911    pub ty: StructureType,
5912    pub next: *const BaseInStructure,
5913}
5914#[repr(C)]
5915#[derive(Copy, Clone, Debug)]
5916#[doc = "See [XrBaseOutStructure](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBaseOutStructure)"]
5917pub struct BaseOutStructure {
5918    pub ty: StructureType,
5919    pub next: *mut BaseOutStructure,
5920}
5921#[repr(C)]
5922#[derive(Copy, Clone, Debug)]
5923#[doc = "See [XrApiLayerProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerProperties)"]
5924pub struct ApiLayerProperties {
5925    pub ty: StructureType,
5926    pub next: *mut c_void,
5927    pub layer_name: [c_char; MAX_API_LAYER_NAME_SIZE],
5928    pub spec_version: Version,
5929    pub layer_version: u32,
5930    pub description: [c_char; MAX_API_LAYER_DESCRIPTION_SIZE],
5931}
5932impl ApiLayerProperties {
5933    pub const TYPE: StructureType = StructureType::API_LAYER_PROPERTIES;
5934    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5935    #[inline]
5936    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5937        let mut x = MaybeUninit::<Self>::uninit();
5938        unsafe {
5939            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5940                ty: Self::TYPE,
5941                next,
5942            });
5943        }
5944        x
5945    }
5946}
5947#[repr(C)]
5948#[derive(Copy, Clone, Debug)]
5949#[doc = "See [XrExtensionProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtensionProperties)"]
5950pub struct ExtensionProperties {
5951    pub ty: StructureType,
5952    pub next: *mut c_void,
5953    pub extension_name: [c_char; MAX_EXTENSION_NAME_SIZE],
5954    pub extension_version: u32,
5955}
5956impl ExtensionProperties {
5957    pub const TYPE: StructureType = StructureType::EXTENSION_PROPERTIES;
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 [XrApplicationInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApplicationInfo)"]
5974pub struct ApplicationInfo {
5975    pub application_name: [c_char; MAX_APPLICATION_NAME_SIZE],
5976    pub application_version: u32,
5977    pub engine_name: [c_char; MAX_ENGINE_NAME_SIZE],
5978    pub engine_version: u32,
5979    pub api_version: Version,
5980}
5981#[repr(C)]
5982#[derive(Copy, Clone, Debug)]
5983#[doc = "See [XrInstanceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateInfo)"]
5984pub struct InstanceCreateInfo {
5985    pub ty: StructureType,
5986    pub next: *const c_void,
5987    pub create_flags: InstanceCreateFlags,
5988    pub application_info: ApplicationInfo,
5989    pub enabled_api_layer_count: u32,
5990    pub enabled_api_layer_names: *const *const c_char,
5991    pub enabled_extension_count: u32,
5992    pub enabled_extension_names: *const *const c_char,
5993}
5994impl InstanceCreateInfo {
5995    pub const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO;
5996}
5997#[repr(C)]
5998#[derive(Copy, Clone, Debug)]
5999#[doc = "See [XrInstanceProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceProperties)"]
6000pub struct InstanceProperties {
6001    pub ty: StructureType,
6002    pub next: *mut c_void,
6003    pub runtime_version: Version,
6004    pub runtime_name: [c_char; MAX_RUNTIME_NAME_SIZE],
6005}
6006impl InstanceProperties {
6007    pub const TYPE: StructureType = StructureType::INSTANCE_PROPERTIES;
6008    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6009    #[inline]
6010    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6011        let mut x = MaybeUninit::<Self>::uninit();
6012        unsafe {
6013            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6014                ty: Self::TYPE,
6015                next,
6016            });
6017        }
6018        x
6019    }
6020}
6021#[repr(C)]
6022#[derive(Copy, Clone, Debug)]
6023#[doc = "See [XrSystemGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemGetInfo)"]
6024pub struct SystemGetInfo {
6025    pub ty: StructureType,
6026    pub next: *const c_void,
6027    pub form_factor: FormFactor,
6028}
6029impl SystemGetInfo {
6030    pub const TYPE: StructureType = StructureType::SYSTEM_GET_INFO;
6031}
6032#[repr(C)]
6033#[derive(Copy, Clone, Debug)]
6034#[doc = "See [XrSystemProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemProperties)"]
6035pub struct SystemProperties {
6036    pub ty: StructureType,
6037    pub next: *mut c_void,
6038    pub system_id: SystemId,
6039    pub vendor_id: u32,
6040    pub system_name: [c_char; MAX_SYSTEM_NAME_SIZE],
6041    pub graphics_properties: SystemGraphicsProperties,
6042    pub tracking_properties: SystemTrackingProperties,
6043}
6044impl SystemProperties {
6045    pub const TYPE: StructureType = StructureType::SYSTEM_PROPERTIES;
6046    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6047    #[inline]
6048    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6049        let mut x = MaybeUninit::<Self>::uninit();
6050        unsafe {
6051            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6052                ty: Self::TYPE,
6053                next,
6054            });
6055        }
6056        x
6057    }
6058}
6059#[repr(C)]
6060#[derive(Copy, Clone, Debug, Default, PartialEq)]
6061#[doc = "See [XrSystemGraphicsProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemGraphicsProperties)"]
6062pub struct SystemGraphicsProperties {
6063    pub max_swapchain_image_height: u32,
6064    pub max_swapchain_image_width: u32,
6065    pub max_layer_count: u32,
6066}
6067#[repr(C)]
6068#[derive(Copy, Clone, Debug, Default, PartialEq)]
6069#[doc = "See [XrSystemTrackingProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemTrackingProperties)"]
6070pub struct SystemTrackingProperties {
6071    pub orientation_tracking: Bool32,
6072    pub position_tracking: Bool32,
6073}
6074#[repr(C)]
6075#[derive(Copy, Clone, Debug)]
6076#[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)"]
6077#[cfg(windows)]
6078pub struct GraphicsBindingOpenGLWin32KHR {
6079    pub ty: StructureType,
6080    pub next: *const c_void,
6081    pub h_dc: HDC,
6082    pub h_glrc: HGLRC,
6083}
6084#[cfg(windows)]
6085impl GraphicsBindingOpenGLWin32KHR {
6086    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_WIN32_KHR;
6087}
6088#[repr(C)]
6089#[derive(Copy, Clone, Debug)]
6090#[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)"]
6091pub struct GraphicsBindingOpenGLXlibKHR {
6092    pub ty: StructureType,
6093    pub next: *const c_void,
6094    pub x_display: *mut Display,
6095    pub visualid: u32,
6096    pub glx_fb_config: GLXFBConfig,
6097    pub glx_drawable: GLXDrawable,
6098    pub glx_context: GLXContext,
6099}
6100impl GraphicsBindingOpenGLXlibKHR {
6101    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_XLIB_KHR;
6102}
6103#[repr(C)]
6104#[derive(Copy, Clone, Debug)]
6105#[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)"]
6106pub struct GraphicsBindingOpenGLXcbKHR {
6107    pub ty: StructureType,
6108    pub next: *const c_void,
6109    pub connection: *mut xcb_connection_t,
6110    pub screen_number: u32,
6111    pub fbconfigid: xcb_glx_fbconfig_t,
6112    pub visualid: xcb_visualid_t,
6113    pub glx_drawable: xcb_glx_drawable_t,
6114    pub glx_context: xcb_glx_context_t,
6115}
6116impl GraphicsBindingOpenGLXcbKHR {
6117    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_XCB_KHR;
6118}
6119#[repr(C)]
6120#[derive(Copy, Clone, Debug)]
6121#[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)"]
6122pub struct GraphicsBindingOpenGLWaylandKHR {
6123    pub ty: StructureType,
6124    pub next: *const c_void,
6125    pub display: *mut wl_display,
6126}
6127impl GraphicsBindingOpenGLWaylandKHR {
6128    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_WAYLAND_KHR;
6129}
6130#[repr(C)]
6131#[derive(Copy, Clone, Debug)]
6132#[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)"]
6133#[cfg(windows)]
6134pub struct GraphicsBindingD3D11KHR {
6135    pub ty: StructureType,
6136    pub next: *const c_void,
6137    pub device: *mut ID3D11Device,
6138}
6139#[cfg(windows)]
6140impl GraphicsBindingD3D11KHR {
6141    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_D3D11_KHR;
6142}
6143#[repr(C)]
6144#[derive(Copy, Clone, Debug)]
6145#[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)"]
6146#[cfg(windows)]
6147pub struct GraphicsBindingD3D12KHR {
6148    pub ty: StructureType,
6149    pub next: *const c_void,
6150    pub device: *mut ID3D12Device,
6151    pub queue: *mut ID3D12CommandQueue,
6152}
6153#[cfg(windows)]
6154impl GraphicsBindingD3D12KHR {
6155    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_D3D12_KHR;
6156}
6157#[repr(C)]
6158#[derive(Copy, Clone, Debug)]
6159#[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)"]
6160#[cfg(target_os = "android")]
6161pub struct GraphicsBindingOpenGLESAndroidKHR {
6162    pub ty: StructureType,
6163    pub next: *const c_void,
6164    pub display: EGLDisplay,
6165    pub config: EGLConfig,
6166    pub context: EGLContext,
6167}
6168#[cfg(target_os = "android")]
6169impl GraphicsBindingOpenGLESAndroidKHR {
6170    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR;
6171}
6172#[repr(C)]
6173#[derive(Copy, Clone, Debug)]
6174#[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)"]
6175pub struct GraphicsBindingVulkanKHR {
6176    pub ty: StructureType,
6177    pub next: *const c_void,
6178    pub instance: VkInstance,
6179    pub physical_device: VkPhysicalDevice,
6180    pub device: VkDevice,
6181    pub queue_family_index: u32,
6182    pub queue_index: u32,
6183}
6184impl GraphicsBindingVulkanKHR {
6185    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_VULKAN_KHR;
6186}
6187pub type GraphicsBindingVulkan2KHR = GraphicsBindingVulkanKHR;
6188#[repr(C)]
6189#[derive(Copy, Clone, Debug)]
6190#[doc = "See [XrGraphicsBindingMetalKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingMetalKHR) - defined by [XR_KHR_metal_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_metal_enable)"]
6191#[cfg(target_vendor = "apple")]
6192pub struct GraphicsBindingMetalKHR {
6193    pub ty: StructureType,
6194    pub next: *const c_void,
6195    pub command_queue: *mut c_void,
6196}
6197#[cfg(target_vendor = "apple")]
6198impl GraphicsBindingMetalKHR {
6199    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_METAL_KHR;
6200}
6201#[repr(C)]
6202#[derive(Copy, Clone, Debug)]
6203#[doc = "See [XrSessionCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateInfo)"]
6204pub struct SessionCreateInfo {
6205    pub ty: StructureType,
6206    pub next: *const c_void,
6207    pub create_flags: SessionCreateFlags,
6208    pub system_id: SystemId,
6209}
6210impl SessionCreateInfo {
6211    pub const TYPE: StructureType = StructureType::SESSION_CREATE_INFO;
6212}
6213#[repr(C)]
6214#[derive(Copy, Clone, Debug)]
6215#[doc = "See [XrSessionBeginInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionBeginInfo)"]
6216pub struct SessionBeginInfo {
6217    pub ty: StructureType,
6218    pub next: *const c_void,
6219    pub primary_view_configuration_type: ViewConfigurationType,
6220}
6221impl SessionBeginInfo {
6222    pub const TYPE: StructureType = StructureType::SESSION_BEGIN_INFO;
6223}
6224#[repr(C)]
6225#[derive(Copy, Clone, Debug)]
6226#[doc = "See [XrSwapchainCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateInfo)"]
6227pub struct SwapchainCreateInfo {
6228    pub ty: StructureType,
6229    pub next: *const c_void,
6230    pub create_flags: SwapchainCreateFlags,
6231    pub usage_flags: SwapchainUsageFlags,
6232    pub format: i64,
6233    pub sample_count: u32,
6234    pub width: u32,
6235    pub height: u32,
6236    pub face_count: u32,
6237    pub array_size: u32,
6238    pub mip_count: u32,
6239}
6240impl SwapchainCreateInfo {
6241    pub const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO;
6242}
6243#[repr(C)]
6244#[derive(Copy, Clone, Debug)]
6245#[doc = "See [XrSwapchainImageBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageBaseHeader)"]
6246pub struct SwapchainImageBaseHeader {
6247    pub ty: StructureType,
6248    pub next: *mut c_void,
6249}
6250#[repr(C)]
6251#[derive(Copy, Clone, Debug)]
6252#[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)"]
6253pub struct SwapchainImageOpenGLKHR {
6254    pub ty: StructureType,
6255    pub next: *mut c_void,
6256    pub image: u32,
6257}
6258impl SwapchainImageOpenGLKHR {
6259    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_OPENGL_KHR;
6260    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6261    #[inline]
6262    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6263        let mut x = MaybeUninit::<Self>::uninit();
6264        unsafe {
6265            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6266                ty: Self::TYPE,
6267                next,
6268            });
6269        }
6270        x
6271    }
6272}
6273#[repr(C)]
6274#[derive(Copy, Clone, Debug)]
6275#[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)"]
6276pub struct SwapchainImageOpenGLESKHR {
6277    pub ty: StructureType,
6278    pub next: *mut c_void,
6279    pub image: u32,
6280}
6281impl SwapchainImageOpenGLESKHR {
6282    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_OPENGL_ES_KHR;
6283    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6284    #[inline]
6285    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6286        let mut x = MaybeUninit::<Self>::uninit();
6287        unsafe {
6288            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6289                ty: Self::TYPE,
6290                next,
6291            });
6292        }
6293        x
6294    }
6295}
6296#[repr(C)]
6297#[derive(Copy, Clone, Debug)]
6298#[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)"]
6299pub struct SwapchainImageVulkanKHR {
6300    pub ty: StructureType,
6301    pub next: *mut c_void,
6302    pub image: VkImage,
6303}
6304impl SwapchainImageVulkanKHR {
6305    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_VULKAN_KHR;
6306    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6307    #[inline]
6308    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6309        let mut x = MaybeUninit::<Self>::uninit();
6310        unsafe {
6311            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6312                ty: Self::TYPE,
6313                next,
6314            });
6315        }
6316        x
6317    }
6318}
6319pub type SwapchainImageVulkan2KHR = SwapchainImageVulkanKHR;
6320#[repr(C)]
6321#[derive(Copy, Clone, Debug)]
6322#[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)"]
6323#[cfg(windows)]
6324pub struct SwapchainImageD3D11KHR {
6325    pub ty: StructureType,
6326    pub next: *mut c_void,
6327    pub texture: *mut ID3D11Texture2D,
6328}
6329#[cfg(windows)]
6330impl SwapchainImageD3D11KHR {
6331    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_D3D11_KHR;
6332    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6333    #[inline]
6334    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6335        let mut x = MaybeUninit::<Self>::uninit();
6336        unsafe {
6337            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6338                ty: Self::TYPE,
6339                next,
6340            });
6341        }
6342        x
6343    }
6344}
6345#[repr(C)]
6346#[derive(Copy, Clone, Debug)]
6347#[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)"]
6348#[cfg(windows)]
6349pub struct SwapchainImageD3D12KHR {
6350    pub ty: StructureType,
6351    pub next: *mut c_void,
6352    pub texture: *mut ID3D12Resource,
6353}
6354#[cfg(windows)]
6355impl SwapchainImageD3D12KHR {
6356    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_D3D12_KHR;
6357    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6358    #[inline]
6359    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6360        let mut x = MaybeUninit::<Self>::uninit();
6361        unsafe {
6362            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6363                ty: Self::TYPE,
6364                next,
6365            });
6366        }
6367        x
6368    }
6369}
6370#[repr(C)]
6371#[derive(Copy, Clone, Debug)]
6372#[doc = "See [XrSwapchainImageMetalKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageMetalKHR) - defined by [XR_KHR_metal_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_metal_enable)"]
6373#[cfg(target_vendor = "apple")]
6374pub struct SwapchainImageMetalKHR {
6375    pub ty: StructureType,
6376    pub next: *const c_void,
6377    pub texture: *mut c_void,
6378}
6379#[cfg(target_vendor = "apple")]
6380impl SwapchainImageMetalKHR {
6381    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_METAL_KHR;
6382}
6383#[repr(C)]
6384#[derive(Copy, Clone, Debug)]
6385#[doc = "See [XrSwapchainImageAcquireInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageAcquireInfo)"]
6386pub struct SwapchainImageAcquireInfo {
6387    pub ty: StructureType,
6388    pub next: *const c_void,
6389}
6390impl SwapchainImageAcquireInfo {
6391    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_ACQUIRE_INFO;
6392}
6393#[repr(C)]
6394#[derive(Copy, Clone, Debug)]
6395#[doc = "See [XrSwapchainImageWaitInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageWaitInfo)"]
6396pub struct SwapchainImageWaitInfo {
6397    pub ty: StructureType,
6398    pub next: *const c_void,
6399    pub timeout: Duration,
6400}
6401impl SwapchainImageWaitInfo {
6402    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_WAIT_INFO;
6403}
6404#[repr(C)]
6405#[derive(Copy, Clone, Debug)]
6406#[doc = "See [XrSwapchainImageReleaseInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageReleaseInfo)"]
6407pub struct SwapchainImageReleaseInfo {
6408    pub ty: StructureType,
6409    pub next: *const c_void,
6410}
6411impl SwapchainImageReleaseInfo {
6412    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_RELEASE_INFO;
6413}
6414#[repr(C)]
6415#[derive(Copy, Clone, Debug)]
6416#[doc = "See [XrReferenceSpaceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReferenceSpaceCreateInfo)"]
6417pub struct ReferenceSpaceCreateInfo {
6418    pub ty: StructureType,
6419    pub next: *const c_void,
6420    pub reference_space_type: ReferenceSpaceType,
6421    pub pose_in_reference_space: Posef,
6422}
6423impl ReferenceSpaceCreateInfo {
6424    pub const TYPE: StructureType = StructureType::REFERENCE_SPACE_CREATE_INFO;
6425}
6426#[repr(C)]
6427#[derive(Copy, Clone, Debug)]
6428#[doc = "See [XrActionSpaceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSpaceCreateInfo)"]
6429pub struct ActionSpaceCreateInfo {
6430    pub ty: StructureType,
6431    pub next: *const c_void,
6432    pub action: Action,
6433    pub subaction_path: Path,
6434    pub pose_in_action_space: Posef,
6435}
6436impl ActionSpaceCreateInfo {
6437    pub const TYPE: StructureType = StructureType::ACTION_SPACE_CREATE_INFO;
6438}
6439#[repr(C)]
6440#[derive(Copy, Clone, Debug)]
6441#[doc = "See [XrSpaceLocation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocation)"]
6442pub struct SpaceLocation {
6443    pub ty: StructureType,
6444    pub next: *mut c_void,
6445    pub location_flags: SpaceLocationFlags,
6446    pub pose: Posef,
6447}
6448impl SpaceLocation {
6449    pub const TYPE: StructureType = StructureType::SPACE_LOCATION;
6450    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6451    #[inline]
6452    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6453        let mut x = MaybeUninit::<Self>::uninit();
6454        unsafe {
6455            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6456                ty: Self::TYPE,
6457                next,
6458            });
6459        }
6460        x
6461    }
6462}
6463#[repr(C)]
6464#[derive(Copy, Clone, Debug)]
6465#[doc = "See [XrSpaceVelocity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocity)"]
6466pub struct SpaceVelocity {
6467    pub ty: StructureType,
6468    pub next: *mut c_void,
6469    pub velocity_flags: SpaceVelocityFlags,
6470    pub linear_velocity: Vector3f,
6471    pub angular_velocity: Vector3f,
6472}
6473impl SpaceVelocity {
6474    pub const TYPE: StructureType = StructureType::SPACE_VELOCITY;
6475    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6476    #[inline]
6477    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6478        let mut x = MaybeUninit::<Self>::uninit();
6479        unsafe {
6480            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6481                ty: Self::TYPE,
6482                next,
6483            });
6484        }
6485        x
6486    }
6487}
6488#[repr(C)]
6489#[derive(Copy, Clone, Debug, Default, PartialEq)]
6490#[doc = "See [XrFovf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFovf)"]
6491pub struct Fovf {
6492    pub angle_left: f32,
6493    pub angle_right: f32,
6494    pub angle_up: f32,
6495    pub angle_down: f32,
6496}
6497#[repr(C)]
6498#[derive(Copy, Clone, Debug)]
6499#[doc = "See [XrView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrView)"]
6500pub struct View {
6501    pub ty: StructureType,
6502    pub next: *mut c_void,
6503    pub pose: Posef,
6504    pub fov: Fovf,
6505}
6506impl View {
6507    pub const TYPE: StructureType = StructureType::VIEW;
6508    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6509    #[inline]
6510    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6511        let mut x = MaybeUninit::<Self>::uninit();
6512        unsafe {
6513            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6514                ty: Self::TYPE,
6515                next,
6516            });
6517        }
6518        x
6519    }
6520}
6521#[repr(C)]
6522#[derive(Copy, Clone, Debug)]
6523#[doc = "See [XrViewLocateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewLocateInfo)"]
6524pub struct ViewLocateInfo {
6525    pub ty: StructureType,
6526    pub next: *const c_void,
6527    pub view_configuration_type: ViewConfigurationType,
6528    pub display_time: Time,
6529    pub space: Space,
6530}
6531impl ViewLocateInfo {
6532    pub const TYPE: StructureType = StructureType::VIEW_LOCATE_INFO;
6533}
6534#[repr(C)]
6535#[derive(Copy, Clone, Debug)]
6536#[doc = "See [XrViewState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewState)"]
6537pub struct ViewState {
6538    pub ty: StructureType,
6539    pub next: *mut c_void,
6540    pub view_state_flags: ViewStateFlags,
6541}
6542impl ViewState {
6543    pub const TYPE: StructureType = StructureType::VIEW_STATE;
6544    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6545    #[inline]
6546    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6547        let mut x = MaybeUninit::<Self>::uninit();
6548        unsafe {
6549            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6550                ty: Self::TYPE,
6551                next,
6552            });
6553        }
6554        x
6555    }
6556}
6557#[repr(C)]
6558#[derive(Copy, Clone, Debug)]
6559#[doc = "See [XrViewConfigurationView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationView)"]
6560pub struct ViewConfigurationView {
6561    pub ty: StructureType,
6562    pub next: *mut c_void,
6563    pub recommended_image_rect_width: u32,
6564    pub max_image_rect_width: u32,
6565    pub recommended_image_rect_height: u32,
6566    pub max_image_rect_height: u32,
6567    pub recommended_swapchain_sample_count: u32,
6568    pub max_swapchain_sample_count: u32,
6569}
6570impl ViewConfigurationView {
6571    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_VIEW;
6572    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6573    #[inline]
6574    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6575        let mut x = MaybeUninit::<Self>::uninit();
6576        unsafe {
6577            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6578                ty: Self::TYPE,
6579                next,
6580            });
6581        }
6582        x
6583    }
6584}
6585#[repr(C)]
6586#[derive(Copy, Clone, Debug)]
6587#[doc = "See [XrSwapchainSubImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainSubImage)"]
6588pub struct SwapchainSubImage {
6589    pub swapchain: Swapchain,
6590    pub image_rect: Rect2Di,
6591    pub image_array_index: u32,
6592}
6593#[repr(C)]
6594#[derive(Copy, Clone, Debug)]
6595#[doc = "See [XrCompositionLayerBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerBaseHeader)"]
6596pub struct CompositionLayerBaseHeader {
6597    pub ty: StructureType,
6598    pub next: *const c_void,
6599    pub layer_flags: CompositionLayerFlags,
6600    pub space: Space,
6601}
6602#[repr(C)]
6603#[derive(Copy, Clone, Debug)]
6604#[doc = "See [XrCompositionLayerProjectionView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerProjectionView)"]
6605pub struct CompositionLayerProjectionView {
6606    pub ty: StructureType,
6607    pub next: *const c_void,
6608    pub pose: Posef,
6609    pub fov: Fovf,
6610    pub sub_image: SwapchainSubImage,
6611}
6612impl CompositionLayerProjectionView {
6613    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PROJECTION_VIEW;
6614}
6615#[repr(C)]
6616#[derive(Copy, Clone, Debug)]
6617#[doc = "See [XrCompositionLayerProjection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerProjection)"]
6618pub struct CompositionLayerProjection {
6619    pub ty: StructureType,
6620    pub next: *const c_void,
6621    pub layer_flags: CompositionLayerFlags,
6622    pub space: Space,
6623    pub view_count: u32,
6624    pub views: *const CompositionLayerProjectionView,
6625}
6626impl CompositionLayerProjection {
6627    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PROJECTION;
6628}
6629#[repr(C)]
6630#[derive(Copy, Clone, Debug)]
6631#[doc = "See [XrCompositionLayerQuad](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerQuad)"]
6632pub struct CompositionLayerQuad {
6633    pub ty: StructureType,
6634    pub next: *const c_void,
6635    pub layer_flags: CompositionLayerFlags,
6636    pub space: Space,
6637    pub eye_visibility: EyeVisibility,
6638    pub sub_image: SwapchainSubImage,
6639    pub pose: Posef,
6640    pub size: Extent2Df,
6641}
6642impl CompositionLayerQuad {
6643    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_QUAD;
6644}
6645#[repr(C)]
6646#[derive(Copy, Clone, Debug)]
6647#[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)"]
6648pub struct CompositionLayerCylinderKHR {
6649    pub ty: StructureType,
6650    pub next: *const c_void,
6651    pub layer_flags: CompositionLayerFlags,
6652    pub space: Space,
6653    pub eye_visibility: EyeVisibility,
6654    pub sub_image: SwapchainSubImage,
6655    pub pose: Posef,
6656    pub radius: f32,
6657    pub central_angle: f32,
6658    pub aspect_ratio: f32,
6659}
6660impl CompositionLayerCylinderKHR {
6661    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_CYLINDER_KHR;
6662}
6663#[repr(C)]
6664#[derive(Copy, Clone, Debug)]
6665#[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)"]
6666pub struct CompositionLayerCubeKHR {
6667    pub ty: StructureType,
6668    pub next: *const c_void,
6669    pub layer_flags: CompositionLayerFlags,
6670    pub space: Space,
6671    pub eye_visibility: EyeVisibility,
6672    pub swapchain: Swapchain,
6673    pub image_array_index: u32,
6674    pub orientation: Quaternionf,
6675}
6676impl CompositionLayerCubeKHR {
6677    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_CUBE_KHR;
6678}
6679#[repr(C)]
6680#[derive(Copy, Clone, Debug)]
6681#[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)"]
6682pub struct CompositionLayerEquirectKHR {
6683    pub ty: StructureType,
6684    pub next: *const c_void,
6685    pub layer_flags: CompositionLayerFlags,
6686    pub space: Space,
6687    pub eye_visibility: EyeVisibility,
6688    pub sub_image: SwapchainSubImage,
6689    pub pose: Posef,
6690    pub radius: f32,
6691    pub scale: Vector2f,
6692    pub bias: Vector2f,
6693}
6694impl CompositionLayerEquirectKHR {
6695    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_EQUIRECT_KHR;
6696}
6697#[repr(C)]
6698#[derive(Copy, Clone, Debug)]
6699#[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)"]
6700pub struct CompositionLayerDepthInfoKHR {
6701    pub ty: StructureType,
6702    pub next: *const c_void,
6703    pub sub_image: SwapchainSubImage,
6704    pub min_depth: f32,
6705    pub max_depth: f32,
6706    pub near_z: f32,
6707    pub far_z: f32,
6708}
6709impl CompositionLayerDepthInfoKHR {
6710    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_INFO_KHR;
6711}
6712#[repr(C)]
6713#[derive(Copy, Clone, Debug)]
6714#[doc = "See [XrFrameBeginInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameBeginInfo)"]
6715pub struct FrameBeginInfo {
6716    pub ty: StructureType,
6717    pub next: *const c_void,
6718}
6719impl FrameBeginInfo {
6720    pub const TYPE: StructureType = StructureType::FRAME_BEGIN_INFO;
6721}
6722#[repr(C)]
6723#[derive(Copy, Clone, Debug)]
6724#[doc = "See [XrFrameEndInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfo)"]
6725pub struct FrameEndInfo {
6726    pub ty: StructureType,
6727    pub next: *const c_void,
6728    pub display_time: Time,
6729    pub environment_blend_mode: EnvironmentBlendMode,
6730    pub layer_count: u32,
6731    pub layers: *const *const CompositionLayerBaseHeader,
6732}
6733impl FrameEndInfo {
6734    pub const TYPE: StructureType = StructureType::FRAME_END_INFO;
6735}
6736#[repr(C)]
6737#[derive(Copy, Clone, Debug)]
6738#[doc = "See [XrFrameWaitInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameWaitInfo)"]
6739pub struct FrameWaitInfo {
6740    pub ty: StructureType,
6741    pub next: *const c_void,
6742}
6743impl FrameWaitInfo {
6744    pub const TYPE: StructureType = StructureType::FRAME_WAIT_INFO;
6745}
6746#[repr(C)]
6747#[derive(Copy, Clone, Debug)]
6748#[doc = "See [XrFrameState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameState)"]
6749pub struct FrameState {
6750    pub ty: StructureType,
6751    pub next: *mut c_void,
6752    pub predicted_display_time: Time,
6753    pub predicted_display_period: Duration,
6754    pub should_render: Bool32,
6755}
6756impl FrameState {
6757    pub const TYPE: StructureType = StructureType::FRAME_STATE;
6758    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6759    #[inline]
6760    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6761        let mut x = MaybeUninit::<Self>::uninit();
6762        unsafe {
6763            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6764                ty: Self::TYPE,
6765                next,
6766            });
6767        }
6768        x
6769    }
6770}
6771#[repr(C)]
6772#[derive(Copy, Clone, Debug)]
6773#[doc = "See [XrHapticBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticBaseHeader)"]
6774pub struct HapticBaseHeader {
6775    pub ty: StructureType,
6776    pub next: *const c_void,
6777}
6778#[repr(C)]
6779#[derive(Copy, Clone, Debug)]
6780#[doc = "See [XrHapticVibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticVibration)"]
6781pub struct HapticVibration {
6782    pub ty: StructureType,
6783    pub next: *const c_void,
6784    pub duration: Duration,
6785    pub frequency: f32,
6786    pub amplitude: f32,
6787}
6788impl HapticVibration {
6789    pub const TYPE: StructureType = StructureType::HAPTIC_VIBRATION;
6790}
6791#[repr(C)]
6792#[derive(Copy, Clone, Debug)]
6793#[doc = "See [XrEventDataBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataBaseHeader)"]
6794pub struct EventDataBaseHeader {
6795    pub ty: StructureType,
6796    pub next: *const c_void,
6797}
6798#[repr(C)]
6799#[derive(Copy, Clone, Debug)]
6800#[doc = "See [XrEventDataBuffer](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataBuffer)"]
6801pub struct EventDataBuffer {
6802    pub ty: StructureType,
6803    pub next: *const c_void,
6804    pub varying: [u8; 4000usize],
6805}
6806impl EventDataBuffer {
6807    pub const TYPE: StructureType = StructureType::EVENT_DATA_BUFFER;
6808}
6809#[repr(C)]
6810#[derive(Copy, Clone, Debug)]
6811#[doc = "See [XrEventDataEventsLost](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataEventsLost)"]
6812pub struct EventDataEventsLost {
6813    pub ty: StructureType,
6814    pub next: *const c_void,
6815    pub lost_event_count: u32,
6816}
6817impl EventDataEventsLost {
6818    pub const TYPE: StructureType = StructureType::EVENT_DATA_EVENTS_LOST;
6819}
6820#[repr(C)]
6821#[derive(Copy, Clone, Debug)]
6822#[doc = "See [XrEventDataInstanceLossPending](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataInstanceLossPending)"]
6823pub struct EventDataInstanceLossPending {
6824    pub ty: StructureType,
6825    pub next: *const c_void,
6826    pub loss_time: Time,
6827}
6828impl EventDataInstanceLossPending {
6829    pub const TYPE: StructureType = StructureType::EVENT_DATA_INSTANCE_LOSS_PENDING;
6830}
6831#[repr(C)]
6832#[derive(Copy, Clone, Debug)]
6833#[doc = "See [XrEventDataSessionStateChanged](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSessionStateChanged)"]
6834pub struct EventDataSessionStateChanged {
6835    pub ty: StructureType,
6836    pub next: *const c_void,
6837    pub session: Session,
6838    pub state: SessionState,
6839    pub time: Time,
6840}
6841impl EventDataSessionStateChanged {
6842    pub const TYPE: StructureType = StructureType::EVENT_DATA_SESSION_STATE_CHANGED;
6843}
6844#[repr(C)]
6845#[derive(Copy, Clone, Debug)]
6846#[doc = "See [XrEventDataReferenceSpaceChangePending](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataReferenceSpaceChangePending)"]
6847pub struct EventDataReferenceSpaceChangePending {
6848    pub ty: StructureType,
6849    pub next: *const c_void,
6850    pub session: Session,
6851    pub reference_space_type: ReferenceSpaceType,
6852    pub change_time: Time,
6853    pub pose_valid: Bool32,
6854    pub pose_in_previous_space: Posef,
6855}
6856impl EventDataReferenceSpaceChangePending {
6857    pub const TYPE: StructureType = StructureType::EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING;
6858}
6859#[repr(C)]
6860#[derive(Copy, Clone, Debug)]
6861#[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)"]
6862pub struct EventDataPerfSettingsEXT {
6863    pub ty: StructureType,
6864    pub next: *const c_void,
6865    pub domain: PerfSettingsDomainEXT,
6866    pub sub_domain: PerfSettingsSubDomainEXT,
6867    pub from_level: PerfSettingsNotificationLevelEXT,
6868    pub to_level: PerfSettingsNotificationLevelEXT,
6869}
6870impl EventDataPerfSettingsEXT {
6871    pub const TYPE: StructureType = StructureType::EVENT_DATA_PERF_SETTINGS_EXT;
6872}
6873#[repr(C)]
6874#[derive(Copy, Clone, Debug)]
6875#[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)"]
6876pub struct EventDataVisibilityMaskChangedKHR {
6877    pub ty: StructureType,
6878    pub next: *const c_void,
6879    pub session: Session,
6880    pub view_configuration_type: ViewConfigurationType,
6881    pub view_index: u32,
6882}
6883impl EventDataVisibilityMaskChangedKHR {
6884    pub const TYPE: StructureType = StructureType::EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR;
6885}
6886#[repr(C)]
6887#[derive(Copy, Clone, Debug)]
6888#[doc = "See [XrViewConfigurationProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationProperties)"]
6889pub struct ViewConfigurationProperties {
6890    pub ty: StructureType,
6891    pub next: *mut c_void,
6892    pub view_configuration_type: ViewConfigurationType,
6893    pub fov_mutable: Bool32,
6894}
6895impl ViewConfigurationProperties {
6896    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_PROPERTIES;
6897    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6898    #[inline]
6899    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6900        let mut x = MaybeUninit::<Self>::uninit();
6901        unsafe {
6902            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6903                ty: Self::TYPE,
6904                next,
6905            });
6906        }
6907        x
6908    }
6909}
6910#[repr(C)]
6911#[derive(Copy, Clone, Debug)]
6912#[doc = "See [XrActionStateBoolean](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateBoolean)"]
6913pub struct ActionStateBoolean {
6914    pub ty: StructureType,
6915    pub next: *mut c_void,
6916    pub current_state: Bool32,
6917    pub changed_since_last_sync: Bool32,
6918    pub last_change_time: Time,
6919    pub is_active: Bool32,
6920}
6921impl ActionStateBoolean {
6922    pub const TYPE: StructureType = StructureType::ACTION_STATE_BOOLEAN;
6923    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6924    #[inline]
6925    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6926        let mut x = MaybeUninit::<Self>::uninit();
6927        unsafe {
6928            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6929                ty: Self::TYPE,
6930                next,
6931            });
6932        }
6933        x
6934    }
6935}
6936#[repr(C)]
6937#[derive(Copy, Clone, Debug)]
6938#[doc = "See [XrActionStateFloat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateFloat)"]
6939pub struct ActionStateFloat {
6940    pub ty: StructureType,
6941    pub next: *mut c_void,
6942    pub current_state: f32,
6943    pub changed_since_last_sync: Bool32,
6944    pub last_change_time: Time,
6945    pub is_active: Bool32,
6946}
6947impl ActionStateFloat {
6948    pub const TYPE: StructureType = StructureType::ACTION_STATE_FLOAT;
6949    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6950    #[inline]
6951    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6952        let mut x = MaybeUninit::<Self>::uninit();
6953        unsafe {
6954            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6955                ty: Self::TYPE,
6956                next,
6957            });
6958        }
6959        x
6960    }
6961}
6962#[repr(C)]
6963#[derive(Copy, Clone, Debug)]
6964#[doc = "See [XrActionStateVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateVector2f)"]
6965pub struct ActionStateVector2f {
6966    pub ty: StructureType,
6967    pub next: *mut c_void,
6968    pub current_state: Vector2f,
6969    pub changed_since_last_sync: Bool32,
6970    pub last_change_time: Time,
6971    pub is_active: Bool32,
6972}
6973impl ActionStateVector2f {
6974    pub const TYPE: StructureType = StructureType::ACTION_STATE_VECTOR2F;
6975    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6976    #[inline]
6977    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6978        let mut x = MaybeUninit::<Self>::uninit();
6979        unsafe {
6980            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6981                ty: Self::TYPE,
6982                next,
6983            });
6984        }
6985        x
6986    }
6987}
6988#[repr(C)]
6989#[derive(Copy, Clone, Debug)]
6990#[doc = "See [XrActionStatePose](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStatePose)"]
6991pub struct ActionStatePose {
6992    pub ty: StructureType,
6993    pub next: *mut c_void,
6994    pub is_active: Bool32,
6995}
6996impl ActionStatePose {
6997    pub const TYPE: StructureType = StructureType::ACTION_STATE_POSE;
6998    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6999    #[inline]
7000    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7001        let mut x = MaybeUninit::<Self>::uninit();
7002        unsafe {
7003            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7004                ty: Self::TYPE,
7005                next,
7006            });
7007        }
7008        x
7009    }
7010}
7011#[repr(C)]
7012#[derive(Copy, Clone, Debug)]
7013#[doc = "See [XrActionStateGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateGetInfo)"]
7014pub struct ActionStateGetInfo {
7015    pub ty: StructureType,
7016    pub next: *const c_void,
7017    pub action: Action,
7018    pub subaction_path: Path,
7019}
7020impl ActionStateGetInfo {
7021    pub const TYPE: StructureType = StructureType::ACTION_STATE_GET_INFO;
7022}
7023#[repr(C)]
7024#[derive(Copy, Clone, Debug)]
7025#[doc = "See [XrHapticActionInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticActionInfo)"]
7026pub struct HapticActionInfo {
7027    pub ty: StructureType,
7028    pub next: *const c_void,
7029    pub action: Action,
7030    pub subaction_path: Path,
7031}
7032impl HapticActionInfo {
7033    pub const TYPE: StructureType = StructureType::HAPTIC_ACTION_INFO;
7034}
7035#[repr(C)]
7036#[derive(Copy, Clone, Debug)]
7037#[doc = "See [XrActionSetCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSetCreateInfo)"]
7038pub struct ActionSetCreateInfo {
7039    pub ty: StructureType,
7040    pub next: *const c_void,
7041    pub action_set_name: [c_char; MAX_ACTION_SET_NAME_SIZE],
7042    pub localized_action_set_name: [c_char; MAX_LOCALIZED_ACTION_SET_NAME_SIZE],
7043    pub priority: u32,
7044}
7045impl ActionSetCreateInfo {
7046    pub const TYPE: StructureType = StructureType::ACTION_SET_CREATE_INFO;
7047}
7048#[repr(C)]
7049#[derive(Copy, Clone, Debug)]
7050#[doc = "See [XrActionSuggestedBinding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSuggestedBinding)"]
7051pub struct ActionSuggestedBinding {
7052    pub action: Action,
7053    pub binding: Path,
7054}
7055#[repr(C)]
7056#[derive(Copy, Clone, Debug)]
7057#[doc = "See [XrInteractionProfileSuggestedBinding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileSuggestedBinding)"]
7058pub struct InteractionProfileSuggestedBinding {
7059    pub ty: StructureType,
7060    pub next: *const c_void,
7061    pub interaction_profile: Path,
7062    pub count_suggested_bindings: u32,
7063    pub suggested_bindings: *const ActionSuggestedBinding,
7064}
7065impl InteractionProfileSuggestedBinding {
7066    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_SUGGESTED_BINDING;
7067}
7068#[repr(C)]
7069#[derive(Copy, Clone, Debug)]
7070#[doc = "See [XrActiveActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSet)"]
7071pub struct ActiveActionSet {
7072    pub action_set: ActionSet,
7073    pub subaction_path: Path,
7074}
7075#[repr(C)]
7076#[derive(Copy, Clone, Debug)]
7077#[doc = "See [XrSessionActionSetsAttachInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionActionSetsAttachInfo)"]
7078pub struct SessionActionSetsAttachInfo {
7079    pub ty: StructureType,
7080    pub next: *const c_void,
7081    pub count_action_sets: u32,
7082    pub action_sets: *const ActionSet,
7083}
7084impl SessionActionSetsAttachInfo {
7085    pub const TYPE: StructureType = StructureType::SESSION_ACTION_SETS_ATTACH_INFO;
7086}
7087#[repr(C)]
7088#[derive(Copy, Clone, Debug)]
7089#[doc = "See [XrActionsSyncInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionsSyncInfo)"]
7090pub struct ActionsSyncInfo {
7091    pub ty: StructureType,
7092    pub next: *const c_void,
7093    pub count_active_action_sets: u32,
7094    pub active_action_sets: *const ActiveActionSet,
7095}
7096impl ActionsSyncInfo {
7097    pub const TYPE: StructureType = StructureType::ACTIONS_SYNC_INFO;
7098}
7099#[repr(C)]
7100#[derive(Copy, Clone, Debug)]
7101#[doc = "See [XrBoundSourcesForActionEnumerateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoundSourcesForActionEnumerateInfo)"]
7102pub struct BoundSourcesForActionEnumerateInfo {
7103    pub ty: StructureType,
7104    pub next: *const c_void,
7105    pub action: Action,
7106}
7107impl BoundSourcesForActionEnumerateInfo {
7108    pub const TYPE: StructureType = StructureType::BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO;
7109}
7110#[repr(C)]
7111#[derive(Copy, Clone, Debug)]
7112#[doc = "See [XrInputSourceLocalizedNameGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInputSourceLocalizedNameGetInfo)"]
7113pub struct InputSourceLocalizedNameGetInfo {
7114    pub ty: StructureType,
7115    pub next: *const c_void,
7116    pub source_path: Path,
7117    pub which_components: InputSourceLocalizedNameFlags,
7118}
7119impl InputSourceLocalizedNameGetInfo {
7120    pub const TYPE: StructureType = StructureType::INPUT_SOURCE_LOCALIZED_NAME_GET_INFO;
7121}
7122#[repr(C)]
7123#[derive(Copy, Clone, Debug)]
7124#[doc = "See [XrEventDataInteractionProfileChanged](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataInteractionProfileChanged)"]
7125pub struct EventDataInteractionProfileChanged {
7126    pub ty: StructureType,
7127    pub next: *const c_void,
7128    pub session: Session,
7129}
7130impl EventDataInteractionProfileChanged {
7131    pub const TYPE: StructureType = StructureType::EVENT_DATA_INTERACTION_PROFILE_CHANGED;
7132}
7133#[repr(C)]
7134#[derive(Copy, Clone, Debug)]
7135#[doc = "See [XrInteractionProfileState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileState)"]
7136pub struct InteractionProfileState {
7137    pub ty: StructureType,
7138    pub next: *mut c_void,
7139    pub interaction_profile: Path,
7140}
7141impl InteractionProfileState {
7142    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_STATE;
7143    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7144    #[inline]
7145    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7146        let mut x = MaybeUninit::<Self>::uninit();
7147        unsafe {
7148            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7149                ty: Self::TYPE,
7150                next,
7151            });
7152        }
7153        x
7154    }
7155}
7156#[repr(C)]
7157#[derive(Copy, Clone, Debug)]
7158#[doc = "See [XrActionCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionCreateInfo)"]
7159pub struct ActionCreateInfo {
7160    pub ty: StructureType,
7161    pub next: *const c_void,
7162    pub action_name: [c_char; MAX_ACTION_NAME_SIZE],
7163    pub action_type: ActionType,
7164    pub count_subaction_paths: u32,
7165    pub subaction_paths: *const Path,
7166    pub localized_action_name: [c_char; MAX_LOCALIZED_ACTION_NAME_SIZE],
7167}
7168impl ActionCreateInfo {
7169    pub const TYPE: StructureType = StructureType::ACTION_CREATE_INFO;
7170}
7171#[repr(C)]
7172#[derive(Copy, Clone, Debug)]
7173#[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)"]
7174#[cfg(target_os = "android")]
7175pub struct InstanceCreateInfoAndroidKHR {
7176    pub ty: StructureType,
7177    pub next: *const c_void,
7178    pub application_vm: *mut c_void,
7179    pub application_activity: *mut c_void,
7180}
7181#[cfg(target_os = "android")]
7182impl InstanceCreateInfoAndroidKHR {
7183    pub const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO_ANDROID_KHR;
7184}
7185#[repr(C)]
7186#[derive(Copy, Clone, Debug)]
7187#[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)"]
7188pub struct VulkanSwapchainFormatListCreateInfoKHR {
7189    pub ty: StructureType,
7190    pub next: *const c_void,
7191    pub view_format_count: u32,
7192    pub view_formats: *const VkFormat,
7193}
7194impl VulkanSwapchainFormatListCreateInfoKHR {
7195    pub const TYPE: StructureType = StructureType::VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR;
7196}
7197#[repr(C)]
7198#[derive(Copy, Clone, Debug)]
7199#[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)"]
7200pub struct DebugUtilsObjectNameInfoEXT {
7201    pub ty: StructureType,
7202    pub next: *const c_void,
7203    pub object_type: ObjectType,
7204    pub object_handle: u64,
7205    pub object_name: *const c_char,
7206}
7207impl DebugUtilsObjectNameInfoEXT {
7208    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
7209}
7210#[repr(C)]
7211#[derive(Copy, Clone, Debug)]
7212#[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)"]
7213pub struct DebugUtilsLabelEXT {
7214    pub ty: StructureType,
7215    pub next: *const c_void,
7216    pub label_name: *const c_char,
7217}
7218impl DebugUtilsLabelEXT {
7219    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_LABEL_EXT;
7220}
7221#[repr(C)]
7222#[derive(Copy, Clone, Debug)]
7223#[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)"]
7224pub struct DebugUtilsMessengerCallbackDataEXT {
7225    pub ty: StructureType,
7226    pub next: *const c_void,
7227    pub message_id: *const c_char,
7228    pub function_name: *const c_char,
7229    pub message: *const c_char,
7230    pub object_count: u32,
7231    pub objects: *mut DebugUtilsObjectNameInfoEXT,
7232    pub session_label_count: u32,
7233    pub session_labels: *mut DebugUtilsLabelEXT,
7234}
7235impl DebugUtilsMessengerCallbackDataEXT {
7236    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
7237}
7238#[repr(C)]
7239#[derive(Copy, Clone)]
7240#[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)"]
7241pub struct DebugUtilsMessengerCreateInfoEXT {
7242    pub ty: StructureType,
7243    pub next: *const c_void,
7244    pub message_severities: DebugUtilsMessageSeverityFlagsEXT,
7245    pub message_types: DebugUtilsMessageTypeFlagsEXT,
7246    pub user_callback: Option<pfn::DebugUtilsMessengerCallbackEXT>,
7247    pub user_data: *mut c_void,
7248}
7249impl DebugUtilsMessengerCreateInfoEXT {
7250    pub const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
7251}
7252#[repr(C)]
7253#[derive(Copy, Clone, Debug)]
7254#[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)"]
7255pub struct VisibilityMaskKHR {
7256    pub ty: StructureType,
7257    pub next: *mut c_void,
7258    pub vertex_capacity_input: u32,
7259    pub vertex_count_output: u32,
7260    pub vertices: *mut Vector2f,
7261    pub index_capacity_input: u32,
7262    pub index_count_output: u32,
7263    pub indices: *mut u32,
7264}
7265impl VisibilityMaskKHR {
7266    pub const TYPE: StructureType = StructureType::VISIBILITY_MASK_KHR;
7267    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7268    #[inline]
7269    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7270        let mut x = MaybeUninit::<Self>::uninit();
7271        unsafe {
7272            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7273                ty: Self::TYPE,
7274                next,
7275            });
7276        }
7277        x
7278    }
7279}
7280#[repr(C)]
7281#[derive(Copy, Clone, Debug)]
7282#[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)"]
7283pub struct GraphicsRequirementsOpenGLKHR {
7284    pub ty: StructureType,
7285    pub next: *mut c_void,
7286    pub min_api_version_supported: Version,
7287    pub max_api_version_supported: Version,
7288}
7289impl GraphicsRequirementsOpenGLKHR {
7290    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_OPENGL_KHR;
7291    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7292    #[inline]
7293    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7294        let mut x = MaybeUninit::<Self>::uninit();
7295        unsafe {
7296            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7297                ty: Self::TYPE,
7298                next,
7299            });
7300        }
7301        x
7302    }
7303}
7304#[repr(C)]
7305#[derive(Copy, Clone, Debug)]
7306#[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)"]
7307pub struct GraphicsRequirementsOpenGLESKHR {
7308    pub ty: StructureType,
7309    pub next: *mut c_void,
7310    pub min_api_version_supported: Version,
7311    pub max_api_version_supported: Version,
7312}
7313impl GraphicsRequirementsOpenGLESKHR {
7314    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR;
7315    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7316    #[inline]
7317    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7318        let mut x = MaybeUninit::<Self>::uninit();
7319        unsafe {
7320            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7321                ty: Self::TYPE,
7322                next,
7323            });
7324        }
7325        x
7326    }
7327}
7328#[repr(C)]
7329#[derive(Copy, Clone, Debug)]
7330#[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)"]
7331pub struct GraphicsRequirementsVulkanKHR {
7332    pub ty: StructureType,
7333    pub next: *mut c_void,
7334    pub min_api_version_supported: Version,
7335    pub max_api_version_supported: Version,
7336}
7337impl GraphicsRequirementsVulkanKHR {
7338    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_VULKAN_KHR;
7339    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7340    #[inline]
7341    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7342        let mut x = MaybeUninit::<Self>::uninit();
7343        unsafe {
7344            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7345                ty: Self::TYPE,
7346                next,
7347            });
7348        }
7349        x
7350    }
7351}
7352pub type GraphicsRequirementsVulkan2KHR = GraphicsRequirementsVulkanKHR;
7353#[repr(C)]
7354#[derive(Copy, Clone)]
7355#[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)"]
7356#[cfg(windows)]
7357pub struct GraphicsRequirementsD3D11KHR {
7358    pub ty: StructureType,
7359    pub next: *mut c_void,
7360    pub adapter_luid: LUID,
7361    pub min_feature_level: D3D_FEATURE_LEVEL,
7362}
7363#[cfg(windows)]
7364impl GraphicsRequirementsD3D11KHR {
7365    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_D3D11_KHR;
7366    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7367    #[inline]
7368    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7369        let mut x = MaybeUninit::<Self>::uninit();
7370        unsafe {
7371            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7372                ty: Self::TYPE,
7373                next,
7374            });
7375        }
7376        x
7377    }
7378}
7379#[repr(C)]
7380#[derive(Copy, Clone)]
7381#[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)"]
7382#[cfg(windows)]
7383pub struct GraphicsRequirementsD3D12KHR {
7384    pub ty: StructureType,
7385    pub next: *mut c_void,
7386    pub adapter_luid: LUID,
7387    pub min_feature_level: D3D_FEATURE_LEVEL,
7388}
7389#[cfg(windows)]
7390impl GraphicsRequirementsD3D12KHR {
7391    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_D3D12_KHR;
7392    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7393    #[inline]
7394    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7395        let mut x = MaybeUninit::<Self>::uninit();
7396        unsafe {
7397            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7398                ty: Self::TYPE,
7399                next,
7400            });
7401        }
7402        x
7403    }
7404}
7405#[repr(C)]
7406#[derive(Copy, Clone, Debug)]
7407#[doc = "See [XrGraphicsRequirementsMetalKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsMetalKHR) - defined by [XR_KHR_metal_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_metal_enable)"]
7408#[cfg(target_vendor = "apple")]
7409pub struct GraphicsRequirementsMetalKHR {
7410    pub ty: StructureType,
7411    pub next: *mut c_void,
7412    pub metal_device: *mut c_void,
7413}
7414#[cfg(target_vendor = "apple")]
7415impl GraphicsRequirementsMetalKHR {
7416    pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_METAL_KHR;
7417    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7418    #[inline]
7419    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7420        let mut x = MaybeUninit::<Self>::uninit();
7421        unsafe {
7422            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7423                ty: Self::TYPE,
7424                next,
7425            });
7426        }
7427        x
7428    }
7429}
7430#[repr(C)]
7431#[derive(Copy, Clone)]
7432#[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)"]
7433pub struct VulkanInstanceCreateInfoKHR {
7434    pub ty: StructureType,
7435    pub next: *const c_void,
7436    pub system_id: SystemId,
7437    pub create_flags: VulkanInstanceCreateFlagsKHR,
7438    pub pfn_get_instance_proc_addr: Option<VkGetInstanceProcAddr>,
7439    pub vulkan_create_info: *const VkInstanceCreateInfo,
7440    pub vulkan_allocator: *const VkAllocationCallbacks,
7441}
7442impl VulkanInstanceCreateInfoKHR {
7443    pub const TYPE: StructureType = StructureType::VULKAN_INSTANCE_CREATE_INFO_KHR;
7444}
7445#[repr(C)]
7446#[derive(Copy, Clone)]
7447#[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)"]
7448pub struct VulkanDeviceCreateInfoKHR {
7449    pub ty: StructureType,
7450    pub next: *const c_void,
7451    pub system_id: SystemId,
7452    pub create_flags: VulkanDeviceCreateFlagsKHR,
7453    pub pfn_get_instance_proc_addr: Option<VkGetInstanceProcAddr>,
7454    pub vulkan_physical_device: VkPhysicalDevice,
7455    pub vulkan_create_info: *const VkDeviceCreateInfo,
7456    pub vulkan_allocator: *const VkAllocationCallbacks,
7457}
7458impl VulkanDeviceCreateInfoKHR {
7459    pub const TYPE: StructureType = StructureType::VULKAN_DEVICE_CREATE_INFO_KHR;
7460}
7461#[repr(C)]
7462#[derive(Copy, Clone, Debug)]
7463#[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)"]
7464pub struct VulkanGraphicsDeviceGetInfoKHR {
7465    pub ty: StructureType,
7466    pub next: *const c_void,
7467    pub system_id: SystemId,
7468    pub vulkan_instance: VkInstance,
7469}
7470impl VulkanGraphicsDeviceGetInfoKHR {
7471    pub const TYPE: StructureType = StructureType::VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR;
7472}
7473#[repr(C)]
7474#[derive(Copy, Clone, Debug)]
7475#[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)"]
7476pub struct VulkanSwapchainCreateInfoMETA {
7477    pub ty: StructureType,
7478    pub next: *const c_void,
7479    pub additional_create_flags: VkImageCreateFlags,
7480    pub additional_usage_flags: VkImageUsageFlags,
7481}
7482impl VulkanSwapchainCreateInfoMETA {
7483    pub const TYPE: StructureType = StructureType::VULKAN_SWAPCHAIN_CREATE_INFO_META;
7484}
7485#[repr(C)]
7486#[derive(Copy, Clone, Debug)]
7487#[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)"]
7488pub struct SessionCreateInfoOverlayEXTX {
7489    pub ty: StructureType,
7490    pub next: *const c_void,
7491    pub create_flags: OverlaySessionCreateFlagsEXTX,
7492    pub session_layers_placement: u32,
7493}
7494impl SessionCreateInfoOverlayEXTX {
7495    pub const TYPE: StructureType = StructureType::SESSION_CREATE_INFO_OVERLAY_EXTX;
7496}
7497#[repr(C)]
7498#[derive(Copy, Clone, Debug)]
7499#[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)"]
7500pub struct EventDataMainSessionVisibilityChangedEXTX {
7501    pub ty: StructureType,
7502    pub next: *const c_void,
7503    pub visible: Bool32,
7504    pub flags: OverlayMainSessionFlagsEXTX,
7505}
7506impl EventDataMainSessionVisibilityChangedEXTX {
7507    pub const TYPE: StructureType = StructureType::EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX;
7508}
7509#[repr(C)]
7510#[derive(Copy, Clone, Debug)]
7511#[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)"]
7512pub struct EventDataDisplayRefreshRateChangedFB {
7513    pub ty: StructureType,
7514    pub next: *const c_void,
7515    pub from_display_refresh_rate: f32,
7516    pub to_display_refresh_rate: f32,
7517}
7518impl EventDataDisplayRefreshRateChangedFB {
7519    pub const TYPE: StructureType = StructureType::EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB;
7520}
7521#[repr(C)]
7522#[derive(Copy, Clone, Debug)]
7523#[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)"]
7524pub struct ViewConfigurationDepthRangeEXT {
7525    pub ty: StructureType,
7526    pub next: *mut c_void,
7527    pub recommended_near_z: f32,
7528    pub min_near_z: f32,
7529    pub recommended_far_z: f32,
7530    pub max_far_z: f32,
7531}
7532impl ViewConfigurationDepthRangeEXT {
7533    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_DEPTH_RANGE_EXT;
7534    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7535    #[inline]
7536    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7537        let mut x = MaybeUninit::<Self>::uninit();
7538        unsafe {
7539            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7540                ty: Self::TYPE,
7541                next,
7542            });
7543        }
7544        x
7545    }
7546}
7547#[repr(C)]
7548#[derive(Copy, Clone, Debug)]
7549#[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)"]
7550pub struct ViewConfigurationViewFovEPIC {
7551    pub ty: StructureType,
7552    pub next: *const c_void,
7553    pub recommended_fov: Fovf,
7554    pub max_mutable_fov: Fovf,
7555}
7556impl ViewConfigurationViewFovEPIC {
7557    pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_VIEW_FOV_EPIC;
7558}
7559#[repr(C)]
7560#[derive(Copy, Clone, Debug)]
7561#[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)"]
7562pub struct InteractionProfileDpadBindingEXT {
7563    pub ty: StructureType,
7564    pub next: *const c_void,
7565    pub binding: Path,
7566    pub action_set: ActionSet,
7567    pub force_threshold: f32,
7568    pub force_threshold_released: f32,
7569    pub center_region: f32,
7570    pub wedge_angle: f32,
7571    pub is_sticky: Bool32,
7572    pub on_haptic: *const HapticBaseHeader,
7573    pub off_haptic: *const HapticBaseHeader,
7574}
7575impl InteractionProfileDpadBindingEXT {
7576    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_DPAD_BINDING_EXT;
7577}
7578#[repr(C)]
7579#[derive(Copy, Clone, Debug)]
7580#[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)"]
7581pub struct InteractionProfileAnalogThresholdVALVE {
7582    pub ty: StructureType,
7583    pub next: *const c_void,
7584    pub action: Action,
7585    pub binding: Path,
7586    pub on_threshold: f32,
7587    pub off_threshold: f32,
7588    pub on_haptic: *const HapticBaseHeader,
7589    pub off_haptic: *const HapticBaseHeader,
7590}
7591impl InteractionProfileAnalogThresholdVALVE {
7592    pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE;
7593}
7594#[repr(C)]
7595#[derive(Copy, Clone, Debug)]
7596#[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)"]
7597pub struct BindingModificationsKHR {
7598    pub ty: StructureType,
7599    pub next: *const c_void,
7600    pub binding_modification_count: u32,
7601    pub binding_modifications: *const *const BindingModificationBaseHeaderKHR,
7602}
7603impl BindingModificationsKHR {
7604    pub const TYPE: StructureType = StructureType::BINDING_MODIFICATIONS_KHR;
7605}
7606#[repr(C)]
7607#[derive(Copy, Clone, Debug)]
7608#[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)"]
7609pub struct BindingModificationBaseHeaderKHR {
7610    pub ty: StructureType,
7611    pub next: *const c_void,
7612}
7613#[repr(C)]
7614#[derive(Copy, Clone, Debug)]
7615#[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)"]
7616pub struct SystemEyeGazeInteractionPropertiesEXT {
7617    pub ty: StructureType,
7618    pub next: *mut c_void,
7619    pub supports_eye_gaze_interaction: Bool32,
7620}
7621impl SystemEyeGazeInteractionPropertiesEXT {
7622    pub const TYPE: StructureType = StructureType::SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT;
7623    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7624    #[inline]
7625    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7626        let mut x = MaybeUninit::<Self>::uninit();
7627        unsafe {
7628            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7629                ty: Self::TYPE,
7630                next,
7631            });
7632        }
7633        x
7634    }
7635}
7636#[repr(C)]
7637#[derive(Copy, Clone, Debug)]
7638#[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)"]
7639pub struct EyeGazeSampleTimeEXT {
7640    pub ty: StructureType,
7641    pub next: *mut c_void,
7642    pub time: Time,
7643}
7644impl EyeGazeSampleTimeEXT {
7645    pub const TYPE: StructureType = StructureType::EYE_GAZE_SAMPLE_TIME_EXT;
7646    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7647    #[inline]
7648    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7649        let mut x = MaybeUninit::<Self>::uninit();
7650        unsafe {
7651            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7652                ty: Self::TYPE,
7653                next,
7654            });
7655        }
7656        x
7657    }
7658}
7659#[repr(C)]
7660#[derive(Copy, Clone, Debug)]
7661#[doc = "See [XrSpatialAnchorCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoMSFT)"]
7662pub struct SpatialAnchorCreateInfoMSFT {
7663    pub ty: StructureType,
7664    pub next: *const c_void,
7665    pub space: Space,
7666    pub pose: Posef,
7667    pub time: Time,
7668}
7669impl SpatialAnchorCreateInfoMSFT {
7670    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_MSFT;
7671}
7672#[repr(C)]
7673#[derive(Copy, Clone, Debug)]
7674#[doc = "See [XrSpatialAnchorSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorSpaceCreateInfoMSFT)"]
7675pub struct SpatialAnchorSpaceCreateInfoMSFT {
7676    pub ty: StructureType,
7677    pub next: *const c_void,
7678    pub anchor: SpatialAnchorMSFT,
7679    pub pose_in_anchor_space: Posef,
7680}
7681impl SpatialAnchorSpaceCreateInfoMSFT {
7682    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT;
7683}
7684#[repr(C)]
7685#[derive(Copy, Clone, Debug)]
7686#[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)"]
7687pub struct CompositionLayerImageLayoutFB {
7688    pub ty: StructureType,
7689    pub next: *mut c_void,
7690    pub flags: CompositionLayerImageLayoutFlagsFB,
7691}
7692impl CompositionLayerImageLayoutFB {
7693    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_IMAGE_LAYOUT_FB;
7694    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7695    #[inline]
7696    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7697        let mut x = MaybeUninit::<Self>::uninit();
7698        unsafe {
7699            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7700                ty: Self::TYPE,
7701                next,
7702            });
7703        }
7704        x
7705    }
7706}
7707#[repr(C)]
7708#[derive(Copy, Clone, Debug)]
7709#[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)"]
7710pub struct CompositionLayerAlphaBlendFB {
7711    pub ty: StructureType,
7712    pub next: *mut c_void,
7713    pub src_factor_color: BlendFactorFB,
7714    pub dst_factor_color: BlendFactorFB,
7715    pub src_factor_alpha: BlendFactorFB,
7716    pub dst_factor_alpha: BlendFactorFB,
7717}
7718impl CompositionLayerAlphaBlendFB {
7719    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_ALPHA_BLEND_FB;
7720    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7721    #[inline]
7722    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7723        let mut x = MaybeUninit::<Self>::uninit();
7724        unsafe {
7725            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7726                ty: Self::TYPE,
7727                next,
7728            });
7729        }
7730        x
7731    }
7732}
7733#[repr(C)]
7734#[derive(Copy, Clone)]
7735#[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)"]
7736pub struct GraphicsBindingEGLMNDX {
7737    pub ty: StructureType,
7738    pub next: *const c_void,
7739    pub get_proc_address: Option<pfn::EglGetProcAddressMNDX>,
7740    pub display: EGLDisplay,
7741    pub config: EGLConfig,
7742    pub context: EGLContext,
7743}
7744impl GraphicsBindingEGLMNDX {
7745    pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_EGL_MNDX;
7746}
7747#[repr(C)]
7748#[derive(Copy, Clone, Debug)]
7749#[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)"]
7750pub struct SpatialGraphNodeSpaceCreateInfoMSFT {
7751    pub ty: StructureType,
7752    pub next: *const c_void,
7753    pub node_type: SpatialGraphNodeTypeMSFT,
7754    pub node_id: [u8; GUID_SIZE_MSFT],
7755    pub pose: Posef,
7756}
7757impl SpatialGraphNodeSpaceCreateInfoMSFT {
7758    pub const TYPE: StructureType = StructureType::SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT;
7759}
7760#[repr(C)]
7761#[derive(Copy, Clone, Debug)]
7762#[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)"]
7763pub struct SpatialGraphStaticNodeBindingCreateInfoMSFT {
7764    pub ty: StructureType,
7765    pub next: *const c_void,
7766    pub space: Space,
7767    pub pose_in_space: Posef,
7768    pub time: Time,
7769}
7770impl SpatialGraphStaticNodeBindingCreateInfoMSFT {
7771    pub const TYPE: StructureType =
7772        StructureType::SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT;
7773}
7774#[repr(C)]
7775#[derive(Copy, Clone, Debug)]
7776#[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)"]
7777pub struct SpatialGraphNodeBindingPropertiesGetInfoMSFT {
7778    pub ty: StructureType,
7779    pub next: *const c_void,
7780}
7781impl SpatialGraphNodeBindingPropertiesGetInfoMSFT {
7782    pub const TYPE: StructureType =
7783        StructureType::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT;
7784}
7785#[repr(C)]
7786#[derive(Copy, Clone, Debug)]
7787#[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)"]
7788pub struct SpatialGraphNodeBindingPropertiesMSFT {
7789    pub ty: StructureType,
7790    pub next: *mut c_void,
7791    pub node_id: [u8; GUID_SIZE_MSFT],
7792    pub pose_in_node_space: Posef,
7793}
7794impl SpatialGraphNodeBindingPropertiesMSFT {
7795    pub const TYPE: StructureType = StructureType::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT;
7796    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7797    #[inline]
7798    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7799        let mut x = MaybeUninit::<Self>::uninit();
7800        unsafe {
7801            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7802                ty: Self::TYPE,
7803                next,
7804            });
7805        }
7806        x
7807    }
7808}
7809#[repr(C)]
7810#[derive(Copy, Clone, Debug)]
7811#[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)"]
7812pub struct SystemHandTrackingPropertiesEXT {
7813    pub ty: StructureType,
7814    pub next: *mut c_void,
7815    pub supports_hand_tracking: Bool32,
7816}
7817impl SystemHandTrackingPropertiesEXT {
7818    pub const TYPE: StructureType = StructureType::SYSTEM_HAND_TRACKING_PROPERTIES_EXT;
7819    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7820    #[inline]
7821    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7822        let mut x = MaybeUninit::<Self>::uninit();
7823        unsafe {
7824            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7825                ty: Self::TYPE,
7826                next,
7827            });
7828        }
7829        x
7830    }
7831}
7832#[repr(C)]
7833#[derive(Copy, Clone, Debug)]
7834#[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)"]
7835pub struct HandTrackerCreateInfoEXT {
7836    pub ty: StructureType,
7837    pub next: *const c_void,
7838    pub hand: HandEXT,
7839    pub hand_joint_set: HandJointSetEXT,
7840}
7841impl HandTrackerCreateInfoEXT {
7842    pub const TYPE: StructureType = StructureType::HAND_TRACKER_CREATE_INFO_EXT;
7843}
7844#[repr(C)]
7845#[derive(Copy, Clone, Debug)]
7846#[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)"]
7847pub struct HandJointsLocateInfoEXT {
7848    pub ty: StructureType,
7849    pub next: *const c_void,
7850    pub base_space: Space,
7851    pub time: Time,
7852}
7853impl HandJointsLocateInfoEXT {
7854    pub const TYPE: StructureType = StructureType::HAND_JOINTS_LOCATE_INFO_EXT;
7855}
7856#[repr(C)]
7857#[derive(Copy, Clone, Debug, Default, PartialEq)]
7858#[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)"]
7859pub struct HandJointLocationEXT {
7860    pub location_flags: SpaceLocationFlags,
7861    pub pose: Posef,
7862    pub radius: f32,
7863}
7864#[repr(C)]
7865#[derive(Copy, Clone, Debug, Default, PartialEq)]
7866#[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)"]
7867pub struct HandJointVelocityEXT {
7868    pub velocity_flags: SpaceVelocityFlags,
7869    pub linear_velocity: Vector3f,
7870    pub angular_velocity: Vector3f,
7871}
7872#[repr(C)]
7873#[derive(Copy, Clone, Debug)]
7874#[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)"]
7875pub struct HandJointLocationsEXT {
7876    pub ty: StructureType,
7877    pub next: *mut c_void,
7878    pub is_active: Bool32,
7879    pub joint_count: u32,
7880    pub joint_locations: *mut HandJointLocationEXT,
7881}
7882impl HandJointLocationsEXT {
7883    pub const TYPE: StructureType = StructureType::HAND_JOINT_LOCATIONS_EXT;
7884    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7885    #[inline]
7886    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7887        let mut x = MaybeUninit::<Self>::uninit();
7888        unsafe {
7889            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7890                ty: Self::TYPE,
7891                next,
7892            });
7893        }
7894        x
7895    }
7896}
7897#[repr(C)]
7898#[derive(Copy, Clone, Debug)]
7899#[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)"]
7900pub struct HandJointVelocitiesEXT {
7901    pub ty: StructureType,
7902    pub next: *mut c_void,
7903    pub joint_count: u32,
7904    pub joint_velocities: *mut HandJointVelocityEXT,
7905}
7906impl HandJointVelocitiesEXT {
7907    pub const TYPE: StructureType = StructureType::HAND_JOINT_VELOCITIES_EXT;
7908    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7909    #[inline]
7910    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7911        let mut x = MaybeUninit::<Self>::uninit();
7912        unsafe {
7913            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7914                ty: Self::TYPE,
7915                next,
7916            });
7917        }
7918        x
7919    }
7920}
7921#[repr(C)]
7922#[derive(Copy, Clone, Debug)]
7923#[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)"]
7924pub struct SystemFaceTrackingPropertiesFB {
7925    pub ty: StructureType,
7926    pub next: *mut c_void,
7927    pub supports_face_tracking: Bool32,
7928}
7929impl SystemFaceTrackingPropertiesFB {
7930    pub const TYPE: StructureType = StructureType::SYSTEM_FACE_TRACKING_PROPERTIES_FB;
7931    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7932    #[inline]
7933    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7934        let mut x = MaybeUninit::<Self>::uninit();
7935        unsafe {
7936            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7937                ty: Self::TYPE,
7938                next,
7939            });
7940        }
7941        x
7942    }
7943}
7944#[repr(C)]
7945#[derive(Copy, Clone, Debug)]
7946#[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)"]
7947pub struct FaceTrackerCreateInfoFB {
7948    pub ty: StructureType,
7949    pub next: *const c_void,
7950    pub face_expression_set: FaceExpressionSetFB,
7951}
7952impl FaceTrackerCreateInfoFB {
7953    pub const TYPE: StructureType = StructureType::FACE_TRACKER_CREATE_INFO_FB;
7954}
7955#[repr(C)]
7956#[derive(Copy, Clone, Debug)]
7957#[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)"]
7958pub struct FaceExpressionInfoFB {
7959    pub ty: StructureType,
7960    pub next: *const c_void,
7961    pub time: Time,
7962}
7963impl FaceExpressionInfoFB {
7964    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_INFO_FB;
7965}
7966#[repr(C)]
7967#[derive(Copy, Clone, Debug, Default, PartialEq)]
7968#[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)"]
7969pub struct FaceExpressionStatusFB {
7970    pub is_valid: Bool32,
7971    pub is_eye_following_blendshapes_valid: Bool32,
7972}
7973#[repr(C)]
7974#[derive(Copy, Clone, Debug)]
7975#[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)"]
7976pub struct FaceExpressionWeightsFB {
7977    pub ty: StructureType,
7978    pub next: *mut c_void,
7979    pub weight_count: u32,
7980    pub weights: *mut f32,
7981    pub confidence_count: u32,
7982    pub confidences: *mut f32,
7983    pub status: FaceExpressionStatusFB,
7984    pub time: Time,
7985}
7986impl FaceExpressionWeightsFB {
7987    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_WEIGHTS_FB;
7988    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7989    #[inline]
7990    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7991        let mut x = MaybeUninit::<Self>::uninit();
7992        unsafe {
7993            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7994                ty: Self::TYPE,
7995                next,
7996            });
7997        }
7998        x
7999    }
8000}
8001#[repr(C)]
8002#[derive(Copy, Clone, Debug)]
8003#[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)"]
8004pub struct SystemFaceTrackingProperties2FB {
8005    pub ty: StructureType,
8006    pub next: *mut c_void,
8007    pub supports_visual_face_tracking: Bool32,
8008    pub supports_audio_face_tracking: Bool32,
8009}
8010impl SystemFaceTrackingProperties2FB {
8011    pub const TYPE: StructureType = StructureType::SYSTEM_FACE_TRACKING_PROPERTIES2_FB;
8012    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8013    #[inline]
8014    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8015        let mut x = MaybeUninit::<Self>::uninit();
8016        unsafe {
8017            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8018                ty: Self::TYPE,
8019                next,
8020            });
8021        }
8022        x
8023    }
8024}
8025#[repr(C)]
8026#[derive(Copy, Clone, Debug)]
8027#[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)"]
8028pub struct FaceTrackerCreateInfo2FB {
8029    pub ty: StructureType,
8030    pub next: *const c_void,
8031    pub face_expression_set: FaceExpressionSet2FB,
8032    pub requested_data_source_count: u32,
8033    pub requested_data_sources: *mut FaceTrackingDataSource2FB,
8034}
8035impl FaceTrackerCreateInfo2FB {
8036    pub const TYPE: StructureType = StructureType::FACE_TRACKER_CREATE_INFO2_FB;
8037}
8038#[repr(C)]
8039#[derive(Copy, Clone, Debug)]
8040#[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)"]
8041pub struct FaceExpressionInfo2FB {
8042    pub ty: StructureType,
8043    pub next: *const c_void,
8044    pub time: Time,
8045}
8046impl FaceExpressionInfo2FB {
8047    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_INFO2_FB;
8048}
8049#[repr(C)]
8050#[derive(Copy, Clone, Debug)]
8051#[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)"]
8052pub struct FaceExpressionWeights2FB {
8053    pub ty: StructureType,
8054    pub next: *mut c_void,
8055    pub weight_count: u32,
8056    pub weights: *mut f32,
8057    pub confidence_count: u32,
8058    pub confidences: *mut f32,
8059    pub is_valid: Bool32,
8060    pub is_eye_following_blendshapes_valid: Bool32,
8061    pub data_source: FaceTrackingDataSource2FB,
8062    pub time: Time,
8063}
8064impl FaceExpressionWeights2FB {
8065    pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_WEIGHTS2_FB;
8066    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8067    #[inline]
8068    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8069        let mut x = MaybeUninit::<Self>::uninit();
8070        unsafe {
8071            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8072                ty: Self::TYPE,
8073                next,
8074            });
8075        }
8076        x
8077    }
8078}
8079#[repr(C)]
8080#[derive(Copy, Clone, Debug)]
8081#[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)"]
8082pub struct SystemBodyTrackingPropertiesFB {
8083    pub ty: StructureType,
8084    pub next: *mut c_void,
8085    pub supports_body_tracking: Bool32,
8086}
8087impl SystemBodyTrackingPropertiesFB {
8088    pub const TYPE: StructureType = StructureType::SYSTEM_BODY_TRACKING_PROPERTIES_FB;
8089    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8090    #[inline]
8091    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8092        let mut x = MaybeUninit::<Self>::uninit();
8093        unsafe {
8094            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8095                ty: Self::TYPE,
8096                next,
8097            });
8098        }
8099        x
8100    }
8101}
8102#[repr(C)]
8103#[derive(Copy, Clone, Debug)]
8104#[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)"]
8105pub struct BodyTrackerCreateInfoFB {
8106    pub ty: StructureType,
8107    pub next: *const c_void,
8108    pub body_joint_set: BodyJointSetFB,
8109}
8110impl BodyTrackerCreateInfoFB {
8111    pub const TYPE: StructureType = StructureType::BODY_TRACKER_CREATE_INFO_FB;
8112}
8113#[repr(C)]
8114#[derive(Copy, Clone, Debug, Default, PartialEq)]
8115#[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)"]
8116pub struct BodySkeletonJointFB {
8117    pub joint: i32,
8118    pub parent_joint: i32,
8119    pub pose: Posef,
8120}
8121#[repr(C)]
8122#[derive(Copy, Clone, Debug)]
8123#[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)"]
8124pub struct BodySkeletonFB {
8125    pub ty: StructureType,
8126    pub next: *mut c_void,
8127    pub joint_count: u32,
8128    pub joints: *mut BodySkeletonJointFB,
8129}
8130impl BodySkeletonFB {
8131    pub const TYPE: StructureType = StructureType::BODY_SKELETON_FB;
8132    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8133    #[inline]
8134    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8135        let mut x = MaybeUninit::<Self>::uninit();
8136        unsafe {
8137            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8138                ty: Self::TYPE,
8139                next,
8140            });
8141        }
8142        x
8143    }
8144}
8145#[repr(C)]
8146#[derive(Copy, Clone, Debug)]
8147#[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)"]
8148pub struct BodyJointsLocateInfoFB {
8149    pub ty: StructureType,
8150    pub next: *const c_void,
8151    pub base_space: Space,
8152    pub time: Time,
8153}
8154impl BodyJointsLocateInfoFB {
8155    pub const TYPE: StructureType = StructureType::BODY_JOINTS_LOCATE_INFO_FB;
8156}
8157#[repr(C)]
8158#[derive(Copy, Clone, Debug, Default, PartialEq)]
8159#[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)"]
8160pub struct BodyJointLocationFB {
8161    pub location_flags: SpaceLocationFlags,
8162    pub pose: Posef,
8163}
8164#[repr(C)]
8165#[derive(Copy, Clone, Debug)]
8166#[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)"]
8167pub struct BodyJointLocationsFB {
8168    pub ty: StructureType,
8169    pub next: *mut c_void,
8170    pub is_active: Bool32,
8171    pub confidence: f32,
8172    pub joint_count: u32,
8173    pub joint_locations: *mut BodyJointLocationFB,
8174    pub skeleton_changed_count: u32,
8175    pub time: Time,
8176}
8177impl BodyJointLocationsFB {
8178    pub const TYPE: StructureType = StructureType::BODY_JOINT_LOCATIONS_FB;
8179    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8180    #[inline]
8181    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8182        let mut x = MaybeUninit::<Self>::uninit();
8183        unsafe {
8184            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8185                ty: Self::TYPE,
8186                next,
8187            });
8188        }
8189        x
8190    }
8191}
8192#[repr(C)]
8193#[derive(Copy, Clone, Debug)]
8194#[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)"]
8195pub struct SystemEyeTrackingPropertiesFB {
8196    pub ty: StructureType,
8197    pub next: *mut c_void,
8198    pub supports_eye_tracking: Bool32,
8199}
8200impl SystemEyeTrackingPropertiesFB {
8201    pub const TYPE: StructureType = StructureType::SYSTEM_EYE_TRACKING_PROPERTIES_FB;
8202    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8203    #[inline]
8204    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8205        let mut x = MaybeUninit::<Self>::uninit();
8206        unsafe {
8207            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8208                ty: Self::TYPE,
8209                next,
8210            });
8211        }
8212        x
8213    }
8214}
8215#[repr(C)]
8216#[derive(Copy, Clone, Debug)]
8217#[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)"]
8218pub struct EyeTrackerCreateInfoFB {
8219    pub ty: StructureType,
8220    pub next: *const c_void,
8221}
8222impl EyeTrackerCreateInfoFB {
8223    pub const TYPE: StructureType = StructureType::EYE_TRACKER_CREATE_INFO_FB;
8224}
8225#[repr(C)]
8226#[derive(Copy, Clone, Debug)]
8227#[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)"]
8228pub struct EyeGazesInfoFB {
8229    pub ty: StructureType,
8230    pub next: *const c_void,
8231    pub base_space: Space,
8232    pub time: Time,
8233}
8234impl EyeGazesInfoFB {
8235    pub const TYPE: StructureType = StructureType::EYE_GAZES_INFO_FB;
8236}
8237#[repr(C)]
8238#[derive(Copy, Clone, Debug, Default, PartialEq)]
8239#[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)"]
8240pub struct EyeGazeFB {
8241    pub is_valid: Bool32,
8242    pub gaze_pose: Posef,
8243    pub gaze_confidence: f32,
8244}
8245#[repr(C)]
8246#[derive(Copy, Clone, Debug)]
8247#[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)"]
8248pub struct EyeGazesFB {
8249    pub ty: StructureType,
8250    pub next: *mut c_void,
8251    pub gaze: [EyeGazeFB; EYE_POSITION_COUNT_FB],
8252    pub time: Time,
8253}
8254impl EyeGazesFB {
8255    pub const TYPE: StructureType = StructureType::EYE_GAZES_FB;
8256    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8257    #[inline]
8258    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8259        let mut x = MaybeUninit::<Self>::uninit();
8260        unsafe {
8261            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8262                ty: Self::TYPE,
8263                next,
8264            });
8265        }
8266        x
8267    }
8268}
8269#[repr(C)]
8270#[derive(Copy, Clone, Debug)]
8271#[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)"]
8272pub struct HandJointsMotionRangeInfoEXT {
8273    pub ty: StructureType,
8274    pub next: *const c_void,
8275    pub hand_joints_motion_range: HandJointsMotionRangeEXT,
8276}
8277impl HandJointsMotionRangeInfoEXT {
8278    pub const TYPE: StructureType = StructureType::HAND_JOINTS_MOTION_RANGE_INFO_EXT;
8279}
8280#[repr(C)]
8281#[derive(Copy, Clone, Debug)]
8282#[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)"]
8283pub struct HandTrackingDataSourceInfoEXT {
8284    pub ty: StructureType,
8285    pub next: *const c_void,
8286    pub requested_data_source_count: u32,
8287    pub requested_data_sources: *mut HandTrackingDataSourceEXT,
8288}
8289impl HandTrackingDataSourceInfoEXT {
8290    pub const TYPE: StructureType = StructureType::HAND_TRACKING_DATA_SOURCE_INFO_EXT;
8291}
8292#[repr(C)]
8293#[derive(Copy, Clone, Debug)]
8294#[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)"]
8295pub struct HandTrackingDataSourceStateEXT {
8296    pub ty: StructureType,
8297    pub next: *mut c_void,
8298    pub is_active: Bool32,
8299    pub data_source: HandTrackingDataSourceEXT,
8300}
8301impl HandTrackingDataSourceStateEXT {
8302    pub const TYPE: StructureType = StructureType::HAND_TRACKING_DATA_SOURCE_STATE_EXT;
8303    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8304    #[inline]
8305    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8306        let mut x = MaybeUninit::<Self>::uninit();
8307        unsafe {
8308            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8309                ty: Self::TYPE,
8310                next,
8311            });
8312        }
8313        x
8314    }
8315}
8316#[repr(C)]
8317#[derive(Copy, Clone, Debug)]
8318#[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)"]
8319pub struct HandMeshSpaceCreateInfoMSFT {
8320    pub ty: StructureType,
8321    pub next: *const c_void,
8322    pub hand_pose_type: HandPoseTypeMSFT,
8323    pub pose_in_hand_mesh_space: Posef,
8324}
8325impl HandMeshSpaceCreateInfoMSFT {
8326    pub const TYPE: StructureType = StructureType::HAND_MESH_SPACE_CREATE_INFO_MSFT;
8327}
8328#[repr(C)]
8329#[derive(Copy, Clone, Debug)]
8330#[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)"]
8331pub struct HandMeshUpdateInfoMSFT {
8332    pub ty: StructureType,
8333    pub next: *const c_void,
8334    pub time: Time,
8335    pub hand_pose_type: HandPoseTypeMSFT,
8336}
8337impl HandMeshUpdateInfoMSFT {
8338    pub const TYPE: StructureType = StructureType::HAND_MESH_UPDATE_INFO_MSFT;
8339}
8340#[repr(C)]
8341#[derive(Copy, Clone, Debug)]
8342#[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)"]
8343pub struct HandMeshMSFT {
8344    pub ty: StructureType,
8345    pub next: *mut c_void,
8346    pub is_active: Bool32,
8347    pub index_buffer_changed: Bool32,
8348    pub vertex_buffer_changed: Bool32,
8349    pub index_buffer: HandMeshIndexBufferMSFT,
8350    pub vertex_buffer: HandMeshVertexBufferMSFT,
8351}
8352impl HandMeshMSFT {
8353    pub const TYPE: StructureType = StructureType::HAND_MESH_MSFT;
8354    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8355    #[inline]
8356    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8357        let mut x = MaybeUninit::<Self>::uninit();
8358        unsafe {
8359            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8360                ty: Self::TYPE,
8361                next,
8362            });
8363        }
8364        x
8365    }
8366}
8367#[repr(C)]
8368#[derive(Copy, Clone, Debug)]
8369#[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)"]
8370pub struct HandMeshIndexBufferMSFT {
8371    pub index_buffer_key: u32,
8372    pub index_capacity_input: u32,
8373    pub index_count_output: u32,
8374    pub indices: *mut u32,
8375}
8376#[repr(C)]
8377#[derive(Copy, Clone, Debug)]
8378#[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)"]
8379pub struct HandMeshVertexBufferMSFT {
8380    pub vertex_update_time: Time,
8381    pub vertex_capacity_input: u32,
8382    pub vertex_count_output: u32,
8383    pub vertices: *mut HandMeshVertexMSFT,
8384}
8385#[repr(C)]
8386#[derive(Copy, Clone, Debug, Default, PartialEq)]
8387#[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)"]
8388pub struct HandMeshVertexMSFT {
8389    pub position: Vector3f,
8390    pub normal: Vector3f,
8391}
8392#[repr(C)]
8393#[derive(Copy, Clone, Debug)]
8394#[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)"]
8395pub struct SystemHandTrackingMeshPropertiesMSFT {
8396    pub ty: StructureType,
8397    pub next: *mut c_void,
8398    pub supports_hand_tracking_mesh: Bool32,
8399    pub max_hand_mesh_index_count: u32,
8400    pub max_hand_mesh_vertex_count: u32,
8401}
8402impl SystemHandTrackingMeshPropertiesMSFT {
8403    pub const TYPE: StructureType = StructureType::SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT;
8404    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8405    #[inline]
8406    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8407        let mut x = MaybeUninit::<Self>::uninit();
8408        unsafe {
8409            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8410                ty: Self::TYPE,
8411                next,
8412            });
8413        }
8414        x
8415    }
8416}
8417#[repr(C)]
8418#[derive(Copy, Clone, Debug)]
8419#[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)"]
8420pub struct HandPoseTypeInfoMSFT {
8421    pub ty: StructureType,
8422    pub next: *const c_void,
8423    pub hand_pose_type: HandPoseTypeMSFT,
8424}
8425impl HandPoseTypeInfoMSFT {
8426    pub const TYPE: StructureType = StructureType::HAND_POSE_TYPE_INFO_MSFT;
8427}
8428#[repr(C)]
8429#[derive(Copy, Clone, Debug)]
8430#[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)"]
8431pub struct SecondaryViewConfigurationSessionBeginInfoMSFT {
8432    pub ty: StructureType,
8433    pub next: *const c_void,
8434    pub view_configuration_count: u32,
8435    pub enabled_view_configuration_types: *const ViewConfigurationType,
8436}
8437impl SecondaryViewConfigurationSessionBeginInfoMSFT {
8438    pub const TYPE: StructureType =
8439        StructureType::SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT;
8440}
8441#[repr(C)]
8442#[derive(Copy, Clone, Debug)]
8443#[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)"]
8444pub struct SecondaryViewConfigurationStateMSFT {
8445    pub ty: StructureType,
8446    pub next: *mut c_void,
8447    pub view_configuration_type: ViewConfigurationType,
8448    pub active: Bool32,
8449}
8450impl SecondaryViewConfigurationStateMSFT {
8451    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_STATE_MSFT;
8452    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8453    #[inline]
8454    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8455        let mut x = MaybeUninit::<Self>::uninit();
8456        unsafe {
8457            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8458                ty: Self::TYPE,
8459                next,
8460            });
8461        }
8462        x
8463    }
8464}
8465#[repr(C)]
8466#[derive(Copy, Clone, Debug)]
8467#[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)"]
8468pub struct SecondaryViewConfigurationFrameStateMSFT {
8469    pub ty: StructureType,
8470    pub next: *mut c_void,
8471    pub view_configuration_count: u32,
8472    pub view_configuration_states: *mut SecondaryViewConfigurationStateMSFT,
8473}
8474impl SecondaryViewConfigurationFrameStateMSFT {
8475    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT;
8476    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8477    #[inline]
8478    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8479        let mut x = MaybeUninit::<Self>::uninit();
8480        unsafe {
8481            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8482                ty: Self::TYPE,
8483                next,
8484            });
8485        }
8486        x
8487    }
8488}
8489#[repr(C)]
8490#[derive(Copy, Clone, Debug)]
8491#[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)"]
8492pub struct SecondaryViewConfigurationFrameEndInfoMSFT {
8493    pub ty: StructureType,
8494    pub next: *const c_void,
8495    pub view_configuration_count: u32,
8496    pub view_configuration_layers_info: *const SecondaryViewConfigurationLayerInfoMSFT,
8497}
8498impl SecondaryViewConfigurationFrameEndInfoMSFT {
8499    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT;
8500}
8501#[repr(C)]
8502#[derive(Copy, Clone, Debug)]
8503#[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)"]
8504pub struct SecondaryViewConfigurationLayerInfoMSFT {
8505    pub ty: StructureType,
8506    pub next: *const c_void,
8507    pub view_configuration_type: ViewConfigurationType,
8508    pub environment_blend_mode: EnvironmentBlendMode,
8509    pub layer_count: u32,
8510    pub layers: *const *const CompositionLayerBaseHeader,
8511}
8512impl SecondaryViewConfigurationLayerInfoMSFT {
8513    pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT;
8514}
8515#[repr(C)]
8516#[derive(Copy, Clone, Debug)]
8517#[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)"]
8518pub struct SecondaryViewConfigurationSwapchainCreateInfoMSFT {
8519    pub ty: StructureType,
8520    pub next: *const c_void,
8521    pub view_configuration_type: ViewConfigurationType,
8522}
8523impl SecondaryViewConfigurationSwapchainCreateInfoMSFT {
8524    pub const TYPE: StructureType =
8525        StructureType::SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT;
8526}
8527#[repr(C)]
8528#[derive(Copy, Clone, Debug)]
8529#[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)"]
8530#[cfg(windows)]
8531pub struct HolographicWindowAttachmentMSFT {
8532    pub ty: StructureType,
8533    pub next: *const c_void,
8534    pub holographic_space: *mut IUnknown,
8535    pub core_window: *mut IUnknown,
8536}
8537#[cfg(windows)]
8538impl HolographicWindowAttachmentMSFT {
8539    pub const TYPE: StructureType = StructureType::HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT;
8540}
8541#[repr(C)]
8542#[derive(Copy, Clone, Debug)]
8543#[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)"]
8544#[cfg(target_os = "android")]
8545pub struct AndroidSurfaceSwapchainCreateInfoFB {
8546    pub ty: StructureType,
8547    pub next: *const c_void,
8548    pub create_flags: AndroidSurfaceSwapchainFlagsFB,
8549}
8550#[cfg(target_os = "android")]
8551impl AndroidSurfaceSwapchainCreateInfoFB {
8552    pub const TYPE: StructureType = StructureType::ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB;
8553}
8554#[repr(C)]
8555#[derive(Copy, Clone, Debug)]
8556#[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)"]
8557pub struct SwapchainStateBaseHeaderFB {
8558    pub ty: StructureType,
8559    pub next: *mut c_void,
8560}
8561#[repr(C)]
8562#[derive(Copy, Clone, Debug)]
8563#[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)"]
8564#[cfg(target_os = "android")]
8565pub struct SwapchainStateAndroidSurfaceDimensionsFB {
8566    pub ty: StructureType,
8567    pub next: *mut c_void,
8568    pub width: u32,
8569    pub height: u32,
8570}
8571#[cfg(target_os = "android")]
8572impl SwapchainStateAndroidSurfaceDimensionsFB {
8573    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB;
8574    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8575    #[inline]
8576    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8577        let mut x = MaybeUninit::<Self>::uninit();
8578        unsafe {
8579            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8580                ty: Self::TYPE,
8581                next,
8582            });
8583        }
8584        x
8585    }
8586}
8587#[repr(C)]
8588#[derive(Copy, Clone, Debug)]
8589#[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)"]
8590pub struct SwapchainStateSamplerOpenGLESFB {
8591    pub ty: StructureType,
8592    pub next: *mut c_void,
8593    pub min_filter: EGLenum,
8594    pub mag_filter: EGLenum,
8595    pub wrap_mode_s: EGLenum,
8596    pub wrap_mode_t: EGLenum,
8597    pub swizzle_red: EGLenum,
8598    pub swizzle_green: EGLenum,
8599    pub swizzle_blue: EGLenum,
8600    pub swizzle_alpha: EGLenum,
8601    pub max_anisotropy: f32,
8602    pub border_color: Color4f,
8603}
8604impl SwapchainStateSamplerOpenGLESFB {
8605    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB;
8606    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8607    #[inline]
8608    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8609        let mut x = MaybeUninit::<Self>::uninit();
8610        unsafe {
8611            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8612                ty: Self::TYPE,
8613                next,
8614            });
8615        }
8616        x
8617    }
8618}
8619#[repr(C)]
8620#[derive(Copy, Clone, Debug)]
8621#[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)"]
8622pub struct SwapchainStateSamplerVulkanFB {
8623    pub ty: StructureType,
8624    pub next: *mut c_void,
8625    pub min_filter: VkFilter,
8626    pub mag_filter: VkFilter,
8627    pub mipmap_mode: VkSamplerMipmapMode,
8628    pub wrap_mode_s: VkSamplerAddressMode,
8629    pub wrap_mode_t: VkSamplerAddressMode,
8630    pub swizzle_red: VkComponentSwizzle,
8631    pub swizzle_green: VkComponentSwizzle,
8632    pub swizzle_blue: VkComponentSwizzle,
8633    pub swizzle_alpha: VkComponentSwizzle,
8634    pub max_anisotropy: f32,
8635    pub border_color: Color4f,
8636}
8637impl SwapchainStateSamplerVulkanFB {
8638    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_SAMPLER_VULKAN_FB;
8639    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8640    #[inline]
8641    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8642        let mut x = MaybeUninit::<Self>::uninit();
8643        unsafe {
8644            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8645                ty: Self::TYPE,
8646                next,
8647            });
8648        }
8649        x
8650    }
8651}
8652#[repr(C)]
8653#[derive(Copy, Clone, Debug)]
8654#[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)"]
8655pub struct CompositionLayerSecureContentFB {
8656    pub ty: StructureType,
8657    pub next: *const c_void,
8658    pub flags: CompositionLayerSecureContentFlagsFB,
8659}
8660impl CompositionLayerSecureContentFB {
8661    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SECURE_CONTENT_FB;
8662}
8663#[repr(C)]
8664#[derive(Copy, Clone, Debug)]
8665#[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)"]
8666pub struct LoaderInitInfoBaseHeaderKHR {
8667    pub ty: StructureType,
8668    pub next: *const c_void,
8669}
8670#[repr(C)]
8671#[derive(Copy, Clone, Debug)]
8672#[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)"]
8673#[cfg(target_os = "android")]
8674pub struct LoaderInitInfoAndroidKHR {
8675    pub ty: StructureType,
8676    pub next: *const c_void,
8677    pub application_vm: *mut c_void,
8678    pub application_context: *mut c_void,
8679}
8680#[cfg(target_os = "android")]
8681impl LoaderInitInfoAndroidKHR {
8682    pub const TYPE: StructureType = StructureType::LOADER_INIT_INFO_ANDROID_KHR;
8683}
8684#[repr(C)]
8685#[derive(Copy, Clone, Debug)]
8686#[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)"]
8687pub struct CompositionLayerEquirect2KHR {
8688    pub ty: StructureType,
8689    pub next: *const c_void,
8690    pub layer_flags: CompositionLayerFlags,
8691    pub space: Space,
8692    pub eye_visibility: EyeVisibility,
8693    pub sub_image: SwapchainSubImage,
8694    pub pose: Posef,
8695    pub radius: f32,
8696    pub central_horizontal_angle: f32,
8697    pub upper_vertical_angle: f32,
8698    pub lower_vertical_angle: f32,
8699}
8700impl CompositionLayerEquirect2KHR {
8701    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_EQUIRECT2_KHR;
8702}
8703#[repr(C)]
8704#[derive(Copy, Clone, Debug)]
8705#[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)"]
8706pub struct CompositionLayerColorScaleBiasKHR {
8707    pub ty: StructureType,
8708    pub next: *const c_void,
8709    pub color_scale: Color4f,
8710    pub color_bias: Color4f,
8711}
8712impl CompositionLayerColorScaleBiasKHR {
8713    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR;
8714}
8715#[repr(C)]
8716#[derive(Copy, Clone, Debug)]
8717#[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)"]
8718pub struct ControllerModelKeyStateMSFT {
8719    pub ty: StructureType,
8720    pub next: *mut c_void,
8721    pub model_key: ControllerModelKeyMSFT,
8722}
8723impl ControllerModelKeyStateMSFT {
8724    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_KEY_STATE_MSFT;
8725    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8726    #[inline]
8727    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8728        let mut x = MaybeUninit::<Self>::uninit();
8729        unsafe {
8730            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8731                ty: Self::TYPE,
8732                next,
8733            });
8734        }
8735        x
8736    }
8737}
8738#[repr(C)]
8739#[derive(Copy, Clone, Debug)]
8740#[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)"]
8741pub struct ControllerModelNodePropertiesMSFT {
8742    pub ty: StructureType,
8743    pub next: *mut c_void,
8744    pub parent_node_name: [c_char; MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT],
8745    pub node_name: [c_char; MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT],
8746}
8747impl ControllerModelNodePropertiesMSFT {
8748    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_NODE_PROPERTIES_MSFT;
8749    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8750    #[inline]
8751    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8752        let mut x = MaybeUninit::<Self>::uninit();
8753        unsafe {
8754            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8755                ty: Self::TYPE,
8756                next,
8757            });
8758        }
8759        x
8760    }
8761}
8762#[repr(C)]
8763#[derive(Copy, Clone, Debug)]
8764#[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)"]
8765pub struct ControllerModelPropertiesMSFT {
8766    pub ty: StructureType,
8767    pub next: *mut c_void,
8768    pub node_capacity_input: u32,
8769    pub node_count_output: u32,
8770    pub node_properties: *mut ControllerModelNodePropertiesMSFT,
8771}
8772impl ControllerModelPropertiesMSFT {
8773    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_PROPERTIES_MSFT;
8774    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8775    #[inline]
8776    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8777        let mut x = MaybeUninit::<Self>::uninit();
8778        unsafe {
8779            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8780                ty: Self::TYPE,
8781                next,
8782            });
8783        }
8784        x
8785    }
8786}
8787#[repr(C)]
8788#[derive(Copy, Clone, Debug)]
8789#[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)"]
8790pub struct ControllerModelNodeStateMSFT {
8791    pub ty: StructureType,
8792    pub next: *mut c_void,
8793    pub node_pose: Posef,
8794}
8795impl ControllerModelNodeStateMSFT {
8796    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_NODE_STATE_MSFT;
8797    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8798    #[inline]
8799    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8800        let mut x = MaybeUninit::<Self>::uninit();
8801        unsafe {
8802            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8803                ty: Self::TYPE,
8804                next,
8805            });
8806        }
8807        x
8808    }
8809}
8810#[repr(C)]
8811#[derive(Copy, Clone, Debug)]
8812#[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)"]
8813pub struct ControllerModelStateMSFT {
8814    pub ty: StructureType,
8815    pub next: *mut c_void,
8816    pub node_capacity_input: u32,
8817    pub node_count_output: u32,
8818    pub node_states: *mut ControllerModelNodeStateMSFT,
8819}
8820impl ControllerModelStateMSFT {
8821    pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_STATE_MSFT;
8822    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8823    #[inline]
8824    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8825        let mut x = MaybeUninit::<Self>::uninit();
8826        unsafe {
8827            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8828                ty: Self::TYPE,
8829                next,
8830            });
8831        }
8832        x
8833    }
8834}
8835#[repr(C)]
8836#[derive(Copy, Clone, Debug)]
8837#[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)"]
8838pub struct SystemColorSpacePropertiesFB {
8839    pub ty: StructureType,
8840    pub next: *mut c_void,
8841    pub color_space: ColorSpaceFB,
8842}
8843impl SystemColorSpacePropertiesFB {
8844    pub const TYPE: StructureType = StructureType::SYSTEM_COLOR_SPACE_PROPERTIES_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 [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)"]
8861pub struct SystemSpatialEntityPropertiesFB {
8862    pub ty: StructureType,
8863    pub next: *const c_void,
8864    pub supports_spatial_entity: Bool32,
8865}
8866impl SystemSpatialEntityPropertiesFB {
8867    pub const TYPE: StructureType = StructureType::SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB;
8868}
8869#[repr(C)]
8870#[derive(Copy, Clone, Debug)]
8871#[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)"]
8872pub struct SpatialAnchorCreateInfoFB {
8873    pub ty: StructureType,
8874    pub next: *const c_void,
8875    pub space: Space,
8876    pub pose_in_space: Posef,
8877    pub time: Time,
8878}
8879impl SpatialAnchorCreateInfoFB {
8880    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_FB;
8881}
8882#[repr(C)]
8883#[derive(Copy, Clone, Debug)]
8884#[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)"]
8885pub struct SpaceComponentStatusSetInfoFB {
8886    pub ty: StructureType,
8887    pub next: *const c_void,
8888    pub component_type: SpaceComponentTypeFB,
8889    pub enabled: Bool32,
8890    pub timeout: Duration,
8891}
8892impl SpaceComponentStatusSetInfoFB {
8893    pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_STATUS_SET_INFO_FB;
8894}
8895#[repr(C)]
8896#[derive(Copy, Clone, Debug)]
8897#[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)"]
8898pub struct SpaceComponentStatusFB {
8899    pub ty: StructureType,
8900    pub next: *mut c_void,
8901    pub enabled: Bool32,
8902    pub change_pending: Bool32,
8903}
8904impl SpaceComponentStatusFB {
8905    pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_STATUS_FB;
8906    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8907    #[inline]
8908    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8909        let mut x = MaybeUninit::<Self>::uninit();
8910        unsafe {
8911            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8912                ty: Self::TYPE,
8913                next,
8914            });
8915        }
8916        x
8917    }
8918}
8919#[repr(C)]
8920#[derive(Copy, Clone, Debug)]
8921#[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)"]
8922pub struct EventDataSpatialAnchorCreateCompleteFB {
8923    pub ty: StructureType,
8924    pub next: *const c_void,
8925    pub request_id: AsyncRequestIdFB,
8926    pub result: Result,
8927    pub space: Space,
8928    pub uuid: UuidEXT,
8929}
8930impl EventDataSpatialAnchorCreateCompleteFB {
8931    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB;
8932}
8933#[repr(C)]
8934#[derive(Copy, Clone, Debug)]
8935#[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)"]
8936pub struct EventDataSpaceSetStatusCompleteFB {
8937    pub ty: StructureType,
8938    pub next: *const c_void,
8939    pub request_id: AsyncRequestIdFB,
8940    pub result: Result,
8941    pub space: Space,
8942    pub uuid: UuidEXT,
8943    pub component_type: SpaceComponentTypeFB,
8944    pub enabled: Bool32,
8945}
8946impl EventDataSpaceSetStatusCompleteFB {
8947    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB;
8948}
8949#[repr(C)]
8950#[derive(Copy, Clone, Debug)]
8951#[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)"]
8952pub struct FoveationProfileCreateInfoFB {
8953    pub ty: StructureType,
8954    pub next: *mut c_void,
8955}
8956impl FoveationProfileCreateInfoFB {
8957    pub const TYPE: StructureType = StructureType::FOVEATION_PROFILE_CREATE_INFO_FB;
8958    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8959    #[inline]
8960    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8961        let mut x = MaybeUninit::<Self>::uninit();
8962        unsafe {
8963            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8964                ty: Self::TYPE,
8965                next,
8966            });
8967        }
8968        x
8969    }
8970}
8971#[repr(C)]
8972#[derive(Copy, Clone, Debug)]
8973#[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)"]
8974pub struct SwapchainCreateInfoFoveationFB {
8975    pub ty: StructureType,
8976    pub next: *mut c_void,
8977    pub flags: SwapchainCreateFoveationFlagsFB,
8978}
8979impl SwapchainCreateInfoFoveationFB {
8980    pub const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_FOVEATION_FB;
8981    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8982    #[inline]
8983    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8984        let mut x = MaybeUninit::<Self>::uninit();
8985        unsafe {
8986            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8987                ty: Self::TYPE,
8988                next,
8989            });
8990        }
8991        x
8992    }
8993}
8994#[repr(C)]
8995#[derive(Copy, Clone, Debug)]
8996#[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)"]
8997pub struct SwapchainStateFoveationFB {
8998    pub ty: StructureType,
8999    pub next: *mut c_void,
9000    pub flags: SwapchainStateFoveationFlagsFB,
9001    pub profile: FoveationProfileFB,
9002}
9003impl SwapchainStateFoveationFB {
9004    pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_FOVEATION_FB;
9005    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9006    #[inline]
9007    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9008        let mut x = MaybeUninit::<Self>::uninit();
9009        unsafe {
9010            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9011                ty: Self::TYPE,
9012                next,
9013            });
9014        }
9015        x
9016    }
9017}
9018#[repr(C)]
9019#[derive(Copy, Clone, Debug)]
9020#[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)"]
9021pub struct SwapchainImageFoveationVulkanFB {
9022    pub ty: StructureType,
9023    pub next: *mut c_void,
9024    pub image: VkImage,
9025    pub width: u32,
9026    pub height: u32,
9027}
9028impl SwapchainImageFoveationVulkanFB {
9029    pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB;
9030    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9031    #[inline]
9032    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9033        let mut x = MaybeUninit::<Self>::uninit();
9034        unsafe {
9035            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9036                ty: Self::TYPE,
9037                next,
9038            });
9039        }
9040        x
9041    }
9042}
9043#[repr(C)]
9044#[derive(Copy, Clone, Debug)]
9045#[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)"]
9046pub struct FoveationLevelProfileCreateInfoFB {
9047    pub ty: StructureType,
9048    pub next: *mut c_void,
9049    pub level: FoveationLevelFB,
9050    pub vertical_offset: f32,
9051    pub dynamic: FoveationDynamicFB,
9052}
9053impl FoveationLevelProfileCreateInfoFB {
9054    pub const TYPE: StructureType = StructureType::FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB;
9055    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9056    #[inline]
9057    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9058        let mut x = MaybeUninit::<Self>::uninit();
9059        unsafe {
9060            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9061                ty: Self::TYPE,
9062                next,
9063            });
9064        }
9065        x
9066    }
9067}
9068#[repr(C)]
9069#[derive(Copy, Clone, Debug)]
9070#[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)"]
9071pub struct FoveationEyeTrackedProfileCreateInfoMETA {
9072    pub ty: StructureType,
9073    pub next: *const c_void,
9074    pub flags: FoveationEyeTrackedProfileCreateFlagsMETA,
9075}
9076impl FoveationEyeTrackedProfileCreateInfoMETA {
9077    pub const TYPE: StructureType = StructureType::FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META;
9078}
9079#[repr(C)]
9080#[derive(Copy, Clone, Debug)]
9081#[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)"]
9082pub struct FoveationEyeTrackedStateMETA {
9083    pub ty: StructureType,
9084    pub next: *mut c_void,
9085    pub foveation_center: [Vector2f; FOVEATION_CENTER_SIZE_META],
9086    pub flags: FoveationEyeTrackedStateFlagsMETA,
9087}
9088impl FoveationEyeTrackedStateMETA {
9089    pub const TYPE: StructureType = StructureType::FOVEATION_EYE_TRACKED_STATE_META;
9090    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9091    #[inline]
9092    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9093        let mut x = MaybeUninit::<Self>::uninit();
9094        unsafe {
9095            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9096                ty: Self::TYPE,
9097                next,
9098            });
9099        }
9100        x
9101    }
9102}
9103#[repr(C)]
9104#[derive(Copy, Clone, Debug)]
9105#[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)"]
9106pub struct SystemFoveationEyeTrackedPropertiesMETA {
9107    pub ty: StructureType,
9108    pub next: *mut c_void,
9109    pub supports_foveation_eye_tracked: Bool32,
9110}
9111impl SystemFoveationEyeTrackedPropertiesMETA {
9112    pub const TYPE: StructureType = StructureType::SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META;
9113    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9114    #[inline]
9115    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9116        let mut x = MaybeUninit::<Self>::uninit();
9117        unsafe {
9118            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9119                ty: Self::TYPE,
9120                next,
9121            });
9122        }
9123        x
9124    }
9125}
9126#[repr(C)]
9127#[derive(Copy, Clone, Debug, Default, PartialEq)]
9128#[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)"]
9129pub struct Vector4sFB {
9130    pub x: i16,
9131    pub y: i16,
9132    pub z: i16,
9133    pub w: i16,
9134}
9135#[repr(C)]
9136#[derive(Copy, Clone, Debug)]
9137#[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)"]
9138pub struct HandTrackingMeshFB {
9139    pub ty: StructureType,
9140    pub next: *mut c_void,
9141    pub joint_capacity_input: u32,
9142    pub joint_count_output: u32,
9143    pub joint_bind_poses: *mut Posef,
9144    pub joint_radii: *mut f32,
9145    pub joint_parents: *mut HandJointEXT,
9146    pub vertex_capacity_input: u32,
9147    pub vertex_count_output: u32,
9148    pub vertex_positions: *mut Vector3f,
9149    pub vertex_normals: *mut Vector3f,
9150    pub vertex_u_vs: *mut Vector2f,
9151    pub vertex_blend_indices: *mut Vector4sFB,
9152    pub vertex_blend_weights: *mut Vector4f,
9153    pub index_capacity_input: u32,
9154    pub index_count_output: u32,
9155    pub indices: *mut i16,
9156}
9157impl HandTrackingMeshFB {
9158    pub const TYPE: StructureType = StructureType::HAND_TRACKING_MESH_FB;
9159    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9160    #[inline]
9161    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9162        let mut x = MaybeUninit::<Self>::uninit();
9163        unsafe {
9164            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9165                ty: Self::TYPE,
9166                next,
9167            });
9168        }
9169        x
9170    }
9171}
9172#[repr(C)]
9173#[derive(Copy, Clone, Debug)]
9174#[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)"]
9175pub struct HandTrackingScaleFB {
9176    pub ty: StructureType,
9177    pub next: *mut c_void,
9178    pub sensor_output: f32,
9179    pub current_output: f32,
9180    pub override_hand_scale: Bool32,
9181    pub override_value_input: f32,
9182}
9183impl HandTrackingScaleFB {
9184    pub const TYPE: StructureType = StructureType::HAND_TRACKING_SCALE_FB;
9185    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9186    #[inline]
9187    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9188        let mut x = MaybeUninit::<Self>::uninit();
9189        unsafe {
9190            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9191                ty: Self::TYPE,
9192                next,
9193            });
9194        }
9195        x
9196    }
9197}
9198#[repr(C)]
9199#[derive(Copy, Clone, Debug)]
9200#[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)"]
9201pub struct HandTrackingAimStateFB {
9202    pub ty: StructureType,
9203    pub next: *mut c_void,
9204    pub status: HandTrackingAimFlagsFB,
9205    pub aim_pose: Posef,
9206    pub pinch_strength_index: f32,
9207    pub pinch_strength_middle: f32,
9208    pub pinch_strength_ring: f32,
9209    pub pinch_strength_little: f32,
9210}
9211impl HandTrackingAimStateFB {
9212    pub const TYPE: StructureType = StructureType::HAND_TRACKING_AIM_STATE_FB;
9213    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9214    #[inline]
9215    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9216        let mut x = MaybeUninit::<Self>::uninit();
9217        unsafe {
9218            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9219                ty: Self::TYPE,
9220                next,
9221            });
9222        }
9223        x
9224    }
9225}
9226#[repr(C)]
9227#[derive(Copy, Clone, Debug)]
9228#[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)"]
9229pub struct HandCapsuleFB {
9230    pub points: [Vector3f; HAND_TRACKING_CAPSULE_POINT_COUNT_FB],
9231    pub radius: f32,
9232    pub joint: HandJointEXT,
9233}
9234#[repr(C)]
9235#[derive(Copy, Clone, Debug)]
9236#[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)"]
9237pub struct HandTrackingCapsulesStateFB {
9238    pub ty: StructureType,
9239    pub next: *mut c_void,
9240    pub capsules: [HandCapsuleFB; HAND_TRACKING_CAPSULE_COUNT_FB],
9241}
9242impl HandTrackingCapsulesStateFB {
9243    pub const TYPE: StructureType = StructureType::HAND_TRACKING_CAPSULES_STATE_FB;
9244    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9245    #[inline]
9246    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9247        let mut x = MaybeUninit::<Self>::uninit();
9248        unsafe {
9249            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9250                ty: Self::TYPE,
9251                next,
9252            });
9253        }
9254        x
9255    }
9256}
9257#[repr(C)]
9258#[derive(Copy, Clone, Debug)]
9259#[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)"]
9260pub struct RenderModelPathInfoFB {
9261    pub ty: StructureType,
9262    pub next: *mut c_void,
9263    pub path: Path,
9264}
9265impl RenderModelPathInfoFB {
9266    pub const TYPE: StructureType = StructureType::RENDER_MODEL_PATH_INFO_FB;
9267    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9268    #[inline]
9269    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9270        let mut x = MaybeUninit::<Self>::uninit();
9271        unsafe {
9272            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9273                ty: Self::TYPE,
9274                next,
9275            });
9276        }
9277        x
9278    }
9279}
9280#[repr(C)]
9281#[derive(Copy, Clone, Debug)]
9282#[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)"]
9283pub struct RenderModelPropertiesFB {
9284    pub ty: StructureType,
9285    pub next: *mut c_void,
9286    pub vendor_id: u32,
9287    pub model_name: [c_char; MAX_RENDER_MODEL_NAME_SIZE_FB],
9288    pub model_key: RenderModelKeyFB,
9289    pub model_version: u32,
9290    pub flags: RenderModelFlagsFB,
9291}
9292impl RenderModelPropertiesFB {
9293    pub const TYPE: StructureType = StructureType::RENDER_MODEL_PROPERTIES_FB;
9294    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9295    #[inline]
9296    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9297        let mut x = MaybeUninit::<Self>::uninit();
9298        unsafe {
9299            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9300                ty: Self::TYPE,
9301                next,
9302            });
9303        }
9304        x
9305    }
9306}
9307#[repr(C)]
9308#[derive(Copy, Clone, Debug)]
9309#[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)"]
9310pub struct RenderModelCapabilitiesRequestFB {
9311    pub ty: StructureType,
9312    pub next: *mut c_void,
9313    pub flags: RenderModelFlagsFB,
9314}
9315impl RenderModelCapabilitiesRequestFB {
9316    pub const TYPE: StructureType = StructureType::RENDER_MODEL_CAPABILITIES_REQUEST_FB;
9317    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9318    #[inline]
9319    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9320        let mut x = MaybeUninit::<Self>::uninit();
9321        unsafe {
9322            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9323                ty: Self::TYPE,
9324                next,
9325            });
9326        }
9327        x
9328    }
9329}
9330#[repr(C)]
9331#[derive(Copy, Clone, Debug)]
9332#[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)"]
9333pub struct RenderModelBufferFB {
9334    pub ty: StructureType,
9335    pub next: *mut c_void,
9336    pub buffer_capacity_input: u32,
9337    pub buffer_count_output: u32,
9338    pub buffer: *mut u8,
9339}
9340impl RenderModelBufferFB {
9341    pub const TYPE: StructureType = StructureType::RENDER_MODEL_BUFFER_FB;
9342    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9343    #[inline]
9344    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9345        let mut x = MaybeUninit::<Self>::uninit();
9346        unsafe {
9347            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9348                ty: Self::TYPE,
9349                next,
9350            });
9351        }
9352        x
9353    }
9354}
9355#[repr(C)]
9356#[derive(Copy, Clone, Debug)]
9357#[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)"]
9358pub struct RenderModelLoadInfoFB {
9359    pub ty: StructureType,
9360    pub next: *mut c_void,
9361    pub model_key: RenderModelKeyFB,
9362}
9363impl RenderModelLoadInfoFB {
9364    pub const TYPE: StructureType = StructureType::RENDER_MODEL_LOAD_INFO_FB;
9365    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9366    #[inline]
9367    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9368        let mut x = MaybeUninit::<Self>::uninit();
9369        unsafe {
9370            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9371                ty: Self::TYPE,
9372                next,
9373            });
9374        }
9375        x
9376    }
9377}
9378#[repr(C)]
9379#[derive(Copy, Clone, Debug)]
9380#[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)"]
9381pub struct SystemRenderModelPropertiesFB {
9382    pub ty: StructureType,
9383    pub next: *mut c_void,
9384    pub supports_render_model_loading: Bool32,
9385}
9386impl SystemRenderModelPropertiesFB {
9387    pub const TYPE: StructureType = StructureType::SYSTEM_RENDER_MODEL_PROPERTIES_FB;
9388    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9389    #[inline]
9390    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9391        let mut x = MaybeUninit::<Self>::uninit();
9392        unsafe {
9393            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9394                ty: Self::TYPE,
9395                next,
9396            });
9397        }
9398        x
9399    }
9400}
9401#[repr(C)]
9402#[derive(Copy, Clone, Debug)]
9403#[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)"]
9404pub struct SpaceQueryInfoBaseHeaderFB {
9405    pub ty: StructureType,
9406    pub next: *const c_void,
9407}
9408#[repr(C)]
9409#[derive(Copy, Clone, Debug)]
9410#[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)"]
9411pub struct SpaceFilterInfoBaseHeaderFB {
9412    pub ty: StructureType,
9413    pub next: *const c_void,
9414}
9415#[repr(C)]
9416#[derive(Copy, Clone, Debug)]
9417#[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)"]
9418pub struct SpaceQueryInfoFB {
9419    pub ty: StructureType,
9420    pub next: *const c_void,
9421    pub query_action: SpaceQueryActionFB,
9422    pub max_result_count: u32,
9423    pub timeout: Duration,
9424    pub filter: *const SpaceFilterInfoBaseHeaderFB,
9425    pub exclude_filter: *const SpaceFilterInfoBaseHeaderFB,
9426}
9427impl SpaceQueryInfoFB {
9428    pub const TYPE: StructureType = StructureType::SPACE_QUERY_INFO_FB;
9429}
9430#[repr(C)]
9431#[derive(Copy, Clone, Debug)]
9432#[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)"]
9433pub struct SpaceStorageLocationFilterInfoFB {
9434    pub ty: StructureType,
9435    pub next: *const c_void,
9436    pub location: SpaceStorageLocationFB,
9437}
9438impl SpaceStorageLocationFilterInfoFB {
9439    pub const TYPE: StructureType = StructureType::SPACE_STORAGE_LOCATION_FILTER_INFO_FB;
9440}
9441#[repr(C)]
9442#[derive(Copy, Clone, Debug)]
9443#[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)"]
9444pub struct SpaceUuidFilterInfoFB {
9445    pub ty: StructureType,
9446    pub next: *const c_void,
9447    pub uuid_count: u32,
9448    pub uuids: *mut UuidEXT,
9449}
9450impl SpaceUuidFilterInfoFB {
9451    pub const TYPE: StructureType = StructureType::SPACE_UUID_FILTER_INFO_FB;
9452}
9453#[repr(C)]
9454#[derive(Copy, Clone, Debug)]
9455#[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)"]
9456pub struct SpaceComponentFilterInfoFB {
9457    pub ty: StructureType,
9458    pub next: *const c_void,
9459    pub component_type: SpaceComponentTypeFB,
9460}
9461impl SpaceComponentFilterInfoFB {
9462    pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_FILTER_INFO_FB;
9463}
9464#[repr(C)]
9465#[derive(Copy, Clone, Debug)]
9466#[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)"]
9467pub struct SpaceQueryResultFB {
9468    pub space: Space,
9469    pub uuid: UuidEXT,
9470}
9471#[repr(C)]
9472#[derive(Copy, Clone, Debug)]
9473#[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)"]
9474pub struct SpaceQueryResultsFB {
9475    pub ty: StructureType,
9476    pub next: *mut c_void,
9477    pub result_capacity_input: u32,
9478    pub result_count_output: u32,
9479    pub results: *mut SpaceQueryResultFB,
9480}
9481impl SpaceQueryResultsFB {
9482    pub const TYPE: StructureType = StructureType::SPACE_QUERY_RESULTS_FB;
9483    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9484    #[inline]
9485    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9486        let mut x = MaybeUninit::<Self>::uninit();
9487        unsafe {
9488            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9489                ty: Self::TYPE,
9490                next,
9491            });
9492        }
9493        x
9494    }
9495}
9496#[repr(C)]
9497#[derive(Copy, Clone, Debug)]
9498#[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)"]
9499pub struct EventDataSpaceQueryResultsAvailableFB {
9500    pub ty: StructureType,
9501    pub next: *const c_void,
9502    pub request_id: AsyncRequestIdFB,
9503}
9504impl EventDataSpaceQueryResultsAvailableFB {
9505    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB;
9506}
9507#[repr(C)]
9508#[derive(Copy, Clone, Debug)]
9509#[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)"]
9510pub struct EventDataSpaceQueryCompleteFB {
9511    pub ty: StructureType,
9512    pub next: *const c_void,
9513    pub request_id: AsyncRequestIdFB,
9514    pub result: Result,
9515}
9516impl EventDataSpaceQueryCompleteFB {
9517    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_QUERY_COMPLETE_FB;
9518}
9519#[repr(C)]
9520#[derive(Copy, Clone, Debug)]
9521#[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)"]
9522pub struct SpaceSaveInfoFB {
9523    pub ty: StructureType,
9524    pub next: *const c_void,
9525    pub space: Space,
9526    pub location: SpaceStorageLocationFB,
9527    pub persistence_mode: SpacePersistenceModeFB,
9528}
9529impl SpaceSaveInfoFB {
9530    pub const TYPE: StructureType = StructureType::SPACE_SAVE_INFO_FB;
9531}
9532#[repr(C)]
9533#[derive(Copy, Clone, Debug)]
9534#[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)"]
9535pub struct SpaceEraseInfoFB {
9536    pub ty: StructureType,
9537    pub next: *const c_void,
9538    pub space: Space,
9539    pub location: SpaceStorageLocationFB,
9540}
9541impl SpaceEraseInfoFB {
9542    pub const TYPE: StructureType = StructureType::SPACE_ERASE_INFO_FB;
9543}
9544#[repr(C)]
9545#[derive(Copy, Clone, Debug)]
9546#[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)"]
9547pub struct EventDataSpaceSaveCompleteFB {
9548    pub ty: StructureType,
9549    pub next: *const c_void,
9550    pub request_id: AsyncRequestIdFB,
9551    pub result: Result,
9552    pub space: Space,
9553    pub uuid: UuidEXT,
9554    pub location: SpaceStorageLocationFB,
9555}
9556impl EventDataSpaceSaveCompleteFB {
9557    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SAVE_COMPLETE_FB;
9558}
9559#[repr(C)]
9560#[derive(Copy, Clone, Debug)]
9561#[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)"]
9562pub struct EventDataSpaceEraseCompleteFB {
9563    pub ty: StructureType,
9564    pub next: *const c_void,
9565    pub request_id: AsyncRequestIdFB,
9566    pub result: Result,
9567    pub space: Space,
9568    pub uuid: UuidEXT,
9569    pub location: SpaceStorageLocationFB,
9570}
9571impl EventDataSpaceEraseCompleteFB {
9572    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_ERASE_COMPLETE_FB;
9573}
9574#[repr(C)]
9575#[derive(Copy, Clone, Debug)]
9576#[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)"]
9577pub struct SpaceShareInfoFB {
9578    pub ty: StructureType,
9579    pub next: *const c_void,
9580    pub space_count: u32,
9581    pub spaces: *mut Space,
9582    pub user_count: u32,
9583    pub users: *mut SpaceUserFB,
9584}
9585impl SpaceShareInfoFB {
9586    pub const TYPE: StructureType = StructureType::SPACE_SHARE_INFO_FB;
9587}
9588#[repr(C)]
9589#[derive(Copy, Clone, Debug)]
9590#[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)"]
9591pub struct EventDataSpaceShareCompleteFB {
9592    pub ty: StructureType,
9593    pub next: *const c_void,
9594    pub request_id: AsyncRequestIdFB,
9595    pub result: Result,
9596}
9597impl EventDataSpaceShareCompleteFB {
9598    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SHARE_COMPLETE_FB;
9599}
9600#[repr(C)]
9601#[derive(Copy, Clone, Debug)]
9602#[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)"]
9603pub struct SpaceListSaveInfoFB {
9604    pub ty: StructureType,
9605    pub next: *const c_void,
9606    pub space_count: u32,
9607    pub spaces: *mut Space,
9608    pub location: SpaceStorageLocationFB,
9609}
9610impl SpaceListSaveInfoFB {
9611    pub const TYPE: StructureType = StructureType::SPACE_LIST_SAVE_INFO_FB;
9612}
9613#[repr(C)]
9614#[derive(Copy, Clone, Debug)]
9615#[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)"]
9616pub struct EventDataSpaceListSaveCompleteFB {
9617    pub ty: StructureType,
9618    pub next: *const c_void,
9619    pub request_id: AsyncRequestIdFB,
9620    pub result: Result,
9621}
9622impl EventDataSpaceListSaveCompleteFB {
9623    pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB;
9624}
9625#[repr(C)]
9626#[derive(Copy, Clone, Debug)]
9627#[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)"]
9628pub struct SpaceContainerFB {
9629    pub ty: StructureType,
9630    pub next: *const c_void,
9631    pub uuid_capacity_input: u32,
9632    pub uuid_count_output: u32,
9633    pub uuids: *mut UuidEXT,
9634}
9635impl SpaceContainerFB {
9636    pub const TYPE: StructureType = StructureType::SPACE_CONTAINER_FB;
9637}
9638#[repr(C)]
9639#[derive(Copy, Clone, Debug)]
9640#[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)"]
9641pub struct SpaceTriangleMeshGetInfoMETA {
9642    pub ty: StructureType,
9643    pub next: *const c_void,
9644}
9645impl SpaceTriangleMeshGetInfoMETA {
9646    pub const TYPE: StructureType = StructureType::SPACE_TRIANGLE_MESH_GET_INFO_META;
9647}
9648#[repr(C)]
9649#[derive(Copy, Clone, Debug)]
9650#[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)"]
9651pub struct SpaceTriangleMeshMETA {
9652    pub ty: StructureType,
9653    pub next: *mut c_void,
9654    pub vertex_capacity_input: u32,
9655    pub vertex_count_output: u32,
9656    pub vertices: *mut Vector3f,
9657    pub index_capacity_input: u32,
9658    pub index_count_output: u32,
9659    pub indices: *mut u32,
9660}
9661impl SpaceTriangleMeshMETA {
9662    pub const TYPE: StructureType = StructureType::SPACE_TRIANGLE_MESH_META;
9663    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9664    #[inline]
9665    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9666        let mut x = MaybeUninit::<Self>::uninit();
9667        unsafe {
9668            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9669                ty: Self::TYPE,
9670                next,
9671            });
9672        }
9673        x
9674    }
9675}
9676#[repr(C)]
9677#[derive(Copy, Clone, Debug, Default, PartialEq)]
9678#[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)"]
9679pub struct Offset3DfFB {
9680    pub x: f32,
9681    pub y: f32,
9682    pub z: f32,
9683}
9684#[repr(C)]
9685#[derive(Copy, Clone, Debug, Default, PartialEq)]
9686#[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)"]
9687pub struct Rect3DfFB {
9688    pub offset: Offset3DfFB,
9689    pub extent: Extent3DfFB,
9690}
9691#[repr(C)]
9692#[derive(Copy, Clone, Debug)]
9693#[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)"]
9694pub struct SemanticLabelsFB {
9695    pub ty: StructureType,
9696    pub next: *const c_void,
9697    pub buffer_capacity_input: u32,
9698    pub buffer_count_output: u32,
9699    pub buffer: *mut c_char,
9700}
9701impl SemanticLabelsFB {
9702    pub const TYPE: StructureType = StructureType::SEMANTIC_LABELS_FB;
9703}
9704#[repr(C)]
9705#[derive(Copy, Clone, Debug)]
9706#[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)"]
9707pub struct RoomLayoutFB {
9708    pub ty: StructureType,
9709    pub next: *const c_void,
9710    pub floor_uuid: UuidEXT,
9711    pub ceiling_uuid: UuidEXT,
9712    pub wall_uuid_capacity_input: u32,
9713    pub wall_uuid_count_output: u32,
9714    pub wall_uuids: *mut UuidEXT,
9715}
9716impl RoomLayoutFB {
9717    pub const TYPE: StructureType = StructureType::ROOM_LAYOUT_FB;
9718}
9719#[repr(C)]
9720#[derive(Copy, Clone, Debug)]
9721#[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)"]
9722pub struct Boundary2DFB {
9723    pub ty: StructureType,
9724    pub next: *const c_void,
9725    pub vertex_capacity_input: u32,
9726    pub vertex_count_output: u32,
9727    pub vertices: *mut Vector2f,
9728}
9729impl Boundary2DFB {
9730    pub const TYPE: StructureType = StructureType::BOUNDARY_2D_FB;
9731}
9732#[repr(C)]
9733#[derive(Copy, Clone, Debug)]
9734#[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)"]
9735pub struct SemanticLabelsSupportInfoFB {
9736    pub ty: StructureType,
9737    pub next: *const c_void,
9738    pub flags: SemanticLabelsSupportFlagsFB,
9739    pub recognized_labels: *const c_char,
9740}
9741impl SemanticLabelsSupportInfoFB {
9742    pub const TYPE: StructureType = StructureType::SEMANTIC_LABELS_SUPPORT_INFO_FB;
9743}
9744#[repr(C)]
9745#[derive(Copy, Clone, Debug)]
9746#[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)"]
9747pub struct SceneCaptureRequestInfoFB {
9748    pub ty: StructureType,
9749    pub next: *const c_void,
9750    pub request_byte_count: u32,
9751    pub request: *const c_char,
9752}
9753impl SceneCaptureRequestInfoFB {
9754    pub const TYPE: StructureType = StructureType::SCENE_CAPTURE_REQUEST_INFO_FB;
9755}
9756#[repr(C)]
9757#[derive(Copy, Clone, Debug)]
9758#[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)"]
9759pub struct EventDataSceneCaptureCompleteFB {
9760    pub ty: StructureType,
9761    pub next: *const c_void,
9762    pub request_id: AsyncRequestIdFB,
9763    pub result: Result,
9764}
9765impl EventDataSceneCaptureCompleteFB {
9766    pub const TYPE: StructureType = StructureType::EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB;
9767}
9768#[repr(C)]
9769#[derive(Copy, Clone, Debug)]
9770#[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)"]
9771pub struct SystemKeyboardTrackingPropertiesFB {
9772    pub ty: StructureType,
9773    pub next: *mut c_void,
9774    pub supports_keyboard_tracking: Bool32,
9775}
9776impl SystemKeyboardTrackingPropertiesFB {
9777    pub const TYPE: StructureType = StructureType::SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB;
9778    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9779    #[inline]
9780    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9781        let mut x = MaybeUninit::<Self>::uninit();
9782        unsafe {
9783            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9784                ty: Self::TYPE,
9785                next,
9786            });
9787        }
9788        x
9789    }
9790}
9791#[repr(C)]
9792#[derive(Copy, Clone, Debug)]
9793#[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)"]
9794pub struct KeyboardTrackingDescriptionFB {
9795    pub tracked_keyboard_id: u64,
9796    pub size: Vector3f,
9797    pub flags: KeyboardTrackingFlagsFB,
9798    pub name: [c_char; MAX_KEYBOARD_TRACKING_NAME_SIZE_FB],
9799}
9800#[repr(C)]
9801#[derive(Copy, Clone, Debug)]
9802#[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)"]
9803pub struct KeyboardSpaceCreateInfoFB {
9804    pub ty: StructureType,
9805    pub next: *mut c_void,
9806    pub tracked_keyboard_id: u64,
9807}
9808impl KeyboardSpaceCreateInfoFB {
9809    pub const TYPE: StructureType = StructureType::KEYBOARD_SPACE_CREATE_INFO_FB;
9810    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9811    #[inline]
9812    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9813        let mut x = MaybeUninit::<Self>::uninit();
9814        unsafe {
9815            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9816                ty: Self::TYPE,
9817                next,
9818            });
9819        }
9820        x
9821    }
9822}
9823#[repr(C)]
9824#[derive(Copy, Clone, Debug)]
9825#[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)"]
9826pub struct KeyboardTrackingQueryFB {
9827    pub ty: StructureType,
9828    pub next: *mut c_void,
9829    pub flags: KeyboardTrackingQueryFlagsFB,
9830}
9831impl KeyboardTrackingQueryFB {
9832    pub const TYPE: StructureType = StructureType::KEYBOARD_TRACKING_QUERY_FB;
9833    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9834    #[inline]
9835    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9836        let mut x = MaybeUninit::<Self>::uninit();
9837        unsafe {
9838            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9839                ty: Self::TYPE,
9840                next,
9841            });
9842        }
9843        x
9844    }
9845}
9846#[repr(C)]
9847#[derive(Copy, Clone, Debug)]
9848#[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)"]
9849pub struct CompositionLayerDepthTestVARJO {
9850    pub ty: StructureType,
9851    pub next: *const c_void,
9852    pub depth_test_range_near_z: f32,
9853    pub depth_test_range_far_z: f32,
9854}
9855impl CompositionLayerDepthTestVARJO {
9856    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_TEST_VARJO;
9857}
9858#[repr(C)]
9859#[derive(Copy, Clone, Debug)]
9860#[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)"]
9861pub struct ViewLocateFoveatedRenderingVARJO {
9862    pub ty: StructureType,
9863    pub next: *const c_void,
9864    pub foveated_rendering_active: Bool32,
9865}
9866impl ViewLocateFoveatedRenderingVARJO {
9867    pub const TYPE: StructureType = StructureType::VIEW_LOCATE_FOVEATED_RENDERING_VARJO;
9868}
9869#[repr(C)]
9870#[derive(Copy, Clone, Debug)]
9871#[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)"]
9872pub struct FoveatedViewConfigurationViewVARJO {
9873    pub ty: StructureType,
9874    pub next: *mut c_void,
9875    pub foveated_rendering_active: Bool32,
9876}
9877impl FoveatedViewConfigurationViewVARJO {
9878    pub const TYPE: StructureType = StructureType::FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO;
9879    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9880    #[inline]
9881    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9882        let mut x = MaybeUninit::<Self>::uninit();
9883        unsafe {
9884            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9885                ty: Self::TYPE,
9886                next,
9887            });
9888        }
9889        x
9890    }
9891}
9892#[repr(C)]
9893#[derive(Copy, Clone, Debug)]
9894#[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)"]
9895pub struct SystemFoveatedRenderingPropertiesVARJO {
9896    pub ty: StructureType,
9897    pub next: *mut c_void,
9898    pub supports_foveated_rendering: Bool32,
9899}
9900impl SystemFoveatedRenderingPropertiesVARJO {
9901    pub const TYPE: StructureType = StructureType::SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO;
9902    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9903    #[inline]
9904    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9905        let mut x = MaybeUninit::<Self>::uninit();
9906        unsafe {
9907            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9908                ty: Self::TYPE,
9909                next,
9910            });
9911        }
9912        x
9913    }
9914}
9915#[repr(C)]
9916#[derive(Copy, Clone, Debug)]
9917#[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)"]
9918pub struct CompositionLayerReprojectionInfoMSFT {
9919    pub ty: StructureType,
9920    pub next: *const c_void,
9921    pub reprojection_mode: ReprojectionModeMSFT,
9922}
9923impl CompositionLayerReprojectionInfoMSFT {
9924    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_REPROJECTION_INFO_MSFT;
9925}
9926#[repr(C)]
9927#[derive(Copy, Clone, Debug)]
9928#[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)"]
9929pub struct CompositionLayerReprojectionPlaneOverrideMSFT {
9930    pub ty: StructureType,
9931    pub next: *const c_void,
9932    pub position: Vector3f,
9933    pub normal: Vector3f,
9934    pub velocity: Vector3f,
9935}
9936impl CompositionLayerReprojectionPlaneOverrideMSFT {
9937    pub const TYPE: StructureType =
9938        StructureType::COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT;
9939}
9940#[repr(C)]
9941#[derive(Copy, Clone, Debug)]
9942#[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)"]
9943pub struct TriangleMeshCreateInfoFB {
9944    pub ty: StructureType,
9945    pub next: *const c_void,
9946    pub flags: TriangleMeshFlagsFB,
9947    pub winding_order: WindingOrderFB,
9948    pub vertex_count: u32,
9949    pub vertex_buffer: *const Vector3f,
9950    pub triangle_count: u32,
9951    pub index_buffer: *const u32,
9952}
9953impl TriangleMeshCreateInfoFB {
9954    pub const TYPE: StructureType = StructureType::TRIANGLE_MESH_CREATE_INFO_FB;
9955}
9956#[repr(C)]
9957#[derive(Copy, Clone, Debug)]
9958#[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)"]
9959pub struct SystemPassthroughPropertiesFB {
9960    pub ty: StructureType,
9961    pub next: *const c_void,
9962    pub supports_passthrough: Bool32,
9963}
9964impl SystemPassthroughPropertiesFB {
9965    pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_PROPERTIES_FB;
9966}
9967#[repr(C)]
9968#[derive(Copy, Clone, Debug)]
9969#[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)"]
9970pub struct SystemPassthroughProperties2FB {
9971    pub ty: StructureType,
9972    pub next: *const c_void,
9973    pub capabilities: PassthroughCapabilityFlagsFB,
9974}
9975impl SystemPassthroughProperties2FB {
9976    pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_PROPERTIES2_FB;
9977}
9978#[repr(C)]
9979#[derive(Copy, Clone, Debug)]
9980#[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)"]
9981pub struct PassthroughCreateInfoFB {
9982    pub ty: StructureType,
9983    pub next: *const c_void,
9984    pub flags: PassthroughFlagsFB,
9985}
9986impl PassthroughCreateInfoFB {
9987    pub const TYPE: StructureType = StructureType::PASSTHROUGH_CREATE_INFO_FB;
9988}
9989#[repr(C)]
9990#[derive(Copy, Clone, Debug)]
9991#[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)"]
9992pub struct PassthroughLayerCreateInfoFB {
9993    pub ty: StructureType,
9994    pub next: *const c_void,
9995    pub passthrough: PassthroughFB,
9996    pub flags: PassthroughFlagsFB,
9997    pub purpose: PassthroughLayerPurposeFB,
9998}
9999impl PassthroughLayerCreateInfoFB {
10000    pub const TYPE: StructureType = StructureType::PASSTHROUGH_LAYER_CREATE_INFO_FB;
10001}
10002#[repr(C)]
10003#[derive(Copy, Clone, Debug)]
10004#[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)"]
10005pub struct CompositionLayerPassthroughFB {
10006    pub ty: StructureType,
10007    pub next: *const c_void,
10008    pub flags: CompositionLayerFlags,
10009    pub space: Space,
10010    pub layer_handle: PassthroughLayerFB,
10011}
10012impl CompositionLayerPassthroughFB {
10013    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PASSTHROUGH_FB;
10014}
10015#[repr(C)]
10016#[derive(Copy, Clone, Debug)]
10017#[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)"]
10018pub struct GeometryInstanceCreateInfoFB {
10019    pub ty: StructureType,
10020    pub next: *const c_void,
10021    pub layer: PassthroughLayerFB,
10022    pub mesh: TriangleMeshFB,
10023    pub base_space: Space,
10024    pub pose: Posef,
10025    pub scale: Vector3f,
10026}
10027impl GeometryInstanceCreateInfoFB {
10028    pub const TYPE: StructureType = StructureType::GEOMETRY_INSTANCE_CREATE_INFO_FB;
10029}
10030#[repr(C)]
10031#[derive(Copy, Clone, Debug)]
10032#[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)"]
10033pub struct GeometryInstanceTransformFB {
10034    pub ty: StructureType,
10035    pub next: *const c_void,
10036    pub base_space: Space,
10037    pub time: Time,
10038    pub pose: Posef,
10039    pub scale: Vector3f,
10040}
10041impl GeometryInstanceTransformFB {
10042    pub const TYPE: StructureType = StructureType::GEOMETRY_INSTANCE_TRANSFORM_FB;
10043}
10044#[repr(C)]
10045#[derive(Copy, Clone, Debug)]
10046#[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)"]
10047pub struct PassthroughStyleFB {
10048    pub ty: StructureType,
10049    pub next: *const c_void,
10050    pub texture_opacity_factor: f32,
10051    pub edge_color: Color4f,
10052}
10053impl PassthroughStyleFB {
10054    pub const TYPE: StructureType = StructureType::PASSTHROUGH_STYLE_FB;
10055}
10056#[repr(C)]
10057#[derive(Copy, Clone, Debug)]
10058#[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)"]
10059pub struct PassthroughColorMapMonoToRgbaFB {
10060    pub ty: StructureType,
10061    pub next: *const c_void,
10062    pub texture_color_map: [Color4f; PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB],
10063}
10064impl PassthroughColorMapMonoToRgbaFB {
10065    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB;
10066}
10067#[repr(C)]
10068#[derive(Copy, Clone, Debug)]
10069#[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)"]
10070pub struct PassthroughColorMapMonoToMonoFB {
10071    pub ty: StructureType,
10072    pub next: *const c_void,
10073    pub texture_color_map: [u8; PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB],
10074}
10075impl PassthroughColorMapMonoToMonoFB {
10076    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB;
10077}
10078#[repr(C)]
10079#[derive(Copy, Clone, Debug)]
10080#[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)"]
10081pub struct PassthroughBrightnessContrastSaturationFB {
10082    pub ty: StructureType,
10083    pub next: *const c_void,
10084    pub brightness: f32,
10085    pub contrast: f32,
10086    pub saturation: f32,
10087}
10088impl PassthroughBrightnessContrastSaturationFB {
10089    pub const TYPE: StructureType = StructureType::PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB;
10090}
10091#[repr(C)]
10092#[derive(Copy, Clone, Debug)]
10093#[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)"]
10094pub struct EventDataPassthroughStateChangedFB {
10095    pub ty: StructureType,
10096    pub next: *const c_void,
10097    pub flags: PassthroughStateChangedFlagsFB,
10098}
10099impl EventDataPassthroughStateChangedFB {
10100    pub const TYPE: StructureType = StructureType::EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB;
10101}
10102#[repr(C)]
10103#[derive(Copy, Clone, Debug)]
10104#[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)"]
10105pub struct PassthroughKeyboardHandsIntensityFB {
10106    pub ty: StructureType,
10107    pub next: *const c_void,
10108    pub left_hand_intensity: f32,
10109    pub right_hand_intensity: f32,
10110}
10111impl PassthroughKeyboardHandsIntensityFB {
10112    pub const TYPE: StructureType = StructureType::PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB;
10113}
10114#[repr(C)]
10115#[derive(Copy, Clone, Debug)]
10116#[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)"]
10117pub struct LocalDimmingFrameEndInfoMETA {
10118    pub ty: StructureType,
10119    pub next: *const c_void,
10120    pub local_dimming_mode: LocalDimmingModeMETA,
10121}
10122impl LocalDimmingFrameEndInfoMETA {
10123    pub const TYPE: StructureType = StructureType::LOCAL_DIMMING_FRAME_END_INFO_META;
10124}
10125#[repr(C)]
10126#[derive(Copy, Clone, Debug)]
10127#[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)"]
10128pub struct SpatialAnchorPersistenceNameMSFT {
10129    pub name: [c_char; MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT],
10130}
10131#[repr(C)]
10132#[derive(Copy, Clone, Debug)]
10133#[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)"]
10134pub struct SpatialAnchorPersistenceInfoMSFT {
10135    pub ty: StructureType,
10136    pub next: *const c_void,
10137    pub spatial_anchor_persistence_name: SpatialAnchorPersistenceNameMSFT,
10138    pub spatial_anchor: SpatialAnchorMSFT,
10139}
10140impl SpatialAnchorPersistenceInfoMSFT {
10141    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT;
10142}
10143#[repr(C)]
10144#[derive(Copy, Clone, Debug)]
10145#[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)"]
10146pub struct SpatialAnchorFromPersistedAnchorCreateInfoMSFT {
10147    pub ty: StructureType,
10148    pub next: *const c_void,
10149    pub spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
10150    pub spatial_anchor_persistence_name: SpatialAnchorPersistenceNameMSFT,
10151}
10152impl SpatialAnchorFromPersistedAnchorCreateInfoMSFT {
10153    pub const TYPE: StructureType =
10154        StructureType::SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT;
10155}
10156#[repr(C)]
10157#[derive(Copy, Clone, Debug)]
10158#[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)"]
10159pub struct FacialTrackerCreateInfoHTC {
10160    pub ty: StructureType,
10161    pub next: *const c_void,
10162    pub facial_tracking_type: FacialTrackingTypeHTC,
10163}
10164impl FacialTrackerCreateInfoHTC {
10165    pub const TYPE: StructureType = StructureType::FACIAL_TRACKER_CREATE_INFO_HTC;
10166}
10167#[repr(C)]
10168#[derive(Copy, Clone, Debug)]
10169#[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)"]
10170pub struct SystemFacialTrackingPropertiesHTC {
10171    pub ty: StructureType,
10172    pub next: *mut c_void,
10173    pub support_eye_facial_tracking: Bool32,
10174    pub support_lip_facial_tracking: Bool32,
10175}
10176impl SystemFacialTrackingPropertiesHTC {
10177    pub const TYPE: StructureType = StructureType::SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC;
10178    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10179    #[inline]
10180    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10181        let mut x = MaybeUninit::<Self>::uninit();
10182        unsafe {
10183            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10184                ty: Self::TYPE,
10185                next,
10186            });
10187        }
10188        x
10189    }
10190}
10191#[repr(C)]
10192#[derive(Copy, Clone, Debug)]
10193#[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)"]
10194pub struct FacialExpressionsHTC {
10195    pub ty: StructureType,
10196    pub next: *const c_void,
10197    pub is_active: Bool32,
10198    pub sample_time: Time,
10199    pub expression_count: u32,
10200    pub expression_weightings: *mut f32,
10201}
10202impl FacialExpressionsHTC {
10203    pub const TYPE: StructureType = StructureType::FACIAL_EXPRESSIONS_HTC;
10204}
10205#[repr(C)]
10206#[derive(Copy, Clone, Debug)]
10207#[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)"]
10208pub struct PassthroughCreateInfoHTC {
10209    pub ty: StructureType,
10210    pub next: *const c_void,
10211    pub form: PassthroughFormHTC,
10212}
10213impl PassthroughCreateInfoHTC {
10214    pub const TYPE: StructureType = StructureType::PASSTHROUGH_CREATE_INFO_HTC;
10215}
10216#[repr(C)]
10217#[derive(Copy, Clone, Debug)]
10218#[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)"]
10219pub struct PassthroughColorHTC {
10220    pub ty: StructureType,
10221    pub next: *const c_void,
10222    pub alpha: f32,
10223}
10224impl PassthroughColorHTC {
10225    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_HTC;
10226}
10227#[repr(C)]
10228#[derive(Copy, Clone, Debug)]
10229#[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)"]
10230pub struct PassthroughMeshTransformInfoHTC {
10231    pub ty: StructureType,
10232    pub next: *const c_void,
10233    pub vertex_count: u32,
10234    pub vertices: *const Vector3f,
10235    pub index_count: u32,
10236    pub indices: *const u32,
10237    pub base_space: Space,
10238    pub time: Time,
10239    pub pose: Posef,
10240    pub scale: Vector3f,
10241}
10242impl PassthroughMeshTransformInfoHTC {
10243    pub const TYPE: StructureType = StructureType::PASSTHROUGH_MESH_TRANSFORM_INFO_HTC;
10244}
10245#[repr(C)]
10246#[derive(Copy, Clone, Debug)]
10247#[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)"]
10248pub struct CompositionLayerPassthroughHTC {
10249    pub ty: StructureType,
10250    pub next: *const c_void,
10251    pub layer_flags: CompositionLayerFlags,
10252    pub space: Space,
10253    pub passthrough: PassthroughHTC,
10254    pub color: PassthroughColorHTC,
10255}
10256impl CompositionLayerPassthroughHTC {
10257    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PASSTHROUGH_HTC;
10258}
10259#[repr(C)]
10260#[derive(Copy, Clone, Debug)]
10261#[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)"]
10262pub struct SpatialAnchorCreateInfoHTC {
10263    pub ty: StructureType,
10264    pub next: *const c_void,
10265    pub space: Space,
10266    pub pose_in_space: Posef,
10267    pub name: SpatialAnchorNameHTC,
10268}
10269impl SpatialAnchorCreateInfoHTC {
10270    pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_HTC;
10271}
10272#[repr(C)]
10273#[derive(Copy, Clone, Debug)]
10274#[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)"]
10275pub struct SpatialAnchorNameHTC {
10276    pub name: [c_char; MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC],
10277}
10278#[repr(C)]
10279#[derive(Copy, Clone, Debug)]
10280#[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)"]
10281pub struct SystemAnchorPropertiesHTC {
10282    pub ty: StructureType,
10283    pub next: *mut c_void,
10284    pub supports_anchor: Bool32,
10285}
10286impl SystemAnchorPropertiesHTC {
10287    pub const TYPE: StructureType = StructureType::SYSTEM_ANCHOR_PROPERTIES_HTC;
10288    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10289    #[inline]
10290    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10291        let mut x = MaybeUninit::<Self>::uninit();
10292        unsafe {
10293            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10294                ty: Self::TYPE,
10295                next,
10296            });
10297        }
10298        x
10299    }
10300}
10301#[repr(C)]
10302#[derive(Copy, Clone, Debug)]
10303#[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)"]
10304pub struct ViveTrackerPathsHTCX {
10305    pub ty: StructureType,
10306    pub next: *mut c_void,
10307    pub persistent_path: Path,
10308    pub role_path: Path,
10309}
10310impl ViveTrackerPathsHTCX {
10311    pub const TYPE: StructureType = StructureType::VIVE_TRACKER_PATHS_HTCX;
10312    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10313    #[inline]
10314    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10315        let mut x = MaybeUninit::<Self>::uninit();
10316        unsafe {
10317            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10318                ty: Self::TYPE,
10319                next,
10320            });
10321        }
10322        x
10323    }
10324}
10325#[repr(C)]
10326#[derive(Copy, Clone, Debug)]
10327#[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)"]
10328pub struct EventDataViveTrackerConnectedHTCX {
10329    pub ty: StructureType,
10330    pub next: *const c_void,
10331    pub paths: *mut ViveTrackerPathsHTCX,
10332}
10333impl EventDataViveTrackerConnectedHTCX {
10334    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX;
10335}
10336#[repr(C)]
10337#[derive(Copy, Clone, Debug)]
10338#[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)"]
10339pub struct CompositionLayerSpaceWarpInfoFB {
10340    pub ty: StructureType,
10341    pub next: *const c_void,
10342    pub layer_flags: CompositionLayerSpaceWarpInfoFlagsFB,
10343    pub motion_vector_sub_image: SwapchainSubImage,
10344    pub app_space_delta_pose: Posef,
10345    pub depth_sub_image: SwapchainSubImage,
10346    pub min_depth: f32,
10347    pub max_depth: f32,
10348    pub near_z: f32,
10349    pub far_z: f32,
10350}
10351impl CompositionLayerSpaceWarpInfoFB {
10352    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SPACE_WARP_INFO_FB;
10353}
10354#[repr(C)]
10355#[derive(Copy, Clone, Debug)]
10356#[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)"]
10357pub struct SystemSpaceWarpPropertiesFB {
10358    pub ty: StructureType,
10359    pub next: *mut c_void,
10360    pub recommended_motion_vector_image_rect_width: u32,
10361    pub recommended_motion_vector_image_rect_height: u32,
10362}
10363impl SystemSpaceWarpPropertiesFB {
10364    pub const TYPE: StructureType = StructureType::SYSTEM_SPACE_WARP_PROPERTIES_FB;
10365    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10366    #[inline]
10367    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10368        let mut x = MaybeUninit::<Self>::uninit();
10369        unsafe {
10370            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10371                ty: Self::TYPE,
10372                next,
10373            });
10374        }
10375        x
10376    }
10377}
10378#[repr(C)]
10379#[derive(Copy, Clone, Debug)]
10380#[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)"]
10381pub struct SystemMarkerTrackingPropertiesVARJO {
10382    pub ty: StructureType,
10383    pub next: *mut c_void,
10384    pub supports_marker_tracking: Bool32,
10385}
10386impl SystemMarkerTrackingPropertiesVARJO {
10387    pub const TYPE: StructureType = StructureType::SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO;
10388    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10389    #[inline]
10390    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10391        let mut x = MaybeUninit::<Self>::uninit();
10392        unsafe {
10393            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10394                ty: Self::TYPE,
10395                next,
10396            });
10397        }
10398        x
10399    }
10400}
10401#[repr(C)]
10402#[derive(Copy, Clone, Debug)]
10403#[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)"]
10404pub struct EventDataMarkerTrackingUpdateVARJO {
10405    pub ty: StructureType,
10406    pub next: *const c_void,
10407    pub marker_id: u64,
10408    pub is_active: Bool32,
10409    pub is_predicted: Bool32,
10410    pub time: Time,
10411}
10412impl EventDataMarkerTrackingUpdateVARJO {
10413    pub const TYPE: StructureType = StructureType::EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO;
10414}
10415#[repr(C)]
10416#[derive(Copy, Clone, Debug)]
10417#[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)"]
10418pub struct MarkerSpaceCreateInfoVARJO {
10419    pub ty: StructureType,
10420    pub next: *const c_void,
10421    pub marker_id: u64,
10422    pub pose_in_marker_space: Posef,
10423}
10424impl MarkerSpaceCreateInfoVARJO {
10425    pub const TYPE: StructureType = StructureType::MARKER_SPACE_CREATE_INFO_VARJO;
10426}
10427#[repr(C)]
10428#[derive(Copy, Clone, Debug)]
10429#[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)"]
10430pub struct GlobalDimmerFrameEndInfoML {
10431    pub ty: StructureType,
10432    pub next: *const c_void,
10433    pub dimmer_value: f32,
10434    pub flags: GlobalDimmerFrameEndInfoFlagsML,
10435}
10436impl GlobalDimmerFrameEndInfoML {
10437    pub const TYPE: StructureType = StructureType::GLOBAL_DIMMER_FRAME_END_INFO_ML;
10438}
10439#[repr(C)]
10440#[derive(Copy, Clone, Debug)]
10441#[doc = "See [XrDigitalLensControlALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDigitalLensControlALMALENCE)"]
10442pub struct DigitalLensControlALMALENCE {
10443    pub ty: StructureType,
10444    pub next: *const c_void,
10445    pub flags: DigitalLensControlFlagsALMALENCE,
10446}
10447impl DigitalLensControlALMALENCE {
10448    pub const TYPE: StructureType = StructureType::DIGITAL_LENS_CONTROL_ALMALENCE;
10449}
10450#[repr(C)]
10451#[derive(Copy, Clone, Debug)]
10452#[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)"]
10453pub struct CompositionLayerSettingsFB {
10454    pub ty: StructureType,
10455    pub next: *const c_void,
10456    pub layer_flags: CompositionLayerSettingsFlagsFB,
10457}
10458impl CompositionLayerSettingsFB {
10459    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SETTINGS_FB;
10460}
10461#[repr(C)]
10462#[derive(Copy, Clone, Debug, PartialEq)]
10463#[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)"]
10464pub struct ExternalCameraIntrinsicsOCULUS {
10465    pub last_change_time: Time,
10466    pub fov: Fovf,
10467    pub virtual_near_plane_distance: f32,
10468    pub virtual_far_plane_distance: f32,
10469    pub image_sensor_pixel_resolution: Extent2Di,
10470}
10471#[repr(C)]
10472#[derive(Copy, Clone, Debug, PartialEq)]
10473#[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)"]
10474pub struct ExternalCameraExtrinsicsOCULUS {
10475    pub last_change_time: Time,
10476    pub camera_status_flags: ExternalCameraStatusFlagsOCULUS,
10477    pub attached_to_device: ExternalCameraAttachedToDeviceOCULUS,
10478    pub relative_pose: Posef,
10479}
10480#[repr(C)]
10481#[derive(Copy, Clone, Debug)]
10482#[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)"]
10483pub struct ExternalCameraOCULUS {
10484    pub ty: StructureType,
10485    pub next: *const c_void,
10486    pub name: [c_char; MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS],
10487    pub intrinsics: ExternalCameraIntrinsicsOCULUS,
10488    pub extrinsics: ExternalCameraExtrinsicsOCULUS,
10489}
10490impl ExternalCameraOCULUS {
10491    pub const TYPE: StructureType = StructureType::EXTERNAL_CAMERA_OCULUS;
10492}
10493#[repr(C)]
10494#[derive(Copy, Clone, Debug)]
10495#[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)"]
10496pub struct PerformanceMetricsStateMETA {
10497    pub ty: StructureType,
10498    pub next: *const c_void,
10499    pub enabled: Bool32,
10500}
10501impl PerformanceMetricsStateMETA {
10502    pub const TYPE: StructureType = StructureType::PERFORMANCE_METRICS_STATE_META;
10503}
10504#[repr(C)]
10505#[derive(Copy, Clone, Debug)]
10506#[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)"]
10507pub struct PerformanceMetricsCounterMETA {
10508    pub ty: StructureType,
10509    pub next: *const c_void,
10510    pub counter_flags: PerformanceMetricsCounterFlagsMETA,
10511    pub counter_unit: PerformanceMetricsCounterUnitMETA,
10512    pub uint_value: u32,
10513    pub float_value: f32,
10514}
10515impl PerformanceMetricsCounterMETA {
10516    pub const TYPE: StructureType = StructureType::PERFORMANCE_METRICS_COUNTER_META;
10517}
10518#[repr(C)]
10519#[derive(Copy, Clone, Debug)]
10520#[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)"]
10521pub struct PassthroughPreferencesMETA {
10522    pub ty: StructureType,
10523    pub next: *const c_void,
10524    pub flags: PassthroughPreferenceFlagsMETA,
10525}
10526impl PassthroughPreferencesMETA {
10527    pub const TYPE: StructureType = StructureType::PASSTHROUGH_PREFERENCES_META;
10528}
10529#[repr(C)]
10530#[derive(Copy, Clone, Debug)]
10531#[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)"]
10532pub struct SystemHeadsetIdPropertiesMETA {
10533    pub ty: StructureType,
10534    pub next: *mut c_void,
10535    pub id: UuidEXT,
10536}
10537impl SystemHeadsetIdPropertiesMETA {
10538    pub const TYPE: StructureType = StructureType::SYSTEM_HEADSET_ID_PROPERTIES_META;
10539    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10540    #[inline]
10541    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10542        let mut x = MaybeUninit::<Self>::uninit();
10543        unsafe {
10544            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10545                ty: Self::TYPE,
10546                next,
10547            });
10548        }
10549        x
10550    }
10551}
10552#[repr(C)]
10553#[derive(Copy, Clone, Debug)]
10554#[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)"]
10555pub struct PassthroughColorLutDataMETA {
10556    pub buffer_size: u32,
10557    pub buffer: *const u8,
10558}
10559#[repr(C)]
10560#[derive(Copy, Clone, Debug)]
10561#[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)"]
10562pub struct PassthroughColorLutCreateInfoMETA {
10563    pub ty: StructureType,
10564    pub next: *const c_void,
10565    pub channels: PassthroughColorLutChannelsMETA,
10566    pub resolution: u32,
10567    pub data: PassthroughColorLutDataMETA,
10568}
10569impl PassthroughColorLutCreateInfoMETA {
10570    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_LUT_CREATE_INFO_META;
10571}
10572#[repr(C)]
10573#[derive(Copy, Clone, Debug)]
10574#[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)"]
10575pub struct PassthroughColorLutUpdateInfoMETA {
10576    pub ty: StructureType,
10577    pub next: *const c_void,
10578    pub data: PassthroughColorLutDataMETA,
10579}
10580impl PassthroughColorLutUpdateInfoMETA {
10581    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META;
10582}
10583#[repr(C)]
10584#[derive(Copy, Clone, Debug)]
10585#[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)"]
10586pub struct PassthroughColorMapLutMETA {
10587    pub ty: StructureType,
10588    pub next: *const c_void,
10589    pub color_lut: PassthroughColorLutMETA,
10590    pub weight: f32,
10591}
10592impl PassthroughColorMapLutMETA {
10593    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_LUT_META;
10594}
10595#[repr(C)]
10596#[derive(Copy, Clone, Debug)]
10597#[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)"]
10598pub struct PassthroughColorMapInterpolatedLutMETA {
10599    pub ty: StructureType,
10600    pub next: *const c_void,
10601    pub source_color_lut: PassthroughColorLutMETA,
10602    pub target_color_lut: PassthroughColorLutMETA,
10603    pub weight: f32,
10604}
10605impl PassthroughColorMapInterpolatedLutMETA {
10606    pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META;
10607}
10608#[repr(C)]
10609#[derive(Copy, Clone, Debug)]
10610#[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)"]
10611pub struct SystemPassthroughColorLutPropertiesMETA {
10612    pub ty: StructureType,
10613    pub next: *const c_void,
10614    pub max_color_lut_resolution: u32,
10615}
10616impl SystemPassthroughColorLutPropertiesMETA {
10617    pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META;
10618}
10619#[repr(C)]
10620#[derive(Copy, Clone, Debug)]
10621#[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)"]
10622pub struct FoveationApplyInfoHTC {
10623    pub ty: StructureType,
10624    pub next: *const c_void,
10625    pub mode: FoveationModeHTC,
10626    pub sub_image_count: u32,
10627    pub sub_images: *mut SwapchainSubImage,
10628}
10629impl FoveationApplyInfoHTC {
10630    pub const TYPE: StructureType = StructureType::FOVEATION_APPLY_INFO_HTC;
10631}
10632#[repr(C)]
10633#[derive(Copy, Clone, Debug, PartialEq)]
10634#[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)"]
10635pub struct FoveationConfigurationHTC {
10636    pub level: FoveationLevelHTC,
10637    pub clear_fov_degree: f32,
10638    pub focal_center_offset: Vector2f,
10639}
10640#[repr(C)]
10641#[derive(Copy, Clone, Debug)]
10642#[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)"]
10643pub struct FoveationDynamicModeInfoHTC {
10644    pub ty: StructureType,
10645    pub next: *const c_void,
10646    pub dynamic_flags: FoveationDynamicFlagsHTC,
10647}
10648impl FoveationDynamicModeInfoHTC {
10649    pub const TYPE: StructureType = StructureType::FOVEATION_DYNAMIC_MODE_INFO_HTC;
10650}
10651#[repr(C)]
10652#[derive(Copy, Clone, Debug)]
10653#[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)"]
10654pub struct FoveationCustomModeInfoHTC {
10655    pub ty: StructureType,
10656    pub next: *const c_void,
10657    pub config_count: u32,
10658    pub configs: *const FoveationConfigurationHTC,
10659}
10660impl FoveationCustomModeInfoHTC {
10661    pub const TYPE: StructureType = StructureType::FOVEATION_CUSTOM_MODE_INFO_HTC;
10662}
10663#[repr(C)]
10664#[derive(Copy, Clone, Debug)]
10665#[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)"]
10666pub struct ActiveActionSetPrioritiesEXT {
10667    pub ty: StructureType,
10668    pub next: *const c_void,
10669    pub action_set_priority_count: u32,
10670    pub action_set_priorities: *const ActiveActionSetPriorityEXT,
10671}
10672impl ActiveActionSetPrioritiesEXT {
10673    pub const TYPE: StructureType = StructureType::ACTIVE_ACTION_SET_PRIORITIES_EXT;
10674}
10675#[repr(C)]
10676#[derive(Copy, Clone, Debug)]
10677#[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)"]
10678pub struct ActiveActionSetPriorityEXT {
10679    pub action_set: ActionSet,
10680    pub priority_override: u32,
10681}
10682#[repr(C)]
10683#[derive(Copy, Clone, Debug)]
10684#[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)"]
10685pub struct CompositionLayerDepthTestFB {
10686    pub ty: StructureType,
10687    pub next: *const c_void,
10688    pub depth_mask: Bool32,
10689    pub compare_op: CompareOpFB,
10690}
10691impl CompositionLayerDepthTestFB {
10692    pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_TEST_FB;
10693}
10694#[repr(C)]
10695#[derive(Copy, Clone, Debug)]
10696#[doc = "See [XrCoordinateSpaceCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCoordinateSpaceCreateInfoML)"]
10697pub struct CoordinateSpaceCreateInfoML {
10698    pub ty: StructureType,
10699    pub next: *const c_void,
10700    pub cfuid: MLCoordinateFrameUID,
10701    pub pose_in_coordinate_space: Posef,
10702}
10703impl CoordinateSpaceCreateInfoML {
10704    pub const TYPE: StructureType = StructureType::COORDINATE_SPACE_CREATE_INFO_ML;
10705}
10706#[repr(C)]
10707#[derive(Copy, Clone, Debug)]
10708#[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)"]
10709pub struct FrameEndInfoML {
10710    pub ty: StructureType,
10711    pub next: *const c_void,
10712    pub focus_distance: f32,
10713    pub flags: FrameEndInfoFlagsML,
10714}
10715impl FrameEndInfoML {
10716    pub const TYPE: StructureType = StructureType::FRAME_END_INFO_ML;
10717}
10718#[repr(C)]
10719#[derive(Copy, Clone, Debug)]
10720#[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)"]
10721pub struct HapticAmplitudeEnvelopeVibrationFB {
10722    pub ty: StructureType,
10723    pub next: *const c_void,
10724    pub duration: Duration,
10725    pub amplitude_count: u32,
10726    pub amplitudes: *const f32,
10727}
10728impl HapticAmplitudeEnvelopeVibrationFB {
10729    pub const TYPE: StructureType = StructureType::HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB;
10730}
10731#[repr(C)]
10732#[derive(Copy, Clone, Debug)]
10733#[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)"]
10734pub struct HapticPcmVibrationFB {
10735    pub ty: StructureType,
10736    pub next: *const c_void,
10737    pub buffer_size: u32,
10738    pub buffer: *const f32,
10739    pub sample_rate: f32,
10740    pub append: Bool32,
10741    pub samples_consumed: *mut u32,
10742}
10743impl HapticPcmVibrationFB {
10744    pub const TYPE: StructureType = StructureType::HAPTIC_PCM_VIBRATION_FB;
10745}
10746#[repr(C)]
10747#[derive(Copy, Clone, Debug)]
10748#[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)"]
10749pub struct DevicePcmSampleRateStateFB {
10750    pub ty: StructureType,
10751    pub next: *mut c_void,
10752    pub sample_rate: f32,
10753}
10754impl DevicePcmSampleRateStateFB {
10755    pub const TYPE: StructureType = StructureType::DEVICE_PCM_SAMPLE_RATE_STATE_FB;
10756    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10757    #[inline]
10758    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10759        let mut x = MaybeUninit::<Self>::uninit();
10760        unsafe {
10761            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10762                ty: Self::TYPE,
10763                next,
10764            });
10765        }
10766        x
10767    }
10768}
10769pub type DevicePcmSampleRateGetInfoFB = DevicePcmSampleRateStateFB;
10770#[repr(C)]
10771#[derive(Copy, Clone, Debug)]
10772#[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)"]
10773pub struct SpaceUserCreateInfoFB {
10774    pub ty: StructureType,
10775    pub next: *const c_void,
10776    pub user_id: SpaceUserIdFB,
10777}
10778impl SpaceUserCreateInfoFB {
10779    pub const TYPE: StructureType = StructureType::SPACE_USER_CREATE_INFO_FB;
10780}
10781#[repr(C)]
10782#[derive(Copy, Clone, Debug)]
10783#[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)"]
10784pub struct SystemForceFeedbackCurlPropertiesMNDX {
10785    pub ty: StructureType,
10786    pub next: *mut c_void,
10787    pub supports_force_feedback_curl: Bool32,
10788}
10789impl SystemForceFeedbackCurlPropertiesMNDX {
10790    pub const TYPE: StructureType = StructureType::SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX;
10791    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10792    #[inline]
10793    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10794        let mut x = MaybeUninit::<Self>::uninit();
10795        unsafe {
10796            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10797                ty: Self::TYPE,
10798                next,
10799            });
10800        }
10801        x
10802    }
10803}
10804#[repr(C)]
10805#[derive(Copy, Clone, Debug)]
10806#[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)"]
10807pub struct ForceFeedbackCurlApplyLocationsMNDX {
10808    pub ty: StructureType,
10809    pub next: *const c_void,
10810    pub location_count: u32,
10811    pub locations: *mut ForceFeedbackCurlApplyLocationMNDX,
10812}
10813impl ForceFeedbackCurlApplyLocationsMNDX {
10814    pub const TYPE: StructureType = StructureType::FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX;
10815}
10816#[repr(C)]
10817#[derive(Copy, Clone, Debug, PartialEq)]
10818#[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)"]
10819pub struct ForceFeedbackCurlApplyLocationMNDX {
10820    pub location: ForceFeedbackCurlLocationMNDX,
10821    pub value: f32,
10822}
10823#[repr(C)]
10824#[derive(Copy, Clone, Debug)]
10825#[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)"]
10826pub struct SystemPlaneDetectionPropertiesEXT {
10827    pub ty: StructureType,
10828    pub next: *mut c_void,
10829    pub supported_features: PlaneDetectionCapabilityFlagsEXT,
10830}
10831impl SystemPlaneDetectionPropertiesEXT {
10832    pub const TYPE: StructureType = StructureType::SYSTEM_PLANE_DETECTION_PROPERTIES_EXT;
10833    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10834    #[inline]
10835    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10836        let mut x = MaybeUninit::<Self>::uninit();
10837        unsafe {
10838            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10839                ty: Self::TYPE,
10840                next,
10841            });
10842        }
10843        x
10844    }
10845}
10846#[repr(C)]
10847#[derive(Copy, Clone, Debug)]
10848#[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)"]
10849pub struct PlaneDetectorCreateInfoEXT {
10850    pub ty: StructureType,
10851    pub next: *const c_void,
10852    pub flags: PlaneDetectorFlagsEXT,
10853}
10854impl PlaneDetectorCreateInfoEXT {
10855    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_CREATE_INFO_EXT;
10856}
10857#[repr(C)]
10858#[derive(Copy, Clone, Debug)]
10859#[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)"]
10860pub struct PlaneDetectorBeginInfoEXT {
10861    pub ty: StructureType,
10862    pub next: *const c_void,
10863    pub base_space: Space,
10864    pub time: Time,
10865    pub orientation_count: u32,
10866    pub orientations: *const PlaneDetectorOrientationEXT,
10867    pub semantic_type_count: u32,
10868    pub semantic_types: *const PlaneDetectorSemanticTypeEXT,
10869    pub max_planes: u32,
10870    pub min_area: f32,
10871    pub bounding_box_pose: Posef,
10872    pub bounding_box_extent: Extent3DfEXT,
10873}
10874impl PlaneDetectorBeginInfoEXT {
10875    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_BEGIN_INFO_EXT;
10876}
10877#[repr(C)]
10878#[derive(Copy, Clone, Debug)]
10879#[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)"]
10880pub struct PlaneDetectorGetInfoEXT {
10881    pub ty: StructureType,
10882    pub next: *const c_void,
10883    pub base_space: Space,
10884    pub time: Time,
10885}
10886impl PlaneDetectorGetInfoEXT {
10887    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_GET_INFO_EXT;
10888}
10889#[repr(C)]
10890#[derive(Copy, Clone, Debug)]
10891#[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)"]
10892pub struct PlaneDetectorLocationsEXT {
10893    pub ty: StructureType,
10894    pub next: *mut c_void,
10895    pub plane_location_capacity_input: u32,
10896    pub plane_location_count_output: u32,
10897    pub plane_locations: *mut PlaneDetectorLocationEXT,
10898}
10899impl PlaneDetectorLocationsEXT {
10900    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_LOCATIONS_EXT;
10901    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10902    #[inline]
10903    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10904        let mut x = MaybeUninit::<Self>::uninit();
10905        unsafe {
10906            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10907                ty: Self::TYPE,
10908                next,
10909            });
10910        }
10911        x
10912    }
10913}
10914#[repr(C)]
10915#[derive(Copy, Clone, Debug)]
10916#[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)"]
10917pub struct PlaneDetectorLocationEXT {
10918    pub ty: StructureType,
10919    pub next: *mut c_void,
10920    pub plane_id: u64,
10921    pub location_flags: SpaceLocationFlags,
10922    pub pose: Posef,
10923    pub extents: Extent2Df,
10924    pub orientation: PlaneDetectorOrientationEXT,
10925    pub semantic_type: PlaneDetectorSemanticTypeEXT,
10926    pub polygon_buffer_count: u32,
10927}
10928impl PlaneDetectorLocationEXT {
10929    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_LOCATION_EXT;
10930    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10931    #[inline]
10932    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10933        let mut x = MaybeUninit::<Self>::uninit();
10934        unsafe {
10935            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10936                ty: Self::TYPE,
10937                next,
10938            });
10939        }
10940        x
10941    }
10942}
10943#[repr(C)]
10944#[derive(Copy, Clone, Debug)]
10945#[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)"]
10946pub struct PlaneDetectorPolygonBufferEXT {
10947    pub ty: StructureType,
10948    pub next: *mut c_void,
10949    pub vertex_capacity_input: u32,
10950    pub vertex_count_output: u32,
10951    pub vertices: *mut Vector2f,
10952}
10953impl PlaneDetectorPolygonBufferEXT {
10954    pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_POLYGON_BUFFER_EXT;
10955    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10956    #[inline]
10957    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10958        let mut x = MaybeUninit::<Self>::uninit();
10959        unsafe {
10960            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10961                ty: Self::TYPE,
10962                next,
10963            });
10964        }
10965        x
10966    }
10967}
10968#[repr(C)]
10969#[derive(Copy, Clone, Debug)]
10970#[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)"]
10971pub struct SystemVirtualKeyboardPropertiesMETA {
10972    pub ty: StructureType,
10973    pub next: *mut c_void,
10974    pub supports_virtual_keyboard: Bool32,
10975}
10976impl SystemVirtualKeyboardPropertiesMETA {
10977    pub const TYPE: StructureType = StructureType::SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META;
10978    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10979    #[inline]
10980    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10981        let mut x = MaybeUninit::<Self>::uninit();
10982        unsafe {
10983            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10984                ty: Self::TYPE,
10985                next,
10986            });
10987        }
10988        x
10989    }
10990}
10991#[repr(C)]
10992#[derive(Copy, Clone, Debug)]
10993#[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)"]
10994pub struct VirtualKeyboardCreateInfoMETA {
10995    pub ty: StructureType,
10996    pub next: *const c_void,
10997}
10998impl VirtualKeyboardCreateInfoMETA {
10999    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_CREATE_INFO_META;
11000}
11001#[repr(C)]
11002#[derive(Copy, Clone, Debug)]
11003#[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)"]
11004pub struct VirtualKeyboardSpaceCreateInfoMETA {
11005    pub ty: StructureType,
11006    pub next: *const c_void,
11007    pub location_type: VirtualKeyboardLocationTypeMETA,
11008    pub space: Space,
11009    pub pose_in_space: Posef,
11010}
11011impl VirtualKeyboardSpaceCreateInfoMETA {
11012    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META;
11013}
11014#[repr(C)]
11015#[derive(Copy, Clone, Debug)]
11016#[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)"]
11017pub struct VirtualKeyboardLocationInfoMETA {
11018    pub ty: StructureType,
11019    pub next: *const c_void,
11020    pub location_type: VirtualKeyboardLocationTypeMETA,
11021    pub space: Space,
11022    pub pose_in_space: Posef,
11023    pub scale: f32,
11024}
11025impl VirtualKeyboardLocationInfoMETA {
11026    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_LOCATION_INFO_META;
11027}
11028#[repr(C)]
11029#[derive(Copy, Clone, Debug)]
11030#[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)"]
11031pub struct VirtualKeyboardModelVisibilitySetInfoMETA {
11032    pub ty: StructureType,
11033    pub next: *const c_void,
11034    pub visible: Bool32,
11035}
11036impl VirtualKeyboardModelVisibilitySetInfoMETA {
11037    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META;
11038}
11039#[repr(C)]
11040#[derive(Copy, Clone, Debug)]
11041#[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)"]
11042pub struct VirtualKeyboardAnimationStateMETA {
11043    pub ty: StructureType,
11044    pub next: *mut c_void,
11045    pub animation_index: i32,
11046    pub fraction: f32,
11047}
11048impl VirtualKeyboardAnimationStateMETA {
11049    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_ANIMATION_STATE_META;
11050    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11051    #[inline]
11052    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11053        let mut x = MaybeUninit::<Self>::uninit();
11054        unsafe {
11055            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11056                ty: Self::TYPE,
11057                next,
11058            });
11059        }
11060        x
11061    }
11062}
11063#[repr(C)]
11064#[derive(Copy, Clone, Debug)]
11065#[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)"]
11066pub struct VirtualKeyboardModelAnimationStatesMETA {
11067    pub ty: StructureType,
11068    pub next: *mut c_void,
11069    pub state_capacity_input: u32,
11070    pub state_count_output: u32,
11071    pub states: *mut VirtualKeyboardAnimationStateMETA,
11072}
11073impl VirtualKeyboardModelAnimationStatesMETA {
11074    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META;
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 [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)"]
11091pub struct VirtualKeyboardTextureDataMETA {
11092    pub ty: StructureType,
11093    pub next: *mut c_void,
11094    pub texture_width: u32,
11095    pub texture_height: u32,
11096    pub buffer_capacity_input: u32,
11097    pub buffer_count_output: u32,
11098    pub buffer: *mut u8,
11099}
11100impl VirtualKeyboardTextureDataMETA {
11101    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_TEXTURE_DATA_META;
11102    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11103    #[inline]
11104    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11105        let mut x = MaybeUninit::<Self>::uninit();
11106        unsafe {
11107            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11108                ty: Self::TYPE,
11109                next,
11110            });
11111        }
11112        x
11113    }
11114}
11115#[repr(C)]
11116#[derive(Copy, Clone, Debug)]
11117#[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)"]
11118pub struct VirtualKeyboardInputInfoMETA {
11119    pub ty: StructureType,
11120    pub next: *const c_void,
11121    pub input_source: VirtualKeyboardInputSourceMETA,
11122    pub input_space: Space,
11123    pub input_pose_in_space: Posef,
11124    pub input_state: VirtualKeyboardInputStateFlagsMETA,
11125}
11126impl VirtualKeyboardInputInfoMETA {
11127    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_INPUT_INFO_META;
11128}
11129#[repr(C)]
11130#[derive(Copy, Clone, Debug)]
11131#[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)"]
11132pub struct VirtualKeyboardTextContextChangeInfoMETA {
11133    pub ty: StructureType,
11134    pub next: *const c_void,
11135    pub text_context: *const c_char,
11136}
11137impl VirtualKeyboardTextContextChangeInfoMETA {
11138    pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META;
11139}
11140#[repr(C)]
11141#[derive(Copy, Clone, Debug)]
11142#[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)"]
11143pub struct EventDataVirtualKeyboardCommitTextMETA {
11144    pub ty: StructureType,
11145    pub next: *const c_void,
11146    pub keyboard: VirtualKeyboardMETA,
11147    pub text: [c_char; MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META],
11148}
11149impl EventDataVirtualKeyboardCommitTextMETA {
11150    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META;
11151}
11152#[repr(C)]
11153#[derive(Copy, Clone, Debug)]
11154#[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)"]
11155pub struct EventDataVirtualKeyboardBackspaceMETA {
11156    pub ty: StructureType,
11157    pub next: *const c_void,
11158    pub keyboard: VirtualKeyboardMETA,
11159}
11160impl EventDataVirtualKeyboardBackspaceMETA {
11161    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META;
11162}
11163#[repr(C)]
11164#[derive(Copy, Clone, Debug)]
11165#[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)"]
11166pub struct EventDataVirtualKeyboardEnterMETA {
11167    pub ty: StructureType,
11168    pub next: *const c_void,
11169    pub keyboard: VirtualKeyboardMETA,
11170}
11171impl EventDataVirtualKeyboardEnterMETA {
11172    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META;
11173}
11174#[repr(C)]
11175#[derive(Copy, Clone, Debug)]
11176#[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)"]
11177pub struct EventDataVirtualKeyboardShownMETA {
11178    pub ty: StructureType,
11179    pub next: *const c_void,
11180    pub keyboard: VirtualKeyboardMETA,
11181}
11182impl EventDataVirtualKeyboardShownMETA {
11183    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META;
11184}
11185#[repr(C)]
11186#[derive(Copy, Clone, Debug)]
11187#[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)"]
11188pub struct EventDataVirtualKeyboardHiddenMETA {
11189    pub ty: StructureType,
11190    pub next: *const c_void,
11191    pub keyboard: VirtualKeyboardMETA,
11192}
11193impl EventDataVirtualKeyboardHiddenMETA {
11194    pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META;
11195}
11196#[repr(C)]
11197#[derive(Copy, Clone, Debug)]
11198#[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)"]
11199pub struct UserCalibrationEnableEventsInfoML {
11200    pub ty: StructureType,
11201    pub next: *const c_void,
11202    pub enabled: Bool32,
11203}
11204impl UserCalibrationEnableEventsInfoML {
11205    pub const TYPE: StructureType = StructureType::USER_CALIBRATION_ENABLE_EVENTS_INFO_ML;
11206}
11207#[repr(C)]
11208#[derive(Copy, Clone, Debug)]
11209#[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)"]
11210pub struct EventDataHeadsetFitChangedML {
11211    pub ty: StructureType,
11212    pub next: *const c_void,
11213    pub status: HeadsetFitStatusML,
11214    pub time: Time,
11215}
11216impl EventDataHeadsetFitChangedML {
11217    pub const TYPE: StructureType = StructureType::EVENT_DATA_HEADSET_FIT_CHANGED_ML;
11218}
11219#[repr(C)]
11220#[derive(Copy, Clone, Debug)]
11221#[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)"]
11222pub struct EventDataEyeCalibrationChangedML {
11223    pub ty: StructureType,
11224    pub next: *const c_void,
11225    pub status: EyeCalibrationStatusML,
11226}
11227impl EventDataEyeCalibrationChangedML {
11228    pub const TYPE: StructureType = StructureType::EVENT_DATA_EYE_CALIBRATION_CHANGED_ML;
11229}
11230#[repr(C)]
11231#[derive(Copy, Clone, Debug)]
11232#[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)"]
11233pub struct LocalizationMapML {
11234    pub ty: StructureType,
11235    pub next: *mut c_void,
11236    pub name: [c_char; MAX_LOCALIZATION_MAP_NAME_LENGTH_ML],
11237    pub map_uuid: UuidEXT,
11238    pub map_type: LocalizationMapTypeML,
11239}
11240impl LocalizationMapML {
11241    pub const TYPE: StructureType = StructureType::LOCALIZATION_MAP_ML;
11242    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11243    #[inline]
11244    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11245        let mut x = MaybeUninit::<Self>::uninit();
11246        unsafe {
11247            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11248                ty: Self::TYPE,
11249                next,
11250            });
11251        }
11252        x
11253    }
11254}
11255#[repr(C)]
11256#[derive(Copy, Clone, Debug)]
11257#[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)"]
11258pub struct LocalizationEnableEventsInfoML {
11259    pub ty: StructureType,
11260    pub next: *const c_void,
11261    pub enabled: Bool32,
11262}
11263impl LocalizationEnableEventsInfoML {
11264    pub const TYPE: StructureType = StructureType::LOCALIZATION_ENABLE_EVENTS_INFO_ML;
11265}
11266#[repr(C)]
11267#[derive(Copy, Clone, Debug)]
11268#[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)"]
11269pub struct EventDataLocalizationChangedML {
11270    pub ty: StructureType,
11271    pub next: *const c_void,
11272    pub session: Session,
11273    pub state: LocalizationMapStateML,
11274    pub map: LocalizationMapML,
11275    pub confidence: LocalizationMapConfidenceML,
11276    pub error_flags: LocalizationMapErrorFlagsML,
11277}
11278impl EventDataLocalizationChangedML {
11279    pub const TYPE: StructureType = StructureType::EVENT_DATA_LOCALIZATION_CHANGED_ML;
11280}
11281#[repr(C)]
11282#[derive(Copy, Clone, Debug)]
11283#[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)"]
11284pub struct LocalizationMapQueryInfoBaseHeaderML {
11285    pub ty: StructureType,
11286    pub next: *const c_void,
11287}
11288#[repr(C)]
11289#[derive(Copy, Clone, Debug)]
11290#[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)"]
11291pub struct MapLocalizationRequestInfoML {
11292    pub ty: StructureType,
11293    pub next: *const c_void,
11294    pub map_uuid: UuidEXT,
11295}
11296impl MapLocalizationRequestInfoML {
11297    pub const TYPE: StructureType = StructureType::MAP_LOCALIZATION_REQUEST_INFO_ML;
11298}
11299#[repr(C)]
11300#[derive(Copy, Clone, Debug)]
11301#[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)"]
11302pub struct LocalizationMapImportInfoML {
11303    pub ty: StructureType,
11304    pub next: *const c_void,
11305    pub size: u32,
11306    pub data: *mut c_char,
11307}
11308impl LocalizationMapImportInfoML {
11309    pub const TYPE: StructureType = StructureType::LOCALIZATION_MAP_IMPORT_INFO_ML;
11310}
11311#[repr(C)]
11312#[derive(Copy, Clone, Debug)]
11313#[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)"]
11314pub struct SystemMarkerUnderstandingPropertiesML {
11315    pub ty: StructureType,
11316    pub next: *mut c_void,
11317    pub supports_marker_understanding: Bool32,
11318}
11319impl SystemMarkerUnderstandingPropertiesML {
11320    pub const TYPE: StructureType = StructureType::SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML;
11321    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11322    #[inline]
11323    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11324        let mut x = MaybeUninit::<Self>::uninit();
11325        unsafe {
11326            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11327                ty: Self::TYPE,
11328                next,
11329            });
11330        }
11331        x
11332    }
11333}
11334#[repr(C)]
11335#[derive(Copy, Clone, Debug)]
11336#[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)"]
11337pub struct MarkerDetectorCreateInfoML {
11338    pub ty: StructureType,
11339    pub next: *const c_void,
11340    pub profile: MarkerDetectorProfileML,
11341    pub marker_type: MarkerTypeML,
11342}
11343impl MarkerDetectorCreateInfoML {
11344    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_CREATE_INFO_ML;
11345}
11346#[repr(C)]
11347#[derive(Copy, Clone, Debug)]
11348#[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)"]
11349pub struct MarkerDetectorArucoInfoML {
11350    pub ty: StructureType,
11351    pub next: *const c_void,
11352    pub aruco_dict: MarkerArucoDictML,
11353}
11354impl MarkerDetectorArucoInfoML {
11355    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_ARUCO_INFO_ML;
11356}
11357#[repr(C)]
11358#[derive(Copy, Clone, Debug)]
11359#[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)"]
11360pub struct MarkerDetectorSizeInfoML {
11361    pub ty: StructureType,
11362    pub next: *const c_void,
11363    pub marker_length: f32,
11364}
11365impl MarkerDetectorSizeInfoML {
11366    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_SIZE_INFO_ML;
11367}
11368#[repr(C)]
11369#[derive(Copy, Clone, Debug)]
11370#[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)"]
11371pub struct MarkerDetectorAprilTagInfoML {
11372    pub ty: StructureType,
11373    pub next: *const c_void,
11374    pub april_tag_dict: MarkerAprilTagDictML,
11375}
11376impl MarkerDetectorAprilTagInfoML {
11377    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_APRIL_TAG_INFO_ML;
11378}
11379#[repr(C)]
11380#[derive(Copy, Clone, Debug)]
11381#[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)"]
11382pub struct MarkerDetectorCustomProfileInfoML {
11383    pub ty: StructureType,
11384    pub next: *const c_void,
11385    pub fps_hint: MarkerDetectorFpsML,
11386    pub resolution_hint: MarkerDetectorResolutionML,
11387    pub camera_hint: MarkerDetectorCameraML,
11388    pub corner_refine_method: MarkerDetectorCornerRefineMethodML,
11389    pub use_edge_refinement: Bool32,
11390    pub full_analysis_interval_hint: MarkerDetectorFullAnalysisIntervalML,
11391}
11392impl MarkerDetectorCustomProfileInfoML {
11393    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML;
11394}
11395#[repr(C)]
11396#[derive(Copy, Clone, Debug)]
11397#[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)"]
11398pub struct MarkerDetectorSnapshotInfoML {
11399    pub ty: StructureType,
11400    pub next: *const c_void,
11401}
11402impl MarkerDetectorSnapshotInfoML {
11403    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_SNAPSHOT_INFO_ML;
11404}
11405#[repr(C)]
11406#[derive(Copy, Clone, Debug)]
11407#[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)"]
11408pub struct MarkerDetectorStateML {
11409    pub ty: StructureType,
11410    pub next: *mut c_void,
11411    pub state: MarkerDetectorStatusML,
11412}
11413impl MarkerDetectorStateML {
11414    pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_STATE_ML;
11415    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11416    #[inline]
11417    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11418        let mut x = MaybeUninit::<Self>::uninit();
11419        unsafe {
11420            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11421                ty: Self::TYPE,
11422                next,
11423            });
11424        }
11425        x
11426    }
11427}
11428#[repr(C)]
11429#[derive(Copy, Clone, Debug)]
11430#[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)"]
11431pub struct MarkerSpaceCreateInfoML {
11432    pub ty: StructureType,
11433    pub next: *const c_void,
11434    pub marker_detector: MarkerDetectorML,
11435    pub marker: MarkerML,
11436    pub pose_in_marker_space: Posef,
11437}
11438impl MarkerSpaceCreateInfoML {
11439    pub const TYPE: StructureType = StructureType::MARKER_SPACE_CREATE_INFO_ML;
11440}
11441#[repr(C)]
11442#[derive(Copy, Clone, Debug, Default, PartialEq)]
11443#[doc = "See [XrColor3f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColor3f)"]
11444pub struct Color3f {
11445    pub r: f32,
11446    pub g: f32,
11447    pub b: f32,
11448}
11449pub type Color3fKHR = Color3f;
11450#[repr(C)]
11451#[derive(Copy, Clone, Debug, Default, PartialEq)]
11452#[doc = "See [XrExtent3Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent3Df)"]
11453pub struct Extent3Df {
11454    pub width: f32,
11455    pub height: f32,
11456    pub depth: f32,
11457}
11458pub type Extent3DfEXT = Extent3Df;
11459pub type Extent3DfFB = Extent3Df;
11460pub type Extent3DfKHR = Extent3Df;
11461#[repr(C)]
11462#[derive(Copy, Clone, Debug, Default, PartialEq)]
11463#[doc = "See [XrSpheref](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpheref)"]
11464pub struct Spheref {
11465    pub center: Posef,
11466    pub radius: f32,
11467}
11468pub type SpherefKHR = Spheref;
11469#[repr(C)]
11470#[derive(Copy, Clone, Debug, Default, PartialEq)]
11471#[doc = "See [XrBoxf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoxf)"]
11472pub struct Boxf {
11473    pub center: Posef,
11474    pub extents: Extent3Df,
11475}
11476pub type BoxfKHR = Boxf;
11477#[repr(C)]
11478#[derive(Copy, Clone, Debug, Default, PartialEq)]
11479#[doc = "See [XrFrustumf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrustumf)"]
11480pub struct Frustumf {
11481    pub pose: Posef,
11482    pub fov: Fovf,
11483    pub near_z: f32,
11484    pub far_z: f32,
11485}
11486pub type FrustumfKHR = Frustumf;
11487#[repr(C)]
11488#[derive(Copy, Clone, Debug, Default, PartialEq)]
11489#[doc = "See [XrUuid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrUuid)"]
11490pub struct Uuid {
11491    pub data: [u8; UUID_SIZE],
11492}
11493pub type UuidEXT = Uuid;
11494#[repr(C)]
11495#[derive(Copy, Clone, Debug)]
11496#[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)"]
11497pub struct RecommendedLayerResolutionMETA {
11498    pub ty: StructureType,
11499    pub next: *mut c_void,
11500    pub recommended_image_dimensions: Extent2Di,
11501    pub is_valid: Bool32,
11502}
11503impl RecommendedLayerResolutionMETA {
11504    pub const TYPE: StructureType = StructureType::RECOMMENDED_LAYER_RESOLUTION_META;
11505    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11506    #[inline]
11507    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11508        let mut x = MaybeUninit::<Self>::uninit();
11509        unsafe {
11510            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11511                ty: Self::TYPE,
11512                next,
11513            });
11514        }
11515        x
11516    }
11517}
11518#[repr(C)]
11519#[derive(Copy, Clone, Debug)]
11520#[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)"]
11521pub struct RecommendedLayerResolutionGetInfoMETA {
11522    pub ty: StructureType,
11523    pub next: *const c_void,
11524    pub layer: *const CompositionLayerBaseHeader,
11525    pub predicted_display_time: Time,
11526}
11527impl RecommendedLayerResolutionGetInfoMETA {
11528    pub const TYPE: StructureType = StructureType::RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META;
11529}
11530#[repr(C)]
11531#[derive(Copy, Clone, Debug)]
11532#[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)"]
11533pub struct SystemUserPresencePropertiesEXT {
11534    pub ty: StructureType,
11535    pub next: *mut c_void,
11536    pub supports_user_presence: Bool32,
11537}
11538impl SystemUserPresencePropertiesEXT {
11539    pub const TYPE: StructureType = StructureType::SYSTEM_USER_PRESENCE_PROPERTIES_EXT;
11540    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11541    #[inline]
11542    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11543        let mut x = MaybeUninit::<Self>::uninit();
11544        unsafe {
11545            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11546                ty: Self::TYPE,
11547                next,
11548            });
11549        }
11550        x
11551    }
11552}
11553#[repr(C)]
11554#[derive(Copy, Clone, Debug)]
11555#[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)"]
11556pub struct EventDataUserPresenceChangedEXT {
11557    pub ty: StructureType,
11558    pub next: *const c_void,
11559    pub session: Session,
11560    pub is_user_present: Bool32,
11561}
11562impl EventDataUserPresenceChangedEXT {
11563    pub const TYPE: StructureType = StructureType::EVENT_DATA_USER_PRESENCE_CHANGED_EXT;
11564}
11565#[repr(C)]
11566#[derive(Copy, Clone, Debug)]
11567#[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)"]
11568pub struct FutureCompletionBaseHeaderEXT {
11569    pub ty: StructureType,
11570    pub next: *mut c_void,
11571    pub future_result: Result,
11572}
11573#[repr(C)]
11574#[derive(Copy, Clone, Debug)]
11575#[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)"]
11576pub struct FutureCompletionEXT {
11577    pub ty: StructureType,
11578    pub next: *mut c_void,
11579    pub future_result: Result,
11580}
11581impl FutureCompletionEXT {
11582    pub const TYPE: StructureType = StructureType::FUTURE_COMPLETION_EXT;
11583    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11584    #[inline]
11585    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11586        let mut x = MaybeUninit::<Self>::uninit();
11587        unsafe {
11588            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11589                ty: Self::TYPE,
11590                next,
11591            });
11592        }
11593        x
11594    }
11595}
11596#[repr(C)]
11597#[derive(Copy, Clone, Debug)]
11598#[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)"]
11599pub struct FutureCancelInfoEXT {
11600    pub ty: StructureType,
11601    pub next: *const c_void,
11602    pub future: FutureEXT,
11603}
11604impl FutureCancelInfoEXT {
11605    pub const TYPE: StructureType = StructureType::FUTURE_CANCEL_INFO_EXT;
11606}
11607#[repr(C)]
11608#[derive(Copy, Clone, Debug)]
11609#[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)"]
11610pub struct FuturePollInfoEXT {
11611    pub ty: StructureType,
11612    pub next: *const c_void,
11613    pub future: FutureEXT,
11614}
11615impl FuturePollInfoEXT {
11616    pub const TYPE: StructureType = StructureType::FUTURE_POLL_INFO_EXT;
11617}
11618#[repr(C)]
11619#[derive(Copy, Clone, Debug)]
11620#[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)"]
11621pub struct FuturePollResultEXT {
11622    pub ty: StructureType,
11623    pub next: *mut c_void,
11624    pub state: FutureStateEXT,
11625}
11626impl FuturePollResultEXT {
11627    pub const TYPE: StructureType = StructureType::FUTURE_POLL_RESULT_EXT;
11628    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11629    #[inline]
11630    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11631        let mut x = MaybeUninit::<Self>::uninit();
11632        unsafe {
11633            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11634                ty: Self::TYPE,
11635                next,
11636            });
11637        }
11638        x
11639    }
11640}
11641#[repr(C)]
11642#[derive(Copy, Clone, Debug)]
11643#[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)"]
11644pub struct EnvironmentDepthProviderCreateInfoMETA {
11645    pub ty: StructureType,
11646    pub next: *const c_void,
11647    pub create_flags: EnvironmentDepthProviderCreateFlagsMETA,
11648}
11649impl EnvironmentDepthProviderCreateInfoMETA {
11650    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META;
11651}
11652#[repr(C)]
11653#[derive(Copy, Clone, Debug)]
11654#[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)"]
11655pub struct EnvironmentDepthSwapchainCreateInfoMETA {
11656    pub ty: StructureType,
11657    pub next: *const c_void,
11658    pub create_flags: EnvironmentDepthSwapchainCreateFlagsMETA,
11659}
11660impl EnvironmentDepthSwapchainCreateInfoMETA {
11661    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META;
11662}
11663#[repr(C)]
11664#[derive(Copy, Clone, Debug)]
11665#[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)"]
11666pub struct EnvironmentDepthSwapchainStateMETA {
11667    pub ty: StructureType,
11668    pub next: *mut c_void,
11669    pub width: u32,
11670    pub height: u32,
11671}
11672impl EnvironmentDepthSwapchainStateMETA {
11673    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META;
11674    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11675    #[inline]
11676    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11677        let mut x = MaybeUninit::<Self>::uninit();
11678        unsafe {
11679            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11680                ty: Self::TYPE,
11681                next,
11682            });
11683        }
11684        x
11685    }
11686}
11687#[repr(C)]
11688#[derive(Copy, Clone, Debug)]
11689#[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)"]
11690pub struct EnvironmentDepthImageAcquireInfoMETA {
11691    pub ty: StructureType,
11692    pub next: *const c_void,
11693    pub space: Space,
11694    pub display_time: Time,
11695}
11696impl EnvironmentDepthImageAcquireInfoMETA {
11697    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META;
11698}
11699#[repr(C)]
11700#[derive(Copy, Clone, Debug)]
11701#[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)"]
11702pub struct EnvironmentDepthImageViewMETA {
11703    pub ty: StructureType,
11704    pub next: *const c_void,
11705    pub fov: Fovf,
11706    pub pose: Posef,
11707}
11708impl EnvironmentDepthImageViewMETA {
11709    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_VIEW_META;
11710}
11711#[repr(C)]
11712#[derive(Copy, Clone, Debug)]
11713#[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)"]
11714pub struct EnvironmentDepthImageMETA {
11715    pub ty: StructureType,
11716    pub next: *const c_void,
11717    pub swapchain_index: u32,
11718    pub near_z: f32,
11719    pub far_z: f32,
11720    pub views: [EnvironmentDepthImageViewMETA; 2usize],
11721}
11722impl EnvironmentDepthImageMETA {
11723    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_META;
11724}
11725#[repr(C)]
11726#[derive(Copy, Clone, Debug)]
11727#[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)"]
11728pub struct EnvironmentDepthHandRemovalSetInfoMETA {
11729    pub ty: StructureType,
11730    pub next: *const c_void,
11731    pub enabled: Bool32,
11732}
11733impl EnvironmentDepthHandRemovalSetInfoMETA {
11734    pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META;
11735}
11736#[repr(C)]
11737#[derive(Copy, Clone, Debug)]
11738#[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)"]
11739pub struct SystemEnvironmentDepthPropertiesMETA {
11740    pub ty: StructureType,
11741    pub next: *mut c_void,
11742    pub supports_environment_depth: Bool32,
11743    pub supports_hand_removal: Bool32,
11744}
11745impl SystemEnvironmentDepthPropertiesMETA {
11746    pub const TYPE: StructureType = StructureType::SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META;
11747    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11748    #[inline]
11749    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11750        let mut x = MaybeUninit::<Self>::uninit();
11751        unsafe {
11752            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11753                ty: Self::TYPE,
11754                next,
11755            });
11756        }
11757        x
11758    }
11759}
11760#[repr(C)]
11761#[derive(Copy, Clone, Debug)]
11762#[doc = "See [XrSpacesLocateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpacesLocateInfo)"]
11763pub struct SpacesLocateInfo {
11764    pub ty: StructureType,
11765    pub next: *const c_void,
11766    pub base_space: Space,
11767    pub time: Time,
11768    pub space_count: u32,
11769    pub spaces: *const Space,
11770}
11771impl SpacesLocateInfo {
11772    pub const TYPE: StructureType = StructureType::SPACES_LOCATE_INFO;
11773}
11774pub type SpacesLocateInfoKHR = SpacesLocateInfo;
11775#[repr(C)]
11776#[derive(Copy, Clone, Debug)]
11777#[doc = "See [XrSpaceLocations](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocations)"]
11778pub struct SpaceLocations {
11779    pub ty: StructureType,
11780    pub next: *mut c_void,
11781    pub location_count: u32,
11782    pub locations: *mut SpaceLocationData,
11783}
11784impl SpaceLocations {
11785    pub const TYPE: StructureType = StructureType::SPACE_LOCATIONS;
11786    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11787    #[inline]
11788    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11789        let mut x = MaybeUninit::<Self>::uninit();
11790        unsafe {
11791            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11792                ty: Self::TYPE,
11793                next,
11794            });
11795        }
11796        x
11797    }
11798}
11799pub type SpaceLocationsKHR = SpaceLocations;
11800#[repr(C)]
11801#[derive(Copy, Clone, Debug, Default, PartialEq)]
11802#[doc = "See [XrSpaceLocationData](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocationData)"]
11803pub struct SpaceLocationData {
11804    pub location_flags: SpaceLocationFlags,
11805    pub pose: Posef,
11806}
11807pub type SpaceLocationDataKHR = SpaceLocationData;
11808#[repr(C)]
11809#[derive(Copy, Clone, Debug)]
11810#[doc = "See [XrSpaceVelocities](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocities)"]
11811pub struct SpaceVelocities {
11812    pub ty: StructureType,
11813    pub next: *mut c_void,
11814    pub velocity_count: u32,
11815    pub velocities: *mut SpaceVelocityData,
11816}
11817impl SpaceVelocities {
11818    pub const TYPE: StructureType = StructureType::SPACE_VELOCITIES;
11819    #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11820    #[inline]
11821    pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11822        let mut x = MaybeUninit::<Self>::uninit();
11823        unsafe {
11824            (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11825                ty: Self::TYPE,
11826                next,
11827            });
11828        }
11829        x
11830    }
11831}
11832pub type SpaceVelocitiesKHR = SpaceVelocities;
11833#[repr(C)]
11834#[derive(Copy, Clone, Debug, Default, PartialEq)]
11835#[doc = "See [XrSpaceVelocityData](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocityData)"]
11836pub struct SpaceVelocityData {
11837    pub velocity_flags: SpaceVelocityFlags,
11838    pub linear_velocity: Vector3f,
11839    pub angular_velocity: Vector3f,
11840}
11841pub type SpaceVelocityDataKHR = SpaceVelocityData;
11842#[doc = r" Function pointer prototypes"]
11843pub mod pfn {
11844    use super::*;
11845    pub use crate::platform::EglGetProcAddressMNDX;
11846    pub type VoidFunction = unsafe extern "system" fn();
11847    pub type DebugUtilsMessengerCallbackEXT = unsafe extern "system" fn(
11848        DebugUtilsMessageSeverityFlagsEXT,
11849        DebugUtilsMessageTypeFlagsEXT,
11850        *const DebugUtilsMessengerCallbackDataEXT,
11851        *mut c_void,
11852    ) -> Bool32;
11853    #[doc = "See [xrNegotiateLoaderRuntimeInterface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrNegotiateLoaderRuntimeInterface)"]
11854    pub type NegotiateLoaderRuntimeInterface = unsafe extern "system" fn(
11855        loader_info: *const NegotiateLoaderInfo,
11856        runtime_request: *mut NegotiateRuntimeRequest,
11857    ) -> Result;
11858    #[doc = "See [xrNegotiateLoaderApiLayerInterface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrNegotiateLoaderApiLayerInterface)"]
11859    pub type NegotiateLoaderApiLayerInterface = unsafe extern "system" fn(
11860        loader_info: *const NegotiateLoaderInfo,
11861        layer_name: *const c_char,
11862        api_layer_request: *mut NegotiateApiLayerRequest,
11863    ) -> Result;
11864    #[doc = "See [xrCreateApiLayerInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateApiLayerInstance)"]
11865    pub type CreateApiLayerInstance = unsafe extern "system" fn(
11866        info: *const InstanceCreateInfo,
11867        layer_info: *const ApiLayerCreateInfo,
11868        instance: *mut Instance,
11869    ) -> Result;
11870    #[doc = "See [xrGetInstanceProcAddr](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInstanceProcAddr)"]
11871    pub type GetInstanceProcAddr = unsafe extern "system" fn(
11872        instance: Instance,
11873        name: *const c_char,
11874        function: *mut Option<pfn::VoidFunction>,
11875    ) -> Result;
11876    #[doc = "See [xrEnumerateApiLayerProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateApiLayerProperties)"]
11877    pub type EnumerateApiLayerProperties = unsafe extern "system" fn(
11878        property_capacity_input: u32,
11879        property_count_output: *mut u32,
11880        properties: *mut ApiLayerProperties,
11881    ) -> Result;
11882    #[doc = "See [xrEnumerateInstanceExtensionProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateInstanceExtensionProperties)"]
11883    pub type EnumerateInstanceExtensionProperties = unsafe extern "system" fn(
11884        layer_name: *const c_char,
11885        property_capacity_input: u32,
11886        property_count_output: *mut u32,
11887        properties: *mut ExtensionProperties,
11888    ) -> Result;
11889    #[doc = "See [xrCreateInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateInstance)"]
11890    pub type CreateInstance = unsafe extern "system" fn(
11891        create_info: *const InstanceCreateInfo,
11892        instance: *mut Instance,
11893    ) -> Result;
11894    #[doc = "See [xrDestroyInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyInstance)"]
11895    pub type DestroyInstance = unsafe extern "system" fn(instance: Instance) -> Result;
11896    #[doc = "See [xrResultToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrResultToString)"]
11897    pub type ResultToString =
11898        unsafe extern "system" fn(instance: Instance, value: Result, buffer: *mut c_char) -> Result;
11899    #[doc = "See [xrStructureTypeToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStructureTypeToString)"]
11900    pub type StructureTypeToString = unsafe extern "system" fn(
11901        instance: Instance,
11902        value: StructureType,
11903        buffer: *mut c_char,
11904    ) -> Result;
11905    #[doc = "See [xrGetInstanceProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInstanceProperties)"]
11906    pub type GetInstanceProperties = unsafe extern "system" fn(
11907        instance: Instance,
11908        instance_properties: *mut InstanceProperties,
11909    ) -> Result;
11910    #[doc = "See [xrGetSystem](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSystem)"]
11911    pub type GetSystem = unsafe extern "system" fn(
11912        instance: Instance,
11913        get_info: *const SystemGetInfo,
11914        system_id: *mut SystemId,
11915    ) -> Result;
11916    #[doc = "See [xrGetSystemProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSystemProperties)"]
11917    pub type GetSystemProperties = unsafe extern "system" fn(
11918        instance: Instance,
11919        system_id: SystemId,
11920        properties: *mut SystemProperties,
11921    ) -> Result;
11922    #[doc = "See [xrCreateSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSession)"]
11923    pub type CreateSession = unsafe extern "system" fn(
11924        instance: Instance,
11925        create_info: *const SessionCreateInfo,
11926        session: *mut Session,
11927    ) -> Result;
11928    #[doc = "See [xrDestroySession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySession)"]
11929    pub type DestroySession = unsafe extern "system" fn(session: Session) -> Result;
11930    #[doc = "See [xrDestroySpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpace)"]
11931    pub type DestroySpace = unsafe extern "system" fn(space: Space) -> Result;
11932    #[doc = "See [xrEnumerateSwapchainFormats](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSwapchainFormats)"]
11933    pub type EnumerateSwapchainFormats = unsafe extern "system" fn(
11934        session: Session,
11935        format_capacity_input: u32,
11936        format_count_output: *mut u32,
11937        formats: *mut i64,
11938    ) -> Result;
11939    #[doc = "See [xrCreateSwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSwapchain)"]
11940    pub type CreateSwapchain = unsafe extern "system" fn(
11941        session: Session,
11942        create_info: *const SwapchainCreateInfo,
11943        swapchain: *mut Swapchain,
11944    ) -> Result;
11945    #[doc = "See [xrDestroySwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySwapchain)"]
11946    pub type DestroySwapchain = unsafe extern "system" fn(swapchain: Swapchain) -> Result;
11947    #[doc = "See [xrEnumerateSwapchainImages](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSwapchainImages)"]
11948    pub type EnumerateSwapchainImages = unsafe extern "system" fn(
11949        swapchain: Swapchain,
11950        image_capacity_input: u32,
11951        image_count_output: *mut u32,
11952        images: *mut SwapchainImageBaseHeader,
11953    ) -> Result;
11954    #[doc = "See [xrAcquireSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAcquireSwapchainImage)"]
11955    pub type AcquireSwapchainImage = unsafe extern "system" fn(
11956        swapchain: Swapchain,
11957        acquire_info: *const SwapchainImageAcquireInfo,
11958        index: *mut u32,
11959    ) -> Result;
11960    #[doc = "See [xrWaitSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrWaitSwapchainImage)"]
11961    pub type WaitSwapchainImage = unsafe extern "system" fn(
11962        swapchain: Swapchain,
11963        wait_info: *const SwapchainImageWaitInfo,
11964    ) -> Result;
11965    #[doc = "See [xrReleaseSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrReleaseSwapchainImage)"]
11966    pub type ReleaseSwapchainImage = unsafe extern "system" fn(
11967        swapchain: Swapchain,
11968        release_info: *const SwapchainImageReleaseInfo,
11969    ) -> Result;
11970    #[doc = "See [xrBeginSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginSession)"]
11971    pub type BeginSession =
11972        unsafe extern "system" fn(session: Session, begin_info: *const SessionBeginInfo) -> Result;
11973    #[doc = "See [xrEndSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEndSession)"]
11974    pub type EndSession = unsafe extern "system" fn(session: Session) -> Result;
11975    #[doc = "See [xrRequestExitSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestExitSession)"]
11976    pub type RequestExitSession = unsafe extern "system" fn(session: Session) -> Result;
11977    #[doc = "See [xrEnumerateReferenceSpaces](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateReferenceSpaces)"]
11978    pub type EnumerateReferenceSpaces = unsafe extern "system" fn(
11979        session: Session,
11980        space_capacity_input: u32,
11981        space_count_output: *mut u32,
11982        spaces: *mut ReferenceSpaceType,
11983    ) -> Result;
11984    #[doc = "See [xrCreateReferenceSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateReferenceSpace)"]
11985    pub type CreateReferenceSpace = unsafe extern "system" fn(
11986        session: Session,
11987        create_info: *const ReferenceSpaceCreateInfo,
11988        space: *mut Space,
11989    ) -> Result;
11990    #[doc = "See [xrCreateActionSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateActionSpace)"]
11991    pub type CreateActionSpace = unsafe extern "system" fn(
11992        session: Session,
11993        create_info: *const ActionSpaceCreateInfo,
11994        space: *mut Space,
11995    ) -> Result;
11996    #[doc = "See [xrLocateSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpace)"]
11997    pub type LocateSpace = unsafe extern "system" fn(
11998        space: Space,
11999        base_space: Space,
12000        time: Time,
12001        location: *mut SpaceLocation,
12002    ) -> Result;
12003    #[doc = "See [xrEnumerateViewConfigurations](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViewConfigurations)"]
12004    pub type EnumerateViewConfigurations = unsafe extern "system" fn(
12005        instance: Instance,
12006        system_id: SystemId,
12007        view_configuration_type_capacity_input: u32,
12008        view_configuration_type_count_output: *mut u32,
12009        view_configuration_types: *mut ViewConfigurationType,
12010    ) -> Result;
12011    #[doc = "See [xrEnumerateEnvironmentBlendModes](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateEnvironmentBlendModes)"]
12012    pub type EnumerateEnvironmentBlendModes = unsafe extern "system" fn(
12013        instance: Instance,
12014        system_id: SystemId,
12015        view_configuration_type: ViewConfigurationType,
12016        environment_blend_mode_capacity_input: u32,
12017        environment_blend_mode_count_output: *mut u32,
12018        environment_blend_modes: *mut EnvironmentBlendMode,
12019    ) -> Result;
12020    #[doc = "See [xrGetViewConfigurationProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetViewConfigurationProperties)"]
12021    pub type GetViewConfigurationProperties = unsafe extern "system" fn(
12022        instance: Instance,
12023        system_id: SystemId,
12024        view_configuration_type: ViewConfigurationType,
12025        configuration_properties: *mut ViewConfigurationProperties,
12026    ) -> Result;
12027    #[doc = "See [xrEnumerateViewConfigurationViews](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViewConfigurationViews)"]
12028    pub type EnumerateViewConfigurationViews = unsafe extern "system" fn(
12029        instance: Instance,
12030        system_id: SystemId,
12031        view_configuration_type: ViewConfigurationType,
12032        view_capacity_input: u32,
12033        view_count_output: *mut u32,
12034        views: *mut ViewConfigurationView,
12035    ) -> Result;
12036    #[doc = "See [xrBeginFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginFrame)"]
12037    pub type BeginFrame = unsafe extern "system" fn(
12038        session: Session,
12039        frame_begin_info: *const FrameBeginInfo,
12040    ) -> Result;
12041    #[doc = "See [xrLocateViews](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateViews)"]
12042    pub type LocateViews = unsafe extern "system" fn(
12043        session: Session,
12044        view_locate_info: *const ViewLocateInfo,
12045        view_state: *mut ViewState,
12046        view_capacity_input: u32,
12047        view_count_output: *mut u32,
12048        views: *mut View,
12049    ) -> Result;
12050    #[doc = "See [xrEndFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEndFrame)"]
12051    pub type EndFrame =
12052        unsafe extern "system" fn(session: Session, frame_end_info: *const FrameEndInfo) -> Result;
12053    #[doc = "See [xrWaitFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrWaitFrame)"]
12054    pub type WaitFrame = unsafe extern "system" fn(
12055        session: Session,
12056        frame_wait_info: *const FrameWaitInfo,
12057        frame_state: *mut FrameState,
12058    ) -> Result;
12059    #[doc = "See [xrApplyHapticFeedback](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyHapticFeedback)"]
12060    pub type ApplyHapticFeedback = unsafe extern "system" fn(
12061        session: Session,
12062        haptic_action_info: *const HapticActionInfo,
12063        haptic_feedback: *const HapticBaseHeader,
12064    ) -> Result;
12065    #[doc = "See [xrStopHapticFeedback](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStopHapticFeedback)"]
12066    pub type StopHapticFeedback = unsafe extern "system" fn(
12067        session: Session,
12068        haptic_action_info: *const HapticActionInfo,
12069    ) -> Result;
12070    #[doc = "See [xrPollEvent](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPollEvent)"]
12071    pub type PollEvent =
12072        unsafe extern "system" fn(instance: Instance, event_data: *mut EventDataBuffer) -> Result;
12073    #[doc = "See [xrStringToPath](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStringToPath)"]
12074    pub type StringToPath = unsafe extern "system" fn(
12075        instance: Instance,
12076        path_string: *const c_char,
12077        path: *mut Path,
12078    ) -> Result;
12079    #[doc = "See [xrPathToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPathToString)"]
12080    pub type PathToString = unsafe extern "system" fn(
12081        instance: Instance,
12082        path: Path,
12083        buffer_capacity_input: u32,
12084        buffer_count_output: *mut u32,
12085        buffer: *mut c_char,
12086    ) -> Result;
12087    #[doc = "See [xrGetReferenceSpaceBoundsRect](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetReferenceSpaceBoundsRect)"]
12088    pub type GetReferenceSpaceBoundsRect = unsafe extern "system" fn(
12089        session: Session,
12090        reference_space_type: ReferenceSpaceType,
12091        bounds: *mut Extent2Df,
12092    ) -> Result;
12093    #[cfg(target_os = "android")]
12094    #[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)"]
12095    pub type SetAndroidApplicationThreadKHR = unsafe extern "system" fn(
12096        session: Session,
12097        thread_type: AndroidThreadTypeKHR,
12098        thread_id: u32,
12099    ) -> Result;
12100    #[cfg(target_os = "android")]
12101    #[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)"]
12102    pub type CreateSwapchainAndroidSurfaceKHR = unsafe extern "system" fn(
12103        session: Session,
12104        info: *const SwapchainCreateInfo,
12105        swapchain: *mut Swapchain,
12106        surface: *mut jobject,
12107    ) -> Result;
12108    #[doc = "See [xrGetActionStateBoolean](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateBoolean)"]
12109    pub type GetActionStateBoolean = unsafe extern "system" fn(
12110        session: Session,
12111        get_info: *const ActionStateGetInfo,
12112        state: *mut ActionStateBoolean,
12113    ) -> Result;
12114    #[doc = "See [xrGetActionStateFloat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateFloat)"]
12115    pub type GetActionStateFloat = unsafe extern "system" fn(
12116        session: Session,
12117        get_info: *const ActionStateGetInfo,
12118        state: *mut ActionStateFloat,
12119    ) -> Result;
12120    #[doc = "See [xrGetActionStateVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateVector2f)"]
12121    pub type GetActionStateVector2f = unsafe extern "system" fn(
12122        session: Session,
12123        get_info: *const ActionStateGetInfo,
12124        state: *mut ActionStateVector2f,
12125    ) -> Result;
12126    #[doc = "See [xrGetActionStatePose](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStatePose)"]
12127    pub type GetActionStatePose = unsafe extern "system" fn(
12128        session: Session,
12129        get_info: *const ActionStateGetInfo,
12130        state: *mut ActionStatePose,
12131    ) -> Result;
12132    #[doc = "See [xrCreateActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateActionSet)"]
12133    pub type CreateActionSet = unsafe extern "system" fn(
12134        instance: Instance,
12135        create_info: *const ActionSetCreateInfo,
12136        action_set: *mut ActionSet,
12137    ) -> Result;
12138    #[doc = "See [xrDestroyActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyActionSet)"]
12139    pub type DestroyActionSet = unsafe extern "system" fn(action_set: ActionSet) -> Result;
12140    #[doc = "See [xrCreateAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateAction)"]
12141    pub type CreateAction = unsafe extern "system" fn(
12142        action_set: ActionSet,
12143        create_info: *const ActionCreateInfo,
12144        action: *mut Action,
12145    ) -> Result;
12146    #[doc = "See [xrDestroyAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyAction)"]
12147    pub type DestroyAction = unsafe extern "system" fn(action: Action) -> Result;
12148    #[doc = "See [xrSuggestInteractionProfileBindings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSuggestInteractionProfileBindings)"]
12149    pub type SuggestInteractionProfileBindings = unsafe extern "system" fn(
12150        instance: Instance,
12151        suggested_bindings: *const InteractionProfileSuggestedBinding,
12152    ) -> Result;
12153    #[doc = "See [xrAttachSessionActionSets](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAttachSessionActionSets)"]
12154    pub type AttachSessionActionSets = unsafe extern "system" fn(
12155        session: Session,
12156        attach_info: *const SessionActionSetsAttachInfo,
12157    ) -> Result;
12158    #[doc = "See [xrGetCurrentInteractionProfile](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetCurrentInteractionProfile)"]
12159    pub type GetCurrentInteractionProfile = unsafe extern "system" fn(
12160        session: Session,
12161        top_level_user_path: Path,
12162        interaction_profile: *mut InteractionProfileState,
12163    ) -> Result;
12164    #[doc = "See [xrSyncActions](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSyncActions)"]
12165    pub type SyncActions =
12166        unsafe extern "system" fn(session: Session, sync_info: *const ActionsSyncInfo) -> Result;
12167    #[doc = "See [xrEnumerateBoundSourcesForAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateBoundSourcesForAction)"]
12168    pub type EnumerateBoundSourcesForAction = unsafe extern "system" fn(
12169        session: Session,
12170        enumerate_info: *const BoundSourcesForActionEnumerateInfo,
12171        source_capacity_input: u32,
12172        source_count_output: *mut u32,
12173        sources: *mut Path,
12174    ) -> Result;
12175    #[doc = "See [xrGetInputSourceLocalizedName](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInputSourceLocalizedName)"]
12176    pub type GetInputSourceLocalizedName = unsafe extern "system" fn(
12177        session: Session,
12178        get_info: *const InputSourceLocalizedNameGetInfo,
12179        buffer_capacity_input: u32,
12180        buffer_count_output: *mut u32,
12181        buffer: *mut c_char,
12182    ) -> Result;
12183    #[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)"]
12184    pub type GetVulkanInstanceExtensionsKHR = unsafe extern "system" fn(
12185        instance: Instance,
12186        system_id: SystemId,
12187        buffer_capacity_input: u32,
12188        buffer_count_output: *mut u32,
12189        buffer: *mut c_char,
12190    ) -> Result;
12191    #[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)"]
12192    pub type GetVulkanDeviceExtensionsKHR = unsafe extern "system" fn(
12193        instance: Instance,
12194        system_id: SystemId,
12195        buffer_capacity_input: u32,
12196        buffer_count_output: *mut u32,
12197        buffer: *mut c_char,
12198    ) -> Result;
12199    #[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)"]
12200    pub type GetVulkanGraphicsDeviceKHR = unsafe extern "system" fn(
12201        instance: Instance,
12202        system_id: SystemId,
12203        vk_instance: VkInstance,
12204        vk_physical_device: *mut VkPhysicalDevice,
12205    ) -> Result;
12206    #[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)"]
12207    pub type GetOpenGLGraphicsRequirementsKHR = unsafe extern "system" fn(
12208        instance: Instance,
12209        system_id: SystemId,
12210        graphics_requirements: *mut GraphicsRequirementsOpenGLKHR,
12211    ) -> Result;
12212    #[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)"]
12213    pub type GetOpenGLESGraphicsRequirementsKHR = unsafe extern "system" fn(
12214        instance: Instance,
12215        system_id: SystemId,
12216        graphics_requirements: *mut GraphicsRequirementsOpenGLESKHR,
12217    ) -> Result;
12218    #[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)"]
12219    pub type GetVulkanGraphicsRequirementsKHR = unsafe extern "system" fn(
12220        instance: Instance,
12221        system_id: SystemId,
12222        graphics_requirements: *mut GraphicsRequirementsVulkanKHR,
12223    ) -> Result;
12224    #[cfg(windows)]
12225    #[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)"]
12226    pub type GetD3D11GraphicsRequirementsKHR = unsafe extern "system" fn(
12227        instance: Instance,
12228        system_id: SystemId,
12229        graphics_requirements: *mut GraphicsRequirementsD3D11KHR,
12230    ) -> Result;
12231    #[cfg(windows)]
12232    #[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)"]
12233    pub type GetD3D12GraphicsRequirementsKHR = unsafe extern "system" fn(
12234        instance: Instance,
12235        system_id: SystemId,
12236        graphics_requirements: *mut GraphicsRequirementsD3D12KHR,
12237    ) -> Result;
12238    #[cfg(target_vendor = "apple")]
12239    #[doc = "See [xrGetMetalGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMetalGraphicsRequirementsKHR) - defined by [XR_KHR_metal_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_metal_enable)"]
12240    pub type GetMetalGraphicsRequirementsKHR = unsafe extern "system" fn(
12241        instance: Instance,
12242        system_id: SystemId,
12243        graphics_requirements: *mut GraphicsRequirementsMetalKHR,
12244    ) -> Result;
12245    #[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)"]
12246    pub type PerfSettingsSetPerformanceLevelEXT = unsafe extern "system" fn(
12247        session: Session,
12248        domain: PerfSettingsDomainEXT,
12249        level: PerfSettingsLevelEXT,
12250    ) -> Result;
12251    #[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)"]
12252    pub type ThermalGetTemperatureTrendEXT = unsafe extern "system" fn(
12253        session: Session,
12254        domain: PerfSettingsDomainEXT,
12255        notification_level: *mut PerfSettingsNotificationLevelEXT,
12256        temp_headroom: *mut f32,
12257        temp_slope: *mut f32,
12258    ) -> Result;
12259    #[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)"]
12260    pub type SetDebugUtilsObjectNameEXT = unsafe extern "system" fn(
12261        instance: Instance,
12262        name_info: *const DebugUtilsObjectNameInfoEXT,
12263    ) -> Result;
12264    #[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)"]
12265    pub type CreateDebugUtilsMessengerEXT = unsafe extern "system" fn(
12266        instance: Instance,
12267        create_info: *const DebugUtilsMessengerCreateInfoEXT,
12268        messenger: *mut DebugUtilsMessengerEXT,
12269    ) -> Result;
12270    #[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)"]
12271    pub type DestroyDebugUtilsMessengerEXT =
12272        unsafe extern "system" fn(messenger: DebugUtilsMessengerEXT) -> Result;
12273    #[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)"]
12274    pub type SubmitDebugUtilsMessageEXT = unsafe extern "system" fn(
12275        instance: Instance,
12276        message_severity: DebugUtilsMessageSeverityFlagsEXT,
12277        message_types: DebugUtilsMessageTypeFlagsEXT,
12278        callback_data: *const DebugUtilsMessengerCallbackDataEXT,
12279    ) -> Result;
12280    #[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)"]
12281    pub type SessionBeginDebugUtilsLabelRegionEXT = unsafe extern "system" fn(
12282        session: Session,
12283        label_info: *const DebugUtilsLabelEXT,
12284    ) -> Result;
12285    #[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)"]
12286    pub type SessionEndDebugUtilsLabelRegionEXT =
12287        unsafe extern "system" fn(session: Session) -> Result;
12288    #[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)"]
12289    pub type SessionInsertDebugUtilsLabelEXT = unsafe extern "system" fn(
12290        session: Session,
12291        label_info: *const DebugUtilsLabelEXT,
12292    ) -> Result;
12293    #[cfg(windows)]
12294    #[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)"]
12295    pub type ConvertTimeToWin32PerformanceCounterKHR = unsafe extern "system" fn(
12296        instance: Instance,
12297        time: Time,
12298        performance_counter: *mut LARGE_INTEGER,
12299    ) -> Result;
12300    #[cfg(windows)]
12301    #[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)"]
12302    pub type ConvertWin32PerformanceCounterToTimeKHR = unsafe extern "system" fn(
12303        instance: Instance,
12304        performance_counter: *const LARGE_INTEGER,
12305        time: *mut Time,
12306    ) -> Result;
12307    #[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)"]
12308    pub type CreateVulkanInstanceKHR = unsafe extern "system" fn(
12309        instance: Instance,
12310        create_info: *const VulkanInstanceCreateInfoKHR,
12311        vulkan_instance: *mut VkInstance,
12312        vulkan_result: *mut VkResult,
12313    ) -> Result;
12314    #[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)"]
12315    pub type CreateVulkanDeviceKHR = unsafe extern "system" fn(
12316        instance: Instance,
12317        create_info: *const VulkanDeviceCreateInfoKHR,
12318        vulkan_device: *mut VkDevice,
12319        vulkan_result: *mut VkResult,
12320    ) -> Result;
12321    #[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)"]
12322    pub type GetVulkanGraphicsDevice2KHR = unsafe extern "system" fn(
12323        instance: Instance,
12324        get_info: *const VulkanGraphicsDeviceGetInfoKHR,
12325        vulkan_physical_device: *mut VkPhysicalDevice,
12326    ) -> Result;
12327    #[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)"]
12328    pub type ConvertTimeToTimespecTimeKHR = unsafe extern "system" fn(
12329        instance: Instance,
12330        time: Time,
12331        timespec_time: *mut timespec,
12332    ) -> Result;
12333    #[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)"]
12334    pub type ConvertTimespecTimeToTimeKHR = unsafe extern "system" fn(
12335        instance: Instance,
12336        timespec_time: *const timespec,
12337        time: *mut Time,
12338    ) -> Result;
12339    #[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)"]
12340    pub type GetVisibilityMaskKHR = unsafe extern "system" fn(
12341        session: Session,
12342        view_configuration_type: ViewConfigurationType,
12343        view_index: u32,
12344        visibility_mask_type: VisibilityMaskTypeKHR,
12345        visibility_mask: *mut VisibilityMaskKHR,
12346    ) -> Result;
12347    #[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)"]
12348    pub type CreateSpatialAnchorMSFT = unsafe extern "system" fn(
12349        session: Session,
12350        create_info: *const SpatialAnchorCreateInfoMSFT,
12351        anchor: *mut SpatialAnchorMSFT,
12352    ) -> Result;
12353    #[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)"]
12354    pub type CreateSpatialAnchorSpaceMSFT = unsafe extern "system" fn(
12355        session: Session,
12356        create_info: *const SpatialAnchorSpaceCreateInfoMSFT,
12357        space: *mut Space,
12358    ) -> Result;
12359    #[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)"]
12360    pub type DestroySpatialAnchorMSFT =
12361        unsafe extern "system" fn(anchor: SpatialAnchorMSFT) -> Result;
12362    #[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)"]
12363    pub type SetInputDeviceActiveEXT = unsafe extern "system" fn(
12364        session: Session,
12365        interaction_profile: Path,
12366        top_level_path: Path,
12367        is_active: Bool32,
12368    ) -> Result;
12369    #[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)"]
12370    pub type SetInputDeviceStateBoolEXT = unsafe extern "system" fn(
12371        session: Session,
12372        top_level_path: Path,
12373        input_source_path: Path,
12374        state: Bool32,
12375    ) -> Result;
12376    #[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)"]
12377    pub type SetInputDeviceStateFloatEXT = unsafe extern "system" fn(
12378        session: Session,
12379        top_level_path: Path,
12380        input_source_path: Path,
12381        state: f32,
12382    ) -> Result;
12383    #[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)"]
12384    pub type SetInputDeviceStateVector2fEXT = unsafe extern "system" fn(
12385        session: Session,
12386        top_level_path: Path,
12387        input_source_path: Path,
12388        state: Vector2f,
12389    ) -> Result;
12390    #[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)"]
12391    pub type SetInputDeviceLocationEXT = unsafe extern "system" fn(
12392        session: Session,
12393        top_level_path: Path,
12394        input_source_path: Path,
12395        space: Space,
12396        pose: Posef,
12397    ) -> Result;
12398    #[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)"]
12399    pub type InitializeLoaderKHR =
12400        unsafe extern "system" fn(loader_init_info: *const LoaderInitInfoBaseHeaderKHR) -> Result;
12401    #[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)"]
12402    pub type CreateSpatialGraphNodeSpaceMSFT = unsafe extern "system" fn(
12403        session: Session,
12404        create_info: *const SpatialGraphNodeSpaceCreateInfoMSFT,
12405        space: *mut Space,
12406    ) -> Result;
12407    #[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)"]
12408    pub type TryCreateSpatialGraphStaticNodeBindingMSFT = unsafe extern "system" fn(
12409        session: Session,
12410        create_info: *const SpatialGraphStaticNodeBindingCreateInfoMSFT,
12411        node_binding: *mut SpatialGraphNodeBindingMSFT,
12412    ) -> Result;
12413    #[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)"]
12414    pub type DestroySpatialGraphNodeBindingMSFT =
12415        unsafe extern "system" fn(node_binding: SpatialGraphNodeBindingMSFT) -> Result;
12416    #[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)"]
12417    pub type GetSpatialGraphNodeBindingPropertiesMSFT = unsafe extern "system" fn(
12418        node_binding: SpatialGraphNodeBindingMSFT,
12419        get_info: *const SpatialGraphNodeBindingPropertiesGetInfoMSFT,
12420        properties: *mut SpatialGraphNodeBindingPropertiesMSFT,
12421    ) -> Result;
12422    #[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)"]
12423    pub type CreateHandTrackerEXT = unsafe extern "system" fn(
12424        session: Session,
12425        create_info: *const HandTrackerCreateInfoEXT,
12426        hand_tracker: *mut HandTrackerEXT,
12427    ) -> Result;
12428    #[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)"]
12429    pub type DestroyHandTrackerEXT =
12430        unsafe extern "system" fn(hand_tracker: HandTrackerEXT) -> Result;
12431    #[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)"]
12432    pub type LocateHandJointsEXT = unsafe extern "system" fn(
12433        hand_tracker: HandTrackerEXT,
12434        locate_info: *const HandJointsLocateInfoEXT,
12435        locations: *mut HandJointLocationsEXT,
12436    ) -> Result;
12437    #[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)"]
12438    pub type CreateFaceTrackerFB = unsafe extern "system" fn(
12439        session: Session,
12440        create_info: *const FaceTrackerCreateInfoFB,
12441        face_tracker: *mut FaceTrackerFB,
12442    ) -> Result;
12443    #[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)"]
12444    pub type DestroyFaceTrackerFB =
12445        unsafe extern "system" fn(face_tracker: FaceTrackerFB) -> Result;
12446    #[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)"]
12447    pub type GetFaceExpressionWeightsFB = unsafe extern "system" fn(
12448        face_tracker: FaceTrackerFB,
12449        expression_info: *const FaceExpressionInfoFB,
12450        expression_weights: *mut FaceExpressionWeightsFB,
12451    ) -> Result;
12452    #[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)"]
12453    pub type CreateFaceTracker2FB = unsafe extern "system" fn(
12454        session: Session,
12455        create_info: *const FaceTrackerCreateInfo2FB,
12456        face_tracker: *mut FaceTracker2FB,
12457    ) -> Result;
12458    #[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)"]
12459    pub type DestroyFaceTracker2FB =
12460        unsafe extern "system" fn(face_tracker: FaceTracker2FB) -> Result;
12461    #[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)"]
12462    pub type GetFaceExpressionWeights2FB = unsafe extern "system" fn(
12463        face_tracker: FaceTracker2FB,
12464        expression_info: *const FaceExpressionInfo2FB,
12465        expression_weights: *mut FaceExpressionWeights2FB,
12466    ) -> Result;
12467    #[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)"]
12468    pub type CreateBodyTrackerFB = unsafe extern "system" fn(
12469        session: Session,
12470        create_info: *const BodyTrackerCreateInfoFB,
12471        body_tracker: *mut BodyTrackerFB,
12472    ) -> Result;
12473    #[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)"]
12474    pub type DestroyBodyTrackerFB =
12475        unsafe extern "system" fn(body_tracker: BodyTrackerFB) -> Result;
12476    #[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)"]
12477    pub type LocateBodyJointsFB = unsafe extern "system" fn(
12478        body_tracker: BodyTrackerFB,
12479        locate_info: *const BodyJointsLocateInfoFB,
12480        locations: *mut BodyJointLocationsFB,
12481    ) -> Result;
12482    #[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)"]
12483    pub type GetBodySkeletonFB = unsafe extern "system" fn(
12484        body_tracker: BodyTrackerFB,
12485        skeleton: *mut BodySkeletonFB,
12486    ) -> Result;
12487    #[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)"]
12488    pub type CreateEyeTrackerFB = unsafe extern "system" fn(
12489        session: Session,
12490        create_info: *const EyeTrackerCreateInfoFB,
12491        eye_tracker: *mut EyeTrackerFB,
12492    ) -> Result;
12493    #[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)"]
12494    pub type DestroyEyeTrackerFB = unsafe extern "system" fn(eye_tracker: EyeTrackerFB) -> Result;
12495    #[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)"]
12496    pub type GetEyeGazesFB = unsafe extern "system" fn(
12497        eye_tracker: EyeTrackerFB,
12498        gaze_info: *const EyeGazesInfoFB,
12499        eye_gazes: *mut EyeGazesFB,
12500    ) -> Result;
12501    #[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)"]
12502    pub type CreateHandMeshSpaceMSFT = unsafe extern "system" fn(
12503        hand_tracker: HandTrackerEXT,
12504        create_info: *const HandMeshSpaceCreateInfoMSFT,
12505        space: *mut Space,
12506    ) -> Result;
12507    #[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)"]
12508    pub type UpdateHandMeshMSFT = unsafe extern "system" fn(
12509        hand_tracker: HandTrackerEXT,
12510        update_info: *const HandMeshUpdateInfoMSFT,
12511        hand_mesh: *mut HandMeshMSFT,
12512    ) -> Result;
12513    #[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)"]
12514    pub type GetControllerModelKeyMSFT = unsafe extern "system" fn(
12515        session: Session,
12516        top_level_user_path: Path,
12517        controller_model_key_state: *mut ControllerModelKeyStateMSFT,
12518    ) -> Result;
12519    #[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)"]
12520    pub type LoadControllerModelMSFT = unsafe extern "system" fn(
12521        session: Session,
12522        model_key: ControllerModelKeyMSFT,
12523        buffer_capacity_input: u32,
12524        buffer_count_output: *mut u32,
12525        buffer: *mut u8,
12526    ) -> Result;
12527    #[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)"]
12528    pub type GetControllerModelPropertiesMSFT = unsafe extern "system" fn(
12529        session: Session,
12530        model_key: ControllerModelKeyMSFT,
12531        properties: *mut ControllerModelPropertiesMSFT,
12532    ) -> Result;
12533    #[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)"]
12534    pub type GetControllerModelStateMSFT = unsafe extern "system" fn(
12535        session: Session,
12536        model_key: ControllerModelKeyMSFT,
12537        state: *mut ControllerModelStateMSFT,
12538    ) -> Result;
12539    #[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)"]
12540    pub type EnumerateDisplayRefreshRatesFB = unsafe extern "system" fn(
12541        session: Session,
12542        display_refresh_rate_capacity_input: u32,
12543        display_refresh_rate_count_output: *mut u32,
12544        display_refresh_rates: *mut f32,
12545    ) -> Result;
12546    #[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)"]
12547    pub type GetDisplayRefreshRateFB =
12548        unsafe extern "system" fn(session: Session, display_refresh_rate: *mut f32) -> Result;
12549    #[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)"]
12550    pub type RequestDisplayRefreshRateFB =
12551        unsafe extern "system" fn(session: Session, display_refresh_rate: f32) -> Result;
12552    #[cfg(windows)]
12553    #[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)"]
12554    pub type CreateSpatialAnchorFromPerceptionAnchorMSFT = unsafe extern "system" fn(
12555        session: Session,
12556        perception_anchor: *mut IUnknown,
12557        anchor: *mut SpatialAnchorMSFT,
12558    ) -> Result;
12559    #[cfg(windows)]
12560    #[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)"]
12561    pub type TryGetPerceptionAnchorFromSpatialAnchorMSFT = unsafe extern "system" fn(
12562        session: Session,
12563        anchor: SpatialAnchorMSFT,
12564        perception_anchor: *mut *mut IUnknown,
12565    ) -> Result;
12566    #[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)"]
12567    pub type UpdateSwapchainFB = unsafe extern "system" fn(
12568        swapchain: Swapchain,
12569        state: *const SwapchainStateBaseHeaderFB,
12570    ) -> Result;
12571    #[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)"]
12572    pub type GetSwapchainStateFB = unsafe extern "system" fn(
12573        swapchain: Swapchain,
12574        state: *mut SwapchainStateBaseHeaderFB,
12575    ) -> Result;
12576    #[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)"]
12577    pub type EnumerateColorSpacesFB = unsafe extern "system" fn(
12578        session: Session,
12579        color_space_capacity_input: u32,
12580        color_space_count_output: *mut u32,
12581        color_spaces: *mut ColorSpaceFB,
12582    ) -> Result;
12583    #[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)"]
12584    pub type SetColorSpaceFB =
12585        unsafe extern "system" fn(session: Session, color_space: ColorSpaceFB) -> Result;
12586    #[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)"]
12587    pub type CreateFoveationProfileFB = unsafe extern "system" fn(
12588        session: Session,
12589        create_info: *const FoveationProfileCreateInfoFB,
12590        profile: *mut FoveationProfileFB,
12591    ) -> Result;
12592    #[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)"]
12593    pub type DestroyFoveationProfileFB =
12594        unsafe extern "system" fn(profile: FoveationProfileFB) -> Result;
12595    #[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)"]
12596    pub type GetFoveationEyeTrackedStateMETA = unsafe extern "system" fn(
12597        session: Session,
12598        foveation_state: *mut FoveationEyeTrackedStateMETA,
12599    ) -> Result;
12600    #[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)"]
12601    pub type GetHandMeshFB = unsafe extern "system" fn(
12602        hand_tracker: HandTrackerEXT,
12603        mesh: *mut HandTrackingMeshFB,
12604    ) -> Result;
12605    #[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)"]
12606    pub type EnumerateRenderModelPathsFB = unsafe extern "system" fn(
12607        session: Session,
12608        path_capacity_input: u32,
12609        path_count_output: *mut u32,
12610        paths: *mut RenderModelPathInfoFB,
12611    ) -> Result;
12612    #[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)"]
12613    pub type GetRenderModelPropertiesFB = unsafe extern "system" fn(
12614        session: Session,
12615        path: Path,
12616        properties: *mut RenderModelPropertiesFB,
12617    ) -> Result;
12618    #[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)"]
12619    pub type LoadRenderModelFB = unsafe extern "system" fn(
12620        session: Session,
12621        info: *const RenderModelLoadInfoFB,
12622        buffer: *mut RenderModelBufferFB,
12623    ) -> Result;
12624    #[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)"]
12625    pub type QuerySystemTrackedKeyboardFB = unsafe extern "system" fn(
12626        session: Session,
12627        query_info: *const KeyboardTrackingQueryFB,
12628        keyboard: *mut KeyboardTrackingDescriptionFB,
12629    ) -> Result;
12630    #[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)"]
12631    pub type CreateKeyboardSpaceFB = unsafe extern "system" fn(
12632        session: Session,
12633        create_info: *const KeyboardSpaceCreateInfoFB,
12634        keyboard_space: *mut Space,
12635    ) -> Result;
12636    #[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)"]
12637    pub type SetEnvironmentDepthEstimationVARJO =
12638        unsafe extern "system" fn(session: Session, enabled: Bool32) -> Result;
12639    #[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)"]
12640    pub type EnumerateReprojectionModesMSFT = unsafe extern "system" fn(
12641        instance: Instance,
12642        system_id: SystemId,
12643        view_configuration_type: ViewConfigurationType,
12644        mode_capacity_input: u32,
12645        mode_count_output: *mut u32,
12646        modes: *mut ReprojectionModeMSFT,
12647    ) -> Result;
12648    #[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)"]
12649    pub type GetAudioOutputDeviceGuidOculus =
12650        unsafe extern "system" fn(instance: Instance, buffer: *mut wchar_t) -> Result;
12651    #[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)"]
12652    pub type GetAudioInputDeviceGuidOculus =
12653        unsafe extern "system" fn(instance: Instance, buffer: *mut wchar_t) -> Result;
12654    #[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)"]
12655    pub type CreateSpatialAnchorFB = unsafe extern "system" fn(
12656        session: Session,
12657        info: *const SpatialAnchorCreateInfoFB,
12658        request_id: *mut AsyncRequestIdFB,
12659    ) -> Result;
12660    #[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)"]
12661    pub type GetSpaceUuidFB = unsafe extern "system" fn(space: Space, uuid: *mut UuidEXT) -> Result;
12662    #[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)"]
12663    pub type EnumerateSpaceSupportedComponentsFB = unsafe extern "system" fn(
12664        space: Space,
12665        component_type_capacity_input: u32,
12666        component_type_count_output: *mut u32,
12667        component_types: *mut SpaceComponentTypeFB,
12668    ) -> Result;
12669    #[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)"]
12670    pub type SetSpaceComponentStatusFB = unsafe extern "system" fn(
12671        space: Space,
12672        info: *const SpaceComponentStatusSetInfoFB,
12673        request_id: *mut AsyncRequestIdFB,
12674    ) -> Result;
12675    #[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)"]
12676    pub type GetSpaceComponentStatusFB = unsafe extern "system" fn(
12677        space: Space,
12678        component_type: SpaceComponentTypeFB,
12679        status: *mut SpaceComponentStatusFB,
12680    ) -> Result;
12681    #[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)"]
12682    pub type CreateTriangleMeshFB = unsafe extern "system" fn(
12683        session: Session,
12684        create_info: *const TriangleMeshCreateInfoFB,
12685        out_triangle_mesh: *mut TriangleMeshFB,
12686    ) -> Result;
12687    #[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)"]
12688    pub type DestroyTriangleMeshFB = unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12689    #[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)"]
12690    pub type TriangleMeshGetVertexBufferFB = unsafe extern "system" fn(
12691        mesh: TriangleMeshFB,
12692        out_vertex_buffer: *mut *mut Vector3f,
12693    ) -> Result;
12694    #[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)"]
12695    pub type TriangleMeshGetIndexBufferFB =
12696        unsafe extern "system" fn(mesh: TriangleMeshFB, out_index_buffer: *mut *mut u32) -> Result;
12697    #[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)"]
12698    pub type TriangleMeshBeginUpdateFB = unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12699    #[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)"]
12700    pub type TriangleMeshEndUpdateFB = unsafe extern "system" fn(
12701        mesh: TriangleMeshFB,
12702        vertex_count: u32,
12703        triangle_count: u32,
12704    ) -> Result;
12705    #[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)"]
12706    pub type TriangleMeshBeginVertexBufferUpdateFB =
12707        unsafe extern "system" fn(mesh: TriangleMeshFB, out_vertex_count: *mut u32) -> Result;
12708    #[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)"]
12709    pub type TriangleMeshEndVertexBufferUpdateFB =
12710        unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12711    #[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)"]
12712    pub type CreatePassthroughFB = unsafe extern "system" fn(
12713        session: Session,
12714        create_info: *const PassthroughCreateInfoFB,
12715        out_passthrough: *mut PassthroughFB,
12716    ) -> Result;
12717    #[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)"]
12718    pub type DestroyPassthroughFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12719    #[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)"]
12720    pub type PassthroughStartFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12721    #[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)"]
12722    pub type PassthroughPauseFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12723    #[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)"]
12724    pub type CreatePassthroughLayerFB = unsafe extern "system" fn(
12725        session: Session,
12726        create_info: *const PassthroughLayerCreateInfoFB,
12727        out_layer: *mut PassthroughLayerFB,
12728    ) -> Result;
12729    #[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)"]
12730    pub type DestroyPassthroughLayerFB =
12731        unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12732    #[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)"]
12733    pub type PassthroughLayerPauseFB =
12734        unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12735    #[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)"]
12736    pub type PassthroughLayerResumeFB =
12737        unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12738    #[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)"]
12739    pub type PassthroughLayerSetStyleFB = unsafe extern "system" fn(
12740        layer: PassthroughLayerFB,
12741        style: *const PassthroughStyleFB,
12742    ) -> Result;
12743    #[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)"]
12744    pub type CreateGeometryInstanceFB = unsafe extern "system" fn(
12745        session: Session,
12746        create_info: *const GeometryInstanceCreateInfoFB,
12747        out_geometry_instance: *mut GeometryInstanceFB,
12748    ) -> Result;
12749    #[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)"]
12750    pub type DestroyGeometryInstanceFB =
12751        unsafe extern "system" fn(instance: GeometryInstanceFB) -> Result;
12752    #[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)"]
12753    pub type GeometryInstanceSetTransformFB = unsafe extern "system" fn(
12754        instance: GeometryInstanceFB,
12755        transformation: *const GeometryInstanceTransformFB,
12756    ) -> Result;
12757    #[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)"]
12758    pub type QuerySpacesFB = unsafe extern "system" fn(
12759        session: Session,
12760        info: *const SpaceQueryInfoBaseHeaderFB,
12761        request_id: *mut AsyncRequestIdFB,
12762    ) -> Result;
12763    #[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)"]
12764    pub type RetrieveSpaceQueryResultsFB = unsafe extern "system" fn(
12765        session: Session,
12766        request_id: AsyncRequestIdFB,
12767        results: *mut SpaceQueryResultsFB,
12768    ) -> Result;
12769    #[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)"]
12770    pub type SaveSpaceFB = unsafe extern "system" fn(
12771        session: Session,
12772        info: *const SpaceSaveInfoFB,
12773        request_id: *mut AsyncRequestIdFB,
12774    ) -> Result;
12775    #[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)"]
12776    pub type EraseSpaceFB = unsafe extern "system" fn(
12777        session: Session,
12778        info: *const SpaceEraseInfoFB,
12779        request_id: *mut AsyncRequestIdFB,
12780    ) -> Result;
12781    #[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)"]
12782    pub type SaveSpaceListFB = unsafe extern "system" fn(
12783        session: Session,
12784        info: *const SpaceListSaveInfoFB,
12785        request_id: *mut AsyncRequestIdFB,
12786    ) -> Result;
12787    #[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)"]
12788    pub type ShareSpacesFB = unsafe extern "system" fn(
12789        session: Session,
12790        info: *const SpaceShareInfoFB,
12791        request_id: *mut AsyncRequestIdFB,
12792    ) -> Result;
12793    #[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)"]
12794    pub type GetSpaceContainerFB = unsafe extern "system" fn(
12795        session: Session,
12796        space: Space,
12797        space_container_output: *mut SpaceContainerFB,
12798    ) -> Result;
12799    #[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)"]
12800    pub type GetSpaceTriangleMeshMETA = unsafe extern "system" fn(
12801        space: Space,
12802        get_info: *const SpaceTriangleMeshGetInfoMETA,
12803        triangle_mesh_output: *mut SpaceTriangleMeshMETA,
12804    ) -> Result;
12805    #[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)"]
12806    pub type GetSpaceBoundingBox2DFB = unsafe extern "system" fn(
12807        session: Session,
12808        space: Space,
12809        bounding_box2_d_output: *mut Rect2Df,
12810    ) -> Result;
12811    #[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)"]
12812    pub type GetSpaceBoundingBox3DFB = unsafe extern "system" fn(
12813        session: Session,
12814        space: Space,
12815        bounding_box3_d_output: *mut Rect3DfFB,
12816    ) -> Result;
12817    #[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)"]
12818    pub type GetSpaceSemanticLabelsFB = unsafe extern "system" fn(
12819        session: Session,
12820        space: Space,
12821        semantic_labels_output: *mut SemanticLabelsFB,
12822    ) -> Result;
12823    #[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)"]
12824    pub type GetSpaceBoundary2DFB = unsafe extern "system" fn(
12825        session: Session,
12826        space: Space,
12827        boundary2_d_output: *mut Boundary2DFB,
12828    ) -> Result;
12829    #[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)"]
12830    pub type GetSpaceRoomLayoutFB = unsafe extern "system" fn(
12831        session: Session,
12832        space: Space,
12833        room_layout_output: *mut RoomLayoutFB,
12834    ) -> Result;
12835    #[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)"]
12836    pub type RequestSceneCaptureFB = unsafe extern "system" fn(
12837        session: Session,
12838        info: *const SceneCaptureRequestInfoFB,
12839        request_id: *mut AsyncRequestIdFB,
12840    ) -> Result;
12841    #[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)"]
12842    pub type PassthroughLayerSetKeyboardHandsIntensityFB = unsafe extern "system" fn(
12843        layer: PassthroughLayerFB,
12844        intensity: *const PassthroughKeyboardHandsIntensityFB,
12845    ) -> Result;
12846    #[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)"]
12847    pub type CreateSpatialAnchorStoreConnectionMSFT = unsafe extern "system" fn(
12848        session: Session,
12849        spatial_anchor_store: *mut SpatialAnchorStoreConnectionMSFT,
12850    ) -> Result;
12851    #[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)"]
12852    pub type DestroySpatialAnchorStoreConnectionMSFT =
12853        unsafe extern "system" fn(spatial_anchor_store: SpatialAnchorStoreConnectionMSFT) -> Result;
12854    #[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)"]
12855    pub type PersistSpatialAnchorMSFT = unsafe extern "system" fn(
12856        spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12857        spatial_anchor_persistence_info: *const SpatialAnchorPersistenceInfoMSFT,
12858    ) -> Result;
12859    #[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)"]
12860    pub type EnumeratePersistedSpatialAnchorNamesMSFT = unsafe extern "system" fn(
12861        spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12862        spatial_anchor_name_capacity_input: u32,
12863        spatial_anchor_name_count_output: *mut u32,
12864        spatial_anchor_names: *mut SpatialAnchorPersistenceNameMSFT,
12865    ) -> Result;
12866    #[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)"]
12867    pub type CreateSpatialAnchorFromPersistedNameMSFT = unsafe extern "system" fn(
12868        session: Session,
12869        spatial_anchor_create_info: *const SpatialAnchorFromPersistedAnchorCreateInfoMSFT,
12870        spatial_anchor: *mut SpatialAnchorMSFT,
12871    ) -> Result;
12872    #[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)"]
12873    pub type UnpersistSpatialAnchorMSFT = unsafe extern "system" fn(
12874        spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12875        spatial_anchor_persistence_name: *const SpatialAnchorPersistenceNameMSFT,
12876    ) -> Result;
12877    #[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)"]
12878    pub type ClearSpatialAnchorStoreMSFT =
12879        unsafe extern "system" fn(spatial_anchor_store: SpatialAnchorStoreConnectionMSFT) -> Result;
12880    #[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)"]
12881    pub type CreateFacialTrackerHTC = unsafe extern "system" fn(
12882        session: Session,
12883        create_info: *const FacialTrackerCreateInfoHTC,
12884        facial_tracker: *mut FacialTrackerHTC,
12885    ) -> Result;
12886    #[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)"]
12887    pub type DestroyFacialTrackerHTC =
12888        unsafe extern "system" fn(facial_tracker: FacialTrackerHTC) -> Result;
12889    #[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)"]
12890    pub type GetFacialExpressionsHTC = unsafe extern "system" fn(
12891        facial_tracker: FacialTrackerHTC,
12892        facial_expressions: *mut FacialExpressionsHTC,
12893    ) -> Result;
12894    #[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)"]
12895    pub type CreatePassthroughHTC = unsafe extern "system" fn(
12896        session: Session,
12897        create_info: *const PassthroughCreateInfoHTC,
12898        passthrough: *mut PassthroughHTC,
12899    ) -> Result;
12900    #[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)"]
12901    pub type DestroyPassthroughHTC =
12902        unsafe extern "system" fn(passthrough: PassthroughHTC) -> Result;
12903    #[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)"]
12904    pub type CreateSpatialAnchorHTC = unsafe extern "system" fn(
12905        session: Session,
12906        create_info: *const SpatialAnchorCreateInfoHTC,
12907        anchor: *mut Space,
12908    ) -> Result;
12909    #[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)"]
12910    pub type GetSpatialAnchorNameHTC =
12911        unsafe extern "system" fn(anchor: Space, name: *mut SpatialAnchorNameHTC) -> Result;
12912    #[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)"]
12913    pub type EnumerateViveTrackerPathsHTCX = unsafe extern "system" fn(
12914        instance: Instance,
12915        path_capacity_input: u32,
12916        path_count_output: *mut u32,
12917        paths: *mut ViveTrackerPathsHTCX,
12918    ) -> Result;
12919    #[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)"]
12920    pub type SetMarkerTrackingVARJO =
12921        unsafe extern "system" fn(session: Session, enabled: Bool32) -> Result;
12922    #[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)"]
12923    pub type SetMarkerTrackingTimeoutVARJO =
12924        unsafe extern "system" fn(session: Session, marker_id: u64, timeout: Duration) -> Result;
12925    #[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)"]
12926    pub type SetMarkerTrackingPredictionVARJO =
12927        unsafe extern "system" fn(session: Session, marker_id: u64, enable: Bool32) -> Result;
12928    #[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)"]
12929    pub type GetMarkerSizeVARJO =
12930        unsafe extern "system" fn(session: Session, marker_id: u64, size: *mut Extent2Df) -> Result;
12931    #[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)"]
12932    pub type CreateMarkerSpaceVARJO = unsafe extern "system" fn(
12933        session: Session,
12934        create_info: *const MarkerSpaceCreateInfoVARJO,
12935        space: *mut Space,
12936    ) -> Result;
12937    #[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)"]
12938    pub type SetDigitalLensControlALMALENCE = unsafe extern "system" fn(
12939        session: Session,
12940        digital_lens_control: *const DigitalLensControlALMALENCE,
12941    ) -> Result;
12942    #[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)"]
12943    pub type SetViewOffsetVARJO =
12944        unsafe extern "system" fn(session: Session, offset: f32) -> Result;
12945    #[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)"]
12946    pub type EnumerateExternalCamerasOCULUS = unsafe extern "system" fn(
12947        session: Session,
12948        camera_capacity_input: u32,
12949        camera_count_output: *mut u32,
12950        cameras: *mut ExternalCameraOCULUS,
12951    ) -> Result;
12952    #[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)"]
12953    pub type CreatePassthroughColorLutMETA = unsafe extern "system" fn(
12954        passthrough: PassthroughFB,
12955        create_info: *const PassthroughColorLutCreateInfoMETA,
12956        color_lut: *mut PassthroughColorLutMETA,
12957    ) -> Result;
12958    #[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)"]
12959    pub type DestroyPassthroughColorLutMETA =
12960        unsafe extern "system" fn(color_lut: PassthroughColorLutMETA) -> Result;
12961    #[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)"]
12962    pub type UpdatePassthroughColorLutMETA = unsafe extern "system" fn(
12963        color_lut: PassthroughColorLutMETA,
12964        update_info: *const PassthroughColorLutUpdateInfoMETA,
12965    ) -> Result;
12966    #[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)"]
12967    pub type EnumeratePerformanceMetricsCounterPathsMETA = unsafe extern "system" fn(
12968        instance: Instance,
12969        counter_path_capacity_input: u32,
12970        counter_path_count_output: *mut u32,
12971        counter_paths: *mut Path,
12972    ) -> Result;
12973    #[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)"]
12974    pub type SetPerformanceMetricsStateMETA = unsafe extern "system" fn(
12975        session: Session,
12976        state: *const PerformanceMetricsStateMETA,
12977    ) -> Result;
12978    #[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)"]
12979    pub type GetPerformanceMetricsStateMETA = unsafe extern "system" fn(
12980        session: Session,
12981        state: *mut PerformanceMetricsStateMETA,
12982    ) -> Result;
12983    #[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)"]
12984    pub type QueryPerformanceMetricsCounterMETA = unsafe extern "system" fn(
12985        session: Session,
12986        counter_path: Path,
12987        counter: *mut PerformanceMetricsCounterMETA,
12988    ) -> Result;
12989    #[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)"]
12990    pub type GetPassthroughPreferencesMETA = unsafe extern "system" fn(
12991        session: Session,
12992        preferences: *mut PassthroughPreferencesMETA,
12993    ) -> Result;
12994    #[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)"]
12995    pub type ApplyFoveationHTC = unsafe extern "system" fn(
12996        session: Session,
12997        apply_info: *const FoveationApplyInfoHTC,
12998    ) -> Result;
12999    #[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)"]
13000    pub type CreateSpaceFromCoordinateFrameUIDML = unsafe extern "system" fn(
13001        session: Session,
13002        create_info: *const CoordinateSpaceCreateInfoML,
13003        space: *mut Space,
13004    ) -> Result;
13005    #[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)"]
13006    pub type GetDeviceSampleRateFB = unsafe extern "system" fn(
13007        session: Session,
13008        haptic_action_info: *const HapticActionInfo,
13009        device_sample_rate: *mut DevicePcmSampleRateGetInfoFB,
13010    ) -> Result;
13011    #[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)"]
13012    pub type SetTrackingOptimizationSettingsHintQCOM = unsafe extern "system" fn(
13013        session: Session,
13014        domain: TrackingOptimizationSettingsDomainQCOM,
13015        hint: TrackingOptimizationSettingsHintQCOM,
13016    ) -> Result;
13017    #[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)"]
13018    pub type CreateSpaceUserFB = unsafe extern "system" fn(
13019        session: Session,
13020        info: *const SpaceUserCreateInfoFB,
13021        user: *mut SpaceUserFB,
13022    ) -> Result;
13023    #[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)"]
13024    pub type GetSpaceUserIdFB =
13025        unsafe extern "system" fn(user: SpaceUserFB, user_id: *mut SpaceUserIdFB) -> Result;
13026    #[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)"]
13027    pub type DestroySpaceUserFB = unsafe extern "system" fn(user: SpaceUserFB) -> Result;
13028    #[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)"]
13029    pub type GetRecommendedLayerResolutionMETA = unsafe extern "system" fn(
13030        session: Session,
13031        info: *const RecommendedLayerResolutionGetInfoMETA,
13032        resolution: *mut RecommendedLayerResolutionMETA,
13033    ) -> Result;
13034    #[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)"]
13035    pub type ApplyForceFeedbackCurlMNDX = unsafe extern "system" fn(
13036        hand_tracker: HandTrackerEXT,
13037        locations: *const ForceFeedbackCurlApplyLocationsMNDX,
13038    ) -> Result;
13039    #[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)"]
13040    pub type CreatePlaneDetectorEXT = unsafe extern "system" fn(
13041        session: Session,
13042        create_info: *const PlaneDetectorCreateInfoEXT,
13043        plane_detector: *mut PlaneDetectorEXT,
13044    ) -> Result;
13045    #[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)"]
13046    pub type DestroyPlaneDetectorEXT =
13047        unsafe extern "system" fn(plane_detector: PlaneDetectorEXT) -> Result;
13048    #[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)"]
13049    pub type BeginPlaneDetectionEXT = unsafe extern "system" fn(
13050        plane_detector: PlaneDetectorEXT,
13051        begin_info: *const PlaneDetectorBeginInfoEXT,
13052    ) -> Result;
13053    #[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)"]
13054    pub type GetPlaneDetectionStateEXT = unsafe extern "system" fn(
13055        plane_detector: PlaneDetectorEXT,
13056        state: *mut PlaneDetectionStateEXT,
13057    ) -> Result;
13058    #[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)"]
13059    pub type GetPlaneDetectionsEXT = unsafe extern "system" fn(
13060        plane_detector: PlaneDetectorEXT,
13061        info: *const PlaneDetectorGetInfoEXT,
13062        locations: *mut PlaneDetectorLocationsEXT,
13063    ) -> Result;
13064    #[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)"]
13065    pub type GetPlanePolygonBufferEXT = unsafe extern "system" fn(
13066        plane_detector: PlaneDetectorEXT,
13067        plane_id: u64,
13068        polygon_buffer_index: u32,
13069        polygon_buffer: *mut PlaneDetectorPolygonBufferEXT,
13070    ) -> Result;
13071    #[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)"]
13072    pub type CreateVirtualKeyboardMETA = unsafe extern "system" fn(
13073        session: Session,
13074        create_info: *const VirtualKeyboardCreateInfoMETA,
13075        keyboard: *mut VirtualKeyboardMETA,
13076    ) -> Result;
13077    #[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)"]
13078    pub type DestroyVirtualKeyboardMETA =
13079        unsafe extern "system" fn(keyboard: VirtualKeyboardMETA) -> Result;
13080    #[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)"]
13081    pub type CreateVirtualKeyboardSpaceMETA = unsafe extern "system" fn(
13082        session: Session,
13083        keyboard: VirtualKeyboardMETA,
13084        create_info: *const VirtualKeyboardSpaceCreateInfoMETA,
13085        keyboard_space: *mut Space,
13086    ) -> Result;
13087    #[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)"]
13088    pub type SuggestVirtualKeyboardLocationMETA = unsafe extern "system" fn(
13089        keyboard: VirtualKeyboardMETA,
13090        location_info: *const VirtualKeyboardLocationInfoMETA,
13091    ) -> Result;
13092    #[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)"]
13093    pub type GetVirtualKeyboardScaleMETA =
13094        unsafe extern "system" fn(keyboard: VirtualKeyboardMETA, scale: *mut f32) -> Result;
13095    #[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)"]
13096    pub type SetVirtualKeyboardModelVisibilityMETA = unsafe extern "system" fn(
13097        keyboard: VirtualKeyboardMETA,
13098        model_visibility: *const VirtualKeyboardModelVisibilitySetInfoMETA,
13099    ) -> Result;
13100    #[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)"]
13101    pub type GetVirtualKeyboardModelAnimationStatesMETA = unsafe extern "system" fn(
13102        keyboard: VirtualKeyboardMETA,
13103        animation_states: *mut VirtualKeyboardModelAnimationStatesMETA,
13104    ) -> Result;
13105    #[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)"]
13106    pub type GetVirtualKeyboardDirtyTexturesMETA = unsafe extern "system" fn(
13107        keyboard: VirtualKeyboardMETA,
13108        texture_id_capacity_input: u32,
13109        texture_id_count_output: *mut u32,
13110        texture_ids: *mut u64,
13111    ) -> Result;
13112    #[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)"]
13113    pub type GetVirtualKeyboardTextureDataMETA = unsafe extern "system" fn(
13114        keyboard: VirtualKeyboardMETA,
13115        texture_id: u64,
13116        texture_data: *mut VirtualKeyboardTextureDataMETA,
13117    ) -> Result;
13118    #[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)"]
13119    pub type SendVirtualKeyboardInputMETA = unsafe extern "system" fn(
13120        keyboard: VirtualKeyboardMETA,
13121        info: *const VirtualKeyboardInputInfoMETA,
13122        interactor_root_pose: *mut Posef,
13123    ) -> Result;
13124    #[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)"]
13125    pub type ChangeVirtualKeyboardTextContextMETA = unsafe extern "system" fn(
13126        keyboard: VirtualKeyboardMETA,
13127        change_info: *const VirtualKeyboardTextContextChangeInfoMETA,
13128    ) -> Result;
13129    #[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)"]
13130    pub type EnableUserCalibrationEventsML = unsafe extern "system" fn(
13131        instance: Instance,
13132        enable_info: *const UserCalibrationEnableEventsInfoML,
13133    ) -> Result;
13134    #[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)"]
13135    pub type EnableLocalizationEventsML = unsafe extern "system" fn(
13136        session: Session,
13137        info: *const LocalizationEnableEventsInfoML,
13138    ) -> Result;
13139    #[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)"]
13140    pub type QueryLocalizationMapsML = unsafe extern "system" fn(
13141        session: Session,
13142        query_info: *const LocalizationMapQueryInfoBaseHeaderML,
13143        map_capacity_input: u32,
13144        map_count_output: *mut u32,
13145        maps: *mut LocalizationMapML,
13146    ) -> Result;
13147    #[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)"]
13148    pub type RequestMapLocalizationML = unsafe extern "system" fn(
13149        session: Session,
13150        request_info: *const MapLocalizationRequestInfoML,
13151    ) -> Result;
13152    #[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)"]
13153    pub type ImportLocalizationMapML = unsafe extern "system" fn(
13154        session: Session,
13155        import_info: *const LocalizationMapImportInfoML,
13156        map_uuid: *mut UuidEXT,
13157    ) -> Result;
13158    #[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)"]
13159    pub type CreateExportedLocalizationMapML = unsafe extern "system" fn(
13160        session: Session,
13161        map_uuid: *const UuidEXT,
13162        map: *mut ExportedLocalizationMapML,
13163    ) -> Result;
13164    #[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)"]
13165    pub type DestroyExportedLocalizationMapML =
13166        unsafe extern "system" fn(map: ExportedLocalizationMapML) -> Result;
13167    #[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)"]
13168    pub type GetExportedLocalizationMapDataML = unsafe extern "system" fn(
13169        map: ExportedLocalizationMapML,
13170        buffer_capacity_input: u32,
13171        buffer_count_output: *mut u32,
13172        buffer: *mut c_char,
13173    ) -> Result;
13174    #[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)"]
13175    pub type CreateMarkerDetectorML = unsafe extern "system" fn(
13176        session: Session,
13177        create_info: *const MarkerDetectorCreateInfoML,
13178        marker_detector: *mut MarkerDetectorML,
13179    ) -> Result;
13180    #[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)"]
13181    pub type DestroyMarkerDetectorML =
13182        unsafe extern "system" fn(marker_detector: MarkerDetectorML) -> Result;
13183    #[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)"]
13184    pub type SnapshotMarkerDetectorML = unsafe extern "system" fn(
13185        marker_detector: MarkerDetectorML,
13186        snapshot_info: *mut MarkerDetectorSnapshotInfoML,
13187    ) -> Result;
13188    #[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)"]
13189    pub type GetMarkerDetectorStateML = unsafe extern "system" fn(
13190        marker_detector: MarkerDetectorML,
13191        state: *mut MarkerDetectorStateML,
13192    ) -> Result;
13193    #[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)"]
13194    pub type GetMarkersML = unsafe extern "system" fn(
13195        marker_detector: MarkerDetectorML,
13196        marker_capacity_input: u32,
13197        marker_count_output: *mut u32,
13198        markers: *mut MarkerML,
13199    ) -> Result;
13200    #[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)"]
13201    pub type GetMarkerReprojectionErrorML = unsafe extern "system" fn(
13202        marker_detector: MarkerDetectorML,
13203        marker: MarkerML,
13204        reprojection_error_meters: *mut f32,
13205    ) -> Result;
13206    #[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)"]
13207    pub type GetMarkerLengthML = unsafe extern "system" fn(
13208        marker_detector: MarkerDetectorML,
13209        marker: MarkerML,
13210        meters: *mut f32,
13211    ) -> Result;
13212    #[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)"]
13213    pub type GetMarkerNumberML = unsafe extern "system" fn(
13214        marker_detector: MarkerDetectorML,
13215        marker: MarkerML,
13216        number: *mut u64,
13217    ) -> Result;
13218    #[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)"]
13219    pub type GetMarkerStringML = unsafe extern "system" fn(
13220        marker_detector: MarkerDetectorML,
13221        marker: MarkerML,
13222        buffer_capacity_input: u32,
13223        buffer_count_output: *mut u32,
13224        buffer: *mut c_char,
13225    ) -> Result;
13226    #[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)"]
13227    pub type CreateMarkerSpaceML = unsafe extern "system" fn(
13228        session: Session,
13229        create_info: *const MarkerSpaceCreateInfoML,
13230        space: *mut Space,
13231    ) -> Result;
13232    #[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)"]
13233    pub type PollFutureEXT = unsafe extern "system" fn(
13234        instance: Instance,
13235        poll_info: *const FuturePollInfoEXT,
13236        poll_result: *mut FuturePollResultEXT,
13237    ) -> Result;
13238    #[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)"]
13239    pub type CancelFutureEXT = unsafe extern "system" fn(
13240        instance: Instance,
13241        cancel_info: *const FutureCancelInfoEXT,
13242    ) -> Result;
13243    #[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)"]
13244    pub type CreateEnvironmentDepthProviderMETA = unsafe extern "system" fn(
13245        session: Session,
13246        create_info: *const EnvironmentDepthProviderCreateInfoMETA,
13247        environment_depth_provider: *mut EnvironmentDepthProviderMETA,
13248    ) -> Result;
13249    #[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)"]
13250    pub type DestroyEnvironmentDepthProviderMETA = unsafe extern "system" fn(
13251        environment_depth_provider: EnvironmentDepthProviderMETA,
13252    ) -> Result;
13253    #[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)"]
13254    pub type StartEnvironmentDepthProviderMETA = unsafe extern "system" fn(
13255        environment_depth_provider: EnvironmentDepthProviderMETA,
13256    ) -> Result;
13257    #[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)"]
13258    pub type StopEnvironmentDepthProviderMETA = unsafe extern "system" fn(
13259        environment_depth_provider: EnvironmentDepthProviderMETA,
13260    ) -> Result;
13261    #[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)"]
13262    pub type CreateEnvironmentDepthSwapchainMETA = unsafe extern "system" fn(
13263        environment_depth_provider: EnvironmentDepthProviderMETA,
13264        create_info: *const EnvironmentDepthSwapchainCreateInfoMETA,
13265        swapchain: *mut EnvironmentDepthSwapchainMETA,
13266    ) -> Result;
13267    #[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)"]
13268    pub type DestroyEnvironmentDepthSwapchainMETA =
13269        unsafe extern "system" fn(swapchain: EnvironmentDepthSwapchainMETA) -> Result;
13270    #[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)"]
13271    pub type EnumerateEnvironmentDepthSwapchainImagesMETA = unsafe extern "system" fn(
13272        swapchain: EnvironmentDepthSwapchainMETA,
13273        image_capacity_input: u32,
13274        image_count_output: *mut u32,
13275        images: *mut SwapchainImageBaseHeader,
13276    )
13277        -> Result;
13278    #[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)"]
13279    pub type GetEnvironmentDepthSwapchainStateMETA = unsafe extern "system" fn(
13280        swapchain: EnvironmentDepthSwapchainMETA,
13281        state: *mut EnvironmentDepthSwapchainStateMETA,
13282    ) -> Result;
13283    #[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)"]
13284    pub type AcquireEnvironmentDepthImageMETA = unsafe extern "system" fn(
13285        environment_depth_provider: EnvironmentDepthProviderMETA,
13286        acquire_info: *const EnvironmentDepthImageAcquireInfoMETA,
13287        environment_depth_image: *mut EnvironmentDepthImageMETA,
13288    ) -> Result;
13289    #[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)"]
13290    pub type SetEnvironmentDepthHandRemovalMETA = unsafe extern "system" fn(
13291        environment_depth_provider: EnvironmentDepthProviderMETA,
13292        set_info: *const EnvironmentDepthHandRemovalSetInfoMETA,
13293    ) -> Result;
13294    #[doc = "See [xrLocateSpaces](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpaces)"]
13295    pub type LocateSpaces = unsafe extern "system" fn(
13296        session: Session,
13297        locate_info: *const SpacesLocateInfo,
13298        space_locations: *mut SpaceLocations,
13299    ) -> Result;
13300    #[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)"]
13301    pub type GetVulkanGraphicsRequirements2KHR = unsafe extern "system" fn(
13302        instance: Instance,
13303        system_id: SystemId,
13304        graphics_requirements: *mut GraphicsRequirementsVulkanKHR,
13305    ) -> Result;
13306    #[doc = "See [xrLocateSpacesKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpacesKHR)"]
13307    pub type LocateSpacesKHR = unsafe extern "system" fn(
13308        session: Session,
13309        locate_info: *const SpacesLocateInfo,
13310        space_locations: *mut SpaceLocations,
13311    ) -> Result;
13312}
13313pub const ALMALENCE_digital_lens_control_SPEC_VERSION: u32 = 1u32;
13314pub const ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME: &[u8] =
13315    b"XR_ALMALENCE_digital_lens_control\0";
13316pub const BD_controller_interaction_SPEC_VERSION: u32 = 2u32;
13317pub const BD_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_BD_controller_interaction\0";
13318pub const EPIC_view_configuration_fov_SPEC_VERSION: u32 = 2u32;
13319pub const EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME: &[u8] = b"XR_EPIC_view_configuration_fov\0";
13320pub const EXT_performance_settings_SPEC_VERSION: u32 = 4u32;
13321pub const EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME: &[u8] = b"XR_EXT_performance_settings\0";
13322pub const EXT_thermal_query_SPEC_VERSION: u32 = 2u32;
13323pub const EXT_THERMAL_QUERY_EXTENSION_NAME: &[u8] = b"XR_EXT_thermal_query\0";
13324pub const EXT_debug_utils_SPEC_VERSION: u32 = 5u32;
13325pub const EXT_DEBUG_UTILS_EXTENSION_NAME: &[u8] = b"XR_EXT_debug_utils\0";
13326pub const EXT_eye_gaze_interaction_SPEC_VERSION: u32 = 2u32;
13327pub const EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_EXT_eye_gaze_interaction\0";
13328pub const EXT_view_configuration_depth_range_SPEC_VERSION: u32 = 1u32;
13329pub const EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME: &[u8] =
13330    b"XR_EXT_view_configuration_depth_range\0";
13331pub const EXT_conformance_automation_SPEC_VERSION: u32 = 3u32;
13332pub const EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME: &[u8] = b"XR_EXT_conformance_automation\0";
13333pub const EXT_hand_tracking_SPEC_VERSION: u32 = 4u32;
13334pub const EXT_HAND_TRACKING_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_tracking\0";
13335#[cfg(windows)]
13336pub const EXT_win32_appcontainer_compatible_SPEC_VERSION: u32 = 1u32;
13337#[cfg(windows)]
13338pub const EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME: &[u8] =
13339    b"XR_EXT_win32_appcontainer_compatible\0";
13340pub const EXT_dpad_binding_SPEC_VERSION: u32 = 1u32;
13341pub const EXT_DPAD_BINDING_EXTENSION_NAME: &[u8] = b"XR_EXT_dpad_binding\0";
13342pub const EXT_hand_joints_motion_range_SPEC_VERSION: u32 = 1u32;
13343pub const EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_joints_motion_range\0";
13344pub const EXT_samsung_odyssey_controller_SPEC_VERSION: u32 = 1u32;
13345pub const EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME: &[u8] =
13346    b"XR_EXT_samsung_odyssey_controller\0";
13347pub const EXT_hp_mixed_reality_controller_SPEC_VERSION: u32 = 1u32;
13348pub const EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME: &[u8] =
13349    b"XR_EXT_hp_mixed_reality_controller\0";
13350pub const EXT_palm_pose_SPEC_VERSION: u32 = 3u32;
13351pub const EXT_PALM_POSE_EXTENSION_NAME: &[u8] = b"XR_EXT_palm_pose\0";
13352pub const EXT_uuid_SPEC_VERSION: u32 = 1u32;
13353pub const EXT_UUID_EXTENSION_NAME: &[u8] = b"XR_EXT_uuid\0";
13354pub const EXT_hand_interaction_SPEC_VERSION: u32 = 1u32;
13355pub const EXT_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_interaction\0";
13356pub const EXT_active_action_set_priority_SPEC_VERSION: u32 = 1u32;
13357pub const EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME: &[u8] =
13358    b"XR_EXT_active_action_set_priority\0";
13359pub const EXT_local_floor_SPEC_VERSION: u32 = 1u32;
13360pub const EXT_LOCAL_FLOOR_EXTENSION_NAME: &[u8] = b"XR_EXT_local_floor\0";
13361pub const EXT_hand_tracking_data_source_SPEC_VERSION: u32 = 1u32;
13362pub const EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME: &[u8] =
13363    b"XR_EXT_hand_tracking_data_source\0";
13364pub const EXT_plane_detection_SPEC_VERSION: u32 = 2u32;
13365pub const EXT_PLANE_DETECTION_EXTENSION_NAME: &[u8] = b"XR_EXT_plane_detection\0";
13366pub const EXT_future_SPEC_VERSION: u32 = 1u32;
13367pub const EXT_FUTURE_EXTENSION_NAME: &[u8] = b"XR_EXT_future\0";
13368pub const EXT_user_presence_SPEC_VERSION: u32 = 1u32;
13369pub const EXT_USER_PRESENCE_EXTENSION_NAME: &[u8] = b"XR_EXT_user_presence\0";
13370pub const EXT_composition_layer_inverted_alpha_SPEC_VERSION: u32 = 1u32;
13371pub const EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME: &[u8] =
13372    b"XR_EXT_composition_layer_inverted_alpha\0";
13373pub const FB_composition_layer_image_layout_SPEC_VERSION: u32 = 1u32;
13374pub const FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME: &[u8] =
13375    b"XR_FB_composition_layer_image_layout\0";
13376pub const FB_composition_layer_alpha_blend_SPEC_VERSION: u32 = 3u32;
13377pub const FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME: &[u8] =
13378    b"XR_FB_composition_layer_alpha_blend\0";
13379#[cfg(target_os = "android")]
13380pub const FB_android_surface_swapchain_create_SPEC_VERSION: u32 = 1u32;
13381#[cfg(target_os = "android")]
13382pub const FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME: &[u8] =
13383    b"XR_FB_android_surface_swapchain_create\0";
13384pub const FB_swapchain_update_state_SPEC_VERSION: u32 = 3u32;
13385pub const FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME: &[u8] = b"XR_FB_swapchain_update_state\0";
13386pub const FB_composition_layer_secure_content_SPEC_VERSION: u32 = 1u32;
13387pub const FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME: &[u8] =
13388    b"XR_FB_composition_layer_secure_content\0";
13389pub const FB_body_tracking_SPEC_VERSION: u32 = 1u32;
13390pub const FB_BODY_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_body_tracking\0";
13391pub const FB_display_refresh_rate_SPEC_VERSION: u32 = 1u32;
13392pub const FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME: &[u8] = b"XR_FB_display_refresh_rate\0";
13393pub const FB_color_space_SPEC_VERSION: u32 = 3u32;
13394pub const FB_COLOR_SPACE_EXTENSION_NAME: &[u8] = b"XR_FB_color_space\0";
13395pub const FB_hand_tracking_mesh_SPEC_VERSION: u32 = 3u32;
13396pub const FB_HAND_TRACKING_MESH_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_mesh\0";
13397pub const FB_hand_tracking_aim_SPEC_VERSION: u32 = 2u32;
13398pub const FB_HAND_TRACKING_AIM_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_aim\0";
13399pub const FB_hand_tracking_capsules_SPEC_VERSION: u32 = 3u32;
13400pub const FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_capsules\0";
13401pub const FB_spatial_entity_SPEC_VERSION: u32 = 3u32;
13402pub const FB_SPATIAL_ENTITY_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity\0";
13403pub const FB_foveation_SPEC_VERSION: u32 = 1u32;
13404pub const FB_FOVEATION_EXTENSION_NAME: &[u8] = b"XR_FB_foveation\0";
13405pub const FB_foveation_configuration_SPEC_VERSION: u32 = 1u32;
13406pub const FB_FOVEATION_CONFIGURATION_EXTENSION_NAME: &[u8] = b"XR_FB_foveation_configuration\0";
13407pub const FB_keyboard_tracking_SPEC_VERSION: u32 = 1u32;
13408pub const FB_KEYBOARD_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_keyboard_tracking\0";
13409pub const FB_triangle_mesh_SPEC_VERSION: u32 = 2u32;
13410pub const FB_TRIANGLE_MESH_EXTENSION_NAME: &[u8] = b"XR_FB_triangle_mesh\0";
13411pub const FB_passthrough_SPEC_VERSION: u32 = 4u32;
13412pub const FB_PASSTHROUGH_EXTENSION_NAME: &[u8] = b"XR_FB_passthrough\0";
13413pub const FB_render_model_SPEC_VERSION: u32 = 4u32;
13414pub const FB_RENDER_MODEL_EXTENSION_NAME: &[u8] = b"XR_FB_render_model\0";
13415pub const FB_spatial_entity_query_SPEC_VERSION: u32 = 1u32;
13416pub const FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_query\0";
13417pub const FB_spatial_entity_storage_SPEC_VERSION: u32 = 1u32;
13418pub const FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_storage\0";
13419pub const FB_foveation_vulkan_SPEC_VERSION: u32 = 1u32;
13420pub const FB_FOVEATION_VULKAN_EXTENSION_NAME: &[u8] = b"XR_FB_foveation_vulkan\0";
13421#[cfg(target_os = "android")]
13422pub const FB_swapchain_update_state_android_surface_SPEC_VERSION: u32 = 1u32;
13423#[cfg(target_os = "android")]
13424pub const FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME: &[u8] =
13425    b"XR_FB_swapchain_update_state_android_surface\0";
13426pub const FB_swapchain_update_state_opengl_es_SPEC_VERSION: u32 = 1u32;
13427pub const FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME: &[u8] =
13428    b"XR_FB_swapchain_update_state_opengl_es\0";
13429pub const FB_swapchain_update_state_vulkan_SPEC_VERSION: u32 = 1u32;
13430pub const FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME: &[u8] =
13431    b"XR_FB_swapchain_update_state_vulkan\0";
13432pub const FB_touch_controller_pro_SPEC_VERSION: u32 = 1u32;
13433pub const FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME: &[u8] = b"XR_FB_touch_controller_pro\0";
13434pub const FB_spatial_entity_sharing_SPEC_VERSION: u32 = 1u32;
13435pub const FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_sharing\0";
13436pub const FB_space_warp_SPEC_VERSION: u32 = 2u32;
13437pub const FB_SPACE_WARP_EXTENSION_NAME: &[u8] = b"XR_FB_space_warp\0";
13438pub const FB_haptic_amplitude_envelope_SPEC_VERSION: u32 = 1u32;
13439pub const FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME: &[u8] = b"XR_FB_haptic_amplitude_envelope\0";
13440pub const FB_scene_SPEC_VERSION: u32 = 4u32;
13441pub const FB_SCENE_EXTENSION_NAME: &[u8] = b"XR_FB_scene\0";
13442pub const FB_scene_capture_SPEC_VERSION: u32 = 1u32;
13443pub const FB_SCENE_CAPTURE_EXTENSION_NAME: &[u8] = b"XR_FB_scene_capture\0";
13444pub const FB_spatial_entity_container_SPEC_VERSION: u32 = 2u32;
13445pub const FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_container\0";
13446pub const FB_face_tracking_SPEC_VERSION: u32 = 1u32;
13447pub const FB_FACE_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_face_tracking\0";
13448pub const FB_eye_tracking_social_SPEC_VERSION: u32 = 1u32;
13449pub const FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME: &[u8] = b"XR_FB_eye_tracking_social\0";
13450pub const FB_passthrough_keyboard_hands_SPEC_VERSION: u32 = 2u32;
13451pub const FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME: &[u8] =
13452    b"XR_FB_passthrough_keyboard_hands\0";
13453pub const FB_composition_layer_settings_SPEC_VERSION: u32 = 1u32;
13454pub const FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME: &[u8] =
13455    b"XR_FB_composition_layer_settings\0";
13456pub const FB_touch_controller_proximity_SPEC_VERSION: u32 = 1u32;
13457pub const FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME: &[u8] =
13458    b"XR_FB_touch_controller_proximity\0";
13459pub const FB_haptic_pcm_SPEC_VERSION: u32 = 1u32;
13460pub const FB_HAPTIC_PCM_EXTENSION_NAME: &[u8] = b"XR_FB_haptic_pcm\0";
13461pub const FB_composition_layer_depth_test_SPEC_VERSION: u32 = 1u32;
13462pub const FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME: &[u8] =
13463    b"XR_FB_composition_layer_depth_test\0";
13464pub const FB_spatial_entity_storage_batch_SPEC_VERSION: u32 = 1u32;
13465pub const FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME: &[u8] =
13466    b"XR_FB_spatial_entity_storage_batch\0";
13467pub const FB_spatial_entity_user_SPEC_VERSION: u32 = 1u32;
13468pub const FB_SPATIAL_ENTITY_USER_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_user\0";
13469pub const FB_face_tracking2_SPEC_VERSION: u32 = 1u32;
13470pub const FB_FACE_TRACKING2_EXTENSION_NAME: &[u8] = b"XR_FB_face_tracking2\0";
13471pub const HTC_vive_cosmos_controller_interaction_SPEC_VERSION: u32 = 1u32;
13472pub const HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13473    b"XR_HTC_vive_cosmos_controller_interaction\0";
13474pub const HTC_facial_tracking_SPEC_VERSION: u32 = 2u32;
13475pub const HTC_FACIAL_TRACKING_EXTENSION_NAME: &[u8] = b"XR_HTC_facial_tracking\0";
13476pub const HTC_vive_focus3_controller_interaction_SPEC_VERSION: u32 = 2u32;
13477pub const HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13478    b"XR_HTC_vive_focus3_controller_interaction\0";
13479pub const HTC_hand_interaction_SPEC_VERSION: u32 = 1u32;
13480pub const HTC_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_HTC_hand_interaction\0";
13481pub const HTC_vive_wrist_tracker_interaction_SPEC_VERSION: u32 = 1u32;
13482pub const HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME: &[u8] =
13483    b"XR_HTC_vive_wrist_tracker_interaction\0";
13484pub const HTC_passthrough_SPEC_VERSION: u32 = 1u32;
13485pub const HTC_PASSTHROUGH_EXTENSION_NAME: &[u8] = b"XR_HTC_passthrough\0";
13486pub const HTC_foveation_SPEC_VERSION: u32 = 1u32;
13487pub const HTC_FOVEATION_EXTENSION_NAME: &[u8] = b"XR_HTC_foveation\0";
13488pub const HTC_anchor_SPEC_VERSION: u32 = 1u32;
13489pub const HTC_ANCHOR_EXTENSION_NAME: &[u8] = b"XR_HTC_anchor\0";
13490pub const HUAWEI_controller_interaction_SPEC_VERSION: u32 = 1u32;
13491pub const HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13492    b"XR_HUAWEI_controller_interaction\0";
13493#[cfg(target_os = "android")]
13494pub const KHR_android_thread_settings_SPEC_VERSION: u32 = 6u32;
13495#[cfg(target_os = "android")]
13496pub const KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME: &[u8] = b"XR_KHR_android_thread_settings\0";
13497#[cfg(target_os = "android")]
13498pub const KHR_android_surface_swapchain_SPEC_VERSION: u32 = 4u32;
13499#[cfg(target_os = "android")]
13500pub const KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME: &[u8] =
13501    b"XR_KHR_android_surface_swapchain\0";
13502pub const KHR_composition_layer_cube_SPEC_VERSION: u32 = 8u32;
13503pub const KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME: &[u8] = b"XR_KHR_composition_layer_cube\0";
13504#[cfg(target_os = "android")]
13505pub const KHR_android_create_instance_SPEC_VERSION: u32 = 3u32;
13506#[cfg(target_os = "android")]
13507pub const KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME: &[u8] = b"XR_KHR_android_create_instance\0";
13508pub const KHR_composition_layer_depth_SPEC_VERSION: u32 = 6u32;
13509pub const KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME: &[u8] = b"XR_KHR_composition_layer_depth\0";
13510pub const KHR_vulkan_swapchain_format_list_SPEC_VERSION: u32 = 4u32;
13511pub const KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME: &[u8] =
13512    b"XR_KHR_vulkan_swapchain_format_list\0";
13513pub const KHR_composition_layer_cylinder_SPEC_VERSION: u32 = 4u32;
13514pub const KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME: &[u8] =
13515    b"XR_KHR_composition_layer_cylinder\0";
13516pub const KHR_composition_layer_equirect_SPEC_VERSION: u32 = 3u32;
13517pub const KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME: &[u8] =
13518    b"XR_KHR_composition_layer_equirect\0";
13519pub const KHR_opengl_enable_SPEC_VERSION: u32 = 10u32;
13520pub const KHR_OPENGL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_opengl_enable\0";
13521pub const KHR_opengl_es_enable_SPEC_VERSION: u32 = 8u32;
13522pub const KHR_OPENGL_ES_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_opengl_es_enable\0";
13523pub const KHR_vulkan_enable_SPEC_VERSION: u32 = 8u32;
13524pub const KHR_VULKAN_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_vulkan_enable\0";
13525#[cfg(windows)]
13526pub const KHR_D3D11_enable_SPEC_VERSION: u32 = 9u32;
13527#[cfg(windows)]
13528pub const KHR_D3D11_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_D3D11_enable\0";
13529#[cfg(windows)]
13530pub const KHR_D3D12_enable_SPEC_VERSION: u32 = 9u32;
13531#[cfg(windows)]
13532pub const KHR_D3D12_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_D3D12_enable\0";
13533#[cfg(target_vendor = "apple")]
13534pub const KHR_metal_enable_SPEC_VERSION: u32 = 1u32;
13535#[cfg(target_vendor = "apple")]
13536pub const KHR_METAL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_metal_enable\0";
13537pub const KHR_visibility_mask_SPEC_VERSION: u32 = 2u32;
13538pub const KHR_VISIBILITY_MASK_EXTENSION_NAME: &[u8] = b"XR_KHR_visibility_mask\0";
13539pub const KHR_composition_layer_color_scale_bias_SPEC_VERSION: u32 = 5u32;
13540pub const KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME: &[u8] =
13541    b"XR_KHR_composition_layer_color_scale_bias\0";
13542#[cfg(windows)]
13543pub const KHR_win32_convert_performance_counter_time_SPEC_VERSION: u32 = 1u32;
13544#[cfg(windows)]
13545pub const KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME: &[u8] =
13546    b"XR_KHR_win32_convert_performance_counter_time\0";
13547pub const KHR_convert_timespec_time_SPEC_VERSION: u32 = 1u32;
13548pub const KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME: &[u8] = b"XR_KHR_convert_timespec_time\0";
13549pub const KHR_loader_init_SPEC_VERSION: u32 = 2u32;
13550pub const KHR_LOADER_INIT_EXTENSION_NAME: &[u8] = b"XR_KHR_loader_init\0";
13551#[cfg(target_os = "android")]
13552pub const KHR_loader_init_android_SPEC_VERSION: u32 = 1u32;
13553#[cfg(target_os = "android")]
13554pub const KHR_LOADER_INIT_ANDROID_EXTENSION_NAME: &[u8] = b"XR_KHR_loader_init_android\0";
13555pub const KHR_vulkan_enable2_SPEC_VERSION: u32 = 2u32;
13556pub const KHR_VULKAN_ENABLE2_EXTENSION_NAME: &[u8] = b"XR_KHR_vulkan_enable2\0";
13557pub const KHR_composition_layer_equirect2_SPEC_VERSION: u32 = 1u32;
13558pub const KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME: &[u8] =
13559    b"XR_KHR_composition_layer_equirect2\0";
13560pub const KHR_binding_modification_SPEC_VERSION: u32 = 1u32;
13561pub const KHR_BINDING_MODIFICATION_EXTENSION_NAME: &[u8] = b"XR_KHR_binding_modification\0";
13562pub const KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION: u32 = 3u32;
13563pub const KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME: &[u8] =
13564    b"XR_KHR_swapchain_usage_input_attachment_bit\0";
13565pub const KHR_locate_spaces_SPEC_VERSION: u32 = 1u32;
13566pub const KHR_LOCATE_SPACES_EXTENSION_NAME: &[u8] = b"XR_KHR_locate_spaces\0";
13567pub const KHR_maintenance1_SPEC_VERSION: u32 = 1u32;
13568pub const KHR_MAINTENANCE1_EXTENSION_NAME: &[u8] = b"XR_KHR_maintenance1\0";
13569pub const META_foveation_eye_tracked_SPEC_VERSION: u32 = 1u32;
13570pub const META_FOVEATION_EYE_TRACKED_EXTENSION_NAME: &[u8] = b"XR_META_foveation_eye_tracked\0";
13571pub const META_local_dimming_SPEC_VERSION: u32 = 1u32;
13572pub const META_LOCAL_DIMMING_EXTENSION_NAME: &[u8] = b"XR_META_local_dimming\0";
13573pub const META_passthrough_preferences_SPEC_VERSION: u32 = 1u32;
13574pub const META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME: &[u8] = b"XR_META_passthrough_preferences\0";
13575pub const META_virtual_keyboard_SPEC_VERSION: u32 = 1u32;
13576pub const META_VIRTUAL_KEYBOARD_EXTENSION_NAME: &[u8] = b"XR_META_virtual_keyboard\0";
13577pub const META_vulkan_swapchain_create_info_SPEC_VERSION: u32 = 1u32;
13578pub const META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME: &[u8] =
13579    b"XR_META_vulkan_swapchain_create_info\0";
13580pub const META_performance_metrics_SPEC_VERSION: u32 = 2u32;
13581pub const META_PERFORMANCE_METRICS_EXTENSION_NAME: &[u8] = b"XR_META_performance_metrics\0";
13582pub const META_headset_id_SPEC_VERSION: u32 = 2u32;
13583pub const META_HEADSET_ID_EXTENSION_NAME: &[u8] = b"XR_META_headset_id\0";
13584pub const META_recommended_layer_resolution_SPEC_VERSION: u32 = 1u32;
13585pub const META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME: &[u8] =
13586    b"XR_META_recommended_layer_resolution\0";
13587pub const META_passthrough_color_lut_SPEC_VERSION: u32 = 1u32;
13588pub const META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME: &[u8] = b"XR_META_passthrough_color_lut\0";
13589pub const META_spatial_entity_mesh_SPEC_VERSION: u32 = 1u32;
13590pub const META_SPATIAL_ENTITY_MESH_EXTENSION_NAME: &[u8] = b"XR_META_spatial_entity_mesh\0";
13591pub const META_automatic_layer_filter_SPEC_VERSION: u32 = 1u32;
13592pub const META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME: &[u8] = b"XR_META_automatic_layer_filter\0";
13593pub const META_touch_controller_plus_SPEC_VERSION: u32 = 1u32;
13594pub const META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME: &[u8] = b"XR_META_touch_controller_plus\0";
13595pub const META_environment_depth_SPEC_VERSION: u32 = 1u32;
13596pub const META_ENVIRONMENT_DEPTH_EXTENSION_NAME: &[u8] = b"XR_META_environment_depth\0";
13597pub const ML_ml2_controller_interaction_SPEC_VERSION: u32 = 1u32;
13598pub const ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13599    b"XR_ML_ml2_controller_interaction\0";
13600pub const ML_frame_end_info_SPEC_VERSION: u32 = 1u32;
13601pub const ML_FRAME_END_INFO_EXTENSION_NAME: &[u8] = b"XR_ML_frame_end_info\0";
13602pub const ML_global_dimmer_SPEC_VERSION: u32 = 1u32;
13603pub const ML_GLOBAL_DIMMER_EXTENSION_NAME: &[u8] = b"XR_ML_global_dimmer\0";
13604pub const ML_compat_SPEC_VERSION: u32 = 1u32;
13605pub const ML_COMPAT_EXTENSION_NAME: &[u8] = b"XR_ML_compat\0";
13606pub const ML_marker_understanding_SPEC_VERSION: u32 = 1u32;
13607pub const ML_MARKER_UNDERSTANDING_EXTENSION_NAME: &[u8] = b"XR_ML_marker_understanding\0";
13608pub const ML_localization_map_SPEC_VERSION: u32 = 1u32;
13609pub const ML_LOCALIZATION_MAP_EXTENSION_NAME: &[u8] = b"XR_ML_localization_map\0";
13610pub const ML_user_calibration_SPEC_VERSION: u32 = 1u32;
13611pub const ML_USER_CALIBRATION_EXTENSION_NAME: &[u8] = b"XR_ML_user_calibration\0";
13612pub const MND_headless_SPEC_VERSION: u32 = 2u32;
13613pub const MND_HEADLESS_EXTENSION_NAME: &[u8] = b"XR_MND_headless\0";
13614pub const MND_swapchain_usage_input_attachment_bit_SPEC_VERSION: u32 = 2u32;
13615pub const MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME: &[u8] =
13616    b"XR_MND_swapchain_usage_input_attachment_bit\0";
13617pub const MSFT_unbounded_reference_space_SPEC_VERSION: u32 = 1u32;
13618pub const MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME: &[u8] =
13619    b"XR_MSFT_unbounded_reference_space\0";
13620pub const MSFT_spatial_anchor_SPEC_VERSION: u32 = 2u32;
13621pub const MSFT_SPATIAL_ANCHOR_EXTENSION_NAME: &[u8] = b"XR_MSFT_spatial_anchor\0";
13622pub const MSFT_spatial_graph_bridge_SPEC_VERSION: u32 = 2u32;
13623pub const MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME: &[u8] = b"XR_MSFT_spatial_graph_bridge\0";
13624pub const MSFT_hand_interaction_SPEC_VERSION: u32 = 1u32;
13625pub const MSFT_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_MSFT_hand_interaction\0";
13626pub const MSFT_hand_tracking_mesh_SPEC_VERSION: u32 = 4u32;
13627pub const MSFT_HAND_TRACKING_MESH_EXTENSION_NAME: &[u8] = b"XR_MSFT_hand_tracking_mesh\0";
13628pub const MSFT_secondary_view_configuration_SPEC_VERSION: u32 = 1u32;
13629pub const MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME: &[u8] =
13630    b"XR_MSFT_secondary_view_configuration\0";
13631pub const MSFT_first_person_observer_SPEC_VERSION: u32 = 1u32;
13632pub const MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME: &[u8] = b"XR_MSFT_first_person_observer\0";
13633pub const MSFT_controller_model_SPEC_VERSION: u32 = 2u32;
13634pub const MSFT_CONTROLLER_MODEL_EXTENSION_NAME: &[u8] = b"XR_MSFT_controller_model\0";
13635#[cfg(windows)]
13636pub const MSFT_perception_anchor_interop_SPEC_VERSION: u32 = 1u32;
13637#[cfg(windows)]
13638pub const MSFT_PERCEPTION_ANCHOR_INTEROP_EXTENSION_NAME: &[u8] =
13639    b"XR_MSFT_perception_anchor_interop\0";
13640#[cfg(windows)]
13641pub const MSFT_holographic_window_attachment_SPEC_VERSION: u32 = 1u32;
13642#[cfg(windows)]
13643pub const MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME: &[u8] =
13644    b"XR_MSFT_holographic_window_attachment\0";
13645pub const MSFT_composition_layer_reprojection_SPEC_VERSION: u32 = 1u32;
13646pub const MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME: &[u8] =
13647    b"XR_MSFT_composition_layer_reprojection\0";
13648pub const MSFT_scene_understanding_SPEC_VERSION: u32 = 2u32;
13649pub const MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME: &[u8] = b"XR_MSFT_scene_understanding\0";
13650pub const MSFT_scene_understanding_serialization_SPEC_VERSION: u32 = 2u32;
13651pub const MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME: &[u8] =
13652    b"XR_MSFT_scene_understanding_serialization\0";
13653pub const MSFT_spatial_anchor_persistence_SPEC_VERSION: u32 = 2u32;
13654pub const MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME: &[u8] =
13655    b"XR_MSFT_spatial_anchor_persistence\0";
13656pub const MSFT_scene_marker_SPEC_VERSION: u32 = 1u32;
13657pub const MSFT_SCENE_MARKER_EXTENSION_NAME: &[u8] = b"XR_MSFT_scene_marker\0";
13658#[cfg(target_os = "android")]
13659pub const OCULUS_android_session_state_enable_SPEC_VERSION: u32 = 1u32;
13660#[cfg(target_os = "android")]
13661pub const OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME: &[u8] =
13662    b"XR_OCULUS_android_session_state_enable\0";
13663pub const OCULUS_audio_device_guid_SPEC_VERSION: u32 = 1u32;
13664pub const OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME: &[u8] = b"XR_OCULUS_audio_device_guid\0";
13665pub const OCULUS_external_camera_SPEC_VERSION: u32 = 1u32;
13666pub const OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME: &[u8] = b"XR_OCULUS_external_camera\0";
13667pub const OPPO_controller_interaction_SPEC_VERSION: u32 = 1u32;
13668pub const OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_OPPO_controller_interaction\0";
13669pub const QCOM_tracking_optimization_settings_SPEC_VERSION: u32 = 1u32;
13670pub const QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME: &[u8] =
13671    b"XR_QCOM_tracking_optimization_settings\0";
13672pub const ULTRALEAP_hand_tracking_forearm_SPEC_VERSION: u32 = 1u32;
13673pub const ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME: &[u8] =
13674    b"XR_ULTRALEAP_hand_tracking_forearm\0";
13675pub const VALVE_analog_threshold_SPEC_VERSION: u32 = 2u32;
13676pub const VALVE_ANALOG_THRESHOLD_EXTENSION_NAME: &[u8] = b"XR_VALVE_analog_threshold\0";
13677pub const VARJO_quad_views_SPEC_VERSION: u32 = 2u32;
13678pub const VARJO_QUAD_VIEWS_EXTENSION_NAME: &[u8] = b"XR_VARJO_quad_views\0";
13679pub const VARJO_foveated_rendering_SPEC_VERSION: u32 = 3u32;
13680pub const VARJO_FOVEATED_RENDERING_EXTENSION_NAME: &[u8] = b"XR_VARJO_foveated_rendering\0";
13681pub const VARJO_composition_layer_depth_test_SPEC_VERSION: u32 = 2u32;
13682pub const VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME: &[u8] =
13683    b"XR_VARJO_composition_layer_depth_test\0";
13684pub const VARJO_environment_depth_estimation_SPEC_VERSION: u32 = 1u32;
13685pub const VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME: &[u8] =
13686    b"XR_VARJO_environment_depth_estimation\0";
13687pub const VARJO_marker_tracking_SPEC_VERSION: u32 = 1u32;
13688pub const VARJO_MARKER_TRACKING_EXTENSION_NAME: &[u8] = b"XR_VARJO_marker_tracking\0";
13689pub const VARJO_view_offset_SPEC_VERSION: u32 = 1u32;
13690pub const VARJO_VIEW_OFFSET_EXTENSION_NAME: &[u8] = b"XR_VARJO_view_offset\0";
13691pub const VARJO_xr4_controller_interaction_SPEC_VERSION: u32 = 1u32;
13692pub const VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13693    b"XR_VARJO_xr4_controller_interaction\0";
13694pub const YVR_controller_interaction_SPEC_VERSION: u32 = 1u32;
13695pub const YVR_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_YVR_controller_interaction\0";
13696pub const EXTX_overlay_SPEC_VERSION: u32 = 5u32;
13697pub const EXTX_OVERLAY_EXTENSION_NAME: &[u8] = b"XR_EXTX_overlay\0";
13698pub const MNDX_egl_enable_SPEC_VERSION: u32 = 2u32;
13699pub const MNDX_EGL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_MNDX_egl_enable\0";
13700pub const MNDX_force_feedback_curl_SPEC_VERSION: u32 = 1u32;
13701pub const MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME: &[u8] = b"XR_MNDX_force_feedback_curl\0";
13702pub const HTCX_vive_tracker_interaction_SPEC_VERSION: u32 = 3u32;
13703pub const HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME: &[u8] =
13704    b"XR_HTCX_vive_tracker_interaction\0";
13705#[cfg(feature = "linked")]
13706unsafe extern "system" {
13707    #[link_name = "xrNegotiateLoaderRuntimeInterface"]
13708    pub fn negotiate_loader_runtime_interface(
13709        loader_info: *const NegotiateLoaderInfo,
13710        runtime_request: *mut NegotiateRuntimeRequest,
13711    ) -> Result;
13712    #[link_name = "xrNegotiateLoaderApiLayerInterface"]
13713    pub fn negotiate_loader_api_layer_interface(
13714        loader_info: *const NegotiateLoaderInfo,
13715        layer_name: *const c_char,
13716        api_layer_request: *mut NegotiateApiLayerRequest,
13717    ) -> Result;
13718    #[link_name = "xrCreateApiLayerInstance"]
13719    pub fn create_api_layer_instance(
13720        info: *const InstanceCreateInfo,
13721        layer_info: *const ApiLayerCreateInfo,
13722        instance: *mut Instance,
13723    ) -> Result;
13724    #[link_name = "xrGetInstanceProcAddr"]
13725    pub fn get_instance_proc_addr(
13726        instance: Instance,
13727        name: *const c_char,
13728        function: *mut Option<pfn::VoidFunction>,
13729    ) -> Result;
13730    #[link_name = "xrEnumerateApiLayerProperties"]
13731    pub fn enumerate_api_layer_properties(
13732        property_capacity_input: u32,
13733        property_count_output: *mut u32,
13734        properties: *mut ApiLayerProperties,
13735    ) -> Result;
13736    #[link_name = "xrEnumerateInstanceExtensionProperties"]
13737    pub fn enumerate_instance_extension_properties(
13738        layer_name: *const c_char,
13739        property_capacity_input: u32,
13740        property_count_output: *mut u32,
13741        properties: *mut ExtensionProperties,
13742    ) -> Result;
13743    #[link_name = "xrCreateInstance"]
13744    pub fn create_instance(
13745        create_info: *const InstanceCreateInfo,
13746        instance: *mut Instance,
13747    ) -> Result;
13748    #[link_name = "xrDestroyInstance"]
13749    pub fn destroy_instance(instance: Instance) -> Result;
13750    #[link_name = "xrResultToString"]
13751    pub fn result_to_string(instance: Instance, value: Result, buffer: *mut c_char) -> Result;
13752    #[link_name = "xrStructureTypeToString"]
13753    pub fn structure_type_to_string(
13754        instance: Instance,
13755        value: StructureType,
13756        buffer: *mut c_char,
13757    ) -> Result;
13758    #[link_name = "xrGetInstanceProperties"]
13759    pub fn get_instance_properties(
13760        instance: Instance,
13761        instance_properties: *mut InstanceProperties,
13762    ) -> Result;
13763    #[link_name = "xrGetSystem"]
13764    pub fn get_system(
13765        instance: Instance,
13766        get_info: *const SystemGetInfo,
13767        system_id: *mut SystemId,
13768    ) -> Result;
13769    #[link_name = "xrGetSystemProperties"]
13770    pub fn get_system_properties(
13771        instance: Instance,
13772        system_id: SystemId,
13773        properties: *mut SystemProperties,
13774    ) -> Result;
13775    #[link_name = "xrCreateSession"]
13776    pub fn create_session(
13777        instance: Instance,
13778        create_info: *const SessionCreateInfo,
13779        session: *mut Session,
13780    ) -> Result;
13781    #[link_name = "xrDestroySession"]
13782    pub fn destroy_session(session: Session) -> Result;
13783    #[link_name = "xrDestroySpace"]
13784    pub fn destroy_space(space: Space) -> Result;
13785    #[link_name = "xrEnumerateSwapchainFormats"]
13786    pub fn enumerate_swapchain_formats(
13787        session: Session,
13788        format_capacity_input: u32,
13789        format_count_output: *mut u32,
13790        formats: *mut i64,
13791    ) -> Result;
13792    #[link_name = "xrCreateSwapchain"]
13793    pub fn create_swapchain(
13794        session: Session,
13795        create_info: *const SwapchainCreateInfo,
13796        swapchain: *mut Swapchain,
13797    ) -> Result;
13798    #[link_name = "xrDestroySwapchain"]
13799    pub fn destroy_swapchain(swapchain: Swapchain) -> Result;
13800    #[link_name = "xrEnumerateSwapchainImages"]
13801    pub fn enumerate_swapchain_images(
13802        swapchain: Swapchain,
13803        image_capacity_input: u32,
13804        image_count_output: *mut u32,
13805        images: *mut SwapchainImageBaseHeader,
13806    ) -> Result;
13807    #[link_name = "xrAcquireSwapchainImage"]
13808    pub fn acquire_swapchain_image(
13809        swapchain: Swapchain,
13810        acquire_info: *const SwapchainImageAcquireInfo,
13811        index: *mut u32,
13812    ) -> Result;
13813    #[link_name = "xrWaitSwapchainImage"]
13814    pub fn wait_swapchain_image(
13815        swapchain: Swapchain,
13816        wait_info: *const SwapchainImageWaitInfo,
13817    ) -> Result;
13818    #[link_name = "xrReleaseSwapchainImage"]
13819    pub fn release_swapchain_image(
13820        swapchain: Swapchain,
13821        release_info: *const SwapchainImageReleaseInfo,
13822    ) -> Result;
13823    #[link_name = "xrBeginSession"]
13824    pub fn begin_session(session: Session, begin_info: *const SessionBeginInfo) -> Result;
13825    #[link_name = "xrEndSession"]
13826    pub fn end_session(session: Session) -> Result;
13827    #[link_name = "xrRequestExitSession"]
13828    pub fn request_exit_session(session: Session) -> Result;
13829    #[link_name = "xrEnumerateReferenceSpaces"]
13830    pub fn enumerate_reference_spaces(
13831        session: Session,
13832        space_capacity_input: u32,
13833        space_count_output: *mut u32,
13834        spaces: *mut ReferenceSpaceType,
13835    ) -> Result;
13836    #[link_name = "xrCreateReferenceSpace"]
13837    pub fn create_reference_space(
13838        session: Session,
13839        create_info: *const ReferenceSpaceCreateInfo,
13840        space: *mut Space,
13841    ) -> Result;
13842    #[link_name = "xrCreateActionSpace"]
13843    pub fn create_action_space(
13844        session: Session,
13845        create_info: *const ActionSpaceCreateInfo,
13846        space: *mut Space,
13847    ) -> Result;
13848    #[link_name = "xrLocateSpace"]
13849    pub fn locate_space(
13850        space: Space,
13851        base_space: Space,
13852        time: Time,
13853        location: *mut SpaceLocation,
13854    ) -> Result;
13855    #[link_name = "xrEnumerateViewConfigurations"]
13856    pub fn enumerate_view_configurations(
13857        instance: Instance,
13858        system_id: SystemId,
13859        view_configuration_type_capacity_input: u32,
13860        view_configuration_type_count_output: *mut u32,
13861        view_configuration_types: *mut ViewConfigurationType,
13862    ) -> Result;
13863    #[link_name = "xrEnumerateEnvironmentBlendModes"]
13864    pub fn enumerate_environment_blend_modes(
13865        instance: Instance,
13866        system_id: SystemId,
13867        view_configuration_type: ViewConfigurationType,
13868        environment_blend_mode_capacity_input: u32,
13869        environment_blend_mode_count_output: *mut u32,
13870        environment_blend_modes: *mut EnvironmentBlendMode,
13871    ) -> Result;
13872    #[link_name = "xrGetViewConfigurationProperties"]
13873    pub fn get_view_configuration_properties(
13874        instance: Instance,
13875        system_id: SystemId,
13876        view_configuration_type: ViewConfigurationType,
13877        configuration_properties: *mut ViewConfigurationProperties,
13878    ) -> Result;
13879    #[link_name = "xrEnumerateViewConfigurationViews"]
13880    pub fn enumerate_view_configuration_views(
13881        instance: Instance,
13882        system_id: SystemId,
13883        view_configuration_type: ViewConfigurationType,
13884        view_capacity_input: u32,
13885        view_count_output: *mut u32,
13886        views: *mut ViewConfigurationView,
13887    ) -> Result;
13888    #[link_name = "xrBeginFrame"]
13889    pub fn begin_frame(session: Session, frame_begin_info: *const FrameBeginInfo) -> Result;
13890    #[link_name = "xrLocateViews"]
13891    pub fn locate_views(
13892        session: Session,
13893        view_locate_info: *const ViewLocateInfo,
13894        view_state: *mut ViewState,
13895        view_capacity_input: u32,
13896        view_count_output: *mut u32,
13897        views: *mut View,
13898    ) -> Result;
13899    #[link_name = "xrEndFrame"]
13900    pub fn end_frame(session: Session, frame_end_info: *const FrameEndInfo) -> Result;
13901    #[link_name = "xrWaitFrame"]
13902    pub fn wait_frame(
13903        session: Session,
13904        frame_wait_info: *const FrameWaitInfo,
13905        frame_state: *mut FrameState,
13906    ) -> Result;
13907    #[link_name = "xrApplyHapticFeedback"]
13908    pub fn apply_haptic_feedback(
13909        session: Session,
13910        haptic_action_info: *const HapticActionInfo,
13911        haptic_feedback: *const HapticBaseHeader,
13912    ) -> Result;
13913    #[link_name = "xrStopHapticFeedback"]
13914    pub fn stop_haptic_feedback(
13915        session: Session,
13916        haptic_action_info: *const HapticActionInfo,
13917    ) -> Result;
13918    #[link_name = "xrPollEvent"]
13919    pub fn poll_event(instance: Instance, event_data: *mut EventDataBuffer) -> Result;
13920    #[link_name = "xrStringToPath"]
13921    pub fn string_to_path(
13922        instance: Instance,
13923        path_string: *const c_char,
13924        path: *mut Path,
13925    ) -> Result;
13926    #[link_name = "xrPathToString"]
13927    pub fn path_to_string(
13928        instance: Instance,
13929        path: Path,
13930        buffer_capacity_input: u32,
13931        buffer_count_output: *mut u32,
13932        buffer: *mut c_char,
13933    ) -> Result;
13934    #[link_name = "xrGetReferenceSpaceBoundsRect"]
13935    pub fn get_reference_space_bounds_rect(
13936        session: Session,
13937        reference_space_type: ReferenceSpaceType,
13938        bounds: *mut Extent2Df,
13939    ) -> Result;
13940    #[link_name = "xrGetActionStateBoolean"]
13941    pub fn get_action_state_boolean(
13942        session: Session,
13943        get_info: *const ActionStateGetInfo,
13944        state: *mut ActionStateBoolean,
13945    ) -> Result;
13946    #[link_name = "xrGetActionStateFloat"]
13947    pub fn get_action_state_float(
13948        session: Session,
13949        get_info: *const ActionStateGetInfo,
13950        state: *mut ActionStateFloat,
13951    ) -> Result;
13952    #[link_name = "xrGetActionStateVector2f"]
13953    pub fn get_action_state_vector2f(
13954        session: Session,
13955        get_info: *const ActionStateGetInfo,
13956        state: *mut ActionStateVector2f,
13957    ) -> Result;
13958    #[link_name = "xrGetActionStatePose"]
13959    pub fn get_action_state_pose(
13960        session: Session,
13961        get_info: *const ActionStateGetInfo,
13962        state: *mut ActionStatePose,
13963    ) -> Result;
13964    #[link_name = "xrCreateActionSet"]
13965    pub fn create_action_set(
13966        instance: Instance,
13967        create_info: *const ActionSetCreateInfo,
13968        action_set: *mut ActionSet,
13969    ) -> Result;
13970    #[link_name = "xrDestroyActionSet"]
13971    pub fn destroy_action_set(action_set: ActionSet) -> Result;
13972    #[link_name = "xrCreateAction"]
13973    pub fn create_action(
13974        action_set: ActionSet,
13975        create_info: *const ActionCreateInfo,
13976        action: *mut Action,
13977    ) -> Result;
13978    #[link_name = "xrDestroyAction"]
13979    pub fn destroy_action(action: Action) -> Result;
13980    #[link_name = "xrSuggestInteractionProfileBindings"]
13981    pub fn suggest_interaction_profile_bindings(
13982        instance: Instance,
13983        suggested_bindings: *const InteractionProfileSuggestedBinding,
13984    ) -> Result;
13985    #[link_name = "xrAttachSessionActionSets"]
13986    pub fn attach_session_action_sets(
13987        session: Session,
13988        attach_info: *const SessionActionSetsAttachInfo,
13989    ) -> Result;
13990    #[link_name = "xrGetCurrentInteractionProfile"]
13991    pub fn get_current_interaction_profile(
13992        session: Session,
13993        top_level_user_path: Path,
13994        interaction_profile: *mut InteractionProfileState,
13995    ) -> Result;
13996    #[link_name = "xrSyncActions"]
13997    pub fn sync_actions(session: Session, sync_info: *const ActionsSyncInfo) -> Result;
13998    #[link_name = "xrEnumerateBoundSourcesForAction"]
13999    pub fn enumerate_bound_sources_for_action(
14000        session: Session,
14001        enumerate_info: *const BoundSourcesForActionEnumerateInfo,
14002        source_capacity_input: u32,
14003        source_count_output: *mut u32,
14004        sources: *mut Path,
14005    ) -> Result;
14006    #[link_name = "xrGetInputSourceLocalizedName"]
14007    pub fn get_input_source_localized_name(
14008        session: Session,
14009        get_info: *const InputSourceLocalizedNameGetInfo,
14010        buffer_capacity_input: u32,
14011        buffer_count_output: *mut u32,
14012        buffer: *mut c_char,
14013    ) -> Result;
14014    #[link_name = "xrLocateSpaces"]
14015    pub fn locate_spaces(
14016        session: Session,
14017        locate_info: *const SpacesLocateInfo,
14018        space_locations: *mut SpaceLocations,
14019    ) -> Result;
14020    #[link_name = "xrLocateSpacesKHR"]
14021    pub fn locate_spaces_khr(
14022        session: Session,
14023        locate_info: *const SpacesLocateInfo,
14024        space_locations: *mut SpaceLocations,
14025    ) -> Result;
14026}