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}