1#![doc = r" Automatically generated code; do not edit!"]
2#![allow(
3 non_upper_case_globals,
4 clippy::unreadable_literal,
5 clippy::identity_op,
6 unused,
7 clippy::derive_partial_eq_without_eq
8)]
9use crate::platform::*;
10use crate::support::*;
11use crate::*;
12use libc::{timespec, wchar_t};
13use std::fmt;
14use std::mem::MaybeUninit;
15use std::os::raw::{c_char, c_void};
16pub const CURRENT_API_VERSION: Version = Version::new(1u16, 1u16, 36u32);
17pub const EXTENSION_ENUM_BASE: usize = 1000000000usize;
18pub const EXTENSION_ENUM_STRIDE: usize = 1000usize;
19pub const NULL_PATH: usize = 0usize;
20pub const NULL_SYSTEM_ID: usize = 0usize;
21pub const NO_DURATION: usize = 0usize;
22pub const FREQUENCY_UNSPECIFIED: usize = 0usize;
23pub const MIN_COMPOSITION_LAYERS_SUPPORTED: usize = 16usize;
24pub const CURRENT_LOADER_API_LAYER_VERSION: usize = 1usize;
25pub const CURRENT_LOADER_RUNTIME_VERSION: usize = 1usize;
26pub const LOADER_INFO_STRUCT_VERSION: usize = 1usize;
27pub const API_LAYER_INFO_STRUCT_VERSION: usize = 1usize;
28pub const RUNTIME_INFO_STRUCT_VERSION: usize = 1usize;
29pub const API_LAYER_NEXT_INFO_STRUCT_VERSION: usize = 1usize;
30pub const API_LAYER_CREATE_INFO_STRUCT_VERSION: usize = 1usize;
31pub const API_LAYER_MAX_SETTINGS_PATH_SIZE: usize = 512usize;
32pub const HAND_JOINT_COUNT_EXT: usize = 26usize;
33pub const NULL_CONTROLLER_MODEL_KEY_MSFT: usize = 0usize;
34pub const NULL_RENDER_MODEL_KEY_FB: usize = 0usize;
35pub const FACIAL_EXPRESSION_EYE_COUNT_HTC: usize = 14usize;
36pub const FACIAL_EXPRESSION_LIP_COUNT_HTC: usize = 37usize;
37pub const HAND_FOREARM_JOINT_COUNT_ULTRALEAP: usize = 27usize;
38pub const MAX_HAPTIC_PCM_BUFFER_SIZE_FB: usize = 4000usize;
39pub const MAX_EXTENSION_NAME_SIZE: usize = 128usize;
40pub const MAX_API_LAYER_NAME_SIZE: usize = 256usize;
41pub const MAX_API_LAYER_DESCRIPTION_SIZE: usize = 256usize;
42pub const MAX_SYSTEM_NAME_SIZE: usize = 256usize;
43pub const MAX_APPLICATION_NAME_SIZE: usize = 128usize;
44pub const MAX_ENGINE_NAME_SIZE: usize = 128usize;
45pub const MAX_RUNTIME_NAME_SIZE: usize = 128usize;
46pub const MAX_PATH_LENGTH: usize = 256usize;
47pub const MAX_STRUCTURE_NAME_SIZE: usize = 64usize;
48pub const MAX_RESULT_STRING_SIZE: usize = 64usize;
49pub const MAX_GRAPHICS_APIS_SUPPORTED: usize = 32usize;
50pub const MAX_ACTION_SET_NAME_SIZE: usize = 64usize;
51pub const MAX_ACTION_NAME_SIZE: usize = 64usize;
52pub const MAX_LOCALIZED_ACTION_SET_NAME_SIZE: usize = 128usize;
53pub const MAX_LOCALIZED_ACTION_NAME_SIZE: usize = 128usize;
54pub const UUID_SIZE: usize = 16usize;
55pub const GUID_SIZE_MSFT: usize = 16usize;
56pub const MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT: usize = 64usize;
57pub const HAND_TRACKING_CAPSULE_POINT_COUNT_FB: usize = 2usize;
58pub const HAND_TRACKING_CAPSULE_COUNT_FB: usize = 19usize;
59pub const MAX_KEYBOARD_TRACKING_NAME_SIZE_FB: usize = 128usize;
60pub const PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB: usize = 256usize;
61pub const MAX_RENDER_MODEL_NAME_SIZE_FB: usize = 64usize;
62pub const MAX_LOCALIZATION_MAP_NAME_LENGTH_ML: usize = 64usize;
63pub const MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT: usize = 256usize;
64pub const MAX_AUDIO_DEVICE_STR_SIZE_OCULUS: usize = 128usize;
65pub const FOVEATION_CENTER_SIZE_META: usize = 2usize;
66pub const MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META: usize = 3992usize;
67pub const MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS: usize = 32usize;
68pub const UUID_SIZE_EXT: usize = 16usize;
69pub const MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC: usize = 256usize;
70pub const NULL_FUTURE_EXT: usize = 0usize;
71#[doc = "See [XrLoaderInterfaceStructs](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLoaderInterfaceStructs)"]
72#[repr(transparent)]
73#[derive(Copy, Clone, Eq, PartialEq)]
74pub struct LoaderInterfaceStructs(i32);
75impl LoaderInterfaceStructs {
76 pub const NINTIALIZED: LoaderInterfaceStructs = Self(0i32);
77 pub const OADER_INFO: LoaderInterfaceStructs = Self(1i32);
78 pub const PI_LAYER_REQUEST: LoaderInterfaceStructs = Self(2i32);
79 pub const UNTIME_REQUEST: LoaderInterfaceStructs = Self(3i32);
80 pub const PI_LAYER_CREATE_INFO: LoaderInterfaceStructs = Self(4i32);
81 pub const PI_LAYER_NEXT_INFO: LoaderInterfaceStructs = Self(5i32);
82 pub fn from_raw(x: i32) -> Self {
83 Self(x)
84 }
85 pub fn into_raw(self) -> i32 {
86 self.0
87 }
88}
89impl fmt::Debug for LoaderInterfaceStructs {
90 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
91 let name = match *self {
92 Self::NINTIALIZED => Some("NINTIALIZED"),
93 Self::OADER_INFO => Some("OADER_INFO"),
94 Self::PI_LAYER_REQUEST => Some("PI_LAYER_REQUEST"),
95 Self::UNTIME_REQUEST => Some("UNTIME_REQUEST"),
96 Self::PI_LAYER_CREATE_INFO => Some("PI_LAYER_CREATE_INFO"),
97 Self::PI_LAYER_NEXT_INFO => Some("PI_LAYER_NEXT_INFO"),
98 _ => None,
99 };
100 fmt_enum(fmt, self.0, name)
101 }
102}
103#[doc = "Structure type enumerant - see [XrStructureType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrStructureType)"]
104#[repr(transparent)]
105#[derive(Copy, Clone, Eq, PartialEq)]
106pub struct StructureType(i32);
107impl StructureType {
108 pub const UNKNOWN: StructureType = Self(0i32);
109 pub const API_LAYER_PROPERTIES: StructureType = Self(1i32);
110 pub const EXTENSION_PROPERTIES: StructureType = Self(2i32);
111 pub const INSTANCE_CREATE_INFO: StructureType = Self(3i32);
112 pub const SYSTEM_GET_INFO: StructureType = Self(4i32);
113 pub const SYSTEM_PROPERTIES: StructureType = Self(5i32);
114 pub const VIEW_LOCATE_INFO: StructureType = Self(6i32);
115 pub const VIEW: StructureType = Self(7i32);
116 pub const SESSION_CREATE_INFO: StructureType = Self(8i32);
117 pub const SWAPCHAIN_CREATE_INFO: StructureType = Self(9i32);
118 pub const SESSION_BEGIN_INFO: StructureType = Self(10i32);
119 pub const VIEW_STATE: StructureType = Self(11i32);
120 pub const FRAME_END_INFO: StructureType = Self(12i32);
121 pub const HAPTIC_VIBRATION: StructureType = Self(13i32);
122 pub const EVENT_DATA_BUFFER: StructureType = Self(16i32);
123 pub const EVENT_DATA_INSTANCE_LOSS_PENDING: StructureType = Self(17i32);
124 pub const EVENT_DATA_SESSION_STATE_CHANGED: StructureType = Self(18i32);
125 pub const ACTION_STATE_BOOLEAN: StructureType = Self(23i32);
126 pub const ACTION_STATE_FLOAT: StructureType = Self(24i32);
127 pub const ACTION_STATE_VECTOR2F: StructureType = Self(25i32);
128 pub const ACTION_STATE_POSE: StructureType = Self(27i32);
129 pub const ACTION_SET_CREATE_INFO: StructureType = Self(28i32);
130 pub const ACTION_CREATE_INFO: StructureType = Self(29i32);
131 pub const INSTANCE_PROPERTIES: StructureType = Self(32i32);
132 pub const FRAME_WAIT_INFO: StructureType = Self(33i32);
133 pub const COMPOSITION_LAYER_PROJECTION: StructureType = Self(35i32);
134 pub const COMPOSITION_LAYER_QUAD: StructureType = Self(36i32);
135 pub const REFERENCE_SPACE_CREATE_INFO: StructureType = Self(37i32);
136 pub const ACTION_SPACE_CREATE_INFO: StructureType = Self(38i32);
137 pub const EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING: StructureType = Self(40i32);
138 pub const VIEW_CONFIGURATION_VIEW: StructureType = Self(41i32);
139 pub const SPACE_LOCATION: StructureType = Self(42i32);
140 pub const SPACE_VELOCITY: StructureType = Self(43i32);
141 pub const FRAME_STATE: StructureType = Self(44i32);
142 pub const VIEW_CONFIGURATION_PROPERTIES: StructureType = Self(45i32);
143 pub const FRAME_BEGIN_INFO: StructureType = Self(46i32);
144 pub const COMPOSITION_LAYER_PROJECTION_VIEW: StructureType = Self(48i32);
145 pub const EVENT_DATA_EVENTS_LOST: StructureType = Self(49i32);
146 pub const INTERACTION_PROFILE_SUGGESTED_BINDING: StructureType = Self(51i32);
147 pub const EVENT_DATA_INTERACTION_PROFILE_CHANGED: StructureType = Self(52i32);
148 pub const INTERACTION_PROFILE_STATE: StructureType = Self(53i32);
149 pub const SWAPCHAIN_IMAGE_ACQUIRE_INFO: StructureType = Self(55i32);
150 pub const SWAPCHAIN_IMAGE_WAIT_INFO: StructureType = Self(56i32);
151 pub const SWAPCHAIN_IMAGE_RELEASE_INFO: StructureType = Self(57i32);
152 pub const ACTION_STATE_GET_INFO: StructureType = Self(58i32);
153 pub const HAPTIC_ACTION_INFO: StructureType = Self(59i32);
154 pub const SESSION_ACTION_SETS_ATTACH_INFO: StructureType = Self(60i32);
155 pub const ACTIONS_SYNC_INFO: StructureType = Self(61i32);
156 pub const BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO: StructureType = Self(62i32);
157 pub const INPUT_SOURCE_LOCALIZED_NAME_GET_INFO: StructureType = Self(63i32);
158 pub const SPACES_LOCATE_INFO: StructureType = Self(1000471000i32);
159 pub const SPACE_LOCATIONS: StructureType = Self(1000471001i32);
160 pub const SPACE_VELOCITIES: StructureType = Self(1000471002i32);
161 pub const COMPOSITION_LAYER_CUBE_KHR: StructureType = Self(1000006000i32);
162 pub const INSTANCE_CREATE_INFO_ANDROID_KHR: StructureType = Self(1000008000i32);
163 pub const COMPOSITION_LAYER_DEPTH_INFO_KHR: StructureType = Self(1000010000i32);
164 pub const VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR: StructureType = Self(1000014000i32);
165 pub const EVENT_DATA_PERF_SETTINGS_EXT: StructureType = Self(1000015000i32);
166 pub const COMPOSITION_LAYER_CYLINDER_KHR: StructureType = Self(1000017000i32);
167 pub const COMPOSITION_LAYER_EQUIRECT_KHR: StructureType = Self(1000018000i32);
168 pub const DEBUG_UTILS_OBJECT_NAME_INFO_EXT: StructureType = Self(1000019000i32);
169 pub const DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: StructureType = Self(1000019001i32);
170 pub const DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: StructureType = Self(1000019002i32);
171 pub const DEBUG_UTILS_LABEL_EXT: StructureType = Self(1000019003i32);
172 pub const GRAPHICS_BINDING_OPENGL_WIN32_KHR: StructureType = Self(1000023000i32);
173 pub const GRAPHICS_BINDING_OPENGL_XLIB_KHR: StructureType = Self(1000023001i32);
174 pub const GRAPHICS_BINDING_OPENGL_XCB_KHR: StructureType = Self(1000023002i32);
175 pub const GRAPHICS_BINDING_OPENGL_WAYLAND_KHR: StructureType = Self(1000023003i32);
176 pub const SWAPCHAIN_IMAGE_OPENGL_KHR: StructureType = Self(1000023004i32);
177 pub const GRAPHICS_REQUIREMENTS_OPENGL_KHR: StructureType = Self(1000023005i32);
178 pub const GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR: StructureType = Self(1000024001i32);
179 pub const SWAPCHAIN_IMAGE_OPENGL_ES_KHR: StructureType = Self(1000024002i32);
180 pub const GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR: StructureType = Self(1000024003i32);
181 pub const GRAPHICS_BINDING_VULKAN_KHR: StructureType = Self(1000025000i32);
182 pub const SWAPCHAIN_IMAGE_VULKAN_KHR: StructureType = Self(1000025001i32);
183 pub const GRAPHICS_REQUIREMENTS_VULKAN_KHR: StructureType = Self(1000025002i32);
184 pub const GRAPHICS_BINDING_D3D11_KHR: StructureType = Self(1000027000i32);
185 pub const SWAPCHAIN_IMAGE_D3D11_KHR: StructureType = Self(1000027001i32);
186 pub const GRAPHICS_REQUIREMENTS_D3D11_KHR: StructureType = Self(1000027002i32);
187 pub const GRAPHICS_BINDING_D3D12_KHR: StructureType = Self(1000028000i32);
188 pub const SWAPCHAIN_IMAGE_D3D12_KHR: StructureType = Self(1000028001i32);
189 pub const GRAPHICS_REQUIREMENTS_D3D12_KHR: StructureType = Self(1000028002i32);
190 pub const SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT: StructureType = Self(1000030000i32);
191 pub const EYE_GAZE_SAMPLE_TIME_EXT: StructureType = Self(1000030001i32);
192 pub const VISIBILITY_MASK_KHR: StructureType = Self(1000031000i32);
193 pub const EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR: StructureType = Self(1000031001i32);
194 pub const SESSION_CREATE_INFO_OVERLAY_EXTX: StructureType = Self(1000033000i32);
195 pub const EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX: StructureType = Self(1000033003i32);
196 pub const COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR: StructureType = Self(1000034000i32);
197 pub const SPATIAL_ANCHOR_CREATE_INFO_MSFT: StructureType = Self(1000039000i32);
198 pub const SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000039001i32);
199 pub const COMPOSITION_LAYER_IMAGE_LAYOUT_FB: StructureType = Self(1000040000i32);
200 pub const COMPOSITION_LAYER_ALPHA_BLEND_FB: StructureType = Self(1000041001i32);
201 pub const VIEW_CONFIGURATION_DEPTH_RANGE_EXT: StructureType = Self(1000046000i32);
202 pub const GRAPHICS_BINDING_EGL_MNDX: StructureType = Self(1000048004i32);
203 pub const SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000049000i32);
204 pub const SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT: StructureType =
205 Self(1000049001i32);
206 pub const SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT: StructureType =
207 Self(1000049002i32);
208 pub const SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT: StructureType = Self(1000049003i32);
209 pub const SYSTEM_HAND_TRACKING_PROPERTIES_EXT: StructureType = Self(1000051000i32);
210 pub const HAND_TRACKER_CREATE_INFO_EXT: StructureType = Self(1000051001i32);
211 pub const HAND_JOINTS_LOCATE_INFO_EXT: StructureType = Self(1000051002i32);
212 pub const HAND_JOINT_LOCATIONS_EXT: StructureType = Self(1000051003i32);
213 pub const HAND_JOINT_VELOCITIES_EXT: StructureType = Self(1000051004i32);
214 pub const SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT: StructureType = Self(1000052000i32);
215 pub const HAND_MESH_SPACE_CREATE_INFO_MSFT: StructureType = Self(1000052001i32);
216 pub const HAND_MESH_UPDATE_INFO_MSFT: StructureType = Self(1000052002i32);
217 pub const HAND_MESH_MSFT: StructureType = Self(1000052003i32);
218 pub const HAND_POSE_TYPE_INFO_MSFT: StructureType = Self(1000052004i32);
219 pub const SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT: StructureType =
220 Self(1000053000i32);
221 pub const SECONDARY_VIEW_CONFIGURATION_STATE_MSFT: StructureType = Self(1000053001i32);
222 pub const SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT: StructureType = Self(1000053002i32);
223 pub const SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT: StructureType = Self(1000053003i32);
224 pub const SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT: StructureType = Self(1000053004i32);
225 pub const SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT: StructureType =
226 Self(1000053005i32);
227 pub const CONTROLLER_MODEL_KEY_STATE_MSFT: StructureType = Self(1000055000i32);
228 pub const CONTROLLER_MODEL_NODE_PROPERTIES_MSFT: StructureType = Self(1000055001i32);
229 pub const CONTROLLER_MODEL_PROPERTIES_MSFT: StructureType = Self(1000055002i32);
230 pub const CONTROLLER_MODEL_NODE_STATE_MSFT: StructureType = Self(1000055003i32);
231 pub const CONTROLLER_MODEL_STATE_MSFT: StructureType = Self(1000055004i32);
232 pub const VIEW_CONFIGURATION_VIEW_FOV_EPIC: StructureType = Self(1000059000i32);
233 pub const HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT: StructureType = Self(1000063000i32);
234 pub const COMPOSITION_LAYER_REPROJECTION_INFO_MSFT: StructureType = Self(1000066000i32);
235 pub const COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT: StructureType =
236 Self(1000066001i32);
237 pub const ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB: StructureType = Self(1000070000i32);
238 pub const COMPOSITION_LAYER_SECURE_CONTENT_FB: StructureType = Self(1000072000i32);
239 pub const BODY_TRACKER_CREATE_INFO_FB: StructureType = Self(1000076001i32);
240 pub const BODY_JOINTS_LOCATE_INFO_FB: StructureType = Self(1000076002i32);
241 pub const SYSTEM_BODY_TRACKING_PROPERTIES_FB: StructureType = Self(1000076004i32);
242 pub const BODY_JOINT_LOCATIONS_FB: StructureType = Self(1000076005i32);
243 pub const BODY_SKELETON_FB: StructureType = Self(1000076006i32);
244 pub const INTERACTION_PROFILE_DPAD_BINDING_EXT: StructureType = Self(1000078000i32);
245 pub const INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE: StructureType = Self(1000079000i32);
246 pub const HAND_JOINTS_MOTION_RANGE_INFO_EXT: StructureType = Self(1000080000i32);
247 pub const LOADER_INIT_INFO_ANDROID_KHR: StructureType = Self(1000089000i32);
248 pub const VULKAN_INSTANCE_CREATE_INFO_KHR: StructureType = Self(1000090000i32);
249 pub const VULKAN_DEVICE_CREATE_INFO_KHR: StructureType = Self(1000090001i32);
250 pub const VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR: StructureType = Self(1000090003i32);
251 pub const GRAPHICS_BINDING_VULKAN2_KHR: StructureType = Self::GRAPHICS_BINDING_VULKAN_KHR;
252 pub const SWAPCHAIN_IMAGE_VULKAN2_KHR: StructureType = Self::SWAPCHAIN_IMAGE_VULKAN_KHR;
253 pub const GRAPHICS_REQUIREMENTS_VULKAN2_KHR: StructureType =
254 Self::GRAPHICS_REQUIREMENTS_VULKAN_KHR;
255 pub const COMPOSITION_LAYER_EQUIRECT2_KHR: StructureType = Self(1000091000i32);
256 pub const SCENE_OBSERVER_CREATE_INFO_MSFT: StructureType = Self(1000097000i32);
257 pub const SCENE_CREATE_INFO_MSFT: StructureType = Self(1000097001i32);
258 pub const NEW_SCENE_COMPUTE_INFO_MSFT: StructureType = Self(1000097002i32);
259 pub const VISUAL_MESH_COMPUTE_LOD_INFO_MSFT: StructureType = Self(1000097003i32);
260 pub const SCENE_COMPONENTS_MSFT: StructureType = Self(1000097004i32);
261 pub const SCENE_COMPONENTS_GET_INFO_MSFT: StructureType = Self(1000097005i32);
262 pub const SCENE_COMPONENT_LOCATIONS_MSFT: StructureType = Self(1000097006i32);
263 pub const SCENE_COMPONENTS_LOCATE_INFO_MSFT: StructureType = Self(1000097007i32);
264 pub const SCENE_OBJECTS_MSFT: StructureType = Self(1000097008i32);
265 pub const SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT: StructureType = Self(1000097009i32);
266 pub const SCENE_OBJECT_TYPES_FILTER_INFO_MSFT: StructureType = Self(1000097010i32);
267 pub const SCENE_PLANES_MSFT: StructureType = Self(1000097011i32);
268 pub const SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT: StructureType = Self(1000097012i32);
269 pub const SCENE_MESHES_MSFT: StructureType = Self(1000097013i32);
270 pub const SCENE_MESH_BUFFERS_GET_INFO_MSFT: StructureType = Self(1000097014i32);
271 pub const SCENE_MESH_BUFFERS_MSFT: StructureType = Self(1000097015i32);
272 pub const SCENE_MESH_VERTEX_BUFFER_MSFT: StructureType = Self(1000097016i32);
273 pub const SCENE_MESH_INDICES_UINT32_MSFT: StructureType = Self(1000097017i32);
274 pub const SCENE_MESH_INDICES_UINT16_MSFT: StructureType = Self(1000097018i32);
275 pub const SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT: StructureType = Self(1000098000i32);
276 pub const SCENE_DESERIALIZE_INFO_MSFT: StructureType = Self(1000098001i32);
277 pub const EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB: StructureType = Self(1000101000i32);
278 pub const VIVE_TRACKER_PATHS_HTCX: StructureType = Self(1000103000i32);
279 pub const EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX: StructureType = Self(1000103001i32);
280 pub const SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC: StructureType = Self(1000104000i32);
281 pub const FACIAL_TRACKER_CREATE_INFO_HTC: StructureType = Self(1000104001i32);
282 pub const FACIAL_EXPRESSIONS_HTC: StructureType = Self(1000104002i32);
283 pub const SYSTEM_COLOR_SPACE_PROPERTIES_FB: StructureType = Self(1000108000i32);
284 pub const HAND_TRACKING_MESH_FB: StructureType = Self(1000110001i32);
285 pub const HAND_TRACKING_SCALE_FB: StructureType = Self(1000110003i32);
286 pub const HAND_TRACKING_AIM_STATE_FB: StructureType = Self(1000111001i32);
287 pub const HAND_TRACKING_CAPSULES_STATE_FB: StructureType = Self(1000112000i32);
288 pub const SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB: StructureType = Self(1000113004i32);
289 pub const SPATIAL_ANCHOR_CREATE_INFO_FB: StructureType = Self(1000113003i32);
290 pub const SPACE_COMPONENT_STATUS_SET_INFO_FB: StructureType = Self(1000113007i32);
291 pub const SPACE_COMPONENT_STATUS_FB: StructureType = Self(1000113001i32);
292 pub const EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB: StructureType = Self(1000113005i32);
293 pub const EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB: StructureType = Self(1000113006i32);
294 pub const FOVEATION_PROFILE_CREATE_INFO_FB: StructureType = Self(1000114000i32);
295 pub const SWAPCHAIN_CREATE_INFO_FOVEATION_FB: StructureType = Self(1000114001i32);
296 pub const SWAPCHAIN_STATE_FOVEATION_FB: StructureType = Self(1000114002i32);
297 pub const FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB: StructureType = Self(1000115000i32);
298 pub const KEYBOARD_SPACE_CREATE_INFO_FB: StructureType = Self(1000116009i32);
299 pub const KEYBOARD_TRACKING_QUERY_FB: StructureType = Self(1000116004i32);
300 pub const SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB: StructureType = Self(1000116002i32);
301 pub const TRIANGLE_MESH_CREATE_INFO_FB: StructureType = Self(1000117001i32);
302 pub const SYSTEM_PASSTHROUGH_PROPERTIES_FB: StructureType = Self(1000118000i32);
303 pub const PASSTHROUGH_CREATE_INFO_FB: StructureType = Self(1000118001i32);
304 pub const PASSTHROUGH_LAYER_CREATE_INFO_FB: StructureType = Self(1000118002i32);
305 pub const COMPOSITION_LAYER_PASSTHROUGH_FB: StructureType = Self(1000118003i32);
306 pub const GEOMETRY_INSTANCE_CREATE_INFO_FB: StructureType = Self(1000118004i32);
307 pub const GEOMETRY_INSTANCE_TRANSFORM_FB: StructureType = Self(1000118005i32);
308 pub const SYSTEM_PASSTHROUGH_PROPERTIES2_FB: StructureType = Self(1000118006i32);
309 pub const PASSTHROUGH_STYLE_FB: StructureType = Self(1000118020i32);
310 pub const PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB: StructureType = Self(1000118021i32);
311 pub const PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB: StructureType = Self(1000118022i32);
312 pub const PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB: StructureType = Self(1000118023i32);
313 pub const EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB: StructureType = Self(1000118030i32);
314 pub const RENDER_MODEL_PATH_INFO_FB: StructureType = Self(1000119000i32);
315 pub const RENDER_MODEL_PROPERTIES_FB: StructureType = Self(1000119001i32);
316 pub const RENDER_MODEL_BUFFER_FB: StructureType = Self(1000119002i32);
317 pub const RENDER_MODEL_LOAD_INFO_FB: StructureType = Self(1000119003i32);
318 pub const SYSTEM_RENDER_MODEL_PROPERTIES_FB: StructureType = Self(1000119004i32);
319 pub const RENDER_MODEL_CAPABILITIES_REQUEST_FB: StructureType = Self(1000119005i32);
320 pub const BINDING_MODIFICATIONS_KHR: StructureType = Self(1000120000i32);
321 pub const VIEW_LOCATE_FOVEATED_RENDERING_VARJO: StructureType = Self(1000121000i32);
322 pub const FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO: StructureType = Self(1000121001i32);
323 pub const SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO: StructureType = Self(1000121002i32);
324 pub const COMPOSITION_LAYER_DEPTH_TEST_VARJO: StructureType = Self(1000122000i32);
325 pub const SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO: StructureType = Self(1000124000i32);
326 pub const EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO: StructureType = Self(1000124001i32);
327 pub const MARKER_SPACE_CREATE_INFO_VARJO: StructureType = Self(1000124002i32);
328 pub const FRAME_END_INFO_ML: StructureType = Self(1000135000i32);
329 pub const GLOBAL_DIMMER_FRAME_END_INFO_ML: StructureType = Self(1000136000i32);
330 pub const COORDINATE_SPACE_CREATE_INFO_ML: StructureType = Self(1000137000i32);
331 pub const SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML: StructureType = Self(1000138000i32);
332 pub const MARKER_DETECTOR_CREATE_INFO_ML: StructureType = Self(1000138001i32);
333 pub const MARKER_DETECTOR_ARUCO_INFO_ML: StructureType = Self(1000138002i32);
334 pub const MARKER_DETECTOR_SIZE_INFO_ML: StructureType = Self(1000138003i32);
335 pub const MARKER_DETECTOR_APRIL_TAG_INFO_ML: StructureType = Self(1000138004i32);
336 pub const MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML: StructureType = Self(1000138005i32);
337 pub const MARKER_DETECTOR_SNAPSHOT_INFO_ML: StructureType = Self(1000138006i32);
338 pub const MARKER_DETECTOR_STATE_ML: StructureType = Self(1000138007i32);
339 pub const MARKER_SPACE_CREATE_INFO_ML: StructureType = Self(1000138008i32);
340 pub const LOCALIZATION_MAP_ML: StructureType = Self(1000139000i32);
341 pub const EVENT_DATA_LOCALIZATION_CHANGED_ML: StructureType = Self(1000139001i32);
342 pub const MAP_LOCALIZATION_REQUEST_INFO_ML: StructureType = Self(1000139002i32);
343 pub const LOCALIZATION_MAP_IMPORT_INFO_ML: StructureType = Self(1000139003i32);
344 pub const LOCALIZATION_ENABLE_EVENTS_INFO_ML: StructureType = Self(1000139004i32);
345 pub const EVENT_DATA_HEADSET_FIT_CHANGED_ML: StructureType = Self(1000472000i32);
346 pub const EVENT_DATA_EYE_CALIBRATION_CHANGED_ML: StructureType = Self(1000472001i32);
347 pub const USER_CALIBRATION_ENABLE_EVENTS_INFO_ML: StructureType = Self(1000472002i32);
348 pub const SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT: StructureType = Self(1000142000i32);
349 pub const SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT: StructureType =
350 Self(1000142001i32);
351 pub const SCENE_MARKERS_MSFT: StructureType = Self(1000147000i32);
352 pub const SCENE_MARKER_TYPE_FILTER_MSFT: StructureType = Self(1000147001i32);
353 pub const SCENE_MARKER_QR_CODES_MSFT: StructureType = Self(1000147002i32);
354 pub const SPACE_QUERY_INFO_FB: StructureType = Self(1000156001i32);
355 pub const SPACE_QUERY_RESULTS_FB: StructureType = Self(1000156002i32);
356 pub const SPACE_STORAGE_LOCATION_FILTER_INFO_FB: StructureType = Self(1000156003i32);
357 pub const SPACE_UUID_FILTER_INFO_FB: StructureType = Self(1000156054i32);
358 pub const SPACE_COMPONENT_FILTER_INFO_FB: StructureType = Self(1000156052i32);
359 pub const EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB: StructureType = Self(1000156103i32);
360 pub const EVENT_DATA_SPACE_QUERY_COMPLETE_FB: StructureType = Self(1000156104i32);
361 pub const SPACE_SAVE_INFO_FB: StructureType = Self(1000158000i32);
362 pub const SPACE_ERASE_INFO_FB: StructureType = Self(1000158001i32);
363 pub const EVENT_DATA_SPACE_SAVE_COMPLETE_FB: StructureType = Self(1000158106i32);
364 pub const EVENT_DATA_SPACE_ERASE_COMPLETE_FB: StructureType = Self(1000158107i32);
365 pub const SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB: StructureType = Self(1000160000i32);
366 pub const SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB: StructureType = Self(1000161000i32);
367 pub const SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB: StructureType = Self(1000162000i32);
368 pub const SWAPCHAIN_STATE_SAMPLER_VULKAN_FB: StructureType = Self(1000163000i32);
369 pub const SPACE_SHARE_INFO_FB: StructureType = Self(1000169001i32);
370 pub const EVENT_DATA_SPACE_SHARE_COMPLETE_FB: StructureType = Self(1000169002i32);
371 pub const COMPOSITION_LAYER_SPACE_WARP_INFO_FB: StructureType = Self(1000171000i32);
372 pub const SYSTEM_SPACE_WARP_PROPERTIES_FB: StructureType = Self(1000171001i32);
373 pub const HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB: StructureType = Self(1000173001i32);
374 pub const SEMANTIC_LABELS_FB: StructureType = Self(1000175000i32);
375 pub const ROOM_LAYOUT_FB: StructureType = Self(1000175001i32);
376 pub const BOUNDARY_2D_FB: StructureType = Self(1000175002i32);
377 pub const SEMANTIC_LABELS_SUPPORT_INFO_FB: StructureType = Self(1000175010i32);
378 pub const DIGITAL_LENS_CONTROL_ALMALENCE: StructureType = Self(1000196000i32);
379 pub const EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB: StructureType = Self(1000198001i32);
380 pub const SCENE_CAPTURE_REQUEST_INFO_FB: StructureType = Self(1000198050i32);
381 pub const SPACE_CONTAINER_FB: StructureType = Self(1000199000i32);
382 pub const FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META: StructureType = Self(1000200000i32);
383 pub const FOVEATION_EYE_TRACKED_STATE_META: StructureType = Self(1000200001i32);
384 pub const SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META: StructureType = Self(1000200002i32);
385 pub const SYSTEM_FACE_TRACKING_PROPERTIES_FB: StructureType = Self(1000201004i32);
386 pub const FACE_TRACKER_CREATE_INFO_FB: StructureType = Self(1000201005i32);
387 pub const FACE_EXPRESSION_INFO_FB: StructureType = Self(1000201002i32);
388 pub const FACE_EXPRESSION_WEIGHTS_FB: StructureType = Self(1000201006i32);
389 pub const EYE_TRACKER_CREATE_INFO_FB: StructureType = Self(1000202001i32);
390 pub const EYE_GAZES_INFO_FB: StructureType = Self(1000202002i32);
391 pub const EYE_GAZES_FB: StructureType = Self(1000202003i32);
392 pub const SYSTEM_EYE_TRACKING_PROPERTIES_FB: StructureType = Self(1000202004i32);
393 pub const PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB: StructureType = Self(1000203002i32);
394 pub const COMPOSITION_LAYER_SETTINGS_FB: StructureType = Self(1000204000i32);
395 pub const HAPTIC_PCM_VIBRATION_FB: StructureType = Self(1000209001i32);
396 pub const DEVICE_PCM_SAMPLE_RATE_STATE_FB: StructureType = Self(1000209002i32);
397 pub const DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB: StructureType =
398 Self::DEVICE_PCM_SAMPLE_RATE_STATE_FB;
399 pub const COMPOSITION_LAYER_DEPTH_TEST_FB: StructureType = Self(1000212000i32);
400 pub const LOCAL_DIMMING_FRAME_END_INFO_META: StructureType = Self(1000216000i32);
401 pub const PASSTHROUGH_PREFERENCES_META: StructureType = Self(1000217000i32);
402 pub const SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META: StructureType = Self(1000219001i32);
403 pub const VIRTUAL_KEYBOARD_CREATE_INFO_META: StructureType = Self(1000219002i32);
404 pub const VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META: StructureType = Self(1000219003i32);
405 pub const VIRTUAL_KEYBOARD_LOCATION_INFO_META: StructureType = Self(1000219004i32);
406 pub const VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META: StructureType = Self(1000219005i32);
407 pub const VIRTUAL_KEYBOARD_ANIMATION_STATE_META: StructureType = Self(1000219006i32);
408 pub const VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META: StructureType = Self(1000219007i32);
409 pub const VIRTUAL_KEYBOARD_TEXTURE_DATA_META: StructureType = Self(1000219009i32);
410 pub const VIRTUAL_KEYBOARD_INPUT_INFO_META: StructureType = Self(1000219010i32);
411 pub const VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META: StructureType = Self(1000219011i32);
412 pub const EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META: StructureType = Self(1000219014i32);
413 pub const EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META: StructureType = Self(1000219015i32);
414 pub const EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META: StructureType = Self(1000219016i32);
415 pub const EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META: StructureType = Self(1000219017i32);
416 pub const EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META: StructureType = Self(1000219018i32);
417 pub const EXTERNAL_CAMERA_OCULUS: StructureType = Self(1000226000i32);
418 pub const VULKAN_SWAPCHAIN_CREATE_INFO_META: StructureType = Self(1000227000i32);
419 pub const PERFORMANCE_METRICS_STATE_META: StructureType = Self(1000232001i32);
420 pub const PERFORMANCE_METRICS_COUNTER_META: StructureType = Self(1000232002i32);
421 pub const SPACE_LIST_SAVE_INFO_FB: StructureType = Self(1000238000i32);
422 pub const EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB: StructureType = Self(1000238001i32);
423 pub const SPACE_USER_CREATE_INFO_FB: StructureType = Self(1000241001i32);
424 pub const SYSTEM_HEADSET_ID_PROPERTIES_META: StructureType = Self(1000245000i32);
425 pub const RECOMMENDED_LAYER_RESOLUTION_META: StructureType = Self(1000254000i32);
426 pub const RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META: StructureType = Self(1000254001i32);
427 pub const SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META: StructureType = Self(1000266000i32);
428 pub const PASSTHROUGH_COLOR_LUT_CREATE_INFO_META: StructureType = Self(1000266001i32);
429 pub const PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META: StructureType = Self(1000266002i32);
430 pub const PASSTHROUGH_COLOR_MAP_LUT_META: StructureType = Self(1000266100i32);
431 pub const PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META: StructureType = Self(1000266101i32);
432 pub const SPACE_TRIANGLE_MESH_GET_INFO_META: StructureType = Self(1000269001i32);
433 pub const SPACE_TRIANGLE_MESH_META: StructureType = Self(1000269002i32);
434 pub const SYSTEM_FACE_TRACKING_PROPERTIES2_FB: StructureType = Self(1000287013i32);
435 pub const FACE_TRACKER_CREATE_INFO2_FB: StructureType = Self(1000287014i32);
436 pub const FACE_EXPRESSION_INFO2_FB: StructureType = Self(1000287015i32);
437 pub const FACE_EXPRESSION_WEIGHTS2_FB: StructureType = Self(1000287016i32);
438 pub const ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META: StructureType = Self(1000291000i32);
439 pub const ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META: StructureType = Self(1000291001i32);
440 pub const ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META: StructureType = Self(1000291002i32);
441 pub const ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META: StructureType = Self(1000291003i32);
442 pub const ENVIRONMENT_DEPTH_IMAGE_VIEW_META: StructureType = Self(1000291004i32);
443 pub const ENVIRONMENT_DEPTH_IMAGE_META: StructureType = Self(1000291005i32);
444 pub const ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META: StructureType = Self(1000291006i32);
445 pub const SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META: StructureType = Self(1000291007i32);
446 pub const PASSTHROUGH_CREATE_INFO_HTC: StructureType = Self(1000317001i32);
447 pub const PASSTHROUGH_COLOR_HTC: StructureType = Self(1000317002i32);
448 pub const PASSTHROUGH_MESH_TRANSFORM_INFO_HTC: StructureType = Self(1000317003i32);
449 pub const COMPOSITION_LAYER_PASSTHROUGH_HTC: StructureType = Self(1000317004i32);
450 pub const FOVEATION_APPLY_INFO_HTC: StructureType = Self(1000318000i32);
451 pub const FOVEATION_DYNAMIC_MODE_INFO_HTC: StructureType = Self(1000318001i32);
452 pub const FOVEATION_CUSTOM_MODE_INFO_HTC: StructureType = Self(1000318002i32);
453 pub const SYSTEM_ANCHOR_PROPERTIES_HTC: StructureType = Self(1000319000i32);
454 pub const SPATIAL_ANCHOR_CREATE_INFO_HTC: StructureType = Self(1000319001i32);
455 pub const ACTIVE_ACTION_SET_PRIORITIES_EXT: StructureType = Self(1000373000i32);
456 pub const SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX: StructureType = Self(1000375000i32);
457 pub const FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX: StructureType = Self(1000375001i32);
458 pub const HAND_TRACKING_DATA_SOURCE_INFO_EXT: StructureType = Self(1000428000i32);
459 pub const HAND_TRACKING_DATA_SOURCE_STATE_EXT: StructureType = Self(1000428001i32);
460 pub const PLANE_DETECTOR_CREATE_INFO_EXT: StructureType = Self(1000429001i32);
461 pub const PLANE_DETECTOR_BEGIN_INFO_EXT: StructureType = Self(1000429002i32);
462 pub const PLANE_DETECTOR_GET_INFO_EXT: StructureType = Self(1000429003i32);
463 pub const PLANE_DETECTOR_LOCATIONS_EXT: StructureType = Self(1000429004i32);
464 pub const PLANE_DETECTOR_LOCATION_EXT: StructureType = Self(1000429005i32);
465 pub const PLANE_DETECTOR_POLYGON_BUFFER_EXT: StructureType = Self(1000429006i32);
466 pub const SYSTEM_PLANE_DETECTION_PROPERTIES_EXT: StructureType = Self(1000429007i32);
467 pub const FUTURE_CANCEL_INFO_EXT: StructureType = Self(1000469000i32);
468 pub const FUTURE_POLL_INFO_EXT: StructureType = Self(1000469001i32);
469 pub const FUTURE_COMPLETION_EXT: StructureType = Self(1000469002i32);
470 pub const FUTURE_POLL_RESULT_EXT: StructureType = Self(1000469003i32);
471 pub const EVENT_DATA_USER_PRESENCE_CHANGED_EXT: StructureType = Self(1000470000i32);
472 pub const SYSTEM_USER_PRESENCE_PROPERTIES_EXT: StructureType = Self(1000470001i32);
473 pub const SPACES_LOCATE_INFO_KHR: StructureType = Self::SPACES_LOCATE_INFO;
474 pub const SPACE_LOCATIONS_KHR: StructureType = Self::SPACE_LOCATIONS;
475 pub const SPACE_VELOCITIES_KHR: StructureType = Self::SPACE_VELOCITIES;
476 pub fn from_raw(x: i32) -> Self {
477 Self(x)
478 }
479 pub fn into_raw(self) -> i32 {
480 self.0
481 }
482}
483impl fmt::Debug for StructureType {
484 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
485 let name = match *self {
486 Self::UNKNOWN => Some("UNKNOWN"),
487 Self::API_LAYER_PROPERTIES => Some("API_LAYER_PROPERTIES"),
488 Self::EXTENSION_PROPERTIES => Some("EXTENSION_PROPERTIES"),
489 Self::INSTANCE_CREATE_INFO => Some("INSTANCE_CREATE_INFO"),
490 Self::SYSTEM_GET_INFO => Some("SYSTEM_GET_INFO"),
491 Self::SYSTEM_PROPERTIES => Some("SYSTEM_PROPERTIES"),
492 Self::VIEW_LOCATE_INFO => Some("VIEW_LOCATE_INFO"),
493 Self::VIEW => Some("VIEW"),
494 Self::SESSION_CREATE_INFO => Some("SESSION_CREATE_INFO"),
495 Self::SWAPCHAIN_CREATE_INFO => Some("SWAPCHAIN_CREATE_INFO"),
496 Self::SESSION_BEGIN_INFO => Some("SESSION_BEGIN_INFO"),
497 Self::VIEW_STATE => Some("VIEW_STATE"),
498 Self::FRAME_END_INFO => Some("FRAME_END_INFO"),
499 Self::HAPTIC_VIBRATION => Some("HAPTIC_VIBRATION"),
500 Self::EVENT_DATA_BUFFER => Some("EVENT_DATA_BUFFER"),
501 Self::EVENT_DATA_INSTANCE_LOSS_PENDING => Some("EVENT_DATA_INSTANCE_LOSS_PENDING"),
502 Self::EVENT_DATA_SESSION_STATE_CHANGED => Some("EVENT_DATA_SESSION_STATE_CHANGED"),
503 Self::ACTION_STATE_BOOLEAN => Some("ACTION_STATE_BOOLEAN"),
504 Self::ACTION_STATE_FLOAT => Some("ACTION_STATE_FLOAT"),
505 Self::ACTION_STATE_VECTOR2F => Some("ACTION_STATE_VECTOR2F"),
506 Self::ACTION_STATE_POSE => Some("ACTION_STATE_POSE"),
507 Self::ACTION_SET_CREATE_INFO => Some("ACTION_SET_CREATE_INFO"),
508 Self::ACTION_CREATE_INFO => Some("ACTION_CREATE_INFO"),
509 Self::INSTANCE_PROPERTIES => Some("INSTANCE_PROPERTIES"),
510 Self::FRAME_WAIT_INFO => Some("FRAME_WAIT_INFO"),
511 Self::COMPOSITION_LAYER_PROJECTION => Some("COMPOSITION_LAYER_PROJECTION"),
512 Self::COMPOSITION_LAYER_QUAD => Some("COMPOSITION_LAYER_QUAD"),
513 Self::REFERENCE_SPACE_CREATE_INFO => Some("REFERENCE_SPACE_CREATE_INFO"),
514 Self::ACTION_SPACE_CREATE_INFO => Some("ACTION_SPACE_CREATE_INFO"),
515 Self::EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING => {
516 Some("EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING")
517 }
518 Self::VIEW_CONFIGURATION_VIEW => Some("VIEW_CONFIGURATION_VIEW"),
519 Self::SPACE_LOCATION => Some("SPACE_LOCATION"),
520 Self::SPACE_VELOCITY => Some("SPACE_VELOCITY"),
521 Self::FRAME_STATE => Some("FRAME_STATE"),
522 Self::VIEW_CONFIGURATION_PROPERTIES => Some("VIEW_CONFIGURATION_PROPERTIES"),
523 Self::FRAME_BEGIN_INFO => Some("FRAME_BEGIN_INFO"),
524 Self::COMPOSITION_LAYER_PROJECTION_VIEW => Some("COMPOSITION_LAYER_PROJECTION_VIEW"),
525 Self::EVENT_DATA_EVENTS_LOST => Some("EVENT_DATA_EVENTS_LOST"),
526 Self::INTERACTION_PROFILE_SUGGESTED_BINDING => {
527 Some("INTERACTION_PROFILE_SUGGESTED_BINDING")
528 }
529 Self::EVENT_DATA_INTERACTION_PROFILE_CHANGED => {
530 Some("EVENT_DATA_INTERACTION_PROFILE_CHANGED")
531 }
532 Self::INTERACTION_PROFILE_STATE => Some("INTERACTION_PROFILE_STATE"),
533 Self::SWAPCHAIN_IMAGE_ACQUIRE_INFO => Some("SWAPCHAIN_IMAGE_ACQUIRE_INFO"),
534 Self::SWAPCHAIN_IMAGE_WAIT_INFO => Some("SWAPCHAIN_IMAGE_WAIT_INFO"),
535 Self::SWAPCHAIN_IMAGE_RELEASE_INFO => Some("SWAPCHAIN_IMAGE_RELEASE_INFO"),
536 Self::ACTION_STATE_GET_INFO => Some("ACTION_STATE_GET_INFO"),
537 Self::HAPTIC_ACTION_INFO => Some("HAPTIC_ACTION_INFO"),
538 Self::SESSION_ACTION_SETS_ATTACH_INFO => Some("SESSION_ACTION_SETS_ATTACH_INFO"),
539 Self::ACTIONS_SYNC_INFO => Some("ACTIONS_SYNC_INFO"),
540 Self::BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO => {
541 Some("BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO")
542 }
543 Self::INPUT_SOURCE_LOCALIZED_NAME_GET_INFO => {
544 Some("INPUT_SOURCE_LOCALIZED_NAME_GET_INFO")
545 }
546 Self::SPACES_LOCATE_INFO => Some("SPACES_LOCATE_INFO"),
547 Self::SPACE_LOCATIONS => Some("SPACE_LOCATIONS"),
548 Self::SPACE_VELOCITIES => Some("SPACE_VELOCITIES"),
549 Self::COMPOSITION_LAYER_CUBE_KHR => Some("COMPOSITION_LAYER_CUBE_KHR"),
550 Self::INSTANCE_CREATE_INFO_ANDROID_KHR => Some("INSTANCE_CREATE_INFO_ANDROID_KHR"),
551 Self::COMPOSITION_LAYER_DEPTH_INFO_KHR => Some("COMPOSITION_LAYER_DEPTH_INFO_KHR"),
552 Self::VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR => {
553 Some("VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR")
554 }
555 Self::EVENT_DATA_PERF_SETTINGS_EXT => Some("EVENT_DATA_PERF_SETTINGS_EXT"),
556 Self::COMPOSITION_LAYER_CYLINDER_KHR => Some("COMPOSITION_LAYER_CYLINDER_KHR"),
557 Self::COMPOSITION_LAYER_EQUIRECT_KHR => Some("COMPOSITION_LAYER_EQUIRECT_KHR"),
558 Self::DEBUG_UTILS_OBJECT_NAME_INFO_EXT => Some("DEBUG_UTILS_OBJECT_NAME_INFO_EXT"),
559 Self::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT => {
560 Some("DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT")
561 }
562 Self::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT => {
563 Some("DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT")
564 }
565 Self::DEBUG_UTILS_LABEL_EXT => Some("DEBUG_UTILS_LABEL_EXT"),
566 Self::GRAPHICS_BINDING_OPENGL_WIN32_KHR => Some("GRAPHICS_BINDING_OPENGL_WIN32_KHR"),
567 Self::GRAPHICS_BINDING_OPENGL_XLIB_KHR => Some("GRAPHICS_BINDING_OPENGL_XLIB_KHR"),
568 Self::GRAPHICS_BINDING_OPENGL_XCB_KHR => Some("GRAPHICS_BINDING_OPENGL_XCB_KHR"),
569 Self::GRAPHICS_BINDING_OPENGL_WAYLAND_KHR => {
570 Some("GRAPHICS_BINDING_OPENGL_WAYLAND_KHR")
571 }
572 Self::SWAPCHAIN_IMAGE_OPENGL_KHR => Some("SWAPCHAIN_IMAGE_OPENGL_KHR"),
573 Self::GRAPHICS_REQUIREMENTS_OPENGL_KHR => Some("GRAPHICS_REQUIREMENTS_OPENGL_KHR"),
574 Self::GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR => {
575 Some("GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR")
576 }
577 Self::SWAPCHAIN_IMAGE_OPENGL_ES_KHR => Some("SWAPCHAIN_IMAGE_OPENGL_ES_KHR"),
578 Self::GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR => {
579 Some("GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR")
580 }
581 Self::GRAPHICS_BINDING_VULKAN_KHR => Some("GRAPHICS_BINDING_VULKAN_KHR"),
582 Self::SWAPCHAIN_IMAGE_VULKAN_KHR => Some("SWAPCHAIN_IMAGE_VULKAN_KHR"),
583 Self::GRAPHICS_REQUIREMENTS_VULKAN_KHR => Some("GRAPHICS_REQUIREMENTS_VULKAN_KHR"),
584 Self::GRAPHICS_BINDING_D3D11_KHR => Some("GRAPHICS_BINDING_D3D11_KHR"),
585 Self::SWAPCHAIN_IMAGE_D3D11_KHR => Some("SWAPCHAIN_IMAGE_D3D11_KHR"),
586 Self::GRAPHICS_REQUIREMENTS_D3D11_KHR => Some("GRAPHICS_REQUIREMENTS_D3D11_KHR"),
587 Self::GRAPHICS_BINDING_D3D12_KHR => Some("GRAPHICS_BINDING_D3D12_KHR"),
588 Self::SWAPCHAIN_IMAGE_D3D12_KHR => Some("SWAPCHAIN_IMAGE_D3D12_KHR"),
589 Self::GRAPHICS_REQUIREMENTS_D3D12_KHR => Some("GRAPHICS_REQUIREMENTS_D3D12_KHR"),
590 Self::SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT => {
591 Some("SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT")
592 }
593 Self::EYE_GAZE_SAMPLE_TIME_EXT => Some("EYE_GAZE_SAMPLE_TIME_EXT"),
594 Self::VISIBILITY_MASK_KHR => Some("VISIBILITY_MASK_KHR"),
595 Self::EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR => {
596 Some("EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR")
597 }
598 Self::SESSION_CREATE_INFO_OVERLAY_EXTX => Some("SESSION_CREATE_INFO_OVERLAY_EXTX"),
599 Self::EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX => {
600 Some("EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX")
601 }
602 Self::COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR => {
603 Some("COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR")
604 }
605 Self::SPATIAL_ANCHOR_CREATE_INFO_MSFT => Some("SPATIAL_ANCHOR_CREATE_INFO_MSFT"),
606 Self::SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT => {
607 Some("SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT")
608 }
609 Self::COMPOSITION_LAYER_IMAGE_LAYOUT_FB => Some("COMPOSITION_LAYER_IMAGE_LAYOUT_FB"),
610 Self::COMPOSITION_LAYER_ALPHA_BLEND_FB => Some("COMPOSITION_LAYER_ALPHA_BLEND_FB"),
611 Self::VIEW_CONFIGURATION_DEPTH_RANGE_EXT => Some("VIEW_CONFIGURATION_DEPTH_RANGE_EXT"),
612 Self::GRAPHICS_BINDING_EGL_MNDX => Some("GRAPHICS_BINDING_EGL_MNDX"),
613 Self::SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT => {
614 Some("SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT")
615 }
616 Self::SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT => {
617 Some("SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT")
618 }
619 Self::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT => {
620 Some("SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT")
621 }
622 Self::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT => {
623 Some("SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT")
624 }
625 Self::SYSTEM_HAND_TRACKING_PROPERTIES_EXT => {
626 Some("SYSTEM_HAND_TRACKING_PROPERTIES_EXT")
627 }
628 Self::HAND_TRACKER_CREATE_INFO_EXT => Some("HAND_TRACKER_CREATE_INFO_EXT"),
629 Self::HAND_JOINTS_LOCATE_INFO_EXT => Some("HAND_JOINTS_LOCATE_INFO_EXT"),
630 Self::HAND_JOINT_LOCATIONS_EXT => Some("HAND_JOINT_LOCATIONS_EXT"),
631 Self::HAND_JOINT_VELOCITIES_EXT => Some("HAND_JOINT_VELOCITIES_EXT"),
632 Self::SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT => {
633 Some("SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT")
634 }
635 Self::HAND_MESH_SPACE_CREATE_INFO_MSFT => Some("HAND_MESH_SPACE_CREATE_INFO_MSFT"),
636 Self::HAND_MESH_UPDATE_INFO_MSFT => Some("HAND_MESH_UPDATE_INFO_MSFT"),
637 Self::HAND_MESH_MSFT => Some("HAND_MESH_MSFT"),
638 Self::HAND_POSE_TYPE_INFO_MSFT => Some("HAND_POSE_TYPE_INFO_MSFT"),
639 Self::SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT => {
640 Some("SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT")
641 }
642 Self::SECONDARY_VIEW_CONFIGURATION_STATE_MSFT => {
643 Some("SECONDARY_VIEW_CONFIGURATION_STATE_MSFT")
644 }
645 Self::SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT => {
646 Some("SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT")
647 }
648 Self::SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT => {
649 Some("SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT")
650 }
651 Self::SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT => {
652 Some("SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT")
653 }
654 Self::SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT => {
655 Some("SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT")
656 }
657 Self::CONTROLLER_MODEL_KEY_STATE_MSFT => Some("CONTROLLER_MODEL_KEY_STATE_MSFT"),
658 Self::CONTROLLER_MODEL_NODE_PROPERTIES_MSFT => {
659 Some("CONTROLLER_MODEL_NODE_PROPERTIES_MSFT")
660 }
661 Self::CONTROLLER_MODEL_PROPERTIES_MSFT => Some("CONTROLLER_MODEL_PROPERTIES_MSFT"),
662 Self::CONTROLLER_MODEL_NODE_STATE_MSFT => Some("CONTROLLER_MODEL_NODE_STATE_MSFT"),
663 Self::CONTROLLER_MODEL_STATE_MSFT => Some("CONTROLLER_MODEL_STATE_MSFT"),
664 Self::VIEW_CONFIGURATION_VIEW_FOV_EPIC => Some("VIEW_CONFIGURATION_VIEW_FOV_EPIC"),
665 Self::HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT => Some("HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"),
666 Self::COMPOSITION_LAYER_REPROJECTION_INFO_MSFT => {
667 Some("COMPOSITION_LAYER_REPROJECTION_INFO_MSFT")
668 }
669 Self::COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT => {
670 Some("COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT")
671 }
672 Self::ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB => {
673 Some("ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB")
674 }
675 Self::COMPOSITION_LAYER_SECURE_CONTENT_FB => {
676 Some("COMPOSITION_LAYER_SECURE_CONTENT_FB")
677 }
678 Self::BODY_TRACKER_CREATE_INFO_FB => Some("BODY_TRACKER_CREATE_INFO_FB"),
679 Self::BODY_JOINTS_LOCATE_INFO_FB => Some("BODY_JOINTS_LOCATE_INFO_FB"),
680 Self::SYSTEM_BODY_TRACKING_PROPERTIES_FB => Some("SYSTEM_BODY_TRACKING_PROPERTIES_FB"),
681 Self::BODY_JOINT_LOCATIONS_FB => Some("BODY_JOINT_LOCATIONS_FB"),
682 Self::BODY_SKELETON_FB => Some("BODY_SKELETON_FB"),
683 Self::INTERACTION_PROFILE_DPAD_BINDING_EXT => {
684 Some("INTERACTION_PROFILE_DPAD_BINDING_EXT")
685 }
686 Self::INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE => {
687 Some("INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE")
688 }
689 Self::HAND_JOINTS_MOTION_RANGE_INFO_EXT => Some("HAND_JOINTS_MOTION_RANGE_INFO_EXT"),
690 Self::LOADER_INIT_INFO_ANDROID_KHR => Some("LOADER_INIT_INFO_ANDROID_KHR"),
691 Self::VULKAN_INSTANCE_CREATE_INFO_KHR => Some("VULKAN_INSTANCE_CREATE_INFO_KHR"),
692 Self::VULKAN_DEVICE_CREATE_INFO_KHR => Some("VULKAN_DEVICE_CREATE_INFO_KHR"),
693 Self::VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR => {
694 Some("VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR")
695 }
696 Self::COMPOSITION_LAYER_EQUIRECT2_KHR => Some("COMPOSITION_LAYER_EQUIRECT2_KHR"),
697 Self::SCENE_OBSERVER_CREATE_INFO_MSFT => Some("SCENE_OBSERVER_CREATE_INFO_MSFT"),
698 Self::SCENE_CREATE_INFO_MSFT => Some("SCENE_CREATE_INFO_MSFT"),
699 Self::NEW_SCENE_COMPUTE_INFO_MSFT => Some("NEW_SCENE_COMPUTE_INFO_MSFT"),
700 Self::VISUAL_MESH_COMPUTE_LOD_INFO_MSFT => Some("VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"),
701 Self::SCENE_COMPONENTS_MSFT => Some("SCENE_COMPONENTS_MSFT"),
702 Self::SCENE_COMPONENTS_GET_INFO_MSFT => Some("SCENE_COMPONENTS_GET_INFO_MSFT"),
703 Self::SCENE_COMPONENT_LOCATIONS_MSFT => Some("SCENE_COMPONENT_LOCATIONS_MSFT"),
704 Self::SCENE_COMPONENTS_LOCATE_INFO_MSFT => Some("SCENE_COMPONENTS_LOCATE_INFO_MSFT"),
705 Self::SCENE_OBJECTS_MSFT => Some("SCENE_OBJECTS_MSFT"),
706 Self::SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT => {
707 Some("SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT")
708 }
709 Self::SCENE_OBJECT_TYPES_FILTER_INFO_MSFT => {
710 Some("SCENE_OBJECT_TYPES_FILTER_INFO_MSFT")
711 }
712 Self::SCENE_PLANES_MSFT => Some("SCENE_PLANES_MSFT"),
713 Self::SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT => {
714 Some("SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT")
715 }
716 Self::SCENE_MESHES_MSFT => Some("SCENE_MESHES_MSFT"),
717 Self::SCENE_MESH_BUFFERS_GET_INFO_MSFT => Some("SCENE_MESH_BUFFERS_GET_INFO_MSFT"),
718 Self::SCENE_MESH_BUFFERS_MSFT => Some("SCENE_MESH_BUFFERS_MSFT"),
719 Self::SCENE_MESH_VERTEX_BUFFER_MSFT => Some("SCENE_MESH_VERTEX_BUFFER_MSFT"),
720 Self::SCENE_MESH_INDICES_UINT32_MSFT => Some("SCENE_MESH_INDICES_UINT32_MSFT"),
721 Self::SCENE_MESH_INDICES_UINT16_MSFT => Some("SCENE_MESH_INDICES_UINT16_MSFT"),
722 Self::SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT => {
723 Some("SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT")
724 }
725 Self::SCENE_DESERIALIZE_INFO_MSFT => Some("SCENE_DESERIALIZE_INFO_MSFT"),
726 Self::EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB => {
727 Some("EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB")
728 }
729 Self::VIVE_TRACKER_PATHS_HTCX => Some("VIVE_TRACKER_PATHS_HTCX"),
730 Self::EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX => {
731 Some("EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX")
732 }
733 Self::SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC => {
734 Some("SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC")
735 }
736 Self::FACIAL_TRACKER_CREATE_INFO_HTC => Some("FACIAL_TRACKER_CREATE_INFO_HTC"),
737 Self::FACIAL_EXPRESSIONS_HTC => Some("FACIAL_EXPRESSIONS_HTC"),
738 Self::SYSTEM_COLOR_SPACE_PROPERTIES_FB => Some("SYSTEM_COLOR_SPACE_PROPERTIES_FB"),
739 Self::HAND_TRACKING_MESH_FB => Some("HAND_TRACKING_MESH_FB"),
740 Self::HAND_TRACKING_SCALE_FB => Some("HAND_TRACKING_SCALE_FB"),
741 Self::HAND_TRACKING_AIM_STATE_FB => Some("HAND_TRACKING_AIM_STATE_FB"),
742 Self::HAND_TRACKING_CAPSULES_STATE_FB => Some("HAND_TRACKING_CAPSULES_STATE_FB"),
743 Self::SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB => {
744 Some("SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB")
745 }
746 Self::SPATIAL_ANCHOR_CREATE_INFO_FB => Some("SPATIAL_ANCHOR_CREATE_INFO_FB"),
747 Self::SPACE_COMPONENT_STATUS_SET_INFO_FB => Some("SPACE_COMPONENT_STATUS_SET_INFO_FB"),
748 Self::SPACE_COMPONENT_STATUS_FB => Some("SPACE_COMPONENT_STATUS_FB"),
749 Self::EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB => {
750 Some("EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB")
751 }
752 Self::EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB => {
753 Some("EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB")
754 }
755 Self::FOVEATION_PROFILE_CREATE_INFO_FB => Some("FOVEATION_PROFILE_CREATE_INFO_FB"),
756 Self::SWAPCHAIN_CREATE_INFO_FOVEATION_FB => Some("SWAPCHAIN_CREATE_INFO_FOVEATION_FB"),
757 Self::SWAPCHAIN_STATE_FOVEATION_FB => Some("SWAPCHAIN_STATE_FOVEATION_FB"),
758 Self::FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB => {
759 Some("FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB")
760 }
761 Self::KEYBOARD_SPACE_CREATE_INFO_FB => Some("KEYBOARD_SPACE_CREATE_INFO_FB"),
762 Self::KEYBOARD_TRACKING_QUERY_FB => Some("KEYBOARD_TRACKING_QUERY_FB"),
763 Self::SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB => {
764 Some("SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB")
765 }
766 Self::TRIANGLE_MESH_CREATE_INFO_FB => Some("TRIANGLE_MESH_CREATE_INFO_FB"),
767 Self::SYSTEM_PASSTHROUGH_PROPERTIES_FB => Some("SYSTEM_PASSTHROUGH_PROPERTIES_FB"),
768 Self::PASSTHROUGH_CREATE_INFO_FB => Some("PASSTHROUGH_CREATE_INFO_FB"),
769 Self::PASSTHROUGH_LAYER_CREATE_INFO_FB => Some("PASSTHROUGH_LAYER_CREATE_INFO_FB"),
770 Self::COMPOSITION_LAYER_PASSTHROUGH_FB => Some("COMPOSITION_LAYER_PASSTHROUGH_FB"),
771 Self::GEOMETRY_INSTANCE_CREATE_INFO_FB => Some("GEOMETRY_INSTANCE_CREATE_INFO_FB"),
772 Self::GEOMETRY_INSTANCE_TRANSFORM_FB => Some("GEOMETRY_INSTANCE_TRANSFORM_FB"),
773 Self::SYSTEM_PASSTHROUGH_PROPERTIES2_FB => Some("SYSTEM_PASSTHROUGH_PROPERTIES2_FB"),
774 Self::PASSTHROUGH_STYLE_FB => Some("PASSTHROUGH_STYLE_FB"),
775 Self::PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB => {
776 Some("PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB")
777 }
778 Self::PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB => {
779 Some("PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB")
780 }
781 Self::PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB => {
782 Some("PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB")
783 }
784 Self::EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB => {
785 Some("EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB")
786 }
787 Self::RENDER_MODEL_PATH_INFO_FB => Some("RENDER_MODEL_PATH_INFO_FB"),
788 Self::RENDER_MODEL_PROPERTIES_FB => Some("RENDER_MODEL_PROPERTIES_FB"),
789 Self::RENDER_MODEL_BUFFER_FB => Some("RENDER_MODEL_BUFFER_FB"),
790 Self::RENDER_MODEL_LOAD_INFO_FB => Some("RENDER_MODEL_LOAD_INFO_FB"),
791 Self::SYSTEM_RENDER_MODEL_PROPERTIES_FB => Some("SYSTEM_RENDER_MODEL_PROPERTIES_FB"),
792 Self::RENDER_MODEL_CAPABILITIES_REQUEST_FB => {
793 Some("RENDER_MODEL_CAPABILITIES_REQUEST_FB")
794 }
795 Self::BINDING_MODIFICATIONS_KHR => Some("BINDING_MODIFICATIONS_KHR"),
796 Self::VIEW_LOCATE_FOVEATED_RENDERING_VARJO => {
797 Some("VIEW_LOCATE_FOVEATED_RENDERING_VARJO")
798 }
799 Self::FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO => {
800 Some("FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO")
801 }
802 Self::SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO => {
803 Some("SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO")
804 }
805 Self::COMPOSITION_LAYER_DEPTH_TEST_VARJO => Some("COMPOSITION_LAYER_DEPTH_TEST_VARJO"),
806 Self::SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO => {
807 Some("SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO")
808 }
809 Self::EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO => {
810 Some("EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO")
811 }
812 Self::MARKER_SPACE_CREATE_INFO_VARJO => Some("MARKER_SPACE_CREATE_INFO_VARJO"),
813 Self::FRAME_END_INFO_ML => Some("FRAME_END_INFO_ML"),
814 Self::GLOBAL_DIMMER_FRAME_END_INFO_ML => Some("GLOBAL_DIMMER_FRAME_END_INFO_ML"),
815 Self::COORDINATE_SPACE_CREATE_INFO_ML => Some("COORDINATE_SPACE_CREATE_INFO_ML"),
816 Self::SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML => {
817 Some("SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML")
818 }
819 Self::MARKER_DETECTOR_CREATE_INFO_ML => Some("MARKER_DETECTOR_CREATE_INFO_ML"),
820 Self::MARKER_DETECTOR_ARUCO_INFO_ML => Some("MARKER_DETECTOR_ARUCO_INFO_ML"),
821 Self::MARKER_DETECTOR_SIZE_INFO_ML => Some("MARKER_DETECTOR_SIZE_INFO_ML"),
822 Self::MARKER_DETECTOR_APRIL_TAG_INFO_ML => Some("MARKER_DETECTOR_APRIL_TAG_INFO_ML"),
823 Self::MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML => {
824 Some("MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML")
825 }
826 Self::MARKER_DETECTOR_SNAPSHOT_INFO_ML => Some("MARKER_DETECTOR_SNAPSHOT_INFO_ML"),
827 Self::MARKER_DETECTOR_STATE_ML => Some("MARKER_DETECTOR_STATE_ML"),
828 Self::MARKER_SPACE_CREATE_INFO_ML => Some("MARKER_SPACE_CREATE_INFO_ML"),
829 Self::LOCALIZATION_MAP_ML => Some("LOCALIZATION_MAP_ML"),
830 Self::EVENT_DATA_LOCALIZATION_CHANGED_ML => Some("EVENT_DATA_LOCALIZATION_CHANGED_ML"),
831 Self::MAP_LOCALIZATION_REQUEST_INFO_ML => Some("MAP_LOCALIZATION_REQUEST_INFO_ML"),
832 Self::LOCALIZATION_MAP_IMPORT_INFO_ML => Some("LOCALIZATION_MAP_IMPORT_INFO_ML"),
833 Self::LOCALIZATION_ENABLE_EVENTS_INFO_ML => Some("LOCALIZATION_ENABLE_EVENTS_INFO_ML"),
834 Self::EVENT_DATA_HEADSET_FIT_CHANGED_ML => Some("EVENT_DATA_HEADSET_FIT_CHANGED_ML"),
835 Self::EVENT_DATA_EYE_CALIBRATION_CHANGED_ML => {
836 Some("EVENT_DATA_EYE_CALIBRATION_CHANGED_ML")
837 }
838 Self::USER_CALIBRATION_ENABLE_EVENTS_INFO_ML => {
839 Some("USER_CALIBRATION_ENABLE_EVENTS_INFO_ML")
840 }
841 Self::SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT => {
842 Some("SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT")
843 }
844 Self::SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT => {
845 Some("SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT")
846 }
847 Self::SCENE_MARKERS_MSFT => Some("SCENE_MARKERS_MSFT"),
848 Self::SCENE_MARKER_TYPE_FILTER_MSFT => Some("SCENE_MARKER_TYPE_FILTER_MSFT"),
849 Self::SCENE_MARKER_QR_CODES_MSFT => Some("SCENE_MARKER_QR_CODES_MSFT"),
850 Self::SPACE_QUERY_INFO_FB => Some("SPACE_QUERY_INFO_FB"),
851 Self::SPACE_QUERY_RESULTS_FB => Some("SPACE_QUERY_RESULTS_FB"),
852 Self::SPACE_STORAGE_LOCATION_FILTER_INFO_FB => {
853 Some("SPACE_STORAGE_LOCATION_FILTER_INFO_FB")
854 }
855 Self::SPACE_UUID_FILTER_INFO_FB => Some("SPACE_UUID_FILTER_INFO_FB"),
856 Self::SPACE_COMPONENT_FILTER_INFO_FB => Some("SPACE_COMPONENT_FILTER_INFO_FB"),
857 Self::EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB => {
858 Some("EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB")
859 }
860 Self::EVENT_DATA_SPACE_QUERY_COMPLETE_FB => Some("EVENT_DATA_SPACE_QUERY_COMPLETE_FB"),
861 Self::SPACE_SAVE_INFO_FB => Some("SPACE_SAVE_INFO_FB"),
862 Self::SPACE_ERASE_INFO_FB => Some("SPACE_ERASE_INFO_FB"),
863 Self::EVENT_DATA_SPACE_SAVE_COMPLETE_FB => Some("EVENT_DATA_SPACE_SAVE_COMPLETE_FB"),
864 Self::EVENT_DATA_SPACE_ERASE_COMPLETE_FB => Some("EVENT_DATA_SPACE_ERASE_COMPLETE_FB"),
865 Self::SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB => {
866 Some("SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB")
867 }
868 Self::SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB => {
869 Some("SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB")
870 }
871 Self::SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB => {
872 Some("SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB")
873 }
874 Self::SWAPCHAIN_STATE_SAMPLER_VULKAN_FB => Some("SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"),
875 Self::SPACE_SHARE_INFO_FB => Some("SPACE_SHARE_INFO_FB"),
876 Self::EVENT_DATA_SPACE_SHARE_COMPLETE_FB => Some("EVENT_DATA_SPACE_SHARE_COMPLETE_FB"),
877 Self::COMPOSITION_LAYER_SPACE_WARP_INFO_FB => {
878 Some("COMPOSITION_LAYER_SPACE_WARP_INFO_FB")
879 }
880 Self::SYSTEM_SPACE_WARP_PROPERTIES_FB => Some("SYSTEM_SPACE_WARP_PROPERTIES_FB"),
881 Self::HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB => {
882 Some("HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB")
883 }
884 Self::SEMANTIC_LABELS_FB => Some("SEMANTIC_LABELS_FB"),
885 Self::ROOM_LAYOUT_FB => Some("ROOM_LAYOUT_FB"),
886 Self::BOUNDARY_2D_FB => Some("BOUNDARY_2D_FB"),
887 Self::SEMANTIC_LABELS_SUPPORT_INFO_FB => Some("SEMANTIC_LABELS_SUPPORT_INFO_FB"),
888 Self::DIGITAL_LENS_CONTROL_ALMALENCE => Some("DIGITAL_LENS_CONTROL_ALMALENCE"),
889 Self::EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB => {
890 Some("EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB")
891 }
892 Self::SCENE_CAPTURE_REQUEST_INFO_FB => Some("SCENE_CAPTURE_REQUEST_INFO_FB"),
893 Self::SPACE_CONTAINER_FB => Some("SPACE_CONTAINER_FB"),
894 Self::FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META => {
895 Some("FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META")
896 }
897 Self::FOVEATION_EYE_TRACKED_STATE_META => Some("FOVEATION_EYE_TRACKED_STATE_META"),
898 Self::SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META => {
899 Some("SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META")
900 }
901 Self::SYSTEM_FACE_TRACKING_PROPERTIES_FB => Some("SYSTEM_FACE_TRACKING_PROPERTIES_FB"),
902 Self::FACE_TRACKER_CREATE_INFO_FB => Some("FACE_TRACKER_CREATE_INFO_FB"),
903 Self::FACE_EXPRESSION_INFO_FB => Some("FACE_EXPRESSION_INFO_FB"),
904 Self::FACE_EXPRESSION_WEIGHTS_FB => Some("FACE_EXPRESSION_WEIGHTS_FB"),
905 Self::EYE_TRACKER_CREATE_INFO_FB => Some("EYE_TRACKER_CREATE_INFO_FB"),
906 Self::EYE_GAZES_INFO_FB => Some("EYE_GAZES_INFO_FB"),
907 Self::EYE_GAZES_FB => Some("EYE_GAZES_FB"),
908 Self::SYSTEM_EYE_TRACKING_PROPERTIES_FB => Some("SYSTEM_EYE_TRACKING_PROPERTIES_FB"),
909 Self::PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB => {
910 Some("PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB")
911 }
912 Self::COMPOSITION_LAYER_SETTINGS_FB => Some("COMPOSITION_LAYER_SETTINGS_FB"),
913 Self::HAPTIC_PCM_VIBRATION_FB => Some("HAPTIC_PCM_VIBRATION_FB"),
914 Self::DEVICE_PCM_SAMPLE_RATE_STATE_FB => Some("DEVICE_PCM_SAMPLE_RATE_STATE_FB"),
915 Self::COMPOSITION_LAYER_DEPTH_TEST_FB => Some("COMPOSITION_LAYER_DEPTH_TEST_FB"),
916 Self::LOCAL_DIMMING_FRAME_END_INFO_META => Some("LOCAL_DIMMING_FRAME_END_INFO_META"),
917 Self::PASSTHROUGH_PREFERENCES_META => Some("PASSTHROUGH_PREFERENCES_META"),
918 Self::SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META => {
919 Some("SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META")
920 }
921 Self::VIRTUAL_KEYBOARD_CREATE_INFO_META => Some("VIRTUAL_KEYBOARD_CREATE_INFO_META"),
922 Self::VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META => {
923 Some("VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META")
924 }
925 Self::VIRTUAL_KEYBOARD_LOCATION_INFO_META => {
926 Some("VIRTUAL_KEYBOARD_LOCATION_INFO_META")
927 }
928 Self::VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META => {
929 Some("VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META")
930 }
931 Self::VIRTUAL_KEYBOARD_ANIMATION_STATE_META => {
932 Some("VIRTUAL_KEYBOARD_ANIMATION_STATE_META")
933 }
934 Self::VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META => {
935 Some("VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META")
936 }
937 Self::VIRTUAL_KEYBOARD_TEXTURE_DATA_META => Some("VIRTUAL_KEYBOARD_TEXTURE_DATA_META"),
938 Self::VIRTUAL_KEYBOARD_INPUT_INFO_META => Some("VIRTUAL_KEYBOARD_INPUT_INFO_META"),
939 Self::VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META => {
940 Some("VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META")
941 }
942 Self::EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META => {
943 Some("EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META")
944 }
945 Self::EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META => {
946 Some("EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META")
947 }
948 Self::EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META => {
949 Some("EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META")
950 }
951 Self::EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META => {
952 Some("EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META")
953 }
954 Self::EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META => {
955 Some("EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META")
956 }
957 Self::EXTERNAL_CAMERA_OCULUS => Some("EXTERNAL_CAMERA_OCULUS"),
958 Self::VULKAN_SWAPCHAIN_CREATE_INFO_META => Some("VULKAN_SWAPCHAIN_CREATE_INFO_META"),
959 Self::PERFORMANCE_METRICS_STATE_META => Some("PERFORMANCE_METRICS_STATE_META"),
960 Self::PERFORMANCE_METRICS_COUNTER_META => Some("PERFORMANCE_METRICS_COUNTER_META"),
961 Self::SPACE_LIST_SAVE_INFO_FB => Some("SPACE_LIST_SAVE_INFO_FB"),
962 Self::EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB => {
963 Some("EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB")
964 }
965 Self::SPACE_USER_CREATE_INFO_FB => Some("SPACE_USER_CREATE_INFO_FB"),
966 Self::SYSTEM_HEADSET_ID_PROPERTIES_META => Some("SYSTEM_HEADSET_ID_PROPERTIES_META"),
967 Self::RECOMMENDED_LAYER_RESOLUTION_META => Some("RECOMMENDED_LAYER_RESOLUTION_META"),
968 Self::RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META => {
969 Some("RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META")
970 }
971 Self::SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META => {
972 Some("SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META")
973 }
974 Self::PASSTHROUGH_COLOR_LUT_CREATE_INFO_META => {
975 Some("PASSTHROUGH_COLOR_LUT_CREATE_INFO_META")
976 }
977 Self::PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META => {
978 Some("PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META")
979 }
980 Self::PASSTHROUGH_COLOR_MAP_LUT_META => Some("PASSTHROUGH_COLOR_MAP_LUT_META"),
981 Self::PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META => {
982 Some("PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META")
983 }
984 Self::SPACE_TRIANGLE_MESH_GET_INFO_META => Some("SPACE_TRIANGLE_MESH_GET_INFO_META"),
985 Self::SPACE_TRIANGLE_MESH_META => Some("SPACE_TRIANGLE_MESH_META"),
986 Self::SYSTEM_FACE_TRACKING_PROPERTIES2_FB => {
987 Some("SYSTEM_FACE_TRACKING_PROPERTIES2_FB")
988 }
989 Self::FACE_TRACKER_CREATE_INFO2_FB => Some("FACE_TRACKER_CREATE_INFO2_FB"),
990 Self::FACE_EXPRESSION_INFO2_FB => Some("FACE_EXPRESSION_INFO2_FB"),
991 Self::FACE_EXPRESSION_WEIGHTS2_FB => Some("FACE_EXPRESSION_WEIGHTS2_FB"),
992 Self::ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META => {
993 Some("ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META")
994 }
995 Self::ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META => {
996 Some("ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META")
997 }
998 Self::ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META => {
999 Some("ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META")
1000 }
1001 Self::ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META => {
1002 Some("ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META")
1003 }
1004 Self::ENVIRONMENT_DEPTH_IMAGE_VIEW_META => Some("ENVIRONMENT_DEPTH_IMAGE_VIEW_META"),
1005 Self::ENVIRONMENT_DEPTH_IMAGE_META => Some("ENVIRONMENT_DEPTH_IMAGE_META"),
1006 Self::ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META => {
1007 Some("ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META")
1008 }
1009 Self::SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META => {
1010 Some("SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META")
1011 }
1012 Self::PASSTHROUGH_CREATE_INFO_HTC => Some("PASSTHROUGH_CREATE_INFO_HTC"),
1013 Self::PASSTHROUGH_COLOR_HTC => Some("PASSTHROUGH_COLOR_HTC"),
1014 Self::PASSTHROUGH_MESH_TRANSFORM_INFO_HTC => {
1015 Some("PASSTHROUGH_MESH_TRANSFORM_INFO_HTC")
1016 }
1017 Self::COMPOSITION_LAYER_PASSTHROUGH_HTC => Some("COMPOSITION_LAYER_PASSTHROUGH_HTC"),
1018 Self::FOVEATION_APPLY_INFO_HTC => Some("FOVEATION_APPLY_INFO_HTC"),
1019 Self::FOVEATION_DYNAMIC_MODE_INFO_HTC => Some("FOVEATION_DYNAMIC_MODE_INFO_HTC"),
1020 Self::FOVEATION_CUSTOM_MODE_INFO_HTC => Some("FOVEATION_CUSTOM_MODE_INFO_HTC"),
1021 Self::SYSTEM_ANCHOR_PROPERTIES_HTC => Some("SYSTEM_ANCHOR_PROPERTIES_HTC"),
1022 Self::SPATIAL_ANCHOR_CREATE_INFO_HTC => Some("SPATIAL_ANCHOR_CREATE_INFO_HTC"),
1023 Self::ACTIVE_ACTION_SET_PRIORITIES_EXT => Some("ACTIVE_ACTION_SET_PRIORITIES_EXT"),
1024 Self::SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX => {
1025 Some("SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX")
1026 }
1027 Self::FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX => {
1028 Some("FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX")
1029 }
1030 Self::HAND_TRACKING_DATA_SOURCE_INFO_EXT => Some("HAND_TRACKING_DATA_SOURCE_INFO_EXT"),
1031 Self::HAND_TRACKING_DATA_SOURCE_STATE_EXT => {
1032 Some("HAND_TRACKING_DATA_SOURCE_STATE_EXT")
1033 }
1034 Self::PLANE_DETECTOR_CREATE_INFO_EXT => Some("PLANE_DETECTOR_CREATE_INFO_EXT"),
1035 Self::PLANE_DETECTOR_BEGIN_INFO_EXT => Some("PLANE_DETECTOR_BEGIN_INFO_EXT"),
1036 Self::PLANE_DETECTOR_GET_INFO_EXT => Some("PLANE_DETECTOR_GET_INFO_EXT"),
1037 Self::PLANE_DETECTOR_LOCATIONS_EXT => Some("PLANE_DETECTOR_LOCATIONS_EXT"),
1038 Self::PLANE_DETECTOR_LOCATION_EXT => Some("PLANE_DETECTOR_LOCATION_EXT"),
1039 Self::PLANE_DETECTOR_POLYGON_BUFFER_EXT => Some("PLANE_DETECTOR_POLYGON_BUFFER_EXT"),
1040 Self::SYSTEM_PLANE_DETECTION_PROPERTIES_EXT => {
1041 Some("SYSTEM_PLANE_DETECTION_PROPERTIES_EXT")
1042 }
1043 Self::FUTURE_CANCEL_INFO_EXT => Some("FUTURE_CANCEL_INFO_EXT"),
1044 Self::FUTURE_POLL_INFO_EXT => Some("FUTURE_POLL_INFO_EXT"),
1045 Self::FUTURE_COMPLETION_EXT => Some("FUTURE_COMPLETION_EXT"),
1046 Self::FUTURE_POLL_RESULT_EXT => Some("FUTURE_POLL_RESULT_EXT"),
1047 Self::EVENT_DATA_USER_PRESENCE_CHANGED_EXT => {
1048 Some("EVENT_DATA_USER_PRESENCE_CHANGED_EXT")
1049 }
1050 Self::SYSTEM_USER_PRESENCE_PROPERTIES_EXT => {
1051 Some("SYSTEM_USER_PRESENCE_PROPERTIES_EXT")
1052 }
1053 _ => None,
1054 };
1055 fmt_enum(fmt, self.0, name)
1056 }
1057}
1058#[doc = "Error and return codes - see [XrResult](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrResult)"]
1059#[repr(transparent)]
1060#[derive(Copy, Clone, Eq, PartialEq)]
1061pub struct Result(i32);
1062impl Result {
1063 #[doc = "Function successfully completed."]
1064 pub const SUCCESS: Result = Self(0i32);
1065 #[doc = "The specified timeout time occurred before the operation could complete."]
1066 pub const TIMEOUT_EXPIRED: Result = Self(1i32);
1067 #[doc = "The session will be lost soon."]
1068 pub const SESSION_LOSS_PENDING: Result = Self(3i32);
1069 #[doc = "No event was available."]
1070 pub const EVENT_UNAVAILABLE: Result = Self(4i32);
1071 #[doc = "The space's bounds are not known at the moment."]
1072 pub const SPACE_BOUNDS_UNAVAILABLE: Result = Self(7i32);
1073 #[doc = "The session is not in the focused state."]
1074 pub const SESSION_NOT_FOCUSED: Result = Self(8i32);
1075 #[doc = "A frame has been discarded from composition."]
1076 pub const FRAME_DISCARDED: Result = Self(9i32);
1077 #[doc = "The function usage was invalid in some way."]
1078 pub const ERROR_VALIDATION_FAILURE: Result = Self(-1i32);
1079 #[doc = "The runtime failed to handle the function in an unexpected way that is not covered by another error result."]
1080 pub const ERROR_RUNTIME_FAILURE: Result = Self(-2i32);
1081 #[doc = "A memory allocation has failed."]
1082 pub const ERROR_OUT_OF_MEMORY: Result = Self(-3i32);
1083 #[doc = "The runtime does not support the requested API version."]
1084 pub const ERROR_API_VERSION_UNSUPPORTED: Result = Self(-4i32);
1085 #[doc = "Initialization of object could not be completed."]
1086 pub const ERROR_INITIALIZATION_FAILED: Result = Self(-6i32);
1087 #[doc = "The requested function was not found or is otherwise unsupported."]
1088 pub const ERROR_FUNCTION_UNSUPPORTED: Result = Self(-7i32);
1089 #[doc = "The requested feature is not supported."]
1090 pub const ERROR_FEATURE_UNSUPPORTED: Result = Self(-8i32);
1091 #[doc = "A requested extension is not supported."]
1092 pub const ERROR_EXTENSION_NOT_PRESENT: Result = Self(-9i32);
1093 #[doc = "The runtime supports no more of the requested resource."]
1094 pub const ERROR_LIMIT_REACHED: Result = Self(-10i32);
1095 #[doc = "The supplied size was smaller than required."]
1096 pub const ERROR_SIZE_INSUFFICIENT: Result = Self(-11i32);
1097 #[doc = "A supplied object handle was invalid."]
1098 pub const ERROR_HANDLE_INVALID: Result = Self(-12i32);
1099 #[doc = "The XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated."]
1100 pub const ERROR_INSTANCE_LOST: Result = Self(-13i32);
1101 #[doc = "The session is already running."]
1102 pub const ERROR_SESSION_RUNNING: Result = Self(-14i32);
1103 #[doc = "The session is not yet running."]
1104 pub const ERROR_SESSION_NOT_RUNNING: Result = Self(-16i32);
1105 #[doc = "The XrSession was lost. It will need to be destroyed and optionally recreated."]
1106 pub const ERROR_SESSION_LOST: Result = Self(-17i32);
1107 #[doc = "The provided XrSystemId was invalid."]
1108 pub const ERROR_SYSTEM_INVALID: Result = Self(-18i32);
1109 #[doc = "The provided XrPath was not valid."]
1110 pub const ERROR_PATH_INVALID: Result = Self(-19i32);
1111 #[doc = "The maximum number of supported semantic paths has been reached."]
1112 pub const ERROR_PATH_COUNT_EXCEEDED: Result = Self(-20i32);
1113 #[doc = "The semantic path character format is invalid."]
1114 pub const ERROR_PATH_FORMAT_INVALID: Result = Self(-21i32);
1115 #[doc = "The semantic path is unsupported."]
1116 pub const ERROR_PATH_UNSUPPORTED: Result = Self(-22i32);
1117 #[doc = "The layer was NULL or otherwise invalid."]
1118 pub const ERROR_LAYER_INVALID: Result = Self(-23i32);
1119 #[doc = "The number of specified layers is greater than the supported number."]
1120 pub const ERROR_LAYER_LIMIT_EXCEEDED: Result = Self(-24i32);
1121 #[doc = "The image rect was negatively sized or otherwise invalid."]
1122 pub const ERROR_SWAPCHAIN_RECT_INVALID: Result = Self(-25i32);
1123 #[doc = "The image format is not supported by the runtime or platform."]
1124 pub const ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED: Result = Self(-26i32);
1125 #[doc = "The API used to retrieve an action's state does not match the action's type."]
1126 pub const ERROR_ACTION_TYPE_MISMATCH: Result = Self(-27i32);
1127 #[doc = "The session is not in the ready state."]
1128 pub const ERROR_SESSION_NOT_READY: Result = Self(-28i32);
1129 #[doc = "The session is not in the stopping state."]
1130 pub const ERROR_SESSION_NOT_STOPPING: Result = Self(-29i32);
1131 #[doc = "The provided XrTime was zero, negative, or out of range."]
1132 pub const ERROR_TIME_INVALID: Result = Self(-30i32);
1133 #[doc = "The specified reference space is not supported by the runtime or system."]
1134 pub const ERROR_REFERENCE_SPACE_UNSUPPORTED: Result = Self(-31i32);
1135 #[doc = "The file could not be accessed."]
1136 pub const ERROR_FILE_ACCESS_ERROR: Result = Self(-32i32);
1137 #[doc = "The file's contents were invalid."]
1138 pub const ERROR_FILE_CONTENTS_INVALID: Result = Self(-33i32);
1139 #[doc = "The specified form factor is not supported by the current runtime or platform."]
1140 pub const ERROR_FORM_FACTOR_UNSUPPORTED: Result = Self(-34i32);
1141 #[doc = "The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off."]
1142 pub const ERROR_FORM_FACTOR_UNAVAILABLE: Result = Self(-35i32);
1143 #[doc = "A requested API layer is not present or could not be loaded."]
1144 pub const ERROR_API_LAYER_NOT_PRESENT: Result = Self(-36i32);
1145 #[doc = "The call was made without having made a previously required call."]
1146 pub const ERROR_CALL_ORDER_INVALID: Result = Self(-37i32);
1147 #[doc = "The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements."]
1148 pub const ERROR_GRAPHICS_DEVICE_INVALID: Result = Self(-38i32);
1149 #[doc = "The supplied pose was invalid with respect to the requirements."]
1150 pub const ERROR_POSE_INVALID: Result = Self(-39i32);
1151 #[doc = "The supplied index was outside the range of valid indices."]
1152 pub const ERROR_INDEX_OUT_OF_RANGE: Result = Self(-40i32);
1153 #[doc = "The specified view configuration type is not supported by the runtime or platform."]
1154 pub const ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED: Result = Self(-41i32);
1155 #[doc = "The specified environment blend mode is not supported by the runtime or platform."]
1156 pub const ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED: Result = Self(-42i32);
1157 #[doc = "The name provided was a duplicate of an already-existing resource."]
1158 pub const ERROR_NAME_DUPLICATED: Result = Self(-44i32);
1159 #[doc = "The name provided was invalid."]
1160 pub const ERROR_NAME_INVALID: Result = Self(-45i32);
1161 #[doc = "A referenced action set is not attached to the session."]
1162 pub const ERROR_ACTIONSET_NOT_ATTACHED: Result = Self(-46i32);
1163 #[doc = "The session already has attached action sets."]
1164 pub const ERROR_ACTIONSETS_ALREADY_ATTACHED: Result = Self(-47i32);
1165 #[doc = "The localized name provided was a duplicate of an already-existing resource."]
1166 pub const ERROR_LOCALIZED_NAME_DUPLICATED: Result = Self(-48i32);
1167 #[doc = "The localized name provided was invalid."]
1168 pub const ERROR_LOCALIZED_NAME_INVALID: Result = Self(-49i32);
1169 #[doc = "The xrGetGraphicsRequirements* call was not made before calling xrCreateSession."]
1170 pub const ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING: Result = Self(-50i32);
1171 #[doc = "The loader was unable to find or load a runtime."]
1172 pub const ERROR_RUNTIME_UNAVAILABLE: Result = Self(-51i32);
1173 #[doc = "One or more of the extensions being enabled has dependency on extensions that are not enabled."]
1174 pub const ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED: Result = Self(-1000710001i32);
1175 #[doc = "Insufficient permissions. This error is included for use by vendor extensions. The precise definition of `XR_ERROR_PERMISSION_INSUFFICIENT` and actions possible by the developer or user to resolve it can vary by platform, extension or function. The developer should refer to the documentation of the function that returned the error code and extension it was defined."]
1176 pub const ERROR_PERMISSION_INSUFFICIENT: Result = Self(-1000710000i32);
1177 #[doc = "xrSetAndroidApplicationThreadKHR failed as thread id is invalid."]
1178 pub const ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR: Result = Self(-1000003000i32);
1179 #[doc = "xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority."]
1180 pub const ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR: Result = Self(-1000003001i32);
1181 #[doc = "Spatial anchor could not be created at that location."]
1182 pub const ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT: Result = Self(-1000039001i32);
1183 #[doc = "The secondary view configuration was not enabled when creating the session."]
1184 pub const ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT: Result =
1185 Self(-1000053000i32);
1186 #[doc = "The controller model key is invalid."]
1187 pub const ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT: Result = Self(-1000055000i32);
1188 #[doc = "The reprojection mode is not supported."]
1189 pub const ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT: Result = Self(-1000066000i32);
1190 #[doc = "Compute new scene not completed."]
1191 pub const ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT: Result = Self(-1000097000i32);
1192 #[doc = "Scene component id invalid."]
1193 pub const ERROR_SCENE_COMPONENT_ID_INVALID_MSFT: Result = Self(-1000097001i32);
1194 #[doc = "Scene component type mismatch."]
1195 pub const ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT: Result = Self(-1000097002i32);
1196 #[doc = "Scene mesh buffer id invalid."]
1197 pub const ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT: Result = Self(-1000097003i32);
1198 #[doc = "Scene compute feature incompatible."]
1199 pub const ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT: Result = Self(-1000097004i32);
1200 #[doc = "Scene compute consistency mismatch."]
1201 pub const ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT: Result = Self(-1000097005i32);
1202 #[doc = "The display refresh rate is not supported by the platform."]
1203 pub const ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB: Result = Self(-1000101000i32);
1204 #[doc = "The color space is not supported by the runtime."]
1205 pub const ERROR_COLOR_SPACE_UNSUPPORTED_FB: Result = Self(-1000108000i32);
1206 #[doc = "The component type is not supported for this space."]
1207 pub const ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB: Result = Self(-1000113000i32);
1208 #[doc = "The required component is not enabled for this space."]
1209 pub const ERROR_SPACE_COMPONENT_NOT_ENABLED_FB: Result = Self(-1000113001i32);
1210 #[doc = "A request to set the component's status is currently pending."]
1211 pub const ERROR_SPACE_COMPONENT_STATUS_PENDING_FB: Result = Self(-1000113002i32);
1212 #[doc = "The component is already set to the requested value."]
1213 pub const ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB: Result = Self(-1000113003i32);
1214 #[doc = "The object state is unexpected for the issued command."]
1215 pub const ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB: Result = Self(-1000118000i32);
1216 #[doc = "Trying to create an MR feature when one was already created and only one instance is allowed."]
1217 pub const ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB: Result = Self(-1000118001i32);
1218 #[doc = "Requested functionality requires a feature to be created first."]
1219 pub const ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB: Result = Self(-1000118002i32);
1220 #[doc = "Requested functionality is not permitted - application is not allowed to perform the requested operation."]
1221 pub const ERROR_NOT_PERMITTED_PASSTHROUGH_FB: Result = Self(-1000118003i32);
1222 #[doc = "There were insufficient resources available to perform an operation."]
1223 pub const ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB: Result = Self(-1000118004i32);
1224 #[doc = "Unknown Passthrough error (no further details provided)."]
1225 pub const ERROR_UNKNOWN_PASSTHROUGH_FB: Result = Self(-1000118050i32);
1226 #[doc = "The model key is invalid."]
1227 pub const ERROR_RENDER_MODEL_KEY_INVALID_FB: Result = Self(-1000119000i32);
1228 #[doc = "The model is unavailable."]
1229 pub const RENDER_MODEL_UNAVAILABLE_FB: Result = Self(1000119020i32);
1230 #[doc = "Marker tracking is disabled or the specified marker is not currently tracked."]
1231 pub const ERROR_MARKER_NOT_TRACKED_VARJO: Result = Self(-1000124000i32);
1232 #[doc = "The specified marker ID is not valid."]
1233 pub const ERROR_MARKER_ID_INVALID_VARJO: Result = Self(-1000124001i32);
1234 #[doc = "The com.magicleap.permission.MARKER_TRACKING permission was denied."]
1235 pub const ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML: Result = Self(-1000138000i32);
1236 #[doc = "The specified marker could not be located spatially."]
1237 pub const ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML: Result = Self(-1000138001i32);
1238 #[doc = "The marker queried does not contain data of the requested type."]
1239 pub const ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML: Result = Self(-1000138002i32);
1240 #[doc = "createInfo contains mutually exclusive parameters, such as setting XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with XR_MARKER_TYPE_ARUCO_ML."]
1241 pub const ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML: Result = Self(-1000138003i32);
1242 #[doc = "The marker id passed to the function was invalid."]
1243 pub const ERROR_MARKER_INVALID_ML: Result = Self(-1000138004i32);
1244 #[doc = "The localization map being imported is not compatible with current OS or mode."]
1245 pub const ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML: Result = Self(-1000139000i32);
1246 #[doc = "The localization map requested is not available."]
1247 pub const ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML: Result = Self(-1000139001i32);
1248 #[doc = "The map localization service failed to fulfill the request, retry later."]
1249 pub const ERROR_LOCALIZATION_MAP_FAIL_ML: Result = Self(-1000139002i32);
1250 #[doc = "The com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied."]
1251 pub const ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML: Result =
1252 Self(-1000139003i32);
1253 #[doc = "The com.magicleap.permission.SPACE_MANAGER permission was denied."]
1254 pub const ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML: Result = Self(-1000139004i32);
1255 #[doc = "The map being imported already exists in the system."]
1256 pub const ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML: Result = Self(-1000139005i32);
1257 #[doc = "The map localization service cannot export cloud based maps."]
1258 pub const ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML: Result = Self(-1000139006i32);
1259 #[doc = "A spatial anchor was not found associated with the spatial anchor name provided"]
1260 pub const ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT: Result = Self(-1000142001i32);
1261 #[doc = "The spatial anchor name provided was not valid"]
1262 pub const ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT: Result = Self(-1000142002i32);
1263 #[doc = "Marker does not encode a string."]
1264 pub const SCENE_MARKER_DATA_NOT_STRING_MSFT: Result = Self(1000147000i32);
1265 #[doc = "Anchor import from cloud or export from device failed."]
1266 pub const ERROR_SPACE_MAPPING_INSUFFICIENT_FB: Result = Self(-1000169000i32);
1267 #[doc = "Anchors were downloaded from the cloud but failed to be imported/aligned on the device."]
1268 pub const ERROR_SPACE_LOCALIZATION_FAILED_FB: Result = Self(-1000169001i32);
1269 #[doc = "Timeout occurred while waiting for network request to complete."]
1270 pub const ERROR_SPACE_NETWORK_TIMEOUT_FB: Result = Self(-1000169002i32);
1271 #[doc = "The network request failed."]
1272 pub const ERROR_SPACE_NETWORK_REQUEST_FAILED_FB: Result = Self(-1000169003i32);
1273 #[doc = "Cloud storage is required for this operation but is currently disabled."]
1274 pub const ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB: Result = Self(-1000169004i32);
1275 #[doc = "The provided data buffer did not match the required size."]
1276 pub const ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META: Result = Self(-1000266000i32);
1277 #[doc = "Warning: The requested depth image is not yet available."]
1278 pub const ENVIRONMENT_DEPTH_NOT_AVAILABLE_META: Result = Self(1000291000i32);
1279 #[doc = "Tracking optimization hint is already set for the domain."]
1280 pub const ERROR_HINT_ALREADY_SET_QCOM: Result = Self(-1000306000i32);
1281 #[doc = "The provided space is valid but not an anchor."]
1282 pub const ERROR_NOT_AN_ANCHOR_HTC: Result = Self(-1000319000i32);
1283 #[doc = "The space passed to the function was not locatable."]
1284 pub const ERROR_SPACE_NOT_LOCATABLE_EXT: Result = Self(-1000429000i32);
1285 #[doc = "The permission for this resource was not granted."]
1286 pub const ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT: Result = Self(-1000429001i32);
1287 #[doc = "Returned by completion function to indicate future is not ready."]
1288 pub const ERROR_FUTURE_PENDING_EXT: Result = Self(-1000469001i32);
1289 #[doc = "Returned by completion function to indicate future is not valid."]
1290 pub const ERROR_FUTURE_INVALID_EXT: Result = Self(-1000469002i32);
1291 pub const ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR: Result =
1292 Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED;
1293 pub const ERROR_PERMISSION_INSUFFICIENT_KHR: Result = Self::ERROR_PERMISSION_INSUFFICIENT;
1294 pub fn from_raw(x: i32) -> Self {
1295 Self(x)
1296 }
1297 pub fn into_raw(self) -> i32 {
1298 self.0
1299 }
1300}
1301impl fmt::Debug for Result {
1302 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1303 let name = match *self {
1304 Self::SUCCESS => Some("SUCCESS"),
1305 Self::TIMEOUT_EXPIRED => Some("TIMEOUT_EXPIRED"),
1306 Self::SESSION_LOSS_PENDING => Some("SESSION_LOSS_PENDING"),
1307 Self::EVENT_UNAVAILABLE => Some("EVENT_UNAVAILABLE"),
1308 Self::SPACE_BOUNDS_UNAVAILABLE => Some("SPACE_BOUNDS_UNAVAILABLE"),
1309 Self::SESSION_NOT_FOCUSED => Some("SESSION_NOT_FOCUSED"),
1310 Self::FRAME_DISCARDED => Some("FRAME_DISCARDED"),
1311 Self::ERROR_VALIDATION_FAILURE => Some("ERROR_VALIDATION_FAILURE"),
1312 Self::ERROR_RUNTIME_FAILURE => Some("ERROR_RUNTIME_FAILURE"),
1313 Self::ERROR_OUT_OF_MEMORY => Some("ERROR_OUT_OF_MEMORY"),
1314 Self::ERROR_API_VERSION_UNSUPPORTED => Some("ERROR_API_VERSION_UNSUPPORTED"),
1315 Self::ERROR_INITIALIZATION_FAILED => Some("ERROR_INITIALIZATION_FAILED"),
1316 Self::ERROR_FUNCTION_UNSUPPORTED => Some("ERROR_FUNCTION_UNSUPPORTED"),
1317 Self::ERROR_FEATURE_UNSUPPORTED => Some("ERROR_FEATURE_UNSUPPORTED"),
1318 Self::ERROR_EXTENSION_NOT_PRESENT => Some("ERROR_EXTENSION_NOT_PRESENT"),
1319 Self::ERROR_LIMIT_REACHED => Some("ERROR_LIMIT_REACHED"),
1320 Self::ERROR_SIZE_INSUFFICIENT => Some("ERROR_SIZE_INSUFFICIENT"),
1321 Self::ERROR_HANDLE_INVALID => Some("ERROR_HANDLE_INVALID"),
1322 Self::ERROR_INSTANCE_LOST => Some("ERROR_INSTANCE_LOST"),
1323 Self::ERROR_SESSION_RUNNING => Some("ERROR_SESSION_RUNNING"),
1324 Self::ERROR_SESSION_NOT_RUNNING => Some("ERROR_SESSION_NOT_RUNNING"),
1325 Self::ERROR_SESSION_LOST => Some("ERROR_SESSION_LOST"),
1326 Self::ERROR_SYSTEM_INVALID => Some("ERROR_SYSTEM_INVALID"),
1327 Self::ERROR_PATH_INVALID => Some("ERROR_PATH_INVALID"),
1328 Self::ERROR_PATH_COUNT_EXCEEDED => Some("ERROR_PATH_COUNT_EXCEEDED"),
1329 Self::ERROR_PATH_FORMAT_INVALID => Some("ERROR_PATH_FORMAT_INVALID"),
1330 Self::ERROR_PATH_UNSUPPORTED => Some("ERROR_PATH_UNSUPPORTED"),
1331 Self::ERROR_LAYER_INVALID => Some("ERROR_LAYER_INVALID"),
1332 Self::ERROR_LAYER_LIMIT_EXCEEDED => Some("ERROR_LAYER_LIMIT_EXCEEDED"),
1333 Self::ERROR_SWAPCHAIN_RECT_INVALID => Some("ERROR_SWAPCHAIN_RECT_INVALID"),
1334 Self::ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED => Some("ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED"),
1335 Self::ERROR_ACTION_TYPE_MISMATCH => Some("ERROR_ACTION_TYPE_MISMATCH"),
1336 Self::ERROR_SESSION_NOT_READY => Some("ERROR_SESSION_NOT_READY"),
1337 Self::ERROR_SESSION_NOT_STOPPING => Some("ERROR_SESSION_NOT_STOPPING"),
1338 Self::ERROR_TIME_INVALID => Some("ERROR_TIME_INVALID"),
1339 Self::ERROR_REFERENCE_SPACE_UNSUPPORTED => Some("ERROR_REFERENCE_SPACE_UNSUPPORTED"),
1340 Self::ERROR_FILE_ACCESS_ERROR => Some("ERROR_FILE_ACCESS_ERROR"),
1341 Self::ERROR_FILE_CONTENTS_INVALID => Some("ERROR_FILE_CONTENTS_INVALID"),
1342 Self::ERROR_FORM_FACTOR_UNSUPPORTED => Some("ERROR_FORM_FACTOR_UNSUPPORTED"),
1343 Self::ERROR_FORM_FACTOR_UNAVAILABLE => Some("ERROR_FORM_FACTOR_UNAVAILABLE"),
1344 Self::ERROR_API_LAYER_NOT_PRESENT => Some("ERROR_API_LAYER_NOT_PRESENT"),
1345 Self::ERROR_CALL_ORDER_INVALID => Some("ERROR_CALL_ORDER_INVALID"),
1346 Self::ERROR_GRAPHICS_DEVICE_INVALID => Some("ERROR_GRAPHICS_DEVICE_INVALID"),
1347 Self::ERROR_POSE_INVALID => Some("ERROR_POSE_INVALID"),
1348 Self::ERROR_INDEX_OUT_OF_RANGE => Some("ERROR_INDEX_OUT_OF_RANGE"),
1349 Self::ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED => {
1350 Some("ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED")
1351 }
1352 Self::ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED => {
1353 Some("ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED")
1354 }
1355 Self::ERROR_NAME_DUPLICATED => Some("ERROR_NAME_DUPLICATED"),
1356 Self::ERROR_NAME_INVALID => Some("ERROR_NAME_INVALID"),
1357 Self::ERROR_ACTIONSET_NOT_ATTACHED => Some("ERROR_ACTIONSET_NOT_ATTACHED"),
1358 Self::ERROR_ACTIONSETS_ALREADY_ATTACHED => Some("ERROR_ACTIONSETS_ALREADY_ATTACHED"),
1359 Self::ERROR_LOCALIZED_NAME_DUPLICATED => Some("ERROR_LOCALIZED_NAME_DUPLICATED"),
1360 Self::ERROR_LOCALIZED_NAME_INVALID => Some("ERROR_LOCALIZED_NAME_INVALID"),
1361 Self::ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING => {
1362 Some("ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING")
1363 }
1364 Self::ERROR_RUNTIME_UNAVAILABLE => Some("ERROR_RUNTIME_UNAVAILABLE"),
1365 Self::ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED => {
1366 Some("ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED")
1367 }
1368 Self::ERROR_PERMISSION_INSUFFICIENT => Some("ERROR_PERMISSION_INSUFFICIENT"),
1369 Self::ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR => {
1370 Some("ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR")
1371 }
1372 Self::ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR => {
1373 Some("ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR")
1374 }
1375 Self::ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT => {
1376 Some("ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT")
1377 }
1378 Self::ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT => {
1379 Some("ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT")
1380 }
1381 Self::ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT => {
1382 Some("ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT")
1383 }
1384 Self::ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT => {
1385 Some("ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT")
1386 }
1387 Self::ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT => {
1388 Some("ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT")
1389 }
1390 Self::ERROR_SCENE_COMPONENT_ID_INVALID_MSFT => {
1391 Some("ERROR_SCENE_COMPONENT_ID_INVALID_MSFT")
1392 }
1393 Self::ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT => {
1394 Some("ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT")
1395 }
1396 Self::ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT => {
1397 Some("ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT")
1398 }
1399 Self::ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT => {
1400 Some("ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT")
1401 }
1402 Self::ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT => {
1403 Some("ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT")
1404 }
1405 Self::ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB => {
1406 Some("ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB")
1407 }
1408 Self::ERROR_COLOR_SPACE_UNSUPPORTED_FB => Some("ERROR_COLOR_SPACE_UNSUPPORTED_FB"),
1409 Self::ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB => {
1410 Some("ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB")
1411 }
1412 Self::ERROR_SPACE_COMPONENT_NOT_ENABLED_FB => {
1413 Some("ERROR_SPACE_COMPONENT_NOT_ENABLED_FB")
1414 }
1415 Self::ERROR_SPACE_COMPONENT_STATUS_PENDING_FB => {
1416 Some("ERROR_SPACE_COMPONENT_STATUS_PENDING_FB")
1417 }
1418 Self::ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB => {
1419 Some("ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB")
1420 }
1421 Self::ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB => {
1422 Some("ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB")
1423 }
1424 Self::ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB => {
1425 Some("ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB")
1426 }
1427 Self::ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB => {
1428 Some("ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB")
1429 }
1430 Self::ERROR_NOT_PERMITTED_PASSTHROUGH_FB => Some("ERROR_NOT_PERMITTED_PASSTHROUGH_FB"),
1431 Self::ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB => {
1432 Some("ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB")
1433 }
1434 Self::ERROR_UNKNOWN_PASSTHROUGH_FB => Some("ERROR_UNKNOWN_PASSTHROUGH_FB"),
1435 Self::ERROR_RENDER_MODEL_KEY_INVALID_FB => Some("ERROR_RENDER_MODEL_KEY_INVALID_FB"),
1436 Self::RENDER_MODEL_UNAVAILABLE_FB => Some("RENDER_MODEL_UNAVAILABLE_FB"),
1437 Self::ERROR_MARKER_NOT_TRACKED_VARJO => Some("ERROR_MARKER_NOT_TRACKED_VARJO"),
1438 Self::ERROR_MARKER_ID_INVALID_VARJO => Some("ERROR_MARKER_ID_INVALID_VARJO"),
1439 Self::ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML => {
1440 Some("ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML")
1441 }
1442 Self::ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML => {
1443 Some("ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML")
1444 }
1445 Self::ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML => {
1446 Some("ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML")
1447 }
1448 Self::ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML => {
1449 Some("ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML")
1450 }
1451 Self::ERROR_MARKER_INVALID_ML => Some("ERROR_MARKER_INVALID_ML"),
1452 Self::ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML => {
1453 Some("ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML")
1454 }
1455 Self::ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML => {
1456 Some("ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML")
1457 }
1458 Self::ERROR_LOCALIZATION_MAP_FAIL_ML => Some("ERROR_LOCALIZATION_MAP_FAIL_ML"),
1459 Self::ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML => {
1460 Some("ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML")
1461 }
1462 Self::ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML => {
1463 Some("ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML")
1464 }
1465 Self::ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML => {
1466 Some("ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML")
1467 }
1468 Self::ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML => {
1469 Some("ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML")
1470 }
1471 Self::ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT => {
1472 Some("ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT")
1473 }
1474 Self::ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT => {
1475 Some("ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT")
1476 }
1477 Self::SCENE_MARKER_DATA_NOT_STRING_MSFT => Some("SCENE_MARKER_DATA_NOT_STRING_MSFT"),
1478 Self::ERROR_SPACE_MAPPING_INSUFFICIENT_FB => {
1479 Some("ERROR_SPACE_MAPPING_INSUFFICIENT_FB")
1480 }
1481 Self::ERROR_SPACE_LOCALIZATION_FAILED_FB => Some("ERROR_SPACE_LOCALIZATION_FAILED_FB"),
1482 Self::ERROR_SPACE_NETWORK_TIMEOUT_FB => Some("ERROR_SPACE_NETWORK_TIMEOUT_FB"),
1483 Self::ERROR_SPACE_NETWORK_REQUEST_FAILED_FB => {
1484 Some("ERROR_SPACE_NETWORK_REQUEST_FAILED_FB")
1485 }
1486 Self::ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB => {
1487 Some("ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB")
1488 }
1489 Self::ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META => {
1490 Some("ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META")
1491 }
1492 Self::ENVIRONMENT_DEPTH_NOT_AVAILABLE_META => {
1493 Some("ENVIRONMENT_DEPTH_NOT_AVAILABLE_META")
1494 }
1495 Self::ERROR_HINT_ALREADY_SET_QCOM => Some("ERROR_HINT_ALREADY_SET_QCOM"),
1496 Self::ERROR_NOT_AN_ANCHOR_HTC => Some("ERROR_NOT_AN_ANCHOR_HTC"),
1497 Self::ERROR_SPACE_NOT_LOCATABLE_EXT => Some("ERROR_SPACE_NOT_LOCATABLE_EXT"),
1498 Self::ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT => {
1499 Some("ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT")
1500 }
1501 Self::ERROR_FUTURE_PENDING_EXT => Some("ERROR_FUTURE_PENDING_EXT"),
1502 Self::ERROR_FUTURE_INVALID_EXT => Some("ERROR_FUTURE_INVALID_EXT"),
1503 _ => None,
1504 };
1505 fmt_enum(fmt, self.0, name)
1506 }
1507}
1508impl fmt::Display for Result {
1509 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1510 let reason = match * self { Self :: SUCCESS => Some ("function successfully completed") , Self :: TIMEOUT_EXPIRED => Some ("the specified timeout time occurred before the operation could complete") , Self :: SESSION_LOSS_PENDING => Some ("the session will be lost soon") , Self :: EVENT_UNAVAILABLE => Some ("no event was available") , Self :: SPACE_BOUNDS_UNAVAILABLE => Some ("the space's bounds are not known at the moment") , Self :: SESSION_NOT_FOCUSED => Some ("the session is not in the focused state") , Self :: FRAME_DISCARDED => Some ("a frame has been discarded from composition") , Self :: ERROR_VALIDATION_FAILURE => Some ("the function usage was invalid in some way") , Self :: ERROR_RUNTIME_FAILURE => Some ("the runtime failed to handle the function in an unexpected way that is not covered by another error result") , Self :: ERROR_OUT_OF_MEMORY => Some ("a memory allocation has failed") , Self :: ERROR_API_VERSION_UNSUPPORTED => Some ("the runtime does not support the requested API version") , Self :: ERROR_INITIALIZATION_FAILED => Some ("initialization of object could not be completed") , Self :: ERROR_FUNCTION_UNSUPPORTED => Some ("the requested function was not found or is otherwise unsupported") , Self :: ERROR_FEATURE_UNSUPPORTED => Some ("the requested feature is not supported") , Self :: ERROR_EXTENSION_NOT_PRESENT => Some ("a requested extension is not supported") , Self :: ERROR_LIMIT_REACHED => Some ("the runtime supports no more of the requested resource") , Self :: ERROR_SIZE_INSUFFICIENT => Some ("the supplied size was smaller than required") , Self :: ERROR_HANDLE_INVALID => Some ("a supplied object handle was invalid") , Self :: ERROR_INSTANCE_LOST => Some ("the XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated") , Self :: ERROR_SESSION_RUNNING => Some ("the session is already running") , Self :: ERROR_SESSION_NOT_RUNNING => Some ("the session is not yet running") , Self :: ERROR_SESSION_LOST => Some ("the XrSession was lost. It will need to be destroyed and optionally recreated") , Self :: ERROR_SYSTEM_INVALID => Some ("the provided XrSystemId was invalid") , Self :: ERROR_PATH_INVALID => Some ("the provided XrPath was not valid") , Self :: ERROR_PATH_COUNT_EXCEEDED => Some ("the maximum number of supported semantic paths has been reached") , Self :: ERROR_PATH_FORMAT_INVALID => Some ("the semantic path character format is invalid") , Self :: ERROR_PATH_UNSUPPORTED => Some ("the semantic path is unsupported") , Self :: ERROR_LAYER_INVALID => Some ("the layer was NULL or otherwise invalid") , Self :: ERROR_LAYER_LIMIT_EXCEEDED => Some ("the number of specified layers is greater than the supported number") , Self :: ERROR_SWAPCHAIN_RECT_INVALID => Some ("the image rect was negatively sized or otherwise invalid") , Self :: ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED => Some ("the image format is not supported by the runtime or platform") , Self :: ERROR_ACTION_TYPE_MISMATCH => Some ("the API used to retrieve an action's state does not match the action's type") , Self :: ERROR_SESSION_NOT_READY => Some ("the session is not in the ready state") , Self :: ERROR_SESSION_NOT_STOPPING => Some ("the session is not in the stopping state") , Self :: ERROR_TIME_INVALID => Some ("the provided XrTime was zero, negative, or out of range") , Self :: ERROR_REFERENCE_SPACE_UNSUPPORTED => Some ("the specified reference space is not supported by the runtime or system") , Self :: ERROR_FILE_ACCESS_ERROR => Some ("the file could not be accessed") , Self :: ERROR_FILE_CONTENTS_INVALID => Some ("the file's contents were invalid") , Self :: ERROR_FORM_FACTOR_UNSUPPORTED => Some ("the specified form factor is not supported by the current runtime or platform") , Self :: ERROR_FORM_FACTOR_UNAVAILABLE => Some ("the specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off") , Self :: ERROR_API_LAYER_NOT_PRESENT => Some ("a requested API layer is not present or could not be loaded") , Self :: ERROR_CALL_ORDER_INVALID => Some ("the call was made without having made a previously required call") , Self :: ERROR_GRAPHICS_DEVICE_INVALID => Some ("the given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements") , Self :: ERROR_POSE_INVALID => Some ("the supplied pose was invalid with respect to the requirements") , Self :: ERROR_INDEX_OUT_OF_RANGE => Some ("the supplied index was outside the range of valid indices") , Self :: ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED => Some ("the specified view configuration type is not supported by the runtime or platform") , Self :: ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED => Some ("the specified environment blend mode is not supported by the runtime or platform") , Self :: ERROR_NAME_DUPLICATED => Some ("the name provided was a duplicate of an already-existing resource") , Self :: ERROR_NAME_INVALID => Some ("the name provided was invalid") , Self :: ERROR_ACTIONSET_NOT_ATTACHED => Some ("a referenced action set is not attached to the session") , Self :: ERROR_ACTIONSETS_ALREADY_ATTACHED => Some ("the session already has attached action sets") , Self :: ERROR_LOCALIZED_NAME_DUPLICATED => Some ("the localized name provided was a duplicate of an already-existing resource") , Self :: ERROR_LOCALIZED_NAME_INVALID => Some ("the localized name provided was invalid") , Self :: ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING => Some ("the xrGetGraphicsRequirements* call was not made before calling xrCreateSession") , Self :: ERROR_RUNTIME_UNAVAILABLE => Some ("the loader was unable to find or load a runtime") , Self :: ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED => Some ("one or more of the extensions being enabled has dependency on extensions that are not enabled") , Self :: ERROR_PERMISSION_INSUFFICIENT => Some ("insufficient permissions. This error is included for use by vendor extensions. The precise definition of `XR_ERROR_PERMISSION_INSUFFICIENT` and actions possible by the developer or user to resolve it can vary by platform, extension or function. The developer should refer to the documentation of the function that returned the error code and extension it was defined") , Self :: ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR => Some ("xrSetAndroidApplicationThreadKHR failed as thread id is invalid") , Self :: ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR => Some ("xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority") , Self :: ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT => Some ("spatial anchor could not be created at that location") , Self :: ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT => Some ("the secondary view configuration was not enabled when creating the session") , Self :: ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT => Some ("the controller model key is invalid") , Self :: ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT => Some ("the reprojection mode is not supported") , Self :: ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT => Some ("compute new scene not completed") , Self :: ERROR_SCENE_COMPONENT_ID_INVALID_MSFT => Some ("scene component id invalid") , Self :: ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT => Some ("scene component type mismatch") , Self :: ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT => Some ("scene mesh buffer id invalid") , Self :: ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT => Some ("scene compute feature incompatible") , Self :: ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT => Some ("scene compute consistency mismatch") , Self :: ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB => Some ("the display refresh rate is not supported by the platform") , Self :: ERROR_COLOR_SPACE_UNSUPPORTED_FB => Some ("the color space is not supported by the runtime") , Self :: ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB => Some ("the component type is not supported for this space") , Self :: ERROR_SPACE_COMPONENT_NOT_ENABLED_FB => Some ("the required component is not enabled for this space") , Self :: ERROR_SPACE_COMPONENT_STATUS_PENDING_FB => Some ("a request to set the component's status is currently pending") , Self :: ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB => Some ("the component is already set to the requested value") , Self :: ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB => Some ("the object state is unexpected for the issued command") , Self :: ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB => Some ("trying to create an MR feature when one was already created and only one instance is allowed") , Self :: ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB => Some ("requested functionality requires a feature to be created first") , Self :: ERROR_NOT_PERMITTED_PASSTHROUGH_FB => Some ("requested functionality is not permitted - application is not allowed to perform the requested operation") , Self :: ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB => Some ("there were insufficient resources available to perform an operation") , Self :: ERROR_UNKNOWN_PASSTHROUGH_FB => Some ("unknown Passthrough error (no further details provided)") , Self :: ERROR_RENDER_MODEL_KEY_INVALID_FB => Some ("the model key is invalid") , Self :: RENDER_MODEL_UNAVAILABLE_FB => Some ("the model is unavailable") , Self :: ERROR_MARKER_NOT_TRACKED_VARJO => Some ("marker tracking is disabled or the specified marker is not currently tracked") , Self :: ERROR_MARKER_ID_INVALID_VARJO => Some ("the specified marker ID is not valid") , Self :: ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML => Some ("the com.magicleap.permission.MARKER_TRACKING permission was denied") , Self :: ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML => Some ("the specified marker could not be located spatially") , Self :: ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML => Some ("the marker queried does not contain data of the requested type") , Self :: ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML => Some ("createInfo contains mutually exclusive parameters, such as setting XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with XR_MARKER_TYPE_ARUCO_ML") , Self :: ERROR_MARKER_INVALID_ML => Some ("the marker id passed to the function was invalid") , Self :: ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML => Some ("the localization map being imported is not compatible with current OS or mode") , Self :: ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML => Some ("the localization map requested is not available") , Self :: ERROR_LOCALIZATION_MAP_FAIL_ML => Some ("the map localization service failed to fulfill the request, retry later") , Self :: ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML => Some ("the com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied") , Self :: ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML => Some ("the com.magicleap.permission.SPACE_MANAGER permission was denied") , Self :: ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML => Some ("the map being imported already exists in the system") , Self :: ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML => Some ("the map localization service cannot export cloud based maps") , Self :: ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT => Some ("a spatial anchor was not found associated with the spatial anchor name provided") , Self :: ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT => Some ("the spatial anchor name provided was not valid") , Self :: SCENE_MARKER_DATA_NOT_STRING_MSFT => Some ("marker does not encode a string") , Self :: ERROR_SPACE_MAPPING_INSUFFICIENT_FB => Some ("anchor import from cloud or export from device failed") , Self :: ERROR_SPACE_LOCALIZATION_FAILED_FB => Some ("anchors were downloaded from the cloud but failed to be imported/aligned on the device") , Self :: ERROR_SPACE_NETWORK_TIMEOUT_FB => Some ("timeout occurred while waiting for network request to complete") , Self :: ERROR_SPACE_NETWORK_REQUEST_FAILED_FB => Some ("the network request failed") , Self :: ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB => Some ("cloud storage is required for this operation but is currently disabled") , Self :: ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META => Some ("the provided data buffer did not match the required size") , Self :: ENVIRONMENT_DEPTH_NOT_AVAILABLE_META => Some ("warning: The requested depth image is not yet available") , Self :: ERROR_HINT_ALREADY_SET_QCOM => Some ("tracking optimization hint is already set for the domain") , Self :: ERROR_NOT_AN_ANCHOR_HTC => Some ("the provided space is valid but not an anchor") , Self :: ERROR_SPACE_NOT_LOCATABLE_EXT => Some ("the space passed to the function was not locatable") , Self :: ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT => Some ("the permission for this resource was not granted") , Self :: ERROR_FUTURE_PENDING_EXT => Some ("returned by completion function to indicate future is not ready") , Self :: ERROR_FUTURE_INVALID_EXT => Some ("returned by completion function to indicate future is not valid") , Self :: ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR => Some ("ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR") , Self :: ERROR_PERMISSION_INSUFFICIENT_KHR => Some ("ERROR_PERMISSION_INSUFFICIENT_KHR") , _ => None , } ;
1511 if let Some(reason) = reason {
1512 fmt.pad(reason)
1513 } else {
1514 write!(fmt, "unknown error (code {})", self.0)
1515 }
1516 }
1517}
1518impl std::error::Error for Result {}
1519#[doc = "Enums to track objects of various types - see [XrObjectType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrObjectType)"]
1520#[repr(transparent)]
1521#[derive(Copy, Clone, Eq, PartialEq)]
1522pub struct ObjectType(i32);
1523impl ObjectType {
1524 pub const UNKNOWN: ObjectType = Self(0i32);
1525 #[doc = "XrInstance"]
1526 pub const INSTANCE: ObjectType = Self(1i32);
1527 #[doc = "XrSession"]
1528 pub const SESSION: ObjectType = Self(2i32);
1529 #[doc = "XrSwapchain"]
1530 pub const SWAPCHAIN: ObjectType = Self(3i32);
1531 #[doc = "XrSpace"]
1532 pub const SPACE: ObjectType = Self(4i32);
1533 #[doc = "XrActionSet"]
1534 pub const ACTION_SET: ObjectType = Self(5i32);
1535 #[doc = "XrAction"]
1536 pub const ACTION: ObjectType = Self(6i32);
1537 #[doc = "XrDebugUtilsMessengerEXT"]
1538 pub const DEBUG_UTILS_MESSENGER_EXT: ObjectType = Self(1000019000i32);
1539 #[doc = "XrSpatialAnchorMSFT"]
1540 pub const SPATIAL_ANCHOR_MSFT: ObjectType = Self(1000039000i32);
1541 #[doc = "XrSpatialGraphNodeBindingMSFT"]
1542 pub const SPATIAL_GRAPH_NODE_BINDING_MSFT: ObjectType = Self(1000049000i32);
1543 #[doc = "XrHandTrackerEXT"]
1544 pub const HAND_TRACKER_EXT: ObjectType = Self(1000051000i32);
1545 #[doc = "XrBodyTrackerFB"]
1546 pub const BODY_TRACKER_FB: ObjectType = Self(1000076000i32);
1547 #[doc = "XrSceneObserverMSFT"]
1548 pub const SCENE_OBSERVER_MSFT: ObjectType = Self(1000097000i32);
1549 #[doc = "XrSceneMSFT"]
1550 pub const SCENE_MSFT: ObjectType = Self(1000097001i32);
1551 #[doc = "XrFacialTrackerHTC"]
1552 pub const FACIAL_TRACKER_HTC: ObjectType = Self(1000104000i32);
1553 #[doc = "XrFoveationProfileFB"]
1554 pub const FOVEATION_PROFILE_FB: ObjectType = Self(1000114000i32);
1555 #[doc = "XrTriangleMeshFB"]
1556 pub const TRIANGLE_MESH_FB: ObjectType = Self(1000117000i32);
1557 #[doc = "XrPassthroughFB"]
1558 pub const PASSTHROUGH_FB: ObjectType = Self(1000118000i32);
1559 #[doc = "XrPassthroughLayerFB"]
1560 pub const PASSTHROUGH_LAYER_FB: ObjectType = Self(1000118002i32);
1561 #[doc = "XrGeometryInstanceFB"]
1562 pub const GEOMETRY_INSTANCE_FB: ObjectType = Self(1000118004i32);
1563 #[doc = "XrMarkerDetectorML"]
1564 pub const MARKER_DETECTOR_ML: ObjectType = Self(1000138000i32);
1565 #[doc = "XrExportedLocalizationMapML"]
1566 pub const EXPORTED_LOCALIZATION_MAP_ML: ObjectType = Self(1000139000i32);
1567 #[doc = "XrSpatialAnchorStoreConnectionMSFT"]
1568 pub const SPATIAL_ANCHOR_STORE_CONNECTION_MSFT: ObjectType = Self(1000142000i32);
1569 #[doc = "XrFaceTrackerFB"]
1570 pub const FACE_TRACKER_FB: ObjectType = Self(1000201000i32);
1571 #[doc = "XrEyeTrackerFB"]
1572 pub const EYE_TRACKER_FB: ObjectType = Self(1000202000i32);
1573 #[doc = "XrVirtualKeyboardMETA"]
1574 pub const VIRTUAL_KEYBOARD_META: ObjectType = Self(1000219000i32);
1575 #[doc = "XrSpaceUserFB"]
1576 pub const SPACE_USER_FB: ObjectType = Self(1000241000i32);
1577 #[doc = "XrPassthroughColorLutMETA"]
1578 pub const PASSTHROUGH_COLOR_LUT_META: ObjectType = Self(1000266000i32);
1579 #[doc = "XrFaceTracker2FB"]
1580 pub const FACE_TRACKER2_FB: ObjectType = Self(1000287012i32);
1581 #[doc = "XrEnvironmentDepthProviderMETA"]
1582 pub const ENVIRONMENT_DEPTH_PROVIDER_META: ObjectType = Self(1000291000i32);
1583 #[doc = "XrEnvironmentDepthSwapchainMETA"]
1584 pub const ENVIRONMENT_DEPTH_SWAPCHAIN_META: ObjectType = Self(1000291001i32);
1585 #[doc = "XrPassthroughHTC"]
1586 pub const PASSTHROUGH_HTC: ObjectType = Self(1000317000i32);
1587 #[doc = "XrPlaneDetectorEXT"]
1588 pub const PLANE_DETECTOR_EXT: ObjectType = Self(1000429000i32);
1589 pub fn from_raw(x: i32) -> Self {
1590 Self(x)
1591 }
1592 pub fn into_raw(self) -> i32 {
1593 self.0
1594 }
1595}
1596impl fmt::Debug for ObjectType {
1597 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1598 let name = match *self {
1599 Self::UNKNOWN => Some("UNKNOWN"),
1600 Self::INSTANCE => Some("INSTANCE"),
1601 Self::SESSION => Some("SESSION"),
1602 Self::SWAPCHAIN => Some("SWAPCHAIN"),
1603 Self::SPACE => Some("SPACE"),
1604 Self::ACTION_SET => Some("ACTION_SET"),
1605 Self::ACTION => Some("ACTION"),
1606 Self::DEBUG_UTILS_MESSENGER_EXT => Some("DEBUG_UTILS_MESSENGER_EXT"),
1607 Self::SPATIAL_ANCHOR_MSFT => Some("SPATIAL_ANCHOR_MSFT"),
1608 Self::SPATIAL_GRAPH_NODE_BINDING_MSFT => Some("SPATIAL_GRAPH_NODE_BINDING_MSFT"),
1609 Self::HAND_TRACKER_EXT => Some("HAND_TRACKER_EXT"),
1610 Self::BODY_TRACKER_FB => Some("BODY_TRACKER_FB"),
1611 Self::SCENE_OBSERVER_MSFT => Some("SCENE_OBSERVER_MSFT"),
1612 Self::SCENE_MSFT => Some("SCENE_MSFT"),
1613 Self::FACIAL_TRACKER_HTC => Some("FACIAL_TRACKER_HTC"),
1614 Self::FOVEATION_PROFILE_FB => Some("FOVEATION_PROFILE_FB"),
1615 Self::TRIANGLE_MESH_FB => Some("TRIANGLE_MESH_FB"),
1616 Self::PASSTHROUGH_FB => Some("PASSTHROUGH_FB"),
1617 Self::PASSTHROUGH_LAYER_FB => Some("PASSTHROUGH_LAYER_FB"),
1618 Self::GEOMETRY_INSTANCE_FB => Some("GEOMETRY_INSTANCE_FB"),
1619 Self::MARKER_DETECTOR_ML => Some("MARKER_DETECTOR_ML"),
1620 Self::EXPORTED_LOCALIZATION_MAP_ML => Some("EXPORTED_LOCALIZATION_MAP_ML"),
1621 Self::SPATIAL_ANCHOR_STORE_CONNECTION_MSFT => {
1622 Some("SPATIAL_ANCHOR_STORE_CONNECTION_MSFT")
1623 }
1624 Self::FACE_TRACKER_FB => Some("FACE_TRACKER_FB"),
1625 Self::EYE_TRACKER_FB => Some("EYE_TRACKER_FB"),
1626 Self::VIRTUAL_KEYBOARD_META => Some("VIRTUAL_KEYBOARD_META"),
1627 Self::SPACE_USER_FB => Some("SPACE_USER_FB"),
1628 Self::PASSTHROUGH_COLOR_LUT_META => Some("PASSTHROUGH_COLOR_LUT_META"),
1629 Self::FACE_TRACKER2_FB => Some("FACE_TRACKER2_FB"),
1630 Self::ENVIRONMENT_DEPTH_PROVIDER_META => Some("ENVIRONMENT_DEPTH_PROVIDER_META"),
1631 Self::ENVIRONMENT_DEPTH_SWAPCHAIN_META => Some("ENVIRONMENT_DEPTH_SWAPCHAIN_META"),
1632 Self::PASSTHROUGH_HTC => Some("PASSTHROUGH_HTC"),
1633 Self::PLANE_DETECTOR_EXT => Some("PLANE_DETECTOR_EXT"),
1634 _ => None,
1635 };
1636 fmt_enum(fmt, self.0, name)
1637 }
1638}
1639#[doc = "Android Thread Types - see [XrAndroidThreadTypeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidThreadTypeKHR)"]
1640#[repr(transparent)]
1641#[derive(Copy, Clone, Eq, PartialEq)]
1642pub struct AndroidThreadTypeKHR(i32);
1643impl AndroidThreadTypeKHR {
1644 pub const APPLICATION_MAIN: AndroidThreadTypeKHR = Self(1i32);
1645 pub const APPLICATION_WORKER: AndroidThreadTypeKHR = Self(2i32);
1646 pub const RENDERER_MAIN: AndroidThreadTypeKHR = Self(3i32);
1647 pub const RENDERER_WORKER: AndroidThreadTypeKHR = Self(4i32);
1648 pub fn from_raw(x: i32) -> Self {
1649 Self(x)
1650 }
1651 pub fn into_raw(self) -> i32 {
1652 self.0
1653 }
1654}
1655impl fmt::Debug for AndroidThreadTypeKHR {
1656 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1657 let name = match *self {
1658 Self::APPLICATION_MAIN => Some("APPLICATION_MAIN"),
1659 Self::APPLICATION_WORKER => Some("APPLICATION_WORKER"),
1660 Self::RENDERER_MAIN => Some("RENDERER_MAIN"),
1661 Self::RENDERER_WORKER => Some("RENDERER_WORKER"),
1662 _ => None,
1663 };
1664 fmt_enum(fmt, self.0, name)
1665 }
1666}
1667#[doc = "eye visibility selector - see [XrEyeVisibility](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeVisibility)"]
1668#[repr(transparent)]
1669#[derive(Copy, Clone, Eq, PartialEq)]
1670pub struct EyeVisibility(i32);
1671impl EyeVisibility {
1672 #[doc = "Display in both eyes."]
1673 pub const BOTH: EyeVisibility = Self(0i32);
1674 #[doc = "Display in the left eye only."]
1675 pub const LEFT: EyeVisibility = Self(1i32);
1676 #[doc = "Display in the right eye only."]
1677 pub const RIGHT: EyeVisibility = Self(2i32);
1678 pub fn from_raw(x: i32) -> Self {
1679 Self(x)
1680 }
1681 pub fn into_raw(self) -> i32 {
1682 self.0
1683 }
1684}
1685impl fmt::Debug for EyeVisibility {
1686 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1687 let name = match *self {
1688 Self::BOTH => Some("BOTH"),
1689 Self::LEFT => Some("LEFT"),
1690 Self::RIGHT => Some("RIGHT"),
1691 _ => None,
1692 };
1693 fmt_enum(fmt, self.0, name)
1694 }
1695}
1696#[doc = "See [XrActionType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionType)"]
1697#[repr(transparent)]
1698#[derive(Copy, Clone, Eq, PartialEq)]
1699pub struct ActionType(i32);
1700impl ActionType {
1701 pub const BOOLEAN_INPUT: ActionType = Self(1i32);
1702 pub const FLOAT_INPUT: ActionType = Self(2i32);
1703 pub const VECTOR2F_INPUT: ActionType = Self(3i32);
1704 pub const POSE_INPUT: ActionType = Self(4i32);
1705 pub const VIBRATION_OUTPUT: ActionType = Self(100i32);
1706 pub fn from_raw(x: i32) -> Self {
1707 Self(x)
1708 }
1709 pub fn into_raw(self) -> i32 {
1710 self.0
1711 }
1712}
1713impl fmt::Debug for ActionType {
1714 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1715 let name = match *self {
1716 Self::BOOLEAN_INPUT => Some("BOOLEAN_INPUT"),
1717 Self::FLOAT_INPUT => Some("FLOAT_INPUT"),
1718 Self::VECTOR2F_INPUT => Some("VECTOR2F_INPUT"),
1719 Self::POSE_INPUT => Some("POSE_INPUT"),
1720 Self::VIBRATION_OUTPUT => Some("VIBRATION_OUTPUT"),
1721 _ => None,
1722 };
1723 fmt_enum(fmt, self.0, name)
1724 }
1725}
1726#[doc = "See [XrReferenceSpaceType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReferenceSpaceType)"]
1727#[repr(transparent)]
1728#[derive(Copy, Clone, Eq, PartialEq)]
1729pub struct ReferenceSpaceType(i32);
1730impl ReferenceSpaceType {
1731 pub const VIEW: ReferenceSpaceType = Self(1i32);
1732 pub const LOCAL: ReferenceSpaceType = Self(2i32);
1733 pub const STAGE: ReferenceSpaceType = Self(3i32);
1734 pub const LOCAL_FLOOR: ReferenceSpaceType = Self(1000426000i32);
1735 pub const UNBOUNDED_MSFT: ReferenceSpaceType = Self(1000038000i32);
1736 pub const COMBINED_EYE_VARJO: ReferenceSpaceType = Self(1000121000i32);
1737 pub const LOCALIZATION_MAP_ML: ReferenceSpaceType = Self(1000139000i32);
1738 pub const LOCAL_FLOOR_EXT: ReferenceSpaceType = Self::LOCAL_FLOOR;
1739 pub fn from_raw(x: i32) -> Self {
1740 Self(x)
1741 }
1742 pub fn into_raw(self) -> i32 {
1743 self.0
1744 }
1745}
1746impl fmt::Debug for ReferenceSpaceType {
1747 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1748 let name = match *self {
1749 Self::VIEW => Some("VIEW"),
1750 Self::LOCAL => Some("LOCAL"),
1751 Self::STAGE => Some("STAGE"),
1752 Self::LOCAL_FLOOR => Some("LOCAL_FLOOR"),
1753 Self::UNBOUNDED_MSFT => Some("UNBOUNDED_MSFT"),
1754 Self::COMBINED_EYE_VARJO => Some("COMBINED_EYE_VARJO"),
1755 Self::LOCALIZATION_MAP_ML => Some("LOCALIZATION_MAP_ML"),
1756 _ => None,
1757 };
1758 fmt_enum(fmt, self.0, name)
1759 }
1760}
1761#[doc = "See [XrFormFactor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFormFactor)"]
1762#[repr(transparent)]
1763#[derive(Copy, Clone, Eq, PartialEq)]
1764pub struct FormFactor(i32);
1765impl FormFactor {
1766 pub const HEAD_MOUNTED_DISPLAY: FormFactor = Self(1i32);
1767 pub const HANDHELD_DISPLAY: FormFactor = Self(2i32);
1768 pub fn from_raw(x: i32) -> Self {
1769 Self(x)
1770 }
1771 pub fn into_raw(self) -> i32 {
1772 self.0
1773 }
1774}
1775impl fmt::Debug for FormFactor {
1776 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1777 let name = match *self {
1778 Self::HEAD_MOUNTED_DISPLAY => Some("HEAD_MOUNTED_DISPLAY"),
1779 Self::HANDHELD_DISPLAY => Some("HANDHELD_DISPLAY"),
1780 _ => None,
1781 };
1782 fmt_enum(fmt, self.0, name)
1783 }
1784}
1785#[doc = "See [XrViewConfigurationType](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationType)"]
1786#[repr(transparent)]
1787#[derive(Copy, Clone, Eq, PartialEq)]
1788pub struct ViewConfigurationType(i32);
1789impl ViewConfigurationType {
1790 pub const PRIMARY_MONO: ViewConfigurationType = Self(1i32);
1791 pub const PRIMARY_STEREO: ViewConfigurationType = Self(2i32);
1792 pub const PRIMARY_STEREO_WITH_FOVEATED_INSET: ViewConfigurationType = Self(1000037000i32);
1793 pub const PRIMARY_QUAD_VARJO: ViewConfigurationType = Self::PRIMARY_STEREO_WITH_FOVEATED_INSET;
1794 pub const SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT: ViewConfigurationType =
1795 Self(1000054000i32);
1796 pub fn from_raw(x: i32) -> Self {
1797 Self(x)
1798 }
1799 pub fn into_raw(self) -> i32 {
1800 self.0
1801 }
1802}
1803impl fmt::Debug for ViewConfigurationType {
1804 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1805 let name = match *self {
1806 Self::PRIMARY_MONO => Some("PRIMARY_MONO"),
1807 Self::PRIMARY_STEREO => Some("PRIMARY_STEREO"),
1808 Self::PRIMARY_STEREO_WITH_FOVEATED_INSET => Some("PRIMARY_STEREO_WITH_FOVEATED_INSET"),
1809 Self::SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT => {
1810 Some("SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT")
1811 }
1812 _ => None,
1813 };
1814 fmt_enum(fmt, self.0, name)
1815 }
1816}
1817#[doc = "See [XrEnvironmentBlendMode](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentBlendMode)"]
1818#[repr(transparent)]
1819#[derive(Copy, Clone, Eq, PartialEq)]
1820pub struct EnvironmentBlendMode(i32);
1821impl EnvironmentBlendMode {
1822 pub const OPAQUE: EnvironmentBlendMode = Self(1i32);
1823 pub const ADDITIVE: EnvironmentBlendMode = Self(2i32);
1824 pub const ALPHA_BLEND: EnvironmentBlendMode = Self(3i32);
1825 pub fn from_raw(x: i32) -> Self {
1826 Self(x)
1827 }
1828 pub fn into_raw(self) -> i32 {
1829 self.0
1830 }
1831}
1832impl fmt::Debug for EnvironmentBlendMode {
1833 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1834 let name = match *self {
1835 Self::OPAQUE => Some("OPAQUE"),
1836 Self::ADDITIVE => Some("ADDITIVE"),
1837 Self::ALPHA_BLEND => Some("ALPHA_BLEND"),
1838 _ => None,
1839 };
1840 fmt_enum(fmt, self.0, name)
1841 }
1842}
1843#[doc = "See [XrSessionState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionState)"]
1844#[repr(transparent)]
1845#[derive(Copy, Clone, Eq, PartialEq)]
1846pub struct SessionState(i32);
1847impl SessionState {
1848 pub const UNKNOWN: SessionState = Self(0i32);
1849 pub const IDLE: SessionState = Self(1i32);
1850 pub const READY: SessionState = Self(2i32);
1851 pub const SYNCHRONIZED: SessionState = Self(3i32);
1852 pub const VISIBLE: SessionState = Self(4i32);
1853 pub const FOCUSED: SessionState = Self(5i32);
1854 pub const STOPPING: SessionState = Self(6i32);
1855 pub const LOSS_PENDING: SessionState = Self(7i32);
1856 pub const EXITING: SessionState = Self(8i32);
1857 pub fn from_raw(x: i32) -> Self {
1858 Self(x)
1859 }
1860 pub fn into_raw(self) -> i32 {
1861 self.0
1862 }
1863}
1864impl fmt::Debug for SessionState {
1865 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1866 let name = match *self {
1867 Self::UNKNOWN => Some("UNKNOWN"),
1868 Self::IDLE => Some("IDLE"),
1869 Self::READY => Some("READY"),
1870 Self::SYNCHRONIZED => Some("SYNCHRONIZED"),
1871 Self::VISIBLE => Some("VISIBLE"),
1872 Self::FOCUSED => Some("FOCUSED"),
1873 Self::STOPPING => Some("STOPPING"),
1874 Self::LOSS_PENDING => Some("LOSS_PENDING"),
1875 Self::EXITING => Some("EXITING"),
1876 _ => None,
1877 };
1878 fmt_enum(fmt, self.0, name)
1879 }
1880}
1881#[doc = "See [XrPerfSettingsDomainEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsDomainEXT)"]
1882#[repr(transparent)]
1883#[derive(Copy, Clone, Eq, PartialEq)]
1884pub struct PerfSettingsDomainEXT(i32);
1885impl PerfSettingsDomainEXT {
1886 #[doc = "Indicates that the performance settings or notification applies to CPU domain"]
1887 pub const CPU: PerfSettingsDomainEXT = Self(1i32);
1888 #[doc = "Indicates that the performance settings or notification applies to GPU domain"]
1889 pub const GPU: PerfSettingsDomainEXT = Self(2i32);
1890 pub fn from_raw(x: i32) -> Self {
1891 Self(x)
1892 }
1893 pub fn into_raw(self) -> i32 {
1894 self.0
1895 }
1896}
1897impl fmt::Debug for PerfSettingsDomainEXT {
1898 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1899 let name = match *self {
1900 Self::CPU => Some("CPU"),
1901 Self::GPU => Some("GPU"),
1902 _ => None,
1903 };
1904 fmt_enum(fmt, self.0, name)
1905 }
1906}
1907#[doc = "See [XrPerfSettingsSubDomainEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsSubDomainEXT)"]
1908#[repr(transparent)]
1909#[derive(Copy, Clone, Eq, PartialEq)]
1910pub struct PerfSettingsSubDomainEXT(i32);
1911impl PerfSettingsSubDomainEXT {
1912 #[doc = "Indicates that the performance notification originates from the COMPOSITING sub-domain"]
1913 pub const COMPOSITING: PerfSettingsSubDomainEXT = Self(1i32);
1914 #[doc = "Indicates that the performance notification originates from the RENDERING sub-domain"]
1915 pub const RENDERING: PerfSettingsSubDomainEXT = Self(2i32);
1916 #[doc = "Indicates that the performance notification originates from the THERMAL sub-domain"]
1917 pub const THERMAL: PerfSettingsSubDomainEXT = Self(3i32);
1918 pub fn from_raw(x: i32) -> Self {
1919 Self(x)
1920 }
1921 pub fn into_raw(self) -> i32 {
1922 self.0
1923 }
1924}
1925impl fmt::Debug for PerfSettingsSubDomainEXT {
1926 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1927 let name = match *self {
1928 Self::COMPOSITING => Some("COMPOSITING"),
1929 Self::RENDERING => Some("RENDERING"),
1930 Self::THERMAL => Some("THERMAL"),
1931 _ => None,
1932 };
1933 fmt_enum(fmt, self.0, name)
1934 }
1935}
1936#[doc = "See [XrPerfSettingsLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsLevelEXT)"]
1937#[repr(transparent)]
1938#[derive(Copy, Clone, Eq, PartialEq)]
1939pub struct PerfSettingsLevelEXT(i32);
1940impl PerfSettingsLevelEXT {
1941 #[doc = "Performance settings hint used by the application to indicate that it enters a non-XR section (head-locked / static screen), during which power savings are to be prioritized"]
1942 pub const POWER_SAVINGS: PerfSettingsLevelEXT = Self(0i32);
1943 #[doc = "Performance settings hint used by the application to indicate that it enters a low and stable complexity section, during which reducing power is more important than occasional late rendering frames"]
1944 pub const SUSTAINED_LOW: PerfSettingsLevelEXT = Self(25i32);
1945 #[doc = "Performance settings hint used by the application to indicate that it enters a high or dynamic complexity section, during which the XR Runtime strives for consistent XR compositing and frame rendering within a thermally sustainable range"]
1946 pub const SUSTAINED_HIGH: PerfSettingsLevelEXT = Self(50i32);
1947 #[doc = "Performance settings hint used by the application to indicate that the application enters a section with very high complexity, during which the XR Runtime is allowed to step up beyond the thermally sustainable range"]
1948 pub const BOOST: PerfSettingsLevelEXT = Self(75i32);
1949 pub fn from_raw(x: i32) -> Self {
1950 Self(x)
1951 }
1952 pub fn into_raw(self) -> i32 {
1953 self.0
1954 }
1955}
1956impl fmt::Debug for PerfSettingsLevelEXT {
1957 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1958 let name = match *self {
1959 Self::POWER_SAVINGS => Some("POWER_SAVINGS"),
1960 Self::SUSTAINED_LOW => Some("SUSTAINED_LOW"),
1961 Self::SUSTAINED_HIGH => Some("SUSTAINED_HIGH"),
1962 Self::BOOST => Some("BOOST"),
1963 _ => None,
1964 };
1965 fmt_enum(fmt, self.0, name)
1966 }
1967}
1968#[doc = "See [XrPerfSettingsNotificationLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerfSettingsNotificationLevelEXT)"]
1969#[repr(transparent)]
1970#[derive(Copy, Clone, Eq, PartialEq)]
1971pub struct PerfSettingsNotificationLevelEXT(i32);
1972impl PerfSettingsNotificationLevelEXT {
1973 #[doc = "Notifies that the sub-domain has reached a level where no further actions other than currently applied are necessary"]
1974 pub const NORMAL: PerfSettingsNotificationLevelEXT = Self(0i32);
1975 #[doc = "Notifies that the sub-domain has reached an early warning level where the application should start proactive mitigation actions with the goal to return to the XR_PERF_NOTIF_LEVEL_NORMAL level"]
1976 pub const WARNING: PerfSettingsNotificationLevelEXT = Self(25i32);
1977 #[doc = "Notifies that the sub-domain has reached a critical level with significant performance degradation. The application should take drastic mitigation action"]
1978 pub const IMPAIRED: PerfSettingsNotificationLevelEXT = Self(75i32);
1979 pub fn from_raw(x: i32) -> Self {
1980 Self(x)
1981 }
1982 pub fn into_raw(self) -> i32 {
1983 self.0
1984 }
1985}
1986impl fmt::Debug for PerfSettingsNotificationLevelEXT {
1987 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
1988 let name = match *self {
1989 Self::NORMAL => Some("NORMAL"),
1990 Self::WARNING => Some("WARNING"),
1991 Self::IMPAIRED => Some("IMPAIRED"),
1992 _ => None,
1993 };
1994 fmt_enum(fmt, self.0, name)
1995 }
1996}
1997#[doc = "See [XrVisibilityMaskTypeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVisibilityMaskTypeKHR)"]
1998#[repr(transparent)]
1999#[derive(Copy, Clone, Eq, PartialEq)]
2000pub struct VisibilityMaskTypeKHR(i32);
2001impl VisibilityMaskTypeKHR {
2002 #[doc = "exclusive mesh; indicates that which the viewer cannot see."]
2003 pub const HIDDEN_TRIANGLE_MESH: VisibilityMaskTypeKHR = Self(1i32);
2004 #[doc = "inclusive mesh; indicates strictly that which the viewer can see."]
2005 pub const VISIBLE_TRIANGLE_MESH: VisibilityMaskTypeKHR = Self(2i32);
2006 #[doc = "line loop; traces the outline of the area the viewer can see."]
2007 pub const LINE_LOOP: VisibilityMaskTypeKHR = Self(3i32);
2008 pub fn from_raw(x: i32) -> Self {
2009 Self(x)
2010 }
2011 pub fn into_raw(self) -> i32 {
2012 self.0
2013 }
2014}
2015impl fmt::Debug for VisibilityMaskTypeKHR {
2016 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2017 let name = match *self {
2018 Self::HIDDEN_TRIANGLE_MESH => Some("HIDDEN_TRIANGLE_MESH"),
2019 Self::VISIBLE_TRIANGLE_MESH => Some("VISIBLE_TRIANGLE_MESH"),
2020 Self::LINE_LOOP => Some("LINE_LOOP"),
2021 _ => None,
2022 };
2023 fmt_enum(fmt, self.0, name)
2024 }
2025}
2026#[doc = "See [XrSpatialGraphNodeTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeTypeMSFT)"]
2027#[repr(transparent)]
2028#[derive(Copy, Clone, Eq, PartialEq)]
2029pub struct SpatialGraphNodeTypeMSFT(i32);
2030impl SpatialGraphNodeTypeMSFT {
2031 pub const STATIC: SpatialGraphNodeTypeMSFT = Self(1i32);
2032 pub const DYNAMIC: SpatialGraphNodeTypeMSFT = Self(2i32);
2033 pub fn from_raw(x: i32) -> Self {
2034 Self(x)
2035 }
2036 pub fn into_raw(self) -> i32 {
2037 self.0
2038 }
2039}
2040impl fmt::Debug for SpatialGraphNodeTypeMSFT {
2041 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2042 let name = match *self {
2043 Self::STATIC => Some("STATIC"),
2044 Self::DYNAMIC => Some("DYNAMIC"),
2045 _ => None,
2046 };
2047 fmt_enum(fmt, self.0, name)
2048 }
2049}
2050#[doc = "See [XrBlendFactorFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBlendFactorFB)"]
2051#[repr(transparent)]
2052#[derive(Copy, Clone, Eq, PartialEq)]
2053pub struct BlendFactorFB(i32);
2054impl BlendFactorFB {
2055 pub const ZERO: BlendFactorFB = Self(0i32);
2056 pub const ONE: BlendFactorFB = Self(1i32);
2057 pub const SRC_ALPHA: BlendFactorFB = Self(2i32);
2058 pub const ONE_MINUS_SRC_ALPHA: BlendFactorFB = Self(3i32);
2059 pub const DST_ALPHA: BlendFactorFB = Self(4i32);
2060 pub const ONE_MINUS_DST_ALPHA: BlendFactorFB = Self(5i32);
2061 pub fn from_raw(x: i32) -> Self {
2062 Self(x)
2063 }
2064 pub fn into_raw(self) -> i32 {
2065 self.0
2066 }
2067}
2068impl fmt::Debug for BlendFactorFB {
2069 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2070 let name = match *self {
2071 Self::ZERO => Some("ZERO"),
2072 Self::ONE => Some("ONE"),
2073 Self::SRC_ALPHA => Some("SRC_ALPHA"),
2074 Self::ONE_MINUS_SRC_ALPHA => Some("ONE_MINUS_SRC_ALPHA"),
2075 Self::DST_ALPHA => Some("DST_ALPHA"),
2076 Self::ONE_MINUS_DST_ALPHA => Some("ONE_MINUS_DST_ALPHA"),
2077 _ => None,
2078 };
2079 fmt_enum(fmt, self.0, name)
2080 }
2081}
2082#[doc = "See [XrSpaceComponentTypeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentTypeFB)"]
2083#[repr(transparent)]
2084#[derive(Copy, Clone, Eq, PartialEq)]
2085pub struct SpaceComponentTypeFB(i32);
2086impl SpaceComponentTypeFB {
2087 #[doc = "Enables tracking the 6 DOF pose of the XrSpace with xrLocateSpace."]
2088 pub const LOCATABLE: SpaceComponentTypeFB = Self(0i32);
2089 #[doc = "Enables persistence operations: save and erase."]
2090 pub const STORABLE: SpaceComponentTypeFB = Self(1i32);
2091 #[doc = "Enables sharing of spatial entities."]
2092 pub const SHARABLE: SpaceComponentTypeFB = Self(2i32);
2093 #[doc = "Bounded 2D component."]
2094 pub const BOUNDED_2D: SpaceComponentTypeFB = Self(3i32);
2095 #[doc = "Bounded 3D component."]
2096 pub const BOUNDED_3D: SpaceComponentTypeFB = Self(4i32);
2097 #[doc = "Semantic labels component."]
2098 pub const SEMANTIC_LABELS: SpaceComponentTypeFB = Self(5i32);
2099 #[doc = "Room layout component."]
2100 pub const ROOM_LAYOUT: SpaceComponentTypeFB = Self(6i32);
2101 #[doc = "Space container component."]
2102 pub const SPACE_CONTAINER: SpaceComponentTypeFB = Self(7i32);
2103 pub const TRIANGLE_MESH_M: SpaceComponentTypeFB = Self(1000269000i32);
2104 pub fn from_raw(x: i32) -> Self {
2105 Self(x)
2106 }
2107 pub fn into_raw(self) -> i32 {
2108 self.0
2109 }
2110}
2111impl fmt::Debug for SpaceComponentTypeFB {
2112 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2113 let name = match *self {
2114 Self::LOCATABLE => Some("LOCATABLE"),
2115 Self::STORABLE => Some("STORABLE"),
2116 Self::SHARABLE => Some("SHARABLE"),
2117 Self::BOUNDED_2D => Some("BOUNDED_2D"),
2118 Self::BOUNDED_3D => Some("BOUNDED_3D"),
2119 Self::SEMANTIC_LABELS => Some("SEMANTIC_LABELS"),
2120 Self::ROOM_LAYOUT => Some("ROOM_LAYOUT"),
2121 Self::SPACE_CONTAINER => Some("SPACE_CONTAINER"),
2122 Self::TRIANGLE_MESH_M => Some("TRIANGLE_MESH_M"),
2123 _ => None,
2124 };
2125 fmt_enum(fmt, self.0, name)
2126 }
2127}
2128#[doc = "See [XrWindingOrderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrWindingOrderFB)"]
2129#[repr(transparent)]
2130#[derive(Copy, Clone, Eq, PartialEq)]
2131pub struct WindingOrderFB(i32);
2132impl WindingOrderFB {
2133 #[doc = "Winding order is unknown and the runtime cannot make any assumptions on the triangle orientation"]
2134 pub const UNKNOWN: WindingOrderFB = Self(0i32);
2135 #[doc = "Clockwise winding order"]
2136 pub const CW: WindingOrderFB = Self(1i32);
2137 #[doc = "Counter-clockwise winding order"]
2138 pub const CCW: WindingOrderFB = Self(2i32);
2139 pub fn from_raw(x: i32) -> Self {
2140 Self(x)
2141 }
2142 pub fn into_raw(self) -> i32 {
2143 self.0
2144 }
2145}
2146impl fmt::Debug for WindingOrderFB {
2147 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2148 let name = match *self {
2149 Self::UNKNOWN => Some("UNKNOWN"),
2150 Self::CW => Some("CW"),
2151 Self::CCW => Some("CCW"),
2152 _ => None,
2153 };
2154 fmt_enum(fmt, self.0, name)
2155 }
2156}
2157#[doc = "See [XrPassthroughLayerPurposeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerPurposeFB)"]
2158#[repr(transparent)]
2159#[derive(Copy, Clone, Eq, PartialEq)]
2160pub struct PassthroughLayerPurposeFB(i32);
2161impl PassthroughLayerPurposeFB {
2162 #[doc = "Reconstruction passthrough (full screen environment)"]
2163 pub const RECONSTRUCTION: PassthroughLayerPurposeFB = Self(0i32);
2164 #[doc = "Projected passthrough (using a custom surface)"]
2165 pub const PROJECTED: PassthroughLayerPurposeFB = Self(1i32);
2166 #[doc = "Passthrough layer purpose for keyboard hands presence."]
2167 pub const TRACKED_KEYBOARD_HANDS: PassthroughLayerPurposeFB = Self(1000203001i32);
2168 #[doc = "Passthrough layer purpose for keyboard hands presence with keyboard masked hand transitions (i.e passthrough hands rendered only when they are over the keyboard)."]
2169 pub const TRACKED_KEYBOARD_MASKED_HANDS: PassthroughLayerPurposeFB = Self(1000203002i32);
2170 pub fn from_raw(x: i32) -> Self {
2171 Self(x)
2172 }
2173 pub fn into_raw(self) -> i32 {
2174 self.0
2175 }
2176}
2177impl fmt::Debug for PassthroughLayerPurposeFB {
2178 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2179 let name = match *self {
2180 Self::RECONSTRUCTION => Some("RECONSTRUCTION"),
2181 Self::PROJECTED => Some("PROJECTED"),
2182 Self::TRACKED_KEYBOARD_HANDS => Some("TRACKED_KEYBOARD_HANDS"),
2183 Self::TRACKED_KEYBOARD_MASKED_HANDS => Some("TRACKED_KEYBOARD_MASKED_HANDS"),
2184 _ => None,
2185 };
2186 fmt_enum(fmt, self.0, name)
2187 }
2188}
2189#[doc = "See [XrSpaceQueryActionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryActionFB)"]
2190#[repr(transparent)]
2191#[derive(Copy, Clone, Eq, PartialEq)]
2192pub struct SpaceQueryActionFB(i32);
2193impl SpaceQueryActionFB {
2194 #[doc = "Tells the query to perform a load operation on any XrSpace returned by the query."]
2195 pub const LOAD: SpaceQueryActionFB = Self(0i32);
2196 pub fn from_raw(x: i32) -> Self {
2197 Self(x)
2198 }
2199 pub fn into_raw(self) -> i32 {
2200 self.0
2201 }
2202}
2203impl fmt::Debug for SpaceQueryActionFB {
2204 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2205 let name = match *self {
2206 Self::LOAD => Some("LOAD"),
2207 _ => None,
2208 };
2209 fmt_enum(fmt, self.0, name)
2210 }
2211}
2212#[doc = "See [XrSpaceStorageLocationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceStorageLocationFB)"]
2213#[repr(transparent)]
2214#[derive(Copy, Clone, Eq, PartialEq)]
2215pub struct SpaceStorageLocationFB(i32);
2216impl SpaceStorageLocationFB {
2217 #[doc = "Invalid storage location"]
2218 pub const INVALID: SpaceStorageLocationFB = Self(0i32);
2219 #[doc = "Local device storage"]
2220 pub const LOCAL: SpaceStorageLocationFB = Self(1i32);
2221 #[doc = "Cloud storage"]
2222 pub const CLOUD: SpaceStorageLocationFB = Self(2i32);
2223 pub fn from_raw(x: i32) -> Self {
2224 Self(x)
2225 }
2226 pub fn into_raw(self) -> i32 {
2227 self.0
2228 }
2229}
2230impl fmt::Debug for SpaceStorageLocationFB {
2231 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2232 let name = match *self {
2233 Self::INVALID => Some("INVALID"),
2234 Self::LOCAL => Some("LOCAL"),
2235 Self::CLOUD => Some("CLOUD"),
2236 _ => None,
2237 };
2238 fmt_enum(fmt, self.0, name)
2239 }
2240}
2241#[doc = "See [XrSpacePersistenceModeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpacePersistenceModeFB)"]
2242#[repr(transparent)]
2243#[derive(Copy, Clone, Eq, PartialEq)]
2244pub struct SpacePersistenceModeFB(i32);
2245impl SpacePersistenceModeFB {
2246 #[doc = "Invalid storage persistence"]
2247 pub const INVALID: SpacePersistenceModeFB = Self(0i32);
2248 #[doc = "Store XrSpace indefinitely, or until erased"]
2249 pub const INDEFINITE: SpacePersistenceModeFB = Self(1i32);
2250 pub fn from_raw(x: i32) -> Self {
2251 Self(x)
2252 }
2253 pub fn into_raw(self) -> i32 {
2254 self.0
2255 }
2256}
2257impl fmt::Debug for SpacePersistenceModeFB {
2258 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2259 let name = match *self {
2260 Self::INVALID => Some("INVALID"),
2261 Self::INDEFINITE => Some("INDEFINITE"),
2262 _ => None,
2263 };
2264 fmt_enum(fmt, self.0, name)
2265 }
2266}
2267#[doc = "See [XrExternalCameraAttachedToDeviceOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraAttachedToDeviceOCULUS)"]
2268#[repr(transparent)]
2269#[derive(Copy, Clone, Eq, PartialEq)]
2270pub struct ExternalCameraAttachedToDeviceOCULUS(i32);
2271impl ExternalCameraAttachedToDeviceOCULUS {
2272 #[doc = "External camera is at a fixed point in LOCAL space"]
2273 pub const NONE: ExternalCameraAttachedToDeviceOCULUS = Self(0i32);
2274 #[doc = "External camera is attached to the HMD"]
2275 pub const HMD: ExternalCameraAttachedToDeviceOCULUS = Self(1i32);
2276 #[doc = "External camera is attached to a left Touch controller"]
2277 pub const LTOUCH: ExternalCameraAttachedToDeviceOCULUS = Self(2i32);
2278 #[doc = "External camera is attached to a right Touch controller"]
2279 pub const RTOUCH: ExternalCameraAttachedToDeviceOCULUS = Self(3i32);
2280 pub fn from_raw(x: i32) -> Self {
2281 Self(x)
2282 }
2283 pub fn into_raw(self) -> i32 {
2284 self.0
2285 }
2286}
2287impl fmt::Debug for ExternalCameraAttachedToDeviceOCULUS {
2288 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2289 let name = match *self {
2290 Self::NONE => Some("NONE"),
2291 Self::HMD => Some("HMD"),
2292 Self::LTOUCH => Some("LTOUCH"),
2293 Self::RTOUCH => Some("RTOUCH"),
2294 _ => None,
2295 };
2296 fmt_enum(fmt, self.0, name)
2297 }
2298}
2299#[doc = "See [XrPassthroughColorLutChannelsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutChannelsMETA)"]
2300#[repr(transparent)]
2301#[derive(Copy, Clone, Eq, PartialEq)]
2302pub struct PassthroughColorLutChannelsMETA(i32);
2303impl PassthroughColorLutChannelsMETA {
2304 pub const RGB: PassthroughColorLutChannelsMETA = Self(1i32);
2305 pub const RGBA: PassthroughColorLutChannelsMETA = Self(2i32);
2306 pub fn from_raw(x: i32) -> Self {
2307 Self(x)
2308 }
2309 pub fn into_raw(self) -> i32 {
2310 self.0
2311 }
2312}
2313impl fmt::Debug for PassthroughColorLutChannelsMETA {
2314 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2315 let name = match *self {
2316 Self::RGB => Some("RGB"),
2317 Self::RGBA => Some("RGBA"),
2318 _ => None,
2319 };
2320 fmt_enum(fmt, self.0, name)
2321 }
2322}
2323#[doc = "See [XrPerformanceMetricsCounterUnitMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterUnitMETA)"]
2324#[repr(transparent)]
2325#[derive(Copy, Clone, Eq, PartialEq)]
2326pub struct PerformanceMetricsCounterUnitMETA(i32);
2327impl PerformanceMetricsCounterUnitMETA {
2328 #[doc = "the performance counter unit is generic (unspecified)."]
2329 pub const GENERIC: PerformanceMetricsCounterUnitMETA = Self(0i32);
2330 #[doc = "the performance counter unit is percentage (%)."]
2331 pub const PERCENTAGE: PerformanceMetricsCounterUnitMETA = Self(1i32);
2332 #[doc = "the performance counter unit is millisecond."]
2333 pub const MILLISECONDS: PerformanceMetricsCounterUnitMETA = Self(2i32);
2334 #[doc = "the performance counter unit is byte."]
2335 pub const BYTES: PerformanceMetricsCounterUnitMETA = Self(3i32);
2336 #[doc = "the performance counter unit is hertz (Hz)."]
2337 pub const HERTZ: PerformanceMetricsCounterUnitMETA = Self(4i32);
2338 pub fn from_raw(x: i32) -> Self {
2339 Self(x)
2340 }
2341 pub fn into_raw(self) -> i32 {
2342 self.0
2343 }
2344}
2345impl fmt::Debug for PerformanceMetricsCounterUnitMETA {
2346 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2347 let name = match *self {
2348 Self::GENERIC => Some("GENERIC"),
2349 Self::PERCENTAGE => Some("PERCENTAGE"),
2350 Self::MILLISECONDS => Some("MILLISECONDS"),
2351 Self::BYTES => Some("BYTES"),
2352 Self::HERTZ => Some("HERTZ"),
2353 _ => None,
2354 };
2355 fmt_enum(fmt, self.0, name)
2356 }
2357}
2358#[doc = "See [XrFacialTrackingTypeHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackingTypeHTC)"]
2359#[repr(transparent)]
2360#[derive(Copy, Clone, Eq, PartialEq)]
2361pub struct FacialTrackingTypeHTC(i32);
2362impl FacialTrackingTypeHTC {
2363 #[doc = "Specifies this handle will observe eye expressions, with values indexed by XrEyeExpressionHTC whose count is XR_FACIAL_EXPRESSION_EYE_COUNT_HTC."]
2364 pub const EYE_DEFAULT: FacialTrackingTypeHTC = Self(1i32);
2365 #[doc = "Specifies this handle will observe lip expressions, with values indexed by XrLipExpressionHTC whose count is XR_FACIAL_EXPRESSION_LIP_COUNT_HTC."]
2366 pub const LIP_DEFAULT: FacialTrackingTypeHTC = Self(2i32);
2367 pub fn from_raw(x: i32) -> Self {
2368 Self(x)
2369 }
2370 pub fn into_raw(self) -> i32 {
2371 self.0
2372 }
2373}
2374impl fmt::Debug for FacialTrackingTypeHTC {
2375 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2376 let name = match *self {
2377 Self::EYE_DEFAULT => Some("EYE_DEFAULT"),
2378 Self::LIP_DEFAULT => Some("LIP_DEFAULT"),
2379 _ => None,
2380 };
2381 fmt_enum(fmt, self.0, name)
2382 }
2383}
2384#[doc = "See [XrEyeExpressionHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeExpressionHTC)"]
2385#[repr(transparent)]
2386#[derive(Copy, Clone, Eq, PartialEq)]
2387pub struct EyeExpressionHTC(i32);
2388impl EyeExpressionHTC {
2389 pub const LEFT_BLINK: EyeExpressionHTC = Self(0i32);
2390 pub const LEFT_WIDE: EyeExpressionHTC = Self(1i32);
2391 pub const RIGHT_BLINK: EyeExpressionHTC = Self(2i32);
2392 pub const RIGHT_WIDE: EyeExpressionHTC = Self(3i32);
2393 pub const LEFT_SQUEEZE: EyeExpressionHTC = Self(4i32);
2394 pub const RIGHT_SQUEEZE: EyeExpressionHTC = Self(5i32);
2395 pub const LEFT_DOWN: EyeExpressionHTC = Self(6i32);
2396 pub const RIGHT_DOWN: EyeExpressionHTC = Self(7i32);
2397 pub const LEFT_OUT: EyeExpressionHTC = Self(8i32);
2398 pub const RIGHT_IN: EyeExpressionHTC = Self(9i32);
2399 pub const LEFT_IN: EyeExpressionHTC = Self(10i32);
2400 pub const RIGHT_OUT: EyeExpressionHTC = Self(11i32);
2401 pub const LEFT_UP: EyeExpressionHTC = Self(12i32);
2402 pub const RIGHT_UP: EyeExpressionHTC = Self(13i32);
2403 pub fn from_raw(x: i32) -> Self {
2404 Self(x)
2405 }
2406 pub fn into_raw(self) -> i32 {
2407 self.0
2408 }
2409}
2410impl fmt::Debug for EyeExpressionHTC {
2411 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2412 let name = match *self {
2413 Self::LEFT_BLINK => Some("LEFT_BLINK"),
2414 Self::LEFT_WIDE => Some("LEFT_WIDE"),
2415 Self::RIGHT_BLINK => Some("RIGHT_BLINK"),
2416 Self::RIGHT_WIDE => Some("RIGHT_WIDE"),
2417 Self::LEFT_SQUEEZE => Some("LEFT_SQUEEZE"),
2418 Self::RIGHT_SQUEEZE => Some("RIGHT_SQUEEZE"),
2419 Self::LEFT_DOWN => Some("LEFT_DOWN"),
2420 Self::RIGHT_DOWN => Some("RIGHT_DOWN"),
2421 Self::LEFT_OUT => Some("LEFT_OUT"),
2422 Self::RIGHT_IN => Some("RIGHT_IN"),
2423 Self::LEFT_IN => Some("LEFT_IN"),
2424 Self::RIGHT_OUT => Some("RIGHT_OUT"),
2425 Self::LEFT_UP => Some("LEFT_UP"),
2426 Self::RIGHT_UP => Some("RIGHT_UP"),
2427 _ => None,
2428 };
2429 fmt_enum(fmt, self.0, name)
2430 }
2431}
2432#[doc = "See [XrLipExpressionHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLipExpressionHTC)"]
2433#[repr(transparent)]
2434#[derive(Copy, Clone, Eq, PartialEq)]
2435pub struct LipExpressionHTC(i32);
2436impl LipExpressionHTC {
2437 pub const JAW_RIGHT: LipExpressionHTC = Self(0i32);
2438 pub const JAW_LEFT: LipExpressionHTC = Self(1i32);
2439 pub const JAW_FORWARD: LipExpressionHTC = Self(2i32);
2440 pub const JAW_OPEN: LipExpressionHTC = Self(3i32);
2441 pub const MOUTH_APE_SHAPE: LipExpressionHTC = Self(4i32);
2442 pub const MOUTH_UPPER_RIGHT: LipExpressionHTC = Self(5i32);
2443 pub const MOUTH_UPPER_LEFT: LipExpressionHTC = Self(6i32);
2444 pub const MOUTH_LOWER_RIGHT: LipExpressionHTC = Self(7i32);
2445 pub const MOUTH_LOWER_LEFT: LipExpressionHTC = Self(8i32);
2446 pub const MOUTH_UPPER_OVERTURN: LipExpressionHTC = Self(9i32);
2447 pub const MOUTH_LOWER_OVERTURN: LipExpressionHTC = Self(10i32);
2448 pub const MOUTH_POUT: LipExpressionHTC = Self(11i32);
2449 pub const MOUTH_SMILE_RIGHT: LipExpressionHTC = Self(12i32);
2450 pub const MOUTH_SMILE_LEFT: LipExpressionHTC = Self(13i32);
2451 pub const MOUTH_SAD_RIGHT: LipExpressionHTC = Self(14i32);
2452 pub const MOUTH_SAD_LEFT: LipExpressionHTC = Self(15i32);
2453 pub const CHEEK_PUFF_RIGHT: LipExpressionHTC = Self(16i32);
2454 pub const CHEEK_PUFF_LEFT: LipExpressionHTC = Self(17i32);
2455 pub const CHEEK_SUCK: LipExpressionHTC = Self(18i32);
2456 pub const MOUTH_UPPER_UPRIGHT: LipExpressionHTC = Self(19i32);
2457 pub const MOUTH_UPPER_UPLEFT: LipExpressionHTC = Self(20i32);
2458 pub const MOUTH_LOWER_DOWNRIGHT: LipExpressionHTC = Self(21i32);
2459 pub const MOUTH_LOWER_DOWNLEFT: LipExpressionHTC = Self(22i32);
2460 pub const MOUTH_UPPER_INSIDE: LipExpressionHTC = Self(23i32);
2461 pub const MOUTH_LOWER_INSIDE: LipExpressionHTC = Self(24i32);
2462 pub const MOUTH_LOWER_OVERLAY: LipExpressionHTC = Self(25i32);
2463 pub const TONGUE_LONGSTEP1: LipExpressionHTC = Self(26i32);
2464 pub const TONGUE_LEFT: LipExpressionHTC = Self(27i32);
2465 pub const TONGUE_RIGHT: LipExpressionHTC = Self(28i32);
2466 pub const TONGUE_UP: LipExpressionHTC = Self(29i32);
2467 pub const TONGUE_DOWN: LipExpressionHTC = Self(30i32);
2468 pub const TONGUE_ROLL: LipExpressionHTC = Self(31i32);
2469 pub const TONGUE_LONGSTEP2: LipExpressionHTC = Self(32i32);
2470 pub const TONGUE_UPRIGHT_MORPH: LipExpressionHTC = Self(33i32);
2471 pub const TONGUE_UPLEFT_MORPH: LipExpressionHTC = Self(34i32);
2472 pub const TONGUE_DOWNRIGHT_MORPH: LipExpressionHTC = Self(35i32);
2473 pub const TONGUE_DOWNLEFT_MORPH: LipExpressionHTC = Self(36i32);
2474 pub fn from_raw(x: i32) -> Self {
2475 Self(x)
2476 }
2477 pub fn into_raw(self) -> i32 {
2478 self.0
2479 }
2480}
2481impl fmt::Debug for LipExpressionHTC {
2482 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2483 let name = match *self {
2484 Self::JAW_RIGHT => Some("JAW_RIGHT"),
2485 Self::JAW_LEFT => Some("JAW_LEFT"),
2486 Self::JAW_FORWARD => Some("JAW_FORWARD"),
2487 Self::JAW_OPEN => Some("JAW_OPEN"),
2488 Self::MOUTH_APE_SHAPE => Some("MOUTH_APE_SHAPE"),
2489 Self::MOUTH_UPPER_RIGHT => Some("MOUTH_UPPER_RIGHT"),
2490 Self::MOUTH_UPPER_LEFT => Some("MOUTH_UPPER_LEFT"),
2491 Self::MOUTH_LOWER_RIGHT => Some("MOUTH_LOWER_RIGHT"),
2492 Self::MOUTH_LOWER_LEFT => Some("MOUTH_LOWER_LEFT"),
2493 Self::MOUTH_UPPER_OVERTURN => Some("MOUTH_UPPER_OVERTURN"),
2494 Self::MOUTH_LOWER_OVERTURN => Some("MOUTH_LOWER_OVERTURN"),
2495 Self::MOUTH_POUT => Some("MOUTH_POUT"),
2496 Self::MOUTH_SMILE_RIGHT => Some("MOUTH_SMILE_RIGHT"),
2497 Self::MOUTH_SMILE_LEFT => Some("MOUTH_SMILE_LEFT"),
2498 Self::MOUTH_SAD_RIGHT => Some("MOUTH_SAD_RIGHT"),
2499 Self::MOUTH_SAD_LEFT => Some("MOUTH_SAD_LEFT"),
2500 Self::CHEEK_PUFF_RIGHT => Some("CHEEK_PUFF_RIGHT"),
2501 Self::CHEEK_PUFF_LEFT => Some("CHEEK_PUFF_LEFT"),
2502 Self::CHEEK_SUCK => Some("CHEEK_SUCK"),
2503 Self::MOUTH_UPPER_UPRIGHT => Some("MOUTH_UPPER_UPRIGHT"),
2504 Self::MOUTH_UPPER_UPLEFT => Some("MOUTH_UPPER_UPLEFT"),
2505 Self::MOUTH_LOWER_DOWNRIGHT => Some("MOUTH_LOWER_DOWNRIGHT"),
2506 Self::MOUTH_LOWER_DOWNLEFT => Some("MOUTH_LOWER_DOWNLEFT"),
2507 Self::MOUTH_UPPER_INSIDE => Some("MOUTH_UPPER_INSIDE"),
2508 Self::MOUTH_LOWER_INSIDE => Some("MOUTH_LOWER_INSIDE"),
2509 Self::MOUTH_LOWER_OVERLAY => Some("MOUTH_LOWER_OVERLAY"),
2510 Self::TONGUE_LONGSTEP1 => Some("TONGUE_LONGSTEP1"),
2511 Self::TONGUE_LEFT => Some("TONGUE_LEFT"),
2512 Self::TONGUE_RIGHT => Some("TONGUE_RIGHT"),
2513 Self::TONGUE_UP => Some("TONGUE_UP"),
2514 Self::TONGUE_DOWN => Some("TONGUE_DOWN"),
2515 Self::TONGUE_ROLL => Some("TONGUE_ROLL"),
2516 Self::TONGUE_LONGSTEP2 => Some("TONGUE_LONGSTEP2"),
2517 Self::TONGUE_UPRIGHT_MORPH => Some("TONGUE_UPRIGHT_MORPH"),
2518 Self::TONGUE_UPLEFT_MORPH => Some("TONGUE_UPLEFT_MORPH"),
2519 Self::TONGUE_DOWNRIGHT_MORPH => Some("TONGUE_DOWNRIGHT_MORPH"),
2520 Self::TONGUE_DOWNLEFT_MORPH => Some("TONGUE_DOWNLEFT_MORPH"),
2521 _ => None,
2522 };
2523 fmt_enum(fmt, self.0, name)
2524 }
2525}
2526#[doc = "See [XrPassthroughFormHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFormHTC)"]
2527#[repr(transparent)]
2528#[derive(Copy, Clone, Eq, PartialEq)]
2529pub struct PassthroughFormHTC(i32);
2530impl PassthroughFormHTC {
2531 #[doc = "Presents the passthrough with full of the entire screen."]
2532 pub const PLANAR: PassthroughFormHTC = Self(0i32);
2533 #[doc = "Presents the passthrough projecting onto a custom mesh."]
2534 pub const PROJECTED: PassthroughFormHTC = Self(1i32);
2535 pub fn from_raw(x: i32) -> Self {
2536 Self(x)
2537 }
2538 pub fn into_raw(self) -> i32 {
2539 self.0
2540 }
2541}
2542impl fmt::Debug for PassthroughFormHTC {
2543 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2544 let name = match *self {
2545 Self::PLANAR => Some("PLANAR"),
2546 Self::PROJECTED => Some("PROJECTED"),
2547 _ => None,
2548 };
2549 fmt_enum(fmt, self.0, name)
2550 }
2551}
2552#[doc = "See [XrFoveationModeHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationModeHTC)"]
2553#[repr(transparent)]
2554#[derive(Copy, Clone, Eq, PartialEq)]
2555pub struct FoveationModeHTC(i32);
2556impl FoveationModeHTC {
2557 #[doc = "No foveation"]
2558 pub const DISABLE: FoveationModeHTC = Self(0i32);
2559 #[doc = "Apply system default setting with fixed clear FOV and periphery quality."]
2560 pub const FIXED: FoveationModeHTC = Self(1i32);
2561 #[doc = "Allow system to set foveation dynamically according realtime system metric or other extensions."]
2562 pub const DYNAMIC: FoveationModeHTC = Self(2i32);
2563 #[doc = "Allow application to set foveation with desired clear FOV, periphery quality, and focal center offset."]
2564 pub const CUSTOM: FoveationModeHTC = Self(3i32);
2565 pub fn from_raw(x: i32) -> Self {
2566 Self(x)
2567 }
2568 pub fn into_raw(self) -> i32 {
2569 self.0
2570 }
2571}
2572impl fmt::Debug for FoveationModeHTC {
2573 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2574 let name = match *self {
2575 Self::DISABLE => Some("DISABLE"),
2576 Self::FIXED => Some("FIXED"),
2577 Self::DYNAMIC => Some("DYNAMIC"),
2578 Self::CUSTOM => Some("CUSTOM"),
2579 _ => None,
2580 };
2581 fmt_enum(fmt, self.0, name)
2582 }
2583}
2584#[doc = "See [XrFoveationLevelHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelHTC)"]
2585#[repr(transparent)]
2586#[derive(Copy, Clone, Eq, PartialEq)]
2587pub struct FoveationLevelHTC(i32);
2588impl FoveationLevelHTC {
2589 #[doc = "No foveation"]
2590 pub const NONE: FoveationLevelHTC = Self(0i32);
2591 #[doc = "Light periphery pixel density drop and lower performance gain."]
2592 pub const LOW: FoveationLevelHTC = Self(1i32);
2593 #[doc = "Medium periphery pixel density drop and medium performance gain"]
2594 pub const MEDIUM: FoveationLevelHTC = Self(2i32);
2595 #[doc = "Heavy periphery pixel density drop and higher performance gain"]
2596 pub const HIGH: FoveationLevelHTC = Self(3i32);
2597 pub fn from_raw(x: i32) -> Self {
2598 Self(x)
2599 }
2600 pub fn into_raw(self) -> i32 {
2601 self.0
2602 }
2603}
2604impl fmt::Debug for FoveationLevelHTC {
2605 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2606 let name = match *self {
2607 Self::NONE => Some("NONE"),
2608 Self::LOW => Some("LOW"),
2609 Self::MEDIUM => Some("MEDIUM"),
2610 Self::HIGH => Some("HIGH"),
2611 _ => None,
2612 };
2613 fmt_enum(fmt, self.0, name)
2614 }
2615}
2616#[doc = "See [XrLocalDimmingModeMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalDimmingModeMETA)"]
2617#[repr(transparent)]
2618#[derive(Copy, Clone, Eq, PartialEq)]
2619pub struct LocalDimmingModeMETA(i32);
2620impl LocalDimmingModeMETA {
2621 #[doc = "Local dimming is turned off by default for the current submitted frame. This is the same as not chaining XrLocalDimmingModeMETA."]
2622 pub const OFF: LocalDimmingModeMETA = Self(0i32);
2623 #[doc = "Local dimming is turned on for the current submitted frame."]
2624 pub const ON: LocalDimmingModeMETA = Self(1i32);
2625 pub fn from_raw(x: i32) -> Self {
2626 Self(x)
2627 }
2628 pub fn into_raw(self) -> i32 {
2629 self.0
2630 }
2631}
2632impl fmt::Debug for LocalDimmingModeMETA {
2633 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2634 let name = match *self {
2635 Self::OFF => Some("OFF"),
2636 Self::ON => Some("ON"),
2637 _ => None,
2638 };
2639 fmt_enum(fmt, self.0, name)
2640 }
2641}
2642#[doc = "See [XrFaceExpressionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionFB)"]
2643#[repr(transparent)]
2644#[derive(Copy, Clone, Eq, PartialEq)]
2645pub struct FaceExpressionFB(i32);
2646impl FaceExpressionFB {
2647 pub const BROW_LOWERER_L: FaceExpressionFB = Self(0i32);
2648 pub const BROW_LOWERER_R: FaceExpressionFB = Self(1i32);
2649 pub const CHEEK_PUFF_L: FaceExpressionFB = Self(2i32);
2650 pub const CHEEK_PUFF_R: FaceExpressionFB = Self(3i32);
2651 pub const CHEEK_RAISER_L: FaceExpressionFB = Self(4i32);
2652 pub const CHEEK_RAISER_R: FaceExpressionFB = Self(5i32);
2653 pub const CHEEK_SUCK_L: FaceExpressionFB = Self(6i32);
2654 pub const CHEEK_SUCK_R: FaceExpressionFB = Self(7i32);
2655 pub const CHIN_RAISER_B: FaceExpressionFB = Self(8i32);
2656 pub const CHIN_RAISER_T: FaceExpressionFB = Self(9i32);
2657 pub const DIMPLER_L: FaceExpressionFB = Self(10i32);
2658 pub const DIMPLER_R: FaceExpressionFB = Self(11i32);
2659 pub const EYES_CLOSED_L: FaceExpressionFB = Self(12i32);
2660 pub const EYES_CLOSED_R: FaceExpressionFB = Self(13i32);
2661 pub const EYES_LOOK_DOWN_L: FaceExpressionFB = Self(14i32);
2662 pub const EYES_LOOK_DOWN_R: FaceExpressionFB = Self(15i32);
2663 pub const EYES_LOOK_LEFT_L: FaceExpressionFB = Self(16i32);
2664 pub const EYES_LOOK_LEFT_R: FaceExpressionFB = Self(17i32);
2665 pub const EYES_LOOK_RIGHT_L: FaceExpressionFB = Self(18i32);
2666 pub const EYES_LOOK_RIGHT_R: FaceExpressionFB = Self(19i32);
2667 pub const EYES_LOOK_UP_L: FaceExpressionFB = Self(20i32);
2668 pub const EYES_LOOK_UP_R: FaceExpressionFB = Self(21i32);
2669 pub const INNER_BROW_RAISER_L: FaceExpressionFB = Self(22i32);
2670 pub const INNER_BROW_RAISER_R: FaceExpressionFB = Self(23i32);
2671 pub const JAW_DROP: FaceExpressionFB = Self(24i32);
2672 pub const JAW_SIDEWAYS_LEFT: FaceExpressionFB = Self(25i32);
2673 pub const JAW_SIDEWAYS_RIGHT: FaceExpressionFB = Self(26i32);
2674 pub const JAW_THRUST: FaceExpressionFB = Self(27i32);
2675 pub const LID_TIGHTENER_L: FaceExpressionFB = Self(28i32);
2676 pub const LID_TIGHTENER_R: FaceExpressionFB = Self(29i32);
2677 pub const LIP_CORNER_DEPRESSOR_L: FaceExpressionFB = Self(30i32);
2678 pub const LIP_CORNER_DEPRESSOR_R: FaceExpressionFB = Self(31i32);
2679 pub const LIP_CORNER_PULLER_L: FaceExpressionFB = Self(32i32);
2680 pub const LIP_CORNER_PULLER_R: FaceExpressionFB = Self(33i32);
2681 pub const LIP_FUNNELER_LB: FaceExpressionFB = Self(34i32);
2682 pub const LIP_FUNNELER_LT: FaceExpressionFB = Self(35i32);
2683 pub const LIP_FUNNELER_RB: FaceExpressionFB = Self(36i32);
2684 pub const LIP_FUNNELER_RT: FaceExpressionFB = Self(37i32);
2685 pub const LIP_PRESSOR_L: FaceExpressionFB = Self(38i32);
2686 pub const LIP_PRESSOR_R: FaceExpressionFB = Self(39i32);
2687 pub const LIP_PUCKER_L: FaceExpressionFB = Self(40i32);
2688 pub const LIP_PUCKER_R: FaceExpressionFB = Self(41i32);
2689 pub const LIP_STRETCHER_L: FaceExpressionFB = Self(42i32);
2690 pub const LIP_STRETCHER_R: FaceExpressionFB = Self(43i32);
2691 pub const LIP_SUCK_LB: FaceExpressionFB = Self(44i32);
2692 pub const LIP_SUCK_LT: FaceExpressionFB = Self(45i32);
2693 pub const LIP_SUCK_RB: FaceExpressionFB = Self(46i32);
2694 pub const LIP_SUCK_RT: FaceExpressionFB = Self(47i32);
2695 pub const LIP_TIGHTENER_L: FaceExpressionFB = Self(48i32);
2696 pub const LIP_TIGHTENER_R: FaceExpressionFB = Self(49i32);
2697 pub const LIPS_TOWARD: FaceExpressionFB = Self(50i32);
2698 pub const LOWER_LIP_DEPRESSOR_L: FaceExpressionFB = Self(51i32);
2699 pub const LOWER_LIP_DEPRESSOR_R: FaceExpressionFB = Self(52i32);
2700 pub const MOUTH_LEFT: FaceExpressionFB = Self(53i32);
2701 pub const MOUTH_RIGHT: FaceExpressionFB = Self(54i32);
2702 pub const NOSE_WRINKLER_L: FaceExpressionFB = Self(55i32);
2703 pub const NOSE_WRINKLER_R: FaceExpressionFB = Self(56i32);
2704 pub const OUTER_BROW_RAISER_L: FaceExpressionFB = Self(57i32);
2705 pub const OUTER_BROW_RAISER_R: FaceExpressionFB = Self(58i32);
2706 pub const UPPER_LID_RAISER_L: FaceExpressionFB = Self(59i32);
2707 pub const UPPER_LID_RAISER_R: FaceExpressionFB = Self(60i32);
2708 pub const UPPER_LIP_RAISER_L: FaceExpressionFB = Self(61i32);
2709 pub const UPPER_LIP_RAISER_R: FaceExpressionFB = Self(62i32);
2710 pub const COUNT: FaceExpressionFB = Self(63i32);
2711 pub fn from_raw(x: i32) -> Self {
2712 Self(x)
2713 }
2714 pub fn into_raw(self) -> i32 {
2715 self.0
2716 }
2717}
2718impl fmt::Debug for FaceExpressionFB {
2719 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2720 let name = match *self {
2721 Self::BROW_LOWERER_L => Some("BROW_LOWERER_L"),
2722 Self::BROW_LOWERER_R => Some("BROW_LOWERER_R"),
2723 Self::CHEEK_PUFF_L => Some("CHEEK_PUFF_L"),
2724 Self::CHEEK_PUFF_R => Some("CHEEK_PUFF_R"),
2725 Self::CHEEK_RAISER_L => Some("CHEEK_RAISER_L"),
2726 Self::CHEEK_RAISER_R => Some("CHEEK_RAISER_R"),
2727 Self::CHEEK_SUCK_L => Some("CHEEK_SUCK_L"),
2728 Self::CHEEK_SUCK_R => Some("CHEEK_SUCK_R"),
2729 Self::CHIN_RAISER_B => Some("CHIN_RAISER_B"),
2730 Self::CHIN_RAISER_T => Some("CHIN_RAISER_T"),
2731 Self::DIMPLER_L => Some("DIMPLER_L"),
2732 Self::DIMPLER_R => Some("DIMPLER_R"),
2733 Self::EYES_CLOSED_L => Some("EYES_CLOSED_L"),
2734 Self::EYES_CLOSED_R => Some("EYES_CLOSED_R"),
2735 Self::EYES_LOOK_DOWN_L => Some("EYES_LOOK_DOWN_L"),
2736 Self::EYES_LOOK_DOWN_R => Some("EYES_LOOK_DOWN_R"),
2737 Self::EYES_LOOK_LEFT_L => Some("EYES_LOOK_LEFT_L"),
2738 Self::EYES_LOOK_LEFT_R => Some("EYES_LOOK_LEFT_R"),
2739 Self::EYES_LOOK_RIGHT_L => Some("EYES_LOOK_RIGHT_L"),
2740 Self::EYES_LOOK_RIGHT_R => Some("EYES_LOOK_RIGHT_R"),
2741 Self::EYES_LOOK_UP_L => Some("EYES_LOOK_UP_L"),
2742 Self::EYES_LOOK_UP_R => Some("EYES_LOOK_UP_R"),
2743 Self::INNER_BROW_RAISER_L => Some("INNER_BROW_RAISER_L"),
2744 Self::INNER_BROW_RAISER_R => Some("INNER_BROW_RAISER_R"),
2745 Self::JAW_DROP => Some("JAW_DROP"),
2746 Self::JAW_SIDEWAYS_LEFT => Some("JAW_SIDEWAYS_LEFT"),
2747 Self::JAW_SIDEWAYS_RIGHT => Some("JAW_SIDEWAYS_RIGHT"),
2748 Self::JAW_THRUST => Some("JAW_THRUST"),
2749 Self::LID_TIGHTENER_L => Some("LID_TIGHTENER_L"),
2750 Self::LID_TIGHTENER_R => Some("LID_TIGHTENER_R"),
2751 Self::LIP_CORNER_DEPRESSOR_L => Some("LIP_CORNER_DEPRESSOR_L"),
2752 Self::LIP_CORNER_DEPRESSOR_R => Some("LIP_CORNER_DEPRESSOR_R"),
2753 Self::LIP_CORNER_PULLER_L => Some("LIP_CORNER_PULLER_L"),
2754 Self::LIP_CORNER_PULLER_R => Some("LIP_CORNER_PULLER_R"),
2755 Self::LIP_FUNNELER_LB => Some("LIP_FUNNELER_LB"),
2756 Self::LIP_FUNNELER_LT => Some("LIP_FUNNELER_LT"),
2757 Self::LIP_FUNNELER_RB => Some("LIP_FUNNELER_RB"),
2758 Self::LIP_FUNNELER_RT => Some("LIP_FUNNELER_RT"),
2759 Self::LIP_PRESSOR_L => Some("LIP_PRESSOR_L"),
2760 Self::LIP_PRESSOR_R => Some("LIP_PRESSOR_R"),
2761 Self::LIP_PUCKER_L => Some("LIP_PUCKER_L"),
2762 Self::LIP_PUCKER_R => Some("LIP_PUCKER_R"),
2763 Self::LIP_STRETCHER_L => Some("LIP_STRETCHER_L"),
2764 Self::LIP_STRETCHER_R => Some("LIP_STRETCHER_R"),
2765 Self::LIP_SUCK_LB => Some("LIP_SUCK_LB"),
2766 Self::LIP_SUCK_LT => Some("LIP_SUCK_LT"),
2767 Self::LIP_SUCK_RB => Some("LIP_SUCK_RB"),
2768 Self::LIP_SUCK_RT => Some("LIP_SUCK_RT"),
2769 Self::LIP_TIGHTENER_L => Some("LIP_TIGHTENER_L"),
2770 Self::LIP_TIGHTENER_R => Some("LIP_TIGHTENER_R"),
2771 Self::LIPS_TOWARD => Some("LIPS_TOWARD"),
2772 Self::LOWER_LIP_DEPRESSOR_L => Some("LOWER_LIP_DEPRESSOR_L"),
2773 Self::LOWER_LIP_DEPRESSOR_R => Some("LOWER_LIP_DEPRESSOR_R"),
2774 Self::MOUTH_LEFT => Some("MOUTH_LEFT"),
2775 Self::MOUTH_RIGHT => Some("MOUTH_RIGHT"),
2776 Self::NOSE_WRINKLER_L => Some("NOSE_WRINKLER_L"),
2777 Self::NOSE_WRINKLER_R => Some("NOSE_WRINKLER_R"),
2778 Self::OUTER_BROW_RAISER_L => Some("OUTER_BROW_RAISER_L"),
2779 Self::OUTER_BROW_RAISER_R => Some("OUTER_BROW_RAISER_R"),
2780 Self::UPPER_LID_RAISER_L => Some("UPPER_LID_RAISER_L"),
2781 Self::UPPER_LID_RAISER_R => Some("UPPER_LID_RAISER_R"),
2782 Self::UPPER_LIP_RAISER_L => Some("UPPER_LIP_RAISER_L"),
2783 Self::UPPER_LIP_RAISER_R => Some("UPPER_LIP_RAISER_R"),
2784 Self::COUNT => Some("COUNT"),
2785 _ => None,
2786 };
2787 fmt_enum(fmt, self.0, name)
2788 }
2789}
2790#[doc = "See [XrFaceExpressionSetFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionSetFB)"]
2791#[repr(transparent)]
2792#[derive(Copy, Clone, Eq, PartialEq)]
2793pub struct FaceExpressionSetFB(i32);
2794impl FaceExpressionSetFB {
2795 #[doc = "indicates that the created XrFaceTrackerFB tracks the set of blend shapes described by XrFaceExpressionFB enum, i.e. the xrGetFaceExpressionWeightsFB function returns an array of blend shapes with the count of XR_FACE_EXPRESSION_COUNT_FB and can: be indexed using XrFaceExpressionFB."]
2796 pub const DEFAULT: FaceExpressionSetFB = Self(0i32);
2797 pub fn from_raw(x: i32) -> Self {
2798 Self(x)
2799 }
2800 pub fn into_raw(self) -> i32 {
2801 self.0
2802 }
2803}
2804impl fmt::Debug for FaceExpressionSetFB {
2805 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2806 let name = match *self {
2807 Self::DEFAULT => Some("DEFAULT"),
2808 _ => None,
2809 };
2810 fmt_enum(fmt, self.0, name)
2811 }
2812}
2813#[doc = "See [XrFaceConfidenceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceConfidenceFB)"]
2814#[repr(transparent)]
2815#[derive(Copy, Clone, Eq, PartialEq)]
2816pub struct FaceConfidenceFB(i32);
2817impl FaceConfidenceFB {
2818 pub const LOWER_FACE: FaceConfidenceFB = Self(0i32);
2819 pub const UPPER_FACE: FaceConfidenceFB = Self(1i32);
2820 pub const COUNT: FaceConfidenceFB = Self(2i32);
2821 pub fn from_raw(x: i32) -> Self {
2822 Self(x)
2823 }
2824 pub fn into_raw(self) -> i32 {
2825 self.0
2826 }
2827}
2828impl fmt::Debug for FaceConfidenceFB {
2829 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2830 let name = match *self {
2831 Self::LOWER_FACE => Some("LOWER_FACE"),
2832 Self::UPPER_FACE => Some("UPPER_FACE"),
2833 Self::COUNT => Some("COUNT"),
2834 _ => None,
2835 };
2836 fmt_enum(fmt, self.0, name)
2837 }
2838}
2839#[doc = "See [XrFaceExpression2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpression2FB)"]
2840#[repr(transparent)]
2841#[derive(Copy, Clone, Eq, PartialEq)]
2842pub struct FaceExpression2FB(i32);
2843impl FaceExpression2FB {
2844 pub const BROW_LOWERER_L: FaceExpression2FB = Self(0i32);
2845 pub const BROW_LOWERER_R: FaceExpression2FB = Self(1i32);
2846 pub const CHEEK_PUFF_L: FaceExpression2FB = Self(2i32);
2847 pub const CHEEK_PUFF_R: FaceExpression2FB = Self(3i32);
2848 pub const CHEEK_RAISER_L: FaceExpression2FB = Self(4i32);
2849 pub const CHEEK_RAISER_R: FaceExpression2FB = Self(5i32);
2850 pub const CHEEK_SUCK_L: FaceExpression2FB = Self(6i32);
2851 pub const CHEEK_SUCK_R: FaceExpression2FB = Self(7i32);
2852 pub const CHIN_RAISER_B: FaceExpression2FB = Self(8i32);
2853 pub const CHIN_RAISER_T: FaceExpression2FB = Self(9i32);
2854 pub const DIMPLER_L: FaceExpression2FB = Self(10i32);
2855 pub const DIMPLER_R: FaceExpression2FB = Self(11i32);
2856 pub const EYES_CLOSED_L: FaceExpression2FB = Self(12i32);
2857 pub const EYES_CLOSED_R: FaceExpression2FB = Self(13i32);
2858 pub const EYES_LOOK_DOWN_L: FaceExpression2FB = Self(14i32);
2859 pub const EYES_LOOK_DOWN_R: FaceExpression2FB = Self(15i32);
2860 pub const EYES_LOOK_LEFT_L: FaceExpression2FB = Self(16i32);
2861 pub const EYES_LOOK_LEFT_R: FaceExpression2FB = Self(17i32);
2862 pub const EYES_LOOK_RIGHT_L: FaceExpression2FB = Self(18i32);
2863 pub const EYES_LOOK_RIGHT_R: FaceExpression2FB = Self(19i32);
2864 pub const EYES_LOOK_UP_L: FaceExpression2FB = Self(20i32);
2865 pub const EYES_LOOK_UP_R: FaceExpression2FB = Self(21i32);
2866 pub const INNER_BROW_RAISER_L: FaceExpression2FB = Self(22i32);
2867 pub const INNER_BROW_RAISER_R: FaceExpression2FB = Self(23i32);
2868 pub const JAW_DROP: FaceExpression2FB = Self(24i32);
2869 pub const JAW_SIDEWAYS_LEFT: FaceExpression2FB = Self(25i32);
2870 pub const JAW_SIDEWAYS_RIGHT: FaceExpression2FB = Self(26i32);
2871 pub const JAW_THRUST: FaceExpression2FB = Self(27i32);
2872 pub const LID_TIGHTENER_L: FaceExpression2FB = Self(28i32);
2873 pub const LID_TIGHTENER_R: FaceExpression2FB = Self(29i32);
2874 pub const LIP_CORNER_DEPRESSOR_L: FaceExpression2FB = Self(30i32);
2875 pub const LIP_CORNER_DEPRESSOR_R: FaceExpression2FB = Self(31i32);
2876 pub const LIP_CORNER_PULLER_L: FaceExpression2FB = Self(32i32);
2877 pub const LIP_CORNER_PULLER_R: FaceExpression2FB = Self(33i32);
2878 pub const LIP_FUNNELER_LB: FaceExpression2FB = Self(34i32);
2879 pub const LIP_FUNNELER_LT: FaceExpression2FB = Self(35i32);
2880 pub const LIP_FUNNELER_RB: FaceExpression2FB = Self(36i32);
2881 pub const LIP_FUNNELER_RT: FaceExpression2FB = Self(37i32);
2882 pub const LIP_PRESSOR_L: FaceExpression2FB = Self(38i32);
2883 pub const LIP_PRESSOR_R: FaceExpression2FB = Self(39i32);
2884 pub const LIP_PUCKER_L: FaceExpression2FB = Self(40i32);
2885 pub const LIP_PUCKER_R: FaceExpression2FB = Self(41i32);
2886 pub const LIP_STRETCHER_L: FaceExpression2FB = Self(42i32);
2887 pub const LIP_STRETCHER_R: FaceExpression2FB = Self(43i32);
2888 pub const LIP_SUCK_LB: FaceExpression2FB = Self(44i32);
2889 pub const LIP_SUCK_LT: FaceExpression2FB = Self(45i32);
2890 pub const LIP_SUCK_RB: FaceExpression2FB = Self(46i32);
2891 pub const LIP_SUCK_RT: FaceExpression2FB = Self(47i32);
2892 pub const LIP_TIGHTENER_L: FaceExpression2FB = Self(48i32);
2893 pub const LIP_TIGHTENER_R: FaceExpression2FB = Self(49i32);
2894 pub const LIPS_TOWARD: FaceExpression2FB = Self(50i32);
2895 pub const LOWER_LIP_DEPRESSOR_L: FaceExpression2FB = Self(51i32);
2896 pub const LOWER_LIP_DEPRESSOR_R: FaceExpression2FB = Self(52i32);
2897 pub const MOUTH_LEFT: FaceExpression2FB = Self(53i32);
2898 pub const MOUTH_RIGHT: FaceExpression2FB = Self(54i32);
2899 pub const NOSE_WRINKLER_L: FaceExpression2FB = Self(55i32);
2900 pub const NOSE_WRINKLER_R: FaceExpression2FB = Self(56i32);
2901 pub const OUTER_BROW_RAISER_L: FaceExpression2FB = Self(57i32);
2902 pub const OUTER_BROW_RAISER_R: FaceExpression2FB = Self(58i32);
2903 pub const UPPER_LID_RAISER_L: FaceExpression2FB = Self(59i32);
2904 pub const UPPER_LID_RAISER_R: FaceExpression2FB = Self(60i32);
2905 pub const UPPER_LIP_RAISER_L: FaceExpression2FB = Self(61i32);
2906 pub const UPPER_LIP_RAISER_R: FaceExpression2FB = Self(62i32);
2907 pub const TONGUE_TIP_INTERDENTAL: FaceExpression2FB = Self(63i32);
2908 pub const TONGUE_TIP_ALVEOLAR: FaceExpression2FB = Self(64i32);
2909 pub const TONGUE_FRONT_DORSAL_PALATE: FaceExpression2FB = Self(65i32);
2910 pub const TONGUE_MID_DORSAL_PALATE: FaceExpression2FB = Self(66i32);
2911 pub const TONGUE_BACK_DORSAL_VELAR: FaceExpression2FB = Self(67i32);
2912 pub const TONGUE_OUT: FaceExpression2FB = Self(68i32);
2913 pub const TONGUE_RETREAT: FaceExpression2FB = Self(69i32);
2914 pub const COUNT: FaceExpression2FB = Self(70i32);
2915 pub fn from_raw(x: i32) -> Self {
2916 Self(x)
2917 }
2918 pub fn into_raw(self) -> i32 {
2919 self.0
2920 }
2921}
2922impl fmt::Debug for FaceExpression2FB {
2923 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
2924 let name = match *self {
2925 Self::BROW_LOWERER_L => Some("BROW_LOWERER_L"),
2926 Self::BROW_LOWERER_R => Some("BROW_LOWERER_R"),
2927 Self::CHEEK_PUFF_L => Some("CHEEK_PUFF_L"),
2928 Self::CHEEK_PUFF_R => Some("CHEEK_PUFF_R"),
2929 Self::CHEEK_RAISER_L => Some("CHEEK_RAISER_L"),
2930 Self::CHEEK_RAISER_R => Some("CHEEK_RAISER_R"),
2931 Self::CHEEK_SUCK_L => Some("CHEEK_SUCK_L"),
2932 Self::CHEEK_SUCK_R => Some("CHEEK_SUCK_R"),
2933 Self::CHIN_RAISER_B => Some("CHIN_RAISER_B"),
2934 Self::CHIN_RAISER_T => Some("CHIN_RAISER_T"),
2935 Self::DIMPLER_L => Some("DIMPLER_L"),
2936 Self::DIMPLER_R => Some("DIMPLER_R"),
2937 Self::EYES_CLOSED_L => Some("EYES_CLOSED_L"),
2938 Self::EYES_CLOSED_R => Some("EYES_CLOSED_R"),
2939 Self::EYES_LOOK_DOWN_L => Some("EYES_LOOK_DOWN_L"),
2940 Self::EYES_LOOK_DOWN_R => Some("EYES_LOOK_DOWN_R"),
2941 Self::EYES_LOOK_LEFT_L => Some("EYES_LOOK_LEFT_L"),
2942 Self::EYES_LOOK_LEFT_R => Some("EYES_LOOK_LEFT_R"),
2943 Self::EYES_LOOK_RIGHT_L => Some("EYES_LOOK_RIGHT_L"),
2944 Self::EYES_LOOK_RIGHT_R => Some("EYES_LOOK_RIGHT_R"),
2945 Self::EYES_LOOK_UP_L => Some("EYES_LOOK_UP_L"),
2946 Self::EYES_LOOK_UP_R => Some("EYES_LOOK_UP_R"),
2947 Self::INNER_BROW_RAISER_L => Some("INNER_BROW_RAISER_L"),
2948 Self::INNER_BROW_RAISER_R => Some("INNER_BROW_RAISER_R"),
2949 Self::JAW_DROP => Some("JAW_DROP"),
2950 Self::JAW_SIDEWAYS_LEFT => Some("JAW_SIDEWAYS_LEFT"),
2951 Self::JAW_SIDEWAYS_RIGHT => Some("JAW_SIDEWAYS_RIGHT"),
2952 Self::JAW_THRUST => Some("JAW_THRUST"),
2953 Self::LID_TIGHTENER_L => Some("LID_TIGHTENER_L"),
2954 Self::LID_TIGHTENER_R => Some("LID_TIGHTENER_R"),
2955 Self::LIP_CORNER_DEPRESSOR_L => Some("LIP_CORNER_DEPRESSOR_L"),
2956 Self::LIP_CORNER_DEPRESSOR_R => Some("LIP_CORNER_DEPRESSOR_R"),
2957 Self::LIP_CORNER_PULLER_L => Some("LIP_CORNER_PULLER_L"),
2958 Self::LIP_CORNER_PULLER_R => Some("LIP_CORNER_PULLER_R"),
2959 Self::LIP_FUNNELER_LB => Some("LIP_FUNNELER_LB"),
2960 Self::LIP_FUNNELER_LT => Some("LIP_FUNNELER_LT"),
2961 Self::LIP_FUNNELER_RB => Some("LIP_FUNNELER_RB"),
2962 Self::LIP_FUNNELER_RT => Some("LIP_FUNNELER_RT"),
2963 Self::LIP_PRESSOR_L => Some("LIP_PRESSOR_L"),
2964 Self::LIP_PRESSOR_R => Some("LIP_PRESSOR_R"),
2965 Self::LIP_PUCKER_L => Some("LIP_PUCKER_L"),
2966 Self::LIP_PUCKER_R => Some("LIP_PUCKER_R"),
2967 Self::LIP_STRETCHER_L => Some("LIP_STRETCHER_L"),
2968 Self::LIP_STRETCHER_R => Some("LIP_STRETCHER_R"),
2969 Self::LIP_SUCK_LB => Some("LIP_SUCK_LB"),
2970 Self::LIP_SUCK_LT => Some("LIP_SUCK_LT"),
2971 Self::LIP_SUCK_RB => Some("LIP_SUCK_RB"),
2972 Self::LIP_SUCK_RT => Some("LIP_SUCK_RT"),
2973 Self::LIP_TIGHTENER_L => Some("LIP_TIGHTENER_L"),
2974 Self::LIP_TIGHTENER_R => Some("LIP_TIGHTENER_R"),
2975 Self::LIPS_TOWARD => Some("LIPS_TOWARD"),
2976 Self::LOWER_LIP_DEPRESSOR_L => Some("LOWER_LIP_DEPRESSOR_L"),
2977 Self::LOWER_LIP_DEPRESSOR_R => Some("LOWER_LIP_DEPRESSOR_R"),
2978 Self::MOUTH_LEFT => Some("MOUTH_LEFT"),
2979 Self::MOUTH_RIGHT => Some("MOUTH_RIGHT"),
2980 Self::NOSE_WRINKLER_L => Some("NOSE_WRINKLER_L"),
2981 Self::NOSE_WRINKLER_R => Some("NOSE_WRINKLER_R"),
2982 Self::OUTER_BROW_RAISER_L => Some("OUTER_BROW_RAISER_L"),
2983 Self::OUTER_BROW_RAISER_R => Some("OUTER_BROW_RAISER_R"),
2984 Self::UPPER_LID_RAISER_L => Some("UPPER_LID_RAISER_L"),
2985 Self::UPPER_LID_RAISER_R => Some("UPPER_LID_RAISER_R"),
2986 Self::UPPER_LIP_RAISER_L => Some("UPPER_LIP_RAISER_L"),
2987 Self::UPPER_LIP_RAISER_R => Some("UPPER_LIP_RAISER_R"),
2988 Self::TONGUE_TIP_INTERDENTAL => Some("TONGUE_TIP_INTERDENTAL"),
2989 Self::TONGUE_TIP_ALVEOLAR => Some("TONGUE_TIP_ALVEOLAR"),
2990 Self::TONGUE_FRONT_DORSAL_PALATE => Some("TONGUE_FRONT_DORSAL_PALATE"),
2991 Self::TONGUE_MID_DORSAL_PALATE => Some("TONGUE_MID_DORSAL_PALATE"),
2992 Self::TONGUE_BACK_DORSAL_VELAR => Some("TONGUE_BACK_DORSAL_VELAR"),
2993 Self::TONGUE_OUT => Some("TONGUE_OUT"),
2994 Self::TONGUE_RETREAT => Some("TONGUE_RETREAT"),
2995 Self::COUNT => Some("COUNT"),
2996 _ => None,
2997 };
2998 fmt_enum(fmt, self.0, name)
2999 }
3000}
3001#[doc = "See [XrFaceExpressionSet2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionSet2FB)"]
3002#[repr(transparent)]
3003#[derive(Copy, Clone, Eq, PartialEq)]
3004pub struct FaceExpressionSet2FB(i32);
3005impl FaceExpressionSet2FB {
3006 #[doc = "indicates that the created XrFaceTracker2FB tracks the set of blend shapes described by XrFaceExpression2FB enum, i.e. the xrGetFaceExpressionWeights2FB function returns an array of blend shapes with the count of XR_FACE_EXPRESSION2_COUNT_FB and can: be indexed using XrFaceExpression2FB."]
3007 pub const DEFAULT: FaceExpressionSet2FB = Self(0i32);
3008 pub fn from_raw(x: i32) -> Self {
3009 Self(x)
3010 }
3011 pub fn into_raw(self) -> i32 {
3012 self.0
3013 }
3014}
3015impl fmt::Debug for FaceExpressionSet2FB {
3016 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3017 let name = match *self {
3018 Self::DEFAULT => Some("DEFAULT"),
3019 _ => None,
3020 };
3021 fmt_enum(fmt, self.0, name)
3022 }
3023}
3024#[doc = "See [XrFaceTrackingDataSource2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackingDataSource2FB)"]
3025#[repr(transparent)]
3026#[derive(Copy, Clone, Eq, PartialEq)]
3027pub struct FaceTrackingDataSource2FB(i32);
3028impl FaceTrackingDataSource2FB {
3029 #[doc = "face tracking uses visual data to estimate expressions. Face tracking may use audio to further improve the quality of face tracking."]
3030 pub const VISUAL: FaceTrackingDataSource2FB = Self(0i32);
3031 #[doc = "face tracking uses audio data to estimate expressions."]
3032 pub const AUDIO: FaceTrackingDataSource2FB = Self(1i32);
3033 pub fn from_raw(x: i32) -> Self {
3034 Self(x)
3035 }
3036 pub fn into_raw(self) -> i32 {
3037 self.0
3038 }
3039}
3040impl fmt::Debug for FaceTrackingDataSource2FB {
3041 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3042 let name = match *self {
3043 Self::VISUAL => Some("VISUAL"),
3044 Self::AUDIO => Some("AUDIO"),
3045 _ => None,
3046 };
3047 fmt_enum(fmt, self.0, name)
3048 }
3049}
3050#[doc = "See [XrFaceConfidence2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceConfidence2FB)"]
3051#[repr(transparent)]
3052#[derive(Copy, Clone, Eq, PartialEq)]
3053pub struct FaceConfidence2FB(i32);
3054impl FaceConfidence2FB {
3055 pub const LOWER_FACE: FaceConfidence2FB = Self(0i32);
3056 pub const UPPER_FACE: FaceConfidence2FB = Self(1i32);
3057 pub const COUNT: FaceConfidence2FB = Self(2i32);
3058 pub fn from_raw(x: i32) -> Self {
3059 Self(x)
3060 }
3061 pub fn into_raw(self) -> i32 {
3062 self.0
3063 }
3064}
3065impl fmt::Debug for FaceConfidence2FB {
3066 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3067 let name = match *self {
3068 Self::LOWER_FACE => Some("LOWER_FACE"),
3069 Self::UPPER_FACE => Some("UPPER_FACE"),
3070 Self::COUNT => Some("COUNT"),
3071 _ => None,
3072 };
3073 fmt_enum(fmt, self.0, name)
3074 }
3075}
3076#[doc = "See [XrBodyJointFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointFB)"]
3077#[repr(transparent)]
3078#[derive(Copy, Clone, Eq, PartialEq)]
3079pub struct BodyJointFB(i32);
3080impl BodyJointFB {
3081 pub const ROOT: BodyJointFB = Self(0i32);
3082 pub const HIPS: BodyJointFB = Self(1i32);
3083 pub const SPINE_LOWER: BodyJointFB = Self(2i32);
3084 pub const SPINE_MIDDLE: BodyJointFB = Self(3i32);
3085 pub const SPINE_UPPER: BodyJointFB = Self(4i32);
3086 pub const CHEST: BodyJointFB = Self(5i32);
3087 pub const NECK: BodyJointFB = Self(6i32);
3088 pub const HEAD: BodyJointFB = Self(7i32);
3089 pub const LEFT_SHOULDER: BodyJointFB = Self(8i32);
3090 pub const LEFT_SCAPULA: BodyJointFB = Self(9i32);
3091 pub const LEFT_ARM_UPPER: BodyJointFB = Self(10i32);
3092 pub const LEFT_ARM_LOWER: BodyJointFB = Self(11i32);
3093 pub const LEFT_HAND_WRIST_TWIST: BodyJointFB = Self(12i32);
3094 pub const RIGHT_SHOULDER: BodyJointFB = Self(13i32);
3095 pub const RIGHT_SCAPULA: BodyJointFB = Self(14i32);
3096 pub const RIGHT_ARM_UPPER: BodyJointFB = Self(15i32);
3097 pub const RIGHT_ARM_LOWER: BodyJointFB = Self(16i32);
3098 pub const RIGHT_HAND_WRIST_TWIST: BodyJointFB = Self(17i32);
3099 pub const LEFT_HAND_PALM: BodyJointFB = Self(18i32);
3100 pub const LEFT_HAND_WRIST: BodyJointFB = Self(19i32);
3101 pub const LEFT_HAND_THUMB_METACARPAL: BodyJointFB = Self(20i32);
3102 pub const LEFT_HAND_THUMB_PROXIMAL: BodyJointFB = Self(21i32);
3103 pub const LEFT_HAND_THUMB_DISTAL: BodyJointFB = Self(22i32);
3104 pub const LEFT_HAND_THUMB_TIP: BodyJointFB = Self(23i32);
3105 pub const LEFT_HAND_INDEX_METACARPAL: BodyJointFB = Self(24i32);
3106 pub const LEFT_HAND_INDEX_PROXIMAL: BodyJointFB = Self(25i32);
3107 pub const LEFT_HAND_INDEX_INTERMEDIATE: BodyJointFB = Self(26i32);
3108 pub const LEFT_HAND_INDEX_DISTAL: BodyJointFB = Self(27i32);
3109 pub const LEFT_HAND_INDEX_TIP: BodyJointFB = Self(28i32);
3110 pub const LEFT_HAND_MIDDLE_METACARPAL: BodyJointFB = Self(29i32);
3111 pub const LEFT_HAND_MIDDLE_PROXIMAL: BodyJointFB = Self(30i32);
3112 pub const LEFT_HAND_MIDDLE_INTERMEDIATE: BodyJointFB = Self(31i32);
3113 pub const LEFT_HAND_MIDDLE_DISTAL: BodyJointFB = Self(32i32);
3114 pub const LEFT_HAND_MIDDLE_TIP: BodyJointFB = Self(33i32);
3115 pub const LEFT_HAND_RING_METACARPAL: BodyJointFB = Self(34i32);
3116 pub const LEFT_HAND_RING_PROXIMAL: BodyJointFB = Self(35i32);
3117 pub const LEFT_HAND_RING_INTERMEDIATE: BodyJointFB = Self(36i32);
3118 pub const LEFT_HAND_RING_DISTAL: BodyJointFB = Self(37i32);
3119 pub const LEFT_HAND_RING_TIP: BodyJointFB = Self(38i32);
3120 pub const LEFT_HAND_LITTLE_METACARPAL: BodyJointFB = Self(39i32);
3121 pub const LEFT_HAND_LITTLE_PROXIMAL: BodyJointFB = Self(40i32);
3122 pub const LEFT_HAND_LITTLE_INTERMEDIATE: BodyJointFB = Self(41i32);
3123 pub const LEFT_HAND_LITTLE_DISTAL: BodyJointFB = Self(42i32);
3124 pub const LEFT_HAND_LITTLE_TIP: BodyJointFB = Self(43i32);
3125 pub const RIGHT_HAND_PALM: BodyJointFB = Self(44i32);
3126 pub const RIGHT_HAND_WRIST: BodyJointFB = Self(45i32);
3127 pub const RIGHT_HAND_THUMB_METACARPAL: BodyJointFB = Self(46i32);
3128 pub const RIGHT_HAND_THUMB_PROXIMAL: BodyJointFB = Self(47i32);
3129 pub const RIGHT_HAND_THUMB_DISTAL: BodyJointFB = Self(48i32);
3130 pub const RIGHT_HAND_THUMB_TIP: BodyJointFB = Self(49i32);
3131 pub const RIGHT_HAND_INDEX_METACARPAL: BodyJointFB = Self(50i32);
3132 pub const RIGHT_HAND_INDEX_PROXIMAL: BodyJointFB = Self(51i32);
3133 pub const RIGHT_HAND_INDEX_INTERMEDIATE: BodyJointFB = Self(52i32);
3134 pub const RIGHT_HAND_INDEX_DISTAL: BodyJointFB = Self(53i32);
3135 pub const RIGHT_HAND_INDEX_TIP: BodyJointFB = Self(54i32);
3136 pub const RIGHT_HAND_MIDDLE_METACARPAL: BodyJointFB = Self(55i32);
3137 pub const RIGHT_HAND_MIDDLE_PROXIMAL: BodyJointFB = Self(56i32);
3138 pub const RIGHT_HAND_MIDDLE_INTERMEDIATE: BodyJointFB = Self(57i32);
3139 pub const RIGHT_HAND_MIDDLE_DISTAL: BodyJointFB = Self(58i32);
3140 pub const RIGHT_HAND_MIDDLE_TIP: BodyJointFB = Self(59i32);
3141 pub const RIGHT_HAND_RING_METACARPAL: BodyJointFB = Self(60i32);
3142 pub const RIGHT_HAND_RING_PROXIMAL: BodyJointFB = Self(61i32);
3143 pub const RIGHT_HAND_RING_INTERMEDIATE: BodyJointFB = Self(62i32);
3144 pub const RIGHT_HAND_RING_DISTAL: BodyJointFB = Self(63i32);
3145 pub const RIGHT_HAND_RING_TIP: BodyJointFB = Self(64i32);
3146 pub const RIGHT_HAND_LITTLE_METACARPAL: BodyJointFB = Self(65i32);
3147 pub const RIGHT_HAND_LITTLE_PROXIMAL: BodyJointFB = Self(66i32);
3148 pub const RIGHT_HAND_LITTLE_INTERMEDIATE: BodyJointFB = Self(67i32);
3149 pub const RIGHT_HAND_LITTLE_DISTAL: BodyJointFB = Self(68i32);
3150 pub const RIGHT_HAND_LITTLE_TIP: BodyJointFB = Self(69i32);
3151 pub const COUNT: BodyJointFB = Self(70i32);
3152 pub const NONE: BodyJointFB = Self(-1i32);
3153 pub fn from_raw(x: i32) -> Self {
3154 Self(x)
3155 }
3156 pub fn into_raw(self) -> i32 {
3157 self.0
3158 }
3159}
3160impl fmt::Debug for BodyJointFB {
3161 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3162 let name = match *self {
3163 Self::ROOT => Some("ROOT"),
3164 Self::HIPS => Some("HIPS"),
3165 Self::SPINE_LOWER => Some("SPINE_LOWER"),
3166 Self::SPINE_MIDDLE => Some("SPINE_MIDDLE"),
3167 Self::SPINE_UPPER => Some("SPINE_UPPER"),
3168 Self::CHEST => Some("CHEST"),
3169 Self::NECK => Some("NECK"),
3170 Self::HEAD => Some("HEAD"),
3171 Self::LEFT_SHOULDER => Some("LEFT_SHOULDER"),
3172 Self::LEFT_SCAPULA => Some("LEFT_SCAPULA"),
3173 Self::LEFT_ARM_UPPER => Some("LEFT_ARM_UPPER"),
3174 Self::LEFT_ARM_LOWER => Some("LEFT_ARM_LOWER"),
3175 Self::LEFT_HAND_WRIST_TWIST => Some("LEFT_HAND_WRIST_TWIST"),
3176 Self::RIGHT_SHOULDER => Some("RIGHT_SHOULDER"),
3177 Self::RIGHT_SCAPULA => Some("RIGHT_SCAPULA"),
3178 Self::RIGHT_ARM_UPPER => Some("RIGHT_ARM_UPPER"),
3179 Self::RIGHT_ARM_LOWER => Some("RIGHT_ARM_LOWER"),
3180 Self::RIGHT_HAND_WRIST_TWIST => Some("RIGHT_HAND_WRIST_TWIST"),
3181 Self::LEFT_HAND_PALM => Some("LEFT_HAND_PALM"),
3182 Self::LEFT_HAND_WRIST => Some("LEFT_HAND_WRIST"),
3183 Self::LEFT_HAND_THUMB_METACARPAL => Some("LEFT_HAND_THUMB_METACARPAL"),
3184 Self::LEFT_HAND_THUMB_PROXIMAL => Some("LEFT_HAND_THUMB_PROXIMAL"),
3185 Self::LEFT_HAND_THUMB_DISTAL => Some("LEFT_HAND_THUMB_DISTAL"),
3186 Self::LEFT_HAND_THUMB_TIP => Some("LEFT_HAND_THUMB_TIP"),
3187 Self::LEFT_HAND_INDEX_METACARPAL => Some("LEFT_HAND_INDEX_METACARPAL"),
3188 Self::LEFT_HAND_INDEX_PROXIMAL => Some("LEFT_HAND_INDEX_PROXIMAL"),
3189 Self::LEFT_HAND_INDEX_INTERMEDIATE => Some("LEFT_HAND_INDEX_INTERMEDIATE"),
3190 Self::LEFT_HAND_INDEX_DISTAL => Some("LEFT_HAND_INDEX_DISTAL"),
3191 Self::LEFT_HAND_INDEX_TIP => Some("LEFT_HAND_INDEX_TIP"),
3192 Self::LEFT_HAND_MIDDLE_METACARPAL => Some("LEFT_HAND_MIDDLE_METACARPAL"),
3193 Self::LEFT_HAND_MIDDLE_PROXIMAL => Some("LEFT_HAND_MIDDLE_PROXIMAL"),
3194 Self::LEFT_HAND_MIDDLE_INTERMEDIATE => Some("LEFT_HAND_MIDDLE_INTERMEDIATE"),
3195 Self::LEFT_HAND_MIDDLE_DISTAL => Some("LEFT_HAND_MIDDLE_DISTAL"),
3196 Self::LEFT_HAND_MIDDLE_TIP => Some("LEFT_HAND_MIDDLE_TIP"),
3197 Self::LEFT_HAND_RING_METACARPAL => Some("LEFT_HAND_RING_METACARPAL"),
3198 Self::LEFT_HAND_RING_PROXIMAL => Some("LEFT_HAND_RING_PROXIMAL"),
3199 Self::LEFT_HAND_RING_INTERMEDIATE => Some("LEFT_HAND_RING_INTERMEDIATE"),
3200 Self::LEFT_HAND_RING_DISTAL => Some("LEFT_HAND_RING_DISTAL"),
3201 Self::LEFT_HAND_RING_TIP => Some("LEFT_HAND_RING_TIP"),
3202 Self::LEFT_HAND_LITTLE_METACARPAL => Some("LEFT_HAND_LITTLE_METACARPAL"),
3203 Self::LEFT_HAND_LITTLE_PROXIMAL => Some("LEFT_HAND_LITTLE_PROXIMAL"),
3204 Self::LEFT_HAND_LITTLE_INTERMEDIATE => Some("LEFT_HAND_LITTLE_INTERMEDIATE"),
3205 Self::LEFT_HAND_LITTLE_DISTAL => Some("LEFT_HAND_LITTLE_DISTAL"),
3206 Self::LEFT_HAND_LITTLE_TIP => Some("LEFT_HAND_LITTLE_TIP"),
3207 Self::RIGHT_HAND_PALM => Some("RIGHT_HAND_PALM"),
3208 Self::RIGHT_HAND_WRIST => Some("RIGHT_HAND_WRIST"),
3209 Self::RIGHT_HAND_THUMB_METACARPAL => Some("RIGHT_HAND_THUMB_METACARPAL"),
3210 Self::RIGHT_HAND_THUMB_PROXIMAL => Some("RIGHT_HAND_THUMB_PROXIMAL"),
3211 Self::RIGHT_HAND_THUMB_DISTAL => Some("RIGHT_HAND_THUMB_DISTAL"),
3212 Self::RIGHT_HAND_THUMB_TIP => Some("RIGHT_HAND_THUMB_TIP"),
3213 Self::RIGHT_HAND_INDEX_METACARPAL => Some("RIGHT_HAND_INDEX_METACARPAL"),
3214 Self::RIGHT_HAND_INDEX_PROXIMAL => Some("RIGHT_HAND_INDEX_PROXIMAL"),
3215 Self::RIGHT_HAND_INDEX_INTERMEDIATE => Some("RIGHT_HAND_INDEX_INTERMEDIATE"),
3216 Self::RIGHT_HAND_INDEX_DISTAL => Some("RIGHT_HAND_INDEX_DISTAL"),
3217 Self::RIGHT_HAND_INDEX_TIP => Some("RIGHT_HAND_INDEX_TIP"),
3218 Self::RIGHT_HAND_MIDDLE_METACARPAL => Some("RIGHT_HAND_MIDDLE_METACARPAL"),
3219 Self::RIGHT_HAND_MIDDLE_PROXIMAL => Some("RIGHT_HAND_MIDDLE_PROXIMAL"),
3220 Self::RIGHT_HAND_MIDDLE_INTERMEDIATE => Some("RIGHT_HAND_MIDDLE_INTERMEDIATE"),
3221 Self::RIGHT_HAND_MIDDLE_DISTAL => Some("RIGHT_HAND_MIDDLE_DISTAL"),
3222 Self::RIGHT_HAND_MIDDLE_TIP => Some("RIGHT_HAND_MIDDLE_TIP"),
3223 Self::RIGHT_HAND_RING_METACARPAL => Some("RIGHT_HAND_RING_METACARPAL"),
3224 Self::RIGHT_HAND_RING_PROXIMAL => Some("RIGHT_HAND_RING_PROXIMAL"),
3225 Self::RIGHT_HAND_RING_INTERMEDIATE => Some("RIGHT_HAND_RING_INTERMEDIATE"),
3226 Self::RIGHT_HAND_RING_DISTAL => Some("RIGHT_HAND_RING_DISTAL"),
3227 Self::RIGHT_HAND_RING_TIP => Some("RIGHT_HAND_RING_TIP"),
3228 Self::RIGHT_HAND_LITTLE_METACARPAL => Some("RIGHT_HAND_LITTLE_METACARPAL"),
3229 Self::RIGHT_HAND_LITTLE_PROXIMAL => Some("RIGHT_HAND_LITTLE_PROXIMAL"),
3230 Self::RIGHT_HAND_LITTLE_INTERMEDIATE => Some("RIGHT_HAND_LITTLE_INTERMEDIATE"),
3231 Self::RIGHT_HAND_LITTLE_DISTAL => Some("RIGHT_HAND_LITTLE_DISTAL"),
3232 Self::RIGHT_HAND_LITTLE_TIP => Some("RIGHT_HAND_LITTLE_TIP"),
3233 Self::COUNT => Some("COUNT"),
3234 Self::NONE => Some("NONE"),
3235 _ => None,
3236 };
3237 fmt_enum(fmt, self.0, name)
3238 }
3239}
3240#[doc = "Describes the set of body joints to track when creating an XrBodyTrackerFB. - see [XrBodyJointSetFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointSetFB)"]
3241#[repr(transparent)]
3242#[derive(Copy, Clone, Eq, PartialEq)]
3243pub struct BodyJointSetFB(i32);
3244impl BodyJointSetFB {
3245 #[doc = "Indicates that the created XrBodyTrackerFB tracks the set of body joints described by XrBodyJointFB enum, i.e. the xrLocateBodyJointsFB function returns an array of joint locations with the count of XR_BODY_JOINT_COUNT_FB and can be indexed using XrBodyJointFB."]
3246 pub const DEFAULT: BodyJointSetFB = Self(0i32);
3247 pub fn from_raw(x: i32) -> Self {
3248 Self(x)
3249 }
3250 pub fn into_raw(self) -> i32 {
3251 self.0
3252 }
3253}
3254impl fmt::Debug for BodyJointSetFB {
3255 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3256 let name = match *self {
3257 Self::DEFAULT => Some("DEFAULT"),
3258 _ => None,
3259 };
3260 fmt_enum(fmt, self.0, name)
3261 }
3262}
3263#[doc = "See [XrEyePositionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyePositionFB)"]
3264#[repr(transparent)]
3265#[derive(Copy, Clone, Eq, PartialEq)]
3266pub struct EyePositionFB(i32);
3267impl EyePositionFB {
3268 #[doc = "Specifies the position of the left eye."]
3269 pub const LEFT: EyePositionFB = Self(0i32);
3270 #[doc = "Specifies the position of the right eye."]
3271 pub const RIGHT: EyePositionFB = Self(1i32);
3272 pub const COUNT: EyePositionFB = Self(2i32);
3273 pub fn from_raw(x: i32) -> Self {
3274 Self(x)
3275 }
3276 pub fn into_raw(self) -> i32 {
3277 self.0
3278 }
3279}
3280impl fmt::Debug for EyePositionFB {
3281 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3282 let name = match *self {
3283 Self::LEFT => Some("LEFT"),
3284 Self::RIGHT => Some("RIGHT"),
3285 Self::COUNT => Some("COUNT"),
3286 _ => None,
3287 };
3288 fmt_enum(fmt, self.0, name)
3289 }
3290}
3291#[doc = "See [XrTrackingOptimizationSettingsDomainQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTrackingOptimizationSettingsDomainQCOM)"]
3292#[repr(transparent)]
3293#[derive(Copy, Clone, Eq, PartialEq)]
3294pub struct TrackingOptimizationSettingsDomainQCOM(i32);
3295impl TrackingOptimizationSettingsDomainQCOM {
3296 #[doc = "Setting applies to all QCOM tracking extensions."]
3297 pub const ALL: TrackingOptimizationSettingsDomainQCOM = Self(1i32);
3298 pub fn from_raw(x: i32) -> Self {
3299 Self(x)
3300 }
3301 pub fn into_raw(self) -> i32 {
3302 self.0
3303 }
3304}
3305impl fmt::Debug for TrackingOptimizationSettingsDomainQCOM {
3306 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3307 let name = match *self {
3308 Self::ALL => Some("ALL"),
3309 _ => None,
3310 };
3311 fmt_enum(fmt, self.0, name)
3312 }
3313}
3314#[doc = "See [XrTrackingOptimizationSettingsHintQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTrackingOptimizationSettingsHintQCOM)"]
3315#[repr(transparent)]
3316#[derive(Copy, Clone, Eq, PartialEq)]
3317pub struct TrackingOptimizationSettingsHintQCOM(i32);
3318impl TrackingOptimizationSettingsHintQCOM {
3319 #[doc = "Used by the application to indicate that it does not have a preference to optimize for. The run-time is understood to choose a balanced approach."]
3320 pub const NONE: TrackingOptimizationSettingsHintQCOM = Self(0i32);
3321 #[doc = "Used by the application to indicate that it prefers tracking to be optimized for long range, possibly at the expense of competing interests."]
3322 pub const LONG_RANGE_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(1i32);
3323 #[doc = "Used by the application to indicate that it prefers tracking to be optimized for close range, possibly at the expense of competing interests."]
3324 pub const CLOSE_RANGE_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(2i32);
3325 #[doc = "Used by the application to indicate that it prefers tracking to be optimized for low power consumption, possibly at the expense of competing interests."]
3326 pub const LOW_POWER_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(3i32);
3327 #[doc = "Used by the application to indicate that it prefers tracking to be optimized for increased tracking performance, possibly at the cost of increased power consumption."]
3328 pub const HIGH_POWER_PRIORIZATION: TrackingOptimizationSettingsHintQCOM = Self(4i32);
3329 pub fn from_raw(x: i32) -> Self {
3330 Self(x)
3331 }
3332 pub fn into_raw(self) -> i32 {
3333 self.0
3334 }
3335}
3336impl fmt::Debug for TrackingOptimizationSettingsHintQCOM {
3337 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3338 let name = match *self {
3339 Self::NONE => Some("NONE"),
3340 Self::LONG_RANGE_PRIORIZATION => Some("LONG_RANGE_PRIORIZATION"),
3341 Self::CLOSE_RANGE_PRIORIZATION => Some("CLOSE_RANGE_PRIORIZATION"),
3342 Self::LOW_POWER_PRIORIZATION => Some("LOW_POWER_PRIORIZATION"),
3343 Self::HIGH_POWER_PRIORIZATION => Some("HIGH_POWER_PRIORIZATION"),
3344 _ => None,
3345 };
3346 fmt_enum(fmt, self.0, name)
3347 }
3348}
3349#[doc = "See [XrForceFeedbackCurlLocationMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlLocationMNDX)"]
3350#[repr(transparent)]
3351#[derive(Copy, Clone, Eq, PartialEq)]
3352pub struct ForceFeedbackCurlLocationMNDX(i32);
3353impl ForceFeedbackCurlLocationMNDX {
3354 #[doc = "force feedback for thumb curl"]
3355 pub const THUMB_CURL: ForceFeedbackCurlLocationMNDX = Self(0i32);
3356 #[doc = "force feedback for index finger curl"]
3357 pub const INDEX_CURL: ForceFeedbackCurlLocationMNDX = Self(1i32);
3358 #[doc = "force feedback for middle finger curl"]
3359 pub const MIDDLE_CURL: ForceFeedbackCurlLocationMNDX = Self(2i32);
3360 #[doc = "force feedback for ring finger curl"]
3361 pub const RING_CURL: ForceFeedbackCurlLocationMNDX = Self(3i32);
3362 #[doc = "force feedback for little finger curl"]
3363 pub const LITTLE_CURL: ForceFeedbackCurlLocationMNDX = Self(4i32);
3364 pub fn from_raw(x: i32) -> Self {
3365 Self(x)
3366 }
3367 pub fn into_raw(self) -> i32 {
3368 self.0
3369 }
3370}
3371impl fmt::Debug for ForceFeedbackCurlLocationMNDX {
3372 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3373 let name = match *self {
3374 Self::THUMB_CURL => Some("THUMB_CURL"),
3375 Self::INDEX_CURL => Some("INDEX_CURL"),
3376 Self::MIDDLE_CURL => Some("MIDDLE_CURL"),
3377 Self::RING_CURL => Some("RING_CURL"),
3378 Self::LITTLE_CURL => Some("LITTLE_CURL"),
3379 _ => None,
3380 };
3381 fmt_enum(fmt, self.0, name)
3382 }
3383}
3384#[doc = "See [XrPlaneDetectionStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectionStateEXT)"]
3385#[repr(transparent)]
3386#[derive(Copy, Clone, Eq, PartialEq)]
3387pub struct PlaneDetectionStateEXT(i32);
3388impl PlaneDetectionStateEXT {
3389 pub const NONE: PlaneDetectionStateEXT = Self(0i32);
3390 pub const PENDING: PlaneDetectionStateEXT = Self(1i32);
3391 pub const DONE: PlaneDetectionStateEXT = Self(2i32);
3392 pub const ERROR: PlaneDetectionStateEXT = Self(3i32);
3393 pub const FATAL: PlaneDetectionStateEXT = Self(4i32);
3394 pub fn from_raw(x: i32) -> Self {
3395 Self(x)
3396 }
3397 pub fn into_raw(self) -> i32 {
3398 self.0
3399 }
3400}
3401impl fmt::Debug for PlaneDetectionStateEXT {
3402 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3403 let name = match *self {
3404 Self::NONE => Some("NONE"),
3405 Self::PENDING => Some("PENDING"),
3406 Self::DONE => Some("DONE"),
3407 Self::ERROR => Some("ERROR"),
3408 Self::FATAL => Some("FATAL"),
3409 _ => None,
3410 };
3411 fmt_enum(fmt, self.0, name)
3412 }
3413}
3414#[doc = "See [XrPlaneDetectorOrientationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorOrientationEXT)"]
3415#[repr(transparent)]
3416#[derive(Copy, Clone, Eq, PartialEq)]
3417pub struct PlaneDetectorOrientationEXT(i32);
3418impl PlaneDetectorOrientationEXT {
3419 #[doc = "The detected plane is horizontal and faces upward (e.g. floor)."]
3420 pub const HORIZONTAL_UPWARD: PlaneDetectorOrientationEXT = Self(0i32);
3421 #[doc = "The detected plane is horizontal and faces downward (e.g. ceiling)."]
3422 pub const HORIZONTAL_DOWNWARD: PlaneDetectorOrientationEXT = Self(1i32);
3423 #[doc = "The detected plane is vertical (e.g. wall)."]
3424 pub const VERTICAL: PlaneDetectorOrientationEXT = Self(2i32);
3425 #[doc = "The detected plane has an arbitrary, non-vertical and non-horizontal orientation."]
3426 pub const ARBITRARY: PlaneDetectorOrientationEXT = Self(3i32);
3427 pub fn from_raw(x: i32) -> Self {
3428 Self(x)
3429 }
3430 pub fn into_raw(self) -> i32 {
3431 self.0
3432 }
3433}
3434impl fmt::Debug for PlaneDetectorOrientationEXT {
3435 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3436 let name = match *self {
3437 Self::HORIZONTAL_UPWARD => Some("HORIZONTAL_UPWARD"),
3438 Self::HORIZONTAL_DOWNWARD => Some("HORIZONTAL_DOWNWARD"),
3439 Self::VERTICAL => Some("VERTICAL"),
3440 Self::ARBITRARY => Some("ARBITRARY"),
3441 _ => None,
3442 };
3443 fmt_enum(fmt, self.0, name)
3444 }
3445}
3446#[doc = "See [XrPlaneDetectorSemanticTypeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorSemanticTypeEXT)"]
3447#[repr(transparent)]
3448#[derive(Copy, Clone, Eq, PartialEq)]
3449pub struct PlaneDetectorSemanticTypeEXT(i32);
3450impl PlaneDetectorSemanticTypeEXT {
3451 #[doc = "The runtime was unable to classify this plane."]
3452 pub const UNDEFINED: PlaneDetectorSemanticTypeEXT = Self(0i32);
3453 #[doc = "The detected plane is a ceiling."]
3454 pub const CEILING: PlaneDetectorSemanticTypeEXT = Self(1i32);
3455 #[doc = "The detected plane is a floor."]
3456 pub const FLOOR: PlaneDetectorSemanticTypeEXT = Self(2i32);
3457 #[doc = "The detected plane is a wall."]
3458 pub const WALL: PlaneDetectorSemanticTypeEXT = Self(3i32);
3459 #[doc = "The detected plane is a platform, like a table."]
3460 pub const PLATFORM: PlaneDetectorSemanticTypeEXT = Self(4i32);
3461 pub fn from_raw(x: i32) -> Self {
3462 Self(x)
3463 }
3464 pub fn into_raw(self) -> i32 {
3465 self.0
3466 }
3467}
3468impl fmt::Debug for PlaneDetectorSemanticTypeEXT {
3469 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3470 let name = match *self {
3471 Self::UNDEFINED => Some("UNDEFINED"),
3472 Self::CEILING => Some("CEILING"),
3473 Self::FLOOR => Some("FLOOR"),
3474 Self::WALL => Some("WALL"),
3475 Self::PLATFORM => Some("PLATFORM"),
3476 _ => None,
3477 };
3478 fmt_enum(fmt, self.0, name)
3479 }
3480}
3481#[doc = "See [XrVirtualKeyboardLocationTypeMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardLocationTypeMETA)"]
3482#[repr(transparent)]
3483#[derive(Copy, Clone, Eq, PartialEq)]
3484pub struct VirtualKeyboardLocationTypeMETA(i32);
3485impl VirtualKeyboardLocationTypeMETA {
3486 #[doc = "Indicates that the application will provide the position and scale of the keyboard."]
3487 pub const CUSTOM: VirtualKeyboardLocationTypeMETA = Self(0i32);
3488 #[doc = "Indicates that the runtime will set the position and scale for far field keyboard."]
3489 pub const FAR: VirtualKeyboardLocationTypeMETA = Self(1i32);
3490 #[doc = "Indicates that the runtime will set the position and scale for direct interaction keyboard."]
3491 pub const DIRECT: VirtualKeyboardLocationTypeMETA = Self(2i32);
3492 pub fn from_raw(x: i32) -> Self {
3493 Self(x)
3494 }
3495 pub fn into_raw(self) -> i32 {
3496 self.0
3497 }
3498}
3499impl fmt::Debug for VirtualKeyboardLocationTypeMETA {
3500 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3501 let name = match *self {
3502 Self::CUSTOM => Some("CUSTOM"),
3503 Self::FAR => Some("FAR"),
3504 Self::DIRECT => Some("DIRECT"),
3505 _ => None,
3506 };
3507 fmt_enum(fmt, self.0, name)
3508 }
3509}
3510#[doc = "See [XrVirtualKeyboardInputSourceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputSourceMETA)"]
3511#[repr(transparent)]
3512#[derive(Copy, Clone, Eq, PartialEq)]
3513pub struct VirtualKeyboardInputSourceMETA(i32);
3514impl VirtualKeyboardInputSourceMETA {
3515 #[doc = "Left controller ray."]
3516 pub const CONTROLLER_RAY_LEFT: VirtualKeyboardInputSourceMETA = Self(1i32);
3517 #[doc = "Right controller ray."]
3518 pub const CONTROLLER_RAY_RIGHT: VirtualKeyboardInputSourceMETA = Self(2i32);
3519 #[doc = "Left hand ray."]
3520 pub const HAND_RAY_LEFT: VirtualKeyboardInputSourceMETA = Self(3i32);
3521 #[doc = "Right hand ray."]
3522 pub const HAND_RAY_RIGHT: VirtualKeyboardInputSourceMETA = Self(4i32);
3523 #[doc = "Left controller direct touch."]
3524 pub const CONTROLLER_DIRECT_LEFT: VirtualKeyboardInputSourceMETA = Self(5i32);
3525 #[doc = "Right controller direct touch."]
3526 pub const CONTROLLER_DIRECT_RIGHT: VirtualKeyboardInputSourceMETA = Self(6i32);
3527 #[doc = "Left hand direct touch."]
3528 pub const HAND_DIRECT_INDEX_TIP_LEFT: VirtualKeyboardInputSourceMETA = Self(7i32);
3529 #[doc = "Right hand direct touch."]
3530 pub const HAND_DIRECT_INDEX_TIP_RIGHT: VirtualKeyboardInputSourceMETA = Self(8i32);
3531 pub fn from_raw(x: i32) -> Self {
3532 Self(x)
3533 }
3534 pub fn into_raw(self) -> i32 {
3535 self.0
3536 }
3537}
3538impl fmt::Debug for VirtualKeyboardInputSourceMETA {
3539 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3540 let name = match *self {
3541 Self::CONTROLLER_RAY_LEFT => Some("CONTROLLER_RAY_LEFT"),
3542 Self::CONTROLLER_RAY_RIGHT => Some("CONTROLLER_RAY_RIGHT"),
3543 Self::HAND_RAY_LEFT => Some("HAND_RAY_LEFT"),
3544 Self::HAND_RAY_RIGHT => Some("HAND_RAY_RIGHT"),
3545 Self::CONTROLLER_DIRECT_LEFT => Some("CONTROLLER_DIRECT_LEFT"),
3546 Self::CONTROLLER_DIRECT_RIGHT => Some("CONTROLLER_DIRECT_RIGHT"),
3547 Self::HAND_DIRECT_INDEX_TIP_LEFT => Some("HAND_DIRECT_INDEX_TIP_LEFT"),
3548 Self::HAND_DIRECT_INDEX_TIP_RIGHT => Some("HAND_DIRECT_INDEX_TIP_RIGHT"),
3549 _ => None,
3550 };
3551 fmt_enum(fmt, self.0, name)
3552 }
3553}
3554#[doc = "See [XrHeadsetFitStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHeadsetFitStatusML)"]
3555#[repr(transparent)]
3556#[derive(Copy, Clone, Eq, PartialEq)]
3557pub struct HeadsetFitStatusML(i32);
3558impl HeadsetFitStatusML {
3559 #[doc = "Headset fit status not available for unknown reason."]
3560 pub const UNKNOWN: HeadsetFitStatusML = Self(0i32);
3561 #[doc = "Headset not worn."]
3562 pub const NOT_WORN: HeadsetFitStatusML = Self(1i32);
3563 #[doc = "Good fit."]
3564 pub const GOOD_FIT: HeadsetFitStatusML = Self(2i32);
3565 #[doc = "Bad fit."]
3566 pub const BAD_FIT: HeadsetFitStatusML = Self(3i32);
3567 pub fn from_raw(x: i32) -> Self {
3568 Self(x)
3569 }
3570 pub fn into_raw(self) -> i32 {
3571 self.0
3572 }
3573}
3574impl fmt::Debug for HeadsetFitStatusML {
3575 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3576 let name = match *self {
3577 Self::UNKNOWN => Some("UNKNOWN"),
3578 Self::NOT_WORN => Some("NOT_WORN"),
3579 Self::GOOD_FIT => Some("GOOD_FIT"),
3580 Self::BAD_FIT => Some("BAD_FIT"),
3581 _ => None,
3582 };
3583 fmt_enum(fmt, self.0, name)
3584 }
3585}
3586#[doc = "See [XrEyeCalibrationStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeCalibrationStatusML)"]
3587#[repr(transparent)]
3588#[derive(Copy, Clone, Eq, PartialEq)]
3589pub struct EyeCalibrationStatusML(i32);
3590impl EyeCalibrationStatusML {
3591 #[doc = "Eye calibration status not available for unknown reason."]
3592 pub const UNKNOWN: EyeCalibrationStatusML = Self(0i32);
3593 #[doc = "User has not performed the eye calibration step. Use system provided app to perform eye calibration."]
3594 pub const NONE: EyeCalibrationStatusML = Self(1i32);
3595 #[doc = "Eye calibration is of lower accuracy."]
3596 pub const COARSE: EyeCalibrationStatusML = Self(2i32);
3597 #[doc = "Eye calibration is of higher accuracy."]
3598 pub const FINE: EyeCalibrationStatusML = Self(3i32);
3599 pub fn from_raw(x: i32) -> Self {
3600 Self(x)
3601 }
3602 pub fn into_raw(self) -> i32 {
3603 self.0
3604 }
3605}
3606impl fmt::Debug for EyeCalibrationStatusML {
3607 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3608 let name = match *self {
3609 Self::UNKNOWN => Some("UNKNOWN"),
3610 Self::NONE => Some("NONE"),
3611 Self::COARSE => Some("COARSE"),
3612 Self::FINE => Some("FINE"),
3613 _ => None,
3614 };
3615 fmt_enum(fmt, self.0, name)
3616 }
3617}
3618#[doc = "See [XrLocalizationMapStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapStateML)"]
3619#[repr(transparent)]
3620#[derive(Copy, Clone, Eq, PartialEq)]
3621pub struct LocalizationMapStateML(i32);
3622impl LocalizationMapStateML {
3623 #[doc = "The system is not localized into a map. Features like Spatial Anchors relying on localization will not work."]
3624 pub const NOT_LOCALIZED: LocalizationMapStateML = Self(0i32);
3625 #[doc = "The system is localized into a map."]
3626 pub const LOCALIZED: LocalizationMapStateML = Self(1i32);
3627 #[doc = "The system is localizing into a map."]
3628 pub const LOCALIZATION_PENDING: LocalizationMapStateML = Self(2i32);
3629 #[doc = "Initial localization failed, the system will retry localization."]
3630 pub const LOCALIZATION_SLEEPING_BEFORE_RETRY: LocalizationMapStateML = Self(3i32);
3631 pub fn from_raw(x: i32) -> Self {
3632 Self(x)
3633 }
3634 pub fn into_raw(self) -> i32 {
3635 self.0
3636 }
3637}
3638impl fmt::Debug for LocalizationMapStateML {
3639 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3640 let name = match *self {
3641 Self::NOT_LOCALIZED => Some("NOT_LOCALIZED"),
3642 Self::LOCALIZED => Some("LOCALIZED"),
3643 Self::LOCALIZATION_PENDING => Some("LOCALIZATION_PENDING"),
3644 Self::LOCALIZATION_SLEEPING_BEFORE_RETRY => Some("LOCALIZATION_SLEEPING_BEFORE_RETRY"),
3645 _ => None,
3646 };
3647 fmt_enum(fmt, self.0, name)
3648 }
3649}
3650#[doc = "See [XrLocalizationMapTypeML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapTypeML)"]
3651#[repr(transparent)]
3652#[derive(Copy, Clone, Eq, PartialEq)]
3653pub struct LocalizationMapTypeML(i32);
3654impl LocalizationMapTypeML {
3655 #[doc = "The system is localized into an On-Device map, published anchors are not shared between different devices."]
3656 pub const ON_DEVICE: LocalizationMapTypeML = Self(0i32);
3657 #[doc = "The system is localized into a Cloud Map, anchors are shared per cloud account settings."]
3658 pub const CLOUD: LocalizationMapTypeML = Self(1i32);
3659 pub fn from_raw(x: i32) -> Self {
3660 Self(x)
3661 }
3662 pub fn into_raw(self) -> i32 {
3663 self.0
3664 }
3665}
3666impl fmt::Debug for LocalizationMapTypeML {
3667 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3668 let name = match *self {
3669 Self::ON_DEVICE => Some("ON_DEVICE"),
3670 Self::CLOUD => Some("CLOUD"),
3671 _ => None,
3672 };
3673 fmt_enum(fmt, self.0, name)
3674 }
3675}
3676#[doc = "See [XrLocalizationMapConfidenceML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapConfidenceML)"]
3677#[repr(transparent)]
3678#[derive(Copy, Clone, Eq, PartialEq)]
3679pub struct LocalizationMapConfidenceML(i32);
3680impl LocalizationMapConfidenceML {
3681 #[doc = "The localization map has poor confidence, systems relying on the localization map are likely to have poor performance."]
3682 pub const POOR: LocalizationMapConfidenceML = Self(0i32);
3683 #[doc = "The confidence is fair, current environmental conditions may adversely affect localization."]
3684 pub const FAIR: LocalizationMapConfidenceML = Self(1i32);
3685 #[doc = "The confidence is high, persistent content should be stable."]
3686 pub const GOOD: LocalizationMapConfidenceML = Self(2i32);
3687 #[doc = "This is a very high-confidence localization, persistent content will be very stable."]
3688 pub const EXCELLENT: LocalizationMapConfidenceML = Self(3i32);
3689 pub fn from_raw(x: i32) -> Self {
3690 Self(x)
3691 }
3692 pub fn into_raw(self) -> i32 {
3693 self.0
3694 }
3695}
3696impl fmt::Debug for LocalizationMapConfidenceML {
3697 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3698 let name = match *self {
3699 Self::POOR => Some("POOR"),
3700 Self::FAIR => Some("FAIR"),
3701 Self::GOOD => Some("GOOD"),
3702 Self::EXCELLENT => Some("EXCELLENT"),
3703 _ => None,
3704 };
3705 fmt_enum(fmt, self.0, name)
3706 }
3707}
3708#[doc = "See [XrMarkerDetectorProfileML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorProfileML)"]
3709#[repr(transparent)]
3710#[derive(Copy, Clone, Eq, PartialEq)]
3711pub struct MarkerDetectorProfileML(i32);
3712impl MarkerDetectorProfileML {
3713 #[doc = "Tracker profile that covers standard use cases. If this does not suite the needs of the application try the other profiles listed below."]
3714 pub const DEFAULT: MarkerDetectorProfileML = Self(0i32);
3715 #[doc = "Optimized for speed. Use this profile to reduce the compute load and increase detection/tracker speed. This can result in low accuracy poses."]
3716 pub const SPEED: MarkerDetectorProfileML = Self(1i32);
3717 #[doc = "Optimized for accuracy. Use this profile to optimize for accurate marker poses. This can cause increased load on the compute."]
3718 pub const ACCURACY: MarkerDetectorProfileML = Self(2i32);
3719 #[doc = "Optimized for small targets. Use this profile to optimize for markers that are small or for larger markers that need to be detected from afar."]
3720 pub const SMALL_TARGETS: MarkerDetectorProfileML = Self(3i32);
3721 #[doc = "Optimized for FoV. Use this profile to be able to detect markers across a larger FoV. The marker tracker system will attempt to use multiple cameras to detect the markers."]
3722 pub const LARGE_FOV: MarkerDetectorProfileML = Self(4i32);
3723 #[doc = "Custom Tracker Profile. The application can define a custom tracker profile. See XrMarkerDetectorCustomProfileInfoML for more details."]
3724 pub const CUSTOM: MarkerDetectorProfileML = Self(5i32);
3725 pub fn from_raw(x: i32) -> Self {
3726 Self(x)
3727 }
3728 pub fn into_raw(self) -> i32 {
3729 self.0
3730 }
3731}
3732impl fmt::Debug for MarkerDetectorProfileML {
3733 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3734 let name = match *self {
3735 Self::DEFAULT => Some("DEFAULT"),
3736 Self::SPEED => Some("SPEED"),
3737 Self::ACCURACY => Some("ACCURACY"),
3738 Self::SMALL_TARGETS => Some("SMALL_TARGETS"),
3739 Self::LARGE_FOV => Some("LARGE_FOV"),
3740 Self::CUSTOM => Some("CUSTOM"),
3741 _ => None,
3742 };
3743 fmt_enum(fmt, self.0, name)
3744 }
3745}
3746#[doc = "See [XrMarkerTypeML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerTypeML)"]
3747#[repr(transparent)]
3748#[derive(Copy, Clone, Eq, PartialEq)]
3749pub struct MarkerTypeML(i32);
3750impl MarkerTypeML {
3751 #[doc = "Aruco Marker detection and localization. The marker id of the Aruco marker is available via xrGetMarkerNumberML."]
3752 pub const ARUCO: MarkerTypeML = Self(0i32);
3753 #[doc = "AprilTag detection and localization. The marker id of the AprilTags is available via xrGetMarkerNumberML."]
3754 pub const APRIL_TAG: MarkerTypeML = Self(1i32);
3755 #[doc = "QR code detection and localization. The contents of the QR code is available via xrGetMarkerStringML."]
3756 pub const QR: MarkerTypeML = Self(2i32);
3757 #[doc = "EAN-13, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
3758 pub const EAN_13: MarkerTypeML = Self(3i32);
3759 #[doc = "UPC-A, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
3760 pub const UPC_A: MarkerTypeML = Self(4i32);
3761 #[doc = "Code 128, detection only, not locatable. The contents of the barcode is available via xrGetMarkerStringML."]
3762 pub const CODE_128: MarkerTypeML = Self(5i32);
3763 pub fn from_raw(x: i32) -> Self {
3764 Self(x)
3765 }
3766 pub fn into_raw(self) -> i32 {
3767 self.0
3768 }
3769}
3770impl fmt::Debug for MarkerTypeML {
3771 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3772 let name = match *self {
3773 Self::ARUCO => Some("ARUCO"),
3774 Self::APRIL_TAG => Some("APRIL_TAG"),
3775 Self::QR => Some("QR"),
3776 Self::EAN_13 => Some("EAN_13"),
3777 Self::UPC_A => Some("UPC_A"),
3778 Self::CODE_128 => Some("CODE_128"),
3779 _ => None,
3780 };
3781 fmt_enum(fmt, self.0, name)
3782 }
3783}
3784#[doc = "See [XrMarkerArucoDictML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerArucoDictML)"]
3785#[repr(transparent)]
3786#[derive(Copy, Clone, Eq, PartialEq)]
3787pub struct MarkerArucoDictML(i32);
3788impl MarkerArucoDictML {
3789 #[doc = "4 by 4 pixel Aruco marker dictionary with 50 IDs."]
3790 pub const DICT_4X4_50: MarkerArucoDictML = Self(0i32);
3791 #[doc = "4 by 4 pixel Aruco marker dictionary with 100 IDs."]
3792 pub const DICT_4X4_100: MarkerArucoDictML = Self(1i32);
3793 #[doc = "4 by 4 pixel Aruco marker dictionary with 250 IDs."]
3794 pub const DICT_4X4_250: MarkerArucoDictML = Self(2i32);
3795 #[doc = "4 by 4 pixel Aruco marker dictionary with 1000 IDs."]
3796 pub const DICT_4X4_1000: MarkerArucoDictML = Self(3i32);
3797 #[doc = "5 by 5 pixel Aruco marker dictionary with 50 IDs."]
3798 pub const DICT_5X5_50: MarkerArucoDictML = Self(4i32);
3799 #[doc = "5 by 5 pixel Aruco marker dictionary with 100 IDs."]
3800 pub const DICT_5X5_100: MarkerArucoDictML = Self(5i32);
3801 #[doc = "5 by 5 pixel Aruco marker dictionary with 250 IDs."]
3802 pub const DICT_5X5_250: MarkerArucoDictML = Self(6i32);
3803 #[doc = "5 by 5 pixel Aruco marker dictionary with 1000 IDs."]
3804 pub const DICT_5X5_1000: MarkerArucoDictML = Self(7i32);
3805 #[doc = "6 by 6 pixel Aruco marker dictionary with 50 IDs."]
3806 pub const DICT_6X6_50: MarkerArucoDictML = Self(8i32);
3807 #[doc = "6 by 6 pixel Aruco marker dictionary with 100 IDs."]
3808 pub const DICT_6X6_100: MarkerArucoDictML = Self(9i32);
3809 #[doc = "6 by 6 pixel Aruco marker dictionary with 250 IDs."]
3810 pub const DICT_6X6_250: MarkerArucoDictML = Self(10i32);
3811 #[doc = "6 by 6 pixel Aruco marker dictionary with 1000 IDs."]
3812 pub const DICT_6X6_1000: MarkerArucoDictML = Self(11i32);
3813 #[doc = "7 by 7 pixel Aruco marker dictionary with 50 IDs."]
3814 pub const DICT_7X7_50: MarkerArucoDictML = Self(12i32);
3815 #[doc = "7 by 7 pixel Aruco marker dictionary with 100 IDs."]
3816 pub const DICT_7X7_100: MarkerArucoDictML = Self(13i32);
3817 #[doc = "7 by 7 pixel Aruco marker dictionary with 250 IDs."]
3818 pub const DICT_7X7_250: MarkerArucoDictML = Self(14i32);
3819 #[doc = "7 by 7 pixel Aruco marker dictionary with 1000 IDs."]
3820 pub const DICT_7X7_1000: MarkerArucoDictML = Self(15i32);
3821 pub fn from_raw(x: i32) -> Self {
3822 Self(x)
3823 }
3824 pub fn into_raw(self) -> i32 {
3825 self.0
3826 }
3827}
3828impl fmt::Debug for MarkerArucoDictML {
3829 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3830 let name = match *self {
3831 Self::DICT_4X4_50 => Some("DICT_4X4_50"),
3832 Self::DICT_4X4_100 => Some("DICT_4X4_100"),
3833 Self::DICT_4X4_250 => Some("DICT_4X4_250"),
3834 Self::DICT_4X4_1000 => Some("DICT_4X4_1000"),
3835 Self::DICT_5X5_50 => Some("DICT_5X5_50"),
3836 Self::DICT_5X5_100 => Some("DICT_5X5_100"),
3837 Self::DICT_5X5_250 => Some("DICT_5X5_250"),
3838 Self::DICT_5X5_1000 => Some("DICT_5X5_1000"),
3839 Self::DICT_6X6_50 => Some("DICT_6X6_50"),
3840 Self::DICT_6X6_100 => Some("DICT_6X6_100"),
3841 Self::DICT_6X6_250 => Some("DICT_6X6_250"),
3842 Self::DICT_6X6_1000 => Some("DICT_6X6_1000"),
3843 Self::DICT_7X7_50 => Some("DICT_7X7_50"),
3844 Self::DICT_7X7_100 => Some("DICT_7X7_100"),
3845 Self::DICT_7X7_250 => Some("DICT_7X7_250"),
3846 Self::DICT_7X7_1000 => Some("DICT_7X7_1000"),
3847 _ => None,
3848 };
3849 fmt_enum(fmt, self.0, name)
3850 }
3851}
3852#[doc = "See [XrMarkerAprilTagDictML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerAprilTagDictML)"]
3853#[repr(transparent)]
3854#[derive(Copy, Clone, Eq, PartialEq)]
3855pub struct MarkerAprilTagDictML(i32);
3856impl MarkerAprilTagDictML {
3857 #[doc = "4 by 4 bits, minimum Hamming distance between any two codes = 5, 30 codes."]
3858 pub const DICT_16H5: MarkerAprilTagDictML = Self(0i32);
3859 #[doc = "5 by 5 bits, minimum Hamming distance between any two codes = 9, 35 codes."]
3860 pub const DICT_25H9: MarkerAprilTagDictML = Self(1i32);
3861 #[doc = "6 by 6 bits, minimum Hamming distance between any two codes = 10, 2320 codes."]
3862 pub const DICT_36H10: MarkerAprilTagDictML = Self(2i32);
3863 #[doc = "6 by 6 bits, minimum Hamming distance between any two codes = 11, 587 codes."]
3864 pub const DICT_36H11: MarkerAprilTagDictML = Self(3i32);
3865 pub fn from_raw(x: i32) -> Self {
3866 Self(x)
3867 }
3868 pub fn into_raw(self) -> i32 {
3869 self.0
3870 }
3871}
3872impl fmt::Debug for MarkerAprilTagDictML {
3873 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3874 let name = match *self {
3875 Self::DICT_16H5 => Some("DICT_16H5"),
3876 Self::DICT_25H9 => Some("DICT_25H9"),
3877 Self::DICT_36H10 => Some("DICT_36H10"),
3878 Self::DICT_36H11 => Some("DICT_36H11"),
3879 _ => None,
3880 };
3881 fmt_enum(fmt, self.0, name)
3882 }
3883}
3884#[doc = "See [XrMarkerDetectorFpsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorFpsML)"]
3885#[repr(transparent)]
3886#[derive(Copy, Clone, Eq, PartialEq)]
3887pub struct MarkerDetectorFpsML(i32);
3888impl MarkerDetectorFpsML {
3889 #[doc = "Low FPS."]
3890 pub const LOW: MarkerDetectorFpsML = Self(0i32);
3891 #[doc = "Medium FPS."]
3892 pub const MEDIUM: MarkerDetectorFpsML = Self(1i32);
3893 #[doc = "High FPS."]
3894 pub const HIGH: MarkerDetectorFpsML = Self(2i32);
3895 #[doc = "Max possible FPS."]
3896 pub const MAX: MarkerDetectorFpsML = Self(3i32);
3897 pub fn from_raw(x: i32) -> Self {
3898 Self(x)
3899 }
3900 pub fn into_raw(self) -> i32 {
3901 self.0
3902 }
3903}
3904impl fmt::Debug for MarkerDetectorFpsML {
3905 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3906 let name = match *self {
3907 Self::LOW => Some("LOW"),
3908 Self::MEDIUM => Some("MEDIUM"),
3909 Self::HIGH => Some("HIGH"),
3910 Self::MAX => Some("MAX"),
3911 _ => None,
3912 };
3913 fmt_enum(fmt, self.0, name)
3914 }
3915}
3916#[doc = "See [XrMarkerDetectorResolutionML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorResolutionML)"]
3917#[repr(transparent)]
3918#[derive(Copy, Clone, Eq, PartialEq)]
3919pub struct MarkerDetectorResolutionML(i32);
3920impl MarkerDetectorResolutionML {
3921 #[doc = "Low Resolution."]
3922 pub const LOW: MarkerDetectorResolutionML = Self(0i32);
3923 #[doc = "Medium Resolution."]
3924 pub const MEDIUM: MarkerDetectorResolutionML = Self(1i32);
3925 #[doc = "High Resolution."]
3926 pub const HIGH: MarkerDetectorResolutionML = Self(2i32);
3927 pub fn from_raw(x: i32) -> Self {
3928 Self(x)
3929 }
3930 pub fn into_raw(self) -> i32 {
3931 self.0
3932 }
3933}
3934impl fmt::Debug for MarkerDetectorResolutionML {
3935 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3936 let name = match *self {
3937 Self::LOW => Some("LOW"),
3938 Self::MEDIUM => Some("MEDIUM"),
3939 Self::HIGH => Some("HIGH"),
3940 _ => None,
3941 };
3942 fmt_enum(fmt, self.0, name)
3943 }
3944}
3945#[doc = "See [XrMarkerDetectorCameraML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCameraML)"]
3946#[repr(transparent)]
3947#[derive(Copy, Clone, Eq, PartialEq)]
3948pub struct MarkerDetectorCameraML(i32);
3949impl MarkerDetectorCameraML {
3950 #[doc = "Single RGB camera."]
3951 pub const RGB_CAMERA: MarkerDetectorCameraML = Self(0i32);
3952 #[doc = "One or more world cameras."]
3953 pub const WORLD_CAMERAS: MarkerDetectorCameraML = Self(1i32);
3954 pub fn from_raw(x: i32) -> Self {
3955 Self(x)
3956 }
3957 pub fn into_raw(self) -> i32 {
3958 self.0
3959 }
3960}
3961impl fmt::Debug for MarkerDetectorCameraML {
3962 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3963 let name = match *self {
3964 Self::RGB_CAMERA => Some("RGB_CAMERA"),
3965 Self::WORLD_CAMERAS => Some("WORLD_CAMERAS"),
3966 _ => None,
3967 };
3968 fmt_enum(fmt, self.0, name)
3969 }
3970}
3971#[doc = "See [XrMarkerDetectorCornerRefineMethodML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCornerRefineMethodML)"]
3972#[repr(transparent)]
3973#[derive(Copy, Clone, Eq, PartialEq)]
3974pub struct MarkerDetectorCornerRefineMethodML(i32);
3975impl MarkerDetectorCornerRefineMethodML {
3976 #[doc = "No refinement. Inaccurate corners."]
3977 pub const NONE: MarkerDetectorCornerRefineMethodML = Self(0i32);
3978 #[doc = "Subpixel refinement. Corners have subpixel coordinates. High detection rate, very fast, reasonable accuracy."]
3979 pub const SUBPIX: MarkerDetectorCornerRefineMethodML = Self(1i32);
3980 #[doc = "Contour refinement. High detection rate, fast, reasonable accuracy."]
3981 pub const CONTOUR: MarkerDetectorCornerRefineMethodML = Self(2i32);
3982 #[doc = "AprilTag refinement. Reasonable detection rate, slowest, but very accurate. Only valid with AprilTags."]
3983 pub const APRIL_TAG: MarkerDetectorCornerRefineMethodML = Self(3i32);
3984 pub fn from_raw(x: i32) -> Self {
3985 Self(x)
3986 }
3987 pub fn into_raw(self) -> i32 {
3988 self.0
3989 }
3990}
3991impl fmt::Debug for MarkerDetectorCornerRefineMethodML {
3992 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
3993 let name = match *self {
3994 Self::NONE => Some("NONE"),
3995 Self::SUBPIX => Some("SUBPIX"),
3996 Self::CONTOUR => Some("CONTOUR"),
3997 Self::APRIL_TAG => Some("APRIL_TAG"),
3998 _ => None,
3999 };
4000 fmt_enum(fmt, self.0, name)
4001 }
4002}
4003#[doc = "See [XrMarkerDetectorFullAnalysisIntervalML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorFullAnalysisIntervalML)"]
4004#[repr(transparent)]
4005#[derive(Copy, Clone, Eq, PartialEq)]
4006pub struct MarkerDetectorFullAnalysisIntervalML(i32);
4007impl MarkerDetectorFullAnalysisIntervalML {
4008 #[doc = "Detector analyzes every frame fully."]
4009 pub const MAX: MarkerDetectorFullAnalysisIntervalML = Self(0i32);
4010 #[doc = "Detector analyzes frame fully very often."]
4011 pub const FAST: MarkerDetectorFullAnalysisIntervalML = Self(1i32);
4012 #[doc = "Detector analyzes frame fully a few times per second."]
4013 pub const MEDIUM: MarkerDetectorFullAnalysisIntervalML = Self(2i32);
4014 #[doc = "Detector analyzes frame fully about every second."]
4015 pub const SLOW: MarkerDetectorFullAnalysisIntervalML = Self(3i32);
4016 pub fn from_raw(x: i32) -> Self {
4017 Self(x)
4018 }
4019 pub fn into_raw(self) -> i32 {
4020 self.0
4021 }
4022}
4023impl fmt::Debug for MarkerDetectorFullAnalysisIntervalML {
4024 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4025 let name = match *self {
4026 Self::MAX => Some("MAX"),
4027 Self::FAST => Some("FAST"),
4028 Self::MEDIUM => Some("MEDIUM"),
4029 Self::SLOW => Some("SLOW"),
4030 _ => None,
4031 };
4032 fmt_enum(fmt, self.0, name)
4033 }
4034}
4035#[doc = "See [XrMarkerDetectorStatusML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorStatusML)"]
4036#[repr(transparent)]
4037#[derive(Copy, Clone, Eq, PartialEq)]
4038pub struct MarkerDetectorStatusML(i32);
4039impl MarkerDetectorStatusML {
4040 #[doc = "The marker detector is working on a new snapshot."]
4041 pub const PENDING: MarkerDetectorStatusML = Self(0i32);
4042 #[doc = "The marker detector is ready to be inspected."]
4043 pub const READY: MarkerDetectorStatusML = Self(1i32);
4044 #[doc = "The marker detector has encountered a fatal error."]
4045 pub const ERROR: MarkerDetectorStatusML = Self(2i32);
4046 pub fn from_raw(x: i32) -> Self {
4047 Self(x)
4048 }
4049 pub fn into_raw(self) -> i32 {
4050 self.0
4051 }
4052}
4053impl fmt::Debug for MarkerDetectorStatusML {
4054 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4055 let name = match *self {
4056 Self::PENDING => Some("PENDING"),
4057 Self::READY => Some("READY"),
4058 Self::ERROR => Some("ERROR"),
4059 _ => None,
4060 };
4061 fmt_enum(fmt, self.0, name)
4062 }
4063}
4064#[doc = "See [XrFutureStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureStateEXT)"]
4065#[repr(transparent)]
4066#[derive(Copy, Clone, Eq, PartialEq)]
4067pub struct FutureStateEXT(i32);
4068impl FutureStateEXT {
4069 pub const PENDING: FutureStateEXT = Self(1i32);
4070 pub const READY: FutureStateEXT = Self(2i32);
4071 pub fn from_raw(x: i32) -> Self {
4072 Self(x)
4073 }
4074 pub fn into_raw(self) -> i32 {
4075 self.0
4076 }
4077}
4078impl fmt::Debug for FutureStateEXT {
4079 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4080 let name = match *self {
4081 Self::PENDING => Some("PENDING"),
4082 Self::READY => Some("READY"),
4083 _ => None,
4084 };
4085 fmt_enum(fmt, self.0, name)
4086 }
4087}
4088#[doc = "See [XrHandEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandEXT)"]
4089#[repr(transparent)]
4090#[derive(Copy, Clone, Eq, PartialEq)]
4091pub struct HandEXT(i32);
4092impl HandEXT {
4093 pub const LEFT: HandEXT = Self(1i32);
4094 pub const RIGHT: HandEXT = Self(2i32);
4095 pub fn from_raw(x: i32) -> Self {
4096 Self(x)
4097 }
4098 pub fn into_raw(self) -> i32 {
4099 self.0
4100 }
4101}
4102impl fmt::Debug for HandEXT {
4103 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4104 let name = match *self {
4105 Self::LEFT => Some("LEFT"),
4106 Self::RIGHT => Some("RIGHT"),
4107 _ => None,
4108 };
4109 fmt_enum(fmt, self.0, name)
4110 }
4111}
4112#[doc = "See [XrHandJointEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointEXT)"]
4113#[repr(transparent)]
4114#[derive(Copy, Clone, Eq, PartialEq)]
4115pub struct HandJointEXT(i32);
4116impl HandJointEXT {
4117 pub const PALM: HandJointEXT = Self(0i32);
4118 pub const WRIST: HandJointEXT = Self(1i32);
4119 pub const THUMB_METACARPAL: HandJointEXT = Self(2i32);
4120 pub const THUMB_PROXIMAL: HandJointEXT = Self(3i32);
4121 pub const THUMB_DISTAL: HandJointEXT = Self(4i32);
4122 pub const THUMB_TIP: HandJointEXT = Self(5i32);
4123 pub const INDEX_METACARPAL: HandJointEXT = Self(6i32);
4124 pub const INDEX_PROXIMAL: HandJointEXT = Self(7i32);
4125 pub const INDEX_INTERMEDIATE: HandJointEXT = Self(8i32);
4126 pub const INDEX_DISTAL: HandJointEXT = Self(9i32);
4127 pub const INDEX_TIP: HandJointEXT = Self(10i32);
4128 pub const MIDDLE_METACARPAL: HandJointEXT = Self(11i32);
4129 pub const MIDDLE_PROXIMAL: HandJointEXT = Self(12i32);
4130 pub const MIDDLE_INTERMEDIATE: HandJointEXT = Self(13i32);
4131 pub const MIDDLE_DISTAL: HandJointEXT = Self(14i32);
4132 pub const MIDDLE_TIP: HandJointEXT = Self(15i32);
4133 pub const RING_METACARPAL: HandJointEXT = Self(16i32);
4134 pub const RING_PROXIMAL: HandJointEXT = Self(17i32);
4135 pub const RING_INTERMEDIATE: HandJointEXT = Self(18i32);
4136 pub const RING_DISTAL: HandJointEXT = Self(19i32);
4137 pub const RING_TIP: HandJointEXT = Self(20i32);
4138 pub const LITTLE_METACARPAL: HandJointEXT = Self(21i32);
4139 pub const LITTLE_PROXIMAL: HandJointEXT = Self(22i32);
4140 pub const LITTLE_INTERMEDIATE: HandJointEXT = Self(23i32);
4141 pub const LITTLE_DISTAL: HandJointEXT = Self(24i32);
4142 pub const LITTLE_TIP: HandJointEXT = Self(25i32);
4143 pub fn from_raw(x: i32) -> Self {
4144 Self(x)
4145 }
4146 pub fn into_raw(self) -> i32 {
4147 self.0
4148 }
4149}
4150impl fmt::Debug for HandJointEXT {
4151 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4152 let name = match *self {
4153 Self::PALM => Some("PALM"),
4154 Self::WRIST => Some("WRIST"),
4155 Self::THUMB_METACARPAL => Some("THUMB_METACARPAL"),
4156 Self::THUMB_PROXIMAL => Some("THUMB_PROXIMAL"),
4157 Self::THUMB_DISTAL => Some("THUMB_DISTAL"),
4158 Self::THUMB_TIP => Some("THUMB_TIP"),
4159 Self::INDEX_METACARPAL => Some("INDEX_METACARPAL"),
4160 Self::INDEX_PROXIMAL => Some("INDEX_PROXIMAL"),
4161 Self::INDEX_INTERMEDIATE => Some("INDEX_INTERMEDIATE"),
4162 Self::INDEX_DISTAL => Some("INDEX_DISTAL"),
4163 Self::INDEX_TIP => Some("INDEX_TIP"),
4164 Self::MIDDLE_METACARPAL => Some("MIDDLE_METACARPAL"),
4165 Self::MIDDLE_PROXIMAL => Some("MIDDLE_PROXIMAL"),
4166 Self::MIDDLE_INTERMEDIATE => Some("MIDDLE_INTERMEDIATE"),
4167 Self::MIDDLE_DISTAL => Some("MIDDLE_DISTAL"),
4168 Self::MIDDLE_TIP => Some("MIDDLE_TIP"),
4169 Self::RING_METACARPAL => Some("RING_METACARPAL"),
4170 Self::RING_PROXIMAL => Some("RING_PROXIMAL"),
4171 Self::RING_INTERMEDIATE => Some("RING_INTERMEDIATE"),
4172 Self::RING_DISTAL => Some("RING_DISTAL"),
4173 Self::RING_TIP => Some("RING_TIP"),
4174 Self::LITTLE_METACARPAL => Some("LITTLE_METACARPAL"),
4175 Self::LITTLE_PROXIMAL => Some("LITTLE_PROXIMAL"),
4176 Self::LITTLE_INTERMEDIATE => Some("LITTLE_INTERMEDIATE"),
4177 Self::LITTLE_DISTAL => Some("LITTLE_DISTAL"),
4178 Self::LITTLE_TIP => Some("LITTLE_TIP"),
4179 _ => None,
4180 };
4181 fmt_enum(fmt, self.0, name)
4182 }
4183}
4184#[doc = "See [XrHandJointSetEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointSetEXT)"]
4185#[repr(transparent)]
4186#[derive(Copy, Clone, Eq, PartialEq)]
4187pub struct HandJointSetEXT(i32);
4188impl HandJointSetEXT {
4189 pub const DEFAULT: HandJointSetEXT = Self(0i32);
4190 pub const HAND_WITH_FOREARM_ULTRA: HandJointSetEXT = Self(1000149000i32);
4191 pub fn from_raw(x: i32) -> Self {
4192 Self(x)
4193 }
4194 pub fn into_raw(self) -> i32 {
4195 self.0
4196 }
4197}
4198impl fmt::Debug for HandJointSetEXT {
4199 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4200 let name = match *self {
4201 Self::DEFAULT => Some("DEFAULT"),
4202 Self::HAND_WITH_FOREARM_ULTRA => Some("HAND_WITH_FOREARM_ULTRA"),
4203 _ => None,
4204 };
4205 fmt_enum(fmt, self.0, name)
4206 }
4207}
4208#[doc = "See [XrHandJointsMotionRangeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsMotionRangeEXT)"]
4209#[repr(transparent)]
4210#[derive(Copy, Clone, Eq, PartialEq)]
4211pub struct HandJointsMotionRangeEXT(i32);
4212impl HandJointsMotionRangeEXT {
4213 pub const UNOBSTRUCTED: HandJointsMotionRangeEXT = Self(1i32);
4214 pub const CONFORMING_TO_CONTROLLER: HandJointsMotionRangeEXT = Self(2i32);
4215 pub fn from_raw(x: i32) -> Self {
4216 Self(x)
4217 }
4218 pub fn into_raw(self) -> i32 {
4219 self.0
4220 }
4221}
4222impl fmt::Debug for HandJointsMotionRangeEXT {
4223 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4224 let name = match *self {
4225 Self::UNOBSTRUCTED => Some("UNOBSTRUCTED"),
4226 Self::CONFORMING_TO_CONTROLLER => Some("CONFORMING_TO_CONTROLLER"),
4227 _ => None,
4228 };
4229 fmt_enum(fmt, self.0, name)
4230 }
4231}
4232#[doc = "See [XrHandTrackingDataSourceEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceEXT)"]
4233#[repr(transparent)]
4234#[derive(Copy, Clone, Eq, PartialEq)]
4235pub struct HandTrackingDataSourceEXT(i32);
4236impl HandTrackingDataSourceEXT {
4237 #[doc = "This data source value indicates individual fingers and joints are tracked from unobstructed data source such as optical hand tracking, data gloves, or motion capture devices."]
4238 pub const UNOBSTRUCTED: HandTrackingDataSourceEXT = Self(1i32);
4239 #[doc = "This data source value indicates hand joints are inferred based on motion controller state."]
4240 pub const CONTROLLER: HandTrackingDataSourceEXT = Self(2i32);
4241 pub fn from_raw(x: i32) -> Self {
4242 Self(x)
4243 }
4244 pub fn into_raw(self) -> i32 {
4245 self.0
4246 }
4247}
4248impl fmt::Debug for HandTrackingDataSourceEXT {
4249 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4250 let name = match *self {
4251 Self::UNOBSTRUCTED => Some("UNOBSTRUCTED"),
4252 Self::CONTROLLER => Some("CONTROLLER"),
4253 _ => None,
4254 };
4255 fmt_enum(fmt, self.0, name)
4256 }
4257}
4258#[doc = "See [XrHandPoseTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandPoseTypeMSFT)"]
4259#[repr(transparent)]
4260#[derive(Copy, Clone, Eq, PartialEq)]
4261pub struct HandPoseTypeMSFT(i32);
4262impl HandPoseTypeMSFT {
4263 pub const TRACKED: HandPoseTypeMSFT = Self(0i32);
4264 pub const REFERENCE_OPEN_PALM: HandPoseTypeMSFT = Self(1i32);
4265 pub fn from_raw(x: i32) -> Self {
4266 Self(x)
4267 }
4268 pub fn into_raw(self) -> i32 {
4269 self.0
4270 }
4271}
4272impl fmt::Debug for HandPoseTypeMSFT {
4273 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4274 let name = match *self {
4275 Self::TRACKED => Some("TRACKED"),
4276 Self::REFERENCE_OPEN_PALM => Some("REFERENCE_OPEN_PALM"),
4277 _ => None,
4278 };
4279 fmt_enum(fmt, self.0, name)
4280 }
4281}
4282#[doc = "See [XrSceneObjectTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneObjectTypeMSFT)"]
4283#[repr(transparent)]
4284#[derive(Copy, Clone, Eq, PartialEq)]
4285pub struct SceneObjectTypeMSFT(i32);
4286impl SceneObjectTypeMSFT {
4287 pub const UNCATEGORIZED: SceneObjectTypeMSFT = Self(-1i32);
4288 pub const BACKGROUND: SceneObjectTypeMSFT = Self(1i32);
4289 pub const WALL: SceneObjectTypeMSFT = Self(2i32);
4290 pub const FLOOR: SceneObjectTypeMSFT = Self(3i32);
4291 pub const CEILING: SceneObjectTypeMSFT = Self(4i32);
4292 pub const PLATFORM: SceneObjectTypeMSFT = Self(5i32);
4293 pub const INFERRED: SceneObjectTypeMSFT = Self(6i32);
4294 pub fn from_raw(x: i32) -> Self {
4295 Self(x)
4296 }
4297 pub fn into_raw(self) -> i32 {
4298 self.0
4299 }
4300}
4301impl fmt::Debug for SceneObjectTypeMSFT {
4302 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4303 let name = match *self {
4304 Self::UNCATEGORIZED => Some("UNCATEGORIZED"),
4305 Self::BACKGROUND => Some("BACKGROUND"),
4306 Self::WALL => Some("WALL"),
4307 Self::FLOOR => Some("FLOOR"),
4308 Self::CEILING => Some("CEILING"),
4309 Self::PLATFORM => Some("PLATFORM"),
4310 Self::INFERRED => Some("INFERRED"),
4311 _ => None,
4312 };
4313 fmt_enum(fmt, self.0, name)
4314 }
4315}
4316#[doc = "See [XrScenePlaneAlignmentTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrScenePlaneAlignmentTypeMSFT)"]
4317#[repr(transparent)]
4318#[derive(Copy, Clone, Eq, PartialEq)]
4319pub struct ScenePlaneAlignmentTypeMSFT(i32);
4320impl ScenePlaneAlignmentTypeMSFT {
4321 pub const NON_ORTHOGONAL: ScenePlaneAlignmentTypeMSFT = Self(0i32);
4322 pub const HORIZONTAL: ScenePlaneAlignmentTypeMSFT = Self(1i32);
4323 pub const VERTICAL: ScenePlaneAlignmentTypeMSFT = Self(2i32);
4324 pub fn from_raw(x: i32) -> Self {
4325 Self(x)
4326 }
4327 pub fn into_raw(self) -> i32 {
4328 self.0
4329 }
4330}
4331impl fmt::Debug for ScenePlaneAlignmentTypeMSFT {
4332 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4333 let name = match *self {
4334 Self::NON_ORTHOGONAL => Some("NON_ORTHOGONAL"),
4335 Self::HORIZONTAL => Some("HORIZONTAL"),
4336 Self::VERTICAL => Some("VERTICAL"),
4337 _ => None,
4338 };
4339 fmt_enum(fmt, self.0, name)
4340 }
4341}
4342#[doc = "See [XrSceneComputeStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeStateMSFT)"]
4343#[repr(transparent)]
4344#[derive(Copy, Clone, Eq, PartialEq)]
4345pub struct SceneComputeStateMSFT(i32);
4346impl SceneComputeStateMSFT {
4347 pub const NONE: SceneComputeStateMSFT = Self(0i32);
4348 pub const UPDATING: SceneComputeStateMSFT = Self(1i32);
4349 pub const COMPLETED: SceneComputeStateMSFT = Self(2i32);
4350 pub const COMPLETED_WITH_ERROR: SceneComputeStateMSFT = Self(3i32);
4351 pub fn from_raw(x: i32) -> Self {
4352 Self(x)
4353 }
4354 pub fn into_raw(self) -> i32 {
4355 self.0
4356 }
4357}
4358impl fmt::Debug for SceneComputeStateMSFT {
4359 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4360 let name = match *self {
4361 Self::NONE => Some("NONE"),
4362 Self::UPDATING => Some("UPDATING"),
4363 Self::COMPLETED => Some("COMPLETED"),
4364 Self::COMPLETED_WITH_ERROR => Some("COMPLETED_WITH_ERROR"),
4365 _ => None,
4366 };
4367 fmt_enum(fmt, self.0, name)
4368 }
4369}
4370#[doc = "See [XrSceneComputeFeatureMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeFeatureMSFT)"]
4371#[repr(transparent)]
4372#[derive(Copy, Clone, Eq, PartialEq)]
4373pub struct SceneComputeFeatureMSFT(i32);
4374impl SceneComputeFeatureMSFT {
4375 pub const PLANE: SceneComputeFeatureMSFT = Self(1i32);
4376 pub const PLANE_MESH: SceneComputeFeatureMSFT = Self(2i32);
4377 pub const VISUAL_MESH: SceneComputeFeatureMSFT = Self(3i32);
4378 pub const COLLIDER_MESH: SceneComputeFeatureMSFT = Self(4i32);
4379 pub const SERIALIZE_SCENE: SceneComputeFeatureMSFT = Self(1000098000i32);
4380 pub const MARKER: SceneComputeFeatureMSFT = Self(1000147000i32);
4381 pub fn from_raw(x: i32) -> Self {
4382 Self(x)
4383 }
4384 pub fn into_raw(self) -> i32 {
4385 self.0
4386 }
4387}
4388impl fmt::Debug for SceneComputeFeatureMSFT {
4389 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4390 let name = match *self {
4391 Self::PLANE => Some("PLANE"),
4392 Self::PLANE_MESH => Some("PLANE_MESH"),
4393 Self::VISUAL_MESH => Some("VISUAL_MESH"),
4394 Self::COLLIDER_MESH => Some("COLLIDER_MESH"),
4395 Self::SERIALIZE_SCENE => Some("SERIALIZE_SCENE"),
4396 Self::MARKER => Some("MARKER"),
4397 _ => None,
4398 };
4399 fmt_enum(fmt, self.0, name)
4400 }
4401}
4402#[doc = "See [XrSceneComputeConsistencyMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComputeConsistencyMSFT)"]
4403#[repr(transparent)]
4404#[derive(Copy, Clone, Eq, PartialEq)]
4405pub struct SceneComputeConsistencyMSFT(i32);
4406impl SceneComputeConsistencyMSFT {
4407 pub const SNAPSHOT_COMPLETE: SceneComputeConsistencyMSFT = Self(1i32);
4408 pub const SNAPSHOT_INCOMPLETE_FAST: SceneComputeConsistencyMSFT = Self(2i32);
4409 pub const OCCLUSION_OPTIMIZED: SceneComputeConsistencyMSFT = Self(3i32);
4410 pub fn from_raw(x: i32) -> Self {
4411 Self(x)
4412 }
4413 pub fn into_raw(self) -> i32 {
4414 self.0
4415 }
4416}
4417impl fmt::Debug for SceneComputeConsistencyMSFT {
4418 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4419 let name = match *self {
4420 Self::SNAPSHOT_COMPLETE => Some("SNAPSHOT_COMPLETE"),
4421 Self::SNAPSHOT_INCOMPLETE_FAST => Some("SNAPSHOT_INCOMPLETE_FAST"),
4422 Self::OCCLUSION_OPTIMIZED => Some("OCCLUSION_OPTIMIZED"),
4423 _ => None,
4424 };
4425 fmt_enum(fmt, self.0, name)
4426 }
4427}
4428#[doc = "See [XrSceneComponentTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneComponentTypeMSFT)"]
4429#[repr(transparent)]
4430#[derive(Copy, Clone, Eq, PartialEq)]
4431pub struct SceneComponentTypeMSFT(i32);
4432impl SceneComponentTypeMSFT {
4433 pub const INVALID: SceneComponentTypeMSFT = Self(-1i32);
4434 pub const OBJECT: SceneComponentTypeMSFT = Self(1i32);
4435 pub const PLANE: SceneComponentTypeMSFT = Self(2i32);
4436 pub const VISUAL_MESH: SceneComponentTypeMSFT = Self(3i32);
4437 pub const COLLIDER_MESH: SceneComponentTypeMSFT = Self(4i32);
4438 pub const SERIALIZED_SCENE_FRAGMENT: SceneComponentTypeMSFT = Self(1000098000i32);
4439 pub const MARKER: SceneComponentTypeMSFT = Self(1000147000i32);
4440 pub fn from_raw(x: i32) -> Self {
4441 Self(x)
4442 }
4443 pub fn into_raw(self) -> i32 {
4444 self.0
4445 }
4446}
4447impl fmt::Debug for SceneComponentTypeMSFT {
4448 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4449 let name = match *self {
4450 Self::INVALID => Some("INVALID"),
4451 Self::OBJECT => Some("OBJECT"),
4452 Self::PLANE => Some("PLANE"),
4453 Self::VISUAL_MESH => Some("VISUAL_MESH"),
4454 Self::COLLIDER_MESH => Some("COLLIDER_MESH"),
4455 Self::SERIALIZED_SCENE_FRAGMENT => Some("SERIALIZED_SCENE_FRAGMENT"),
4456 Self::MARKER => Some("MARKER"),
4457 _ => None,
4458 };
4459 fmt_enum(fmt, self.0, name)
4460 }
4461}
4462#[doc = "See [XrMeshComputeLodMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMeshComputeLodMSFT)"]
4463#[repr(transparent)]
4464#[derive(Copy, Clone, Eq, PartialEq)]
4465pub struct MeshComputeLodMSFT(i32);
4466impl MeshComputeLodMSFT {
4467 pub const COARSE: MeshComputeLodMSFT = Self(1i32);
4468 pub const MEDIUM: MeshComputeLodMSFT = Self(2i32);
4469 pub const FINE: MeshComputeLodMSFT = Self(3i32);
4470 pub const UNLIMITED: MeshComputeLodMSFT = Self(4i32);
4471 pub fn from_raw(x: i32) -> Self {
4472 Self(x)
4473 }
4474 pub fn into_raw(self) -> i32 {
4475 self.0
4476 }
4477}
4478impl fmt::Debug for MeshComputeLodMSFT {
4479 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4480 let name = match *self {
4481 Self::COARSE => Some("COARSE"),
4482 Self::MEDIUM => Some("MEDIUM"),
4483 Self::FINE => Some("FINE"),
4484 Self::UNLIMITED => Some("UNLIMITED"),
4485 _ => None,
4486 };
4487 fmt_enum(fmt, self.0, name)
4488 }
4489}
4490#[doc = "See [XrSceneMarkerTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMarkerTypeMSFT)"]
4491#[repr(transparent)]
4492#[derive(Copy, Clone, Eq, PartialEq)]
4493pub struct SceneMarkerTypeMSFT(i32);
4494impl SceneMarkerTypeMSFT {
4495 pub const QR_CODE: SceneMarkerTypeMSFT = Self(1i32);
4496 pub fn from_raw(x: i32) -> Self {
4497 Self(x)
4498 }
4499 pub fn into_raw(self) -> i32 {
4500 self.0
4501 }
4502}
4503impl fmt::Debug for SceneMarkerTypeMSFT {
4504 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4505 let name = match *self {
4506 Self::QR_CODE => Some("QR_CODE"),
4507 _ => None,
4508 };
4509 fmt_enum(fmt, self.0, name)
4510 }
4511}
4512#[doc = "See [XrSceneMarkerQRCodeSymbolTypeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMarkerQRCodeSymbolTypeMSFT)"]
4513#[repr(transparent)]
4514#[derive(Copy, Clone, Eq, PartialEq)]
4515pub struct SceneMarkerQRCodeSymbolTypeMSFT(i32);
4516impl SceneMarkerQRCodeSymbolTypeMSFT {
4517 pub const QR_CODE: SceneMarkerQRCodeSymbolTypeMSFT = Self(1i32);
4518 pub const MICRO_QR_CODE: SceneMarkerQRCodeSymbolTypeMSFT = Self(2i32);
4519 pub fn from_raw(x: i32) -> Self {
4520 Self(x)
4521 }
4522 pub fn into_raw(self) -> i32 {
4523 self.0
4524 }
4525}
4526impl fmt::Debug for SceneMarkerQRCodeSymbolTypeMSFT {
4527 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4528 let name = match *self {
4529 Self::QR_CODE => Some("QR_CODE"),
4530 Self::MICRO_QR_CODE => Some("MICRO_QR_CODE"),
4531 _ => None,
4532 };
4533 fmt_enum(fmt, self.0, name)
4534 }
4535}
4536#[doc = "See [XrColorSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColorSpaceFB)"]
4537#[repr(transparent)]
4538#[derive(Copy, Clone, Eq, PartialEq)]
4539pub struct ColorSpaceFB(i32);
4540impl ColorSpaceFB {
4541 pub const UNMANAGED: ColorSpaceFB = Self(0i32);
4542 pub const REC2020: ColorSpaceFB = Self(1i32);
4543 pub const REC709: ColorSpaceFB = Self(2i32);
4544 pub const RIFT_CV1: ColorSpaceFB = Self(3i32);
4545 pub const RIFT_S: ColorSpaceFB = Self(4i32);
4546 pub const QUEST: ColorSpaceFB = Self(5i32);
4547 pub const P3: ColorSpaceFB = Self(6i32);
4548 pub const ADOBE_RGB: ColorSpaceFB = Self(7i32);
4549 pub fn from_raw(x: i32) -> Self {
4550 Self(x)
4551 }
4552 pub fn into_raw(self) -> i32 {
4553 self.0
4554 }
4555}
4556impl fmt::Debug for ColorSpaceFB {
4557 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4558 let name = match *self {
4559 Self::UNMANAGED => Some("UNMANAGED"),
4560 Self::REC2020 => Some("REC2020"),
4561 Self::REC709 => Some("REC709"),
4562 Self::RIFT_CV1 => Some("RIFT_CV1"),
4563 Self::RIFT_S => Some("RIFT_S"),
4564 Self::QUEST => Some("QUEST"),
4565 Self::P3 => Some("P3"),
4566 Self::ADOBE_RGB => Some("ADOBE_RGB"),
4567 _ => None,
4568 };
4569 fmt_enum(fmt, self.0, name)
4570 }
4571}
4572#[doc = "See [XrFoveationLevelFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelFB)"]
4573#[repr(transparent)]
4574#[derive(Copy, Clone, Eq, PartialEq)]
4575pub struct FoveationLevelFB(i32);
4576impl FoveationLevelFB {
4577 #[doc = "No foveation"]
4578 pub const NONE: FoveationLevelFB = Self(0i32);
4579 #[doc = "Less foveation (higher periphery visual fidelity, lower performance)"]
4580 pub const LOW: FoveationLevelFB = Self(1i32);
4581 #[doc = "Medium foveation (medium periphery visual fidelity, medium performance)"]
4582 pub const MEDIUM: FoveationLevelFB = Self(2i32);
4583 #[doc = "High foveation (lower periphery visual fidelity, higher performance)"]
4584 pub const HIGH: FoveationLevelFB = Self(3i32);
4585 pub fn from_raw(x: i32) -> Self {
4586 Self(x)
4587 }
4588 pub fn into_raw(self) -> i32 {
4589 self.0
4590 }
4591}
4592impl fmt::Debug for FoveationLevelFB {
4593 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4594 let name = match *self {
4595 Self::NONE => Some("NONE"),
4596 Self::LOW => Some("LOW"),
4597 Self::MEDIUM => Some("MEDIUM"),
4598 Self::HIGH => Some("HIGH"),
4599 _ => None,
4600 };
4601 fmt_enum(fmt, self.0, name)
4602 }
4603}
4604#[doc = "See [XrFoveationDynamicFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicFB)"]
4605#[repr(transparent)]
4606#[derive(Copy, Clone, Eq, PartialEq)]
4607pub struct FoveationDynamicFB(i32);
4608impl FoveationDynamicFB {
4609 #[doc = "Static foveation at the maximum desired level"]
4610 pub const DISABLED: FoveationDynamicFB = Self(0i32);
4611 #[doc = "Dynamic changing foveation based on performance headroom available up to the maximum desired level"]
4612 pub const LEVEL_ENABLED: FoveationDynamicFB = Self(1i32);
4613 pub fn from_raw(x: i32) -> Self {
4614 Self(x)
4615 }
4616 pub fn into_raw(self) -> i32 {
4617 self.0
4618 }
4619}
4620impl fmt::Debug for FoveationDynamicFB {
4621 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4622 let name = match *self {
4623 Self::DISABLED => Some("DISABLED"),
4624 Self::LEVEL_ENABLED => Some("LEVEL_ENABLED"),
4625 _ => None,
4626 };
4627 fmt_enum(fmt, self.0, name)
4628 }
4629}
4630#[doc = "See [XrReprojectionModeMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReprojectionModeMSFT)"]
4631#[repr(transparent)]
4632#[derive(Copy, Clone, Eq, PartialEq)]
4633pub struct ReprojectionModeMSFT(i32);
4634impl ReprojectionModeMSFT {
4635 pub const DEPTH: ReprojectionModeMSFT = Self(1i32);
4636 pub const PLANAR_FROM_DEPTH: ReprojectionModeMSFT = Self(2i32);
4637 pub const PLANAR_MANUAL: ReprojectionModeMSFT = Self(3i32);
4638 pub const ORIENTATION_ONLY: ReprojectionModeMSFT = Self(4i32);
4639 pub fn from_raw(x: i32) -> Self {
4640 Self(x)
4641 }
4642 pub fn into_raw(self) -> i32 {
4643 self.0
4644 }
4645}
4646impl fmt::Debug for ReprojectionModeMSFT {
4647 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4648 let name = match *self {
4649 Self::DEPTH => Some("DEPTH"),
4650 Self::PLANAR_FROM_DEPTH => Some("PLANAR_FROM_DEPTH"),
4651 Self::PLANAR_MANUAL => Some("PLANAR_MANUAL"),
4652 Self::ORIENTATION_ONLY => Some("ORIENTATION_ONLY"),
4653 _ => None,
4654 };
4655 fmt_enum(fmt, self.0, name)
4656 }
4657}
4658#[doc = "See [XrHandForearmJointULTRALEAP](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandForearmJointULTRALEAP)"]
4659#[repr(transparent)]
4660#[derive(Copy, Clone, Eq, PartialEq)]
4661pub struct HandForearmJointULTRALEAP(i32);
4662impl HandForearmJointULTRALEAP {
4663 pub const PALM: HandForearmJointULTRALEAP = Self(0i32);
4664 pub const WRIST: HandForearmJointULTRALEAP = Self(1i32);
4665 pub const THUMB_METACARPAL: HandForearmJointULTRALEAP = Self(2i32);
4666 pub const THUMB_PROXIMAL: HandForearmJointULTRALEAP = Self(3i32);
4667 pub const THUMB_DISTAL: HandForearmJointULTRALEAP = Self(4i32);
4668 pub const THUMB_TIP: HandForearmJointULTRALEAP = Self(5i32);
4669 pub const INDEX_METACARPAL: HandForearmJointULTRALEAP = Self(6i32);
4670 pub const INDEX_PROXIMAL: HandForearmJointULTRALEAP = Self(7i32);
4671 pub const INDEX_INTERMEDIATE: HandForearmJointULTRALEAP = Self(8i32);
4672 pub const INDEX_DISTAL: HandForearmJointULTRALEAP = Self(9i32);
4673 pub const INDEX_TIP: HandForearmJointULTRALEAP = Self(10i32);
4674 pub const MIDDLE_METACARPAL: HandForearmJointULTRALEAP = Self(11i32);
4675 pub const MIDDLE_PROXIMAL: HandForearmJointULTRALEAP = Self(12i32);
4676 pub const MIDDLE_INTERMEDIATE: HandForearmJointULTRALEAP = Self(13i32);
4677 pub const MIDDLE_DISTAL: HandForearmJointULTRALEAP = Self(14i32);
4678 pub const MIDDLE_TIP: HandForearmJointULTRALEAP = Self(15i32);
4679 pub const RING_METACARPAL: HandForearmJointULTRALEAP = Self(16i32);
4680 pub const RING_PROXIMAL: HandForearmJointULTRALEAP = Self(17i32);
4681 pub const RING_INTERMEDIATE: HandForearmJointULTRALEAP = Self(18i32);
4682 pub const RING_DISTAL: HandForearmJointULTRALEAP = Self(19i32);
4683 pub const RING_TIP: HandForearmJointULTRALEAP = Self(20i32);
4684 pub const LITTLE_METACARPAL: HandForearmJointULTRALEAP = Self(21i32);
4685 pub const LITTLE_PROXIMAL: HandForearmJointULTRALEAP = Self(22i32);
4686 pub const LITTLE_INTERMEDIATE: HandForearmJointULTRALEAP = Self(23i32);
4687 pub const LITTLE_DISTAL: HandForearmJointULTRALEAP = Self(24i32);
4688 pub const LITTLE_TIP: HandForearmJointULTRALEAP = Self(25i32);
4689 pub const ELBOW: HandForearmJointULTRALEAP = Self(26i32);
4690 pub fn from_raw(x: i32) -> Self {
4691 Self(x)
4692 }
4693 pub fn into_raw(self) -> i32 {
4694 self.0
4695 }
4696}
4697impl fmt::Debug for HandForearmJointULTRALEAP {
4698 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4699 let name = match *self {
4700 Self::PALM => Some("PALM"),
4701 Self::WRIST => Some("WRIST"),
4702 Self::THUMB_METACARPAL => Some("THUMB_METACARPAL"),
4703 Self::THUMB_PROXIMAL => Some("THUMB_PROXIMAL"),
4704 Self::THUMB_DISTAL => Some("THUMB_DISTAL"),
4705 Self::THUMB_TIP => Some("THUMB_TIP"),
4706 Self::INDEX_METACARPAL => Some("INDEX_METACARPAL"),
4707 Self::INDEX_PROXIMAL => Some("INDEX_PROXIMAL"),
4708 Self::INDEX_INTERMEDIATE => Some("INDEX_INTERMEDIATE"),
4709 Self::INDEX_DISTAL => Some("INDEX_DISTAL"),
4710 Self::INDEX_TIP => Some("INDEX_TIP"),
4711 Self::MIDDLE_METACARPAL => Some("MIDDLE_METACARPAL"),
4712 Self::MIDDLE_PROXIMAL => Some("MIDDLE_PROXIMAL"),
4713 Self::MIDDLE_INTERMEDIATE => Some("MIDDLE_INTERMEDIATE"),
4714 Self::MIDDLE_DISTAL => Some("MIDDLE_DISTAL"),
4715 Self::MIDDLE_TIP => Some("MIDDLE_TIP"),
4716 Self::RING_METACARPAL => Some("RING_METACARPAL"),
4717 Self::RING_PROXIMAL => Some("RING_PROXIMAL"),
4718 Self::RING_INTERMEDIATE => Some("RING_INTERMEDIATE"),
4719 Self::RING_DISTAL => Some("RING_DISTAL"),
4720 Self::RING_TIP => Some("RING_TIP"),
4721 Self::LITTLE_METACARPAL => Some("LITTLE_METACARPAL"),
4722 Self::LITTLE_PROXIMAL => Some("LITTLE_PROXIMAL"),
4723 Self::LITTLE_INTERMEDIATE => Some("LITTLE_INTERMEDIATE"),
4724 Self::LITTLE_DISTAL => Some("LITTLE_DISTAL"),
4725 Self::LITTLE_TIP => Some("LITTLE_TIP"),
4726 Self::ELBOW => Some("ELBOW"),
4727 _ => None,
4728 };
4729 fmt_enum(fmt, self.0, name)
4730 }
4731}
4732#[doc = "See [XrCompareOpFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompareOpFB)"]
4733#[repr(transparent)]
4734#[derive(Copy, Clone, Eq, PartialEq)]
4735pub struct CompareOpFB(i32);
4736impl CompareOpFB {
4737 #[doc = "Comparison is never true."]
4738 pub const NEVER: CompareOpFB = Self(0i32);
4739 #[doc = "Comparison is true if source less than is destination."]
4740 pub const LESS: CompareOpFB = Self(1i32);
4741 #[doc = "Comparison is true if source is equal to destination."]
4742 pub const EQUAL: CompareOpFB = Self(2i32);
4743 #[doc = "Comparison is true if source is less than or equal to destination."]
4744 pub const LESS_OR_EQUAL: CompareOpFB = Self(3i32);
4745 #[doc = "Comparison is true if source is greater than destination."]
4746 pub const GREATER: CompareOpFB = Self(4i32);
4747 #[doc = "Comparison is true if source is not equal to destination."]
4748 pub const NOT_EQUAL: CompareOpFB = Self(5i32);
4749 #[doc = "Comparison is true if source is greater than or equal to destination."]
4750 pub const GREATER_OR_EQUAL: CompareOpFB = Self(6i32);
4751 #[doc = "Comparison is always true."]
4752 pub const ALWAYS: CompareOpFB = Self(7i32);
4753 pub fn from_raw(x: i32) -> Self {
4754 Self(x)
4755 }
4756 pub fn into_raw(self) -> i32 {
4757 self.0
4758 }
4759}
4760impl fmt::Debug for CompareOpFB {
4761 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
4762 let name = match *self {
4763 Self::NEVER => Some("NEVER"),
4764 Self::LESS => Some("LESS"),
4765 Self::EQUAL => Some("EQUAL"),
4766 Self::LESS_OR_EQUAL => Some("LESS_OR_EQUAL"),
4767 Self::GREATER => Some("GREATER"),
4768 Self::NOT_EQUAL => Some("NOT_EQUAL"),
4769 Self::GREATER_OR_EQUAL => Some("GREATER_OR_EQUAL"),
4770 Self::ALWAYS => Some("ALWAYS"),
4771 _ => None,
4772 };
4773 fmt_enum(fmt, self.0, name)
4774 }
4775}
4776#[doc = "See [XrInstanceCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateFlagBits)"]
4777#[repr(transparent)]
4778#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4779pub struct InstanceCreateFlags(u64);
4780impl InstanceCreateFlags {}
4781bitmask!(InstanceCreateFlags);
4782#[doc = "See [XrSessionCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateFlagBits)"]
4783#[repr(transparent)]
4784#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4785pub struct SessionCreateFlags(u64);
4786impl SessionCreateFlags {}
4787bitmask!(SessionCreateFlags);
4788#[doc = "See [XrSwapchainCreateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateFlagBits)"]
4789#[repr(transparent)]
4790#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4791pub struct SwapchainCreateFlags(u64);
4792impl SwapchainCreateFlags {
4793 #[doc = "Content will be protected from CPU access"]
4794 pub const PROTECTED_CONTENT: SwapchainCreateFlags = Self(1 << 0u64);
4795 #[doc = "Only one image will be acquired from this swapchain over its lifetime"]
4796 pub const STATIC_IMAGE: SwapchainCreateFlags = Self(1 << 1u64);
4797}
4798bitmask!(SwapchainCreateFlags);
4799#[doc = "See [XrSwapchainUsageFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainUsageFlagBits)"]
4800#[repr(transparent)]
4801#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4802pub struct SwapchainUsageFlags(u64);
4803impl SwapchainUsageFlags {
4804 #[doc = "Specifies that the image may: be a color rendering target."]
4805 pub const COLOR_ATTACHMENT: SwapchainUsageFlags = Self(1 << 0u64);
4806 #[doc = "Specifies that the image may: be a depth/stencil rendering target."]
4807 pub const DEPTH_STENCIL_ATTACHMENT: SwapchainUsageFlags = Self(1 << 1u64);
4808 #[doc = "Specifies that the image may: be accessed out of order and that access may: be via atomic operations."]
4809 pub const UNORDERED_ACCESS: SwapchainUsageFlags = Self(1 << 2u64);
4810 #[doc = "Specifies that the image may: be used as the source of a transfer operation."]
4811 pub const TRANSFER_SRC: SwapchainUsageFlags = Self(1 << 3u64);
4812 #[doc = "Specifies that the image may: be used as the destination of a transfer operation."]
4813 pub const TRANSFER_DST: SwapchainUsageFlags = Self(1 << 4u64);
4814 #[doc = "Specifies that the image may: be sampled by a shader."]
4815 pub const SAMPLED: SwapchainUsageFlags = Self(1 << 5u64);
4816 #[doc = "Specifies that the image may: be reinterpreted as another image format."]
4817 pub const MUTABLE_FORMAT: SwapchainUsageFlags = Self(1 << 6u64);
4818 #[doc = "Specifies that the image may: be used as a input attachment."]
4819 pub const INPUT_ATTACHMENT: SwapchainUsageFlags = Self(1 << 7u64);
4820}
4821bitmask!(SwapchainUsageFlags);
4822#[doc = "See [XrViewStateFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewStateFlagBits)"]
4823#[repr(transparent)]
4824#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4825pub struct ViewStateFlags(u64);
4826impl ViewStateFlags {
4827 #[doc = "Indicates validity of all XrView orientations"]
4828 pub const ORIENTATION_VALID: ViewStateFlags = Self(1 << 0u64);
4829 #[doc = "Indicates validity of all XrView positions"]
4830 pub const POSITION_VALID: ViewStateFlags = Self(1 << 1u64);
4831 #[doc = "Indicates whether all XrView orientations are actively tracked"]
4832 pub const ORIENTATION_TRACKED: ViewStateFlags = Self(1 << 2u64);
4833 #[doc = "Indicates whether all XrView positions are actively tracked"]
4834 pub const POSITION_TRACKED: ViewStateFlags = Self(1 << 3u64);
4835}
4836bitmask!(ViewStateFlags);
4837#[doc = "See [XrCompositionLayerFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerFlagBits)"]
4838#[repr(transparent)]
4839#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4840pub struct CompositionLayerFlags(u64);
4841impl CompositionLayerFlags {
4842 #[doc = "Enables chromatic aberration correction when not done by default. This flag has no effect on any known conformant runtime, and is officially deprecated in OpenXR 1.1."]
4843 pub const CORRECT_CHROMATIC_ABERRATION: CompositionLayerFlags = Self(1 << 0u64);
4844 #[doc = "Enables the layer texture alpha channel."]
4845 pub const BLEND_TEXTURE_SOURCE_ALPHA: CompositionLayerFlags = Self(1 << 1u64);
4846 #[doc = "Indicates the texture color channels have not been premultiplied by the texture alpha channel."]
4847 pub const UNPREMULTIPLIED_ALPHA: CompositionLayerFlags = Self(1 << 2u64);
4848}
4849bitmask!(CompositionLayerFlags);
4850#[doc = "See [XrSpaceLocationFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocationFlagBits)"]
4851#[repr(transparent)]
4852#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4853pub struct SpaceLocationFlags(u64);
4854impl SpaceLocationFlags {
4855 #[doc = "Indicates that the orientation member contains valid data"]
4856 pub const ORIENTATION_VALID: SpaceLocationFlags = Self(1 << 0u64);
4857 #[doc = "Indicates that the position member contains valid data"]
4858 pub const POSITION_VALID: SpaceLocationFlags = Self(1 << 1u64);
4859 #[doc = "Indicates whether pose member contains an actively tracked orientation"]
4860 pub const ORIENTATION_TRACKED: SpaceLocationFlags = Self(1 << 2u64);
4861 #[doc = "Indicates whether pose member contains an actively tracked position"]
4862 pub const POSITION_TRACKED: SpaceLocationFlags = Self(1 << 3u64);
4863}
4864bitmask!(SpaceLocationFlags);
4865#[doc = "See [XrSpaceVelocityFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocityFlagBits)"]
4866#[repr(transparent)]
4867#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4868pub struct SpaceVelocityFlags(u64);
4869impl SpaceVelocityFlags {
4870 #[doc = "Indicates that the linearVelocity member contains valid data. Applications must: not read the linearVelocity field if this flag is unset."]
4871 pub const LINEAR_VALID: SpaceVelocityFlags = Self(1 << 0u64);
4872 #[doc = "Indicates that the angularVelocity member contains valid data. Applications must: not read the angularVelocity field if this flag is unset."]
4873 pub const ANGULAR_VALID: SpaceVelocityFlags = Self(1 << 1u64);
4874}
4875bitmask!(SpaceVelocityFlags);
4876#[doc = "See [XrInputSourceLocalizedNameFlagBits](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInputSourceLocalizedNameFlagBits)"]
4877#[repr(transparent)]
4878#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4879pub struct InputSourceLocalizedNameFlags(u64);
4880impl InputSourceLocalizedNameFlags {
4881 #[doc = "Asks for the part of the string which indicates the top level user path the source represents"]
4882 pub const USER_PATH: InputSourceLocalizedNameFlags = Self(1 << 0u64);
4883 #[doc = "Asks for the part of the string which represents the interaction profile of the source"]
4884 pub const INTERACTION_PROFILE: InputSourceLocalizedNameFlags = Self(1 << 1u64);
4885 #[doc = "Asks for the part of the string which represents the component on the device which needs to be interacted with"]
4886 pub const COMPONENT: InputSourceLocalizedNameFlags = Self(1 << 2u64);
4887}
4888bitmask!(InputSourceLocalizedNameFlags);
4889#[doc = "See [XrVulkanInstanceCreateFlagsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanInstanceCreateFlagsKHR)"]
4890#[repr(transparent)]
4891#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4892pub struct VulkanInstanceCreateFlagsKHR(u64);
4893impl VulkanInstanceCreateFlagsKHR {}
4894bitmask!(VulkanInstanceCreateFlagsKHR);
4895#[doc = "See [XrVulkanDeviceCreateFlagsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanDeviceCreateFlagsKHR)"]
4896#[repr(transparent)]
4897#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4898pub struct VulkanDeviceCreateFlagsKHR(u64);
4899impl VulkanDeviceCreateFlagsKHR {}
4900bitmask!(VulkanDeviceCreateFlagsKHR);
4901#[doc = "See [XrDebugUtilsMessageSeverityFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessageSeverityFlagsEXT)"]
4902#[repr(transparent)]
4903#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4904pub struct DebugUtilsMessageSeverityFlagsEXT(u64);
4905impl DebugUtilsMessageSeverityFlagsEXT {
4906 #[doc = "Most verbose output severity, typically used for debugging."]
4907 pub const VERBOSE: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 0u64);
4908 #[doc = "General info message"]
4909 pub const INFO: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 4u64);
4910 #[doc = "Indicates the item may be the cause of issues."]
4911 pub const WARNING: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 8u64);
4912 #[doc = "Indicates that the item is definitely related to erroneous behavior."]
4913 pub const ERROR: DebugUtilsMessageSeverityFlagsEXT = Self(1 << 12u64);
4914}
4915bitmask!(DebugUtilsMessageSeverityFlagsEXT);
4916#[doc = "See [XrDebugUtilsMessageTypeFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessageTypeFlagsEXT)"]
4917#[repr(transparent)]
4918#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4919pub struct DebugUtilsMessageTypeFlagsEXT(u64);
4920impl DebugUtilsMessageTypeFlagsEXT {
4921 #[doc = "Indicates this is a general message"]
4922 pub const GENERAL: DebugUtilsMessageTypeFlagsEXT = Self(1 << 0u64);
4923 #[doc = "Indicates the message is related to a validation message"]
4924 pub const VALIDATION: DebugUtilsMessageTypeFlagsEXT = Self(1 << 1u64);
4925 #[doc = "Indicates the message is related to a potential performance situation"]
4926 pub const PERFORMANCE: DebugUtilsMessageTypeFlagsEXT = Self(1 << 2u64);
4927 #[doc = "Indicates the message is related to a non-conformant runtime result"]
4928 pub const CONFORMANCE: DebugUtilsMessageTypeFlagsEXT = Self(1 << 3u64);
4929}
4930bitmask!(DebugUtilsMessageTypeFlagsEXT);
4931#[doc = "See [XrOverlayMainSessionFlagsEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOverlayMainSessionFlagsEXTX)"]
4932#[repr(transparent)]
4933#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4934pub struct OverlayMainSessionFlagsEXTX(u64);
4935impl OverlayMainSessionFlagsEXTX {
4936 #[doc = "Indicates the main session enabled `XR_KHR_composition_layer_depth`"]
4937 pub const ENABLED_COMPOSITION_LAYER_INFO_DEPTH: OverlayMainSessionFlagsEXTX = Self(1 << 0u64);
4938}
4939bitmask!(OverlayMainSessionFlagsEXTX);
4940#[doc = "See [XrOverlaySessionCreateFlagsEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOverlaySessionCreateFlagsEXTX)"]
4941#[repr(transparent)]
4942#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4943pub struct OverlaySessionCreateFlagsEXTX(u64);
4944impl OverlaySessionCreateFlagsEXTX {}
4945bitmask!(OverlaySessionCreateFlagsEXTX);
4946#[doc = "See [XrAndroidSurfaceSwapchainFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidSurfaceSwapchainFlagsFB)"]
4947#[repr(transparent)]
4948#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4949pub struct AndroidSurfaceSwapchainFlagsFB(u64);
4950impl AndroidSurfaceSwapchainFlagsFB {
4951 #[doc = "Create the underlying BufferQueue in synchronous mode"]
4952 pub const SYNCHRONOUS: AndroidSurfaceSwapchainFlagsFB = Self(1 << 0u64);
4953 #[doc = "Acquire most recent buffer whose presentation timestamp is not greater than display time of final composited frame"]
4954 pub const USE_TIMESTAMPS: AndroidSurfaceSwapchainFlagsFB = Self(1 << 1u64);
4955}
4956bitmask!(AndroidSurfaceSwapchainFlagsFB);
4957#[doc = "See [XrCompositionLayerImageLayoutFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerImageLayoutFlagsFB)"]
4958#[repr(transparent)]
4959#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4960pub struct CompositionLayerImageLayoutFlagsFB(u64);
4961impl CompositionLayerImageLayoutFlagsFB {
4962 #[doc = "The coordinate origin of the swapchain image must be considered to be flipped vertically."]
4963 pub const VERTICAL_FLIP: CompositionLayerImageLayoutFlagsFB = Self(1 << 0u64);
4964}
4965bitmask!(CompositionLayerImageLayoutFlagsFB);
4966#[doc = "See [XrCompositionLayerSecureContentFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSecureContentFlagsFB)"]
4967#[repr(transparent)]
4968#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4969pub struct CompositionLayerSecureContentFlagsFB(u64);
4970impl CompositionLayerSecureContentFlagsFB {
4971 #[doc = "Indicates the layer will only be visible inside the HMD, and not visible to external sources"]
4972 pub const EXCLUDE_LAYER: CompositionLayerSecureContentFlagsFB = Self(1 << 0u64);
4973 #[doc = "Indicates the layer will be displayed inside the HMD, but replaced by proxy content when written to external sources"]
4974 pub const REPLACE_LAYER: CompositionLayerSecureContentFlagsFB = Self(1 << 1u64);
4975}
4976bitmask!(CompositionLayerSecureContentFlagsFB);
4977#[doc = "See [XrSwapchainCreateFoveationFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateFoveationFlagsFB)"]
4978#[repr(transparent)]
4979#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4980pub struct SwapchainCreateFoveationFlagsFB(u64);
4981impl SwapchainCreateFoveationFlagsFB {
4982 #[doc = "Explicitly create the swapchain with scaled bin foveation support. The application must ensure that the swapchain is using the OpenGL graphics API and that the QCOM_texture_foveated extension is supported and enabled."]
4983 pub const SCALED_BIN: SwapchainCreateFoveationFlagsFB = Self(1 << 0u64);
4984 #[doc = "Explicitly create the swapchain with fragment density map foveation support. The application must ensure that the swapchain is using the Vulkan graphics API and that the VK_EXT_fragment_density_map extension is supported and enabled."]
4985 pub const FRAGMENT_DENSITY_MAP: SwapchainCreateFoveationFlagsFB = Self(1 << 1u64);
4986}
4987bitmask!(SwapchainCreateFoveationFlagsFB);
4988#[doc = "See [XrSwapchainStateFoveationFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateFoveationFlagsFB)"]
4989#[repr(transparent)]
4990#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4991pub struct SwapchainStateFoveationFlagsFB(u64);
4992impl SwapchainStateFoveationFlagsFB {}
4993bitmask!(SwapchainStateFoveationFlagsFB);
4994#[doc = "See [XrFoveationEyeTrackedProfileCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedProfileCreateFlagsMETA)"]
4995#[repr(transparent)]
4996#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4997pub struct FoveationEyeTrackedProfileCreateFlagsMETA(u64);
4998impl FoveationEyeTrackedProfileCreateFlagsMETA {}
4999bitmask!(FoveationEyeTrackedProfileCreateFlagsMETA);
5000#[doc = "See [XrFoveationEyeTrackedStateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedStateFlagsMETA)"]
5001#[repr(transparent)]
5002#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5003pub struct FoveationEyeTrackedStateFlagsMETA(u64);
5004impl FoveationEyeTrackedStateFlagsMETA {
5005 #[doc = "Indicates whether or not foveation data is valid. This can happen if the eye tracker is obscured, the camera has dirt, or eye lid is closed, etc."]
5006 pub const VALID: FoveationEyeTrackedStateFlagsMETA = Self(1 << 0u64);
5007}
5008bitmask!(FoveationEyeTrackedStateFlagsMETA);
5009#[doc = "See [XrTriangleMeshFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshFlagsFB)"]
5010#[repr(transparent)]
5011#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5012pub struct TriangleMeshFlagsFB(u64);
5013impl TriangleMeshFlagsFB {
5014 #[doc = "The triangle mesh is mutable (can be modified after it is created)."]
5015 pub const MUTABLE: TriangleMeshFlagsFB = Self(1 << 0u64);
5016}
5017bitmask!(TriangleMeshFlagsFB);
5018#[doc = "See [XrPassthroughFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFlagsFB)"]
5019#[repr(transparent)]
5020#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5021pub struct PassthroughFlagsFB(u64);
5022impl PassthroughFlagsFB {
5023 #[doc = "The object (passthrough, layer) is running at creation."]
5024 pub const IS_RUNNING_AT_CREATION: PassthroughFlagsFB = Self(1 << 0u64);
5025 #[doc = "The passthrough system sends depth information to the compositor. Only applicable to layer objects."]
5026 pub const LAYER_DEPTH: PassthroughFlagsFB = Self(1 << 1u64);
5027}
5028bitmask!(PassthroughFlagsFB);
5029#[doc = "See [XrPassthroughStateChangedFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughStateChangedFlagsFB)"]
5030#[repr(transparent)]
5031#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5032pub struct PassthroughStateChangedFlagsFB(u64);
5033impl PassthroughStateChangedFlagsFB {
5034 #[doc = "Passthrough system requires reinitialization."]
5035 pub const REINIT_REQUIRED: PassthroughStateChangedFlagsFB = Self(1 << 0u64);
5036 #[doc = "Non-recoverable error has occurred. A device reboot or a firmware update may be required."]
5037 pub const NON_RECOVERABLE_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 1u64);
5038 #[doc = "A recoverable error has occurred. The runtime will attempt to recover, but some functionality may be temporarily unavailable."]
5039 pub const RECOVERABLE_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 2u64);
5040 #[doc = "The runtime has recovered from a previous error and is functioning normally."]
5041 pub const RESTORED_ERROR: PassthroughStateChangedFlagsFB = Self(1 << 3u64);
5042}
5043bitmask!(PassthroughStateChangedFlagsFB);
5044#[doc = "See [XrPassthroughCapabilityFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCapabilityFlagsFB)"]
5045#[repr(transparent)]
5046#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5047pub struct PassthroughCapabilityFlagsFB(u64);
5048impl PassthroughCapabilityFlagsFB {
5049 #[doc = "The system supports passthrough."]
5050 pub const PASSTHROUGH_CAPABILITY: PassthroughCapabilityFlagsFB = Self(1 << 0u64);
5051 #[doc = "The system can show passthrough with realistic colors. XR_PASSTHROUGH_CAPABILITY_BIT_FB must: be set if XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB is set."]
5052 pub const COLOR: PassthroughCapabilityFlagsFB = Self(1 << 1u64);
5053 #[doc = "The system supports passthrough layers composited using depth testing. XR_PASSTHROUGH_CAPABILITY_BIT_FB must: be set if XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB is set."]
5054 pub const LAYER_DEPTH: PassthroughCapabilityFlagsFB = Self(1 << 2u64);
5055}
5056bitmask!(PassthroughCapabilityFlagsFB);
5057#[doc = "See [XrSemanticLabelsSupportFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsSupportFlagsFB)"]
5058#[repr(transparent)]
5059#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5060pub struct SemanticLabelsSupportFlagsFB(u64);
5061impl SemanticLabelsSupportFlagsFB {
5062 #[doc = "If set, and the runtime reports the extensionVersion as 2 or greater, the runtime may: return multiple semantic labels separated by a comma without spaces. Otherwise, the runtime must: return a single semantic label."]
5063 pub const MULTIPLE_SEMANTIC_LABELS: SemanticLabelsSupportFlagsFB = Self(1 << 0u64);
5064 #[doc = "If set, and the runtime reports the extensionVersion as 3 or greater, the runtime must: return \"TABLE\" instead of \"DESK\" as a semantic label to the application. Otherwise, the runtime must: return \"DESK\" instead of \"TABLE\" as a semantic label to the application, when applicable."]
5065 pub const ACCEPT_DESK_TO_TABLE_MIGRATION: SemanticLabelsSupportFlagsFB = Self(1 << 1u64);
5066 #[doc = "If set, and the runtime reports the extensionVersion as 4 or greater, the runtime may: return \"INVISIBLE_WALL_FACE\" instead of \"WALL_FACE\" as a semantic label to the application in order to represent an invisible wall used to conceptually separate a space (e.g., separate a living space from a kitchen space in an open floor plan house even though there is no real wall between the two spaces) instead of a real wall. Otherwise, the runtime must: return \"WALL_FACE\" as a semantic label to the application in order to represent both an invisible and real wall, when applicable."]
5067 pub const ACCEPT_INVISIBLE_WALL_FACE: SemanticLabelsSupportFlagsFB = Self(1 << 2u64);
5068}
5069bitmask!(SemanticLabelsSupportFlagsFB);
5070#[doc = "See [XrHandTrackingAimFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingAimFlagsFB)"]
5071#[repr(transparent)]
5072#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5073pub struct HandTrackingAimFlagsFB(u64);
5074impl HandTrackingAimFlagsFB {
5075 #[doc = "Aiming data is computed from additional sources beyond the hand data in the base structure"]
5076 pub const COMPUTED: HandTrackingAimFlagsFB = Self(1 << 0u64);
5077 #[doc = "Aiming data is valid"]
5078 pub const VALID: HandTrackingAimFlagsFB = Self(1 << 1u64);
5079 #[doc = "Index finger pinch discrete signal"]
5080 pub const INDEX_PINCHING: HandTrackingAimFlagsFB = Self(1 << 2u64);
5081 #[doc = "Middle finger pinch discrete signal"]
5082 pub const MIDDLE_PINCHING: HandTrackingAimFlagsFB = Self(1 << 3u64);
5083 #[doc = "Ring finger pinch discrete signal"]
5084 pub const RING_PINCHING: HandTrackingAimFlagsFB = Self(1 << 4u64);
5085 #[doc = "Little finger pinch discrete signal"]
5086 pub const LITTLE_PINCHING: HandTrackingAimFlagsFB = Self(1 << 5u64);
5087 #[doc = "System gesture is active"]
5088 pub const SYSTEM_GESTURE: HandTrackingAimFlagsFB = Self(1 << 6u64);
5089 #[doc = "Hand is currently marked as dominant for the system"]
5090 pub const DOMINANT_HAND: HandTrackingAimFlagsFB = Self(1 << 7u64);
5091 #[doc = "System menu gesture is active"]
5092 pub const MENU_PRESSED: HandTrackingAimFlagsFB = Self(1 << 8u64);
5093}
5094bitmask!(HandTrackingAimFlagsFB);
5095#[doc = "See [XrKeyboardTrackingFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingFlagsFB)"]
5096#[repr(transparent)]
5097#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5098pub struct KeyboardTrackingFlagsFB(u64);
5099impl KeyboardTrackingFlagsFB {
5100 #[doc = "indicates that the system has a physically tracked keyboard to report. If not set then no other bits should be considered to be valid or meaningful. If set either XR_KEYBOARD_TRACKING_LOCAL_BIT_FB or XR_KEYBOARD_TRACKING_REMOTE_BIT_FB must also be set."]
5101 pub const EXISTS: KeyboardTrackingFlagsFB = Self(1 << 0u64);
5102 #[doc = "indicates that the physically tracked keyboard is intended to be used in a local pairing with the system. Mutally exclusive with XR_KEYBOARD_TRACKING_REMOTE_BIT_FB."]
5103 pub const LOCAL: KeyboardTrackingFlagsFB = Self(1 << 1u64);
5104 #[doc = "indicates that the physically tracked keyboard is intended to be used while paired to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_LOCAL_BIT_FB."]
5105 pub const REMOTE: KeyboardTrackingFlagsFB = Self(1 << 2u64);
5106 #[doc = "indicates that the physically tracked keyboard is actively connected to the headset and capable of sending key data"]
5107 pub const CONNECTED: KeyboardTrackingFlagsFB = Self(1 << 3u64);
5108}
5109bitmask!(KeyboardTrackingFlagsFB);
5110#[doc = "See [XrKeyboardTrackingQueryFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingQueryFlagsFB)"]
5111#[repr(transparent)]
5112#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5113pub struct KeyboardTrackingQueryFlagsFB(u64);
5114impl KeyboardTrackingQueryFlagsFB {
5115 #[doc = "indicates the query is for the physically tracked keyboard that is intended to be used in a local pairing with the System. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB."]
5116 pub const LOCAL: KeyboardTrackingQueryFlagsFB = Self(1 << 1u64);
5117 #[doc = "indicates the query is for the physically tracked keyboard that may be connected to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB."]
5118 pub const REMOTE: KeyboardTrackingQueryFlagsFB = Self(1 << 2u64);
5119}
5120bitmask!(KeyboardTrackingQueryFlagsFB);
5121#[doc = "See [XrCompositionLayerSpaceWarpInfoFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSpaceWarpInfoFlagsFB)"]
5122#[repr(transparent)]
5123#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5124pub struct CompositionLayerSpaceWarpInfoFlagsFB(u64);
5125impl CompositionLayerSpaceWarpInfoFlagsFB {
5126 #[doc = "Skip current frame's space warp extrapolation"]
5127 pub const FRAME_SKIP: CompositionLayerSpaceWarpInfoFlagsFB = Self(1 << 0u64);
5128}
5129bitmask!(CompositionLayerSpaceWarpInfoFlagsFB);
5130#[doc = "See [XrRenderModelFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelFlagsFB)"]
5131#[repr(transparent)]
5132#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5133pub struct RenderModelFlagsFB(u64);
5134impl RenderModelFlagsFB {
5135 #[doc = "Minimal level of support. Can only contain a single mesh. Can only contain a single texture. Can not contain transparency. Assumes unlit rendering. Requires Extension KHR_texturebasisu."]
5136 pub const SUPPORTS_GLTF_2_0_SUBSET_1: RenderModelFlagsFB = Self(1 << 0u64);
5137 #[doc = "All of XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB support plus: Multiple meshes. Multiple Textures. Texture Transparency."]
5138 pub const SUPPORTS_GLTF_2_0_SUBSET_2: RenderModelFlagsFB = Self(1 << 1u64);
5139}
5140bitmask!(RenderModelFlagsFB);
5141#[doc = "See [XrDigitalLensControlFlagsALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDigitalLensControlFlagsALMALENCE)"]
5142#[repr(transparent)]
5143#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5144pub struct DigitalLensControlFlagsALMALENCE(u64);
5145impl DigitalLensControlFlagsALMALENCE {
5146 #[doc = "disables Digital Lens processing of render textures"]
5147 pub const PROCESSING_DISABLE: DigitalLensControlFlagsALMALENCE = Self(1 << 0u64);
5148}
5149bitmask!(DigitalLensControlFlagsALMALENCE);
5150#[doc = "See [XrCompositionLayerSettingsFlagsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSettingsFlagsFB)"]
5151#[repr(transparent)]
5152#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5153pub struct CompositionLayerSettingsFlagsFB(u64);
5154impl CompositionLayerSettingsFlagsFB {
5155 #[doc = "Indicates compositor may: use layer texture supersampling."]
5156 pub const NORMAL_SUPER_SAMPLING: CompositionLayerSettingsFlagsFB = Self(1 << 0u64);
5157 #[doc = "Indicates compositor may: use high quality layer texture supersampling."]
5158 pub const QUALITY_SUPER_SAMPLING: CompositionLayerSettingsFlagsFB = Self(1 << 1u64);
5159 #[doc = "Indicates compositor may: use layer texture sharpening."]
5160 pub const NORMAL_SHARPENING: CompositionLayerSettingsFlagsFB = Self(1 << 2u64);
5161 #[doc = "Indicates compositor may: use high quality layer texture sharpening."]
5162 pub const QUALITY_SHARPENING: CompositionLayerSettingsFlagsFB = Self(1 << 3u64);
5163 #[doc = "Indicates compositor may: automatically toggle a texture filtering mechanism to improve visual quality of layer. This must: not be the only bit set. (Added by XR_META_automatic_layer_filter)"]
5164 pub const AUTO_LAYER_FILTER: CompositionLayerSettingsFlagsFB = Self(1 << 5u64);
5165}
5166bitmask!(CompositionLayerSettingsFlagsFB);
5167#[doc = "See [XrExternalCameraStatusFlagsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraStatusFlagsOCULUS)"]
5168#[repr(transparent)]
5169#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5170pub struct ExternalCameraStatusFlagsOCULUS(u64);
5171impl ExternalCameraStatusFlagsOCULUS {
5172 #[doc = "External camera is connected"]
5173 pub const CONNECTED: ExternalCameraStatusFlagsOCULUS = Self(1 << 0u64);
5174 #[doc = "External camera is undergoing calibration"]
5175 pub const CALIBRATING: ExternalCameraStatusFlagsOCULUS = Self(1 << 1u64);
5176 #[doc = "External camera has tried and failed calibration"]
5177 pub const CALIBRATION_FAILED: ExternalCameraStatusFlagsOCULUS = Self(1 << 2u64);
5178 #[doc = "External camera has tried and passed calibration"]
5179 pub const CALIBRATED: ExternalCameraStatusFlagsOCULUS = Self(1 << 3u64);
5180 #[doc = "External camera is capturing"]
5181 pub const CAPTURING: ExternalCameraStatusFlagsOCULUS = Self(1 << 4u64);
5182}
5183bitmask!(ExternalCameraStatusFlagsOCULUS);
5184#[doc = "See [XrPerformanceMetricsCounterFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterFlagsMETA)"]
5185#[repr(transparent)]
5186#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5187pub struct PerformanceMetricsCounterFlagsMETA(u64);
5188impl PerformanceMetricsCounterFlagsMETA {
5189 #[doc = "Indicates any of the values in XrPerformanceMetricsCounterMETA is valid."]
5190 pub const ANY_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 0u64);
5191 #[doc = "Indicates the uintValue in XrPerformanceMetricsCounterMETA is valid."]
5192 pub const UINT_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 1u64);
5193 #[doc = "Indicates the floatValue in XrPerformanceMetricsCounterMETA is valid."]
5194 pub const FLOAT_VALUE_VALID: PerformanceMetricsCounterFlagsMETA = Self(1 << 2u64);
5195}
5196bitmask!(PerformanceMetricsCounterFlagsMETA);
5197#[doc = "See [XrPassthroughPreferenceFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughPreferenceFlagsMETA)"]
5198#[repr(transparent)]
5199#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5200pub struct PassthroughPreferenceFlagsMETA(u64);
5201impl PassthroughPreferenceFlagsMETA {
5202 #[doc = "Indicates that the runtime recommends apps to default to a mixed reality experience with passthrough (if supported)."]
5203 pub const DEFAULT_TO_ACTIVE: PassthroughPreferenceFlagsMETA = Self(1 << 0u64);
5204}
5205bitmask!(PassthroughPreferenceFlagsMETA);
5206#[doc = "See [XrFoveationDynamicFlagsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicFlagsHTC)"]
5207#[repr(transparent)]
5208#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5209pub struct FoveationDynamicFlagsHTC(u64);
5210impl FoveationDynamicFlagsHTC {
5211 #[doc = "Allow system to set periphery pixel density dynamically."]
5212 pub const LEVEL_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 0u64);
5213 #[doc = "Allow system to set clear FOV degree dynamically."]
5214 pub const CLEAR_FOV_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 1u64);
5215 #[doc = "Allow system to set focal center offset dynamically."]
5216 pub const FOCAL_CENTER_OFFSET_ENABLED: FoveationDynamicFlagsHTC = Self(1 << 2u64);
5217}
5218bitmask!(FoveationDynamicFlagsHTC);
5219#[doc = "See [XrFrameEndInfoFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfoFlagsML)"]
5220#[repr(transparent)]
5221#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5222pub struct FrameEndInfoFlagsML(u64);
5223impl FrameEndInfoFlagsML {
5224 #[doc = "Indicates that the content for this frame is protected and should not be recorded or captured outside the graphics system."]
5225 pub const PROTECTED: FrameEndInfoFlagsML = Self(1 << 0u64);
5226 #[doc = "Indicates that a soft fade to transparent should be added to the frame in the compositor to blend any hard edges at the FOV limits."]
5227 pub const VIGNETTE: FrameEndInfoFlagsML = Self(1 << 1u64);
5228}
5229bitmask!(FrameEndInfoFlagsML);
5230#[doc = "See [XrGlobalDimmerFrameEndInfoFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGlobalDimmerFrameEndInfoFlagsML)"]
5231#[repr(transparent)]
5232#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5233pub struct GlobalDimmerFrameEndInfoFlagsML(u64);
5234impl GlobalDimmerFrameEndInfoFlagsML {
5235 #[doc = "Indicates that the global dimmer should: be enabled and controlled by dimmerValue."]
5236 pub const ENABLED: GlobalDimmerFrameEndInfoFlagsML = Self(1 << 0u64);
5237}
5238bitmask!(GlobalDimmerFrameEndInfoFlagsML);
5239#[doc = "See [XrPlaneDetectorFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorFlagsEXT)"]
5240#[repr(transparent)]
5241#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5242pub struct PlaneDetectorFlagsEXT(u64);
5243impl PlaneDetectorFlagsEXT {
5244 #[doc = "populate the plane contour information"]
5245 pub const ENABLE_CONTOUR: PlaneDetectorFlagsEXT = Self(1 << 0u64);
5246}
5247bitmask!(PlaneDetectorFlagsEXT);
5248#[doc = "See [XrPlaneDetectionCapabilityFlagsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectionCapabilityFlagsEXT)"]
5249#[repr(transparent)]
5250#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5251pub struct PlaneDetectionCapabilityFlagsEXT(u64);
5252impl PlaneDetectionCapabilityFlagsEXT {
5253 #[doc = "plane detection is supported"]
5254 pub const PLANE_DETECTION: PlaneDetectionCapabilityFlagsEXT = Self(1 << 0u64);
5255 #[doc = "polygon buffers for holes in planes can be generated"]
5256 pub const PLANE_HOLES: PlaneDetectionCapabilityFlagsEXT = Self(1 << 1u64);
5257 #[doc = "plane detection supports ceiling semantic classification"]
5258 pub const SEMANTIC_CEILING: PlaneDetectionCapabilityFlagsEXT = Self(1 << 2u64);
5259 #[doc = "plane detection supports floor semantic classification"]
5260 pub const SEMANTIC_FLOOR: PlaneDetectionCapabilityFlagsEXT = Self(1 << 3u64);
5261 #[doc = "plane detection supports wall semantic classification"]
5262 pub const SEMANTIC_WALL: PlaneDetectionCapabilityFlagsEXT = Self(1 << 4u64);
5263 #[doc = "plane detection supports platform semantic classification (for example table tops)"]
5264 pub const SEMANTIC_PLATFORM: PlaneDetectionCapabilityFlagsEXT = Self(1 << 5u64);
5265 #[doc = "plane detection supports plane orientation classification. If not supported planes are always classified as ARBITRARY."]
5266 pub const ORIENTATION: PlaneDetectionCapabilityFlagsEXT = Self(1 << 6u64);
5267}
5268bitmask!(PlaneDetectionCapabilityFlagsEXT);
5269#[doc = "See [XrVirtualKeyboardInputStateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputStateFlagsMETA)"]
5270#[repr(transparent)]
5271#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5272pub struct VirtualKeyboardInputStateFlagsMETA(u64);
5273impl VirtualKeyboardInputStateFlagsMETA {
5274 #[doc = "If the input source is considered 'pressed' at all. Pinch for hands, Primary button for controllers."]
5275 pub const PRESSED: VirtualKeyboardInputStateFlagsMETA = Self(1 << 0u64);
5276}
5277bitmask!(VirtualKeyboardInputStateFlagsMETA);
5278#[doc = "See [XrLocalizationMapErrorFlagsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapErrorFlagsML)"]
5279#[repr(transparent)]
5280#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5281pub struct LocalizationMapErrorFlagsML(u64);
5282impl LocalizationMapErrorFlagsML {
5283 #[doc = "Localization failed for an unknown reason."]
5284 pub const UNKNOWN: LocalizationMapErrorFlagsML = Self(1 << 0u64);
5285 #[doc = "Localization failed because the user is outside of the mapped area."]
5286 pub const OUT_OF_MAPPED_AREA: LocalizationMapErrorFlagsML = Self(1 << 1u64);
5287 #[doc = "There are not enough features in the environment to successfully localize."]
5288 pub const LOW_FEATURE_COUNT: LocalizationMapErrorFlagsML = Self(1 << 2u64);
5289 #[doc = "Localization failed due to excessive motion."]
5290 pub const EXCESSIVE_MOTION: LocalizationMapErrorFlagsML = Self(1 << 3u64);
5291 #[doc = "Localization failed because the lighting levels are too low in the environment."]
5292 pub const LOW_LIGHT: LocalizationMapErrorFlagsML = Self(1 << 4u64);
5293 #[doc = "A headpose failure caused localization to be unsuccessful."]
5294 pub const HEADPOSE: LocalizationMapErrorFlagsML = Self(1 << 5u64);
5295}
5296bitmask!(LocalizationMapErrorFlagsML);
5297#[doc = "See [XrEnvironmentDepthProviderCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderCreateFlagsMETA)"]
5298#[repr(transparent)]
5299#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5300pub struct EnvironmentDepthProviderCreateFlagsMETA(u64);
5301impl EnvironmentDepthProviderCreateFlagsMETA {}
5302bitmask!(EnvironmentDepthProviderCreateFlagsMETA);
5303#[doc = "See [XrEnvironmentDepthSwapchainCreateFlagsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainCreateFlagsMETA)"]
5304#[repr(transparent)]
5305#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5306pub struct EnvironmentDepthSwapchainCreateFlagsMETA(u64);
5307impl EnvironmentDepthSwapchainCreateFlagsMETA {}
5308bitmask!(EnvironmentDepthSwapchainCreateFlagsMETA);
5309#[doc = "See [XrInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstance)"]
5310#[repr(transparent)]
5311#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5312pub struct Instance(u64);
5313handle!(Instance);
5314#[doc = "See [XrSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSession)"]
5315#[repr(transparent)]
5316#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5317pub struct Session(u64);
5318handle!(Session);
5319#[doc = "See [XrActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSet)"]
5320#[repr(transparent)]
5321#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5322pub struct ActionSet(u64);
5323handle!(ActionSet);
5324#[doc = "See [XrAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAction)"]
5325#[repr(transparent)]
5326#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5327pub struct Action(u64);
5328handle!(Action);
5329#[doc = "See [XrSwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchain)"]
5330#[repr(transparent)]
5331#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5332pub struct Swapchain(u64);
5333handle!(Swapchain);
5334#[doc = "See [XrSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpace)"]
5335#[repr(transparent)]
5336#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5337pub struct Space(u64);
5338handle!(Space);
5339#[doc = "See [XrDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerEXT)"]
5340#[repr(transparent)]
5341#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5342pub struct DebugUtilsMessengerEXT(u64);
5343handle!(DebugUtilsMessengerEXT);
5344#[doc = "See [XrSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorMSFT)"]
5345#[repr(transparent)]
5346#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5347pub struct SpatialAnchorMSFT(u64);
5348handle!(SpatialAnchorMSFT);
5349#[doc = "See [XrHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackerEXT)"]
5350#[repr(transparent)]
5351#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5352pub struct HandTrackerEXT(u64);
5353handle!(HandTrackerEXT);
5354#[doc = "See [XrFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationProfileFB)"]
5355#[repr(transparent)]
5356#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5357pub struct FoveationProfileFB(u64);
5358handle!(FoveationProfileFB);
5359#[doc = "See [XrTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshFB)"]
5360#[repr(transparent)]
5361#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5362pub struct TriangleMeshFB(u64);
5363handle!(TriangleMeshFB);
5364#[doc = "See [XrPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFB)"]
5365#[repr(transparent)]
5366#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5367pub struct PassthroughFB(u64);
5368handle!(PassthroughFB);
5369#[doc = "See [XrPassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerFB)"]
5370#[repr(transparent)]
5371#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5372pub struct PassthroughLayerFB(u64);
5373handle!(PassthroughLayerFB);
5374#[doc = "See [XrGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceFB)"]
5375#[repr(transparent)]
5376#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5377pub struct GeometryInstanceFB(u64);
5378handle!(GeometryInstanceFB);
5379#[doc = "See [XrFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackerHTC)"]
5380#[repr(transparent)]
5381#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5382pub struct FacialTrackerHTC(u64);
5383handle!(FacialTrackerHTC);
5384#[doc = "See [XrPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughHTC)"]
5385#[repr(transparent)]
5386#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5387pub struct PassthroughHTC(u64);
5388handle!(PassthroughHTC);
5389#[doc = "See [XrFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerFB)"]
5390#[repr(transparent)]
5391#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5392pub struct FaceTrackerFB(u64);
5393handle!(FaceTrackerFB);
5394#[doc = "See [XrFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTracker2FB)"]
5395#[repr(transparent)]
5396#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5397pub struct FaceTracker2FB(u64);
5398handle!(FaceTracker2FB);
5399#[doc = "See [XrBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyTrackerFB)"]
5400#[repr(transparent)]
5401#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5402pub struct BodyTrackerFB(u64);
5403handle!(BodyTrackerFB);
5404#[doc = "See [XrEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeTrackerFB)"]
5405#[repr(transparent)]
5406#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5407pub struct EyeTrackerFB(u64);
5408handle!(EyeTrackerFB);
5409#[doc = "See [XrSpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUserFB)"]
5410#[repr(transparent)]
5411#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5412pub struct SpaceUserFB(u64);
5413handle!(SpaceUserFB);
5414#[doc = "See [XrPassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutMETA)"]
5415#[repr(transparent)]
5416#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5417pub struct PassthroughColorLutMETA(u64);
5418handle!(PassthroughColorLutMETA);
5419#[doc = "See [XrPlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorEXT)"]
5420#[repr(transparent)]
5421#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5422pub struct PlaneDetectorEXT(u64);
5423handle!(PlaneDetectorEXT);
5424#[doc = "See [XrVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardMETA)"]
5425#[repr(transparent)]
5426#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5427pub struct VirtualKeyboardMETA(u64);
5428handle!(VirtualKeyboardMETA);
5429#[doc = "See [XrExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExportedLocalizationMapML)"]
5430#[repr(transparent)]
5431#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5432pub struct ExportedLocalizationMapML(u64);
5433handle!(ExportedLocalizationMapML);
5434#[doc = "See [XrMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorML)"]
5435#[repr(transparent)]
5436#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5437pub struct MarkerDetectorML(u64);
5438handle!(MarkerDetectorML);
5439#[doc = "See [XrEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderMETA)"]
5440#[repr(transparent)]
5441#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5442pub struct EnvironmentDepthProviderMETA(u64);
5443handle!(EnvironmentDepthProviderMETA);
5444#[doc = "See [XrEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainMETA)"]
5445#[repr(transparent)]
5446#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5447pub struct EnvironmentDepthSwapchainMETA(u64);
5448handle!(EnvironmentDepthSwapchainMETA);
5449#[doc = "See [XrSpatialGraphNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingMSFT)"]
5450#[repr(transparent)]
5451#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5452pub struct SpatialGraphNodeBindingMSFT(u64);
5453handle!(SpatialGraphNodeBindingMSFT);
5454#[doc = "See [XrSceneObserverMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneObserverMSFT)"]
5455#[repr(transparent)]
5456#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5457pub struct SceneObserverMSFT(u64);
5458handle!(SceneObserverMSFT);
5459#[doc = "See [XrSceneMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneMSFT)"]
5460#[repr(transparent)]
5461#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5462pub struct SceneMSFT(u64);
5463handle!(SceneMSFT);
5464#[doc = "See [XrSpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorStoreConnectionMSFT)"]
5465#[repr(transparent)]
5466#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
5467pub struct SpatialAnchorStoreConnectionMSFT(u64);
5468handle!(SpatialAnchorStoreConnectionMSFT);
5469#[repr(C)]
5470#[derive(Copy, Clone, Debug, Default, PartialEq)]
5471#[doc = "See [XrVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector2f)"]
5472pub struct Vector2f {
5473 pub x: f32,
5474 pub y: f32,
5475}
5476#[repr(C)]
5477#[derive(Copy, Clone, Debug, Default, PartialEq)]
5478#[doc = "See [XrVector3f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector3f)"]
5479pub struct Vector3f {
5480 pub x: f32,
5481 pub y: f32,
5482 pub z: f32,
5483}
5484#[repr(C)]
5485#[derive(Copy, Clone, Debug, Default, PartialEq)]
5486#[doc = "See [XrVector4f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector4f)"]
5487pub struct Vector4f {
5488 pub x: f32,
5489 pub y: f32,
5490 pub z: f32,
5491 pub w: f32,
5492}
5493#[repr(C)]
5494#[derive(Copy, Clone, Debug, Default, PartialEq)]
5495#[doc = "See [XrColor4f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColor4f)"]
5496pub struct Color4f {
5497 pub r: f32,
5498 pub g: f32,
5499 pub b: f32,
5500 pub a: f32,
5501}
5502#[repr(C)]
5503#[derive(Copy, Clone, Debug, Default, PartialEq)]
5504#[doc = "See [XrQuaternionf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrQuaternionf)"]
5505pub struct Quaternionf {
5506 pub x: f32,
5507 pub y: f32,
5508 pub z: f32,
5509 pub w: f32,
5510}
5511#[repr(C)]
5512#[derive(Copy, Clone, Debug, Default, PartialEq)]
5513#[doc = "See [XrPosef](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPosef)"]
5514pub struct Posef {
5515 pub orientation: Quaternionf,
5516 pub position: Vector3f,
5517}
5518#[repr(C)]
5519#[derive(Copy, Clone, Debug, Default, PartialEq)]
5520#[doc = "See [XrOffset2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset2Df)"]
5521pub struct Offset2Df {
5522 pub x: f32,
5523 pub y: f32,
5524}
5525#[repr(C)]
5526#[derive(Copy, Clone, Debug, Default, PartialEq)]
5527#[doc = "See [XrExtent2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent2Df)"]
5528pub struct Extent2Df {
5529 pub width: f32,
5530 pub height: f32,
5531}
5532#[repr(C)]
5533#[derive(Copy, Clone, Debug, Default, PartialEq)]
5534#[doc = "See [XrRect2Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect2Df)"]
5535pub struct Rect2Df {
5536 pub offset: Offset2Df,
5537 pub extent: Extent2Df,
5538}
5539#[repr(C)]
5540#[derive(Copy, Clone, Debug, Default, PartialEq)]
5541#[doc = "See [XrOffset2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset2Di)"]
5542pub struct Offset2Di {
5543 pub x: i32,
5544 pub y: i32,
5545}
5546#[repr(C)]
5547#[derive(Copy, Clone, Debug, Default, PartialEq)]
5548#[doc = "See [XrExtent2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent2Di)"]
5549pub struct Extent2Di {
5550 pub width: i32,
5551 pub height: i32,
5552}
5553#[repr(C)]
5554#[derive(Copy, Clone, Debug, Default, PartialEq)]
5555#[doc = "See [XrRect2Di](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect2Di)"]
5556pub struct Rect2Di {
5557 pub offset: Offset2Di,
5558 pub extent: Extent2Di,
5559}
5560#[repr(C)]
5561#[derive(Copy, Clone, Debug, PartialEq)]
5562#[doc = "See [XrNegotiateLoaderInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateLoaderInfo)"]
5563pub struct NegotiateLoaderInfo {
5564 pub struct_type: LoaderInterfaceStructs,
5565 pub struct_version: u32,
5566 pub struct_size: usize,
5567 pub min_interface_version: u32,
5568 pub max_interface_version: u32,
5569 pub min_api_version: Version,
5570 pub max_api_version: Version,
5571}
5572#[repr(C)]
5573#[derive(Copy, Clone, Debug, PartialEq)]
5574#[doc = "See [XrNegotiateApiLayerRequest](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateApiLayerRequest)"]
5575pub struct NegotiateApiLayerRequest {
5576 pub struct_type: LoaderInterfaceStructs,
5577 pub struct_version: u32,
5578 pub struct_size: usize,
5579 pub layer_interface_version: u32,
5580 pub layer_api_version: Version,
5581 pub get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5582 pub create_api_layer_instance: Option<pfn::CreateApiLayerInstance>,
5583}
5584#[repr(C)]
5585#[derive(Copy, Clone, Debug, PartialEq)]
5586#[doc = "See [XrNegotiateRuntimeRequest](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrNegotiateRuntimeRequest)"]
5587pub struct NegotiateRuntimeRequest {
5588 pub struct_type: LoaderInterfaceStructs,
5589 pub struct_version: u32,
5590 pub struct_size: usize,
5591 pub runtime_interface_version: u32,
5592 pub runtime_api_version: Version,
5593 pub get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5594}
5595#[repr(C)]
5596#[derive(Copy, Clone)]
5597#[doc = "See [XrApiLayerNextInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerNextInfo)"]
5598pub struct ApiLayerNextInfo {
5599 pub struct_type: LoaderInterfaceStructs,
5600 pub struct_version: u32,
5601 pub struct_size: usize,
5602 pub layer_name: [c_char; MAX_API_LAYER_NAME_SIZE],
5603 pub next_get_instance_proc_addr: Option<pfn::GetInstanceProcAddr>,
5604 pub next_create_api_layer_instance: Option<pfn::CreateApiLayerInstance>,
5605 pub next: *mut ApiLayerNextInfo,
5606}
5607#[repr(C)]
5608#[derive(Copy, Clone)]
5609#[doc = "See [XrApiLayerCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerCreateInfo)"]
5610pub struct ApiLayerCreateInfo {
5611 pub struct_type: LoaderInterfaceStructs,
5612 pub struct_version: u32,
5613 pub struct_size: usize,
5614 pub loader_instance: *mut c_void,
5615 pub settings_file_location: [c_char; API_LAYER_MAX_SETTINGS_PATH_SIZE],
5616 pub next_info: *mut ApiLayerNextInfo,
5617}
5618#[repr(C)]
5619#[derive(Copy, Clone, Debug)]
5620#[doc = "See [XrBaseInStructure](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBaseInStructure)"]
5621pub struct BaseInStructure {
5622 pub ty: StructureType,
5623 pub next: *const BaseInStructure,
5624}
5625#[repr(C)]
5626#[derive(Copy, Clone, Debug)]
5627#[doc = "See [XrBaseOutStructure](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBaseOutStructure)"]
5628pub struct BaseOutStructure {
5629 pub ty: StructureType,
5630 pub next: *mut BaseOutStructure,
5631}
5632#[repr(C)]
5633#[derive(Copy, Clone, Debug)]
5634#[doc = "See [XrApiLayerProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApiLayerProperties)"]
5635pub struct ApiLayerProperties {
5636 pub ty: StructureType,
5637 pub next: *mut c_void,
5638 pub layer_name: [c_char; MAX_API_LAYER_NAME_SIZE],
5639 pub spec_version: Version,
5640 pub layer_version: u32,
5641 pub description: [c_char; MAX_API_LAYER_DESCRIPTION_SIZE],
5642}
5643impl ApiLayerProperties {
5644 pub const TYPE: StructureType = StructureType::API_LAYER_PROPERTIES;
5645 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5646 #[inline]
5647 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5648 let mut x = MaybeUninit::<Self>::uninit();
5649 unsafe {
5650 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5651 ty: Self::TYPE,
5652 next,
5653 });
5654 }
5655 x
5656 }
5657}
5658#[repr(C)]
5659#[derive(Copy, Clone, Debug)]
5660#[doc = "See [XrExtensionProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtensionProperties)"]
5661pub struct ExtensionProperties {
5662 pub ty: StructureType,
5663 pub next: *mut c_void,
5664 pub extension_name: [c_char; MAX_EXTENSION_NAME_SIZE],
5665 pub extension_version: u32,
5666}
5667impl ExtensionProperties {
5668 pub const TYPE: StructureType = StructureType::EXTENSION_PROPERTIES;
5669 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5670 #[inline]
5671 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5672 let mut x = MaybeUninit::<Self>::uninit();
5673 unsafe {
5674 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5675 ty: Self::TYPE,
5676 next,
5677 });
5678 }
5679 x
5680 }
5681}
5682#[repr(C)]
5683#[derive(Copy, Clone, Debug)]
5684#[doc = "See [XrApplicationInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrApplicationInfo)"]
5685pub struct ApplicationInfo {
5686 pub application_name: [c_char; MAX_APPLICATION_NAME_SIZE],
5687 pub application_version: u32,
5688 pub engine_name: [c_char; MAX_ENGINE_NAME_SIZE],
5689 pub engine_version: u32,
5690 pub api_version: Version,
5691}
5692#[repr(C)]
5693#[derive(Copy, Clone, Debug)]
5694#[doc = "See [XrInstanceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateInfo)"]
5695pub struct InstanceCreateInfo {
5696 pub ty: StructureType,
5697 pub next: *const c_void,
5698 pub create_flags: InstanceCreateFlags,
5699 pub application_info: ApplicationInfo,
5700 pub enabled_api_layer_count: u32,
5701 pub enabled_api_layer_names: *const *const c_char,
5702 pub enabled_extension_count: u32,
5703 pub enabled_extension_names: *const *const c_char,
5704}
5705impl InstanceCreateInfo {
5706 pub const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO;
5707}
5708#[repr(C)]
5709#[derive(Copy, Clone, Debug)]
5710#[doc = "See [XrInstanceProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceProperties)"]
5711pub struct InstanceProperties {
5712 pub ty: StructureType,
5713 pub next: *mut c_void,
5714 pub runtime_version: Version,
5715 pub runtime_name: [c_char; MAX_RUNTIME_NAME_SIZE],
5716}
5717impl InstanceProperties {
5718 pub const TYPE: StructureType = StructureType::INSTANCE_PROPERTIES;
5719 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5720 #[inline]
5721 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5722 let mut x = MaybeUninit::<Self>::uninit();
5723 unsafe {
5724 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5725 ty: Self::TYPE,
5726 next,
5727 });
5728 }
5729 x
5730 }
5731}
5732#[repr(C)]
5733#[derive(Copy, Clone, Debug)]
5734#[doc = "See [XrSystemGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemGetInfo)"]
5735pub struct SystemGetInfo {
5736 pub ty: StructureType,
5737 pub next: *const c_void,
5738 pub form_factor: FormFactor,
5739}
5740impl SystemGetInfo {
5741 pub const TYPE: StructureType = StructureType::SYSTEM_GET_INFO;
5742}
5743#[repr(C)]
5744#[derive(Copy, Clone, Debug)]
5745#[doc = "See [XrSystemProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemProperties)"]
5746pub struct SystemProperties {
5747 pub ty: StructureType,
5748 pub next: *mut c_void,
5749 pub system_id: SystemId,
5750 pub vendor_id: u32,
5751 pub system_name: [c_char; MAX_SYSTEM_NAME_SIZE],
5752 pub graphics_properties: SystemGraphicsProperties,
5753 pub tracking_properties: SystemTrackingProperties,
5754}
5755impl SystemProperties {
5756 pub const TYPE: StructureType = StructureType::SYSTEM_PROPERTIES;
5757 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5758 #[inline]
5759 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5760 let mut x = MaybeUninit::<Self>::uninit();
5761 unsafe {
5762 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5763 ty: Self::TYPE,
5764 next,
5765 });
5766 }
5767 x
5768 }
5769}
5770#[repr(C)]
5771#[derive(Copy, Clone, Debug, Default, PartialEq)]
5772#[doc = "See [XrSystemGraphicsProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemGraphicsProperties)"]
5773pub struct SystemGraphicsProperties {
5774 pub max_swapchain_image_height: u32,
5775 pub max_swapchain_image_width: u32,
5776 pub max_layer_count: u32,
5777}
5778#[repr(C)]
5779#[derive(Copy, Clone, Debug, Default, PartialEq)]
5780#[doc = "See [XrSystemTrackingProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemTrackingProperties)"]
5781pub struct SystemTrackingProperties {
5782 pub orientation_tracking: Bool32,
5783 pub position_tracking: Bool32,
5784}
5785#[repr(C)]
5786#[derive(Copy, Clone, Debug)]
5787#[doc = "See [XrGraphicsBindingOpenGLWin32KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLWin32KHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5788#[cfg(windows)]
5789pub struct GraphicsBindingOpenGLWin32KHR {
5790 pub ty: StructureType,
5791 pub next: *const c_void,
5792 pub h_dc: HDC,
5793 pub h_glrc: HGLRC,
5794}
5795#[cfg(windows)]
5796impl GraphicsBindingOpenGLWin32KHR {
5797 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_WIN32_KHR;
5798}
5799#[repr(C)]
5800#[derive(Copy, Clone, Debug)]
5801#[doc = "See [XrGraphicsBindingOpenGLXlibKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLXlibKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5802pub struct GraphicsBindingOpenGLXlibKHR {
5803 pub ty: StructureType,
5804 pub next: *const c_void,
5805 pub x_display: *mut Display,
5806 pub visualid: u32,
5807 pub glx_fb_config: GLXFBConfig,
5808 pub glx_drawable: GLXDrawable,
5809 pub glx_context: GLXContext,
5810}
5811impl GraphicsBindingOpenGLXlibKHR {
5812 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_XLIB_KHR;
5813}
5814#[repr(C)]
5815#[derive(Copy, Clone, Debug)]
5816#[doc = "See [XrGraphicsBindingOpenGLXcbKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLXcbKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5817pub struct GraphicsBindingOpenGLXcbKHR {
5818 pub ty: StructureType,
5819 pub next: *const c_void,
5820 pub connection: *mut xcb_connection_t,
5821 pub screen_number: u32,
5822 pub fbconfigid: xcb_glx_fbconfig_t,
5823 pub visualid: xcb_visualid_t,
5824 pub glx_drawable: xcb_glx_drawable_t,
5825 pub glx_context: xcb_glx_context_t,
5826}
5827impl GraphicsBindingOpenGLXcbKHR {
5828 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_XCB_KHR;
5829}
5830#[repr(C)]
5831#[derive(Copy, Clone, Debug)]
5832#[doc = "See [XrGraphicsBindingOpenGLWaylandKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLWaylandKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5833pub struct GraphicsBindingOpenGLWaylandKHR {
5834 pub ty: StructureType,
5835 pub next: *const c_void,
5836 pub display: *mut wl_display,
5837}
5838impl GraphicsBindingOpenGLWaylandKHR {
5839 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_WAYLAND_KHR;
5840}
5841#[repr(C)]
5842#[derive(Copy, Clone, Debug)]
5843#[doc = "See [XrGraphicsBindingD3D11KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingD3D11KHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
5844#[cfg(windows)]
5845pub struct GraphicsBindingD3D11KHR {
5846 pub ty: StructureType,
5847 pub next: *const c_void,
5848 pub device: *mut ID3D11Device,
5849}
5850#[cfg(windows)]
5851impl GraphicsBindingD3D11KHR {
5852 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_D3D11_KHR;
5853}
5854#[repr(C)]
5855#[derive(Copy, Clone, Debug)]
5856#[doc = "See [XrGraphicsBindingD3D12KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingD3D12KHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
5857#[cfg(windows)]
5858pub struct GraphicsBindingD3D12KHR {
5859 pub ty: StructureType,
5860 pub next: *const c_void,
5861 pub device: *mut ID3D12Device,
5862 pub queue: *mut ID3D12CommandQueue,
5863}
5864#[cfg(windows)]
5865impl GraphicsBindingD3D12KHR {
5866 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_D3D12_KHR;
5867}
5868#[repr(C)]
5869#[derive(Copy, Clone, Debug)]
5870#[doc = "See [XrGraphicsBindingOpenGLESAndroidKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingOpenGLESAndroidKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
5871#[cfg(target_os = "android")]
5872pub struct GraphicsBindingOpenGLESAndroidKHR {
5873 pub ty: StructureType,
5874 pub next: *const c_void,
5875 pub display: EGLDisplay,
5876 pub config: EGLConfig,
5877 pub context: EGLContext,
5878}
5879#[cfg(target_os = "android")]
5880impl GraphicsBindingOpenGLESAndroidKHR {
5881 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR;
5882}
5883#[repr(C)]
5884#[derive(Copy, Clone, Debug)]
5885#[doc = "See [XrGraphicsBindingVulkanKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingVulkanKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
5886pub struct GraphicsBindingVulkanKHR {
5887 pub ty: StructureType,
5888 pub next: *const c_void,
5889 pub instance: VkInstance,
5890 pub physical_device: VkPhysicalDevice,
5891 pub device: VkDevice,
5892 pub queue_family_index: u32,
5893 pub queue_index: u32,
5894}
5895impl GraphicsBindingVulkanKHR {
5896 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_VULKAN_KHR;
5897}
5898pub type GraphicsBindingVulkan2KHR = GraphicsBindingVulkanKHR;
5899#[repr(C)]
5900#[derive(Copy, Clone, Debug)]
5901#[doc = "See [XrSessionCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateInfo)"]
5902pub struct SessionCreateInfo {
5903 pub ty: StructureType,
5904 pub next: *const c_void,
5905 pub create_flags: SessionCreateFlags,
5906 pub system_id: SystemId,
5907}
5908impl SessionCreateInfo {
5909 pub const TYPE: StructureType = StructureType::SESSION_CREATE_INFO;
5910}
5911#[repr(C)]
5912#[derive(Copy, Clone, Debug)]
5913#[doc = "See [XrSessionBeginInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionBeginInfo)"]
5914pub struct SessionBeginInfo {
5915 pub ty: StructureType,
5916 pub next: *const c_void,
5917 pub primary_view_configuration_type: ViewConfigurationType,
5918}
5919impl SessionBeginInfo {
5920 pub const TYPE: StructureType = StructureType::SESSION_BEGIN_INFO;
5921}
5922#[repr(C)]
5923#[derive(Copy, Clone, Debug)]
5924#[doc = "See [XrSwapchainCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateInfo)"]
5925pub struct SwapchainCreateInfo {
5926 pub ty: StructureType,
5927 pub next: *const c_void,
5928 pub create_flags: SwapchainCreateFlags,
5929 pub usage_flags: SwapchainUsageFlags,
5930 pub format: i64,
5931 pub sample_count: u32,
5932 pub width: u32,
5933 pub height: u32,
5934 pub face_count: u32,
5935 pub array_size: u32,
5936 pub mip_count: u32,
5937}
5938impl SwapchainCreateInfo {
5939 pub const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO;
5940}
5941#[repr(C)]
5942#[derive(Copy, Clone, Debug)]
5943#[doc = "See [XrSwapchainImageBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageBaseHeader)"]
5944pub struct SwapchainImageBaseHeader {
5945 pub ty: StructureType,
5946 pub next: *mut c_void,
5947}
5948#[repr(C)]
5949#[derive(Copy, Clone, Debug)]
5950#[doc = "See [XrSwapchainImageOpenGLKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageOpenGLKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
5951pub struct SwapchainImageOpenGLKHR {
5952 pub ty: StructureType,
5953 pub next: *mut c_void,
5954 pub image: u32,
5955}
5956impl SwapchainImageOpenGLKHR {
5957 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_OPENGL_KHR;
5958 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5959 #[inline]
5960 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5961 let mut x = MaybeUninit::<Self>::uninit();
5962 unsafe {
5963 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5964 ty: Self::TYPE,
5965 next,
5966 });
5967 }
5968 x
5969 }
5970}
5971#[repr(C)]
5972#[derive(Copy, Clone, Debug)]
5973#[doc = "See [XrSwapchainImageOpenGLESKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageOpenGLESKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
5974pub struct SwapchainImageOpenGLESKHR {
5975 pub ty: StructureType,
5976 pub next: *mut c_void,
5977 pub image: u32,
5978}
5979impl SwapchainImageOpenGLESKHR {
5980 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_OPENGL_ES_KHR;
5981 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
5982 #[inline]
5983 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
5984 let mut x = MaybeUninit::<Self>::uninit();
5985 unsafe {
5986 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
5987 ty: Self::TYPE,
5988 next,
5989 });
5990 }
5991 x
5992 }
5993}
5994#[repr(C)]
5995#[derive(Copy, Clone, Debug)]
5996#[doc = "See [XrSwapchainImageVulkanKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageVulkanKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
5997pub struct SwapchainImageVulkanKHR {
5998 pub ty: StructureType,
5999 pub next: *mut c_void,
6000 pub image: VkImage,
6001}
6002impl SwapchainImageVulkanKHR {
6003 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_VULKAN_KHR;
6004 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6005 #[inline]
6006 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6007 let mut x = MaybeUninit::<Self>::uninit();
6008 unsafe {
6009 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6010 ty: Self::TYPE,
6011 next,
6012 });
6013 }
6014 x
6015 }
6016}
6017pub type SwapchainImageVulkan2KHR = SwapchainImageVulkanKHR;
6018#[repr(C)]
6019#[derive(Copy, Clone, Debug)]
6020#[doc = "See [XrSwapchainImageD3D11KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageD3D11KHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
6021#[cfg(windows)]
6022pub struct SwapchainImageD3D11KHR {
6023 pub ty: StructureType,
6024 pub next: *mut c_void,
6025 pub texture: *mut ID3D11Texture2D,
6026}
6027#[cfg(windows)]
6028impl SwapchainImageD3D11KHR {
6029 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_D3D11_KHR;
6030 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6031 #[inline]
6032 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6033 let mut x = MaybeUninit::<Self>::uninit();
6034 unsafe {
6035 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6036 ty: Self::TYPE,
6037 next,
6038 });
6039 }
6040 x
6041 }
6042}
6043#[repr(C)]
6044#[derive(Copy, Clone, Debug)]
6045#[doc = "See [XrSwapchainImageD3D12KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageD3D12KHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
6046#[cfg(windows)]
6047pub struct SwapchainImageD3D12KHR {
6048 pub ty: StructureType,
6049 pub next: *mut c_void,
6050 pub texture: *mut ID3D12Resource,
6051}
6052#[cfg(windows)]
6053impl SwapchainImageD3D12KHR {
6054 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_D3D12_KHR;
6055 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6056 #[inline]
6057 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6058 let mut x = MaybeUninit::<Self>::uninit();
6059 unsafe {
6060 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6061 ty: Self::TYPE,
6062 next,
6063 });
6064 }
6065 x
6066 }
6067}
6068#[repr(C)]
6069#[derive(Copy, Clone, Debug)]
6070#[doc = "See [XrSwapchainImageAcquireInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageAcquireInfo)"]
6071pub struct SwapchainImageAcquireInfo {
6072 pub ty: StructureType,
6073 pub next: *const c_void,
6074}
6075impl SwapchainImageAcquireInfo {
6076 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_ACQUIRE_INFO;
6077}
6078#[repr(C)]
6079#[derive(Copy, Clone, Debug)]
6080#[doc = "See [XrSwapchainImageWaitInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageWaitInfo)"]
6081pub struct SwapchainImageWaitInfo {
6082 pub ty: StructureType,
6083 pub next: *const c_void,
6084 pub timeout: Duration,
6085}
6086impl SwapchainImageWaitInfo {
6087 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_WAIT_INFO;
6088}
6089#[repr(C)]
6090#[derive(Copy, Clone, Debug)]
6091#[doc = "See [XrSwapchainImageReleaseInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageReleaseInfo)"]
6092pub struct SwapchainImageReleaseInfo {
6093 pub ty: StructureType,
6094 pub next: *const c_void,
6095}
6096impl SwapchainImageReleaseInfo {
6097 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_RELEASE_INFO;
6098}
6099#[repr(C)]
6100#[derive(Copy, Clone, Debug)]
6101#[doc = "See [XrReferenceSpaceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrReferenceSpaceCreateInfo)"]
6102pub struct ReferenceSpaceCreateInfo {
6103 pub ty: StructureType,
6104 pub next: *const c_void,
6105 pub reference_space_type: ReferenceSpaceType,
6106 pub pose_in_reference_space: Posef,
6107}
6108impl ReferenceSpaceCreateInfo {
6109 pub const TYPE: StructureType = StructureType::REFERENCE_SPACE_CREATE_INFO;
6110}
6111#[repr(C)]
6112#[derive(Copy, Clone, Debug)]
6113#[doc = "See [XrActionSpaceCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSpaceCreateInfo)"]
6114pub struct ActionSpaceCreateInfo {
6115 pub ty: StructureType,
6116 pub next: *const c_void,
6117 pub action: Action,
6118 pub subaction_path: Path,
6119 pub pose_in_action_space: Posef,
6120}
6121impl ActionSpaceCreateInfo {
6122 pub const TYPE: StructureType = StructureType::ACTION_SPACE_CREATE_INFO;
6123}
6124#[repr(C)]
6125#[derive(Copy, Clone, Debug)]
6126#[doc = "See [XrSpaceLocation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocation)"]
6127pub struct SpaceLocation {
6128 pub ty: StructureType,
6129 pub next: *mut c_void,
6130 pub location_flags: SpaceLocationFlags,
6131 pub pose: Posef,
6132}
6133impl SpaceLocation {
6134 pub const TYPE: StructureType = StructureType::SPACE_LOCATION;
6135 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6136 #[inline]
6137 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6138 let mut x = MaybeUninit::<Self>::uninit();
6139 unsafe {
6140 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6141 ty: Self::TYPE,
6142 next,
6143 });
6144 }
6145 x
6146 }
6147}
6148#[repr(C)]
6149#[derive(Copy, Clone, Debug)]
6150#[doc = "See [XrSpaceVelocity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocity)"]
6151pub struct SpaceVelocity {
6152 pub ty: StructureType,
6153 pub next: *mut c_void,
6154 pub velocity_flags: SpaceVelocityFlags,
6155 pub linear_velocity: Vector3f,
6156 pub angular_velocity: Vector3f,
6157}
6158impl SpaceVelocity {
6159 pub const TYPE: StructureType = StructureType::SPACE_VELOCITY;
6160 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6161 #[inline]
6162 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6163 let mut x = MaybeUninit::<Self>::uninit();
6164 unsafe {
6165 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6166 ty: Self::TYPE,
6167 next,
6168 });
6169 }
6170 x
6171 }
6172}
6173#[repr(C)]
6174#[derive(Copy, Clone, Debug, Default, PartialEq)]
6175#[doc = "See [XrFovf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFovf)"]
6176pub struct Fovf {
6177 pub angle_left: f32,
6178 pub angle_right: f32,
6179 pub angle_up: f32,
6180 pub angle_down: f32,
6181}
6182#[repr(C)]
6183#[derive(Copy, Clone, Debug)]
6184#[doc = "See [XrView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrView)"]
6185pub struct View {
6186 pub ty: StructureType,
6187 pub next: *mut c_void,
6188 pub pose: Posef,
6189 pub fov: Fovf,
6190}
6191impl View {
6192 pub const TYPE: StructureType = StructureType::VIEW;
6193 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6194 #[inline]
6195 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6196 let mut x = MaybeUninit::<Self>::uninit();
6197 unsafe {
6198 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6199 ty: Self::TYPE,
6200 next,
6201 });
6202 }
6203 x
6204 }
6205}
6206#[repr(C)]
6207#[derive(Copy, Clone, Debug)]
6208#[doc = "See [XrViewLocateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewLocateInfo)"]
6209pub struct ViewLocateInfo {
6210 pub ty: StructureType,
6211 pub next: *const c_void,
6212 pub view_configuration_type: ViewConfigurationType,
6213 pub display_time: Time,
6214 pub space: Space,
6215}
6216impl ViewLocateInfo {
6217 pub const TYPE: StructureType = StructureType::VIEW_LOCATE_INFO;
6218}
6219#[repr(C)]
6220#[derive(Copy, Clone, Debug)]
6221#[doc = "See [XrViewState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewState)"]
6222pub struct ViewState {
6223 pub ty: StructureType,
6224 pub next: *mut c_void,
6225 pub view_state_flags: ViewStateFlags,
6226}
6227impl ViewState {
6228 pub const TYPE: StructureType = StructureType::VIEW_STATE;
6229 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6230 #[inline]
6231 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6232 let mut x = MaybeUninit::<Self>::uninit();
6233 unsafe {
6234 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6235 ty: Self::TYPE,
6236 next,
6237 });
6238 }
6239 x
6240 }
6241}
6242#[repr(C)]
6243#[derive(Copy, Clone, Debug)]
6244#[doc = "See [XrViewConfigurationView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationView)"]
6245pub struct ViewConfigurationView {
6246 pub ty: StructureType,
6247 pub next: *mut c_void,
6248 pub recommended_image_rect_width: u32,
6249 pub max_image_rect_width: u32,
6250 pub recommended_image_rect_height: u32,
6251 pub max_image_rect_height: u32,
6252 pub recommended_swapchain_sample_count: u32,
6253 pub max_swapchain_sample_count: u32,
6254}
6255impl ViewConfigurationView {
6256 pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_VIEW;
6257 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6258 #[inline]
6259 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6260 let mut x = MaybeUninit::<Self>::uninit();
6261 unsafe {
6262 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6263 ty: Self::TYPE,
6264 next,
6265 });
6266 }
6267 x
6268 }
6269}
6270#[repr(C)]
6271#[derive(Copy, Clone, Debug)]
6272#[doc = "See [XrSwapchainSubImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainSubImage)"]
6273pub struct SwapchainSubImage {
6274 pub swapchain: Swapchain,
6275 pub image_rect: Rect2Di,
6276 pub image_array_index: u32,
6277}
6278#[repr(C)]
6279#[derive(Copy, Clone, Debug)]
6280#[doc = "See [XrCompositionLayerBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerBaseHeader)"]
6281pub struct CompositionLayerBaseHeader {
6282 pub ty: StructureType,
6283 pub next: *const c_void,
6284 pub layer_flags: CompositionLayerFlags,
6285 pub space: Space,
6286}
6287#[repr(C)]
6288#[derive(Copy, Clone, Debug)]
6289#[doc = "See [XrCompositionLayerProjectionView](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerProjectionView)"]
6290pub struct CompositionLayerProjectionView {
6291 pub ty: StructureType,
6292 pub next: *const c_void,
6293 pub pose: Posef,
6294 pub fov: Fovf,
6295 pub sub_image: SwapchainSubImage,
6296}
6297impl CompositionLayerProjectionView {
6298 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PROJECTION_VIEW;
6299}
6300#[repr(C)]
6301#[derive(Copy, Clone, Debug)]
6302#[doc = "See [XrCompositionLayerProjection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerProjection)"]
6303pub struct CompositionLayerProjection {
6304 pub ty: StructureType,
6305 pub next: *const c_void,
6306 pub layer_flags: CompositionLayerFlags,
6307 pub space: Space,
6308 pub view_count: u32,
6309 pub views: *const CompositionLayerProjectionView,
6310}
6311impl CompositionLayerProjection {
6312 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PROJECTION;
6313}
6314#[repr(C)]
6315#[derive(Copy, Clone, Debug)]
6316#[doc = "See [XrCompositionLayerQuad](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerQuad)"]
6317pub struct CompositionLayerQuad {
6318 pub ty: StructureType,
6319 pub next: *const c_void,
6320 pub layer_flags: CompositionLayerFlags,
6321 pub space: Space,
6322 pub eye_visibility: EyeVisibility,
6323 pub sub_image: SwapchainSubImage,
6324 pub pose: Posef,
6325 pub size: Extent2Df,
6326}
6327impl CompositionLayerQuad {
6328 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_QUAD;
6329}
6330#[repr(C)]
6331#[derive(Copy, Clone, Debug)]
6332#[doc = "See [XrCompositionLayerCylinderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerCylinderKHR) - defined by [XR_KHR_composition_layer_cylinder](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_cylinder)"]
6333pub struct CompositionLayerCylinderKHR {
6334 pub ty: StructureType,
6335 pub next: *const c_void,
6336 pub layer_flags: CompositionLayerFlags,
6337 pub space: Space,
6338 pub eye_visibility: EyeVisibility,
6339 pub sub_image: SwapchainSubImage,
6340 pub pose: Posef,
6341 pub radius: f32,
6342 pub central_angle: f32,
6343 pub aspect_ratio: f32,
6344}
6345impl CompositionLayerCylinderKHR {
6346 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_CYLINDER_KHR;
6347}
6348#[repr(C)]
6349#[derive(Copy, Clone, Debug)]
6350#[doc = "See [XrCompositionLayerCubeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerCubeKHR) - defined by [XR_KHR_composition_layer_cube](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_cube)"]
6351pub struct CompositionLayerCubeKHR {
6352 pub ty: StructureType,
6353 pub next: *const c_void,
6354 pub layer_flags: CompositionLayerFlags,
6355 pub space: Space,
6356 pub eye_visibility: EyeVisibility,
6357 pub swapchain: Swapchain,
6358 pub image_array_index: u32,
6359 pub orientation: Quaternionf,
6360}
6361impl CompositionLayerCubeKHR {
6362 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_CUBE_KHR;
6363}
6364#[repr(C)]
6365#[derive(Copy, Clone, Debug)]
6366#[doc = "See [XrCompositionLayerEquirectKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerEquirectKHR) - defined by [XR_KHR_composition_layer_equirect](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_equirect)"]
6367pub struct CompositionLayerEquirectKHR {
6368 pub ty: StructureType,
6369 pub next: *const c_void,
6370 pub layer_flags: CompositionLayerFlags,
6371 pub space: Space,
6372 pub eye_visibility: EyeVisibility,
6373 pub sub_image: SwapchainSubImage,
6374 pub pose: Posef,
6375 pub radius: f32,
6376 pub scale: Vector2f,
6377 pub bias: Vector2f,
6378}
6379impl CompositionLayerEquirectKHR {
6380 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_EQUIRECT_KHR;
6381}
6382#[repr(C)]
6383#[derive(Copy, Clone, Debug)]
6384#[doc = "See [XrCompositionLayerDepthInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerDepthInfoKHR) - defined by [XR_KHR_composition_layer_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_depth)"]
6385pub struct CompositionLayerDepthInfoKHR {
6386 pub ty: StructureType,
6387 pub next: *const c_void,
6388 pub sub_image: SwapchainSubImage,
6389 pub min_depth: f32,
6390 pub max_depth: f32,
6391 pub near_z: f32,
6392 pub far_z: f32,
6393}
6394impl CompositionLayerDepthInfoKHR {
6395 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_INFO_KHR;
6396}
6397#[repr(C)]
6398#[derive(Copy, Clone, Debug)]
6399#[doc = "See [XrFrameBeginInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameBeginInfo)"]
6400pub struct FrameBeginInfo {
6401 pub ty: StructureType,
6402 pub next: *const c_void,
6403}
6404impl FrameBeginInfo {
6405 pub const TYPE: StructureType = StructureType::FRAME_BEGIN_INFO;
6406}
6407#[repr(C)]
6408#[derive(Copy, Clone, Debug)]
6409#[doc = "See [XrFrameEndInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfo)"]
6410pub struct FrameEndInfo {
6411 pub ty: StructureType,
6412 pub next: *const c_void,
6413 pub display_time: Time,
6414 pub environment_blend_mode: EnvironmentBlendMode,
6415 pub layer_count: u32,
6416 pub layers: *const *const CompositionLayerBaseHeader,
6417}
6418impl FrameEndInfo {
6419 pub const TYPE: StructureType = StructureType::FRAME_END_INFO;
6420}
6421#[repr(C)]
6422#[derive(Copy, Clone, Debug)]
6423#[doc = "See [XrFrameWaitInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameWaitInfo)"]
6424pub struct FrameWaitInfo {
6425 pub ty: StructureType,
6426 pub next: *const c_void,
6427}
6428impl FrameWaitInfo {
6429 pub const TYPE: StructureType = StructureType::FRAME_WAIT_INFO;
6430}
6431#[repr(C)]
6432#[derive(Copy, Clone, Debug)]
6433#[doc = "See [XrFrameState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameState)"]
6434pub struct FrameState {
6435 pub ty: StructureType,
6436 pub next: *mut c_void,
6437 pub predicted_display_time: Time,
6438 pub predicted_display_period: Duration,
6439 pub should_render: Bool32,
6440}
6441impl FrameState {
6442 pub const TYPE: StructureType = StructureType::FRAME_STATE;
6443 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6444 #[inline]
6445 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6446 let mut x = MaybeUninit::<Self>::uninit();
6447 unsafe {
6448 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6449 ty: Self::TYPE,
6450 next,
6451 });
6452 }
6453 x
6454 }
6455}
6456#[repr(C)]
6457#[derive(Copy, Clone, Debug)]
6458#[doc = "See [XrHapticBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticBaseHeader)"]
6459pub struct HapticBaseHeader {
6460 pub ty: StructureType,
6461 pub next: *const c_void,
6462}
6463#[repr(C)]
6464#[derive(Copy, Clone, Debug)]
6465#[doc = "See [XrHapticVibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticVibration)"]
6466pub struct HapticVibration {
6467 pub ty: StructureType,
6468 pub next: *const c_void,
6469 pub duration: Duration,
6470 pub frequency: f32,
6471 pub amplitude: f32,
6472}
6473impl HapticVibration {
6474 pub const TYPE: StructureType = StructureType::HAPTIC_VIBRATION;
6475}
6476#[repr(C)]
6477#[derive(Copy, Clone, Debug)]
6478#[doc = "See [XrEventDataBaseHeader](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataBaseHeader)"]
6479pub struct EventDataBaseHeader {
6480 pub ty: StructureType,
6481 pub next: *const c_void,
6482}
6483#[repr(C)]
6484#[derive(Copy, Clone, Debug)]
6485#[doc = "See [XrEventDataBuffer](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataBuffer)"]
6486pub struct EventDataBuffer {
6487 pub ty: StructureType,
6488 pub next: *const c_void,
6489 pub varying: [u8; 4000usize],
6490}
6491impl EventDataBuffer {
6492 pub const TYPE: StructureType = StructureType::EVENT_DATA_BUFFER;
6493}
6494#[repr(C)]
6495#[derive(Copy, Clone, Debug)]
6496#[doc = "See [XrEventDataEventsLost](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataEventsLost)"]
6497pub struct EventDataEventsLost {
6498 pub ty: StructureType,
6499 pub next: *const c_void,
6500 pub lost_event_count: u32,
6501}
6502impl EventDataEventsLost {
6503 pub const TYPE: StructureType = StructureType::EVENT_DATA_EVENTS_LOST;
6504}
6505#[repr(C)]
6506#[derive(Copy, Clone, Debug)]
6507#[doc = "See [XrEventDataInstanceLossPending](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataInstanceLossPending)"]
6508pub struct EventDataInstanceLossPending {
6509 pub ty: StructureType,
6510 pub next: *const c_void,
6511 pub loss_time: Time,
6512}
6513impl EventDataInstanceLossPending {
6514 pub const TYPE: StructureType = StructureType::EVENT_DATA_INSTANCE_LOSS_PENDING;
6515}
6516#[repr(C)]
6517#[derive(Copy, Clone, Debug)]
6518#[doc = "See [XrEventDataSessionStateChanged](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSessionStateChanged)"]
6519pub struct EventDataSessionStateChanged {
6520 pub ty: StructureType,
6521 pub next: *const c_void,
6522 pub session: Session,
6523 pub state: SessionState,
6524 pub time: Time,
6525}
6526impl EventDataSessionStateChanged {
6527 pub const TYPE: StructureType = StructureType::EVENT_DATA_SESSION_STATE_CHANGED;
6528}
6529#[repr(C)]
6530#[derive(Copy, Clone, Debug)]
6531#[doc = "See [XrEventDataReferenceSpaceChangePending](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataReferenceSpaceChangePending)"]
6532pub struct EventDataReferenceSpaceChangePending {
6533 pub ty: StructureType,
6534 pub next: *const c_void,
6535 pub session: Session,
6536 pub reference_space_type: ReferenceSpaceType,
6537 pub change_time: Time,
6538 pub pose_valid: Bool32,
6539 pub pose_in_previous_space: Posef,
6540}
6541impl EventDataReferenceSpaceChangePending {
6542 pub const TYPE: StructureType = StructureType::EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING;
6543}
6544#[repr(C)]
6545#[derive(Copy, Clone, Debug)]
6546#[doc = "See [XrEventDataPerfSettingsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataPerfSettingsEXT) - defined by [XR_EXT_performance_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_performance_settings)"]
6547pub struct EventDataPerfSettingsEXT {
6548 pub ty: StructureType,
6549 pub next: *const c_void,
6550 pub domain: PerfSettingsDomainEXT,
6551 pub sub_domain: PerfSettingsSubDomainEXT,
6552 pub from_level: PerfSettingsNotificationLevelEXT,
6553 pub to_level: PerfSettingsNotificationLevelEXT,
6554}
6555impl EventDataPerfSettingsEXT {
6556 pub const TYPE: StructureType = StructureType::EVENT_DATA_PERF_SETTINGS_EXT;
6557}
6558#[repr(C)]
6559#[derive(Copy, Clone, Debug)]
6560#[doc = "See [XrEventDataVisibilityMaskChangedKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVisibilityMaskChangedKHR) - defined by [XR_KHR_visibility_mask](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_visibility_mask)"]
6561pub struct EventDataVisibilityMaskChangedKHR {
6562 pub ty: StructureType,
6563 pub next: *const c_void,
6564 pub session: Session,
6565 pub view_configuration_type: ViewConfigurationType,
6566 pub view_index: u32,
6567}
6568impl EventDataVisibilityMaskChangedKHR {
6569 pub const TYPE: StructureType = StructureType::EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR;
6570}
6571#[repr(C)]
6572#[derive(Copy, Clone, Debug)]
6573#[doc = "See [XrViewConfigurationProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationProperties)"]
6574pub struct ViewConfigurationProperties {
6575 pub ty: StructureType,
6576 pub next: *mut c_void,
6577 pub view_configuration_type: ViewConfigurationType,
6578 pub fov_mutable: Bool32,
6579}
6580impl ViewConfigurationProperties {
6581 pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_PROPERTIES;
6582 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6583 #[inline]
6584 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6585 let mut x = MaybeUninit::<Self>::uninit();
6586 unsafe {
6587 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6588 ty: Self::TYPE,
6589 next,
6590 });
6591 }
6592 x
6593 }
6594}
6595#[repr(C)]
6596#[derive(Copy, Clone, Debug)]
6597#[doc = "See [XrActionStateBoolean](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateBoolean)"]
6598pub struct ActionStateBoolean {
6599 pub ty: StructureType,
6600 pub next: *mut c_void,
6601 pub current_state: Bool32,
6602 pub changed_since_last_sync: Bool32,
6603 pub last_change_time: Time,
6604 pub is_active: Bool32,
6605}
6606impl ActionStateBoolean {
6607 pub const TYPE: StructureType = StructureType::ACTION_STATE_BOOLEAN;
6608 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6609 #[inline]
6610 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6611 let mut x = MaybeUninit::<Self>::uninit();
6612 unsafe {
6613 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6614 ty: Self::TYPE,
6615 next,
6616 });
6617 }
6618 x
6619 }
6620}
6621#[repr(C)]
6622#[derive(Copy, Clone, Debug)]
6623#[doc = "See [XrActionStateFloat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateFloat)"]
6624pub struct ActionStateFloat {
6625 pub ty: StructureType,
6626 pub next: *mut c_void,
6627 pub current_state: f32,
6628 pub changed_since_last_sync: Bool32,
6629 pub last_change_time: Time,
6630 pub is_active: Bool32,
6631}
6632impl ActionStateFloat {
6633 pub const TYPE: StructureType = StructureType::ACTION_STATE_FLOAT;
6634 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6635 #[inline]
6636 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6637 let mut x = MaybeUninit::<Self>::uninit();
6638 unsafe {
6639 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6640 ty: Self::TYPE,
6641 next,
6642 });
6643 }
6644 x
6645 }
6646}
6647#[repr(C)]
6648#[derive(Copy, Clone, Debug)]
6649#[doc = "See [XrActionStateVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateVector2f)"]
6650pub struct ActionStateVector2f {
6651 pub ty: StructureType,
6652 pub next: *mut c_void,
6653 pub current_state: Vector2f,
6654 pub changed_since_last_sync: Bool32,
6655 pub last_change_time: Time,
6656 pub is_active: Bool32,
6657}
6658impl ActionStateVector2f {
6659 pub const TYPE: StructureType = StructureType::ACTION_STATE_VECTOR2F;
6660 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6661 #[inline]
6662 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6663 let mut x = MaybeUninit::<Self>::uninit();
6664 unsafe {
6665 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6666 ty: Self::TYPE,
6667 next,
6668 });
6669 }
6670 x
6671 }
6672}
6673#[repr(C)]
6674#[derive(Copy, Clone, Debug)]
6675#[doc = "See [XrActionStatePose](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStatePose)"]
6676pub struct ActionStatePose {
6677 pub ty: StructureType,
6678 pub next: *mut c_void,
6679 pub is_active: Bool32,
6680}
6681impl ActionStatePose {
6682 pub const TYPE: StructureType = StructureType::ACTION_STATE_POSE;
6683 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6684 #[inline]
6685 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6686 let mut x = MaybeUninit::<Self>::uninit();
6687 unsafe {
6688 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6689 ty: Self::TYPE,
6690 next,
6691 });
6692 }
6693 x
6694 }
6695}
6696#[repr(C)]
6697#[derive(Copy, Clone, Debug)]
6698#[doc = "See [XrActionStateGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionStateGetInfo)"]
6699pub struct ActionStateGetInfo {
6700 pub ty: StructureType,
6701 pub next: *const c_void,
6702 pub action: Action,
6703 pub subaction_path: Path,
6704}
6705impl ActionStateGetInfo {
6706 pub const TYPE: StructureType = StructureType::ACTION_STATE_GET_INFO;
6707}
6708#[repr(C)]
6709#[derive(Copy, Clone, Debug)]
6710#[doc = "See [XrHapticActionInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticActionInfo)"]
6711pub struct HapticActionInfo {
6712 pub ty: StructureType,
6713 pub next: *const c_void,
6714 pub action: Action,
6715 pub subaction_path: Path,
6716}
6717impl HapticActionInfo {
6718 pub const TYPE: StructureType = StructureType::HAPTIC_ACTION_INFO;
6719}
6720#[repr(C)]
6721#[derive(Copy, Clone, Debug)]
6722#[doc = "See [XrActionSetCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSetCreateInfo)"]
6723pub struct ActionSetCreateInfo {
6724 pub ty: StructureType,
6725 pub next: *const c_void,
6726 pub action_set_name: [c_char; MAX_ACTION_SET_NAME_SIZE],
6727 pub localized_action_set_name: [c_char; MAX_LOCALIZED_ACTION_SET_NAME_SIZE],
6728 pub priority: u32,
6729}
6730impl ActionSetCreateInfo {
6731 pub const TYPE: StructureType = StructureType::ACTION_SET_CREATE_INFO;
6732}
6733#[repr(C)]
6734#[derive(Copy, Clone, Debug)]
6735#[doc = "See [XrActionSuggestedBinding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionSuggestedBinding)"]
6736pub struct ActionSuggestedBinding {
6737 pub action: Action,
6738 pub binding: Path,
6739}
6740#[repr(C)]
6741#[derive(Copy, Clone, Debug)]
6742#[doc = "See [XrInteractionProfileSuggestedBinding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileSuggestedBinding)"]
6743pub struct InteractionProfileSuggestedBinding {
6744 pub ty: StructureType,
6745 pub next: *const c_void,
6746 pub interaction_profile: Path,
6747 pub count_suggested_bindings: u32,
6748 pub suggested_bindings: *const ActionSuggestedBinding,
6749}
6750impl InteractionProfileSuggestedBinding {
6751 pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_SUGGESTED_BINDING;
6752}
6753#[repr(C)]
6754#[derive(Copy, Clone, Debug)]
6755#[doc = "See [XrActiveActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSet)"]
6756pub struct ActiveActionSet {
6757 pub action_set: ActionSet,
6758 pub subaction_path: Path,
6759}
6760#[repr(C)]
6761#[derive(Copy, Clone, Debug)]
6762#[doc = "See [XrSessionActionSetsAttachInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionActionSetsAttachInfo)"]
6763pub struct SessionActionSetsAttachInfo {
6764 pub ty: StructureType,
6765 pub next: *const c_void,
6766 pub count_action_sets: u32,
6767 pub action_sets: *const ActionSet,
6768}
6769impl SessionActionSetsAttachInfo {
6770 pub const TYPE: StructureType = StructureType::SESSION_ACTION_SETS_ATTACH_INFO;
6771}
6772#[repr(C)]
6773#[derive(Copy, Clone, Debug)]
6774#[doc = "See [XrActionsSyncInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionsSyncInfo)"]
6775pub struct ActionsSyncInfo {
6776 pub ty: StructureType,
6777 pub next: *const c_void,
6778 pub count_active_action_sets: u32,
6779 pub active_action_sets: *const ActiveActionSet,
6780}
6781impl ActionsSyncInfo {
6782 pub const TYPE: StructureType = StructureType::ACTIONS_SYNC_INFO;
6783}
6784#[repr(C)]
6785#[derive(Copy, Clone, Debug)]
6786#[doc = "See [XrBoundSourcesForActionEnumerateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoundSourcesForActionEnumerateInfo)"]
6787pub struct BoundSourcesForActionEnumerateInfo {
6788 pub ty: StructureType,
6789 pub next: *const c_void,
6790 pub action: Action,
6791}
6792impl BoundSourcesForActionEnumerateInfo {
6793 pub const TYPE: StructureType = StructureType::BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO;
6794}
6795#[repr(C)]
6796#[derive(Copy, Clone, Debug)]
6797#[doc = "See [XrInputSourceLocalizedNameGetInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInputSourceLocalizedNameGetInfo)"]
6798pub struct InputSourceLocalizedNameGetInfo {
6799 pub ty: StructureType,
6800 pub next: *const c_void,
6801 pub source_path: Path,
6802 pub which_components: InputSourceLocalizedNameFlags,
6803}
6804impl InputSourceLocalizedNameGetInfo {
6805 pub const TYPE: StructureType = StructureType::INPUT_SOURCE_LOCALIZED_NAME_GET_INFO;
6806}
6807#[repr(C)]
6808#[derive(Copy, Clone, Debug)]
6809#[doc = "See [XrEventDataInteractionProfileChanged](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataInteractionProfileChanged)"]
6810pub struct EventDataInteractionProfileChanged {
6811 pub ty: StructureType,
6812 pub next: *const c_void,
6813 pub session: Session,
6814}
6815impl EventDataInteractionProfileChanged {
6816 pub const TYPE: StructureType = StructureType::EVENT_DATA_INTERACTION_PROFILE_CHANGED;
6817}
6818#[repr(C)]
6819#[derive(Copy, Clone, Debug)]
6820#[doc = "See [XrInteractionProfileState](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileState)"]
6821pub struct InteractionProfileState {
6822 pub ty: StructureType,
6823 pub next: *mut c_void,
6824 pub interaction_profile: Path,
6825}
6826impl InteractionProfileState {
6827 pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_STATE;
6828 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6829 #[inline]
6830 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6831 let mut x = MaybeUninit::<Self>::uninit();
6832 unsafe {
6833 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6834 ty: Self::TYPE,
6835 next,
6836 });
6837 }
6838 x
6839 }
6840}
6841#[repr(C)]
6842#[derive(Copy, Clone, Debug)]
6843#[doc = "See [XrActionCreateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActionCreateInfo)"]
6844pub struct ActionCreateInfo {
6845 pub ty: StructureType,
6846 pub next: *const c_void,
6847 pub action_name: [c_char; MAX_ACTION_NAME_SIZE],
6848 pub action_type: ActionType,
6849 pub count_subaction_paths: u32,
6850 pub subaction_paths: *const Path,
6851 pub localized_action_name: [c_char; MAX_LOCALIZED_ACTION_NAME_SIZE],
6852}
6853impl ActionCreateInfo {
6854 pub const TYPE: StructureType = StructureType::ACTION_CREATE_INFO;
6855}
6856#[repr(C)]
6857#[derive(Copy, Clone, Debug)]
6858#[doc = "See [XrInstanceCreateInfoAndroidKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInstanceCreateInfoAndroidKHR) - defined by [XR_KHR_android_create_instance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_android_create_instance)"]
6859#[cfg(target_os = "android")]
6860pub struct InstanceCreateInfoAndroidKHR {
6861 pub ty: StructureType,
6862 pub next: *const c_void,
6863 pub application_vm: *mut c_void,
6864 pub application_activity: *mut c_void,
6865}
6866#[cfg(target_os = "android")]
6867impl InstanceCreateInfoAndroidKHR {
6868 pub const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO_ANDROID_KHR;
6869}
6870#[repr(C)]
6871#[derive(Copy, Clone, Debug)]
6872#[doc = "See [XrVulkanSwapchainFormatListCreateInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanSwapchainFormatListCreateInfoKHR) - defined by [XR_KHR_vulkan_swapchain_format_list](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_swapchain_format_list)"]
6873pub struct VulkanSwapchainFormatListCreateInfoKHR {
6874 pub ty: StructureType,
6875 pub next: *const c_void,
6876 pub view_format_count: u32,
6877 pub view_formats: *const VkFormat,
6878}
6879impl VulkanSwapchainFormatListCreateInfoKHR {
6880 pub const TYPE: StructureType = StructureType::VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR;
6881}
6882#[repr(C)]
6883#[derive(Copy, Clone, Debug)]
6884#[doc = "See [XrDebugUtilsObjectNameInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsObjectNameInfoEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6885pub struct DebugUtilsObjectNameInfoEXT {
6886 pub ty: StructureType,
6887 pub next: *const c_void,
6888 pub object_type: ObjectType,
6889 pub object_handle: u64,
6890 pub object_name: *const c_char,
6891}
6892impl DebugUtilsObjectNameInfoEXT {
6893 pub const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
6894}
6895#[repr(C)]
6896#[derive(Copy, Clone, Debug)]
6897#[doc = "See [XrDebugUtilsLabelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsLabelEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6898pub struct DebugUtilsLabelEXT {
6899 pub ty: StructureType,
6900 pub next: *const c_void,
6901 pub label_name: *const c_char,
6902}
6903impl DebugUtilsLabelEXT {
6904 pub const TYPE: StructureType = StructureType::DEBUG_UTILS_LABEL_EXT;
6905}
6906#[repr(C)]
6907#[derive(Copy, Clone, Debug)]
6908#[doc = "See [XrDebugUtilsMessengerCallbackDataEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerCallbackDataEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6909pub struct DebugUtilsMessengerCallbackDataEXT {
6910 pub ty: StructureType,
6911 pub next: *const c_void,
6912 pub message_id: *const c_char,
6913 pub function_name: *const c_char,
6914 pub message: *const c_char,
6915 pub object_count: u32,
6916 pub objects: *mut DebugUtilsObjectNameInfoEXT,
6917 pub session_label_count: u32,
6918 pub session_labels: *mut DebugUtilsLabelEXT,
6919}
6920impl DebugUtilsMessengerCallbackDataEXT {
6921 pub const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
6922}
6923#[repr(C)]
6924#[derive(Copy, Clone)]
6925#[doc = "See [XrDebugUtilsMessengerCreateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDebugUtilsMessengerCreateInfoEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
6926pub struct DebugUtilsMessengerCreateInfoEXT {
6927 pub ty: StructureType,
6928 pub next: *const c_void,
6929 pub message_severities: DebugUtilsMessageSeverityFlagsEXT,
6930 pub message_types: DebugUtilsMessageTypeFlagsEXT,
6931 pub user_callback: Option<pfn::DebugUtilsMessengerCallbackEXT>,
6932 pub user_data: *mut c_void,
6933}
6934impl DebugUtilsMessengerCreateInfoEXT {
6935 pub const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
6936}
6937#[repr(C)]
6938#[derive(Copy, Clone, Debug)]
6939#[doc = "See [XrVisibilityMaskKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVisibilityMaskKHR) - defined by [XR_KHR_visibility_mask](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_visibility_mask)"]
6940pub struct VisibilityMaskKHR {
6941 pub ty: StructureType,
6942 pub next: *mut c_void,
6943 pub vertex_capacity_input: u32,
6944 pub vertex_count_output: u32,
6945 pub vertices: *mut Vector2f,
6946 pub index_capacity_input: u32,
6947 pub index_count_output: u32,
6948 pub indices: *mut u32,
6949}
6950impl VisibilityMaskKHR {
6951 pub const TYPE: StructureType = StructureType::VISIBILITY_MASK_KHR;
6952 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6953 #[inline]
6954 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6955 let mut x = MaybeUninit::<Self>::uninit();
6956 unsafe {
6957 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6958 ty: Self::TYPE,
6959 next,
6960 });
6961 }
6962 x
6963 }
6964}
6965#[repr(C)]
6966#[derive(Copy, Clone, Debug)]
6967#[doc = "See [XrGraphicsRequirementsOpenGLKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsOpenGLKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
6968pub struct GraphicsRequirementsOpenGLKHR {
6969 pub ty: StructureType,
6970 pub next: *mut c_void,
6971 pub min_api_version_supported: Version,
6972 pub max_api_version_supported: Version,
6973}
6974impl GraphicsRequirementsOpenGLKHR {
6975 pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_OPENGL_KHR;
6976 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
6977 #[inline]
6978 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
6979 let mut x = MaybeUninit::<Self>::uninit();
6980 unsafe {
6981 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
6982 ty: Self::TYPE,
6983 next,
6984 });
6985 }
6986 x
6987 }
6988}
6989#[repr(C)]
6990#[derive(Copy, Clone, Debug)]
6991#[doc = "See [XrGraphicsRequirementsOpenGLESKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsOpenGLESKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
6992pub struct GraphicsRequirementsOpenGLESKHR {
6993 pub ty: StructureType,
6994 pub next: *mut c_void,
6995 pub min_api_version_supported: Version,
6996 pub max_api_version_supported: Version,
6997}
6998impl GraphicsRequirementsOpenGLESKHR {
6999 pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR;
7000 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7001 #[inline]
7002 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7003 let mut x = MaybeUninit::<Self>::uninit();
7004 unsafe {
7005 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7006 ty: Self::TYPE,
7007 next,
7008 });
7009 }
7010 x
7011 }
7012}
7013#[repr(C)]
7014#[derive(Copy, Clone, Debug)]
7015#[doc = "See [XrGraphicsRequirementsVulkanKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsVulkanKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
7016pub struct GraphicsRequirementsVulkanKHR {
7017 pub ty: StructureType,
7018 pub next: *mut c_void,
7019 pub min_api_version_supported: Version,
7020 pub max_api_version_supported: Version,
7021}
7022impl GraphicsRequirementsVulkanKHR {
7023 pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_VULKAN_KHR;
7024 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7025 #[inline]
7026 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7027 let mut x = MaybeUninit::<Self>::uninit();
7028 unsafe {
7029 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7030 ty: Self::TYPE,
7031 next,
7032 });
7033 }
7034 x
7035 }
7036}
7037pub type GraphicsRequirementsVulkan2KHR = GraphicsRequirementsVulkanKHR;
7038#[repr(C)]
7039#[derive(Copy, Clone)]
7040#[doc = "See [XrGraphicsRequirementsD3D11KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsD3D11KHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
7041#[cfg(windows)]
7042pub struct GraphicsRequirementsD3D11KHR {
7043 pub ty: StructureType,
7044 pub next: *mut c_void,
7045 pub adapter_luid: LUID,
7046 pub min_feature_level: D3D_FEATURE_LEVEL,
7047}
7048#[cfg(windows)]
7049impl GraphicsRequirementsD3D11KHR {
7050 pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_D3D11_KHR;
7051 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7052 #[inline]
7053 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7054 let mut x = MaybeUninit::<Self>::uninit();
7055 unsafe {
7056 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7057 ty: Self::TYPE,
7058 next,
7059 });
7060 }
7061 x
7062 }
7063}
7064#[repr(C)]
7065#[derive(Copy, Clone)]
7066#[doc = "See [XrGraphicsRequirementsD3D12KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsRequirementsD3D12KHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
7067#[cfg(windows)]
7068pub struct GraphicsRequirementsD3D12KHR {
7069 pub ty: StructureType,
7070 pub next: *mut c_void,
7071 pub adapter_luid: LUID,
7072 pub min_feature_level: D3D_FEATURE_LEVEL,
7073}
7074#[cfg(windows)]
7075impl GraphicsRequirementsD3D12KHR {
7076 pub const TYPE: StructureType = StructureType::GRAPHICS_REQUIREMENTS_D3D12_KHR;
7077 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7078 #[inline]
7079 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7080 let mut x = MaybeUninit::<Self>::uninit();
7081 unsafe {
7082 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7083 ty: Self::TYPE,
7084 next,
7085 });
7086 }
7087 x
7088 }
7089}
7090#[repr(C)]
7091#[derive(Copy, Clone)]
7092#[doc = "See [XrVulkanInstanceCreateInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanInstanceCreateInfoKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
7093pub struct VulkanInstanceCreateInfoKHR {
7094 pub ty: StructureType,
7095 pub next: *const c_void,
7096 pub system_id: SystemId,
7097 pub create_flags: VulkanInstanceCreateFlagsKHR,
7098 pub pfn_get_instance_proc_addr: Option<VkGetInstanceProcAddr>,
7099 pub vulkan_create_info: *const VkInstanceCreateInfo,
7100 pub vulkan_allocator: *const VkAllocationCallbacks,
7101}
7102impl VulkanInstanceCreateInfoKHR {
7103 pub const TYPE: StructureType = StructureType::VULKAN_INSTANCE_CREATE_INFO_KHR;
7104}
7105#[repr(C)]
7106#[derive(Copy, Clone)]
7107#[doc = "See [XrVulkanDeviceCreateInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanDeviceCreateInfoKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
7108pub struct VulkanDeviceCreateInfoKHR {
7109 pub ty: StructureType,
7110 pub next: *const c_void,
7111 pub system_id: SystemId,
7112 pub create_flags: VulkanDeviceCreateFlagsKHR,
7113 pub pfn_get_instance_proc_addr: Option<VkGetInstanceProcAddr>,
7114 pub vulkan_physical_device: VkPhysicalDevice,
7115 pub vulkan_create_info: *const VkDeviceCreateInfo,
7116 pub vulkan_allocator: *const VkAllocationCallbacks,
7117}
7118impl VulkanDeviceCreateInfoKHR {
7119 pub const TYPE: StructureType = StructureType::VULKAN_DEVICE_CREATE_INFO_KHR;
7120}
7121#[repr(C)]
7122#[derive(Copy, Clone, Debug)]
7123#[doc = "See [XrVulkanGraphicsDeviceGetInfoKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanGraphicsDeviceGetInfoKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
7124pub struct VulkanGraphicsDeviceGetInfoKHR {
7125 pub ty: StructureType,
7126 pub next: *const c_void,
7127 pub system_id: SystemId,
7128 pub vulkan_instance: VkInstance,
7129}
7130impl VulkanGraphicsDeviceGetInfoKHR {
7131 pub const TYPE: StructureType = StructureType::VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR;
7132}
7133#[repr(C)]
7134#[derive(Copy, Clone, Debug)]
7135#[doc = "See [XrVulkanSwapchainCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVulkanSwapchainCreateInfoMETA) - defined by [XR_META_vulkan_swapchain_create_info](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_vulkan_swapchain_create_info)"]
7136pub struct VulkanSwapchainCreateInfoMETA {
7137 pub ty: StructureType,
7138 pub next: *const c_void,
7139 pub additional_create_flags: VkImageCreateFlags,
7140 pub additional_usage_flags: VkImageUsageFlags,
7141}
7142impl VulkanSwapchainCreateInfoMETA {
7143 pub const TYPE: StructureType = StructureType::VULKAN_SWAPCHAIN_CREATE_INFO_META;
7144}
7145#[repr(C)]
7146#[derive(Copy, Clone, Debug)]
7147#[doc = "See [XrSessionCreateInfoOverlayEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSessionCreateInfoOverlayEXTX) - defined by [XR_EXTX_overlay](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXTX_overlay)"]
7148pub struct SessionCreateInfoOverlayEXTX {
7149 pub ty: StructureType,
7150 pub next: *const c_void,
7151 pub create_flags: OverlaySessionCreateFlagsEXTX,
7152 pub session_layers_placement: u32,
7153}
7154impl SessionCreateInfoOverlayEXTX {
7155 pub const TYPE: StructureType = StructureType::SESSION_CREATE_INFO_OVERLAY_EXTX;
7156}
7157#[repr(C)]
7158#[derive(Copy, Clone, Debug)]
7159#[doc = "See [XrEventDataMainSessionVisibilityChangedEXTX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataMainSessionVisibilityChangedEXTX) - defined by [XR_EXTX_overlay](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXTX_overlay)"]
7160pub struct EventDataMainSessionVisibilityChangedEXTX {
7161 pub ty: StructureType,
7162 pub next: *const c_void,
7163 pub visible: Bool32,
7164 pub flags: OverlayMainSessionFlagsEXTX,
7165}
7166impl EventDataMainSessionVisibilityChangedEXTX {
7167 pub const TYPE: StructureType = StructureType::EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX;
7168}
7169#[repr(C)]
7170#[derive(Copy, Clone, Debug)]
7171#[doc = "See [XrEventDataDisplayRefreshRateChangedFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataDisplayRefreshRateChangedFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
7172pub struct EventDataDisplayRefreshRateChangedFB {
7173 pub ty: StructureType,
7174 pub next: *const c_void,
7175 pub from_display_refresh_rate: f32,
7176 pub to_display_refresh_rate: f32,
7177}
7178impl EventDataDisplayRefreshRateChangedFB {
7179 pub const TYPE: StructureType = StructureType::EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB;
7180}
7181#[repr(C)]
7182#[derive(Copy, Clone, Debug)]
7183#[doc = "See [XrViewConfigurationDepthRangeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationDepthRangeEXT) - defined by [XR_EXT_view_configuration_depth_range](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_view_configuration_depth_range)"]
7184pub struct ViewConfigurationDepthRangeEXT {
7185 pub ty: StructureType,
7186 pub next: *mut c_void,
7187 pub recommended_near_z: f32,
7188 pub min_near_z: f32,
7189 pub recommended_far_z: f32,
7190 pub max_far_z: f32,
7191}
7192impl ViewConfigurationDepthRangeEXT {
7193 pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_DEPTH_RANGE_EXT;
7194 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7195 #[inline]
7196 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7197 let mut x = MaybeUninit::<Self>::uninit();
7198 unsafe {
7199 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7200 ty: Self::TYPE,
7201 next,
7202 });
7203 }
7204 x
7205 }
7206}
7207#[repr(C)]
7208#[derive(Copy, Clone, Debug)]
7209#[doc = "See [XrViewConfigurationViewFovEPIC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewConfigurationViewFovEPIC) - defined by [XR_EPIC_view_configuration_fov](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EPIC_view_configuration_fov)"]
7210pub struct ViewConfigurationViewFovEPIC {
7211 pub ty: StructureType,
7212 pub next: *const c_void,
7213 pub recommended_fov: Fovf,
7214 pub max_mutable_fov: Fovf,
7215}
7216impl ViewConfigurationViewFovEPIC {
7217 pub const TYPE: StructureType = StructureType::VIEW_CONFIGURATION_VIEW_FOV_EPIC;
7218}
7219#[repr(C)]
7220#[derive(Copy, Clone, Debug)]
7221#[doc = "See [XrInteractionProfileDpadBindingEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileDpadBindingEXT) - defined by [XR_EXT_dpad_binding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_dpad_binding)"]
7222pub struct InteractionProfileDpadBindingEXT {
7223 pub ty: StructureType,
7224 pub next: *const c_void,
7225 pub binding: Path,
7226 pub action_set: ActionSet,
7227 pub force_threshold: f32,
7228 pub force_threshold_released: f32,
7229 pub center_region: f32,
7230 pub wedge_angle: f32,
7231 pub is_sticky: Bool32,
7232 pub on_haptic: *const HapticBaseHeader,
7233 pub off_haptic: *const HapticBaseHeader,
7234}
7235impl InteractionProfileDpadBindingEXT {
7236 pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_DPAD_BINDING_EXT;
7237}
7238#[repr(C)]
7239#[derive(Copy, Clone, Debug)]
7240#[doc = "See [XrInteractionProfileAnalogThresholdVALVE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrInteractionProfileAnalogThresholdVALVE) - defined by [XR_VALVE_analog_threshold](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VALVE_analog_threshold)"]
7241pub struct InteractionProfileAnalogThresholdVALVE {
7242 pub ty: StructureType,
7243 pub next: *const c_void,
7244 pub action: Action,
7245 pub binding: Path,
7246 pub on_threshold: f32,
7247 pub off_threshold: f32,
7248 pub on_haptic: *const HapticBaseHeader,
7249 pub off_haptic: *const HapticBaseHeader,
7250}
7251impl InteractionProfileAnalogThresholdVALVE {
7252 pub const TYPE: StructureType = StructureType::INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE;
7253}
7254#[repr(C)]
7255#[derive(Copy, Clone, Debug)]
7256#[doc = "See [XrBindingModificationsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBindingModificationsKHR) - defined by [XR_KHR_binding_modification](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_binding_modification)"]
7257pub struct BindingModificationsKHR {
7258 pub ty: StructureType,
7259 pub next: *const c_void,
7260 pub binding_modification_count: u32,
7261 pub binding_modifications: *const *const BindingModificationBaseHeaderKHR,
7262}
7263impl BindingModificationsKHR {
7264 pub const TYPE: StructureType = StructureType::BINDING_MODIFICATIONS_KHR;
7265}
7266#[repr(C)]
7267#[derive(Copy, Clone, Debug)]
7268#[doc = "See [XrBindingModificationBaseHeaderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBindingModificationBaseHeaderKHR) - defined by [XR_KHR_binding_modification](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_binding_modification)"]
7269pub struct BindingModificationBaseHeaderKHR {
7270 pub ty: StructureType,
7271 pub next: *const c_void,
7272}
7273#[repr(C)]
7274#[derive(Copy, Clone, Debug)]
7275#[doc = "See [XrSystemEyeGazeInteractionPropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemEyeGazeInteractionPropertiesEXT) - defined by [XR_EXT_eye_gaze_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_eye_gaze_interaction)"]
7276pub struct SystemEyeGazeInteractionPropertiesEXT {
7277 pub ty: StructureType,
7278 pub next: *mut c_void,
7279 pub supports_eye_gaze_interaction: Bool32,
7280}
7281impl SystemEyeGazeInteractionPropertiesEXT {
7282 pub const TYPE: StructureType = StructureType::SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT;
7283 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7284 #[inline]
7285 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7286 let mut x = MaybeUninit::<Self>::uninit();
7287 unsafe {
7288 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7289 ty: Self::TYPE,
7290 next,
7291 });
7292 }
7293 x
7294 }
7295}
7296#[repr(C)]
7297#[derive(Copy, Clone, Debug)]
7298#[doc = "See [XrEyeGazeSampleTimeEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazeSampleTimeEXT) - defined by [XR_EXT_eye_gaze_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_eye_gaze_interaction)"]
7299pub struct EyeGazeSampleTimeEXT {
7300 pub ty: StructureType,
7301 pub next: *mut c_void,
7302 pub time: Time,
7303}
7304impl EyeGazeSampleTimeEXT {
7305 pub const TYPE: StructureType = StructureType::EYE_GAZE_SAMPLE_TIME_EXT;
7306 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7307 #[inline]
7308 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7309 let mut x = MaybeUninit::<Self>::uninit();
7310 unsafe {
7311 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7312 ty: Self::TYPE,
7313 next,
7314 });
7315 }
7316 x
7317 }
7318}
7319#[repr(C)]
7320#[derive(Copy, Clone, Debug)]
7321#[doc = "See [XrSpatialAnchorCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoMSFT)"]
7322pub struct SpatialAnchorCreateInfoMSFT {
7323 pub ty: StructureType,
7324 pub next: *const c_void,
7325 pub space: Space,
7326 pub pose: Posef,
7327 pub time: Time,
7328}
7329impl SpatialAnchorCreateInfoMSFT {
7330 pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_MSFT;
7331}
7332#[repr(C)]
7333#[derive(Copy, Clone, Debug)]
7334#[doc = "See [XrSpatialAnchorSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorSpaceCreateInfoMSFT)"]
7335pub struct SpatialAnchorSpaceCreateInfoMSFT {
7336 pub ty: StructureType,
7337 pub next: *const c_void,
7338 pub anchor: SpatialAnchorMSFT,
7339 pub pose_in_anchor_space: Posef,
7340}
7341impl SpatialAnchorSpaceCreateInfoMSFT {
7342 pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT;
7343}
7344#[repr(C)]
7345#[derive(Copy, Clone, Debug)]
7346#[doc = "See [XrCompositionLayerImageLayoutFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerImageLayoutFB) - defined by [XR_FB_composition_layer_image_layout](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_image_layout)"]
7347pub struct CompositionLayerImageLayoutFB {
7348 pub ty: StructureType,
7349 pub next: *mut c_void,
7350 pub flags: CompositionLayerImageLayoutFlagsFB,
7351}
7352impl CompositionLayerImageLayoutFB {
7353 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_IMAGE_LAYOUT_FB;
7354 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7355 #[inline]
7356 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7357 let mut x = MaybeUninit::<Self>::uninit();
7358 unsafe {
7359 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7360 ty: Self::TYPE,
7361 next,
7362 });
7363 }
7364 x
7365 }
7366}
7367#[repr(C)]
7368#[derive(Copy, Clone, Debug)]
7369#[doc = "See [XrCompositionLayerAlphaBlendFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerAlphaBlendFB) - defined by [XR_FB_composition_layer_alpha_blend](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_alpha_blend)"]
7370pub struct CompositionLayerAlphaBlendFB {
7371 pub ty: StructureType,
7372 pub next: *mut c_void,
7373 pub src_factor_color: BlendFactorFB,
7374 pub dst_factor_color: BlendFactorFB,
7375 pub src_factor_alpha: BlendFactorFB,
7376 pub dst_factor_alpha: BlendFactorFB,
7377}
7378impl CompositionLayerAlphaBlendFB {
7379 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_ALPHA_BLEND_FB;
7380 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7381 #[inline]
7382 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7383 let mut x = MaybeUninit::<Self>::uninit();
7384 unsafe {
7385 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7386 ty: Self::TYPE,
7387 next,
7388 });
7389 }
7390 x
7391 }
7392}
7393#[repr(C)]
7394#[derive(Copy, Clone)]
7395#[doc = "See [XrGraphicsBindingEGLMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGraphicsBindingEGLMNDX) - defined by [XR_MNDX_egl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_egl_enable)"]
7396pub struct GraphicsBindingEGLMNDX {
7397 pub ty: StructureType,
7398 pub next: *const c_void,
7399 pub get_proc_address: Option<pfn::EglGetProcAddressMNDX>,
7400 pub display: EGLDisplay,
7401 pub config: EGLConfig,
7402 pub context: EGLContext,
7403}
7404impl GraphicsBindingEGLMNDX {
7405 pub const TYPE: StructureType = StructureType::GRAPHICS_BINDING_EGL_MNDX;
7406}
7407#[repr(C)]
7408#[derive(Copy, Clone, Debug)]
7409#[doc = "See [XrSpatialGraphNodeSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeSpaceCreateInfoMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7410pub struct SpatialGraphNodeSpaceCreateInfoMSFT {
7411 pub ty: StructureType,
7412 pub next: *const c_void,
7413 pub node_type: SpatialGraphNodeTypeMSFT,
7414 pub node_id: [u8; GUID_SIZE_MSFT],
7415 pub pose: Posef,
7416}
7417impl SpatialGraphNodeSpaceCreateInfoMSFT {
7418 pub const TYPE: StructureType = StructureType::SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT;
7419}
7420#[repr(C)]
7421#[derive(Copy, Clone, Debug)]
7422#[doc = "See [XrSpatialGraphStaticNodeBindingCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphStaticNodeBindingCreateInfoMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7423pub struct SpatialGraphStaticNodeBindingCreateInfoMSFT {
7424 pub ty: StructureType,
7425 pub next: *const c_void,
7426 pub space: Space,
7427 pub pose_in_space: Posef,
7428 pub time: Time,
7429}
7430impl SpatialGraphStaticNodeBindingCreateInfoMSFT {
7431 pub const TYPE: StructureType =
7432 StructureType::SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT;
7433}
7434#[repr(C)]
7435#[derive(Copy, Clone, Debug)]
7436#[doc = "See [XrSpatialGraphNodeBindingPropertiesGetInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingPropertiesGetInfoMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7437pub struct SpatialGraphNodeBindingPropertiesGetInfoMSFT {
7438 pub ty: StructureType,
7439 pub next: *const c_void,
7440}
7441impl SpatialGraphNodeBindingPropertiesGetInfoMSFT {
7442 pub const TYPE: StructureType =
7443 StructureType::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT;
7444}
7445#[repr(C)]
7446#[derive(Copy, Clone, Debug)]
7447#[doc = "See [XrSpatialGraphNodeBindingPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialGraphNodeBindingPropertiesMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
7448pub struct SpatialGraphNodeBindingPropertiesMSFT {
7449 pub ty: StructureType,
7450 pub next: *mut c_void,
7451 pub node_id: [u8; GUID_SIZE_MSFT],
7452 pub pose_in_node_space: Posef,
7453}
7454impl SpatialGraphNodeBindingPropertiesMSFT {
7455 pub const TYPE: StructureType = StructureType::SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT;
7456 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7457 #[inline]
7458 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7459 let mut x = MaybeUninit::<Self>::uninit();
7460 unsafe {
7461 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7462 ty: Self::TYPE,
7463 next,
7464 });
7465 }
7466 x
7467 }
7468}
7469#[repr(C)]
7470#[derive(Copy, Clone, Debug)]
7471#[doc = "See [XrSystemHandTrackingPropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemHandTrackingPropertiesEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7472pub struct SystemHandTrackingPropertiesEXT {
7473 pub ty: StructureType,
7474 pub next: *mut c_void,
7475 pub supports_hand_tracking: Bool32,
7476}
7477impl SystemHandTrackingPropertiesEXT {
7478 pub const TYPE: StructureType = StructureType::SYSTEM_HAND_TRACKING_PROPERTIES_EXT;
7479 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7480 #[inline]
7481 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7482 let mut x = MaybeUninit::<Self>::uninit();
7483 unsafe {
7484 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7485 ty: Self::TYPE,
7486 next,
7487 });
7488 }
7489 x
7490 }
7491}
7492#[repr(C)]
7493#[derive(Copy, Clone, Debug)]
7494#[doc = "See [XrHandTrackerCreateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackerCreateInfoEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7495pub struct HandTrackerCreateInfoEXT {
7496 pub ty: StructureType,
7497 pub next: *const c_void,
7498 pub hand: HandEXT,
7499 pub hand_joint_set: HandJointSetEXT,
7500}
7501impl HandTrackerCreateInfoEXT {
7502 pub const TYPE: StructureType = StructureType::HAND_TRACKER_CREATE_INFO_EXT;
7503}
7504#[repr(C)]
7505#[derive(Copy, Clone, Debug)]
7506#[doc = "See [XrHandJointsLocateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsLocateInfoEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7507pub struct HandJointsLocateInfoEXT {
7508 pub ty: StructureType,
7509 pub next: *const c_void,
7510 pub base_space: Space,
7511 pub time: Time,
7512}
7513impl HandJointsLocateInfoEXT {
7514 pub const TYPE: StructureType = StructureType::HAND_JOINTS_LOCATE_INFO_EXT;
7515}
7516#[repr(C)]
7517#[derive(Copy, Clone, Debug, Default, PartialEq)]
7518#[doc = "See [XrHandJointLocationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointLocationEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7519pub struct HandJointLocationEXT {
7520 pub location_flags: SpaceLocationFlags,
7521 pub pose: Posef,
7522 pub radius: f32,
7523}
7524#[repr(C)]
7525#[derive(Copy, Clone, Debug, Default, PartialEq)]
7526#[doc = "See [XrHandJointVelocityEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointVelocityEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7527pub struct HandJointVelocityEXT {
7528 pub velocity_flags: SpaceVelocityFlags,
7529 pub linear_velocity: Vector3f,
7530 pub angular_velocity: Vector3f,
7531}
7532#[repr(C)]
7533#[derive(Copy, Clone, Debug)]
7534#[doc = "See [XrHandJointLocationsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointLocationsEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7535pub struct HandJointLocationsEXT {
7536 pub ty: StructureType,
7537 pub next: *mut c_void,
7538 pub is_active: Bool32,
7539 pub joint_count: u32,
7540 pub joint_locations: *mut HandJointLocationEXT,
7541}
7542impl HandJointLocationsEXT {
7543 pub const TYPE: StructureType = StructureType::HAND_JOINT_LOCATIONS_EXT;
7544 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7545 #[inline]
7546 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7547 let mut x = MaybeUninit::<Self>::uninit();
7548 unsafe {
7549 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7550 ty: Self::TYPE,
7551 next,
7552 });
7553 }
7554 x
7555 }
7556}
7557#[repr(C)]
7558#[derive(Copy, Clone, Debug)]
7559#[doc = "See [XrHandJointVelocitiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointVelocitiesEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
7560pub struct HandJointVelocitiesEXT {
7561 pub ty: StructureType,
7562 pub next: *mut c_void,
7563 pub joint_count: u32,
7564 pub joint_velocities: *mut HandJointVelocityEXT,
7565}
7566impl HandJointVelocitiesEXT {
7567 pub const TYPE: StructureType = StructureType::HAND_JOINT_VELOCITIES_EXT;
7568 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7569 #[inline]
7570 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7571 let mut x = MaybeUninit::<Self>::uninit();
7572 unsafe {
7573 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7574 ty: Self::TYPE,
7575 next,
7576 });
7577 }
7578 x
7579 }
7580}
7581#[repr(C)]
7582#[derive(Copy, Clone, Debug)]
7583#[doc = "See [XrSystemFaceTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFaceTrackingPropertiesFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7584pub struct SystemFaceTrackingPropertiesFB {
7585 pub ty: StructureType,
7586 pub next: *mut c_void,
7587 pub supports_face_tracking: Bool32,
7588}
7589impl SystemFaceTrackingPropertiesFB {
7590 pub const TYPE: StructureType = StructureType::SYSTEM_FACE_TRACKING_PROPERTIES_FB;
7591 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7592 #[inline]
7593 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7594 let mut x = MaybeUninit::<Self>::uninit();
7595 unsafe {
7596 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7597 ty: Self::TYPE,
7598 next,
7599 });
7600 }
7601 x
7602 }
7603}
7604#[repr(C)]
7605#[derive(Copy, Clone, Debug)]
7606#[doc = "See [XrFaceTrackerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerCreateInfoFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7607pub struct FaceTrackerCreateInfoFB {
7608 pub ty: StructureType,
7609 pub next: *const c_void,
7610 pub face_expression_set: FaceExpressionSetFB,
7611}
7612impl FaceTrackerCreateInfoFB {
7613 pub const TYPE: StructureType = StructureType::FACE_TRACKER_CREATE_INFO_FB;
7614}
7615#[repr(C)]
7616#[derive(Copy, Clone, Debug)]
7617#[doc = "See [XrFaceExpressionInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionInfoFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7618pub struct FaceExpressionInfoFB {
7619 pub ty: StructureType,
7620 pub next: *const c_void,
7621 pub time: Time,
7622}
7623impl FaceExpressionInfoFB {
7624 pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_INFO_FB;
7625}
7626#[repr(C)]
7627#[derive(Copy, Clone, Debug, Default, PartialEq)]
7628#[doc = "See [XrFaceExpressionStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionStatusFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7629pub struct FaceExpressionStatusFB {
7630 pub is_valid: Bool32,
7631 pub is_eye_following_blendshapes_valid: Bool32,
7632}
7633#[repr(C)]
7634#[derive(Copy, Clone, Debug)]
7635#[doc = "See [XrFaceExpressionWeightsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionWeightsFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
7636pub struct FaceExpressionWeightsFB {
7637 pub ty: StructureType,
7638 pub next: *mut c_void,
7639 pub weight_count: u32,
7640 pub weights: *mut f32,
7641 pub confidence_count: u32,
7642 pub confidences: *mut f32,
7643 pub status: FaceExpressionStatusFB,
7644 pub time: Time,
7645}
7646impl FaceExpressionWeightsFB {
7647 pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_WEIGHTS_FB;
7648 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7649 #[inline]
7650 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7651 let mut x = MaybeUninit::<Self>::uninit();
7652 unsafe {
7653 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7654 ty: Self::TYPE,
7655 next,
7656 });
7657 }
7658 x
7659 }
7660}
7661#[repr(C)]
7662#[derive(Copy, Clone, Debug)]
7663#[doc = "See [XrSystemFaceTrackingProperties2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFaceTrackingProperties2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7664pub struct SystemFaceTrackingProperties2FB {
7665 pub ty: StructureType,
7666 pub next: *mut c_void,
7667 pub supports_visual_face_tracking: Bool32,
7668 pub supports_audio_face_tracking: Bool32,
7669}
7670impl SystemFaceTrackingProperties2FB {
7671 pub const TYPE: StructureType = StructureType::SYSTEM_FACE_TRACKING_PROPERTIES2_FB;
7672 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7673 #[inline]
7674 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7675 let mut x = MaybeUninit::<Self>::uninit();
7676 unsafe {
7677 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7678 ty: Self::TYPE,
7679 next,
7680 });
7681 }
7682 x
7683 }
7684}
7685#[repr(C)]
7686#[derive(Copy, Clone, Debug)]
7687#[doc = "See [XrFaceTrackerCreateInfo2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceTrackerCreateInfo2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7688pub struct FaceTrackerCreateInfo2FB {
7689 pub ty: StructureType,
7690 pub next: *const c_void,
7691 pub face_expression_set: FaceExpressionSet2FB,
7692 pub requested_data_source_count: u32,
7693 pub requested_data_sources: *mut FaceTrackingDataSource2FB,
7694}
7695impl FaceTrackerCreateInfo2FB {
7696 pub const TYPE: StructureType = StructureType::FACE_TRACKER_CREATE_INFO2_FB;
7697}
7698#[repr(C)]
7699#[derive(Copy, Clone, Debug)]
7700#[doc = "See [XrFaceExpressionInfo2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionInfo2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7701pub struct FaceExpressionInfo2FB {
7702 pub ty: StructureType,
7703 pub next: *const c_void,
7704 pub time: Time,
7705}
7706impl FaceExpressionInfo2FB {
7707 pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_INFO2_FB;
7708}
7709#[repr(C)]
7710#[derive(Copy, Clone, Debug)]
7711#[doc = "See [XrFaceExpressionWeights2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFaceExpressionWeights2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
7712pub struct FaceExpressionWeights2FB {
7713 pub ty: StructureType,
7714 pub next: *mut c_void,
7715 pub weight_count: u32,
7716 pub weights: *mut f32,
7717 pub confidence_count: u32,
7718 pub confidences: *mut f32,
7719 pub is_valid: Bool32,
7720 pub is_eye_following_blendshapes_valid: Bool32,
7721 pub data_source: FaceTrackingDataSource2FB,
7722 pub time: Time,
7723}
7724impl FaceExpressionWeights2FB {
7725 pub const TYPE: StructureType = StructureType::FACE_EXPRESSION_WEIGHTS2_FB;
7726 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7727 #[inline]
7728 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7729 let mut x = MaybeUninit::<Self>::uninit();
7730 unsafe {
7731 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7732 ty: Self::TYPE,
7733 next,
7734 });
7735 }
7736 x
7737 }
7738}
7739#[repr(C)]
7740#[derive(Copy, Clone, Debug)]
7741#[doc = "See [XrSystemBodyTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemBodyTrackingPropertiesFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7742pub struct SystemBodyTrackingPropertiesFB {
7743 pub ty: StructureType,
7744 pub next: *mut c_void,
7745 pub supports_body_tracking: Bool32,
7746}
7747impl SystemBodyTrackingPropertiesFB {
7748 pub const TYPE: StructureType = StructureType::SYSTEM_BODY_TRACKING_PROPERTIES_FB;
7749 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7750 #[inline]
7751 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7752 let mut x = MaybeUninit::<Self>::uninit();
7753 unsafe {
7754 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7755 ty: Self::TYPE,
7756 next,
7757 });
7758 }
7759 x
7760 }
7761}
7762#[repr(C)]
7763#[derive(Copy, Clone, Debug)]
7764#[doc = "See [XrBodyTrackerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyTrackerCreateInfoFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7765pub struct BodyTrackerCreateInfoFB {
7766 pub ty: StructureType,
7767 pub next: *const c_void,
7768 pub body_joint_set: BodyJointSetFB,
7769}
7770impl BodyTrackerCreateInfoFB {
7771 pub const TYPE: StructureType = StructureType::BODY_TRACKER_CREATE_INFO_FB;
7772}
7773#[repr(C)]
7774#[derive(Copy, Clone, Debug, Default, PartialEq)]
7775#[doc = "See [XrBodySkeletonJointFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodySkeletonJointFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7776pub struct BodySkeletonJointFB {
7777 pub joint: i32,
7778 pub parent_joint: i32,
7779 pub pose: Posef,
7780}
7781#[repr(C)]
7782#[derive(Copy, Clone, Debug)]
7783#[doc = "See [XrBodySkeletonFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodySkeletonFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7784pub struct BodySkeletonFB {
7785 pub ty: StructureType,
7786 pub next: *mut c_void,
7787 pub joint_count: u32,
7788 pub joints: *mut BodySkeletonJointFB,
7789}
7790impl BodySkeletonFB {
7791 pub const TYPE: StructureType = StructureType::BODY_SKELETON_FB;
7792 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7793 #[inline]
7794 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7795 let mut x = MaybeUninit::<Self>::uninit();
7796 unsafe {
7797 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7798 ty: Self::TYPE,
7799 next,
7800 });
7801 }
7802 x
7803 }
7804}
7805#[repr(C)]
7806#[derive(Copy, Clone, Debug)]
7807#[doc = "See [XrBodyJointsLocateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointsLocateInfoFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7808pub struct BodyJointsLocateInfoFB {
7809 pub ty: StructureType,
7810 pub next: *const c_void,
7811 pub base_space: Space,
7812 pub time: Time,
7813}
7814impl BodyJointsLocateInfoFB {
7815 pub const TYPE: StructureType = StructureType::BODY_JOINTS_LOCATE_INFO_FB;
7816}
7817#[repr(C)]
7818#[derive(Copy, Clone, Debug, Default, PartialEq)]
7819#[doc = "See [XrBodyJointLocationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointLocationFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7820pub struct BodyJointLocationFB {
7821 pub location_flags: SpaceLocationFlags,
7822 pub pose: Posef,
7823}
7824#[repr(C)]
7825#[derive(Copy, Clone, Debug)]
7826#[doc = "See [XrBodyJointLocationsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBodyJointLocationsFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
7827pub struct BodyJointLocationsFB {
7828 pub ty: StructureType,
7829 pub next: *mut c_void,
7830 pub is_active: Bool32,
7831 pub confidence: f32,
7832 pub joint_count: u32,
7833 pub joint_locations: *mut BodyJointLocationFB,
7834 pub skeleton_changed_count: u32,
7835 pub time: Time,
7836}
7837impl BodyJointLocationsFB {
7838 pub const TYPE: StructureType = StructureType::BODY_JOINT_LOCATIONS_FB;
7839 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7840 #[inline]
7841 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7842 let mut x = MaybeUninit::<Self>::uninit();
7843 unsafe {
7844 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7845 ty: Self::TYPE,
7846 next,
7847 });
7848 }
7849 x
7850 }
7851}
7852#[repr(C)]
7853#[derive(Copy, Clone, Debug)]
7854#[doc = "See [XrSystemEyeTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemEyeTrackingPropertiesFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7855pub struct SystemEyeTrackingPropertiesFB {
7856 pub ty: StructureType,
7857 pub next: *mut c_void,
7858 pub supports_eye_tracking: Bool32,
7859}
7860impl SystemEyeTrackingPropertiesFB {
7861 pub const TYPE: StructureType = StructureType::SYSTEM_EYE_TRACKING_PROPERTIES_FB;
7862 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7863 #[inline]
7864 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7865 let mut x = MaybeUninit::<Self>::uninit();
7866 unsafe {
7867 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7868 ty: Self::TYPE,
7869 next,
7870 });
7871 }
7872 x
7873 }
7874}
7875#[repr(C)]
7876#[derive(Copy, Clone, Debug)]
7877#[doc = "See [XrEyeTrackerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeTrackerCreateInfoFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7878pub struct EyeTrackerCreateInfoFB {
7879 pub ty: StructureType,
7880 pub next: *const c_void,
7881}
7882impl EyeTrackerCreateInfoFB {
7883 pub const TYPE: StructureType = StructureType::EYE_TRACKER_CREATE_INFO_FB;
7884}
7885#[repr(C)]
7886#[derive(Copy, Clone, Debug)]
7887#[doc = "See [XrEyeGazesInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazesInfoFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7888pub struct EyeGazesInfoFB {
7889 pub ty: StructureType,
7890 pub next: *const c_void,
7891 pub base_space: Space,
7892 pub time: Time,
7893}
7894impl EyeGazesInfoFB {
7895 pub const TYPE: StructureType = StructureType::EYE_GAZES_INFO_FB;
7896}
7897#[repr(C)]
7898#[derive(Copy, Clone, Debug, Default, PartialEq)]
7899#[doc = "See [XrEyeGazeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazeFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7900pub struct EyeGazeFB {
7901 pub is_valid: Bool32,
7902 pub gaze_pose: Posef,
7903 pub gaze_confidence: f32,
7904}
7905#[repr(C)]
7906#[derive(Copy, Clone, Debug)]
7907#[doc = "See [XrEyeGazesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEyeGazesFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
7908pub struct EyeGazesFB {
7909 pub ty: StructureType,
7910 pub next: *mut c_void,
7911 pub gaze: [EyeGazeFB; EYE_POSITION_COUNT_FB],
7912 pub time: Time,
7913}
7914impl EyeGazesFB {
7915 pub const TYPE: StructureType = StructureType::EYE_GAZES_FB;
7916 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7917 #[inline]
7918 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7919 let mut x = MaybeUninit::<Self>::uninit();
7920 unsafe {
7921 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7922 ty: Self::TYPE,
7923 next,
7924 });
7925 }
7926 x
7927 }
7928}
7929#[repr(C)]
7930#[derive(Copy, Clone, Debug)]
7931#[doc = "See [XrHandJointsMotionRangeInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandJointsMotionRangeInfoEXT) - defined by [XR_EXT_hand_joints_motion_range](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_joints_motion_range)"]
7932pub struct HandJointsMotionRangeInfoEXT {
7933 pub ty: StructureType,
7934 pub next: *const c_void,
7935 pub hand_joints_motion_range: HandJointsMotionRangeEXT,
7936}
7937impl HandJointsMotionRangeInfoEXT {
7938 pub const TYPE: StructureType = StructureType::HAND_JOINTS_MOTION_RANGE_INFO_EXT;
7939}
7940#[repr(C)]
7941#[derive(Copy, Clone, Debug)]
7942#[doc = "See [XrHandTrackingDataSourceInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceInfoEXT) - defined by [XR_EXT_hand_tracking_data_source](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking_data_source)"]
7943pub struct HandTrackingDataSourceInfoEXT {
7944 pub ty: StructureType,
7945 pub next: *const c_void,
7946 pub requested_data_source_count: u32,
7947 pub requested_data_sources: *mut HandTrackingDataSourceEXT,
7948}
7949impl HandTrackingDataSourceInfoEXT {
7950 pub const TYPE: StructureType = StructureType::HAND_TRACKING_DATA_SOURCE_INFO_EXT;
7951}
7952#[repr(C)]
7953#[derive(Copy, Clone, Debug)]
7954#[doc = "See [XrHandTrackingDataSourceStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingDataSourceStateEXT) - defined by [XR_EXT_hand_tracking_data_source](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking_data_source)"]
7955pub struct HandTrackingDataSourceStateEXT {
7956 pub ty: StructureType,
7957 pub next: *mut c_void,
7958 pub is_active: Bool32,
7959 pub data_source: HandTrackingDataSourceEXT,
7960}
7961impl HandTrackingDataSourceStateEXT {
7962 pub const TYPE: StructureType = StructureType::HAND_TRACKING_DATA_SOURCE_STATE_EXT;
7963 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
7964 #[inline]
7965 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
7966 let mut x = MaybeUninit::<Self>::uninit();
7967 unsafe {
7968 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
7969 ty: Self::TYPE,
7970 next,
7971 });
7972 }
7973 x
7974 }
7975}
7976#[repr(C)]
7977#[derive(Copy, Clone, Debug)]
7978#[doc = "See [XrHandMeshSpaceCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshSpaceCreateInfoMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
7979pub struct HandMeshSpaceCreateInfoMSFT {
7980 pub ty: StructureType,
7981 pub next: *const c_void,
7982 pub hand_pose_type: HandPoseTypeMSFT,
7983 pub pose_in_hand_mesh_space: Posef,
7984}
7985impl HandMeshSpaceCreateInfoMSFT {
7986 pub const TYPE: StructureType = StructureType::HAND_MESH_SPACE_CREATE_INFO_MSFT;
7987}
7988#[repr(C)]
7989#[derive(Copy, Clone, Debug)]
7990#[doc = "See [XrHandMeshUpdateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshUpdateInfoMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
7991pub struct HandMeshUpdateInfoMSFT {
7992 pub ty: StructureType,
7993 pub next: *const c_void,
7994 pub time: Time,
7995 pub hand_pose_type: HandPoseTypeMSFT,
7996}
7997impl HandMeshUpdateInfoMSFT {
7998 pub const TYPE: StructureType = StructureType::HAND_MESH_UPDATE_INFO_MSFT;
7999}
8000#[repr(C)]
8001#[derive(Copy, Clone, Debug)]
8002#[doc = "See [XrHandMeshMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8003pub struct HandMeshMSFT {
8004 pub ty: StructureType,
8005 pub next: *mut c_void,
8006 pub is_active: Bool32,
8007 pub index_buffer_changed: Bool32,
8008 pub vertex_buffer_changed: Bool32,
8009 pub index_buffer: HandMeshIndexBufferMSFT,
8010 pub vertex_buffer: HandMeshVertexBufferMSFT,
8011}
8012impl HandMeshMSFT {
8013 pub const TYPE: StructureType = StructureType::HAND_MESH_MSFT;
8014 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8015 #[inline]
8016 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8017 let mut x = MaybeUninit::<Self>::uninit();
8018 unsafe {
8019 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8020 ty: Self::TYPE,
8021 next,
8022 });
8023 }
8024 x
8025 }
8026}
8027#[repr(C)]
8028#[derive(Copy, Clone, Debug)]
8029#[doc = "See [XrHandMeshIndexBufferMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshIndexBufferMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8030pub struct HandMeshIndexBufferMSFT {
8031 pub index_buffer_key: u32,
8032 pub index_capacity_input: u32,
8033 pub index_count_output: u32,
8034 pub indices: *mut u32,
8035}
8036#[repr(C)]
8037#[derive(Copy, Clone, Debug)]
8038#[doc = "See [XrHandMeshVertexBufferMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshVertexBufferMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8039pub struct HandMeshVertexBufferMSFT {
8040 pub vertex_update_time: Time,
8041 pub vertex_capacity_input: u32,
8042 pub vertex_count_output: u32,
8043 pub vertices: *mut HandMeshVertexMSFT,
8044}
8045#[repr(C)]
8046#[derive(Copy, Clone, Debug, Default, PartialEq)]
8047#[doc = "See [XrHandMeshVertexMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandMeshVertexMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8048pub struct HandMeshVertexMSFT {
8049 pub position: Vector3f,
8050 pub normal: Vector3f,
8051}
8052#[repr(C)]
8053#[derive(Copy, Clone, Debug)]
8054#[doc = "See [XrSystemHandTrackingMeshPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemHandTrackingMeshPropertiesMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8055pub struct SystemHandTrackingMeshPropertiesMSFT {
8056 pub ty: StructureType,
8057 pub next: *mut c_void,
8058 pub supports_hand_tracking_mesh: Bool32,
8059 pub max_hand_mesh_index_count: u32,
8060 pub max_hand_mesh_vertex_count: u32,
8061}
8062impl SystemHandTrackingMeshPropertiesMSFT {
8063 pub const TYPE: StructureType = StructureType::SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT;
8064 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8065 #[inline]
8066 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8067 let mut x = MaybeUninit::<Self>::uninit();
8068 unsafe {
8069 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8070 ty: Self::TYPE,
8071 next,
8072 });
8073 }
8074 x
8075 }
8076}
8077#[repr(C)]
8078#[derive(Copy, Clone, Debug)]
8079#[doc = "See [XrHandPoseTypeInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandPoseTypeInfoMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
8080pub struct HandPoseTypeInfoMSFT {
8081 pub ty: StructureType,
8082 pub next: *const c_void,
8083 pub hand_pose_type: HandPoseTypeMSFT,
8084}
8085impl HandPoseTypeInfoMSFT {
8086 pub const TYPE: StructureType = StructureType::HAND_POSE_TYPE_INFO_MSFT;
8087}
8088#[repr(C)]
8089#[derive(Copy, Clone, Debug)]
8090#[doc = "See [XrSecondaryViewConfigurationSessionBeginInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationSessionBeginInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8091pub struct SecondaryViewConfigurationSessionBeginInfoMSFT {
8092 pub ty: StructureType,
8093 pub next: *const c_void,
8094 pub view_configuration_count: u32,
8095 pub enabled_view_configuration_types: *const ViewConfigurationType,
8096}
8097impl SecondaryViewConfigurationSessionBeginInfoMSFT {
8098 pub const TYPE: StructureType =
8099 StructureType::SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT;
8100}
8101#[repr(C)]
8102#[derive(Copy, Clone, Debug)]
8103#[doc = "See [XrSecondaryViewConfigurationStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationStateMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8104pub struct SecondaryViewConfigurationStateMSFT {
8105 pub ty: StructureType,
8106 pub next: *mut c_void,
8107 pub view_configuration_type: ViewConfigurationType,
8108 pub active: Bool32,
8109}
8110impl SecondaryViewConfigurationStateMSFT {
8111 pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_STATE_MSFT;
8112 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8113 #[inline]
8114 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8115 let mut x = MaybeUninit::<Self>::uninit();
8116 unsafe {
8117 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8118 ty: Self::TYPE,
8119 next,
8120 });
8121 }
8122 x
8123 }
8124}
8125#[repr(C)]
8126#[derive(Copy, Clone, Debug)]
8127#[doc = "See [XrSecondaryViewConfigurationFrameStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationFrameStateMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8128pub struct SecondaryViewConfigurationFrameStateMSFT {
8129 pub ty: StructureType,
8130 pub next: *mut c_void,
8131 pub view_configuration_count: u32,
8132 pub view_configuration_states: *mut SecondaryViewConfigurationStateMSFT,
8133}
8134impl SecondaryViewConfigurationFrameStateMSFT {
8135 pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT;
8136 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8137 #[inline]
8138 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8139 let mut x = MaybeUninit::<Self>::uninit();
8140 unsafe {
8141 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8142 ty: Self::TYPE,
8143 next,
8144 });
8145 }
8146 x
8147 }
8148}
8149#[repr(C)]
8150#[derive(Copy, Clone, Debug)]
8151#[doc = "See [XrSecondaryViewConfigurationFrameEndInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationFrameEndInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8152pub struct SecondaryViewConfigurationFrameEndInfoMSFT {
8153 pub ty: StructureType,
8154 pub next: *const c_void,
8155 pub view_configuration_count: u32,
8156 pub view_configuration_layers_info: *const SecondaryViewConfigurationLayerInfoMSFT,
8157}
8158impl SecondaryViewConfigurationFrameEndInfoMSFT {
8159 pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT;
8160}
8161#[repr(C)]
8162#[derive(Copy, Clone, Debug)]
8163#[doc = "See [XrSecondaryViewConfigurationLayerInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationLayerInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8164pub struct SecondaryViewConfigurationLayerInfoMSFT {
8165 pub ty: StructureType,
8166 pub next: *const c_void,
8167 pub view_configuration_type: ViewConfigurationType,
8168 pub environment_blend_mode: EnvironmentBlendMode,
8169 pub layer_count: u32,
8170 pub layers: *const *const CompositionLayerBaseHeader,
8171}
8172impl SecondaryViewConfigurationLayerInfoMSFT {
8173 pub const TYPE: StructureType = StructureType::SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT;
8174}
8175#[repr(C)]
8176#[derive(Copy, Clone, Debug)]
8177#[doc = "See [XrSecondaryViewConfigurationSwapchainCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSecondaryViewConfigurationSwapchainCreateInfoMSFT) - defined by [XR_MSFT_secondary_view_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_secondary_view_configuration)"]
8178pub struct SecondaryViewConfigurationSwapchainCreateInfoMSFT {
8179 pub ty: StructureType,
8180 pub next: *const c_void,
8181 pub view_configuration_type: ViewConfigurationType,
8182}
8183impl SecondaryViewConfigurationSwapchainCreateInfoMSFT {
8184 pub const TYPE: StructureType =
8185 StructureType::SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT;
8186}
8187#[repr(C)]
8188#[derive(Copy, Clone, Debug)]
8189#[doc = "See [XrHolographicWindowAttachmentMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHolographicWindowAttachmentMSFT) - defined by [XR_MSFT_holographic_window_attachment](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_holographic_window_attachment)"]
8190#[cfg(windows)]
8191pub struct HolographicWindowAttachmentMSFT {
8192 pub ty: StructureType,
8193 pub next: *const c_void,
8194 pub holographic_space: *mut IUnknown,
8195 pub core_window: *mut IUnknown,
8196}
8197#[cfg(windows)]
8198impl HolographicWindowAttachmentMSFT {
8199 pub const TYPE: StructureType = StructureType::HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT;
8200}
8201#[repr(C)]
8202#[derive(Copy, Clone, Debug)]
8203#[doc = "See [XrAndroidSurfaceSwapchainCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrAndroidSurfaceSwapchainCreateInfoFB) - defined by [XR_FB_android_surface_swapchain_create](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_android_surface_swapchain_create)"]
8204#[cfg(target_os = "android")]
8205pub struct AndroidSurfaceSwapchainCreateInfoFB {
8206 pub ty: StructureType,
8207 pub next: *const c_void,
8208 pub create_flags: AndroidSurfaceSwapchainFlagsFB,
8209}
8210#[cfg(target_os = "android")]
8211impl AndroidSurfaceSwapchainCreateInfoFB {
8212 pub const TYPE: StructureType = StructureType::ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB;
8213}
8214#[repr(C)]
8215#[derive(Copy, Clone, Debug)]
8216#[doc = "See [XrSwapchainStateBaseHeaderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateBaseHeaderFB) - defined by [XR_FB_swapchain_update_state](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state)"]
8217pub struct SwapchainStateBaseHeaderFB {
8218 pub ty: StructureType,
8219 pub next: *mut c_void,
8220}
8221#[repr(C)]
8222#[derive(Copy, Clone, Debug)]
8223#[doc = "See [XrSwapchainStateAndroidSurfaceDimensionsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateAndroidSurfaceDimensionsFB) - defined by [XR_FB_swapchain_update_state_android_surface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state_android_surface)"]
8224#[cfg(target_os = "android")]
8225pub struct SwapchainStateAndroidSurfaceDimensionsFB {
8226 pub ty: StructureType,
8227 pub next: *mut c_void,
8228 pub width: u32,
8229 pub height: u32,
8230}
8231#[cfg(target_os = "android")]
8232impl SwapchainStateAndroidSurfaceDimensionsFB {
8233 pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB;
8234 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8235 #[inline]
8236 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8237 let mut x = MaybeUninit::<Self>::uninit();
8238 unsafe {
8239 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8240 ty: Self::TYPE,
8241 next,
8242 });
8243 }
8244 x
8245 }
8246}
8247#[repr(C)]
8248#[derive(Copy, Clone, Debug)]
8249#[doc = "See [XrSwapchainStateSamplerOpenGLESFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateSamplerOpenGLESFB) - defined by [XR_FB_swapchain_update_state_opengl_es](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state_opengl_es)"]
8250pub struct SwapchainStateSamplerOpenGLESFB {
8251 pub ty: StructureType,
8252 pub next: *mut c_void,
8253 pub min_filter: EGLenum,
8254 pub mag_filter: EGLenum,
8255 pub wrap_mode_s: EGLenum,
8256 pub wrap_mode_t: EGLenum,
8257 pub swizzle_red: EGLenum,
8258 pub swizzle_green: EGLenum,
8259 pub swizzle_blue: EGLenum,
8260 pub swizzle_alpha: EGLenum,
8261 pub max_anisotropy: f32,
8262 pub border_color: Color4f,
8263}
8264impl SwapchainStateSamplerOpenGLESFB {
8265 pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB;
8266 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8267 #[inline]
8268 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8269 let mut x = MaybeUninit::<Self>::uninit();
8270 unsafe {
8271 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8272 ty: Self::TYPE,
8273 next,
8274 });
8275 }
8276 x
8277 }
8278}
8279#[repr(C)]
8280#[derive(Copy, Clone, Debug)]
8281#[doc = "See [XrSwapchainStateSamplerVulkanFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateSamplerVulkanFB) - defined by [XR_FB_swapchain_update_state_vulkan](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state_vulkan)"]
8282pub struct SwapchainStateSamplerVulkanFB {
8283 pub ty: StructureType,
8284 pub next: *mut c_void,
8285 pub min_filter: VkFilter,
8286 pub mag_filter: VkFilter,
8287 pub mipmap_mode: VkSamplerMipmapMode,
8288 pub wrap_mode_s: VkSamplerAddressMode,
8289 pub wrap_mode_t: VkSamplerAddressMode,
8290 pub swizzle_red: VkComponentSwizzle,
8291 pub swizzle_green: VkComponentSwizzle,
8292 pub swizzle_blue: VkComponentSwizzle,
8293 pub swizzle_alpha: VkComponentSwizzle,
8294 pub max_anisotropy: f32,
8295 pub border_color: Color4f,
8296}
8297impl SwapchainStateSamplerVulkanFB {
8298 pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_SAMPLER_VULKAN_FB;
8299 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8300 #[inline]
8301 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8302 let mut x = MaybeUninit::<Self>::uninit();
8303 unsafe {
8304 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8305 ty: Self::TYPE,
8306 next,
8307 });
8308 }
8309 x
8310 }
8311}
8312#[repr(C)]
8313#[derive(Copy, Clone, Debug)]
8314#[doc = "See [XrCompositionLayerSecureContentFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSecureContentFB) - defined by [XR_FB_composition_layer_secure_content](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_secure_content)"]
8315pub struct CompositionLayerSecureContentFB {
8316 pub ty: StructureType,
8317 pub next: *const c_void,
8318 pub flags: CompositionLayerSecureContentFlagsFB,
8319}
8320impl CompositionLayerSecureContentFB {
8321 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SECURE_CONTENT_FB;
8322}
8323#[repr(C)]
8324#[derive(Copy, Clone, Debug)]
8325#[doc = "See [XrLoaderInitInfoBaseHeaderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLoaderInitInfoBaseHeaderKHR) - defined by [XR_KHR_loader_init](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_loader_init)"]
8326pub struct LoaderInitInfoBaseHeaderKHR {
8327 pub ty: StructureType,
8328 pub next: *const c_void,
8329}
8330#[repr(C)]
8331#[derive(Copy, Clone, Debug)]
8332#[doc = "See [XrLoaderInitInfoAndroidKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLoaderInitInfoAndroidKHR) - defined by [XR_KHR_loader_init_android](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_loader_init_android)"]
8333#[cfg(target_os = "android")]
8334pub struct LoaderInitInfoAndroidKHR {
8335 pub ty: StructureType,
8336 pub next: *const c_void,
8337 pub application_vm: *mut c_void,
8338 pub application_context: *mut c_void,
8339}
8340#[cfg(target_os = "android")]
8341impl LoaderInitInfoAndroidKHR {
8342 pub const TYPE: StructureType = StructureType::LOADER_INIT_INFO_ANDROID_KHR;
8343}
8344#[repr(C)]
8345#[derive(Copy, Clone, Debug)]
8346#[doc = "See [XrCompositionLayerEquirect2KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerEquirect2KHR) - defined by [XR_KHR_composition_layer_equirect2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_equirect2)"]
8347pub struct CompositionLayerEquirect2KHR {
8348 pub ty: StructureType,
8349 pub next: *const c_void,
8350 pub layer_flags: CompositionLayerFlags,
8351 pub space: Space,
8352 pub eye_visibility: EyeVisibility,
8353 pub sub_image: SwapchainSubImage,
8354 pub pose: Posef,
8355 pub radius: f32,
8356 pub central_horizontal_angle: f32,
8357 pub upper_vertical_angle: f32,
8358 pub lower_vertical_angle: f32,
8359}
8360impl CompositionLayerEquirect2KHR {
8361 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_EQUIRECT2_KHR;
8362}
8363#[repr(C)]
8364#[derive(Copy, Clone, Debug)]
8365#[doc = "See [XrCompositionLayerColorScaleBiasKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerColorScaleBiasKHR) - defined by [XR_KHR_composition_layer_color_scale_bias](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_composition_layer_color_scale_bias)"]
8366pub struct CompositionLayerColorScaleBiasKHR {
8367 pub ty: StructureType,
8368 pub next: *const c_void,
8369 pub color_scale: Color4f,
8370 pub color_bias: Color4f,
8371}
8372impl CompositionLayerColorScaleBiasKHR {
8373 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR;
8374}
8375#[repr(C)]
8376#[derive(Copy, Clone, Debug)]
8377#[doc = "See [XrControllerModelKeyStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelKeyStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8378pub struct ControllerModelKeyStateMSFT {
8379 pub ty: StructureType,
8380 pub next: *mut c_void,
8381 pub model_key: ControllerModelKeyMSFT,
8382}
8383impl ControllerModelKeyStateMSFT {
8384 pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_KEY_STATE_MSFT;
8385 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8386 #[inline]
8387 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8388 let mut x = MaybeUninit::<Self>::uninit();
8389 unsafe {
8390 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8391 ty: Self::TYPE,
8392 next,
8393 });
8394 }
8395 x
8396 }
8397}
8398#[repr(C)]
8399#[derive(Copy, Clone, Debug)]
8400#[doc = "See [XrControllerModelNodePropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelNodePropertiesMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8401pub struct ControllerModelNodePropertiesMSFT {
8402 pub ty: StructureType,
8403 pub next: *mut c_void,
8404 pub parent_node_name: [c_char; MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT],
8405 pub node_name: [c_char; MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT],
8406}
8407impl ControllerModelNodePropertiesMSFT {
8408 pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_NODE_PROPERTIES_MSFT;
8409 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8410 #[inline]
8411 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8412 let mut x = MaybeUninit::<Self>::uninit();
8413 unsafe {
8414 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8415 ty: Self::TYPE,
8416 next,
8417 });
8418 }
8419 x
8420 }
8421}
8422#[repr(C)]
8423#[derive(Copy, Clone, Debug)]
8424#[doc = "See [XrControllerModelPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelPropertiesMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8425pub struct ControllerModelPropertiesMSFT {
8426 pub ty: StructureType,
8427 pub next: *mut c_void,
8428 pub node_capacity_input: u32,
8429 pub node_count_output: u32,
8430 pub node_properties: *mut ControllerModelNodePropertiesMSFT,
8431}
8432impl ControllerModelPropertiesMSFT {
8433 pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_PROPERTIES_MSFT;
8434 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8435 #[inline]
8436 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8437 let mut x = MaybeUninit::<Self>::uninit();
8438 unsafe {
8439 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8440 ty: Self::TYPE,
8441 next,
8442 });
8443 }
8444 x
8445 }
8446}
8447#[repr(C)]
8448#[derive(Copy, Clone, Debug)]
8449#[doc = "See [XrControllerModelNodeStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelNodeStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8450pub struct ControllerModelNodeStateMSFT {
8451 pub ty: StructureType,
8452 pub next: *mut c_void,
8453 pub node_pose: Posef,
8454}
8455impl ControllerModelNodeStateMSFT {
8456 pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_NODE_STATE_MSFT;
8457 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8458 #[inline]
8459 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8460 let mut x = MaybeUninit::<Self>::uninit();
8461 unsafe {
8462 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8463 ty: Self::TYPE,
8464 next,
8465 });
8466 }
8467 x
8468 }
8469}
8470#[repr(C)]
8471#[derive(Copy, Clone, Debug)]
8472#[doc = "See [XrControllerModelStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrControllerModelStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
8473pub struct ControllerModelStateMSFT {
8474 pub ty: StructureType,
8475 pub next: *mut c_void,
8476 pub node_capacity_input: u32,
8477 pub node_count_output: u32,
8478 pub node_states: *mut ControllerModelNodeStateMSFT,
8479}
8480impl ControllerModelStateMSFT {
8481 pub const TYPE: StructureType = StructureType::CONTROLLER_MODEL_STATE_MSFT;
8482 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8483 #[inline]
8484 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8485 let mut x = MaybeUninit::<Self>::uninit();
8486 unsafe {
8487 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8488 ty: Self::TYPE,
8489 next,
8490 });
8491 }
8492 x
8493 }
8494}
8495#[repr(C)]
8496#[derive(Copy, Clone, Debug)]
8497#[doc = "See [XrSystemColorSpacePropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemColorSpacePropertiesFB) - defined by [XR_FB_color_space](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_color_space)"]
8498pub struct SystemColorSpacePropertiesFB {
8499 pub ty: StructureType,
8500 pub next: *mut c_void,
8501 pub color_space: ColorSpaceFB,
8502}
8503impl SystemColorSpacePropertiesFB {
8504 pub const TYPE: StructureType = StructureType::SYSTEM_COLOR_SPACE_PROPERTIES_FB;
8505 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8506 #[inline]
8507 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8508 let mut x = MaybeUninit::<Self>::uninit();
8509 unsafe {
8510 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8511 ty: Self::TYPE,
8512 next,
8513 });
8514 }
8515 x
8516 }
8517}
8518#[repr(C)]
8519#[derive(Copy, Clone, Debug)]
8520#[doc = "See [XrSystemSpatialEntityPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemSpatialEntityPropertiesFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8521pub struct SystemSpatialEntityPropertiesFB {
8522 pub ty: StructureType,
8523 pub next: *const c_void,
8524 pub supports_spatial_entity: Bool32,
8525}
8526impl SystemSpatialEntityPropertiesFB {
8527 pub const TYPE: StructureType = StructureType::SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB;
8528}
8529#[repr(C)]
8530#[derive(Copy, Clone, Debug)]
8531#[doc = "See [XrSpatialAnchorCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8532pub struct SpatialAnchorCreateInfoFB {
8533 pub ty: StructureType,
8534 pub next: *const c_void,
8535 pub space: Space,
8536 pub pose_in_space: Posef,
8537 pub time: Time,
8538}
8539impl SpatialAnchorCreateInfoFB {
8540 pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_FB;
8541}
8542#[repr(C)]
8543#[derive(Copy, Clone, Debug)]
8544#[doc = "See [XrSpaceComponentStatusSetInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentStatusSetInfoFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8545pub struct SpaceComponentStatusSetInfoFB {
8546 pub ty: StructureType,
8547 pub next: *const c_void,
8548 pub component_type: SpaceComponentTypeFB,
8549 pub enabled: Bool32,
8550 pub timeout: Duration,
8551}
8552impl SpaceComponentStatusSetInfoFB {
8553 pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_STATUS_SET_INFO_FB;
8554}
8555#[repr(C)]
8556#[derive(Copy, Clone, Debug)]
8557#[doc = "See [XrSpaceComponentStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentStatusFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8558pub struct SpaceComponentStatusFB {
8559 pub ty: StructureType,
8560 pub next: *mut c_void,
8561 pub enabled: Bool32,
8562 pub change_pending: Bool32,
8563}
8564impl SpaceComponentStatusFB {
8565 pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_STATUS_FB;
8566 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8567 #[inline]
8568 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8569 let mut x = MaybeUninit::<Self>::uninit();
8570 unsafe {
8571 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8572 ty: Self::TYPE,
8573 next,
8574 });
8575 }
8576 x
8577 }
8578}
8579#[repr(C)]
8580#[derive(Copy, Clone, Debug)]
8581#[doc = "See [XrEventDataSpatialAnchorCreateCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpatialAnchorCreateCompleteFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8582pub struct EventDataSpatialAnchorCreateCompleteFB {
8583 pub ty: StructureType,
8584 pub next: *const c_void,
8585 pub request_id: AsyncRequestIdFB,
8586 pub result: Result,
8587 pub space: Space,
8588 pub uuid: UuidEXT,
8589}
8590impl EventDataSpatialAnchorCreateCompleteFB {
8591 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB;
8592}
8593#[repr(C)]
8594#[derive(Copy, Clone, Debug)]
8595#[doc = "See [XrEventDataSpaceSetStatusCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceSetStatusCompleteFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
8596pub struct EventDataSpaceSetStatusCompleteFB {
8597 pub ty: StructureType,
8598 pub next: *const c_void,
8599 pub request_id: AsyncRequestIdFB,
8600 pub result: Result,
8601 pub space: Space,
8602 pub uuid: UuidEXT,
8603 pub component_type: SpaceComponentTypeFB,
8604 pub enabled: Bool32,
8605}
8606impl EventDataSpaceSetStatusCompleteFB {
8607 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB;
8608}
8609#[repr(C)]
8610#[derive(Copy, Clone, Debug)]
8611#[doc = "See [XrFoveationProfileCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationProfileCreateInfoFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
8612pub struct FoveationProfileCreateInfoFB {
8613 pub ty: StructureType,
8614 pub next: *mut c_void,
8615}
8616impl FoveationProfileCreateInfoFB {
8617 pub const TYPE: StructureType = StructureType::FOVEATION_PROFILE_CREATE_INFO_FB;
8618 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8619 #[inline]
8620 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8621 let mut x = MaybeUninit::<Self>::uninit();
8622 unsafe {
8623 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8624 ty: Self::TYPE,
8625 next,
8626 });
8627 }
8628 x
8629 }
8630}
8631#[repr(C)]
8632#[derive(Copy, Clone, Debug)]
8633#[doc = "See [XrSwapchainCreateInfoFoveationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainCreateInfoFoveationFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
8634pub struct SwapchainCreateInfoFoveationFB {
8635 pub ty: StructureType,
8636 pub next: *mut c_void,
8637 pub flags: SwapchainCreateFoveationFlagsFB,
8638}
8639impl SwapchainCreateInfoFoveationFB {
8640 pub const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_FOVEATION_FB;
8641 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8642 #[inline]
8643 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8644 let mut x = MaybeUninit::<Self>::uninit();
8645 unsafe {
8646 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8647 ty: Self::TYPE,
8648 next,
8649 });
8650 }
8651 x
8652 }
8653}
8654#[repr(C)]
8655#[derive(Copy, Clone, Debug)]
8656#[doc = "See [XrSwapchainStateFoveationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainStateFoveationFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
8657pub struct SwapchainStateFoveationFB {
8658 pub ty: StructureType,
8659 pub next: *mut c_void,
8660 pub flags: SwapchainStateFoveationFlagsFB,
8661 pub profile: FoveationProfileFB,
8662}
8663impl SwapchainStateFoveationFB {
8664 pub const TYPE: StructureType = StructureType::SWAPCHAIN_STATE_FOVEATION_FB;
8665 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8666 #[inline]
8667 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8668 let mut x = MaybeUninit::<Self>::uninit();
8669 unsafe {
8670 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8671 ty: Self::TYPE,
8672 next,
8673 });
8674 }
8675 x
8676 }
8677}
8678#[repr(C)]
8679#[derive(Copy, Clone, Debug)]
8680#[doc = "See [XrSwapchainImageFoveationVulkanFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSwapchainImageFoveationVulkanFB) - defined by [XR_FB_foveation_vulkan](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation_vulkan)"]
8681pub struct SwapchainImageFoveationVulkanFB {
8682 pub ty: StructureType,
8683 pub next: *mut c_void,
8684 pub image: VkImage,
8685 pub width: u32,
8686 pub height: u32,
8687}
8688impl SwapchainImageFoveationVulkanFB {
8689 pub const TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB;
8690 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8691 #[inline]
8692 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8693 let mut x = MaybeUninit::<Self>::uninit();
8694 unsafe {
8695 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8696 ty: Self::TYPE,
8697 next,
8698 });
8699 }
8700 x
8701 }
8702}
8703#[repr(C)]
8704#[derive(Copy, Clone, Debug)]
8705#[doc = "See [XrFoveationLevelProfileCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationLevelProfileCreateInfoFB) - defined by [XR_FB_foveation_configuration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation_configuration)"]
8706pub struct FoveationLevelProfileCreateInfoFB {
8707 pub ty: StructureType,
8708 pub next: *mut c_void,
8709 pub level: FoveationLevelFB,
8710 pub vertical_offset: f32,
8711 pub dynamic: FoveationDynamicFB,
8712}
8713impl FoveationLevelProfileCreateInfoFB {
8714 pub const TYPE: StructureType = StructureType::FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB;
8715 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8716 #[inline]
8717 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8718 let mut x = MaybeUninit::<Self>::uninit();
8719 unsafe {
8720 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8721 ty: Self::TYPE,
8722 next,
8723 });
8724 }
8725 x
8726 }
8727}
8728#[repr(C)]
8729#[derive(Copy, Clone, Debug)]
8730#[doc = "See [XrFoveationEyeTrackedProfileCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedProfileCreateInfoMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
8731pub struct FoveationEyeTrackedProfileCreateInfoMETA {
8732 pub ty: StructureType,
8733 pub next: *const c_void,
8734 pub flags: FoveationEyeTrackedProfileCreateFlagsMETA,
8735}
8736impl FoveationEyeTrackedProfileCreateInfoMETA {
8737 pub const TYPE: StructureType = StructureType::FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META;
8738}
8739#[repr(C)]
8740#[derive(Copy, Clone, Debug)]
8741#[doc = "See [XrFoveationEyeTrackedStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationEyeTrackedStateMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
8742pub struct FoveationEyeTrackedStateMETA {
8743 pub ty: StructureType,
8744 pub next: *mut c_void,
8745 pub foveation_center: [Vector2f; FOVEATION_CENTER_SIZE_META],
8746 pub flags: FoveationEyeTrackedStateFlagsMETA,
8747}
8748impl FoveationEyeTrackedStateMETA {
8749 pub const TYPE: StructureType = StructureType::FOVEATION_EYE_TRACKED_STATE_META;
8750 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8751 #[inline]
8752 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8753 let mut x = MaybeUninit::<Self>::uninit();
8754 unsafe {
8755 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8756 ty: Self::TYPE,
8757 next,
8758 });
8759 }
8760 x
8761 }
8762}
8763#[repr(C)]
8764#[derive(Copy, Clone, Debug)]
8765#[doc = "See [XrSystemFoveationEyeTrackedPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFoveationEyeTrackedPropertiesMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
8766pub struct SystemFoveationEyeTrackedPropertiesMETA {
8767 pub ty: StructureType,
8768 pub next: *mut c_void,
8769 pub supports_foveation_eye_tracked: Bool32,
8770}
8771impl SystemFoveationEyeTrackedPropertiesMETA {
8772 pub const TYPE: StructureType = StructureType::SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META;
8773 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8774 #[inline]
8775 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8776 let mut x = MaybeUninit::<Self>::uninit();
8777 unsafe {
8778 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8779 ty: Self::TYPE,
8780 next,
8781 });
8782 }
8783 x
8784 }
8785}
8786#[repr(C)]
8787#[derive(Copy, Clone, Debug, Default, PartialEq)]
8788#[doc = "See [XrVector4sFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVector4sFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
8789pub struct Vector4sFB {
8790 pub x: i16,
8791 pub y: i16,
8792 pub z: i16,
8793 pub w: i16,
8794}
8795#[repr(C)]
8796#[derive(Copy, Clone, Debug)]
8797#[doc = "See [XrHandTrackingMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingMeshFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
8798pub struct HandTrackingMeshFB {
8799 pub ty: StructureType,
8800 pub next: *mut c_void,
8801 pub joint_capacity_input: u32,
8802 pub joint_count_output: u32,
8803 pub joint_bind_poses: *mut Posef,
8804 pub joint_radii: *mut f32,
8805 pub joint_parents: *mut HandJointEXT,
8806 pub vertex_capacity_input: u32,
8807 pub vertex_count_output: u32,
8808 pub vertex_positions: *mut Vector3f,
8809 pub vertex_normals: *mut Vector3f,
8810 pub vertex_u_vs: *mut Vector2f,
8811 pub vertex_blend_indices: *mut Vector4sFB,
8812 pub vertex_blend_weights: *mut Vector4f,
8813 pub index_capacity_input: u32,
8814 pub index_count_output: u32,
8815 pub indices: *mut i16,
8816}
8817impl HandTrackingMeshFB {
8818 pub const TYPE: StructureType = StructureType::HAND_TRACKING_MESH_FB;
8819 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8820 #[inline]
8821 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8822 let mut x = MaybeUninit::<Self>::uninit();
8823 unsafe {
8824 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8825 ty: Self::TYPE,
8826 next,
8827 });
8828 }
8829 x
8830 }
8831}
8832#[repr(C)]
8833#[derive(Copy, Clone, Debug)]
8834#[doc = "See [XrHandTrackingScaleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingScaleFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
8835pub struct HandTrackingScaleFB {
8836 pub ty: StructureType,
8837 pub next: *mut c_void,
8838 pub sensor_output: f32,
8839 pub current_output: f32,
8840 pub override_hand_scale: Bool32,
8841 pub override_value_input: f32,
8842}
8843impl HandTrackingScaleFB {
8844 pub const TYPE: StructureType = StructureType::HAND_TRACKING_SCALE_FB;
8845 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8846 #[inline]
8847 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8848 let mut x = MaybeUninit::<Self>::uninit();
8849 unsafe {
8850 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8851 ty: Self::TYPE,
8852 next,
8853 });
8854 }
8855 x
8856 }
8857}
8858#[repr(C)]
8859#[derive(Copy, Clone, Debug)]
8860#[doc = "See [XrHandTrackingAimStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingAimStateFB) - defined by [XR_FB_hand_tracking_aim](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_aim)"]
8861pub struct HandTrackingAimStateFB {
8862 pub ty: StructureType,
8863 pub next: *mut c_void,
8864 pub status: HandTrackingAimFlagsFB,
8865 pub aim_pose: Posef,
8866 pub pinch_strength_index: f32,
8867 pub pinch_strength_middle: f32,
8868 pub pinch_strength_ring: f32,
8869 pub pinch_strength_little: f32,
8870}
8871impl HandTrackingAimStateFB {
8872 pub const TYPE: StructureType = StructureType::HAND_TRACKING_AIM_STATE_FB;
8873 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8874 #[inline]
8875 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8876 let mut x = MaybeUninit::<Self>::uninit();
8877 unsafe {
8878 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8879 ty: Self::TYPE,
8880 next,
8881 });
8882 }
8883 x
8884 }
8885}
8886#[repr(C)]
8887#[derive(Copy, Clone, Debug)]
8888#[doc = "See [XrHandCapsuleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandCapsuleFB) - defined by [XR_FB_hand_tracking_capsules](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_capsules)"]
8889pub struct HandCapsuleFB {
8890 pub points: [Vector3f; HAND_TRACKING_CAPSULE_POINT_COUNT_FB],
8891 pub radius: f32,
8892 pub joint: HandJointEXT,
8893}
8894#[repr(C)]
8895#[derive(Copy, Clone, Debug)]
8896#[doc = "See [XrHandTrackingCapsulesStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHandTrackingCapsulesStateFB) - defined by [XR_FB_hand_tracking_capsules](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_capsules)"]
8897pub struct HandTrackingCapsulesStateFB {
8898 pub ty: StructureType,
8899 pub next: *mut c_void,
8900 pub capsules: [HandCapsuleFB; HAND_TRACKING_CAPSULE_COUNT_FB],
8901}
8902impl HandTrackingCapsulesStateFB {
8903 pub const TYPE: StructureType = StructureType::HAND_TRACKING_CAPSULES_STATE_FB;
8904 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8905 #[inline]
8906 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8907 let mut x = MaybeUninit::<Self>::uninit();
8908 unsafe {
8909 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8910 ty: Self::TYPE,
8911 next,
8912 });
8913 }
8914 x
8915 }
8916}
8917#[repr(C)]
8918#[derive(Copy, Clone, Debug)]
8919#[doc = "See [XrRenderModelPathInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelPathInfoFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8920pub struct RenderModelPathInfoFB {
8921 pub ty: StructureType,
8922 pub next: *mut c_void,
8923 pub path: Path,
8924}
8925impl RenderModelPathInfoFB {
8926 pub const TYPE: StructureType = StructureType::RENDER_MODEL_PATH_INFO_FB;
8927 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8928 #[inline]
8929 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8930 let mut x = MaybeUninit::<Self>::uninit();
8931 unsafe {
8932 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8933 ty: Self::TYPE,
8934 next,
8935 });
8936 }
8937 x
8938 }
8939}
8940#[repr(C)]
8941#[derive(Copy, Clone, Debug)]
8942#[doc = "See [XrRenderModelPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelPropertiesFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8943pub struct RenderModelPropertiesFB {
8944 pub ty: StructureType,
8945 pub next: *mut c_void,
8946 pub vendor_id: u32,
8947 pub model_name: [c_char; MAX_RENDER_MODEL_NAME_SIZE_FB],
8948 pub model_key: RenderModelKeyFB,
8949 pub model_version: u32,
8950 pub flags: RenderModelFlagsFB,
8951}
8952impl RenderModelPropertiesFB {
8953 pub const TYPE: StructureType = StructureType::RENDER_MODEL_PROPERTIES_FB;
8954 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8955 #[inline]
8956 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8957 let mut x = MaybeUninit::<Self>::uninit();
8958 unsafe {
8959 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8960 ty: Self::TYPE,
8961 next,
8962 });
8963 }
8964 x
8965 }
8966}
8967#[repr(C)]
8968#[derive(Copy, Clone, Debug)]
8969#[doc = "See [XrRenderModelCapabilitiesRequestFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelCapabilitiesRequestFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8970pub struct RenderModelCapabilitiesRequestFB {
8971 pub ty: StructureType,
8972 pub next: *mut c_void,
8973 pub flags: RenderModelFlagsFB,
8974}
8975impl RenderModelCapabilitiesRequestFB {
8976 pub const TYPE: StructureType = StructureType::RENDER_MODEL_CAPABILITIES_REQUEST_FB;
8977 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
8978 #[inline]
8979 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
8980 let mut x = MaybeUninit::<Self>::uninit();
8981 unsafe {
8982 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
8983 ty: Self::TYPE,
8984 next,
8985 });
8986 }
8987 x
8988 }
8989}
8990#[repr(C)]
8991#[derive(Copy, Clone, Debug)]
8992#[doc = "See [XrRenderModelBufferFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelBufferFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
8993pub struct RenderModelBufferFB {
8994 pub ty: StructureType,
8995 pub next: *mut c_void,
8996 pub buffer_capacity_input: u32,
8997 pub buffer_count_output: u32,
8998 pub buffer: *mut u8,
8999}
9000impl RenderModelBufferFB {
9001 pub const TYPE: StructureType = StructureType::RENDER_MODEL_BUFFER_FB;
9002 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9003 #[inline]
9004 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9005 let mut x = MaybeUninit::<Self>::uninit();
9006 unsafe {
9007 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9008 ty: Self::TYPE,
9009 next,
9010 });
9011 }
9012 x
9013 }
9014}
9015#[repr(C)]
9016#[derive(Copy, Clone, Debug)]
9017#[doc = "See [XrRenderModelLoadInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRenderModelLoadInfoFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
9018pub struct RenderModelLoadInfoFB {
9019 pub ty: StructureType,
9020 pub next: *mut c_void,
9021 pub model_key: RenderModelKeyFB,
9022}
9023impl RenderModelLoadInfoFB {
9024 pub const TYPE: StructureType = StructureType::RENDER_MODEL_LOAD_INFO_FB;
9025 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9026 #[inline]
9027 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9028 let mut x = MaybeUninit::<Self>::uninit();
9029 unsafe {
9030 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9031 ty: Self::TYPE,
9032 next,
9033 });
9034 }
9035 x
9036 }
9037}
9038#[repr(C)]
9039#[derive(Copy, Clone, Debug)]
9040#[doc = "See [XrSystemRenderModelPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemRenderModelPropertiesFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
9041pub struct SystemRenderModelPropertiesFB {
9042 pub ty: StructureType,
9043 pub next: *mut c_void,
9044 pub supports_render_model_loading: Bool32,
9045}
9046impl SystemRenderModelPropertiesFB {
9047 pub const TYPE: StructureType = StructureType::SYSTEM_RENDER_MODEL_PROPERTIES_FB;
9048 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9049 #[inline]
9050 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9051 let mut x = MaybeUninit::<Self>::uninit();
9052 unsafe {
9053 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9054 ty: Self::TYPE,
9055 next,
9056 });
9057 }
9058 x
9059 }
9060}
9061#[repr(C)]
9062#[derive(Copy, Clone, Debug)]
9063#[doc = "See [XrSpaceQueryInfoBaseHeaderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryInfoBaseHeaderFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9064pub struct SpaceQueryInfoBaseHeaderFB {
9065 pub ty: StructureType,
9066 pub next: *const c_void,
9067}
9068#[repr(C)]
9069#[derive(Copy, Clone, Debug)]
9070#[doc = "See [XrSpaceFilterInfoBaseHeaderFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceFilterInfoBaseHeaderFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9071pub struct SpaceFilterInfoBaseHeaderFB {
9072 pub ty: StructureType,
9073 pub next: *const c_void,
9074}
9075#[repr(C)]
9076#[derive(Copy, Clone, Debug)]
9077#[doc = "See [XrSpaceQueryInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9078pub struct SpaceQueryInfoFB {
9079 pub ty: StructureType,
9080 pub next: *const c_void,
9081 pub query_action: SpaceQueryActionFB,
9082 pub max_result_count: u32,
9083 pub timeout: Duration,
9084 pub filter: *const SpaceFilterInfoBaseHeaderFB,
9085 pub exclude_filter: *const SpaceFilterInfoBaseHeaderFB,
9086}
9087impl SpaceQueryInfoFB {
9088 pub const TYPE: StructureType = StructureType::SPACE_QUERY_INFO_FB;
9089}
9090#[repr(C)]
9091#[derive(Copy, Clone, Debug)]
9092#[doc = "See [XrSpaceStorageLocationFilterInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceStorageLocationFilterInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9093pub struct SpaceStorageLocationFilterInfoFB {
9094 pub ty: StructureType,
9095 pub next: *const c_void,
9096 pub location: SpaceStorageLocationFB,
9097}
9098impl SpaceStorageLocationFilterInfoFB {
9099 pub const TYPE: StructureType = StructureType::SPACE_STORAGE_LOCATION_FILTER_INFO_FB;
9100}
9101#[repr(C)]
9102#[derive(Copy, Clone, Debug)]
9103#[doc = "See [XrSpaceUuidFilterInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUuidFilterInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9104pub struct SpaceUuidFilterInfoFB {
9105 pub ty: StructureType,
9106 pub next: *const c_void,
9107 pub uuid_count: u32,
9108 pub uuids: *mut UuidEXT,
9109}
9110impl SpaceUuidFilterInfoFB {
9111 pub const TYPE: StructureType = StructureType::SPACE_UUID_FILTER_INFO_FB;
9112}
9113#[repr(C)]
9114#[derive(Copy, Clone, Debug)]
9115#[doc = "See [XrSpaceComponentFilterInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceComponentFilterInfoFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9116pub struct SpaceComponentFilterInfoFB {
9117 pub ty: StructureType,
9118 pub next: *const c_void,
9119 pub component_type: SpaceComponentTypeFB,
9120}
9121impl SpaceComponentFilterInfoFB {
9122 pub const TYPE: StructureType = StructureType::SPACE_COMPONENT_FILTER_INFO_FB;
9123}
9124#[repr(C)]
9125#[derive(Copy, Clone, Debug)]
9126#[doc = "See [XrSpaceQueryResultFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryResultFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9127pub struct SpaceQueryResultFB {
9128 pub space: Space,
9129 pub uuid: UuidEXT,
9130}
9131#[repr(C)]
9132#[derive(Copy, Clone, Debug)]
9133#[doc = "See [XrSpaceQueryResultsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceQueryResultsFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9134pub struct SpaceQueryResultsFB {
9135 pub ty: StructureType,
9136 pub next: *mut c_void,
9137 pub result_capacity_input: u32,
9138 pub result_count_output: u32,
9139 pub results: *mut SpaceQueryResultFB,
9140}
9141impl SpaceQueryResultsFB {
9142 pub const TYPE: StructureType = StructureType::SPACE_QUERY_RESULTS_FB;
9143 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9144 #[inline]
9145 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9146 let mut x = MaybeUninit::<Self>::uninit();
9147 unsafe {
9148 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9149 ty: Self::TYPE,
9150 next,
9151 });
9152 }
9153 x
9154 }
9155}
9156#[repr(C)]
9157#[derive(Copy, Clone, Debug)]
9158#[doc = "See [XrEventDataSpaceQueryResultsAvailableFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceQueryResultsAvailableFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9159pub struct EventDataSpaceQueryResultsAvailableFB {
9160 pub ty: StructureType,
9161 pub next: *const c_void,
9162 pub request_id: AsyncRequestIdFB,
9163}
9164impl EventDataSpaceQueryResultsAvailableFB {
9165 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB;
9166}
9167#[repr(C)]
9168#[derive(Copy, Clone, Debug)]
9169#[doc = "See [XrEventDataSpaceQueryCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceQueryCompleteFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
9170pub struct EventDataSpaceQueryCompleteFB {
9171 pub ty: StructureType,
9172 pub next: *const c_void,
9173 pub request_id: AsyncRequestIdFB,
9174 pub result: Result,
9175}
9176impl EventDataSpaceQueryCompleteFB {
9177 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_QUERY_COMPLETE_FB;
9178}
9179#[repr(C)]
9180#[derive(Copy, Clone, Debug)]
9181#[doc = "See [XrSpaceSaveInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceSaveInfoFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9182pub struct SpaceSaveInfoFB {
9183 pub ty: StructureType,
9184 pub next: *const c_void,
9185 pub space: Space,
9186 pub location: SpaceStorageLocationFB,
9187 pub persistence_mode: SpacePersistenceModeFB,
9188}
9189impl SpaceSaveInfoFB {
9190 pub const TYPE: StructureType = StructureType::SPACE_SAVE_INFO_FB;
9191}
9192#[repr(C)]
9193#[derive(Copy, Clone, Debug)]
9194#[doc = "See [XrSpaceEraseInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceEraseInfoFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9195pub struct SpaceEraseInfoFB {
9196 pub ty: StructureType,
9197 pub next: *const c_void,
9198 pub space: Space,
9199 pub location: SpaceStorageLocationFB,
9200}
9201impl SpaceEraseInfoFB {
9202 pub const TYPE: StructureType = StructureType::SPACE_ERASE_INFO_FB;
9203}
9204#[repr(C)]
9205#[derive(Copy, Clone, Debug)]
9206#[doc = "See [XrEventDataSpaceSaveCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceSaveCompleteFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9207pub struct EventDataSpaceSaveCompleteFB {
9208 pub ty: StructureType,
9209 pub next: *const c_void,
9210 pub request_id: AsyncRequestIdFB,
9211 pub result: Result,
9212 pub space: Space,
9213 pub uuid: UuidEXT,
9214 pub location: SpaceStorageLocationFB,
9215}
9216impl EventDataSpaceSaveCompleteFB {
9217 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SAVE_COMPLETE_FB;
9218}
9219#[repr(C)]
9220#[derive(Copy, Clone, Debug)]
9221#[doc = "See [XrEventDataSpaceEraseCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceEraseCompleteFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
9222pub struct EventDataSpaceEraseCompleteFB {
9223 pub ty: StructureType,
9224 pub next: *const c_void,
9225 pub request_id: AsyncRequestIdFB,
9226 pub result: Result,
9227 pub space: Space,
9228 pub uuid: UuidEXT,
9229 pub location: SpaceStorageLocationFB,
9230}
9231impl EventDataSpaceEraseCompleteFB {
9232 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_ERASE_COMPLETE_FB;
9233}
9234#[repr(C)]
9235#[derive(Copy, Clone, Debug)]
9236#[doc = "See [XrSpaceShareInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceShareInfoFB) - defined by [XR_FB_spatial_entity_sharing](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_sharing)"]
9237pub struct SpaceShareInfoFB {
9238 pub ty: StructureType,
9239 pub next: *const c_void,
9240 pub space_count: u32,
9241 pub spaces: *mut Space,
9242 pub user_count: u32,
9243 pub users: *mut SpaceUserFB,
9244}
9245impl SpaceShareInfoFB {
9246 pub const TYPE: StructureType = StructureType::SPACE_SHARE_INFO_FB;
9247}
9248#[repr(C)]
9249#[derive(Copy, Clone, Debug)]
9250#[doc = "See [XrEventDataSpaceShareCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceShareCompleteFB) - defined by [XR_FB_spatial_entity_sharing](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_sharing)"]
9251pub struct EventDataSpaceShareCompleteFB {
9252 pub ty: StructureType,
9253 pub next: *const c_void,
9254 pub request_id: AsyncRequestIdFB,
9255 pub result: Result,
9256}
9257impl EventDataSpaceShareCompleteFB {
9258 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_SHARE_COMPLETE_FB;
9259}
9260#[repr(C)]
9261#[derive(Copy, Clone, Debug)]
9262#[doc = "See [XrSpaceListSaveInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceListSaveInfoFB) - defined by [XR_FB_spatial_entity_storage_batch](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage_batch)"]
9263pub struct SpaceListSaveInfoFB {
9264 pub ty: StructureType,
9265 pub next: *const c_void,
9266 pub space_count: u32,
9267 pub spaces: *mut Space,
9268 pub location: SpaceStorageLocationFB,
9269}
9270impl SpaceListSaveInfoFB {
9271 pub const TYPE: StructureType = StructureType::SPACE_LIST_SAVE_INFO_FB;
9272}
9273#[repr(C)]
9274#[derive(Copy, Clone, Debug)]
9275#[doc = "See [XrEventDataSpaceListSaveCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSpaceListSaveCompleteFB) - defined by [XR_FB_spatial_entity_storage_batch](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage_batch)"]
9276pub struct EventDataSpaceListSaveCompleteFB {
9277 pub ty: StructureType,
9278 pub next: *const c_void,
9279 pub request_id: AsyncRequestIdFB,
9280 pub result: Result,
9281}
9282impl EventDataSpaceListSaveCompleteFB {
9283 pub const TYPE: StructureType = StructureType::EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB;
9284}
9285#[repr(C)]
9286#[derive(Copy, Clone, Debug)]
9287#[doc = "See [XrSpaceContainerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceContainerFB) - defined by [XR_FB_spatial_entity_container](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_container)"]
9288pub struct SpaceContainerFB {
9289 pub ty: StructureType,
9290 pub next: *const c_void,
9291 pub uuid_capacity_input: u32,
9292 pub uuid_count_output: u32,
9293 pub uuids: *mut UuidEXT,
9294}
9295impl SpaceContainerFB {
9296 pub const TYPE: StructureType = StructureType::SPACE_CONTAINER_FB;
9297}
9298#[repr(C)]
9299#[derive(Copy, Clone, Debug)]
9300#[doc = "See [XrSpaceTriangleMeshGetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceTriangleMeshGetInfoMETA) - defined by [XR_META_spatial_entity_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_spatial_entity_mesh)"]
9301pub struct SpaceTriangleMeshGetInfoMETA {
9302 pub ty: StructureType,
9303 pub next: *const c_void,
9304}
9305impl SpaceTriangleMeshGetInfoMETA {
9306 pub const TYPE: StructureType = StructureType::SPACE_TRIANGLE_MESH_GET_INFO_META;
9307}
9308#[repr(C)]
9309#[derive(Copy, Clone, Debug)]
9310#[doc = "See [XrSpaceTriangleMeshMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceTriangleMeshMETA) - defined by [XR_META_spatial_entity_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_spatial_entity_mesh)"]
9311pub struct SpaceTriangleMeshMETA {
9312 pub ty: StructureType,
9313 pub next: *mut c_void,
9314 pub vertex_capacity_input: u32,
9315 pub vertex_count_output: u32,
9316 pub vertices: *mut Vector3f,
9317 pub index_capacity_input: u32,
9318 pub index_count_output: u32,
9319 pub indices: *mut u32,
9320}
9321impl SpaceTriangleMeshMETA {
9322 pub const TYPE: StructureType = StructureType::SPACE_TRIANGLE_MESH_META;
9323 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9324 #[inline]
9325 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9326 let mut x = MaybeUninit::<Self>::uninit();
9327 unsafe {
9328 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9329 ty: Self::TYPE,
9330 next,
9331 });
9332 }
9333 x
9334 }
9335}
9336#[repr(C)]
9337#[derive(Copy, Clone, Debug, Default, PartialEq)]
9338#[doc = "See [XrOffset3DfFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrOffset3DfFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9339pub struct Offset3DfFB {
9340 pub x: f32,
9341 pub y: f32,
9342 pub z: f32,
9343}
9344#[repr(C)]
9345#[derive(Copy, Clone, Debug, Default, PartialEq)]
9346#[doc = "See [XrRect3DfFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRect3DfFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9347pub struct Rect3DfFB {
9348 pub offset: Offset3DfFB,
9349 pub extent: Extent3DfFB,
9350}
9351#[repr(C)]
9352#[derive(Copy, Clone, Debug)]
9353#[doc = "See [XrSemanticLabelsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9354pub struct SemanticLabelsFB {
9355 pub ty: StructureType,
9356 pub next: *const c_void,
9357 pub buffer_capacity_input: u32,
9358 pub buffer_count_output: u32,
9359 pub buffer: *mut c_char,
9360}
9361impl SemanticLabelsFB {
9362 pub const TYPE: StructureType = StructureType::SEMANTIC_LABELS_FB;
9363}
9364#[repr(C)]
9365#[derive(Copy, Clone, Debug)]
9366#[doc = "See [XrRoomLayoutFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRoomLayoutFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9367pub struct RoomLayoutFB {
9368 pub ty: StructureType,
9369 pub next: *const c_void,
9370 pub floor_uuid: UuidEXT,
9371 pub ceiling_uuid: UuidEXT,
9372 pub wall_uuid_capacity_input: u32,
9373 pub wall_uuid_count_output: u32,
9374 pub wall_uuids: *mut UuidEXT,
9375}
9376impl RoomLayoutFB {
9377 pub const TYPE: StructureType = StructureType::ROOM_LAYOUT_FB;
9378}
9379#[repr(C)]
9380#[derive(Copy, Clone, Debug)]
9381#[doc = "See [XrBoundary2DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoundary2DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9382pub struct Boundary2DFB {
9383 pub ty: StructureType,
9384 pub next: *const c_void,
9385 pub vertex_capacity_input: u32,
9386 pub vertex_count_output: u32,
9387 pub vertices: *mut Vector2f,
9388}
9389impl Boundary2DFB {
9390 pub const TYPE: StructureType = StructureType::BOUNDARY_2D_FB;
9391}
9392#[repr(C)]
9393#[derive(Copy, Clone, Debug)]
9394#[doc = "See [XrSemanticLabelsSupportInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSemanticLabelsSupportInfoFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
9395pub struct SemanticLabelsSupportInfoFB {
9396 pub ty: StructureType,
9397 pub next: *const c_void,
9398 pub flags: SemanticLabelsSupportFlagsFB,
9399 pub recognized_labels: *const c_char,
9400}
9401impl SemanticLabelsSupportInfoFB {
9402 pub const TYPE: StructureType = StructureType::SEMANTIC_LABELS_SUPPORT_INFO_FB;
9403}
9404#[repr(C)]
9405#[derive(Copy, Clone, Debug)]
9406#[doc = "See [XrSceneCaptureRequestInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSceneCaptureRequestInfoFB) - defined by [XR_FB_scene_capture](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene_capture)"]
9407pub struct SceneCaptureRequestInfoFB {
9408 pub ty: StructureType,
9409 pub next: *const c_void,
9410 pub request_byte_count: u32,
9411 pub request: *const c_char,
9412}
9413impl SceneCaptureRequestInfoFB {
9414 pub const TYPE: StructureType = StructureType::SCENE_CAPTURE_REQUEST_INFO_FB;
9415}
9416#[repr(C)]
9417#[derive(Copy, Clone, Debug)]
9418#[doc = "See [XrEventDataSceneCaptureCompleteFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataSceneCaptureCompleteFB) - defined by [XR_FB_scene_capture](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene_capture)"]
9419pub struct EventDataSceneCaptureCompleteFB {
9420 pub ty: StructureType,
9421 pub next: *const c_void,
9422 pub request_id: AsyncRequestIdFB,
9423 pub result: Result,
9424}
9425impl EventDataSceneCaptureCompleteFB {
9426 pub const TYPE: StructureType = StructureType::EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB;
9427}
9428#[repr(C)]
9429#[derive(Copy, Clone, Debug)]
9430#[doc = "See [XrSystemKeyboardTrackingPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemKeyboardTrackingPropertiesFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9431pub struct SystemKeyboardTrackingPropertiesFB {
9432 pub ty: StructureType,
9433 pub next: *mut c_void,
9434 pub supports_keyboard_tracking: Bool32,
9435}
9436impl SystemKeyboardTrackingPropertiesFB {
9437 pub const TYPE: StructureType = StructureType::SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB;
9438 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9439 #[inline]
9440 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9441 let mut x = MaybeUninit::<Self>::uninit();
9442 unsafe {
9443 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9444 ty: Self::TYPE,
9445 next,
9446 });
9447 }
9448 x
9449 }
9450}
9451#[repr(C)]
9452#[derive(Copy, Clone, Debug)]
9453#[doc = "See [XrKeyboardTrackingDescriptionFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingDescriptionFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9454pub struct KeyboardTrackingDescriptionFB {
9455 pub tracked_keyboard_id: u64,
9456 pub size: Vector3f,
9457 pub flags: KeyboardTrackingFlagsFB,
9458 pub name: [c_char; MAX_KEYBOARD_TRACKING_NAME_SIZE_FB],
9459}
9460#[repr(C)]
9461#[derive(Copy, Clone, Debug)]
9462#[doc = "See [XrKeyboardSpaceCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardSpaceCreateInfoFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9463pub struct KeyboardSpaceCreateInfoFB {
9464 pub ty: StructureType,
9465 pub next: *mut c_void,
9466 pub tracked_keyboard_id: u64,
9467}
9468impl KeyboardSpaceCreateInfoFB {
9469 pub const TYPE: StructureType = StructureType::KEYBOARD_SPACE_CREATE_INFO_FB;
9470 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9471 #[inline]
9472 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9473 let mut x = MaybeUninit::<Self>::uninit();
9474 unsafe {
9475 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9476 ty: Self::TYPE,
9477 next,
9478 });
9479 }
9480 x
9481 }
9482}
9483#[repr(C)]
9484#[derive(Copy, Clone, Debug)]
9485#[doc = "See [XrKeyboardTrackingQueryFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrKeyboardTrackingQueryFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
9486pub struct KeyboardTrackingQueryFB {
9487 pub ty: StructureType,
9488 pub next: *mut c_void,
9489 pub flags: KeyboardTrackingQueryFlagsFB,
9490}
9491impl KeyboardTrackingQueryFB {
9492 pub const TYPE: StructureType = StructureType::KEYBOARD_TRACKING_QUERY_FB;
9493 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9494 #[inline]
9495 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9496 let mut x = MaybeUninit::<Self>::uninit();
9497 unsafe {
9498 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9499 ty: Self::TYPE,
9500 next,
9501 });
9502 }
9503 x
9504 }
9505}
9506#[repr(C)]
9507#[derive(Copy, Clone, Debug)]
9508#[doc = "See [XrCompositionLayerDepthTestVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerDepthTestVARJO) - defined by [XR_VARJO_composition_layer_depth_test](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_composition_layer_depth_test)"]
9509pub struct CompositionLayerDepthTestVARJO {
9510 pub ty: StructureType,
9511 pub next: *const c_void,
9512 pub depth_test_range_near_z: f32,
9513 pub depth_test_range_far_z: f32,
9514}
9515impl CompositionLayerDepthTestVARJO {
9516 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_TEST_VARJO;
9517}
9518#[repr(C)]
9519#[derive(Copy, Clone, Debug)]
9520#[doc = "See [XrViewLocateFoveatedRenderingVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViewLocateFoveatedRenderingVARJO) - defined by [XR_VARJO_foveated_rendering](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_foveated_rendering)"]
9521pub struct ViewLocateFoveatedRenderingVARJO {
9522 pub ty: StructureType,
9523 pub next: *const c_void,
9524 pub foveated_rendering_active: Bool32,
9525}
9526impl ViewLocateFoveatedRenderingVARJO {
9527 pub const TYPE: StructureType = StructureType::VIEW_LOCATE_FOVEATED_RENDERING_VARJO;
9528}
9529#[repr(C)]
9530#[derive(Copy, Clone, Debug)]
9531#[doc = "See [XrFoveatedViewConfigurationViewVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveatedViewConfigurationViewVARJO) - defined by [XR_VARJO_foveated_rendering](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_foveated_rendering)"]
9532pub struct FoveatedViewConfigurationViewVARJO {
9533 pub ty: StructureType,
9534 pub next: *mut c_void,
9535 pub foveated_rendering_active: Bool32,
9536}
9537impl FoveatedViewConfigurationViewVARJO {
9538 pub const TYPE: StructureType = StructureType::FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO;
9539 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9540 #[inline]
9541 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9542 let mut x = MaybeUninit::<Self>::uninit();
9543 unsafe {
9544 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9545 ty: Self::TYPE,
9546 next,
9547 });
9548 }
9549 x
9550 }
9551}
9552#[repr(C)]
9553#[derive(Copy, Clone, Debug)]
9554#[doc = "See [XrSystemFoveatedRenderingPropertiesVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFoveatedRenderingPropertiesVARJO) - defined by [XR_VARJO_foveated_rendering](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_foveated_rendering)"]
9555pub struct SystemFoveatedRenderingPropertiesVARJO {
9556 pub ty: StructureType,
9557 pub next: *mut c_void,
9558 pub supports_foveated_rendering: Bool32,
9559}
9560impl SystemFoveatedRenderingPropertiesVARJO {
9561 pub const TYPE: StructureType = StructureType::SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO;
9562 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9563 #[inline]
9564 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9565 let mut x = MaybeUninit::<Self>::uninit();
9566 unsafe {
9567 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9568 ty: Self::TYPE,
9569 next,
9570 });
9571 }
9572 x
9573 }
9574}
9575#[repr(C)]
9576#[derive(Copy, Clone, Debug)]
9577#[doc = "See [XrCompositionLayerReprojectionInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerReprojectionInfoMSFT) - defined by [XR_MSFT_composition_layer_reprojection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_composition_layer_reprojection)"]
9578pub struct CompositionLayerReprojectionInfoMSFT {
9579 pub ty: StructureType,
9580 pub next: *const c_void,
9581 pub reprojection_mode: ReprojectionModeMSFT,
9582}
9583impl CompositionLayerReprojectionInfoMSFT {
9584 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_REPROJECTION_INFO_MSFT;
9585}
9586#[repr(C)]
9587#[derive(Copy, Clone, Debug)]
9588#[doc = "See [XrCompositionLayerReprojectionPlaneOverrideMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerReprojectionPlaneOverrideMSFT) - defined by [XR_MSFT_composition_layer_reprojection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_composition_layer_reprojection)"]
9589pub struct CompositionLayerReprojectionPlaneOverrideMSFT {
9590 pub ty: StructureType,
9591 pub next: *const c_void,
9592 pub position: Vector3f,
9593 pub normal: Vector3f,
9594 pub velocity: Vector3f,
9595}
9596impl CompositionLayerReprojectionPlaneOverrideMSFT {
9597 pub const TYPE: StructureType =
9598 StructureType::COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT;
9599}
9600#[repr(C)]
9601#[derive(Copy, Clone, Debug)]
9602#[doc = "See [XrTriangleMeshCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrTriangleMeshCreateInfoFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
9603pub struct TriangleMeshCreateInfoFB {
9604 pub ty: StructureType,
9605 pub next: *const c_void,
9606 pub flags: TriangleMeshFlagsFB,
9607 pub winding_order: WindingOrderFB,
9608 pub vertex_count: u32,
9609 pub vertex_buffer: *const Vector3f,
9610 pub triangle_count: u32,
9611 pub index_buffer: *const u32,
9612}
9613impl TriangleMeshCreateInfoFB {
9614 pub const TYPE: StructureType = StructureType::TRIANGLE_MESH_CREATE_INFO_FB;
9615}
9616#[repr(C)]
9617#[derive(Copy, Clone, Debug)]
9618#[doc = "See [XrSystemPassthroughPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPassthroughPropertiesFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9619pub struct SystemPassthroughPropertiesFB {
9620 pub ty: StructureType,
9621 pub next: *const c_void,
9622 pub supports_passthrough: Bool32,
9623}
9624impl SystemPassthroughPropertiesFB {
9625 pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_PROPERTIES_FB;
9626}
9627#[repr(C)]
9628#[derive(Copy, Clone, Debug)]
9629#[doc = "See [XrSystemPassthroughProperties2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPassthroughProperties2FB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9630pub struct SystemPassthroughProperties2FB {
9631 pub ty: StructureType,
9632 pub next: *const c_void,
9633 pub capabilities: PassthroughCapabilityFlagsFB,
9634}
9635impl SystemPassthroughProperties2FB {
9636 pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_PROPERTIES2_FB;
9637}
9638#[repr(C)]
9639#[derive(Copy, Clone, Debug)]
9640#[doc = "See [XrPassthroughCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCreateInfoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9641pub struct PassthroughCreateInfoFB {
9642 pub ty: StructureType,
9643 pub next: *const c_void,
9644 pub flags: PassthroughFlagsFB,
9645}
9646impl PassthroughCreateInfoFB {
9647 pub const TYPE: StructureType = StructureType::PASSTHROUGH_CREATE_INFO_FB;
9648}
9649#[repr(C)]
9650#[derive(Copy, Clone, Debug)]
9651#[doc = "See [XrPassthroughLayerCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughLayerCreateInfoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9652pub struct PassthroughLayerCreateInfoFB {
9653 pub ty: StructureType,
9654 pub next: *const c_void,
9655 pub passthrough: PassthroughFB,
9656 pub flags: PassthroughFlagsFB,
9657 pub purpose: PassthroughLayerPurposeFB,
9658}
9659impl PassthroughLayerCreateInfoFB {
9660 pub const TYPE: StructureType = StructureType::PASSTHROUGH_LAYER_CREATE_INFO_FB;
9661}
9662#[repr(C)]
9663#[derive(Copy, Clone, Debug)]
9664#[doc = "See [XrCompositionLayerPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerPassthroughFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9665pub struct CompositionLayerPassthroughFB {
9666 pub ty: StructureType,
9667 pub next: *const c_void,
9668 pub flags: CompositionLayerFlags,
9669 pub space: Space,
9670 pub layer_handle: PassthroughLayerFB,
9671}
9672impl CompositionLayerPassthroughFB {
9673 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PASSTHROUGH_FB;
9674}
9675#[repr(C)]
9676#[derive(Copy, Clone, Debug)]
9677#[doc = "See [XrGeometryInstanceCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceCreateInfoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9678pub struct GeometryInstanceCreateInfoFB {
9679 pub ty: StructureType,
9680 pub next: *const c_void,
9681 pub layer: PassthroughLayerFB,
9682 pub mesh: TriangleMeshFB,
9683 pub base_space: Space,
9684 pub pose: Posef,
9685 pub scale: Vector3f,
9686}
9687impl GeometryInstanceCreateInfoFB {
9688 pub const TYPE: StructureType = StructureType::GEOMETRY_INSTANCE_CREATE_INFO_FB;
9689}
9690#[repr(C)]
9691#[derive(Copy, Clone, Debug)]
9692#[doc = "See [XrGeometryInstanceTransformFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGeometryInstanceTransformFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9693pub struct GeometryInstanceTransformFB {
9694 pub ty: StructureType,
9695 pub next: *const c_void,
9696 pub base_space: Space,
9697 pub time: Time,
9698 pub pose: Posef,
9699 pub scale: Vector3f,
9700}
9701impl GeometryInstanceTransformFB {
9702 pub const TYPE: StructureType = StructureType::GEOMETRY_INSTANCE_TRANSFORM_FB;
9703}
9704#[repr(C)]
9705#[derive(Copy, Clone, Debug)]
9706#[doc = "See [XrPassthroughStyleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughStyleFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9707pub struct PassthroughStyleFB {
9708 pub ty: StructureType,
9709 pub next: *const c_void,
9710 pub texture_opacity_factor: f32,
9711 pub edge_color: Color4f,
9712}
9713impl PassthroughStyleFB {
9714 pub const TYPE: StructureType = StructureType::PASSTHROUGH_STYLE_FB;
9715}
9716#[repr(C)]
9717#[derive(Copy, Clone, Debug)]
9718#[doc = "See [XrPassthroughColorMapMonoToRgbaFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapMonoToRgbaFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9719pub struct PassthroughColorMapMonoToRgbaFB {
9720 pub ty: StructureType,
9721 pub next: *const c_void,
9722 pub texture_color_map: [Color4f; PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB],
9723}
9724impl PassthroughColorMapMonoToRgbaFB {
9725 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB;
9726}
9727#[repr(C)]
9728#[derive(Copy, Clone, Debug)]
9729#[doc = "See [XrPassthroughColorMapMonoToMonoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapMonoToMonoFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9730pub struct PassthroughColorMapMonoToMonoFB {
9731 pub ty: StructureType,
9732 pub next: *const c_void,
9733 pub texture_color_map: [u8; PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB],
9734}
9735impl PassthroughColorMapMonoToMonoFB {
9736 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB;
9737}
9738#[repr(C)]
9739#[derive(Copy, Clone, Debug)]
9740#[doc = "See [XrPassthroughBrightnessContrastSaturationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughBrightnessContrastSaturationFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9741pub struct PassthroughBrightnessContrastSaturationFB {
9742 pub ty: StructureType,
9743 pub next: *const c_void,
9744 pub brightness: f32,
9745 pub contrast: f32,
9746 pub saturation: f32,
9747}
9748impl PassthroughBrightnessContrastSaturationFB {
9749 pub const TYPE: StructureType = StructureType::PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB;
9750}
9751#[repr(C)]
9752#[derive(Copy, Clone, Debug)]
9753#[doc = "See [XrEventDataPassthroughStateChangedFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataPassthroughStateChangedFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
9754pub struct EventDataPassthroughStateChangedFB {
9755 pub ty: StructureType,
9756 pub next: *const c_void,
9757 pub flags: PassthroughStateChangedFlagsFB,
9758}
9759impl EventDataPassthroughStateChangedFB {
9760 pub const TYPE: StructureType = StructureType::EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB;
9761}
9762#[repr(C)]
9763#[derive(Copy, Clone, Debug)]
9764#[doc = "See [XrPassthroughKeyboardHandsIntensityFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughKeyboardHandsIntensityFB) - defined by [XR_FB_passthrough_keyboard_hands](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough_keyboard_hands)"]
9765pub struct PassthroughKeyboardHandsIntensityFB {
9766 pub ty: StructureType,
9767 pub next: *const c_void,
9768 pub left_hand_intensity: f32,
9769 pub right_hand_intensity: f32,
9770}
9771impl PassthroughKeyboardHandsIntensityFB {
9772 pub const TYPE: StructureType = StructureType::PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB;
9773}
9774#[repr(C)]
9775#[derive(Copy, Clone, Debug)]
9776#[doc = "See [XrLocalDimmingFrameEndInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalDimmingFrameEndInfoMETA) - defined by [XR_META_local_dimming](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_local_dimming)"]
9777pub struct LocalDimmingFrameEndInfoMETA {
9778 pub ty: StructureType,
9779 pub next: *const c_void,
9780 pub local_dimming_mode: LocalDimmingModeMETA,
9781}
9782impl LocalDimmingFrameEndInfoMETA {
9783 pub const TYPE: StructureType = StructureType::LOCAL_DIMMING_FRAME_END_INFO_META;
9784}
9785#[repr(C)]
9786#[derive(Copy, Clone, Debug)]
9787#[doc = "See [XrSpatialAnchorPersistenceNameMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorPersistenceNameMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
9788pub struct SpatialAnchorPersistenceNameMSFT {
9789 pub name: [c_char; MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT],
9790}
9791#[repr(C)]
9792#[derive(Copy, Clone, Debug)]
9793#[doc = "See [XrSpatialAnchorPersistenceInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorPersistenceInfoMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
9794pub struct SpatialAnchorPersistenceInfoMSFT {
9795 pub ty: StructureType,
9796 pub next: *const c_void,
9797 pub spatial_anchor_persistence_name: SpatialAnchorPersistenceNameMSFT,
9798 pub spatial_anchor: SpatialAnchorMSFT,
9799}
9800impl SpatialAnchorPersistenceInfoMSFT {
9801 pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT;
9802}
9803#[repr(C)]
9804#[derive(Copy, Clone, Debug)]
9805#[doc = "See [XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
9806pub struct SpatialAnchorFromPersistedAnchorCreateInfoMSFT {
9807 pub ty: StructureType,
9808 pub next: *const c_void,
9809 pub spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
9810 pub spatial_anchor_persistence_name: SpatialAnchorPersistenceNameMSFT,
9811}
9812impl SpatialAnchorFromPersistedAnchorCreateInfoMSFT {
9813 pub const TYPE: StructureType =
9814 StructureType::SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT;
9815}
9816#[repr(C)]
9817#[derive(Copy, Clone, Debug)]
9818#[doc = "See [XrFacialTrackerCreateInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialTrackerCreateInfoHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
9819pub struct FacialTrackerCreateInfoHTC {
9820 pub ty: StructureType,
9821 pub next: *const c_void,
9822 pub facial_tracking_type: FacialTrackingTypeHTC,
9823}
9824impl FacialTrackerCreateInfoHTC {
9825 pub const TYPE: StructureType = StructureType::FACIAL_TRACKER_CREATE_INFO_HTC;
9826}
9827#[repr(C)]
9828#[derive(Copy, Clone, Debug)]
9829#[doc = "See [XrSystemFacialTrackingPropertiesHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemFacialTrackingPropertiesHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
9830pub struct SystemFacialTrackingPropertiesHTC {
9831 pub ty: StructureType,
9832 pub next: *mut c_void,
9833 pub support_eye_facial_tracking: Bool32,
9834 pub support_lip_facial_tracking: Bool32,
9835}
9836impl SystemFacialTrackingPropertiesHTC {
9837 pub const TYPE: StructureType = StructureType::SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC;
9838 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9839 #[inline]
9840 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9841 let mut x = MaybeUninit::<Self>::uninit();
9842 unsafe {
9843 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9844 ty: Self::TYPE,
9845 next,
9846 });
9847 }
9848 x
9849 }
9850}
9851#[repr(C)]
9852#[derive(Copy, Clone, Debug)]
9853#[doc = "See [XrFacialExpressionsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFacialExpressionsHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
9854pub struct FacialExpressionsHTC {
9855 pub ty: StructureType,
9856 pub next: *const c_void,
9857 pub is_active: Bool32,
9858 pub sample_time: Time,
9859 pub expression_count: u32,
9860 pub expression_weightings: *mut f32,
9861}
9862impl FacialExpressionsHTC {
9863 pub const TYPE: StructureType = StructureType::FACIAL_EXPRESSIONS_HTC;
9864}
9865#[repr(C)]
9866#[derive(Copy, Clone, Debug)]
9867#[doc = "See [XrPassthroughCreateInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCreateInfoHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9868pub struct PassthroughCreateInfoHTC {
9869 pub ty: StructureType,
9870 pub next: *const c_void,
9871 pub form: PassthroughFormHTC,
9872}
9873impl PassthroughCreateInfoHTC {
9874 pub const TYPE: StructureType = StructureType::PASSTHROUGH_CREATE_INFO_HTC;
9875}
9876#[repr(C)]
9877#[derive(Copy, Clone, Debug)]
9878#[doc = "See [XrPassthroughColorHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9879pub struct PassthroughColorHTC {
9880 pub ty: StructureType,
9881 pub next: *const c_void,
9882 pub alpha: f32,
9883}
9884impl PassthroughColorHTC {
9885 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_HTC;
9886}
9887#[repr(C)]
9888#[derive(Copy, Clone, Debug)]
9889#[doc = "See [XrPassthroughMeshTransformInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughMeshTransformInfoHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9890pub struct PassthroughMeshTransformInfoHTC {
9891 pub ty: StructureType,
9892 pub next: *const c_void,
9893 pub vertex_count: u32,
9894 pub vertices: *const Vector3f,
9895 pub index_count: u32,
9896 pub indices: *const u32,
9897 pub base_space: Space,
9898 pub time: Time,
9899 pub pose: Posef,
9900 pub scale: Vector3f,
9901}
9902impl PassthroughMeshTransformInfoHTC {
9903 pub const TYPE: StructureType = StructureType::PASSTHROUGH_MESH_TRANSFORM_INFO_HTC;
9904}
9905#[repr(C)]
9906#[derive(Copy, Clone, Debug)]
9907#[doc = "See [XrCompositionLayerPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerPassthroughHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
9908pub struct CompositionLayerPassthroughHTC {
9909 pub ty: StructureType,
9910 pub next: *const c_void,
9911 pub layer_flags: CompositionLayerFlags,
9912 pub space: Space,
9913 pub passthrough: PassthroughHTC,
9914 pub color: PassthroughColorHTC,
9915}
9916impl CompositionLayerPassthroughHTC {
9917 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_PASSTHROUGH_HTC;
9918}
9919#[repr(C)]
9920#[derive(Copy, Clone, Debug)]
9921#[doc = "See [XrSpatialAnchorCreateInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorCreateInfoHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
9922pub struct SpatialAnchorCreateInfoHTC {
9923 pub ty: StructureType,
9924 pub next: *const c_void,
9925 pub space: Space,
9926 pub pose_in_space: Posef,
9927 pub name: SpatialAnchorNameHTC,
9928}
9929impl SpatialAnchorCreateInfoHTC {
9930 pub const TYPE: StructureType = StructureType::SPATIAL_ANCHOR_CREATE_INFO_HTC;
9931}
9932#[repr(C)]
9933#[derive(Copy, Clone, Debug)]
9934#[doc = "See [XrSpatialAnchorNameHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpatialAnchorNameHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
9935pub struct SpatialAnchorNameHTC {
9936 pub name: [c_char; MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC],
9937}
9938#[repr(C)]
9939#[derive(Copy, Clone, Debug)]
9940#[doc = "See [XrSystemAnchorPropertiesHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemAnchorPropertiesHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
9941pub struct SystemAnchorPropertiesHTC {
9942 pub ty: StructureType,
9943 pub next: *mut c_void,
9944 pub supports_anchor: Bool32,
9945}
9946impl SystemAnchorPropertiesHTC {
9947 pub const TYPE: StructureType = StructureType::SYSTEM_ANCHOR_PROPERTIES_HTC;
9948 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9949 #[inline]
9950 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9951 let mut x = MaybeUninit::<Self>::uninit();
9952 unsafe {
9953 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9954 ty: Self::TYPE,
9955 next,
9956 });
9957 }
9958 x
9959 }
9960}
9961#[repr(C)]
9962#[derive(Copy, Clone, Debug)]
9963#[doc = "See [XrViveTrackerPathsHTCX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrViveTrackerPathsHTCX) - defined by [XR_HTCX_vive_tracker_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTCX_vive_tracker_interaction)"]
9964pub struct ViveTrackerPathsHTCX {
9965 pub ty: StructureType,
9966 pub next: *mut c_void,
9967 pub persistent_path: Path,
9968 pub role_path: Path,
9969}
9970impl ViveTrackerPathsHTCX {
9971 pub const TYPE: StructureType = StructureType::VIVE_TRACKER_PATHS_HTCX;
9972 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
9973 #[inline]
9974 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
9975 let mut x = MaybeUninit::<Self>::uninit();
9976 unsafe {
9977 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
9978 ty: Self::TYPE,
9979 next,
9980 });
9981 }
9982 x
9983 }
9984}
9985#[repr(C)]
9986#[derive(Copy, Clone, Debug)]
9987#[doc = "See [XrEventDataViveTrackerConnectedHTCX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataViveTrackerConnectedHTCX) - defined by [XR_HTCX_vive_tracker_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTCX_vive_tracker_interaction)"]
9988pub struct EventDataViveTrackerConnectedHTCX {
9989 pub ty: StructureType,
9990 pub next: *const c_void,
9991 pub paths: *mut ViveTrackerPathsHTCX,
9992}
9993impl EventDataViveTrackerConnectedHTCX {
9994 pub const TYPE: StructureType = StructureType::EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX;
9995}
9996#[repr(C)]
9997#[derive(Copy, Clone, Debug)]
9998#[doc = "See [XrCompositionLayerSpaceWarpInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSpaceWarpInfoFB) - defined by [XR_FB_space_warp](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_space_warp)"]
9999pub struct CompositionLayerSpaceWarpInfoFB {
10000 pub ty: StructureType,
10001 pub next: *const c_void,
10002 pub layer_flags: CompositionLayerSpaceWarpInfoFlagsFB,
10003 pub motion_vector_sub_image: SwapchainSubImage,
10004 pub app_space_delta_pose: Posef,
10005 pub depth_sub_image: SwapchainSubImage,
10006 pub min_depth: f32,
10007 pub max_depth: f32,
10008 pub near_z: f32,
10009 pub far_z: f32,
10010}
10011impl CompositionLayerSpaceWarpInfoFB {
10012 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SPACE_WARP_INFO_FB;
10013}
10014#[repr(C)]
10015#[derive(Copy, Clone, Debug)]
10016#[doc = "See [XrSystemSpaceWarpPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemSpaceWarpPropertiesFB) - defined by [XR_FB_space_warp](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_space_warp)"]
10017pub struct SystemSpaceWarpPropertiesFB {
10018 pub ty: StructureType,
10019 pub next: *mut c_void,
10020 pub recommended_motion_vector_image_rect_width: u32,
10021 pub recommended_motion_vector_image_rect_height: u32,
10022}
10023impl SystemSpaceWarpPropertiesFB {
10024 pub const TYPE: StructureType = StructureType::SYSTEM_SPACE_WARP_PROPERTIES_FB;
10025 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10026 #[inline]
10027 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10028 let mut x = MaybeUninit::<Self>::uninit();
10029 unsafe {
10030 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10031 ty: Self::TYPE,
10032 next,
10033 });
10034 }
10035 x
10036 }
10037}
10038#[repr(C)]
10039#[derive(Copy, Clone, Debug)]
10040#[doc = "See [XrSystemMarkerTrackingPropertiesVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemMarkerTrackingPropertiesVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
10041pub struct SystemMarkerTrackingPropertiesVARJO {
10042 pub ty: StructureType,
10043 pub next: *mut c_void,
10044 pub supports_marker_tracking: Bool32,
10045}
10046impl SystemMarkerTrackingPropertiesVARJO {
10047 pub const TYPE: StructureType = StructureType::SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO;
10048 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10049 #[inline]
10050 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10051 let mut x = MaybeUninit::<Self>::uninit();
10052 unsafe {
10053 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10054 ty: Self::TYPE,
10055 next,
10056 });
10057 }
10058 x
10059 }
10060}
10061#[repr(C)]
10062#[derive(Copy, Clone, Debug)]
10063#[doc = "See [XrEventDataMarkerTrackingUpdateVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataMarkerTrackingUpdateVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
10064pub struct EventDataMarkerTrackingUpdateVARJO {
10065 pub ty: StructureType,
10066 pub next: *const c_void,
10067 pub marker_id: u64,
10068 pub is_active: Bool32,
10069 pub is_predicted: Bool32,
10070 pub time: Time,
10071}
10072impl EventDataMarkerTrackingUpdateVARJO {
10073 pub const TYPE: StructureType = StructureType::EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO;
10074}
10075#[repr(C)]
10076#[derive(Copy, Clone, Debug)]
10077#[doc = "See [XrMarkerSpaceCreateInfoVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerSpaceCreateInfoVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
10078pub struct MarkerSpaceCreateInfoVARJO {
10079 pub ty: StructureType,
10080 pub next: *const c_void,
10081 pub marker_id: u64,
10082 pub pose_in_marker_space: Posef,
10083}
10084impl MarkerSpaceCreateInfoVARJO {
10085 pub const TYPE: StructureType = StructureType::MARKER_SPACE_CREATE_INFO_VARJO;
10086}
10087#[repr(C)]
10088#[derive(Copy, Clone, Debug)]
10089#[doc = "See [XrGlobalDimmerFrameEndInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrGlobalDimmerFrameEndInfoML) - defined by [XR_ML_global_dimmer](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_global_dimmer)"]
10090pub struct GlobalDimmerFrameEndInfoML {
10091 pub ty: StructureType,
10092 pub next: *const c_void,
10093 pub dimmer_value: f32,
10094 pub flags: GlobalDimmerFrameEndInfoFlagsML,
10095}
10096impl GlobalDimmerFrameEndInfoML {
10097 pub const TYPE: StructureType = StructureType::GLOBAL_DIMMER_FRAME_END_INFO_ML;
10098}
10099#[repr(C)]
10100#[derive(Copy, Clone, Debug)]
10101#[doc = "See [XrDigitalLensControlALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDigitalLensControlALMALENCE)"]
10102pub struct DigitalLensControlALMALENCE {
10103 pub ty: StructureType,
10104 pub next: *const c_void,
10105 pub flags: DigitalLensControlFlagsALMALENCE,
10106}
10107impl DigitalLensControlALMALENCE {
10108 pub const TYPE: StructureType = StructureType::DIGITAL_LENS_CONTROL_ALMALENCE;
10109}
10110#[repr(C)]
10111#[derive(Copy, Clone, Debug)]
10112#[doc = "See [XrCompositionLayerSettingsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerSettingsFB) - defined by [XR_FB_composition_layer_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_settings)"]
10113pub struct CompositionLayerSettingsFB {
10114 pub ty: StructureType,
10115 pub next: *const c_void,
10116 pub layer_flags: CompositionLayerSettingsFlagsFB,
10117}
10118impl CompositionLayerSettingsFB {
10119 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_SETTINGS_FB;
10120}
10121#[repr(C)]
10122#[derive(Copy, Clone, Debug, PartialEq)]
10123#[doc = "See [XrExternalCameraIntrinsicsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraIntrinsicsOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
10124pub struct ExternalCameraIntrinsicsOCULUS {
10125 pub last_change_time: Time,
10126 pub fov: Fovf,
10127 pub virtual_near_plane_distance: f32,
10128 pub virtual_far_plane_distance: f32,
10129 pub image_sensor_pixel_resolution: Extent2Di,
10130}
10131#[repr(C)]
10132#[derive(Copy, Clone, Debug, PartialEq)]
10133#[doc = "See [XrExternalCameraExtrinsicsOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraExtrinsicsOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
10134pub struct ExternalCameraExtrinsicsOCULUS {
10135 pub last_change_time: Time,
10136 pub camera_status_flags: ExternalCameraStatusFlagsOCULUS,
10137 pub attached_to_device: ExternalCameraAttachedToDeviceOCULUS,
10138 pub relative_pose: Posef,
10139}
10140#[repr(C)]
10141#[derive(Copy, Clone, Debug)]
10142#[doc = "See [XrExternalCameraOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExternalCameraOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
10143pub struct ExternalCameraOCULUS {
10144 pub ty: StructureType,
10145 pub next: *const c_void,
10146 pub name: [c_char; MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS],
10147 pub intrinsics: ExternalCameraIntrinsicsOCULUS,
10148 pub extrinsics: ExternalCameraExtrinsicsOCULUS,
10149}
10150impl ExternalCameraOCULUS {
10151 pub const TYPE: StructureType = StructureType::EXTERNAL_CAMERA_OCULUS;
10152}
10153#[repr(C)]
10154#[derive(Copy, Clone, Debug)]
10155#[doc = "See [XrPerformanceMetricsStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsStateMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
10156pub struct PerformanceMetricsStateMETA {
10157 pub ty: StructureType,
10158 pub next: *const c_void,
10159 pub enabled: Bool32,
10160}
10161impl PerformanceMetricsStateMETA {
10162 pub const TYPE: StructureType = StructureType::PERFORMANCE_METRICS_STATE_META;
10163}
10164#[repr(C)]
10165#[derive(Copy, Clone, Debug)]
10166#[doc = "See [XrPerformanceMetricsCounterMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPerformanceMetricsCounterMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
10167pub struct PerformanceMetricsCounterMETA {
10168 pub ty: StructureType,
10169 pub next: *const c_void,
10170 pub counter_flags: PerformanceMetricsCounterFlagsMETA,
10171 pub counter_unit: PerformanceMetricsCounterUnitMETA,
10172 pub uint_value: u32,
10173 pub float_value: f32,
10174}
10175impl PerformanceMetricsCounterMETA {
10176 pub const TYPE: StructureType = StructureType::PERFORMANCE_METRICS_COUNTER_META;
10177}
10178#[repr(C)]
10179#[derive(Copy, Clone, Debug)]
10180#[doc = "See [XrPassthroughPreferencesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughPreferencesMETA) - defined by [XR_META_passthrough_preferences](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_preferences)"]
10181pub struct PassthroughPreferencesMETA {
10182 pub ty: StructureType,
10183 pub next: *const c_void,
10184 pub flags: PassthroughPreferenceFlagsMETA,
10185}
10186impl PassthroughPreferencesMETA {
10187 pub const TYPE: StructureType = StructureType::PASSTHROUGH_PREFERENCES_META;
10188}
10189#[repr(C)]
10190#[derive(Copy, Clone, Debug)]
10191#[doc = "See [XrSystemHeadsetIdPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemHeadsetIdPropertiesMETA) - defined by [XR_META_headset_id](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_headset_id)"]
10192pub struct SystemHeadsetIdPropertiesMETA {
10193 pub ty: StructureType,
10194 pub next: *mut c_void,
10195 pub id: UuidEXT,
10196}
10197impl SystemHeadsetIdPropertiesMETA {
10198 pub const TYPE: StructureType = StructureType::SYSTEM_HEADSET_ID_PROPERTIES_META;
10199 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10200 #[inline]
10201 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10202 let mut x = MaybeUninit::<Self>::uninit();
10203 unsafe {
10204 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10205 ty: Self::TYPE,
10206 next,
10207 });
10208 }
10209 x
10210 }
10211}
10212#[repr(C)]
10213#[derive(Copy, Clone, Debug)]
10214#[doc = "See [XrPassthroughColorLutDataMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutDataMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10215pub struct PassthroughColorLutDataMETA {
10216 pub buffer_size: u32,
10217 pub buffer: *const u8,
10218}
10219#[repr(C)]
10220#[derive(Copy, Clone, Debug)]
10221#[doc = "See [XrPassthroughColorLutCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutCreateInfoMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10222pub struct PassthroughColorLutCreateInfoMETA {
10223 pub ty: StructureType,
10224 pub next: *const c_void,
10225 pub channels: PassthroughColorLutChannelsMETA,
10226 pub resolution: u32,
10227 pub data: PassthroughColorLutDataMETA,
10228}
10229impl PassthroughColorLutCreateInfoMETA {
10230 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_LUT_CREATE_INFO_META;
10231}
10232#[repr(C)]
10233#[derive(Copy, Clone, Debug)]
10234#[doc = "See [XrPassthroughColorLutUpdateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorLutUpdateInfoMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10235pub struct PassthroughColorLutUpdateInfoMETA {
10236 pub ty: StructureType,
10237 pub next: *const c_void,
10238 pub data: PassthroughColorLutDataMETA,
10239}
10240impl PassthroughColorLutUpdateInfoMETA {
10241 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META;
10242}
10243#[repr(C)]
10244#[derive(Copy, Clone, Debug)]
10245#[doc = "See [XrPassthroughColorMapLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10246pub struct PassthroughColorMapLutMETA {
10247 pub ty: StructureType,
10248 pub next: *const c_void,
10249 pub color_lut: PassthroughColorLutMETA,
10250 pub weight: f32,
10251}
10252impl PassthroughColorMapLutMETA {
10253 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_LUT_META;
10254}
10255#[repr(C)]
10256#[derive(Copy, Clone, Debug)]
10257#[doc = "See [XrPassthroughColorMapInterpolatedLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorMapInterpolatedLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10258pub struct PassthroughColorMapInterpolatedLutMETA {
10259 pub ty: StructureType,
10260 pub next: *const c_void,
10261 pub source_color_lut: PassthroughColorLutMETA,
10262 pub target_color_lut: PassthroughColorLutMETA,
10263 pub weight: f32,
10264}
10265impl PassthroughColorMapInterpolatedLutMETA {
10266 pub const TYPE: StructureType = StructureType::PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META;
10267}
10268#[repr(C)]
10269#[derive(Copy, Clone, Debug)]
10270#[doc = "See [XrSystemPassthroughColorLutPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPassthroughColorLutPropertiesMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
10271pub struct SystemPassthroughColorLutPropertiesMETA {
10272 pub ty: StructureType,
10273 pub next: *const c_void,
10274 pub max_color_lut_resolution: u32,
10275}
10276impl SystemPassthroughColorLutPropertiesMETA {
10277 pub const TYPE: StructureType = StructureType::SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META;
10278}
10279#[repr(C)]
10280#[derive(Copy, Clone, Debug)]
10281#[doc = "See [XrFoveationApplyInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationApplyInfoHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10282pub struct FoveationApplyInfoHTC {
10283 pub ty: StructureType,
10284 pub next: *const c_void,
10285 pub mode: FoveationModeHTC,
10286 pub sub_image_count: u32,
10287 pub sub_images: *mut SwapchainSubImage,
10288}
10289impl FoveationApplyInfoHTC {
10290 pub const TYPE: StructureType = StructureType::FOVEATION_APPLY_INFO_HTC;
10291}
10292#[repr(C)]
10293#[derive(Copy, Clone, Debug, PartialEq)]
10294#[doc = "See [XrFoveationConfigurationHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationConfigurationHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10295pub struct FoveationConfigurationHTC {
10296 pub level: FoveationLevelHTC,
10297 pub clear_fov_degree: f32,
10298 pub focal_center_offset: Vector2f,
10299}
10300#[repr(C)]
10301#[derive(Copy, Clone, Debug)]
10302#[doc = "See [XrFoveationDynamicModeInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationDynamicModeInfoHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10303pub struct FoveationDynamicModeInfoHTC {
10304 pub ty: StructureType,
10305 pub next: *const c_void,
10306 pub dynamic_flags: FoveationDynamicFlagsHTC,
10307}
10308impl FoveationDynamicModeInfoHTC {
10309 pub const TYPE: StructureType = StructureType::FOVEATION_DYNAMIC_MODE_INFO_HTC;
10310}
10311#[repr(C)]
10312#[derive(Copy, Clone, Debug)]
10313#[doc = "See [XrFoveationCustomModeInfoHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFoveationCustomModeInfoHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
10314pub struct FoveationCustomModeInfoHTC {
10315 pub ty: StructureType,
10316 pub next: *const c_void,
10317 pub config_count: u32,
10318 pub configs: *const FoveationConfigurationHTC,
10319}
10320impl FoveationCustomModeInfoHTC {
10321 pub const TYPE: StructureType = StructureType::FOVEATION_CUSTOM_MODE_INFO_HTC;
10322}
10323#[repr(C)]
10324#[derive(Copy, Clone, Debug)]
10325#[doc = "See [XrActiveActionSetPrioritiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSetPrioritiesEXT) - defined by [XR_EXT_active_action_set_priority](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_active_action_set_priority)"]
10326pub struct ActiveActionSetPrioritiesEXT {
10327 pub ty: StructureType,
10328 pub next: *const c_void,
10329 pub action_set_priority_count: u32,
10330 pub action_set_priorities: *const ActiveActionSetPriorityEXT,
10331}
10332impl ActiveActionSetPrioritiesEXT {
10333 pub const TYPE: StructureType = StructureType::ACTIVE_ACTION_SET_PRIORITIES_EXT;
10334}
10335#[repr(C)]
10336#[derive(Copy, Clone, Debug)]
10337#[doc = "See [XrActiveActionSetPriorityEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrActiveActionSetPriorityEXT) - defined by [XR_EXT_active_action_set_priority](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_active_action_set_priority)"]
10338pub struct ActiveActionSetPriorityEXT {
10339 pub action_set: ActionSet,
10340 pub priority_override: u32,
10341}
10342#[repr(C)]
10343#[derive(Copy, Clone, Debug)]
10344#[doc = "See [XrCompositionLayerDepthTestFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerDepthTestFB) - defined by [XR_FB_composition_layer_depth_test](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_composition_layer_depth_test)"]
10345pub struct CompositionLayerDepthTestFB {
10346 pub ty: StructureType,
10347 pub next: *const c_void,
10348 pub depth_mask: Bool32,
10349 pub compare_op: CompareOpFB,
10350}
10351impl CompositionLayerDepthTestFB {
10352 pub const TYPE: StructureType = StructureType::COMPOSITION_LAYER_DEPTH_TEST_FB;
10353}
10354#[repr(C)]
10355#[derive(Copy, Clone, Debug)]
10356#[doc = "See [XrCoordinateSpaceCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrCoordinateSpaceCreateInfoML)"]
10357pub struct CoordinateSpaceCreateInfoML {
10358 pub ty: StructureType,
10359 pub next: *const c_void,
10360 pub cfuid: MLCoordinateFrameUID,
10361 pub pose_in_coordinate_space: Posef,
10362}
10363impl CoordinateSpaceCreateInfoML {
10364 pub const TYPE: StructureType = StructureType::COORDINATE_SPACE_CREATE_INFO_ML;
10365}
10366#[repr(C)]
10367#[derive(Copy, Clone, Debug)]
10368#[doc = "See [XrFrameEndInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrameEndInfoML) - defined by [XR_ML_frame_end_info](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_frame_end_info)"]
10369pub struct FrameEndInfoML {
10370 pub ty: StructureType,
10371 pub next: *const c_void,
10372 pub focus_distance: f32,
10373 pub flags: FrameEndInfoFlagsML,
10374}
10375impl FrameEndInfoML {
10376 pub const TYPE: StructureType = StructureType::FRAME_END_INFO_ML;
10377}
10378#[repr(C)]
10379#[derive(Copy, Clone, Debug)]
10380#[doc = "See [XrHapticAmplitudeEnvelopeVibrationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticAmplitudeEnvelopeVibrationFB) - defined by [XR_FB_haptic_amplitude_envelope](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_amplitude_envelope)"]
10381pub struct HapticAmplitudeEnvelopeVibrationFB {
10382 pub ty: StructureType,
10383 pub next: *const c_void,
10384 pub duration: Duration,
10385 pub amplitude_count: u32,
10386 pub amplitudes: *const f32,
10387}
10388impl HapticAmplitudeEnvelopeVibrationFB {
10389 pub const TYPE: StructureType = StructureType::HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB;
10390}
10391#[repr(C)]
10392#[derive(Copy, Clone, Debug)]
10393#[doc = "See [XrHapticPcmVibrationFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrHapticPcmVibrationFB) - defined by [XR_FB_haptic_pcm](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_pcm)"]
10394pub struct HapticPcmVibrationFB {
10395 pub ty: StructureType,
10396 pub next: *const c_void,
10397 pub buffer_size: u32,
10398 pub buffer: *const f32,
10399 pub sample_rate: f32,
10400 pub append: Bool32,
10401 pub samples_consumed: *mut u32,
10402}
10403impl HapticPcmVibrationFB {
10404 pub const TYPE: StructureType = StructureType::HAPTIC_PCM_VIBRATION_FB;
10405}
10406#[repr(C)]
10407#[derive(Copy, Clone, Debug)]
10408#[doc = "See [XrDevicePcmSampleRateStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrDevicePcmSampleRateStateFB) - defined by [XR_FB_haptic_pcm](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_pcm)"]
10409pub struct DevicePcmSampleRateStateFB {
10410 pub ty: StructureType,
10411 pub next: *mut c_void,
10412 pub sample_rate: f32,
10413}
10414impl DevicePcmSampleRateStateFB {
10415 pub const TYPE: StructureType = StructureType::DEVICE_PCM_SAMPLE_RATE_STATE_FB;
10416 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10417 #[inline]
10418 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10419 let mut x = MaybeUninit::<Self>::uninit();
10420 unsafe {
10421 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10422 ty: Self::TYPE,
10423 next,
10424 });
10425 }
10426 x
10427 }
10428}
10429pub type DevicePcmSampleRateGetInfoFB = DevicePcmSampleRateStateFB;
10430#[repr(C)]
10431#[derive(Copy, Clone, Debug)]
10432#[doc = "See [XrSpaceUserCreateInfoFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceUserCreateInfoFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
10433pub struct SpaceUserCreateInfoFB {
10434 pub ty: StructureType,
10435 pub next: *const c_void,
10436 pub user_id: SpaceUserIdFB,
10437}
10438impl SpaceUserCreateInfoFB {
10439 pub const TYPE: StructureType = StructureType::SPACE_USER_CREATE_INFO_FB;
10440}
10441#[repr(C)]
10442#[derive(Copy, Clone, Debug)]
10443#[doc = "See [XrSystemForceFeedbackCurlPropertiesMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemForceFeedbackCurlPropertiesMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
10444pub struct SystemForceFeedbackCurlPropertiesMNDX {
10445 pub ty: StructureType,
10446 pub next: *mut c_void,
10447 pub supports_force_feedback_curl: Bool32,
10448}
10449impl SystemForceFeedbackCurlPropertiesMNDX {
10450 pub const TYPE: StructureType = StructureType::SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX;
10451 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10452 #[inline]
10453 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10454 let mut x = MaybeUninit::<Self>::uninit();
10455 unsafe {
10456 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10457 ty: Self::TYPE,
10458 next,
10459 });
10460 }
10461 x
10462 }
10463}
10464#[repr(C)]
10465#[derive(Copy, Clone, Debug)]
10466#[doc = "See [XrForceFeedbackCurlApplyLocationsMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlApplyLocationsMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
10467pub struct ForceFeedbackCurlApplyLocationsMNDX {
10468 pub ty: StructureType,
10469 pub next: *const c_void,
10470 pub location_count: u32,
10471 pub locations: *mut ForceFeedbackCurlApplyLocationMNDX,
10472}
10473impl ForceFeedbackCurlApplyLocationsMNDX {
10474 pub const TYPE: StructureType = StructureType::FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX;
10475}
10476#[repr(C)]
10477#[derive(Copy, Clone, Debug, PartialEq)]
10478#[doc = "See [XrForceFeedbackCurlApplyLocationMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrForceFeedbackCurlApplyLocationMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
10479pub struct ForceFeedbackCurlApplyLocationMNDX {
10480 pub location: ForceFeedbackCurlLocationMNDX,
10481 pub value: f32,
10482}
10483#[repr(C)]
10484#[derive(Copy, Clone, Debug)]
10485#[doc = "See [XrSystemPlaneDetectionPropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemPlaneDetectionPropertiesEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10486pub struct SystemPlaneDetectionPropertiesEXT {
10487 pub ty: StructureType,
10488 pub next: *mut c_void,
10489 pub supported_features: PlaneDetectionCapabilityFlagsEXT,
10490}
10491impl SystemPlaneDetectionPropertiesEXT {
10492 pub const TYPE: StructureType = StructureType::SYSTEM_PLANE_DETECTION_PROPERTIES_EXT;
10493 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10494 #[inline]
10495 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10496 let mut x = MaybeUninit::<Self>::uninit();
10497 unsafe {
10498 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10499 ty: Self::TYPE,
10500 next,
10501 });
10502 }
10503 x
10504 }
10505}
10506#[repr(C)]
10507#[derive(Copy, Clone, Debug)]
10508#[doc = "See [XrPlaneDetectorCreateInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorCreateInfoEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10509pub struct PlaneDetectorCreateInfoEXT {
10510 pub ty: StructureType,
10511 pub next: *const c_void,
10512 pub flags: PlaneDetectorFlagsEXT,
10513}
10514impl PlaneDetectorCreateInfoEXT {
10515 pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_CREATE_INFO_EXT;
10516}
10517#[repr(C)]
10518#[derive(Copy, Clone, Debug)]
10519#[doc = "See [XrPlaneDetectorBeginInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorBeginInfoEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10520pub struct PlaneDetectorBeginInfoEXT {
10521 pub ty: StructureType,
10522 pub next: *const c_void,
10523 pub base_space: Space,
10524 pub time: Time,
10525 pub orientation_count: u32,
10526 pub orientations: *const PlaneDetectorOrientationEXT,
10527 pub semantic_type_count: u32,
10528 pub semantic_types: *const PlaneDetectorSemanticTypeEXT,
10529 pub max_planes: u32,
10530 pub min_area: f32,
10531 pub bounding_box_pose: Posef,
10532 pub bounding_box_extent: Extent3DfEXT,
10533}
10534impl PlaneDetectorBeginInfoEXT {
10535 pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_BEGIN_INFO_EXT;
10536}
10537#[repr(C)]
10538#[derive(Copy, Clone, Debug)]
10539#[doc = "See [XrPlaneDetectorGetInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorGetInfoEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10540pub struct PlaneDetectorGetInfoEXT {
10541 pub ty: StructureType,
10542 pub next: *const c_void,
10543 pub base_space: Space,
10544 pub time: Time,
10545}
10546impl PlaneDetectorGetInfoEXT {
10547 pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_GET_INFO_EXT;
10548}
10549#[repr(C)]
10550#[derive(Copy, Clone, Debug)]
10551#[doc = "See [XrPlaneDetectorLocationsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorLocationsEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10552pub struct PlaneDetectorLocationsEXT {
10553 pub ty: StructureType,
10554 pub next: *mut c_void,
10555 pub plane_location_capacity_input: u32,
10556 pub plane_location_count_output: u32,
10557 pub plane_locations: *mut PlaneDetectorLocationEXT,
10558}
10559impl PlaneDetectorLocationsEXT {
10560 pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_LOCATIONS_EXT;
10561 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10562 #[inline]
10563 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10564 let mut x = MaybeUninit::<Self>::uninit();
10565 unsafe {
10566 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10567 ty: Self::TYPE,
10568 next,
10569 });
10570 }
10571 x
10572 }
10573}
10574#[repr(C)]
10575#[derive(Copy, Clone, Debug)]
10576#[doc = "See [XrPlaneDetectorLocationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorLocationEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10577pub struct PlaneDetectorLocationEXT {
10578 pub ty: StructureType,
10579 pub next: *mut c_void,
10580 pub plane_id: u64,
10581 pub location_flags: SpaceLocationFlags,
10582 pub pose: Posef,
10583 pub extents: Extent2Df,
10584 pub orientation: PlaneDetectorOrientationEXT,
10585 pub semantic_type: PlaneDetectorSemanticTypeEXT,
10586 pub polygon_buffer_count: u32,
10587}
10588impl PlaneDetectorLocationEXT {
10589 pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_LOCATION_EXT;
10590 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10591 #[inline]
10592 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10593 let mut x = MaybeUninit::<Self>::uninit();
10594 unsafe {
10595 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10596 ty: Self::TYPE,
10597 next,
10598 });
10599 }
10600 x
10601 }
10602}
10603#[repr(C)]
10604#[derive(Copy, Clone, Debug)]
10605#[doc = "See [XrPlaneDetectorPolygonBufferEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrPlaneDetectorPolygonBufferEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
10606pub struct PlaneDetectorPolygonBufferEXT {
10607 pub ty: StructureType,
10608 pub next: *mut c_void,
10609 pub vertex_capacity_input: u32,
10610 pub vertex_count_output: u32,
10611 pub vertices: *mut Vector2f,
10612}
10613impl PlaneDetectorPolygonBufferEXT {
10614 pub const TYPE: StructureType = StructureType::PLANE_DETECTOR_POLYGON_BUFFER_EXT;
10615 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10616 #[inline]
10617 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10618 let mut x = MaybeUninit::<Self>::uninit();
10619 unsafe {
10620 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10621 ty: Self::TYPE,
10622 next,
10623 });
10624 }
10625 x
10626 }
10627}
10628#[repr(C)]
10629#[derive(Copy, Clone, Debug)]
10630#[doc = "See [XrSystemVirtualKeyboardPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemVirtualKeyboardPropertiesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10631pub struct SystemVirtualKeyboardPropertiesMETA {
10632 pub ty: StructureType,
10633 pub next: *mut c_void,
10634 pub supports_virtual_keyboard: Bool32,
10635}
10636impl SystemVirtualKeyboardPropertiesMETA {
10637 pub const TYPE: StructureType = StructureType::SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META;
10638 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10639 #[inline]
10640 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10641 let mut x = MaybeUninit::<Self>::uninit();
10642 unsafe {
10643 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10644 ty: Self::TYPE,
10645 next,
10646 });
10647 }
10648 x
10649 }
10650}
10651#[repr(C)]
10652#[derive(Copy, Clone, Debug)]
10653#[doc = "See [XrVirtualKeyboardCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardCreateInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10654pub struct VirtualKeyboardCreateInfoMETA {
10655 pub ty: StructureType,
10656 pub next: *const c_void,
10657}
10658impl VirtualKeyboardCreateInfoMETA {
10659 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_CREATE_INFO_META;
10660}
10661#[repr(C)]
10662#[derive(Copy, Clone, Debug)]
10663#[doc = "See [XrVirtualKeyboardSpaceCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardSpaceCreateInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10664pub struct VirtualKeyboardSpaceCreateInfoMETA {
10665 pub ty: StructureType,
10666 pub next: *const c_void,
10667 pub location_type: VirtualKeyboardLocationTypeMETA,
10668 pub space: Space,
10669 pub pose_in_space: Posef,
10670}
10671impl VirtualKeyboardSpaceCreateInfoMETA {
10672 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META;
10673}
10674#[repr(C)]
10675#[derive(Copy, Clone, Debug)]
10676#[doc = "See [XrVirtualKeyboardLocationInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardLocationInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10677pub struct VirtualKeyboardLocationInfoMETA {
10678 pub ty: StructureType,
10679 pub next: *const c_void,
10680 pub location_type: VirtualKeyboardLocationTypeMETA,
10681 pub space: Space,
10682 pub pose_in_space: Posef,
10683 pub scale: f32,
10684}
10685impl VirtualKeyboardLocationInfoMETA {
10686 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_LOCATION_INFO_META;
10687}
10688#[repr(C)]
10689#[derive(Copy, Clone, Debug)]
10690#[doc = "See [XrVirtualKeyboardModelVisibilitySetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardModelVisibilitySetInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10691pub struct VirtualKeyboardModelVisibilitySetInfoMETA {
10692 pub ty: StructureType,
10693 pub next: *const c_void,
10694 pub visible: Bool32,
10695}
10696impl VirtualKeyboardModelVisibilitySetInfoMETA {
10697 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META;
10698}
10699#[repr(C)]
10700#[derive(Copy, Clone, Debug)]
10701#[doc = "See [XrVirtualKeyboardAnimationStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardAnimationStateMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10702pub struct VirtualKeyboardAnimationStateMETA {
10703 pub ty: StructureType,
10704 pub next: *mut c_void,
10705 pub animation_index: i32,
10706 pub fraction: f32,
10707}
10708impl VirtualKeyboardAnimationStateMETA {
10709 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_ANIMATION_STATE_META;
10710 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10711 #[inline]
10712 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10713 let mut x = MaybeUninit::<Self>::uninit();
10714 unsafe {
10715 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10716 ty: Self::TYPE,
10717 next,
10718 });
10719 }
10720 x
10721 }
10722}
10723#[repr(C)]
10724#[derive(Copy, Clone, Debug)]
10725#[doc = "See [XrVirtualKeyboardModelAnimationStatesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardModelAnimationStatesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10726pub struct VirtualKeyboardModelAnimationStatesMETA {
10727 pub ty: StructureType,
10728 pub next: *mut c_void,
10729 pub state_capacity_input: u32,
10730 pub state_count_output: u32,
10731 pub states: *mut VirtualKeyboardAnimationStateMETA,
10732}
10733impl VirtualKeyboardModelAnimationStatesMETA {
10734 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META;
10735 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10736 #[inline]
10737 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10738 let mut x = MaybeUninit::<Self>::uninit();
10739 unsafe {
10740 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10741 ty: Self::TYPE,
10742 next,
10743 });
10744 }
10745 x
10746 }
10747}
10748#[repr(C)]
10749#[derive(Copy, Clone, Debug)]
10750#[doc = "See [XrVirtualKeyboardTextureDataMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardTextureDataMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10751pub struct VirtualKeyboardTextureDataMETA {
10752 pub ty: StructureType,
10753 pub next: *mut c_void,
10754 pub texture_width: u32,
10755 pub texture_height: u32,
10756 pub buffer_capacity_input: u32,
10757 pub buffer_count_output: u32,
10758 pub buffer: *mut u8,
10759}
10760impl VirtualKeyboardTextureDataMETA {
10761 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_TEXTURE_DATA_META;
10762 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10763 #[inline]
10764 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10765 let mut x = MaybeUninit::<Self>::uninit();
10766 unsafe {
10767 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10768 ty: Self::TYPE,
10769 next,
10770 });
10771 }
10772 x
10773 }
10774}
10775#[repr(C)]
10776#[derive(Copy, Clone, Debug)]
10777#[doc = "See [XrVirtualKeyboardInputInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardInputInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10778pub struct VirtualKeyboardInputInfoMETA {
10779 pub ty: StructureType,
10780 pub next: *const c_void,
10781 pub input_source: VirtualKeyboardInputSourceMETA,
10782 pub input_space: Space,
10783 pub input_pose_in_space: Posef,
10784 pub input_state: VirtualKeyboardInputStateFlagsMETA,
10785}
10786impl VirtualKeyboardInputInfoMETA {
10787 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_INPUT_INFO_META;
10788}
10789#[repr(C)]
10790#[derive(Copy, Clone, Debug)]
10791#[doc = "See [XrVirtualKeyboardTextContextChangeInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrVirtualKeyboardTextContextChangeInfoMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10792pub struct VirtualKeyboardTextContextChangeInfoMETA {
10793 pub ty: StructureType,
10794 pub next: *const c_void,
10795 pub text_context: *const c_char,
10796}
10797impl VirtualKeyboardTextContextChangeInfoMETA {
10798 pub const TYPE: StructureType = StructureType::VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META;
10799}
10800#[repr(C)]
10801#[derive(Copy, Clone, Debug)]
10802#[doc = "See [XrEventDataVirtualKeyboardCommitTextMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardCommitTextMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10803pub struct EventDataVirtualKeyboardCommitTextMETA {
10804 pub ty: StructureType,
10805 pub next: *const c_void,
10806 pub keyboard: VirtualKeyboardMETA,
10807 pub text: [c_char; MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META],
10808}
10809impl EventDataVirtualKeyboardCommitTextMETA {
10810 pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META;
10811}
10812#[repr(C)]
10813#[derive(Copy, Clone, Debug)]
10814#[doc = "See [XrEventDataVirtualKeyboardBackspaceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardBackspaceMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10815pub struct EventDataVirtualKeyboardBackspaceMETA {
10816 pub ty: StructureType,
10817 pub next: *const c_void,
10818 pub keyboard: VirtualKeyboardMETA,
10819}
10820impl EventDataVirtualKeyboardBackspaceMETA {
10821 pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META;
10822}
10823#[repr(C)]
10824#[derive(Copy, Clone, Debug)]
10825#[doc = "See [XrEventDataVirtualKeyboardEnterMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardEnterMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10826pub struct EventDataVirtualKeyboardEnterMETA {
10827 pub ty: StructureType,
10828 pub next: *const c_void,
10829 pub keyboard: VirtualKeyboardMETA,
10830}
10831impl EventDataVirtualKeyboardEnterMETA {
10832 pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META;
10833}
10834#[repr(C)]
10835#[derive(Copy, Clone, Debug)]
10836#[doc = "See [XrEventDataVirtualKeyboardShownMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardShownMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10837pub struct EventDataVirtualKeyboardShownMETA {
10838 pub ty: StructureType,
10839 pub next: *const c_void,
10840 pub keyboard: VirtualKeyboardMETA,
10841}
10842impl EventDataVirtualKeyboardShownMETA {
10843 pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META;
10844}
10845#[repr(C)]
10846#[derive(Copy, Clone, Debug)]
10847#[doc = "See [XrEventDataVirtualKeyboardHiddenMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataVirtualKeyboardHiddenMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
10848pub struct EventDataVirtualKeyboardHiddenMETA {
10849 pub ty: StructureType,
10850 pub next: *const c_void,
10851 pub keyboard: VirtualKeyboardMETA,
10852}
10853impl EventDataVirtualKeyboardHiddenMETA {
10854 pub const TYPE: StructureType = StructureType::EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META;
10855}
10856#[repr(C)]
10857#[derive(Copy, Clone, Debug)]
10858#[doc = "See [XrUserCalibrationEnableEventsInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrUserCalibrationEnableEventsInfoML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
10859pub struct UserCalibrationEnableEventsInfoML {
10860 pub ty: StructureType,
10861 pub next: *const c_void,
10862 pub enabled: Bool32,
10863}
10864impl UserCalibrationEnableEventsInfoML {
10865 pub const TYPE: StructureType = StructureType::USER_CALIBRATION_ENABLE_EVENTS_INFO_ML;
10866}
10867#[repr(C)]
10868#[derive(Copy, Clone, Debug)]
10869#[doc = "See [XrEventDataHeadsetFitChangedML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataHeadsetFitChangedML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
10870pub struct EventDataHeadsetFitChangedML {
10871 pub ty: StructureType,
10872 pub next: *const c_void,
10873 pub status: HeadsetFitStatusML,
10874 pub time: Time,
10875}
10876impl EventDataHeadsetFitChangedML {
10877 pub const TYPE: StructureType = StructureType::EVENT_DATA_HEADSET_FIT_CHANGED_ML;
10878}
10879#[repr(C)]
10880#[derive(Copy, Clone, Debug)]
10881#[doc = "See [XrEventDataEyeCalibrationChangedML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataEyeCalibrationChangedML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
10882pub struct EventDataEyeCalibrationChangedML {
10883 pub ty: StructureType,
10884 pub next: *const c_void,
10885 pub status: EyeCalibrationStatusML,
10886}
10887impl EventDataEyeCalibrationChangedML {
10888 pub const TYPE: StructureType = StructureType::EVENT_DATA_EYE_CALIBRATION_CHANGED_ML;
10889}
10890#[repr(C)]
10891#[derive(Copy, Clone, Debug)]
10892#[doc = "See [XrLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10893pub struct LocalizationMapML {
10894 pub ty: StructureType,
10895 pub next: *mut c_void,
10896 pub name: [c_char; MAX_LOCALIZATION_MAP_NAME_LENGTH_ML],
10897 pub map_uuid: UuidEXT,
10898 pub map_type: LocalizationMapTypeML,
10899}
10900impl LocalizationMapML {
10901 pub const TYPE: StructureType = StructureType::LOCALIZATION_MAP_ML;
10902 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10903 #[inline]
10904 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10905 let mut x = MaybeUninit::<Self>::uninit();
10906 unsafe {
10907 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10908 ty: Self::TYPE,
10909 next,
10910 });
10911 }
10912 x
10913 }
10914}
10915#[repr(C)]
10916#[derive(Copy, Clone, Debug)]
10917#[doc = "See [XrLocalizationEnableEventsInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationEnableEventsInfoML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10918pub struct LocalizationEnableEventsInfoML {
10919 pub ty: StructureType,
10920 pub next: *const c_void,
10921 pub enabled: Bool32,
10922}
10923impl LocalizationEnableEventsInfoML {
10924 pub const TYPE: StructureType = StructureType::LOCALIZATION_ENABLE_EVENTS_INFO_ML;
10925}
10926#[repr(C)]
10927#[derive(Copy, Clone, Debug)]
10928#[doc = "See [XrEventDataLocalizationChangedML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataLocalizationChangedML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10929pub struct EventDataLocalizationChangedML {
10930 pub ty: StructureType,
10931 pub next: *const c_void,
10932 pub session: Session,
10933 pub state: LocalizationMapStateML,
10934 pub map: LocalizationMapML,
10935 pub confidence: LocalizationMapConfidenceML,
10936 pub error_flags: LocalizationMapErrorFlagsML,
10937}
10938impl EventDataLocalizationChangedML {
10939 pub const TYPE: StructureType = StructureType::EVENT_DATA_LOCALIZATION_CHANGED_ML;
10940}
10941#[repr(C)]
10942#[derive(Copy, Clone, Debug)]
10943#[doc = "See [XrLocalizationMapQueryInfoBaseHeaderML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapQueryInfoBaseHeaderML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10944pub struct LocalizationMapQueryInfoBaseHeaderML {
10945 pub ty: StructureType,
10946 pub next: *const c_void,
10947}
10948#[repr(C)]
10949#[derive(Copy, Clone, Debug)]
10950#[doc = "See [XrMapLocalizationRequestInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMapLocalizationRequestInfoML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10951pub struct MapLocalizationRequestInfoML {
10952 pub ty: StructureType,
10953 pub next: *const c_void,
10954 pub map_uuid: UuidEXT,
10955}
10956impl MapLocalizationRequestInfoML {
10957 pub const TYPE: StructureType = StructureType::MAP_LOCALIZATION_REQUEST_INFO_ML;
10958}
10959#[repr(C)]
10960#[derive(Copy, Clone, Debug)]
10961#[doc = "See [XrLocalizationMapImportInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrLocalizationMapImportInfoML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
10962pub struct LocalizationMapImportInfoML {
10963 pub ty: StructureType,
10964 pub next: *const c_void,
10965 pub size: u32,
10966 pub data: *mut c_char,
10967}
10968impl LocalizationMapImportInfoML {
10969 pub const TYPE: StructureType = StructureType::LOCALIZATION_MAP_IMPORT_INFO_ML;
10970}
10971#[repr(C)]
10972#[derive(Copy, Clone, Debug)]
10973#[doc = "See [XrSystemMarkerUnderstandingPropertiesML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemMarkerUnderstandingPropertiesML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
10974pub struct SystemMarkerUnderstandingPropertiesML {
10975 pub ty: StructureType,
10976 pub next: *mut c_void,
10977 pub supports_marker_understanding: Bool32,
10978}
10979impl SystemMarkerUnderstandingPropertiesML {
10980 pub const TYPE: StructureType = StructureType::SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML;
10981 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
10982 #[inline]
10983 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
10984 let mut x = MaybeUninit::<Self>::uninit();
10985 unsafe {
10986 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
10987 ty: Self::TYPE,
10988 next,
10989 });
10990 }
10991 x
10992 }
10993}
10994#[repr(C)]
10995#[derive(Copy, Clone, Debug)]
10996#[doc = "See [XrMarkerDetectorCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCreateInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
10997pub struct MarkerDetectorCreateInfoML {
10998 pub ty: StructureType,
10999 pub next: *const c_void,
11000 pub profile: MarkerDetectorProfileML,
11001 pub marker_type: MarkerTypeML,
11002}
11003impl MarkerDetectorCreateInfoML {
11004 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_CREATE_INFO_ML;
11005}
11006#[repr(C)]
11007#[derive(Copy, Clone, Debug)]
11008#[doc = "See [XrMarkerDetectorArucoInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorArucoInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11009pub struct MarkerDetectorArucoInfoML {
11010 pub ty: StructureType,
11011 pub next: *const c_void,
11012 pub aruco_dict: MarkerArucoDictML,
11013}
11014impl MarkerDetectorArucoInfoML {
11015 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_ARUCO_INFO_ML;
11016}
11017#[repr(C)]
11018#[derive(Copy, Clone, Debug)]
11019#[doc = "See [XrMarkerDetectorSizeInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorSizeInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11020pub struct MarkerDetectorSizeInfoML {
11021 pub ty: StructureType,
11022 pub next: *const c_void,
11023 pub marker_length: f32,
11024}
11025impl MarkerDetectorSizeInfoML {
11026 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_SIZE_INFO_ML;
11027}
11028#[repr(C)]
11029#[derive(Copy, Clone, Debug)]
11030#[doc = "See [XrMarkerDetectorAprilTagInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorAprilTagInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11031pub struct MarkerDetectorAprilTagInfoML {
11032 pub ty: StructureType,
11033 pub next: *const c_void,
11034 pub april_tag_dict: MarkerAprilTagDictML,
11035}
11036impl MarkerDetectorAprilTagInfoML {
11037 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_APRIL_TAG_INFO_ML;
11038}
11039#[repr(C)]
11040#[derive(Copy, Clone, Debug)]
11041#[doc = "See [XrMarkerDetectorCustomProfileInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorCustomProfileInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11042pub struct MarkerDetectorCustomProfileInfoML {
11043 pub ty: StructureType,
11044 pub next: *const c_void,
11045 pub fps_hint: MarkerDetectorFpsML,
11046 pub resolution_hint: MarkerDetectorResolutionML,
11047 pub camera_hint: MarkerDetectorCameraML,
11048 pub corner_refine_method: MarkerDetectorCornerRefineMethodML,
11049 pub use_edge_refinement: Bool32,
11050 pub full_analysis_interval_hint: MarkerDetectorFullAnalysisIntervalML,
11051}
11052impl MarkerDetectorCustomProfileInfoML {
11053 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML;
11054}
11055#[repr(C)]
11056#[derive(Copy, Clone, Debug)]
11057#[doc = "See [XrMarkerDetectorSnapshotInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorSnapshotInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11058pub struct MarkerDetectorSnapshotInfoML {
11059 pub ty: StructureType,
11060 pub next: *const c_void,
11061}
11062impl MarkerDetectorSnapshotInfoML {
11063 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_SNAPSHOT_INFO_ML;
11064}
11065#[repr(C)]
11066#[derive(Copy, Clone, Debug)]
11067#[doc = "See [XrMarkerDetectorStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerDetectorStateML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11068pub struct MarkerDetectorStateML {
11069 pub ty: StructureType,
11070 pub next: *mut c_void,
11071 pub state: MarkerDetectorStatusML,
11072}
11073impl MarkerDetectorStateML {
11074 pub const TYPE: StructureType = StructureType::MARKER_DETECTOR_STATE_ML;
11075 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11076 #[inline]
11077 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11078 let mut x = MaybeUninit::<Self>::uninit();
11079 unsafe {
11080 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11081 ty: Self::TYPE,
11082 next,
11083 });
11084 }
11085 x
11086 }
11087}
11088#[repr(C)]
11089#[derive(Copy, Clone, Debug)]
11090#[doc = "See [XrMarkerSpaceCreateInfoML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrMarkerSpaceCreateInfoML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
11091pub struct MarkerSpaceCreateInfoML {
11092 pub ty: StructureType,
11093 pub next: *const c_void,
11094 pub marker_detector: MarkerDetectorML,
11095 pub marker: MarkerML,
11096 pub pose_in_marker_space: Posef,
11097}
11098impl MarkerSpaceCreateInfoML {
11099 pub const TYPE: StructureType = StructureType::MARKER_SPACE_CREATE_INFO_ML;
11100}
11101#[repr(C)]
11102#[derive(Copy, Clone, Debug, Default, PartialEq)]
11103#[doc = "See [XrColor3f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrColor3f)"]
11104pub struct Color3f {
11105 pub r: f32,
11106 pub g: f32,
11107 pub b: f32,
11108}
11109pub type Color3fKHR = Color3f;
11110#[repr(C)]
11111#[derive(Copy, Clone, Debug, Default, PartialEq)]
11112#[doc = "See [XrExtent3Df](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrExtent3Df)"]
11113pub struct Extent3Df {
11114 pub width: f32,
11115 pub height: f32,
11116 pub depth: f32,
11117}
11118pub type Extent3DfEXT = Extent3Df;
11119pub type Extent3DfFB = Extent3Df;
11120pub type Extent3DfKHR = Extent3Df;
11121#[repr(C)]
11122#[derive(Copy, Clone, Debug, Default, PartialEq)]
11123#[doc = "See [XrSpheref](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpheref)"]
11124pub struct Spheref {
11125 pub center: Posef,
11126 pub radius: f32,
11127}
11128pub type SpherefKHR = Spheref;
11129#[repr(C)]
11130#[derive(Copy, Clone, Debug, Default, PartialEq)]
11131#[doc = "See [XrBoxf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrBoxf)"]
11132pub struct Boxf {
11133 pub center: Posef,
11134 pub extents: Extent3Df,
11135}
11136pub type BoxfKHR = Boxf;
11137#[repr(C)]
11138#[derive(Copy, Clone, Debug, Default, PartialEq)]
11139#[doc = "See [XrFrustumf](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFrustumf)"]
11140pub struct Frustumf {
11141 pub pose: Posef,
11142 pub fov: Fovf,
11143 pub near_z: f32,
11144 pub far_z: f32,
11145}
11146pub type FrustumfKHR = Frustumf;
11147#[repr(C)]
11148#[derive(Copy, Clone, Debug)]
11149#[doc = "See [XrUuid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrUuid)"]
11150pub struct Uuid {
11151 pub data: [u8; UUID_SIZE],
11152}
11153pub type UuidEXT = Uuid;
11154#[repr(C)]
11155#[derive(Copy, Clone, Debug)]
11156#[doc = "See [XrRecommendedLayerResolutionMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRecommendedLayerResolutionMETA) - defined by [XR_META_recommended_layer_resolution](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_recommended_layer_resolution)"]
11157pub struct RecommendedLayerResolutionMETA {
11158 pub ty: StructureType,
11159 pub next: *mut c_void,
11160 pub recommended_image_dimensions: Extent2Di,
11161 pub is_valid: Bool32,
11162}
11163impl RecommendedLayerResolutionMETA {
11164 pub const TYPE: StructureType = StructureType::RECOMMENDED_LAYER_RESOLUTION_META;
11165 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11166 #[inline]
11167 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11168 let mut x = MaybeUninit::<Self>::uninit();
11169 unsafe {
11170 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11171 ty: Self::TYPE,
11172 next,
11173 });
11174 }
11175 x
11176 }
11177}
11178#[repr(C)]
11179#[derive(Copy, Clone, Debug)]
11180#[doc = "See [XrRecommendedLayerResolutionGetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrRecommendedLayerResolutionGetInfoMETA) - defined by [XR_META_recommended_layer_resolution](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_recommended_layer_resolution)"]
11181pub struct RecommendedLayerResolutionGetInfoMETA {
11182 pub ty: StructureType,
11183 pub next: *const c_void,
11184 pub layer: *const CompositionLayerBaseHeader,
11185 pub predicted_display_time: Time,
11186}
11187impl RecommendedLayerResolutionGetInfoMETA {
11188 pub const TYPE: StructureType = StructureType::RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META;
11189}
11190#[repr(C)]
11191#[derive(Copy, Clone, Debug)]
11192#[doc = "See [XrSystemUserPresencePropertiesEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemUserPresencePropertiesEXT) - defined by [XR_EXT_user_presence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_user_presence)"]
11193pub struct SystemUserPresencePropertiesEXT {
11194 pub ty: StructureType,
11195 pub next: *mut c_void,
11196 pub supports_user_presence: Bool32,
11197}
11198impl SystemUserPresencePropertiesEXT {
11199 pub const TYPE: StructureType = StructureType::SYSTEM_USER_PRESENCE_PROPERTIES_EXT;
11200 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11201 #[inline]
11202 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11203 let mut x = MaybeUninit::<Self>::uninit();
11204 unsafe {
11205 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11206 ty: Self::TYPE,
11207 next,
11208 });
11209 }
11210 x
11211 }
11212}
11213#[repr(C)]
11214#[derive(Copy, Clone, Debug)]
11215#[doc = "See [XrEventDataUserPresenceChangedEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEventDataUserPresenceChangedEXT) - defined by [XR_EXT_user_presence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_user_presence)"]
11216pub struct EventDataUserPresenceChangedEXT {
11217 pub ty: StructureType,
11218 pub next: *const c_void,
11219 pub session: Session,
11220 pub is_user_present: Bool32,
11221}
11222impl EventDataUserPresenceChangedEXT {
11223 pub const TYPE: StructureType = StructureType::EVENT_DATA_USER_PRESENCE_CHANGED_EXT;
11224}
11225#[repr(C)]
11226#[derive(Copy, Clone, Debug)]
11227#[doc = "See [XrFutureCompletionBaseHeaderEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureCompletionBaseHeaderEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11228pub struct FutureCompletionBaseHeaderEXT {
11229 pub ty: StructureType,
11230 pub next: *mut c_void,
11231 pub future_result: Result,
11232}
11233#[repr(C)]
11234#[derive(Copy, Clone, Debug)]
11235#[doc = "See [XrFutureCompletionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureCompletionEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11236pub struct FutureCompletionEXT {
11237 pub ty: StructureType,
11238 pub next: *mut c_void,
11239 pub future_result: Result,
11240}
11241impl FutureCompletionEXT {
11242 pub const TYPE: StructureType = StructureType::FUTURE_COMPLETION_EXT;
11243 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11244 #[inline]
11245 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11246 let mut x = MaybeUninit::<Self>::uninit();
11247 unsafe {
11248 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11249 ty: Self::TYPE,
11250 next,
11251 });
11252 }
11253 x
11254 }
11255}
11256#[repr(C)]
11257#[derive(Copy, Clone, Debug)]
11258#[doc = "See [XrFutureCancelInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFutureCancelInfoEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11259pub struct FutureCancelInfoEXT {
11260 pub ty: StructureType,
11261 pub next: *const c_void,
11262 pub future: FutureEXT,
11263}
11264impl FutureCancelInfoEXT {
11265 pub const TYPE: StructureType = StructureType::FUTURE_CANCEL_INFO_EXT;
11266}
11267#[repr(C)]
11268#[derive(Copy, Clone, Debug)]
11269#[doc = "See [XrFuturePollInfoEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFuturePollInfoEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11270pub struct FuturePollInfoEXT {
11271 pub ty: StructureType,
11272 pub next: *const c_void,
11273 pub future: FutureEXT,
11274}
11275impl FuturePollInfoEXT {
11276 pub const TYPE: StructureType = StructureType::FUTURE_POLL_INFO_EXT;
11277}
11278#[repr(C)]
11279#[derive(Copy, Clone, Debug)]
11280#[doc = "See [XrFuturePollResultEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrFuturePollResultEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
11281pub struct FuturePollResultEXT {
11282 pub ty: StructureType,
11283 pub next: *mut c_void,
11284 pub state: FutureStateEXT,
11285}
11286impl FuturePollResultEXT {
11287 pub const TYPE: StructureType = StructureType::FUTURE_POLL_RESULT_EXT;
11288 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11289 #[inline]
11290 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11291 let mut x = MaybeUninit::<Self>::uninit();
11292 unsafe {
11293 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11294 ty: Self::TYPE,
11295 next,
11296 });
11297 }
11298 x
11299 }
11300}
11301#[repr(C)]
11302#[derive(Copy, Clone, Debug)]
11303#[doc = "See [XrEnvironmentDepthProviderCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthProviderCreateInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11304pub struct EnvironmentDepthProviderCreateInfoMETA {
11305 pub ty: StructureType,
11306 pub next: *const c_void,
11307 pub create_flags: EnvironmentDepthProviderCreateFlagsMETA,
11308}
11309impl EnvironmentDepthProviderCreateInfoMETA {
11310 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META;
11311}
11312#[repr(C)]
11313#[derive(Copy, Clone, Debug)]
11314#[doc = "See [XrEnvironmentDepthSwapchainCreateInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainCreateInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11315pub struct EnvironmentDepthSwapchainCreateInfoMETA {
11316 pub ty: StructureType,
11317 pub next: *const c_void,
11318 pub create_flags: EnvironmentDepthSwapchainCreateFlagsMETA,
11319}
11320impl EnvironmentDepthSwapchainCreateInfoMETA {
11321 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META;
11322}
11323#[repr(C)]
11324#[derive(Copy, Clone, Debug)]
11325#[doc = "See [XrEnvironmentDepthSwapchainStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthSwapchainStateMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11326pub struct EnvironmentDepthSwapchainStateMETA {
11327 pub ty: StructureType,
11328 pub next: *mut c_void,
11329 pub width: u32,
11330 pub height: u32,
11331}
11332impl EnvironmentDepthSwapchainStateMETA {
11333 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META;
11334 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11335 #[inline]
11336 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11337 let mut x = MaybeUninit::<Self>::uninit();
11338 unsafe {
11339 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11340 ty: Self::TYPE,
11341 next,
11342 });
11343 }
11344 x
11345 }
11346}
11347#[repr(C)]
11348#[derive(Copy, Clone, Debug)]
11349#[doc = "See [XrEnvironmentDepthImageAcquireInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthImageAcquireInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11350pub struct EnvironmentDepthImageAcquireInfoMETA {
11351 pub ty: StructureType,
11352 pub next: *const c_void,
11353 pub space: Space,
11354 pub display_time: Time,
11355}
11356impl EnvironmentDepthImageAcquireInfoMETA {
11357 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META;
11358}
11359#[repr(C)]
11360#[derive(Copy, Clone, Debug)]
11361#[doc = "See [XrEnvironmentDepthImageViewMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthImageViewMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11362pub struct EnvironmentDepthImageViewMETA {
11363 pub ty: StructureType,
11364 pub next: *const c_void,
11365 pub fov: Fovf,
11366 pub pose: Posef,
11367}
11368impl EnvironmentDepthImageViewMETA {
11369 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_VIEW_META;
11370}
11371#[repr(C)]
11372#[derive(Copy, Clone, Debug)]
11373#[doc = "See [XrEnvironmentDepthImageMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthImageMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11374pub struct EnvironmentDepthImageMETA {
11375 pub ty: StructureType,
11376 pub next: *const c_void,
11377 pub swapchain_index: u32,
11378 pub near_z: f32,
11379 pub far_z: f32,
11380 pub views: [EnvironmentDepthImageViewMETA; 2usize],
11381}
11382impl EnvironmentDepthImageMETA {
11383 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_IMAGE_META;
11384}
11385#[repr(C)]
11386#[derive(Copy, Clone, Debug)]
11387#[doc = "See [XrEnvironmentDepthHandRemovalSetInfoMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrEnvironmentDepthHandRemovalSetInfoMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11388pub struct EnvironmentDepthHandRemovalSetInfoMETA {
11389 pub ty: StructureType,
11390 pub next: *const c_void,
11391 pub enabled: Bool32,
11392}
11393impl EnvironmentDepthHandRemovalSetInfoMETA {
11394 pub const TYPE: StructureType = StructureType::ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META;
11395}
11396#[repr(C)]
11397#[derive(Copy, Clone, Debug)]
11398#[doc = "See [XrSystemEnvironmentDepthPropertiesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSystemEnvironmentDepthPropertiesMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
11399pub struct SystemEnvironmentDepthPropertiesMETA {
11400 pub ty: StructureType,
11401 pub next: *mut c_void,
11402 pub supports_environment_depth: Bool32,
11403 pub supports_hand_removal: Bool32,
11404}
11405impl SystemEnvironmentDepthPropertiesMETA {
11406 pub const TYPE: StructureType = StructureType::SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META;
11407 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11408 #[inline]
11409 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11410 let mut x = MaybeUninit::<Self>::uninit();
11411 unsafe {
11412 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11413 ty: Self::TYPE,
11414 next,
11415 });
11416 }
11417 x
11418 }
11419}
11420#[repr(C)]
11421#[derive(Copy, Clone, Debug)]
11422#[doc = "See [XrSpacesLocateInfo](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpacesLocateInfo)"]
11423pub struct SpacesLocateInfo {
11424 pub ty: StructureType,
11425 pub next: *const c_void,
11426 pub base_space: Space,
11427 pub time: Time,
11428 pub space_count: u32,
11429 pub spaces: *const Space,
11430}
11431impl SpacesLocateInfo {
11432 pub const TYPE: StructureType = StructureType::SPACES_LOCATE_INFO;
11433}
11434pub type SpacesLocateInfoKHR = SpacesLocateInfo;
11435#[repr(C)]
11436#[derive(Copy, Clone, Debug)]
11437#[doc = "See [XrSpaceLocations](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocations)"]
11438pub struct SpaceLocations {
11439 pub ty: StructureType,
11440 pub next: *mut c_void,
11441 pub location_count: u32,
11442 pub locations: *mut SpaceLocationData,
11443}
11444impl SpaceLocations {
11445 pub const TYPE: StructureType = StructureType::SPACE_LOCATIONS;
11446 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11447 #[inline]
11448 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11449 let mut x = MaybeUninit::<Self>::uninit();
11450 unsafe {
11451 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11452 ty: Self::TYPE,
11453 next,
11454 });
11455 }
11456 x
11457 }
11458}
11459pub type SpaceLocationsKHR = SpaceLocations;
11460#[repr(C)]
11461#[derive(Copy, Clone, Debug, Default, PartialEq)]
11462#[doc = "See [XrSpaceLocationData](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceLocationData)"]
11463pub struct SpaceLocationData {
11464 pub location_flags: SpaceLocationFlags,
11465 pub pose: Posef,
11466}
11467pub type SpaceLocationDataKHR = SpaceLocationData;
11468#[repr(C)]
11469#[derive(Copy, Clone, Debug)]
11470#[doc = "See [XrSpaceVelocities](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocities)"]
11471pub struct SpaceVelocities {
11472 pub ty: StructureType,
11473 pub next: *mut c_void,
11474 pub velocity_count: u32,
11475 pub velocities: *mut SpaceVelocityData,
11476}
11477impl SpaceVelocities {
11478 pub const TYPE: StructureType = StructureType::SPACE_VELOCITIES;
11479 #[doc = r" Construct a partially-initialized value suitable for passing to OpenXR"]
11480 #[inline]
11481 pub fn out(next: *mut BaseOutStructure) -> MaybeUninit<Self> {
11482 let mut x = MaybeUninit::<Self>::uninit();
11483 unsafe {
11484 (x.as_mut_ptr() as *mut BaseOutStructure).write(BaseOutStructure {
11485 ty: Self::TYPE,
11486 next,
11487 });
11488 }
11489 x
11490 }
11491}
11492pub type SpaceVelocitiesKHR = SpaceVelocities;
11493#[repr(C)]
11494#[derive(Copy, Clone, Debug, Default, PartialEq)]
11495#[doc = "See [XrSpaceVelocityData](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XrSpaceVelocityData)"]
11496pub struct SpaceVelocityData {
11497 pub velocity_flags: SpaceVelocityFlags,
11498 pub linear_velocity: Vector3f,
11499 pub angular_velocity: Vector3f,
11500}
11501pub type SpaceVelocityDataKHR = SpaceVelocityData;
11502#[doc = r" Function pointer prototypes"]
11503pub mod pfn {
11504 use super::*;
11505 pub use crate::platform::EglGetProcAddressMNDX;
11506 pub type VoidFunction = unsafe extern "system" fn();
11507 pub type DebugUtilsMessengerCallbackEXT = unsafe extern "system" fn(
11508 DebugUtilsMessageSeverityFlagsEXT,
11509 DebugUtilsMessageTypeFlagsEXT,
11510 *const DebugUtilsMessengerCallbackDataEXT,
11511 *mut c_void,
11512 ) -> Bool32;
11513 #[doc = "See [xrNegotiateLoaderRuntimeInterface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrNegotiateLoaderRuntimeInterface)"]
11514 pub type NegotiateLoaderRuntimeInterface = unsafe extern "system" fn(
11515 loader_info: *const NegotiateLoaderInfo,
11516 runtime_request: *mut NegotiateRuntimeRequest,
11517 ) -> Result;
11518 #[doc = "See [xrNegotiateLoaderApiLayerInterface](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrNegotiateLoaderApiLayerInterface)"]
11519 pub type NegotiateLoaderApiLayerInterface = unsafe extern "system" fn(
11520 loader_info: *const NegotiateLoaderInfo,
11521 layer_name: *const c_char,
11522 api_layer_request: *mut NegotiateApiLayerRequest,
11523 ) -> Result;
11524 #[doc = "See [xrCreateApiLayerInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateApiLayerInstance)"]
11525 pub type CreateApiLayerInstance = unsafe extern "system" fn(
11526 info: *const InstanceCreateInfo,
11527 layer_info: *const ApiLayerCreateInfo,
11528 instance: *mut Instance,
11529 ) -> Result;
11530 #[doc = "See [xrGetInstanceProcAddr](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInstanceProcAddr)"]
11531 pub type GetInstanceProcAddr = unsafe extern "system" fn(
11532 instance: Instance,
11533 name: *const c_char,
11534 function: *mut Option<pfn::VoidFunction>,
11535 ) -> Result;
11536 #[doc = "See [xrEnumerateApiLayerProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateApiLayerProperties)"]
11537 pub type EnumerateApiLayerProperties = unsafe extern "system" fn(
11538 property_capacity_input: u32,
11539 property_count_output: *mut u32,
11540 properties: *mut ApiLayerProperties,
11541 ) -> Result;
11542 #[doc = "See [xrEnumerateInstanceExtensionProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateInstanceExtensionProperties)"]
11543 pub type EnumerateInstanceExtensionProperties = unsafe extern "system" fn(
11544 layer_name: *const c_char,
11545 property_capacity_input: u32,
11546 property_count_output: *mut u32,
11547 properties: *mut ExtensionProperties,
11548 ) -> Result;
11549 #[doc = "See [xrCreateInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateInstance)"]
11550 pub type CreateInstance = unsafe extern "system" fn(
11551 create_info: *const InstanceCreateInfo,
11552 instance: *mut Instance,
11553 ) -> Result;
11554 #[doc = "See [xrDestroyInstance](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyInstance)"]
11555 pub type DestroyInstance = unsafe extern "system" fn(instance: Instance) -> Result;
11556 #[doc = "See [xrResultToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrResultToString)"]
11557 pub type ResultToString =
11558 unsafe extern "system" fn(instance: Instance, value: Result, buffer: *mut c_char) -> Result;
11559 #[doc = "See [xrStructureTypeToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStructureTypeToString)"]
11560 pub type StructureTypeToString = unsafe extern "system" fn(
11561 instance: Instance,
11562 value: StructureType,
11563 buffer: *mut c_char,
11564 ) -> Result;
11565 #[doc = "See [xrGetInstanceProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInstanceProperties)"]
11566 pub type GetInstanceProperties = unsafe extern "system" fn(
11567 instance: Instance,
11568 instance_properties: *mut InstanceProperties,
11569 ) -> Result;
11570 #[doc = "See [xrGetSystem](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSystem)"]
11571 pub type GetSystem = unsafe extern "system" fn(
11572 instance: Instance,
11573 get_info: *const SystemGetInfo,
11574 system_id: *mut SystemId,
11575 ) -> Result;
11576 #[doc = "See [xrGetSystemProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSystemProperties)"]
11577 pub type GetSystemProperties = unsafe extern "system" fn(
11578 instance: Instance,
11579 system_id: SystemId,
11580 properties: *mut SystemProperties,
11581 ) -> Result;
11582 #[doc = "See [xrCreateSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSession)"]
11583 pub type CreateSession = unsafe extern "system" fn(
11584 instance: Instance,
11585 create_info: *const SessionCreateInfo,
11586 session: *mut Session,
11587 ) -> Result;
11588 #[doc = "See [xrDestroySession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySession)"]
11589 pub type DestroySession = unsafe extern "system" fn(session: Session) -> Result;
11590 #[doc = "See [xrDestroySpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpace)"]
11591 pub type DestroySpace = unsafe extern "system" fn(space: Space) -> Result;
11592 #[doc = "See [xrEnumerateSwapchainFormats](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSwapchainFormats)"]
11593 pub type EnumerateSwapchainFormats = unsafe extern "system" fn(
11594 session: Session,
11595 format_capacity_input: u32,
11596 format_count_output: *mut u32,
11597 formats: *mut i64,
11598 ) -> Result;
11599 #[doc = "See [xrCreateSwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSwapchain)"]
11600 pub type CreateSwapchain = unsafe extern "system" fn(
11601 session: Session,
11602 create_info: *const SwapchainCreateInfo,
11603 swapchain: *mut Swapchain,
11604 ) -> Result;
11605 #[doc = "See [xrDestroySwapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySwapchain)"]
11606 pub type DestroySwapchain = unsafe extern "system" fn(swapchain: Swapchain) -> Result;
11607 #[doc = "See [xrEnumerateSwapchainImages](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSwapchainImages)"]
11608 pub type EnumerateSwapchainImages = unsafe extern "system" fn(
11609 swapchain: Swapchain,
11610 image_capacity_input: u32,
11611 image_count_output: *mut u32,
11612 images: *mut SwapchainImageBaseHeader,
11613 ) -> Result;
11614 #[doc = "See [xrAcquireSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAcquireSwapchainImage)"]
11615 pub type AcquireSwapchainImage = unsafe extern "system" fn(
11616 swapchain: Swapchain,
11617 acquire_info: *const SwapchainImageAcquireInfo,
11618 index: *mut u32,
11619 ) -> Result;
11620 #[doc = "See [xrWaitSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrWaitSwapchainImage)"]
11621 pub type WaitSwapchainImage = unsafe extern "system" fn(
11622 swapchain: Swapchain,
11623 wait_info: *const SwapchainImageWaitInfo,
11624 ) -> Result;
11625 #[doc = "See [xrReleaseSwapchainImage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrReleaseSwapchainImage)"]
11626 pub type ReleaseSwapchainImage = unsafe extern "system" fn(
11627 swapchain: Swapchain,
11628 release_info: *const SwapchainImageReleaseInfo,
11629 ) -> Result;
11630 #[doc = "See [xrBeginSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginSession)"]
11631 pub type BeginSession =
11632 unsafe extern "system" fn(session: Session, begin_info: *const SessionBeginInfo) -> Result;
11633 #[doc = "See [xrEndSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEndSession)"]
11634 pub type EndSession = unsafe extern "system" fn(session: Session) -> Result;
11635 #[doc = "See [xrRequestExitSession](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestExitSession)"]
11636 pub type RequestExitSession = unsafe extern "system" fn(session: Session) -> Result;
11637 #[doc = "See [xrEnumerateReferenceSpaces](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateReferenceSpaces)"]
11638 pub type EnumerateReferenceSpaces = unsafe extern "system" fn(
11639 session: Session,
11640 space_capacity_input: u32,
11641 space_count_output: *mut u32,
11642 spaces: *mut ReferenceSpaceType,
11643 ) -> Result;
11644 #[doc = "See [xrCreateReferenceSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateReferenceSpace)"]
11645 pub type CreateReferenceSpace = unsafe extern "system" fn(
11646 session: Session,
11647 create_info: *const ReferenceSpaceCreateInfo,
11648 space: *mut Space,
11649 ) -> Result;
11650 #[doc = "See [xrCreateActionSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateActionSpace)"]
11651 pub type CreateActionSpace = unsafe extern "system" fn(
11652 session: Session,
11653 create_info: *const ActionSpaceCreateInfo,
11654 space: *mut Space,
11655 ) -> Result;
11656 #[doc = "See [xrLocateSpace](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpace)"]
11657 pub type LocateSpace = unsafe extern "system" fn(
11658 space: Space,
11659 base_space: Space,
11660 time: Time,
11661 location: *mut SpaceLocation,
11662 ) -> Result;
11663 #[doc = "See [xrEnumerateViewConfigurations](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViewConfigurations)"]
11664 pub type EnumerateViewConfigurations = unsafe extern "system" fn(
11665 instance: Instance,
11666 system_id: SystemId,
11667 view_configuration_type_capacity_input: u32,
11668 view_configuration_type_count_output: *mut u32,
11669 view_configuration_types: *mut ViewConfigurationType,
11670 ) -> Result;
11671 #[doc = "See [xrEnumerateEnvironmentBlendModes](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateEnvironmentBlendModes)"]
11672 pub type EnumerateEnvironmentBlendModes = unsafe extern "system" fn(
11673 instance: Instance,
11674 system_id: SystemId,
11675 view_configuration_type: ViewConfigurationType,
11676 environment_blend_mode_capacity_input: u32,
11677 environment_blend_mode_count_output: *mut u32,
11678 environment_blend_modes: *mut EnvironmentBlendMode,
11679 ) -> Result;
11680 #[doc = "See [xrGetViewConfigurationProperties](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetViewConfigurationProperties)"]
11681 pub type GetViewConfigurationProperties = unsafe extern "system" fn(
11682 instance: Instance,
11683 system_id: SystemId,
11684 view_configuration_type: ViewConfigurationType,
11685 configuration_properties: *mut ViewConfigurationProperties,
11686 ) -> Result;
11687 #[doc = "See [xrEnumerateViewConfigurationViews](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViewConfigurationViews)"]
11688 pub type EnumerateViewConfigurationViews = unsafe extern "system" fn(
11689 instance: Instance,
11690 system_id: SystemId,
11691 view_configuration_type: ViewConfigurationType,
11692 view_capacity_input: u32,
11693 view_count_output: *mut u32,
11694 views: *mut ViewConfigurationView,
11695 ) -> Result;
11696 #[doc = "See [xrBeginFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginFrame)"]
11697 pub type BeginFrame = unsafe extern "system" fn(
11698 session: Session,
11699 frame_begin_info: *const FrameBeginInfo,
11700 ) -> Result;
11701 #[doc = "See [xrLocateViews](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateViews)"]
11702 pub type LocateViews = unsafe extern "system" fn(
11703 session: Session,
11704 view_locate_info: *const ViewLocateInfo,
11705 view_state: *mut ViewState,
11706 view_capacity_input: u32,
11707 view_count_output: *mut u32,
11708 views: *mut View,
11709 ) -> Result;
11710 #[doc = "See [xrEndFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEndFrame)"]
11711 pub type EndFrame =
11712 unsafe extern "system" fn(session: Session, frame_end_info: *const FrameEndInfo) -> Result;
11713 #[doc = "See [xrWaitFrame](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrWaitFrame)"]
11714 pub type WaitFrame = unsafe extern "system" fn(
11715 session: Session,
11716 frame_wait_info: *const FrameWaitInfo,
11717 frame_state: *mut FrameState,
11718 ) -> Result;
11719 #[doc = "See [xrApplyHapticFeedback](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyHapticFeedback)"]
11720 pub type ApplyHapticFeedback = unsafe extern "system" fn(
11721 session: Session,
11722 haptic_action_info: *const HapticActionInfo,
11723 haptic_feedback: *const HapticBaseHeader,
11724 ) -> Result;
11725 #[doc = "See [xrStopHapticFeedback](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStopHapticFeedback)"]
11726 pub type StopHapticFeedback = unsafe extern "system" fn(
11727 session: Session,
11728 haptic_action_info: *const HapticActionInfo,
11729 ) -> Result;
11730 #[doc = "See [xrPollEvent](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPollEvent)"]
11731 pub type PollEvent =
11732 unsafe extern "system" fn(instance: Instance, event_data: *mut EventDataBuffer) -> Result;
11733 #[doc = "See [xrStringToPath](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStringToPath)"]
11734 pub type StringToPath = unsafe extern "system" fn(
11735 instance: Instance,
11736 path_string: *const c_char,
11737 path: *mut Path,
11738 ) -> Result;
11739 #[doc = "See [xrPathToString](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPathToString)"]
11740 pub type PathToString = unsafe extern "system" fn(
11741 instance: Instance,
11742 path: Path,
11743 buffer_capacity_input: u32,
11744 buffer_count_output: *mut u32,
11745 buffer: *mut c_char,
11746 ) -> Result;
11747 #[doc = "See [xrGetReferenceSpaceBoundsRect](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetReferenceSpaceBoundsRect)"]
11748 pub type GetReferenceSpaceBoundsRect = unsafe extern "system" fn(
11749 session: Session,
11750 reference_space_type: ReferenceSpaceType,
11751 bounds: *mut Extent2Df,
11752 ) -> Result;
11753 #[cfg(target_os = "android")]
11754 #[doc = "See [xrSetAndroidApplicationThreadKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetAndroidApplicationThreadKHR) - defined by [XR_KHR_android_thread_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_android_thread_settings)"]
11755 pub type SetAndroidApplicationThreadKHR = unsafe extern "system" fn(
11756 session: Session,
11757 thread_type: AndroidThreadTypeKHR,
11758 thread_id: u32,
11759 ) -> Result;
11760 #[cfg(target_os = "android")]
11761 #[doc = "See [xrCreateSwapchainAndroidSurfaceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSwapchainAndroidSurfaceKHR) - defined by [XR_KHR_android_surface_swapchain](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_android_surface_swapchain)"]
11762 pub type CreateSwapchainAndroidSurfaceKHR = unsafe extern "system" fn(
11763 session: Session,
11764 info: *const SwapchainCreateInfo,
11765 swapchain: *mut Swapchain,
11766 surface: *mut jobject,
11767 ) -> Result;
11768 #[doc = "See [xrGetActionStateBoolean](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateBoolean)"]
11769 pub type GetActionStateBoolean = unsafe extern "system" fn(
11770 session: Session,
11771 get_info: *const ActionStateGetInfo,
11772 state: *mut ActionStateBoolean,
11773 ) -> Result;
11774 #[doc = "See [xrGetActionStateFloat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateFloat)"]
11775 pub type GetActionStateFloat = unsafe extern "system" fn(
11776 session: Session,
11777 get_info: *const ActionStateGetInfo,
11778 state: *mut ActionStateFloat,
11779 ) -> Result;
11780 #[doc = "See [xrGetActionStateVector2f](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStateVector2f)"]
11781 pub type GetActionStateVector2f = unsafe extern "system" fn(
11782 session: Session,
11783 get_info: *const ActionStateGetInfo,
11784 state: *mut ActionStateVector2f,
11785 ) -> Result;
11786 #[doc = "See [xrGetActionStatePose](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetActionStatePose)"]
11787 pub type GetActionStatePose = unsafe extern "system" fn(
11788 session: Session,
11789 get_info: *const ActionStateGetInfo,
11790 state: *mut ActionStatePose,
11791 ) -> Result;
11792 #[doc = "See [xrCreateActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateActionSet)"]
11793 pub type CreateActionSet = unsafe extern "system" fn(
11794 instance: Instance,
11795 create_info: *const ActionSetCreateInfo,
11796 action_set: *mut ActionSet,
11797 ) -> Result;
11798 #[doc = "See [xrDestroyActionSet](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyActionSet)"]
11799 pub type DestroyActionSet = unsafe extern "system" fn(action_set: ActionSet) -> Result;
11800 #[doc = "See [xrCreateAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateAction)"]
11801 pub type CreateAction = unsafe extern "system" fn(
11802 action_set: ActionSet,
11803 create_info: *const ActionCreateInfo,
11804 action: *mut Action,
11805 ) -> Result;
11806 #[doc = "See [xrDestroyAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyAction)"]
11807 pub type DestroyAction = unsafe extern "system" fn(action: Action) -> Result;
11808 #[doc = "See [xrSuggestInteractionProfileBindings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSuggestInteractionProfileBindings)"]
11809 pub type SuggestInteractionProfileBindings = unsafe extern "system" fn(
11810 instance: Instance,
11811 suggested_bindings: *const InteractionProfileSuggestedBinding,
11812 ) -> Result;
11813 #[doc = "See [xrAttachSessionActionSets](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAttachSessionActionSets)"]
11814 pub type AttachSessionActionSets = unsafe extern "system" fn(
11815 session: Session,
11816 attach_info: *const SessionActionSetsAttachInfo,
11817 ) -> Result;
11818 #[doc = "See [xrGetCurrentInteractionProfile](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetCurrentInteractionProfile)"]
11819 pub type GetCurrentInteractionProfile = unsafe extern "system" fn(
11820 session: Session,
11821 top_level_user_path: Path,
11822 interaction_profile: *mut InteractionProfileState,
11823 ) -> Result;
11824 #[doc = "See [xrSyncActions](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSyncActions)"]
11825 pub type SyncActions =
11826 unsafe extern "system" fn(session: Session, sync_info: *const ActionsSyncInfo) -> Result;
11827 #[doc = "See [xrEnumerateBoundSourcesForAction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateBoundSourcesForAction)"]
11828 pub type EnumerateBoundSourcesForAction = unsafe extern "system" fn(
11829 session: Session,
11830 enumerate_info: *const BoundSourcesForActionEnumerateInfo,
11831 source_capacity_input: u32,
11832 source_count_output: *mut u32,
11833 sources: *mut Path,
11834 ) -> Result;
11835 #[doc = "See [xrGetInputSourceLocalizedName](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetInputSourceLocalizedName)"]
11836 pub type GetInputSourceLocalizedName = unsafe extern "system" fn(
11837 session: Session,
11838 get_info: *const InputSourceLocalizedNameGetInfo,
11839 buffer_capacity_input: u32,
11840 buffer_count_output: *mut u32,
11841 buffer: *mut c_char,
11842 ) -> Result;
11843 #[doc = "See [xrGetVulkanInstanceExtensionsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanInstanceExtensionsKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11844 pub type GetVulkanInstanceExtensionsKHR = unsafe extern "system" fn(
11845 instance: Instance,
11846 system_id: SystemId,
11847 buffer_capacity_input: u32,
11848 buffer_count_output: *mut u32,
11849 buffer: *mut c_char,
11850 ) -> Result;
11851 #[doc = "See [xrGetVulkanDeviceExtensionsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanDeviceExtensionsKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11852 pub type GetVulkanDeviceExtensionsKHR = unsafe extern "system" fn(
11853 instance: Instance,
11854 system_id: SystemId,
11855 buffer_capacity_input: u32,
11856 buffer_count_output: *mut u32,
11857 buffer: *mut c_char,
11858 ) -> Result;
11859 #[doc = "See [xrGetVulkanGraphicsDeviceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsDeviceKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11860 pub type GetVulkanGraphicsDeviceKHR = unsafe extern "system" fn(
11861 instance: Instance,
11862 system_id: SystemId,
11863 vk_instance: VkInstance,
11864 vk_physical_device: *mut VkPhysicalDevice,
11865 ) -> Result;
11866 #[doc = "See [xrGetOpenGLGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetOpenGLGraphicsRequirementsKHR) - defined by [XR_KHR_opengl_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_enable)"]
11867 pub type GetOpenGLGraphicsRequirementsKHR = unsafe extern "system" fn(
11868 instance: Instance,
11869 system_id: SystemId,
11870 graphics_requirements: *mut GraphicsRequirementsOpenGLKHR,
11871 ) -> Result;
11872 #[doc = "See [xrGetOpenGLESGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetOpenGLESGraphicsRequirementsKHR) - defined by [XR_KHR_opengl_es_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_opengl_es_enable)"]
11873 pub type GetOpenGLESGraphicsRequirementsKHR = unsafe extern "system" fn(
11874 instance: Instance,
11875 system_id: SystemId,
11876 graphics_requirements: *mut GraphicsRequirementsOpenGLESKHR,
11877 ) -> Result;
11878 #[doc = "See [xrGetVulkanGraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsRequirementsKHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
11879 pub type GetVulkanGraphicsRequirementsKHR = unsafe extern "system" fn(
11880 instance: Instance,
11881 system_id: SystemId,
11882 graphics_requirements: *mut GraphicsRequirementsVulkanKHR,
11883 ) -> Result;
11884 #[cfg(windows)]
11885 #[doc = "See [xrGetD3D11GraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetD3D11GraphicsRequirementsKHR) - defined by [XR_KHR_D3D11_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D11_enable)"]
11886 pub type GetD3D11GraphicsRequirementsKHR = unsafe extern "system" fn(
11887 instance: Instance,
11888 system_id: SystemId,
11889 graphics_requirements: *mut GraphicsRequirementsD3D11KHR,
11890 ) -> Result;
11891 #[cfg(windows)]
11892 #[doc = "See [xrGetD3D12GraphicsRequirementsKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetD3D12GraphicsRequirementsKHR) - defined by [XR_KHR_D3D12_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_D3D12_enable)"]
11893 pub type GetD3D12GraphicsRequirementsKHR = unsafe extern "system" fn(
11894 instance: Instance,
11895 system_id: SystemId,
11896 graphics_requirements: *mut GraphicsRequirementsD3D12KHR,
11897 ) -> Result;
11898 #[doc = "See [xrPerfSettingsSetPerformanceLevelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPerfSettingsSetPerformanceLevelEXT) - defined by [XR_EXT_performance_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_performance_settings)"]
11899 pub type PerfSettingsSetPerformanceLevelEXT = unsafe extern "system" fn(
11900 session: Session,
11901 domain: PerfSettingsDomainEXT,
11902 level: PerfSettingsLevelEXT,
11903 ) -> Result;
11904 #[doc = "See [xrThermalGetTemperatureTrendEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrThermalGetTemperatureTrendEXT) - defined by [XR_EXT_thermal_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_thermal_query)"]
11905 pub type ThermalGetTemperatureTrendEXT = unsafe extern "system" fn(
11906 session: Session,
11907 domain: PerfSettingsDomainEXT,
11908 notification_level: *mut PerfSettingsNotificationLevelEXT,
11909 temp_headroom: *mut f32,
11910 temp_slope: *mut f32,
11911 ) -> Result;
11912 #[doc = "See [xrSetDebugUtilsObjectNameEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetDebugUtilsObjectNameEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11913 pub type SetDebugUtilsObjectNameEXT = unsafe extern "system" fn(
11914 instance: Instance,
11915 name_info: *const DebugUtilsObjectNameInfoEXT,
11916 ) -> Result;
11917 #[doc = "See [xrCreateDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateDebugUtilsMessengerEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11918 pub type CreateDebugUtilsMessengerEXT = unsafe extern "system" fn(
11919 instance: Instance,
11920 create_info: *const DebugUtilsMessengerCreateInfoEXT,
11921 messenger: *mut DebugUtilsMessengerEXT,
11922 ) -> Result;
11923 #[doc = "See [xrDestroyDebugUtilsMessengerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyDebugUtilsMessengerEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11924 pub type DestroyDebugUtilsMessengerEXT =
11925 unsafe extern "system" fn(messenger: DebugUtilsMessengerEXT) -> Result;
11926 #[doc = "See [xrSubmitDebugUtilsMessageEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSubmitDebugUtilsMessageEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11927 pub type SubmitDebugUtilsMessageEXT = unsafe extern "system" fn(
11928 instance: Instance,
11929 message_severity: DebugUtilsMessageSeverityFlagsEXT,
11930 message_types: DebugUtilsMessageTypeFlagsEXT,
11931 callback_data: *const DebugUtilsMessengerCallbackDataEXT,
11932 ) -> Result;
11933 #[doc = "See [xrSessionBeginDebugUtilsLabelRegionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSessionBeginDebugUtilsLabelRegionEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11934 pub type SessionBeginDebugUtilsLabelRegionEXT = unsafe extern "system" fn(
11935 session: Session,
11936 label_info: *const DebugUtilsLabelEXT,
11937 ) -> Result;
11938 #[doc = "See [xrSessionEndDebugUtilsLabelRegionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSessionEndDebugUtilsLabelRegionEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11939 pub type SessionEndDebugUtilsLabelRegionEXT =
11940 unsafe extern "system" fn(session: Session) -> Result;
11941 #[doc = "See [xrSessionInsertDebugUtilsLabelEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSessionInsertDebugUtilsLabelEXT) - defined by [XR_EXT_debug_utils](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_debug_utils)"]
11942 pub type SessionInsertDebugUtilsLabelEXT = unsafe extern "system" fn(
11943 session: Session,
11944 label_info: *const DebugUtilsLabelEXT,
11945 ) -> Result;
11946 #[cfg(windows)]
11947 #[doc = "See [xrConvertTimeToWin32PerformanceCounterKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertTimeToWin32PerformanceCounterKHR) - defined by [XR_KHR_win32_convert_performance_counter_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_win32_convert_performance_counter_time)"]
11948 pub type ConvertTimeToWin32PerformanceCounterKHR = unsafe extern "system" fn(
11949 instance: Instance,
11950 time: Time,
11951 performance_counter: *mut LARGE_INTEGER,
11952 ) -> Result;
11953 #[cfg(windows)]
11954 #[doc = "See [xrConvertWin32PerformanceCounterToTimeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertWin32PerformanceCounterToTimeKHR) - defined by [XR_KHR_win32_convert_performance_counter_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_win32_convert_performance_counter_time)"]
11955 pub type ConvertWin32PerformanceCounterToTimeKHR = unsafe extern "system" fn(
11956 instance: Instance,
11957 performance_counter: *const LARGE_INTEGER,
11958 time: *mut Time,
11959 ) -> Result;
11960 #[doc = "See [xrCreateVulkanInstanceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVulkanInstanceKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
11961 pub type CreateVulkanInstanceKHR = unsafe extern "system" fn(
11962 instance: Instance,
11963 create_info: *const VulkanInstanceCreateInfoKHR,
11964 vulkan_instance: *mut VkInstance,
11965 vulkan_result: *mut VkResult,
11966 ) -> Result;
11967 #[doc = "See [xrCreateVulkanDeviceKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVulkanDeviceKHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
11968 pub type CreateVulkanDeviceKHR = unsafe extern "system" fn(
11969 instance: Instance,
11970 create_info: *const VulkanDeviceCreateInfoKHR,
11971 vulkan_device: *mut VkDevice,
11972 vulkan_result: *mut VkResult,
11973 ) -> Result;
11974 #[doc = "See [xrGetVulkanGraphicsDevice2KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsDevice2KHR) - defined by [XR_KHR_vulkan_enable2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable2)"]
11975 pub type GetVulkanGraphicsDevice2KHR = unsafe extern "system" fn(
11976 instance: Instance,
11977 get_info: *const VulkanGraphicsDeviceGetInfoKHR,
11978 vulkan_physical_device: *mut VkPhysicalDevice,
11979 ) -> Result;
11980 #[doc = "See [xrConvertTimeToTimespecTimeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertTimeToTimespecTimeKHR) - defined by [XR_KHR_convert_timespec_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_convert_timespec_time)"]
11981 pub type ConvertTimeToTimespecTimeKHR = unsafe extern "system" fn(
11982 instance: Instance,
11983 time: Time,
11984 timespec_time: *mut timespec,
11985 ) -> Result;
11986 #[doc = "See [xrConvertTimespecTimeToTimeKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrConvertTimespecTimeToTimeKHR) - defined by [XR_KHR_convert_timespec_time](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_convert_timespec_time)"]
11987 pub type ConvertTimespecTimeToTimeKHR = unsafe extern "system" fn(
11988 instance: Instance,
11989 timespec_time: *const timespec,
11990 time: *mut Time,
11991 ) -> Result;
11992 #[doc = "See [xrGetVisibilityMaskKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVisibilityMaskKHR) - defined by [XR_KHR_visibility_mask](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_visibility_mask)"]
11993 pub type GetVisibilityMaskKHR = unsafe extern "system" fn(
11994 session: Session,
11995 view_configuration_type: ViewConfigurationType,
11996 view_index: u32,
11997 visibility_mask_type: VisibilityMaskTypeKHR,
11998 visibility_mask: *mut VisibilityMaskKHR,
11999 ) -> Result;
12000 #[doc = "See [xrCreateSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor)"]
12001 pub type CreateSpatialAnchorMSFT = unsafe extern "system" fn(
12002 session: Session,
12003 create_info: *const SpatialAnchorCreateInfoMSFT,
12004 anchor: *mut SpatialAnchorMSFT,
12005 ) -> Result;
12006 #[doc = "See [xrCreateSpatialAnchorSpaceMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorSpaceMSFT) - defined by [XR_MSFT_spatial_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor)"]
12007 pub type CreateSpatialAnchorSpaceMSFT = unsafe extern "system" fn(
12008 session: Session,
12009 create_info: *const SpatialAnchorSpaceCreateInfoMSFT,
12010 space: *mut Space,
12011 ) -> Result;
12012 #[doc = "See [xrDestroySpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor)"]
12013 pub type DestroySpatialAnchorMSFT =
12014 unsafe extern "system" fn(anchor: SpatialAnchorMSFT) -> Result;
12015 #[doc = "See [xrSetInputDeviceActiveEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceActiveEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12016 pub type SetInputDeviceActiveEXT = unsafe extern "system" fn(
12017 session: Session,
12018 interaction_profile: Path,
12019 top_level_path: Path,
12020 is_active: Bool32,
12021 ) -> Result;
12022 #[doc = "See [xrSetInputDeviceStateBoolEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceStateBoolEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12023 pub type SetInputDeviceStateBoolEXT = unsafe extern "system" fn(
12024 session: Session,
12025 top_level_path: Path,
12026 input_source_path: Path,
12027 state: Bool32,
12028 ) -> Result;
12029 #[doc = "See [xrSetInputDeviceStateFloatEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceStateFloatEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12030 pub type SetInputDeviceStateFloatEXT = unsafe extern "system" fn(
12031 session: Session,
12032 top_level_path: Path,
12033 input_source_path: Path,
12034 state: f32,
12035 ) -> Result;
12036 #[doc = "See [xrSetInputDeviceStateVector2fEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceStateVector2fEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12037 pub type SetInputDeviceStateVector2fEXT = unsafe extern "system" fn(
12038 session: Session,
12039 top_level_path: Path,
12040 input_source_path: Path,
12041 state: Vector2f,
12042 ) -> Result;
12043 #[doc = "See [xrSetInputDeviceLocationEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetInputDeviceLocationEXT) - defined by [XR_EXT_conformance_automation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_conformance_automation)"]
12044 pub type SetInputDeviceLocationEXT = unsafe extern "system" fn(
12045 session: Session,
12046 top_level_path: Path,
12047 input_source_path: Path,
12048 space: Space,
12049 pose: Posef,
12050 ) -> Result;
12051 #[doc = "See [xrInitializeLoaderKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrInitializeLoaderKHR) - defined by [XR_KHR_loader_init](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_loader_init)"]
12052 pub type InitializeLoaderKHR =
12053 unsafe extern "system" fn(loader_init_info: *const LoaderInitInfoBaseHeaderKHR) -> Result;
12054 #[doc = "See [xrCreateSpatialGraphNodeSpaceMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialGraphNodeSpaceMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12055 pub type CreateSpatialGraphNodeSpaceMSFT = unsafe extern "system" fn(
12056 session: Session,
12057 create_info: *const SpatialGraphNodeSpaceCreateInfoMSFT,
12058 space: *mut Space,
12059 ) -> Result;
12060 #[doc = "See [xrTryCreateSpatialGraphStaticNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTryCreateSpatialGraphStaticNodeBindingMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12061 pub type TryCreateSpatialGraphStaticNodeBindingMSFT = unsafe extern "system" fn(
12062 session: Session,
12063 create_info: *const SpatialGraphStaticNodeBindingCreateInfoMSFT,
12064 node_binding: *mut SpatialGraphNodeBindingMSFT,
12065 ) -> Result;
12066 #[doc = "See [xrDestroySpatialGraphNodeBindingMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpatialGraphNodeBindingMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12067 pub type DestroySpatialGraphNodeBindingMSFT =
12068 unsafe extern "system" fn(node_binding: SpatialGraphNodeBindingMSFT) -> Result;
12069 #[doc = "See [xrGetSpatialGraphNodeBindingPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpatialGraphNodeBindingPropertiesMSFT) - defined by [XR_MSFT_spatial_graph_bridge](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_graph_bridge)"]
12070 pub type GetSpatialGraphNodeBindingPropertiesMSFT = unsafe extern "system" fn(
12071 node_binding: SpatialGraphNodeBindingMSFT,
12072 get_info: *const SpatialGraphNodeBindingPropertiesGetInfoMSFT,
12073 properties: *mut SpatialGraphNodeBindingPropertiesMSFT,
12074 ) -> Result;
12075 #[doc = "See [xrCreateHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateHandTrackerEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
12076 pub type CreateHandTrackerEXT = unsafe extern "system" fn(
12077 session: Session,
12078 create_info: *const HandTrackerCreateInfoEXT,
12079 hand_tracker: *mut HandTrackerEXT,
12080 ) -> Result;
12081 #[doc = "See [xrDestroyHandTrackerEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyHandTrackerEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
12082 pub type DestroyHandTrackerEXT =
12083 unsafe extern "system" fn(hand_tracker: HandTrackerEXT) -> Result;
12084 #[doc = "See [xrLocateHandJointsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateHandJointsEXT) - defined by [XR_EXT_hand_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_tracking)"]
12085 pub type LocateHandJointsEXT = unsafe extern "system" fn(
12086 hand_tracker: HandTrackerEXT,
12087 locate_info: *const HandJointsLocateInfoEXT,
12088 locations: *mut HandJointLocationsEXT,
12089 ) -> Result;
12090 #[doc = "See [xrCreateFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFaceTrackerFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
12091 pub type CreateFaceTrackerFB = unsafe extern "system" fn(
12092 session: Session,
12093 create_info: *const FaceTrackerCreateInfoFB,
12094 face_tracker: *mut FaceTrackerFB,
12095 ) -> Result;
12096 #[doc = "See [xrDestroyFaceTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFaceTrackerFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
12097 pub type DestroyFaceTrackerFB =
12098 unsafe extern "system" fn(face_tracker: FaceTrackerFB) -> Result;
12099 #[doc = "See [xrGetFaceExpressionWeightsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFaceExpressionWeightsFB) - defined by [XR_FB_face_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking)"]
12100 pub type GetFaceExpressionWeightsFB = unsafe extern "system" fn(
12101 face_tracker: FaceTrackerFB,
12102 expression_info: *const FaceExpressionInfoFB,
12103 expression_weights: *mut FaceExpressionWeightsFB,
12104 ) -> Result;
12105 #[doc = "See [xrCreateFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFaceTracker2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
12106 pub type CreateFaceTracker2FB = unsafe extern "system" fn(
12107 session: Session,
12108 create_info: *const FaceTrackerCreateInfo2FB,
12109 face_tracker: *mut FaceTracker2FB,
12110 ) -> Result;
12111 #[doc = "See [xrDestroyFaceTracker2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFaceTracker2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
12112 pub type DestroyFaceTracker2FB =
12113 unsafe extern "system" fn(face_tracker: FaceTracker2FB) -> Result;
12114 #[doc = "See [xrGetFaceExpressionWeights2FB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFaceExpressionWeights2FB) - defined by [XR_FB_face_tracking2](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_face_tracking2)"]
12115 pub type GetFaceExpressionWeights2FB = unsafe extern "system" fn(
12116 face_tracker: FaceTracker2FB,
12117 expression_info: *const FaceExpressionInfo2FB,
12118 expression_weights: *mut FaceExpressionWeights2FB,
12119 ) -> Result;
12120 #[doc = "See [xrCreateBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateBodyTrackerFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12121 pub type CreateBodyTrackerFB = unsafe extern "system" fn(
12122 session: Session,
12123 create_info: *const BodyTrackerCreateInfoFB,
12124 body_tracker: *mut BodyTrackerFB,
12125 ) -> Result;
12126 #[doc = "See [xrDestroyBodyTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyBodyTrackerFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12127 pub type DestroyBodyTrackerFB =
12128 unsafe extern "system" fn(body_tracker: BodyTrackerFB) -> Result;
12129 #[doc = "See [xrLocateBodyJointsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateBodyJointsFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12130 pub type LocateBodyJointsFB = unsafe extern "system" fn(
12131 body_tracker: BodyTrackerFB,
12132 locate_info: *const BodyJointsLocateInfoFB,
12133 locations: *mut BodyJointLocationsFB,
12134 ) -> Result;
12135 #[doc = "See [xrGetBodySkeletonFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetBodySkeletonFB) - defined by [XR_FB_body_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_body_tracking)"]
12136 pub type GetBodySkeletonFB = unsafe extern "system" fn(
12137 body_tracker: BodyTrackerFB,
12138 skeleton: *mut BodySkeletonFB,
12139 ) -> Result;
12140 #[doc = "See [xrCreateEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateEyeTrackerFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
12141 pub type CreateEyeTrackerFB = unsafe extern "system" fn(
12142 session: Session,
12143 create_info: *const EyeTrackerCreateInfoFB,
12144 eye_tracker: *mut EyeTrackerFB,
12145 ) -> Result;
12146 #[doc = "See [xrDestroyEyeTrackerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyEyeTrackerFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
12147 pub type DestroyEyeTrackerFB = unsafe extern "system" fn(eye_tracker: EyeTrackerFB) -> Result;
12148 #[doc = "See [xrGetEyeGazesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetEyeGazesFB) - defined by [XR_FB_eye_tracking_social](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_eye_tracking_social)"]
12149 pub type GetEyeGazesFB = unsafe extern "system" fn(
12150 eye_tracker: EyeTrackerFB,
12151 gaze_info: *const EyeGazesInfoFB,
12152 eye_gazes: *mut EyeGazesFB,
12153 ) -> Result;
12154 #[doc = "See [xrCreateHandMeshSpaceMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateHandMeshSpaceMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
12155 pub type CreateHandMeshSpaceMSFT = unsafe extern "system" fn(
12156 hand_tracker: HandTrackerEXT,
12157 create_info: *const HandMeshSpaceCreateInfoMSFT,
12158 space: *mut Space,
12159 ) -> Result;
12160 #[doc = "See [xrUpdateHandMeshMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUpdateHandMeshMSFT) - defined by [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_hand_tracking_mesh)"]
12161 pub type UpdateHandMeshMSFT = unsafe extern "system" fn(
12162 hand_tracker: HandTrackerEXT,
12163 update_info: *const HandMeshUpdateInfoMSFT,
12164 hand_mesh: *mut HandMeshMSFT,
12165 ) -> Result;
12166 #[doc = "See [xrGetControllerModelKeyMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetControllerModelKeyMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12167 pub type GetControllerModelKeyMSFT = unsafe extern "system" fn(
12168 session: Session,
12169 top_level_user_path: Path,
12170 controller_model_key_state: *mut ControllerModelKeyStateMSFT,
12171 ) -> Result;
12172 #[doc = "See [xrLoadControllerModelMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLoadControllerModelMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12173 pub type LoadControllerModelMSFT = unsafe extern "system" fn(
12174 session: Session,
12175 model_key: ControllerModelKeyMSFT,
12176 buffer_capacity_input: u32,
12177 buffer_count_output: *mut u32,
12178 buffer: *mut u8,
12179 ) -> Result;
12180 #[doc = "See [xrGetControllerModelPropertiesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetControllerModelPropertiesMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12181 pub type GetControllerModelPropertiesMSFT = unsafe extern "system" fn(
12182 session: Session,
12183 model_key: ControllerModelKeyMSFT,
12184 properties: *mut ControllerModelPropertiesMSFT,
12185 ) -> Result;
12186 #[doc = "See [xrGetControllerModelStateMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetControllerModelStateMSFT) - defined by [XR_MSFT_controller_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_controller_model)"]
12187 pub type GetControllerModelStateMSFT = unsafe extern "system" fn(
12188 session: Session,
12189 model_key: ControllerModelKeyMSFT,
12190 state: *mut ControllerModelStateMSFT,
12191 ) -> Result;
12192 #[doc = "See [xrEnumerateDisplayRefreshRatesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateDisplayRefreshRatesFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
12193 pub type EnumerateDisplayRefreshRatesFB = unsafe extern "system" fn(
12194 session: Session,
12195 display_refresh_rate_capacity_input: u32,
12196 display_refresh_rate_count_output: *mut u32,
12197 display_refresh_rates: *mut f32,
12198 ) -> Result;
12199 #[doc = "See [xrGetDisplayRefreshRateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetDisplayRefreshRateFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
12200 pub type GetDisplayRefreshRateFB =
12201 unsafe extern "system" fn(session: Session, display_refresh_rate: *mut f32) -> Result;
12202 #[doc = "See [xrRequestDisplayRefreshRateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestDisplayRefreshRateFB) - defined by [XR_FB_display_refresh_rate](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_display_refresh_rate)"]
12203 pub type RequestDisplayRefreshRateFB =
12204 unsafe extern "system" fn(session: Session, display_refresh_rate: f32) -> Result;
12205 #[cfg(windows)]
12206 #[doc = "See [xrCreateSpatialAnchorFromPerceptionAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorFromPerceptionAnchorMSFT) - defined by [XR_MSFT_perception_anchor_interop](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_perception_anchor_interop)"]
12207 pub type CreateSpatialAnchorFromPerceptionAnchorMSFT = unsafe extern "system" fn(
12208 session: Session,
12209 perception_anchor: *mut IUnknown,
12210 anchor: *mut SpatialAnchorMSFT,
12211 ) -> Result;
12212 #[cfg(windows)]
12213 #[doc = "See [xrTryGetPerceptionAnchorFromSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTryGetPerceptionAnchorFromSpatialAnchorMSFT) - defined by [XR_MSFT_perception_anchor_interop](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_perception_anchor_interop)"]
12214 pub type TryGetPerceptionAnchorFromSpatialAnchorMSFT = unsafe extern "system" fn(
12215 session: Session,
12216 anchor: SpatialAnchorMSFT,
12217 perception_anchor: *mut *mut IUnknown,
12218 ) -> Result;
12219 #[doc = "See [xrUpdateSwapchainFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUpdateSwapchainFB) - defined by [XR_FB_swapchain_update_state](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state)"]
12220 pub type UpdateSwapchainFB = unsafe extern "system" fn(
12221 swapchain: Swapchain,
12222 state: *const SwapchainStateBaseHeaderFB,
12223 ) -> Result;
12224 #[doc = "See [xrGetSwapchainStateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSwapchainStateFB) - defined by [XR_FB_swapchain_update_state](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_swapchain_update_state)"]
12225 pub type GetSwapchainStateFB = unsafe extern "system" fn(
12226 swapchain: Swapchain,
12227 state: *mut SwapchainStateBaseHeaderFB,
12228 ) -> Result;
12229 #[doc = "See [xrEnumerateColorSpacesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateColorSpacesFB) - defined by [XR_FB_color_space](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_color_space)"]
12230 pub type EnumerateColorSpacesFB = unsafe extern "system" fn(
12231 session: Session,
12232 color_space_capacity_input: u32,
12233 color_space_count_output: *mut u32,
12234 color_spaces: *mut ColorSpaceFB,
12235 ) -> Result;
12236 #[doc = "See [xrSetColorSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetColorSpaceFB) - defined by [XR_FB_color_space](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_color_space)"]
12237 pub type SetColorSpaceFB =
12238 unsafe extern "system" fn(session: Session, color_space: ColorSpaceFB) -> Result;
12239 #[doc = "See [xrCreateFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFoveationProfileFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
12240 pub type CreateFoveationProfileFB = unsafe extern "system" fn(
12241 session: Session,
12242 create_info: *const FoveationProfileCreateInfoFB,
12243 profile: *mut FoveationProfileFB,
12244 ) -> Result;
12245 #[doc = "See [xrDestroyFoveationProfileFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFoveationProfileFB) - defined by [XR_FB_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_foveation)"]
12246 pub type DestroyFoveationProfileFB =
12247 unsafe extern "system" fn(profile: FoveationProfileFB) -> Result;
12248 #[doc = "See [xrGetFoveationEyeTrackedStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFoveationEyeTrackedStateMETA) - defined by [XR_META_foveation_eye_tracked](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_foveation_eye_tracked)"]
12249 pub type GetFoveationEyeTrackedStateMETA = unsafe extern "system" fn(
12250 session: Session,
12251 foveation_state: *mut FoveationEyeTrackedStateMETA,
12252 ) -> Result;
12253 #[doc = "See [xrGetHandMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetHandMeshFB) - defined by [XR_FB_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_hand_tracking_mesh)"]
12254 pub type GetHandMeshFB = unsafe extern "system" fn(
12255 hand_tracker: HandTrackerEXT,
12256 mesh: *mut HandTrackingMeshFB,
12257 ) -> Result;
12258 #[doc = "See [xrEnumerateRenderModelPathsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateRenderModelPathsFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
12259 pub type EnumerateRenderModelPathsFB = unsafe extern "system" fn(
12260 session: Session,
12261 path_capacity_input: u32,
12262 path_count_output: *mut u32,
12263 paths: *mut RenderModelPathInfoFB,
12264 ) -> Result;
12265 #[doc = "See [xrGetRenderModelPropertiesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetRenderModelPropertiesFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
12266 pub type GetRenderModelPropertiesFB = unsafe extern "system" fn(
12267 session: Session,
12268 path: Path,
12269 properties: *mut RenderModelPropertiesFB,
12270 ) -> Result;
12271 #[doc = "See [xrLoadRenderModelFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLoadRenderModelFB) - defined by [XR_FB_render_model](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_render_model)"]
12272 pub type LoadRenderModelFB = unsafe extern "system" fn(
12273 session: Session,
12274 info: *const RenderModelLoadInfoFB,
12275 buffer: *mut RenderModelBufferFB,
12276 ) -> Result;
12277 #[doc = "See [xrQuerySystemTrackedKeyboardFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQuerySystemTrackedKeyboardFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
12278 pub type QuerySystemTrackedKeyboardFB = unsafe extern "system" fn(
12279 session: Session,
12280 query_info: *const KeyboardTrackingQueryFB,
12281 keyboard: *mut KeyboardTrackingDescriptionFB,
12282 ) -> Result;
12283 #[doc = "See [xrCreateKeyboardSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateKeyboardSpaceFB) - defined by [XR_FB_keyboard_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_keyboard_tracking)"]
12284 pub type CreateKeyboardSpaceFB = unsafe extern "system" fn(
12285 session: Session,
12286 create_info: *const KeyboardSpaceCreateInfoFB,
12287 keyboard_space: *mut Space,
12288 ) -> Result;
12289 #[doc = "See [xrSetEnvironmentDepthEstimationVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetEnvironmentDepthEstimationVARJO) - defined by [XR_VARJO_environment_depth_estimation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_environment_depth_estimation)"]
12290 pub type SetEnvironmentDepthEstimationVARJO =
12291 unsafe extern "system" fn(session: Session, enabled: Bool32) -> Result;
12292 #[doc = "See [xrEnumerateReprojectionModesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateReprojectionModesMSFT) - defined by [XR_MSFT_composition_layer_reprojection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_composition_layer_reprojection)"]
12293 pub type EnumerateReprojectionModesMSFT = unsafe extern "system" fn(
12294 instance: Instance,
12295 system_id: SystemId,
12296 view_configuration_type: ViewConfigurationType,
12297 mode_capacity_input: u32,
12298 mode_count_output: *mut u32,
12299 modes: *mut ReprojectionModeMSFT,
12300 ) -> Result;
12301 #[doc = "See [xrGetAudioOutputDeviceGuidOculus](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetAudioOutputDeviceGuidOculus) - defined by [XR_OCULUS_audio_device_guid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_audio_device_guid)"]
12302 pub type GetAudioOutputDeviceGuidOculus =
12303 unsafe extern "system" fn(instance: Instance, buffer: *mut wchar_t) -> Result;
12304 #[doc = "See [xrGetAudioInputDeviceGuidOculus](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetAudioInputDeviceGuidOculus) - defined by [XR_OCULUS_audio_device_guid](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_audio_device_guid)"]
12305 pub type GetAudioInputDeviceGuidOculus =
12306 unsafe extern "system" fn(instance: Instance, buffer: *mut wchar_t) -> Result;
12307 #[doc = "See [xrCreateSpatialAnchorFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12308 pub type CreateSpatialAnchorFB = unsafe extern "system" fn(
12309 session: Session,
12310 info: *const SpatialAnchorCreateInfoFB,
12311 request_id: *mut AsyncRequestIdFB,
12312 ) -> Result;
12313 #[doc = "See [xrGetSpaceUuidFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceUuidFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12314 pub type GetSpaceUuidFB = unsafe extern "system" fn(space: Space, uuid: *mut UuidEXT) -> Result;
12315 #[doc = "See [xrEnumerateSpaceSupportedComponentsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateSpaceSupportedComponentsFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12316 pub type EnumerateSpaceSupportedComponentsFB = unsafe extern "system" fn(
12317 space: Space,
12318 component_type_capacity_input: u32,
12319 component_type_count_output: *mut u32,
12320 component_types: *mut SpaceComponentTypeFB,
12321 ) -> Result;
12322 #[doc = "See [xrSetSpaceComponentStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetSpaceComponentStatusFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12323 pub type SetSpaceComponentStatusFB = unsafe extern "system" fn(
12324 space: Space,
12325 info: *const SpaceComponentStatusSetInfoFB,
12326 request_id: *mut AsyncRequestIdFB,
12327 ) -> Result;
12328 #[doc = "See [xrGetSpaceComponentStatusFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceComponentStatusFB) - defined by [XR_FB_spatial_entity](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity)"]
12329 pub type GetSpaceComponentStatusFB = unsafe extern "system" fn(
12330 space: Space,
12331 component_type: SpaceComponentTypeFB,
12332 status: *mut SpaceComponentStatusFB,
12333 ) -> Result;
12334 #[doc = "See [xrCreateTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateTriangleMeshFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12335 pub type CreateTriangleMeshFB = unsafe extern "system" fn(
12336 session: Session,
12337 create_info: *const TriangleMeshCreateInfoFB,
12338 out_triangle_mesh: *mut TriangleMeshFB,
12339 ) -> Result;
12340 #[doc = "See [xrDestroyTriangleMeshFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyTriangleMeshFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12341 pub type DestroyTriangleMeshFB = unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12342 #[doc = "See [xrTriangleMeshGetVertexBufferFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshGetVertexBufferFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12343 pub type TriangleMeshGetVertexBufferFB = unsafe extern "system" fn(
12344 mesh: TriangleMeshFB,
12345 out_vertex_buffer: *mut *mut Vector3f,
12346 ) -> Result;
12347 #[doc = "See [xrTriangleMeshGetIndexBufferFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshGetIndexBufferFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12348 pub type TriangleMeshGetIndexBufferFB =
12349 unsafe extern "system" fn(mesh: TriangleMeshFB, out_index_buffer: *mut *mut u32) -> Result;
12350 #[doc = "See [xrTriangleMeshBeginUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshBeginUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12351 pub type TriangleMeshBeginUpdateFB = unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12352 #[doc = "See [xrTriangleMeshEndUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshEndUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12353 pub type TriangleMeshEndUpdateFB = unsafe extern "system" fn(
12354 mesh: TriangleMeshFB,
12355 vertex_count: u32,
12356 triangle_count: u32,
12357 ) -> Result;
12358 #[doc = "See [xrTriangleMeshBeginVertexBufferUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshBeginVertexBufferUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12359 pub type TriangleMeshBeginVertexBufferUpdateFB =
12360 unsafe extern "system" fn(mesh: TriangleMeshFB, out_vertex_count: *mut u32) -> Result;
12361 #[doc = "See [xrTriangleMeshEndVertexBufferUpdateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrTriangleMeshEndVertexBufferUpdateFB) - defined by [XR_FB_triangle_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_triangle_mesh)"]
12362 pub type TriangleMeshEndVertexBufferUpdateFB =
12363 unsafe extern "system" fn(mesh: TriangleMeshFB) -> Result;
12364 #[doc = "See [xrCreatePassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12365 pub type CreatePassthroughFB = unsafe extern "system" fn(
12366 session: Session,
12367 create_info: *const PassthroughCreateInfoFB,
12368 out_passthrough: *mut PassthroughFB,
12369 ) -> Result;
12370 #[doc = "See [xrDestroyPassthroughFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12371 pub type DestroyPassthroughFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12372 #[doc = "See [xrPassthroughStartFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughStartFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12373 pub type PassthroughStartFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12374 #[doc = "See [xrPassthroughPauseFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughPauseFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12375 pub type PassthroughPauseFB = unsafe extern "system" fn(passthrough: PassthroughFB) -> Result;
12376 #[doc = "See [xrCreatePassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughLayerFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12377 pub type CreatePassthroughLayerFB = unsafe extern "system" fn(
12378 session: Session,
12379 create_info: *const PassthroughLayerCreateInfoFB,
12380 out_layer: *mut PassthroughLayerFB,
12381 ) -> Result;
12382 #[doc = "See [xrDestroyPassthroughLayerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughLayerFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12383 pub type DestroyPassthroughLayerFB =
12384 unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12385 #[doc = "See [xrPassthroughLayerPauseFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerPauseFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12386 pub type PassthroughLayerPauseFB =
12387 unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12388 #[doc = "See [xrPassthroughLayerResumeFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerResumeFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12389 pub type PassthroughLayerResumeFB =
12390 unsafe extern "system" fn(layer: PassthroughLayerFB) -> Result;
12391 #[doc = "See [xrPassthroughLayerSetStyleFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerSetStyleFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12392 pub type PassthroughLayerSetStyleFB = unsafe extern "system" fn(
12393 layer: PassthroughLayerFB,
12394 style: *const PassthroughStyleFB,
12395 ) -> Result;
12396 #[doc = "See [xrCreateGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateGeometryInstanceFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12397 pub type CreateGeometryInstanceFB = unsafe extern "system" fn(
12398 session: Session,
12399 create_info: *const GeometryInstanceCreateInfoFB,
12400 out_geometry_instance: *mut GeometryInstanceFB,
12401 ) -> Result;
12402 #[doc = "See [xrDestroyGeometryInstanceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyGeometryInstanceFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12403 pub type DestroyGeometryInstanceFB =
12404 unsafe extern "system" fn(instance: GeometryInstanceFB) -> Result;
12405 #[doc = "See [xrGeometryInstanceSetTransformFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGeometryInstanceSetTransformFB) - defined by [XR_FB_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough)"]
12406 pub type GeometryInstanceSetTransformFB = unsafe extern "system" fn(
12407 instance: GeometryInstanceFB,
12408 transformation: *const GeometryInstanceTransformFB,
12409 ) -> Result;
12410 #[doc = "See [xrQuerySpacesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQuerySpacesFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
12411 pub type QuerySpacesFB = unsafe extern "system" fn(
12412 session: Session,
12413 info: *const SpaceQueryInfoBaseHeaderFB,
12414 request_id: *mut AsyncRequestIdFB,
12415 ) -> Result;
12416 #[doc = "See [xrRetrieveSpaceQueryResultsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRetrieveSpaceQueryResultsFB) - defined by [XR_FB_spatial_entity_query](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_query)"]
12417 pub type RetrieveSpaceQueryResultsFB = unsafe extern "system" fn(
12418 session: Session,
12419 request_id: AsyncRequestIdFB,
12420 results: *mut SpaceQueryResultsFB,
12421 ) -> Result;
12422 #[doc = "See [xrSaveSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSaveSpaceFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
12423 pub type SaveSpaceFB = unsafe extern "system" fn(
12424 session: Session,
12425 info: *const SpaceSaveInfoFB,
12426 request_id: *mut AsyncRequestIdFB,
12427 ) -> Result;
12428 #[doc = "See [xrEraseSpaceFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEraseSpaceFB) - defined by [XR_FB_spatial_entity_storage](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage)"]
12429 pub type EraseSpaceFB = unsafe extern "system" fn(
12430 session: Session,
12431 info: *const SpaceEraseInfoFB,
12432 request_id: *mut AsyncRequestIdFB,
12433 ) -> Result;
12434 #[doc = "See [xrSaveSpaceListFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSaveSpaceListFB) - defined by [XR_FB_spatial_entity_storage_batch](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_storage_batch)"]
12435 pub type SaveSpaceListFB = unsafe extern "system" fn(
12436 session: Session,
12437 info: *const SpaceListSaveInfoFB,
12438 request_id: *mut AsyncRequestIdFB,
12439 ) -> Result;
12440 #[doc = "See [xrShareSpacesFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrShareSpacesFB) - defined by [XR_FB_spatial_entity_sharing](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_sharing)"]
12441 pub type ShareSpacesFB = unsafe extern "system" fn(
12442 session: Session,
12443 info: *const SpaceShareInfoFB,
12444 request_id: *mut AsyncRequestIdFB,
12445 ) -> Result;
12446 #[doc = "See [xrGetSpaceContainerFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceContainerFB) - defined by [XR_FB_spatial_entity_container](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_container)"]
12447 pub type GetSpaceContainerFB = unsafe extern "system" fn(
12448 session: Session,
12449 space: Space,
12450 space_container_output: *mut SpaceContainerFB,
12451 ) -> Result;
12452 #[doc = "See [xrGetSpaceTriangleMeshMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceTriangleMeshMETA) - defined by [XR_META_spatial_entity_mesh](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_spatial_entity_mesh)"]
12453 pub type GetSpaceTriangleMeshMETA = unsafe extern "system" fn(
12454 space: Space,
12455 get_info: *const SpaceTriangleMeshGetInfoMETA,
12456 triangle_mesh_output: *mut SpaceTriangleMeshMETA,
12457 ) -> Result;
12458 #[doc = "See [xrGetSpaceBoundingBox2DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceBoundingBox2DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12459 pub type GetSpaceBoundingBox2DFB = unsafe extern "system" fn(
12460 session: Session,
12461 space: Space,
12462 bounding_box2_d_output: *mut Rect2Df,
12463 ) -> Result;
12464 #[doc = "See [xrGetSpaceBoundingBox3DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceBoundingBox3DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12465 pub type GetSpaceBoundingBox3DFB = unsafe extern "system" fn(
12466 session: Session,
12467 space: Space,
12468 bounding_box3_d_output: *mut Rect3DfFB,
12469 ) -> Result;
12470 #[doc = "See [xrGetSpaceSemanticLabelsFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceSemanticLabelsFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12471 pub type GetSpaceSemanticLabelsFB = unsafe extern "system" fn(
12472 session: Session,
12473 space: Space,
12474 semantic_labels_output: *mut SemanticLabelsFB,
12475 ) -> Result;
12476 #[doc = "See [xrGetSpaceBoundary2DFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceBoundary2DFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12477 pub type GetSpaceBoundary2DFB = unsafe extern "system" fn(
12478 session: Session,
12479 space: Space,
12480 boundary2_d_output: *mut Boundary2DFB,
12481 ) -> Result;
12482 #[doc = "See [xrGetSpaceRoomLayoutFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceRoomLayoutFB) - defined by [XR_FB_scene](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene)"]
12483 pub type GetSpaceRoomLayoutFB = unsafe extern "system" fn(
12484 session: Session,
12485 space: Space,
12486 room_layout_output: *mut RoomLayoutFB,
12487 ) -> Result;
12488 #[doc = "See [xrRequestSceneCaptureFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestSceneCaptureFB) - defined by [XR_FB_scene_capture](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_scene_capture)"]
12489 pub type RequestSceneCaptureFB = unsafe extern "system" fn(
12490 session: Session,
12491 info: *const SceneCaptureRequestInfoFB,
12492 request_id: *mut AsyncRequestIdFB,
12493 ) -> Result;
12494 #[doc = "See [xrPassthroughLayerSetKeyboardHandsIntensityFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPassthroughLayerSetKeyboardHandsIntensityFB) - defined by [XR_FB_passthrough_keyboard_hands](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_passthrough_keyboard_hands)"]
12495 pub type PassthroughLayerSetKeyboardHandsIntensityFB = unsafe extern "system" fn(
12496 layer: PassthroughLayerFB,
12497 intensity: *const PassthroughKeyboardHandsIntensityFB,
12498 ) -> Result;
12499 #[doc = "See [xrCreateSpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorStoreConnectionMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12500 pub type CreateSpatialAnchorStoreConnectionMSFT = unsafe extern "system" fn(
12501 session: Session,
12502 spatial_anchor_store: *mut SpatialAnchorStoreConnectionMSFT,
12503 ) -> Result;
12504 #[doc = "See [xrDestroySpatialAnchorStoreConnectionMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpatialAnchorStoreConnectionMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12505 pub type DestroySpatialAnchorStoreConnectionMSFT =
12506 unsafe extern "system" fn(spatial_anchor_store: SpatialAnchorStoreConnectionMSFT) -> Result;
12507 #[doc = "See [xrPersistSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPersistSpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12508 pub type PersistSpatialAnchorMSFT = unsafe extern "system" fn(
12509 spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12510 spatial_anchor_persistence_info: *const SpatialAnchorPersistenceInfoMSFT,
12511 ) -> Result;
12512 #[doc = "See [xrEnumeratePersistedSpatialAnchorNamesMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumeratePersistedSpatialAnchorNamesMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12513 pub type EnumeratePersistedSpatialAnchorNamesMSFT = unsafe extern "system" fn(
12514 spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12515 spatial_anchor_name_capacity_input: u32,
12516 spatial_anchor_name_count_output: *mut u32,
12517 spatial_anchor_names: *mut SpatialAnchorPersistenceNameMSFT,
12518 ) -> Result;
12519 #[doc = "See [xrCreateSpatialAnchorFromPersistedNameMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorFromPersistedNameMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12520 pub type CreateSpatialAnchorFromPersistedNameMSFT = unsafe extern "system" fn(
12521 session: Session,
12522 spatial_anchor_create_info: *const SpatialAnchorFromPersistedAnchorCreateInfoMSFT,
12523 spatial_anchor: *mut SpatialAnchorMSFT,
12524 ) -> Result;
12525 #[doc = "See [xrUnpersistSpatialAnchorMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUnpersistSpatialAnchorMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12526 pub type UnpersistSpatialAnchorMSFT = unsafe extern "system" fn(
12527 spatial_anchor_store: SpatialAnchorStoreConnectionMSFT,
12528 spatial_anchor_persistence_name: *const SpatialAnchorPersistenceNameMSFT,
12529 ) -> Result;
12530 #[doc = "See [xrClearSpatialAnchorStoreMSFT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrClearSpatialAnchorStoreMSFT) - defined by [XR_MSFT_spatial_anchor_persistence](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MSFT_spatial_anchor_persistence)"]
12531 pub type ClearSpatialAnchorStoreMSFT =
12532 unsafe extern "system" fn(spatial_anchor_store: SpatialAnchorStoreConnectionMSFT) -> Result;
12533 #[doc = "See [xrCreateFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateFacialTrackerHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
12534 pub type CreateFacialTrackerHTC = unsafe extern "system" fn(
12535 session: Session,
12536 create_info: *const FacialTrackerCreateInfoHTC,
12537 facial_tracker: *mut FacialTrackerHTC,
12538 ) -> Result;
12539 #[doc = "See [xrDestroyFacialTrackerHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyFacialTrackerHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
12540 pub type DestroyFacialTrackerHTC =
12541 unsafe extern "system" fn(facial_tracker: FacialTrackerHTC) -> Result;
12542 #[doc = "See [xrGetFacialExpressionsHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetFacialExpressionsHTC) - defined by [XR_HTC_facial_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_facial_tracking)"]
12543 pub type GetFacialExpressionsHTC = unsafe extern "system" fn(
12544 facial_tracker: FacialTrackerHTC,
12545 facial_expressions: *mut FacialExpressionsHTC,
12546 ) -> Result;
12547 #[doc = "See [xrCreatePassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
12548 pub type CreatePassthroughHTC = unsafe extern "system" fn(
12549 session: Session,
12550 create_info: *const PassthroughCreateInfoHTC,
12551 passthrough: *mut PassthroughHTC,
12552 ) -> Result;
12553 #[doc = "See [xrDestroyPassthroughHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughHTC) - defined by [XR_HTC_passthrough](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_passthrough)"]
12554 pub type DestroyPassthroughHTC =
12555 unsafe extern "system" fn(passthrough: PassthroughHTC) -> Result;
12556 #[doc = "See [xrCreateSpatialAnchorHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpatialAnchorHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
12557 pub type CreateSpatialAnchorHTC = unsafe extern "system" fn(
12558 session: Session,
12559 create_info: *const SpatialAnchorCreateInfoHTC,
12560 anchor: *mut Space,
12561 ) -> Result;
12562 #[doc = "See [xrGetSpatialAnchorNameHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpatialAnchorNameHTC) - defined by [XR_HTC_anchor](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_anchor)"]
12563 pub type GetSpatialAnchorNameHTC =
12564 unsafe extern "system" fn(anchor: Space, name: *mut SpatialAnchorNameHTC) -> Result;
12565 #[doc = "See [xrEnumerateViveTrackerPathsHTCX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateViveTrackerPathsHTCX) - defined by [XR_HTCX_vive_tracker_interaction](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTCX_vive_tracker_interaction)"]
12566 pub type EnumerateViveTrackerPathsHTCX = unsafe extern "system" fn(
12567 instance: Instance,
12568 path_capacity_input: u32,
12569 path_count_output: *mut u32,
12570 paths: *mut ViveTrackerPathsHTCX,
12571 ) -> Result;
12572 #[doc = "See [xrSetMarkerTrackingVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetMarkerTrackingVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12573 pub type SetMarkerTrackingVARJO =
12574 unsafe extern "system" fn(session: Session, enabled: Bool32) -> Result;
12575 #[doc = "See [xrSetMarkerTrackingTimeoutVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetMarkerTrackingTimeoutVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12576 pub type SetMarkerTrackingTimeoutVARJO =
12577 unsafe extern "system" fn(session: Session, marker_id: u64, timeout: Duration) -> Result;
12578 #[doc = "See [xrSetMarkerTrackingPredictionVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetMarkerTrackingPredictionVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12579 pub type SetMarkerTrackingPredictionVARJO =
12580 unsafe extern "system" fn(session: Session, marker_id: u64, enable: Bool32) -> Result;
12581 #[doc = "See [xrGetMarkerSizeVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerSizeVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12582 pub type GetMarkerSizeVARJO =
12583 unsafe extern "system" fn(session: Session, marker_id: u64, size: *mut Extent2Df) -> Result;
12584 #[doc = "See [xrCreateMarkerSpaceVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateMarkerSpaceVARJO) - defined by [XR_VARJO_marker_tracking](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_marker_tracking)"]
12585 pub type CreateMarkerSpaceVARJO = unsafe extern "system" fn(
12586 session: Session,
12587 create_info: *const MarkerSpaceCreateInfoVARJO,
12588 space: *mut Space,
12589 ) -> Result;
12590 #[doc = "See [xrSetDigitalLensControlALMALENCE](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetDigitalLensControlALMALENCE) - defined by [XR_ALMALENCE_digital_lens_control](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ALMALENCE_digital_lens_control)"]
12591 pub type SetDigitalLensControlALMALENCE = unsafe extern "system" fn(
12592 session: Session,
12593 digital_lens_control: *const DigitalLensControlALMALENCE,
12594 ) -> Result;
12595 #[doc = "See [xrSetViewOffsetVARJO](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetViewOffsetVARJO) - defined by [XR_VARJO_view_offset](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_VARJO_view_offset)"]
12596 pub type SetViewOffsetVARJO =
12597 unsafe extern "system" fn(session: Session, offset: f32) -> Result;
12598 #[doc = "See [xrEnumerateExternalCamerasOCULUS](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateExternalCamerasOCULUS) - defined by [XR_OCULUS_external_camera](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_OCULUS_external_camera)"]
12599 pub type EnumerateExternalCamerasOCULUS = unsafe extern "system" fn(
12600 session: Session,
12601 camera_capacity_input: u32,
12602 camera_count_output: *mut u32,
12603 cameras: *mut ExternalCameraOCULUS,
12604 ) -> Result;
12605 #[doc = "See [xrCreatePassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughColorLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
12606 pub type CreatePassthroughColorLutMETA = unsafe extern "system" fn(
12607 passthrough: PassthroughFB,
12608 create_info: *const PassthroughColorLutCreateInfoMETA,
12609 color_lut: *mut PassthroughColorLutMETA,
12610 ) -> Result;
12611 #[doc = "See [xrDestroyPassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughColorLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
12612 pub type DestroyPassthroughColorLutMETA =
12613 unsafe extern "system" fn(color_lut: PassthroughColorLutMETA) -> Result;
12614 #[doc = "See [xrUpdatePassthroughColorLutMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrUpdatePassthroughColorLutMETA) - defined by [XR_META_passthrough_color_lut](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_color_lut)"]
12615 pub type UpdatePassthroughColorLutMETA = unsafe extern "system" fn(
12616 color_lut: PassthroughColorLutMETA,
12617 update_info: *const PassthroughColorLutUpdateInfoMETA,
12618 ) -> Result;
12619 #[doc = "See [xrEnumeratePerformanceMetricsCounterPathsMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumeratePerformanceMetricsCounterPathsMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12620 pub type EnumeratePerformanceMetricsCounterPathsMETA = unsafe extern "system" fn(
12621 instance: Instance,
12622 counter_path_capacity_input: u32,
12623 counter_path_count_output: *mut u32,
12624 counter_paths: *mut Path,
12625 ) -> Result;
12626 #[doc = "See [xrSetPerformanceMetricsStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetPerformanceMetricsStateMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12627 pub type SetPerformanceMetricsStateMETA = unsafe extern "system" fn(
12628 session: Session,
12629 state: *const PerformanceMetricsStateMETA,
12630 ) -> Result;
12631 #[doc = "See [xrGetPerformanceMetricsStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPerformanceMetricsStateMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12632 pub type GetPerformanceMetricsStateMETA = unsafe extern "system" fn(
12633 session: Session,
12634 state: *mut PerformanceMetricsStateMETA,
12635 ) -> Result;
12636 #[doc = "See [xrQueryPerformanceMetricsCounterMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQueryPerformanceMetricsCounterMETA) - defined by [XR_META_performance_metrics](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_performance_metrics)"]
12637 pub type QueryPerformanceMetricsCounterMETA = unsafe extern "system" fn(
12638 session: Session,
12639 counter_path: Path,
12640 counter: *mut PerformanceMetricsCounterMETA,
12641 ) -> Result;
12642 #[doc = "See [xrGetPassthroughPreferencesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPassthroughPreferencesMETA) - defined by [XR_META_passthrough_preferences](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_passthrough_preferences)"]
12643 pub type GetPassthroughPreferencesMETA = unsafe extern "system" fn(
12644 session: Session,
12645 preferences: *mut PassthroughPreferencesMETA,
12646 ) -> Result;
12647 #[doc = "See [xrApplyFoveationHTC](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyFoveationHTC) - defined by [XR_HTC_foveation](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_foveation)"]
12648 pub type ApplyFoveationHTC = unsafe extern "system" fn(
12649 session: Session,
12650 apply_info: *const FoveationApplyInfoHTC,
12651 ) -> Result;
12652 #[doc = "See [xrCreateSpaceFromCoordinateFrameUIDML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpaceFromCoordinateFrameUIDML) - defined by [XR_ML_compat](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_compat)"]
12653 pub type CreateSpaceFromCoordinateFrameUIDML = unsafe extern "system" fn(
12654 session: Session,
12655 create_info: *const CoordinateSpaceCreateInfoML,
12656 space: *mut Space,
12657 ) -> Result;
12658 #[doc = "See [xrGetDeviceSampleRateFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetDeviceSampleRateFB) - defined by [XR_FB_haptic_pcm](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_haptic_pcm)"]
12659 pub type GetDeviceSampleRateFB = unsafe extern "system" fn(
12660 session: Session,
12661 haptic_action_info: *const HapticActionInfo,
12662 device_sample_rate: *mut DevicePcmSampleRateGetInfoFB,
12663 ) -> Result;
12664 #[doc = "See [xrSetTrackingOptimizationSettingsHintQCOM](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetTrackingOptimizationSettingsHintQCOM) - defined by [XR_QCOM_tracking_optimization_settings](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_QCOM_tracking_optimization_settings)"]
12665 pub type SetTrackingOptimizationSettingsHintQCOM = unsafe extern "system" fn(
12666 session: Session,
12667 domain: TrackingOptimizationSettingsDomainQCOM,
12668 hint: TrackingOptimizationSettingsHintQCOM,
12669 ) -> Result;
12670 #[doc = "See [xrCreateSpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateSpaceUserFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
12671 pub type CreateSpaceUserFB = unsafe extern "system" fn(
12672 session: Session,
12673 info: *const SpaceUserCreateInfoFB,
12674 user: *mut SpaceUserFB,
12675 ) -> Result;
12676 #[doc = "See [xrGetSpaceUserIdFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetSpaceUserIdFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
12677 pub type GetSpaceUserIdFB =
12678 unsafe extern "system" fn(user: SpaceUserFB, user_id: *mut SpaceUserIdFB) -> Result;
12679 #[doc = "See [xrDestroySpaceUserFB](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroySpaceUserFB) - defined by [XR_FB_spatial_entity_user](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_FB_spatial_entity_user)"]
12680 pub type DestroySpaceUserFB = unsafe extern "system" fn(user: SpaceUserFB) -> Result;
12681 #[doc = "See [xrGetRecommendedLayerResolutionMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetRecommendedLayerResolutionMETA) - defined by [XR_META_recommended_layer_resolution](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_recommended_layer_resolution)"]
12682 pub type GetRecommendedLayerResolutionMETA = unsafe extern "system" fn(
12683 session: Session,
12684 info: *const RecommendedLayerResolutionGetInfoMETA,
12685 resolution: *mut RecommendedLayerResolutionMETA,
12686 ) -> Result;
12687 #[doc = "See [xrApplyForceFeedbackCurlMNDX](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrApplyForceFeedbackCurlMNDX) - defined by [XR_MNDX_force_feedback_curl](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_MNDX_force_feedback_curl)"]
12688 pub type ApplyForceFeedbackCurlMNDX = unsafe extern "system" fn(
12689 hand_tracker: HandTrackerEXT,
12690 locations: *const ForceFeedbackCurlApplyLocationsMNDX,
12691 ) -> Result;
12692 #[doc = "See [xrCreatePlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreatePlaneDetectorEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12693 pub type CreatePlaneDetectorEXT = unsafe extern "system" fn(
12694 session: Session,
12695 create_info: *const PlaneDetectorCreateInfoEXT,
12696 plane_detector: *mut PlaneDetectorEXT,
12697 ) -> Result;
12698 #[doc = "See [xrDestroyPlaneDetectorEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPlaneDetectorEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12699 pub type DestroyPlaneDetectorEXT =
12700 unsafe extern "system" fn(plane_detector: PlaneDetectorEXT) -> Result;
12701 #[doc = "See [xrBeginPlaneDetectionEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrBeginPlaneDetectionEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12702 pub type BeginPlaneDetectionEXT = unsafe extern "system" fn(
12703 plane_detector: PlaneDetectorEXT,
12704 begin_info: *const PlaneDetectorBeginInfoEXT,
12705 ) -> Result;
12706 #[doc = "See [xrGetPlaneDetectionStateEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPlaneDetectionStateEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12707 pub type GetPlaneDetectionStateEXT = unsafe extern "system" fn(
12708 plane_detector: PlaneDetectorEXT,
12709 state: *mut PlaneDetectionStateEXT,
12710 ) -> Result;
12711 #[doc = "See [xrGetPlaneDetectionsEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPlaneDetectionsEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12712 pub type GetPlaneDetectionsEXT = unsafe extern "system" fn(
12713 plane_detector: PlaneDetectorEXT,
12714 info: *const PlaneDetectorGetInfoEXT,
12715 locations: *mut PlaneDetectorLocationsEXT,
12716 ) -> Result;
12717 #[doc = "See [xrGetPlanePolygonBufferEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetPlanePolygonBufferEXT) - defined by [XR_EXT_plane_detection](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_plane_detection)"]
12718 pub type GetPlanePolygonBufferEXT = unsafe extern "system" fn(
12719 plane_detector: PlaneDetectorEXT,
12720 plane_id: u64,
12721 polygon_buffer_index: u32,
12722 polygon_buffer: *mut PlaneDetectorPolygonBufferEXT,
12723 ) -> Result;
12724 #[doc = "See [xrCreateVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVirtualKeyboardMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12725 pub type CreateVirtualKeyboardMETA = unsafe extern "system" fn(
12726 session: Session,
12727 create_info: *const VirtualKeyboardCreateInfoMETA,
12728 keyboard: *mut VirtualKeyboardMETA,
12729 ) -> Result;
12730 #[doc = "See [xrDestroyVirtualKeyboardMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyVirtualKeyboardMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12731 pub type DestroyVirtualKeyboardMETA =
12732 unsafe extern "system" fn(keyboard: VirtualKeyboardMETA) -> Result;
12733 #[doc = "See [xrCreateVirtualKeyboardSpaceMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateVirtualKeyboardSpaceMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12734 pub type CreateVirtualKeyboardSpaceMETA = unsafe extern "system" fn(
12735 session: Session,
12736 keyboard: VirtualKeyboardMETA,
12737 create_info: *const VirtualKeyboardSpaceCreateInfoMETA,
12738 keyboard_space: *mut Space,
12739 ) -> Result;
12740 #[doc = "See [xrSuggestVirtualKeyboardLocationMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSuggestVirtualKeyboardLocationMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12741 pub type SuggestVirtualKeyboardLocationMETA = unsafe extern "system" fn(
12742 keyboard: VirtualKeyboardMETA,
12743 location_info: *const VirtualKeyboardLocationInfoMETA,
12744 ) -> Result;
12745 #[doc = "See [xrGetVirtualKeyboardScaleMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardScaleMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12746 pub type GetVirtualKeyboardScaleMETA =
12747 unsafe extern "system" fn(keyboard: VirtualKeyboardMETA, scale: *mut f32) -> Result;
12748 #[doc = "See [xrSetVirtualKeyboardModelVisibilityMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetVirtualKeyboardModelVisibilityMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12749 pub type SetVirtualKeyboardModelVisibilityMETA = unsafe extern "system" fn(
12750 keyboard: VirtualKeyboardMETA,
12751 model_visibility: *const VirtualKeyboardModelVisibilitySetInfoMETA,
12752 ) -> Result;
12753 #[doc = "See [xrGetVirtualKeyboardModelAnimationStatesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardModelAnimationStatesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12754 pub type GetVirtualKeyboardModelAnimationStatesMETA = unsafe extern "system" fn(
12755 keyboard: VirtualKeyboardMETA,
12756 animation_states: *mut VirtualKeyboardModelAnimationStatesMETA,
12757 ) -> Result;
12758 #[doc = "See [xrGetVirtualKeyboardDirtyTexturesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardDirtyTexturesMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12759 pub type GetVirtualKeyboardDirtyTexturesMETA = unsafe extern "system" fn(
12760 keyboard: VirtualKeyboardMETA,
12761 texture_id_capacity_input: u32,
12762 texture_id_count_output: *mut u32,
12763 texture_ids: *mut u64,
12764 ) -> Result;
12765 #[doc = "See [xrGetVirtualKeyboardTextureDataMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVirtualKeyboardTextureDataMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12766 pub type GetVirtualKeyboardTextureDataMETA = unsafe extern "system" fn(
12767 keyboard: VirtualKeyboardMETA,
12768 texture_id: u64,
12769 texture_data: *mut VirtualKeyboardTextureDataMETA,
12770 ) -> Result;
12771 #[doc = "See [xrSendVirtualKeyboardInputMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSendVirtualKeyboardInputMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12772 pub type SendVirtualKeyboardInputMETA = unsafe extern "system" fn(
12773 keyboard: VirtualKeyboardMETA,
12774 info: *const VirtualKeyboardInputInfoMETA,
12775 interactor_root_pose: *mut Posef,
12776 ) -> Result;
12777 #[doc = "See [xrChangeVirtualKeyboardTextContextMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrChangeVirtualKeyboardTextContextMETA) - defined by [XR_META_virtual_keyboard](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_virtual_keyboard)"]
12778 pub type ChangeVirtualKeyboardTextContextMETA = unsafe extern "system" fn(
12779 keyboard: VirtualKeyboardMETA,
12780 change_info: *const VirtualKeyboardTextContextChangeInfoMETA,
12781 ) -> Result;
12782 #[doc = "See [xrEnableUserCalibrationEventsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnableUserCalibrationEventsML) - defined by [XR_ML_user_calibration](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_user_calibration)"]
12783 pub type EnableUserCalibrationEventsML = unsafe extern "system" fn(
12784 instance: Instance,
12785 enable_info: *const UserCalibrationEnableEventsInfoML,
12786 ) -> Result;
12787 #[doc = "See [xrEnableLocalizationEventsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnableLocalizationEventsML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12788 pub type EnableLocalizationEventsML = unsafe extern "system" fn(
12789 session: Session,
12790 info: *const LocalizationEnableEventsInfoML,
12791 ) -> Result;
12792 #[doc = "See [xrQueryLocalizationMapsML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrQueryLocalizationMapsML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12793 pub type QueryLocalizationMapsML = unsafe extern "system" fn(
12794 session: Session,
12795 query_info: *const LocalizationMapQueryInfoBaseHeaderML,
12796 map_capacity_input: u32,
12797 map_count_output: *mut u32,
12798 maps: *mut LocalizationMapML,
12799 ) -> Result;
12800 #[doc = "See [xrRequestMapLocalizationML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrRequestMapLocalizationML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12801 pub type RequestMapLocalizationML = unsafe extern "system" fn(
12802 session: Session,
12803 request_info: *const MapLocalizationRequestInfoML,
12804 ) -> Result;
12805 #[doc = "See [xrImportLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrImportLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12806 pub type ImportLocalizationMapML = unsafe extern "system" fn(
12807 session: Session,
12808 import_info: *const LocalizationMapImportInfoML,
12809 map_uuid: *mut UuidEXT,
12810 ) -> Result;
12811 #[doc = "See [xrCreateExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateExportedLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12812 pub type CreateExportedLocalizationMapML = unsafe extern "system" fn(
12813 session: Session,
12814 map_uuid: *const UuidEXT,
12815 map: *mut ExportedLocalizationMapML,
12816 ) -> Result;
12817 #[doc = "See [xrDestroyExportedLocalizationMapML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyExportedLocalizationMapML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12818 pub type DestroyExportedLocalizationMapML =
12819 unsafe extern "system" fn(map: ExportedLocalizationMapML) -> Result;
12820 #[doc = "See [xrGetExportedLocalizationMapDataML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetExportedLocalizationMapDataML) - defined by [XR_ML_localization_map](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_localization_map)"]
12821 pub type GetExportedLocalizationMapDataML = unsafe extern "system" fn(
12822 map: ExportedLocalizationMapML,
12823 buffer_capacity_input: u32,
12824 buffer_count_output: *mut u32,
12825 buffer: *mut c_char,
12826 ) -> Result;
12827 #[doc = "See [xrCreateMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateMarkerDetectorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12828 pub type CreateMarkerDetectorML = unsafe extern "system" fn(
12829 session: Session,
12830 create_info: *const MarkerDetectorCreateInfoML,
12831 marker_detector: *mut MarkerDetectorML,
12832 ) -> Result;
12833 #[doc = "See [xrDestroyMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyMarkerDetectorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12834 pub type DestroyMarkerDetectorML =
12835 unsafe extern "system" fn(marker_detector: MarkerDetectorML) -> Result;
12836 #[doc = "See [xrSnapshotMarkerDetectorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSnapshotMarkerDetectorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12837 pub type SnapshotMarkerDetectorML = unsafe extern "system" fn(
12838 marker_detector: MarkerDetectorML,
12839 snapshot_info: *mut MarkerDetectorSnapshotInfoML,
12840 ) -> Result;
12841 #[doc = "See [xrGetMarkerDetectorStateML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerDetectorStateML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12842 pub type GetMarkerDetectorStateML = unsafe extern "system" fn(
12843 marker_detector: MarkerDetectorML,
12844 state: *mut MarkerDetectorStateML,
12845 ) -> Result;
12846 #[doc = "See [xrGetMarkersML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkersML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12847 pub type GetMarkersML = unsafe extern "system" fn(
12848 marker_detector: MarkerDetectorML,
12849 marker_capacity_input: u32,
12850 marker_count_output: *mut u32,
12851 markers: *mut MarkerML,
12852 ) -> Result;
12853 #[doc = "See [xrGetMarkerReprojectionErrorML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerReprojectionErrorML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12854 pub type GetMarkerReprojectionErrorML = unsafe extern "system" fn(
12855 marker_detector: MarkerDetectorML,
12856 marker: MarkerML,
12857 reprojection_error_meters: *mut f32,
12858 ) -> Result;
12859 #[doc = "See [xrGetMarkerLengthML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerLengthML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12860 pub type GetMarkerLengthML = unsafe extern "system" fn(
12861 marker_detector: MarkerDetectorML,
12862 marker: MarkerML,
12863 meters: *mut f32,
12864 ) -> Result;
12865 #[doc = "See [xrGetMarkerNumberML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerNumberML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12866 pub type GetMarkerNumberML = unsafe extern "system" fn(
12867 marker_detector: MarkerDetectorML,
12868 marker: MarkerML,
12869 number: *mut u64,
12870 ) -> Result;
12871 #[doc = "See [xrGetMarkerStringML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetMarkerStringML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12872 pub type GetMarkerStringML = unsafe extern "system" fn(
12873 marker_detector: MarkerDetectorML,
12874 marker: MarkerML,
12875 buffer_capacity_input: u32,
12876 buffer_count_output: *mut u32,
12877 buffer: *mut c_char,
12878 ) -> Result;
12879 #[doc = "See [xrCreateMarkerSpaceML](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateMarkerSpaceML) - defined by [XR_ML_marker_understanding](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_ML_marker_understanding)"]
12880 pub type CreateMarkerSpaceML = unsafe extern "system" fn(
12881 session: Session,
12882 create_info: *const MarkerSpaceCreateInfoML,
12883 space: *mut Space,
12884 ) -> Result;
12885 #[doc = "See [xrPollFutureEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrPollFutureEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
12886 pub type PollFutureEXT = unsafe extern "system" fn(
12887 instance: Instance,
12888 poll_info: *const FuturePollInfoEXT,
12889 poll_result: *mut FuturePollResultEXT,
12890 ) -> Result;
12891 #[doc = "See [xrCancelFutureEXT](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCancelFutureEXT) - defined by [XR_EXT_future](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_future)"]
12892 pub type CancelFutureEXT = unsafe extern "system" fn(
12893 instance: Instance,
12894 cancel_info: *const FutureCancelInfoEXT,
12895 ) -> Result;
12896 #[doc = "See [xrCreateEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12897 pub type CreateEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12898 session: Session,
12899 create_info: *const EnvironmentDepthProviderCreateInfoMETA,
12900 environment_depth_provider: *mut EnvironmentDepthProviderMETA,
12901 ) -> Result;
12902 #[doc = "See [xrDestroyEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12903 pub type DestroyEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12904 environment_depth_provider: EnvironmentDepthProviderMETA,
12905 ) -> Result;
12906 #[doc = "See [xrStartEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStartEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12907 pub type StartEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12908 environment_depth_provider: EnvironmentDepthProviderMETA,
12909 ) -> Result;
12910 #[doc = "See [xrStopEnvironmentDepthProviderMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrStopEnvironmentDepthProviderMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12911 pub type StopEnvironmentDepthProviderMETA = unsafe extern "system" fn(
12912 environment_depth_provider: EnvironmentDepthProviderMETA,
12913 ) -> Result;
12914 #[doc = "See [xrCreateEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrCreateEnvironmentDepthSwapchainMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12915 pub type CreateEnvironmentDepthSwapchainMETA = unsafe extern "system" fn(
12916 environment_depth_provider: EnvironmentDepthProviderMETA,
12917 create_info: *const EnvironmentDepthSwapchainCreateInfoMETA,
12918 swapchain: *mut EnvironmentDepthSwapchainMETA,
12919 ) -> Result;
12920 #[doc = "See [xrDestroyEnvironmentDepthSwapchainMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrDestroyEnvironmentDepthSwapchainMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12921 pub type DestroyEnvironmentDepthSwapchainMETA =
12922 unsafe extern "system" fn(swapchain: EnvironmentDepthSwapchainMETA) -> Result;
12923 #[doc = "See [xrEnumerateEnvironmentDepthSwapchainImagesMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrEnumerateEnvironmentDepthSwapchainImagesMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12924 pub type EnumerateEnvironmentDepthSwapchainImagesMETA = unsafe extern "system" fn(
12925 swapchain: EnvironmentDepthSwapchainMETA,
12926 image_capacity_input: u32,
12927 image_count_output: *mut u32,
12928 images: *mut SwapchainImageBaseHeader,
12929 )
12930 -> Result;
12931 #[doc = "See [xrGetEnvironmentDepthSwapchainStateMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetEnvironmentDepthSwapchainStateMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12932 pub type GetEnvironmentDepthSwapchainStateMETA = unsafe extern "system" fn(
12933 swapchain: EnvironmentDepthSwapchainMETA,
12934 state: *mut EnvironmentDepthSwapchainStateMETA,
12935 ) -> Result;
12936 #[doc = "See [xrAcquireEnvironmentDepthImageMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrAcquireEnvironmentDepthImageMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12937 pub type AcquireEnvironmentDepthImageMETA = unsafe extern "system" fn(
12938 environment_depth_provider: EnvironmentDepthProviderMETA,
12939 acquire_info: *const EnvironmentDepthImageAcquireInfoMETA,
12940 environment_depth_image: *mut EnvironmentDepthImageMETA,
12941 ) -> Result;
12942 #[doc = "See [xrSetEnvironmentDepthHandRemovalMETA](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrSetEnvironmentDepthHandRemovalMETA) - defined by [XR_META_environment_depth](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_META_environment_depth)"]
12943 pub type SetEnvironmentDepthHandRemovalMETA = unsafe extern "system" fn(
12944 environment_depth_provider: EnvironmentDepthProviderMETA,
12945 set_info: *const EnvironmentDepthHandRemovalSetInfoMETA,
12946 ) -> Result;
12947 #[doc = "See [xrLocateSpaces](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpaces)"]
12948 pub type LocateSpaces = unsafe extern "system" fn(
12949 session: Session,
12950 locate_info: *const SpacesLocateInfo,
12951 space_locations: *mut SpaceLocations,
12952 ) -> Result;
12953 #[doc = "See [xrGetVulkanGraphicsRequirements2KHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrGetVulkanGraphicsRequirements2KHR) - defined by [XR_KHR_vulkan_enable](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_vulkan_enable)"]
12954 pub type GetVulkanGraphicsRequirements2KHR = unsafe extern "system" fn(
12955 instance: Instance,
12956 system_id: SystemId,
12957 graphics_requirements: *mut GraphicsRequirementsVulkanKHR,
12958 ) -> Result;
12959 #[doc = "See [xrLocateSpacesKHR](https://www.khronos.org/registry/OpenXR/specs/1.1/html/xrspec.html#xrLocateSpacesKHR)"]
12960 pub type LocateSpacesKHR = unsafe extern "system" fn(
12961 session: Session,
12962 locate_info: *const SpacesLocateInfo,
12963 space_locations: *mut SpaceLocations,
12964 ) -> Result;
12965}
12966pub const ALMALENCE_digital_lens_control_SPEC_VERSION: u32 = 1u32;
12967pub const ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME: &[u8] =
12968 b"XR_ALMALENCE_digital_lens_control\0";
12969pub const BD_controller_interaction_SPEC_VERSION: u32 = 2u32;
12970pub const BD_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_BD_controller_interaction\0";
12971pub const EPIC_view_configuration_fov_SPEC_VERSION: u32 = 2u32;
12972pub const EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME: &[u8] = b"XR_EPIC_view_configuration_fov\0";
12973pub const EXT_performance_settings_SPEC_VERSION: u32 = 4u32;
12974pub const EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME: &[u8] = b"XR_EXT_performance_settings\0";
12975pub const EXT_thermal_query_SPEC_VERSION: u32 = 2u32;
12976pub const EXT_THERMAL_QUERY_EXTENSION_NAME: &[u8] = b"XR_EXT_thermal_query\0";
12977pub const EXT_debug_utils_SPEC_VERSION: u32 = 5u32;
12978pub const EXT_DEBUG_UTILS_EXTENSION_NAME: &[u8] = b"XR_EXT_debug_utils\0";
12979pub const EXT_eye_gaze_interaction_SPEC_VERSION: u32 = 2u32;
12980pub const EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_EXT_eye_gaze_interaction\0";
12981pub const EXT_view_configuration_depth_range_SPEC_VERSION: u32 = 1u32;
12982pub const EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME: &[u8] =
12983 b"XR_EXT_view_configuration_depth_range\0";
12984pub const EXT_conformance_automation_SPEC_VERSION: u32 = 3u32;
12985pub const EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME: &[u8] = b"XR_EXT_conformance_automation\0";
12986pub const EXT_hand_tracking_SPEC_VERSION: u32 = 4u32;
12987pub const EXT_HAND_TRACKING_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_tracking\0";
12988#[cfg(windows)]
12989pub const EXT_win32_appcontainer_compatible_SPEC_VERSION: u32 = 1u32;
12990#[cfg(windows)]
12991pub const EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME: &[u8] =
12992 b"XR_EXT_win32_appcontainer_compatible\0";
12993pub const EXT_dpad_binding_SPEC_VERSION: u32 = 1u32;
12994pub const EXT_DPAD_BINDING_EXTENSION_NAME: &[u8] = b"XR_EXT_dpad_binding\0";
12995pub const EXT_hand_joints_motion_range_SPEC_VERSION: u32 = 1u32;
12996pub const EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_joints_motion_range\0";
12997pub const EXT_samsung_odyssey_controller_SPEC_VERSION: u32 = 1u32;
12998pub const EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME: &[u8] =
12999 b"XR_EXT_samsung_odyssey_controller\0";
13000pub const EXT_hp_mixed_reality_controller_SPEC_VERSION: u32 = 1u32;
13001pub const EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME: &[u8] =
13002 b"XR_EXT_hp_mixed_reality_controller\0";
13003pub const EXT_palm_pose_SPEC_VERSION: u32 = 3u32;
13004pub const EXT_PALM_POSE_EXTENSION_NAME: &[u8] = b"XR_EXT_palm_pose\0";
13005pub const EXT_uuid_SPEC_VERSION: u32 = 1u32;
13006pub const EXT_UUID_EXTENSION_NAME: &[u8] = b"XR_EXT_uuid\0";
13007pub const EXT_hand_interaction_SPEC_VERSION: u32 = 1u32;
13008pub const EXT_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_EXT_hand_interaction\0";
13009pub const EXT_active_action_set_priority_SPEC_VERSION: u32 = 1u32;
13010pub const EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME: &[u8] =
13011 b"XR_EXT_active_action_set_priority\0";
13012pub const EXT_local_floor_SPEC_VERSION: u32 = 1u32;
13013pub const EXT_LOCAL_FLOOR_EXTENSION_NAME: &[u8] = b"XR_EXT_local_floor\0";
13014pub const EXT_hand_tracking_data_source_SPEC_VERSION: u32 = 1u32;
13015pub const EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME: &[u8] =
13016 b"XR_EXT_hand_tracking_data_source\0";
13017pub const EXT_plane_detection_SPEC_VERSION: u32 = 1u32;
13018pub const EXT_PLANE_DETECTION_EXTENSION_NAME: &[u8] = b"XR_EXT_plane_detection\0";
13019pub const EXT_future_SPEC_VERSION: u32 = 1u32;
13020pub const EXT_FUTURE_EXTENSION_NAME: &[u8] = b"XR_EXT_future\0";
13021pub const EXT_user_presence_SPEC_VERSION: u32 = 1u32;
13022pub const EXT_USER_PRESENCE_EXTENSION_NAME: &[u8] = b"XR_EXT_user_presence\0";
13023pub const FB_composition_layer_image_layout_SPEC_VERSION: u32 = 1u32;
13024pub const FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME: &[u8] =
13025 b"XR_FB_composition_layer_image_layout\0";
13026pub const FB_composition_layer_alpha_blend_SPEC_VERSION: u32 = 2u32;
13027pub const FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME: &[u8] =
13028 b"XR_FB_composition_layer_alpha_blend\0";
13029#[cfg(target_os = "android")]
13030pub const FB_android_surface_swapchain_create_SPEC_VERSION: u32 = 1u32;
13031#[cfg(target_os = "android")]
13032pub const FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME: &[u8] =
13033 b"XR_FB_android_surface_swapchain_create\0";
13034pub const FB_swapchain_update_state_SPEC_VERSION: u32 = 3u32;
13035pub const FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME: &[u8] = b"XR_FB_swapchain_update_state\0";
13036pub const FB_composition_layer_secure_content_SPEC_VERSION: u32 = 1u32;
13037pub const FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME: &[u8] =
13038 b"XR_FB_composition_layer_secure_content\0";
13039pub const FB_body_tracking_SPEC_VERSION: u32 = 1u32;
13040pub const FB_BODY_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_body_tracking\0";
13041pub const FB_display_refresh_rate_SPEC_VERSION: u32 = 1u32;
13042pub const FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME: &[u8] = b"XR_FB_display_refresh_rate\0";
13043pub const FB_color_space_SPEC_VERSION: u32 = 3u32;
13044pub const FB_COLOR_SPACE_EXTENSION_NAME: &[u8] = b"XR_FB_color_space\0";
13045pub const FB_hand_tracking_mesh_SPEC_VERSION: u32 = 3u32;
13046pub const FB_HAND_TRACKING_MESH_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_mesh\0";
13047pub const FB_hand_tracking_aim_SPEC_VERSION: u32 = 2u32;
13048pub const FB_HAND_TRACKING_AIM_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_aim\0";
13049pub const FB_hand_tracking_capsules_SPEC_VERSION: u32 = 3u32;
13050pub const FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME: &[u8] = b"XR_FB_hand_tracking_capsules\0";
13051pub const FB_spatial_entity_SPEC_VERSION: u32 = 3u32;
13052pub const FB_SPATIAL_ENTITY_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity\0";
13053pub const FB_foveation_SPEC_VERSION: u32 = 1u32;
13054pub const FB_FOVEATION_EXTENSION_NAME: &[u8] = b"XR_FB_foveation\0";
13055pub const FB_foveation_configuration_SPEC_VERSION: u32 = 1u32;
13056pub const FB_FOVEATION_CONFIGURATION_EXTENSION_NAME: &[u8] = b"XR_FB_foveation_configuration\0";
13057pub const FB_keyboard_tracking_SPEC_VERSION: u32 = 1u32;
13058pub const FB_KEYBOARD_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_keyboard_tracking\0";
13059pub const FB_triangle_mesh_SPEC_VERSION: u32 = 2u32;
13060pub const FB_TRIANGLE_MESH_EXTENSION_NAME: &[u8] = b"XR_FB_triangle_mesh\0";
13061pub const FB_passthrough_SPEC_VERSION: u32 = 3u32;
13062pub const FB_PASSTHROUGH_EXTENSION_NAME: &[u8] = b"XR_FB_passthrough\0";
13063pub const FB_render_model_SPEC_VERSION: u32 = 4u32;
13064pub const FB_RENDER_MODEL_EXTENSION_NAME: &[u8] = b"XR_FB_render_model\0";
13065pub const FB_spatial_entity_query_SPEC_VERSION: u32 = 1u32;
13066pub const FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_query\0";
13067pub const FB_spatial_entity_storage_SPEC_VERSION: u32 = 1u32;
13068pub const FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_storage\0";
13069pub const FB_foveation_vulkan_SPEC_VERSION: u32 = 1u32;
13070pub const FB_FOVEATION_VULKAN_EXTENSION_NAME: &[u8] = b"XR_FB_foveation_vulkan\0";
13071#[cfg(target_os = "android")]
13072pub const FB_swapchain_update_state_android_surface_SPEC_VERSION: u32 = 1u32;
13073#[cfg(target_os = "android")]
13074pub const FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME: &[u8] =
13075 b"XR_FB_swapchain_update_state_android_surface\0";
13076pub const FB_swapchain_update_state_opengl_es_SPEC_VERSION: u32 = 1u32;
13077pub const FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME: &[u8] =
13078 b"XR_FB_swapchain_update_state_opengl_es\0";
13079pub const FB_swapchain_update_state_vulkan_SPEC_VERSION: u32 = 1u32;
13080pub const FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME: &[u8] =
13081 b"XR_FB_swapchain_update_state_vulkan\0";
13082pub const FB_touch_controller_pro_SPEC_VERSION: u32 = 1u32;
13083pub const FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME: &[u8] = b"XR_FB_touch_controller_pro\0";
13084pub const FB_spatial_entity_sharing_SPEC_VERSION: u32 = 1u32;
13085pub const FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_sharing\0";
13086pub const FB_space_warp_SPEC_VERSION: u32 = 2u32;
13087pub const FB_SPACE_WARP_EXTENSION_NAME: &[u8] = b"XR_FB_space_warp\0";
13088pub const FB_haptic_amplitude_envelope_SPEC_VERSION: u32 = 1u32;
13089pub const FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME: &[u8] = b"XR_FB_haptic_amplitude_envelope\0";
13090pub const FB_scene_SPEC_VERSION: u32 = 4u32;
13091pub const FB_SCENE_EXTENSION_NAME: &[u8] = b"XR_FB_scene\0";
13092pub const FB_scene_capture_SPEC_VERSION: u32 = 1u32;
13093pub const FB_SCENE_CAPTURE_EXTENSION_NAME: &[u8] = b"XR_FB_scene_capture\0";
13094pub const FB_spatial_entity_container_SPEC_VERSION: u32 = 2u32;
13095pub const FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_container\0";
13096pub const FB_face_tracking_SPEC_VERSION: u32 = 1u32;
13097pub const FB_FACE_TRACKING_EXTENSION_NAME: &[u8] = b"XR_FB_face_tracking\0";
13098pub const FB_eye_tracking_social_SPEC_VERSION: u32 = 1u32;
13099pub const FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME: &[u8] = b"XR_FB_eye_tracking_social\0";
13100pub const FB_passthrough_keyboard_hands_SPEC_VERSION: u32 = 2u32;
13101pub const FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME: &[u8] =
13102 b"XR_FB_passthrough_keyboard_hands\0";
13103pub const FB_composition_layer_settings_SPEC_VERSION: u32 = 1u32;
13104pub const FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME: &[u8] =
13105 b"XR_FB_composition_layer_settings\0";
13106pub const FB_touch_controller_proximity_SPEC_VERSION: u32 = 1u32;
13107pub const FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME: &[u8] =
13108 b"XR_FB_touch_controller_proximity\0";
13109pub const FB_haptic_pcm_SPEC_VERSION: u32 = 1u32;
13110pub const FB_HAPTIC_PCM_EXTENSION_NAME: &[u8] = b"XR_FB_haptic_pcm\0";
13111pub const FB_composition_layer_depth_test_SPEC_VERSION: u32 = 1u32;
13112pub const FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME: &[u8] =
13113 b"XR_FB_composition_layer_depth_test\0";
13114pub const FB_spatial_entity_storage_batch_SPEC_VERSION: u32 = 1u32;
13115pub const FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME: &[u8] =
13116 b"XR_FB_spatial_entity_storage_batch\0";
13117pub const FB_spatial_entity_user_SPEC_VERSION: u32 = 1u32;
13118pub const FB_SPATIAL_ENTITY_USER_EXTENSION_NAME: &[u8] = b"XR_FB_spatial_entity_user\0";
13119pub const FB_face_tracking2_SPEC_VERSION: u32 = 1u32;
13120pub const FB_FACE_TRACKING2_EXTENSION_NAME: &[u8] = b"XR_FB_face_tracking2\0";
13121pub const HTC_vive_cosmos_controller_interaction_SPEC_VERSION: u32 = 1u32;
13122pub const HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13123 b"XR_HTC_vive_cosmos_controller_interaction\0";
13124pub const HTC_facial_tracking_SPEC_VERSION: u32 = 2u32;
13125pub const HTC_FACIAL_TRACKING_EXTENSION_NAME: &[u8] = b"XR_HTC_facial_tracking\0";
13126pub const HTC_vive_focus3_controller_interaction_SPEC_VERSION: u32 = 2u32;
13127pub const HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13128 b"XR_HTC_vive_focus3_controller_interaction\0";
13129pub const HTC_hand_interaction_SPEC_VERSION: u32 = 1u32;
13130pub const HTC_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_HTC_hand_interaction\0";
13131pub const HTC_vive_wrist_tracker_interaction_SPEC_VERSION: u32 = 1u32;
13132pub const HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME: &[u8] =
13133 b"XR_HTC_vive_wrist_tracker_interaction\0";
13134pub const HTC_passthrough_SPEC_VERSION: u32 = 1u32;
13135pub const HTC_PASSTHROUGH_EXTENSION_NAME: &[u8] = b"XR_HTC_passthrough\0";
13136pub const HTC_foveation_SPEC_VERSION: u32 = 1u32;
13137pub const HTC_FOVEATION_EXTENSION_NAME: &[u8] = b"XR_HTC_foveation\0";
13138pub const HTC_anchor_SPEC_VERSION: u32 = 1u32;
13139pub const HTC_ANCHOR_EXTENSION_NAME: &[u8] = b"XR_HTC_anchor\0";
13140pub const HUAWEI_controller_interaction_SPEC_VERSION: u32 = 1u32;
13141pub const HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13142 b"XR_HUAWEI_controller_interaction\0";
13143#[cfg(target_os = "android")]
13144pub const KHR_android_thread_settings_SPEC_VERSION: u32 = 6u32;
13145#[cfg(target_os = "android")]
13146pub const KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME: &[u8] = b"XR_KHR_android_thread_settings\0";
13147#[cfg(target_os = "android")]
13148pub const KHR_android_surface_swapchain_SPEC_VERSION: u32 = 4u32;
13149#[cfg(target_os = "android")]
13150pub const KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME: &[u8] =
13151 b"XR_KHR_android_surface_swapchain\0";
13152pub const KHR_composition_layer_cube_SPEC_VERSION: u32 = 8u32;
13153pub const KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME: &[u8] = b"XR_KHR_composition_layer_cube\0";
13154#[cfg(target_os = "android")]
13155pub const KHR_android_create_instance_SPEC_VERSION: u32 = 3u32;
13156#[cfg(target_os = "android")]
13157pub const KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME: &[u8] = b"XR_KHR_android_create_instance\0";
13158pub const KHR_composition_layer_depth_SPEC_VERSION: u32 = 6u32;
13159pub const KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME: &[u8] = b"XR_KHR_composition_layer_depth\0";
13160pub const KHR_vulkan_swapchain_format_list_SPEC_VERSION: u32 = 4u32;
13161pub const KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME: &[u8] =
13162 b"XR_KHR_vulkan_swapchain_format_list\0";
13163pub const KHR_composition_layer_cylinder_SPEC_VERSION: u32 = 4u32;
13164pub const KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME: &[u8] =
13165 b"XR_KHR_composition_layer_cylinder\0";
13166pub const KHR_composition_layer_equirect_SPEC_VERSION: u32 = 3u32;
13167pub const KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME: &[u8] =
13168 b"XR_KHR_composition_layer_equirect\0";
13169pub const KHR_opengl_enable_SPEC_VERSION: u32 = 10u32;
13170pub const KHR_OPENGL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_opengl_enable\0";
13171pub const KHR_opengl_es_enable_SPEC_VERSION: u32 = 8u32;
13172pub const KHR_OPENGL_ES_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_opengl_es_enable\0";
13173pub const KHR_vulkan_enable_SPEC_VERSION: u32 = 8u32;
13174pub const KHR_VULKAN_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_vulkan_enable\0";
13175#[cfg(windows)]
13176pub const KHR_D3D11_enable_SPEC_VERSION: u32 = 9u32;
13177#[cfg(windows)]
13178pub const KHR_D3D11_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_D3D11_enable\0";
13179#[cfg(windows)]
13180pub const KHR_D3D12_enable_SPEC_VERSION: u32 = 9u32;
13181#[cfg(windows)]
13182pub const KHR_D3D12_ENABLE_EXTENSION_NAME: &[u8] = b"XR_KHR_D3D12_enable\0";
13183pub const KHR_visibility_mask_SPEC_VERSION: u32 = 2u32;
13184pub const KHR_VISIBILITY_MASK_EXTENSION_NAME: &[u8] = b"XR_KHR_visibility_mask\0";
13185pub const KHR_composition_layer_color_scale_bias_SPEC_VERSION: u32 = 5u32;
13186pub const KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME: &[u8] =
13187 b"XR_KHR_composition_layer_color_scale_bias\0";
13188#[cfg(windows)]
13189pub const KHR_win32_convert_performance_counter_time_SPEC_VERSION: u32 = 1u32;
13190#[cfg(windows)]
13191pub const KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME: &[u8] =
13192 b"XR_KHR_win32_convert_performance_counter_time\0";
13193pub const KHR_convert_timespec_time_SPEC_VERSION: u32 = 1u32;
13194pub const KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME: &[u8] = b"XR_KHR_convert_timespec_time\0";
13195pub const KHR_loader_init_SPEC_VERSION: u32 = 2u32;
13196pub const KHR_LOADER_INIT_EXTENSION_NAME: &[u8] = b"XR_KHR_loader_init\0";
13197#[cfg(target_os = "android")]
13198pub const KHR_loader_init_android_SPEC_VERSION: u32 = 1u32;
13199#[cfg(target_os = "android")]
13200pub const KHR_LOADER_INIT_ANDROID_EXTENSION_NAME: &[u8] = b"XR_KHR_loader_init_android\0";
13201pub const KHR_vulkan_enable2_SPEC_VERSION: u32 = 2u32;
13202pub const KHR_VULKAN_ENABLE2_EXTENSION_NAME: &[u8] = b"XR_KHR_vulkan_enable2\0";
13203pub const KHR_composition_layer_equirect2_SPEC_VERSION: u32 = 1u32;
13204pub const KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME: &[u8] =
13205 b"XR_KHR_composition_layer_equirect2\0";
13206pub const KHR_binding_modification_SPEC_VERSION: u32 = 1u32;
13207pub const KHR_BINDING_MODIFICATION_EXTENSION_NAME: &[u8] = b"XR_KHR_binding_modification\0";
13208pub const KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION: u32 = 3u32;
13209pub const KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME: &[u8] =
13210 b"XR_KHR_swapchain_usage_input_attachment_bit\0";
13211pub const KHR_locate_spaces_SPEC_VERSION: u32 = 1u32;
13212pub const KHR_LOCATE_SPACES_EXTENSION_NAME: &[u8] = b"XR_KHR_locate_spaces\0";
13213pub const KHR_maintenance1_SPEC_VERSION: u32 = 1u32;
13214pub const KHR_MAINTENANCE1_EXTENSION_NAME: &[u8] = b"XR_KHR_maintenance1\0";
13215pub const META_foveation_eye_tracked_SPEC_VERSION: u32 = 1u32;
13216pub const META_FOVEATION_EYE_TRACKED_EXTENSION_NAME: &[u8] = b"XR_META_foveation_eye_tracked\0";
13217pub const META_local_dimming_SPEC_VERSION: u32 = 1u32;
13218pub const META_LOCAL_DIMMING_EXTENSION_NAME: &[u8] = b"XR_META_local_dimming\0";
13219pub const META_passthrough_preferences_SPEC_VERSION: u32 = 1u32;
13220pub const META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME: &[u8] = b"XR_META_passthrough_preferences\0";
13221pub const META_virtual_keyboard_SPEC_VERSION: u32 = 1u32;
13222pub const META_VIRTUAL_KEYBOARD_EXTENSION_NAME: &[u8] = b"XR_META_virtual_keyboard\0";
13223pub const META_vulkan_swapchain_create_info_SPEC_VERSION: u32 = 1u32;
13224pub const META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME: &[u8] =
13225 b"XR_META_vulkan_swapchain_create_info\0";
13226pub const META_performance_metrics_SPEC_VERSION: u32 = 2u32;
13227pub const META_PERFORMANCE_METRICS_EXTENSION_NAME: &[u8] = b"XR_META_performance_metrics\0";
13228pub const META_headset_id_SPEC_VERSION: u32 = 2u32;
13229pub const META_HEADSET_ID_EXTENSION_NAME: &[u8] = b"XR_META_headset_id\0";
13230pub const META_recommended_layer_resolution_SPEC_VERSION: u32 = 1u32;
13231pub const META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME: &[u8] =
13232 b"XR_META_recommended_layer_resolution\0";
13233pub const META_passthrough_color_lut_SPEC_VERSION: u32 = 1u32;
13234pub const META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME: &[u8] = b"XR_META_passthrough_color_lut\0";
13235pub const META_spatial_entity_mesh_SPEC_VERSION: u32 = 1u32;
13236pub const META_SPATIAL_ENTITY_MESH_EXTENSION_NAME: &[u8] = b"XR_META_spatial_entity_mesh\0";
13237pub const META_automatic_layer_filter_SPEC_VERSION: u32 = 1u32;
13238pub const META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME: &[u8] = b"XR_META_automatic_layer_filter\0";
13239pub const META_touch_controller_plus_SPEC_VERSION: u32 = 1u32;
13240pub const META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME: &[u8] = b"XR_META_touch_controller_plus\0";
13241pub const META_environment_depth_SPEC_VERSION: u32 = 1u32;
13242pub const META_ENVIRONMENT_DEPTH_EXTENSION_NAME: &[u8] = b"XR_META_environment_depth\0";
13243pub const ML_ml2_controller_interaction_SPEC_VERSION: u32 = 1u32;
13244pub const ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13245 b"XR_ML_ml2_controller_interaction\0";
13246pub const ML_frame_end_info_SPEC_VERSION: u32 = 1u32;
13247pub const ML_FRAME_END_INFO_EXTENSION_NAME: &[u8] = b"XR_ML_frame_end_info\0";
13248pub const ML_global_dimmer_SPEC_VERSION: u32 = 1u32;
13249pub const ML_GLOBAL_DIMMER_EXTENSION_NAME: &[u8] = b"XR_ML_global_dimmer\0";
13250pub const ML_compat_SPEC_VERSION: u32 = 1u32;
13251pub const ML_COMPAT_EXTENSION_NAME: &[u8] = b"XR_ML_compat\0";
13252pub const ML_marker_understanding_SPEC_VERSION: u32 = 1u32;
13253pub const ML_MARKER_UNDERSTANDING_EXTENSION_NAME: &[u8] = b"XR_ML_marker_understanding\0";
13254pub const ML_localization_map_SPEC_VERSION: u32 = 1u32;
13255pub const ML_LOCALIZATION_MAP_EXTENSION_NAME: &[u8] = b"XR_ML_localization_map\0";
13256pub const ML_user_calibration_SPEC_VERSION: u32 = 1u32;
13257pub const ML_USER_CALIBRATION_EXTENSION_NAME: &[u8] = b"XR_ML_user_calibration\0";
13258pub const MND_headless_SPEC_VERSION: u32 = 2u32;
13259pub const MND_HEADLESS_EXTENSION_NAME: &[u8] = b"XR_MND_headless\0";
13260pub const MND_swapchain_usage_input_attachment_bit_SPEC_VERSION: u32 = 2u32;
13261pub const MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME: &[u8] =
13262 b"XR_MND_swapchain_usage_input_attachment_bit\0";
13263pub const MSFT_unbounded_reference_space_SPEC_VERSION: u32 = 1u32;
13264pub const MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME: &[u8] =
13265 b"XR_MSFT_unbounded_reference_space\0";
13266pub const MSFT_spatial_anchor_SPEC_VERSION: u32 = 2u32;
13267pub const MSFT_SPATIAL_ANCHOR_EXTENSION_NAME: &[u8] = b"XR_MSFT_spatial_anchor\0";
13268pub const MSFT_spatial_graph_bridge_SPEC_VERSION: u32 = 2u32;
13269pub const MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME: &[u8] = b"XR_MSFT_spatial_graph_bridge\0";
13270pub const MSFT_hand_interaction_SPEC_VERSION: u32 = 1u32;
13271pub const MSFT_HAND_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_MSFT_hand_interaction\0";
13272pub const MSFT_hand_tracking_mesh_SPEC_VERSION: u32 = 4u32;
13273pub const MSFT_HAND_TRACKING_MESH_EXTENSION_NAME: &[u8] = b"XR_MSFT_hand_tracking_mesh\0";
13274pub const MSFT_secondary_view_configuration_SPEC_VERSION: u32 = 1u32;
13275pub const MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME: &[u8] =
13276 b"XR_MSFT_secondary_view_configuration\0";
13277pub const MSFT_first_person_observer_SPEC_VERSION: u32 = 1u32;
13278pub const MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME: &[u8] = b"XR_MSFT_first_person_observer\0";
13279pub const MSFT_controller_model_SPEC_VERSION: u32 = 2u32;
13280pub const MSFT_CONTROLLER_MODEL_EXTENSION_NAME: &[u8] = b"XR_MSFT_controller_model\0";
13281#[cfg(windows)]
13282pub const MSFT_perception_anchor_interop_SPEC_VERSION: u32 = 1u32;
13283#[cfg(windows)]
13284pub const MSFT_PERCEPTION_ANCHOR_INTEROP_EXTENSION_NAME: &[u8] =
13285 b"XR_MSFT_perception_anchor_interop\0";
13286#[cfg(windows)]
13287pub const MSFT_holographic_window_attachment_SPEC_VERSION: u32 = 1u32;
13288#[cfg(windows)]
13289pub const MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME: &[u8] =
13290 b"XR_MSFT_holographic_window_attachment\0";
13291pub const MSFT_composition_layer_reprojection_SPEC_VERSION: u32 = 1u32;
13292pub const MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME: &[u8] =
13293 b"XR_MSFT_composition_layer_reprojection\0";
13294pub const MSFT_scene_understanding_SPEC_VERSION: u32 = 2u32;
13295pub const MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME: &[u8] = b"XR_MSFT_scene_understanding\0";
13296pub const MSFT_scene_understanding_serialization_SPEC_VERSION: u32 = 2u32;
13297pub const MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME: &[u8] =
13298 b"XR_MSFT_scene_understanding_serialization\0";
13299pub const MSFT_spatial_anchor_persistence_SPEC_VERSION: u32 = 2u32;
13300pub const MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME: &[u8] =
13301 b"XR_MSFT_spatial_anchor_persistence\0";
13302pub const MSFT_scene_marker_SPEC_VERSION: u32 = 1u32;
13303pub const MSFT_SCENE_MARKER_EXTENSION_NAME: &[u8] = b"XR_MSFT_scene_marker\0";
13304#[cfg(target_os = "android")]
13305pub const OCULUS_android_session_state_enable_SPEC_VERSION: u32 = 1u32;
13306#[cfg(target_os = "android")]
13307pub const OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME: &[u8] =
13308 b"XR_OCULUS_android_session_state_enable\0";
13309pub const OCULUS_audio_device_guid_SPEC_VERSION: u32 = 1u32;
13310pub const OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME: &[u8] = b"XR_OCULUS_audio_device_guid\0";
13311pub const OCULUS_external_camera_SPEC_VERSION: u32 = 1u32;
13312pub const OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME: &[u8] = b"XR_OCULUS_external_camera\0";
13313pub const OPPO_controller_interaction_SPEC_VERSION: u32 = 1u32;
13314pub const OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_OPPO_controller_interaction\0";
13315pub const QCOM_tracking_optimization_settings_SPEC_VERSION: u32 = 1u32;
13316pub const QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME: &[u8] =
13317 b"XR_QCOM_tracking_optimization_settings\0";
13318pub const ULTRALEAP_hand_tracking_forearm_SPEC_VERSION: u32 = 1u32;
13319pub const ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME: &[u8] =
13320 b"XR_ULTRALEAP_hand_tracking_forearm\0";
13321pub const VALVE_analog_threshold_SPEC_VERSION: u32 = 2u32;
13322pub const VALVE_ANALOG_THRESHOLD_EXTENSION_NAME: &[u8] = b"XR_VALVE_analog_threshold\0";
13323pub const VARJO_quad_views_SPEC_VERSION: u32 = 1u32;
13324pub const VARJO_QUAD_VIEWS_EXTENSION_NAME: &[u8] = b"XR_VARJO_quad_views\0";
13325pub const VARJO_foveated_rendering_SPEC_VERSION: u32 = 3u32;
13326pub const VARJO_FOVEATED_RENDERING_EXTENSION_NAME: &[u8] = b"XR_VARJO_foveated_rendering\0";
13327pub const VARJO_composition_layer_depth_test_SPEC_VERSION: u32 = 2u32;
13328pub const VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME: &[u8] =
13329 b"XR_VARJO_composition_layer_depth_test\0";
13330pub const VARJO_environment_depth_estimation_SPEC_VERSION: u32 = 1u32;
13331pub const VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME: &[u8] =
13332 b"XR_VARJO_environment_depth_estimation\0";
13333pub const VARJO_marker_tracking_SPEC_VERSION: u32 = 1u32;
13334pub const VARJO_MARKER_TRACKING_EXTENSION_NAME: &[u8] = b"XR_VARJO_marker_tracking\0";
13335pub const VARJO_view_offset_SPEC_VERSION: u32 = 1u32;
13336pub const VARJO_VIEW_OFFSET_EXTENSION_NAME: &[u8] = b"XR_VARJO_view_offset\0";
13337pub const VARJO_xr4_controller_interaction_SPEC_VERSION: u32 = 1u32;
13338pub const VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] =
13339 b"XR_VARJO_xr4_controller_interaction\0";
13340pub const YVR_controller_interaction_SPEC_VERSION: u32 = 1u32;
13341pub const YVR_CONTROLLER_INTERACTION_EXTENSION_NAME: &[u8] = b"XR_YVR_controller_interaction\0";
13342pub const EXTX_overlay_SPEC_VERSION: u32 = 5u32;
13343pub const EXTX_OVERLAY_EXTENSION_NAME: &[u8] = b"XR_EXTX_overlay\0";
13344pub const MNDX_egl_enable_SPEC_VERSION: u32 = 2u32;
13345pub const MNDX_EGL_ENABLE_EXTENSION_NAME: &[u8] = b"XR_MNDX_egl_enable\0";
13346pub const MNDX_force_feedback_curl_SPEC_VERSION: u32 = 1u32;
13347pub const MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME: &[u8] = b"XR_MNDX_force_feedback_curl\0";
13348pub const HTCX_vive_tracker_interaction_SPEC_VERSION: u32 = 3u32;
13349pub const HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME: &[u8] =
13350 b"XR_HTCX_vive_tracker_interaction\0";
13351#[cfg(feature = "linked")]
13352extern "system" {
13353 #[link_name = "xrNegotiateLoaderRuntimeInterface"]
13354 pub fn negotiate_loader_runtime_interface(
13355 loader_info: *const NegotiateLoaderInfo,
13356 runtime_request: *mut NegotiateRuntimeRequest,
13357 ) -> Result;
13358 #[link_name = "xrNegotiateLoaderApiLayerInterface"]
13359 pub fn negotiate_loader_api_layer_interface(
13360 loader_info: *const NegotiateLoaderInfo,
13361 layer_name: *const c_char,
13362 api_layer_request: *mut NegotiateApiLayerRequest,
13363 ) -> Result;
13364 #[link_name = "xrCreateApiLayerInstance"]
13365 pub fn create_api_layer_instance(
13366 info: *const InstanceCreateInfo,
13367 layer_info: *const ApiLayerCreateInfo,
13368 instance: *mut Instance,
13369 ) -> Result;
13370 #[link_name = "xrGetInstanceProcAddr"]
13371 pub fn get_instance_proc_addr(
13372 instance: Instance,
13373 name: *const c_char,
13374 function: *mut Option<pfn::VoidFunction>,
13375 ) -> Result;
13376 #[link_name = "xrEnumerateApiLayerProperties"]
13377 pub fn enumerate_api_layer_properties(
13378 property_capacity_input: u32,
13379 property_count_output: *mut u32,
13380 properties: *mut ApiLayerProperties,
13381 ) -> Result;
13382 #[link_name = "xrEnumerateInstanceExtensionProperties"]
13383 pub fn enumerate_instance_extension_properties(
13384 layer_name: *const c_char,
13385 property_capacity_input: u32,
13386 property_count_output: *mut u32,
13387 properties: *mut ExtensionProperties,
13388 ) -> Result;
13389 #[link_name = "xrCreateInstance"]
13390 pub fn create_instance(
13391 create_info: *const InstanceCreateInfo,
13392 instance: *mut Instance,
13393 ) -> Result;
13394 #[link_name = "xrDestroyInstance"]
13395 pub fn destroy_instance(instance: Instance) -> Result;
13396 #[link_name = "xrResultToString"]
13397 pub fn result_to_string(instance: Instance, value: Result, buffer: *mut c_char) -> Result;
13398 #[link_name = "xrStructureTypeToString"]
13399 pub fn structure_type_to_string(
13400 instance: Instance,
13401 value: StructureType,
13402 buffer: *mut c_char,
13403 ) -> Result;
13404 #[link_name = "xrGetInstanceProperties"]
13405 pub fn get_instance_properties(
13406 instance: Instance,
13407 instance_properties: *mut InstanceProperties,
13408 ) -> Result;
13409 #[link_name = "xrGetSystem"]
13410 pub fn get_system(
13411 instance: Instance,
13412 get_info: *const SystemGetInfo,
13413 system_id: *mut SystemId,
13414 ) -> Result;
13415 #[link_name = "xrGetSystemProperties"]
13416 pub fn get_system_properties(
13417 instance: Instance,
13418 system_id: SystemId,
13419 properties: *mut SystemProperties,
13420 ) -> Result;
13421 #[link_name = "xrCreateSession"]
13422 pub fn create_session(
13423 instance: Instance,
13424 create_info: *const SessionCreateInfo,
13425 session: *mut Session,
13426 ) -> Result;
13427 #[link_name = "xrDestroySession"]
13428 pub fn destroy_session(session: Session) -> Result;
13429 #[link_name = "xrDestroySpace"]
13430 pub fn destroy_space(space: Space) -> Result;
13431 #[link_name = "xrEnumerateSwapchainFormats"]
13432 pub fn enumerate_swapchain_formats(
13433 session: Session,
13434 format_capacity_input: u32,
13435 format_count_output: *mut u32,
13436 formats: *mut i64,
13437 ) -> Result;
13438 #[link_name = "xrCreateSwapchain"]
13439 pub fn create_swapchain(
13440 session: Session,
13441 create_info: *const SwapchainCreateInfo,
13442 swapchain: *mut Swapchain,
13443 ) -> Result;
13444 #[link_name = "xrDestroySwapchain"]
13445 pub fn destroy_swapchain(swapchain: Swapchain) -> Result;
13446 #[link_name = "xrEnumerateSwapchainImages"]
13447 pub fn enumerate_swapchain_images(
13448 swapchain: Swapchain,
13449 image_capacity_input: u32,
13450 image_count_output: *mut u32,
13451 images: *mut SwapchainImageBaseHeader,
13452 ) -> Result;
13453 #[link_name = "xrAcquireSwapchainImage"]
13454 pub fn acquire_swapchain_image(
13455 swapchain: Swapchain,
13456 acquire_info: *const SwapchainImageAcquireInfo,
13457 index: *mut u32,
13458 ) -> Result;
13459 #[link_name = "xrWaitSwapchainImage"]
13460 pub fn wait_swapchain_image(
13461 swapchain: Swapchain,
13462 wait_info: *const SwapchainImageWaitInfo,
13463 ) -> Result;
13464 #[link_name = "xrReleaseSwapchainImage"]
13465 pub fn release_swapchain_image(
13466 swapchain: Swapchain,
13467 release_info: *const SwapchainImageReleaseInfo,
13468 ) -> Result;
13469 #[link_name = "xrBeginSession"]
13470 pub fn begin_session(session: Session, begin_info: *const SessionBeginInfo) -> Result;
13471 #[link_name = "xrEndSession"]
13472 pub fn end_session(session: Session) -> Result;
13473 #[link_name = "xrRequestExitSession"]
13474 pub fn request_exit_session(session: Session) -> Result;
13475 #[link_name = "xrEnumerateReferenceSpaces"]
13476 pub fn enumerate_reference_spaces(
13477 session: Session,
13478 space_capacity_input: u32,
13479 space_count_output: *mut u32,
13480 spaces: *mut ReferenceSpaceType,
13481 ) -> Result;
13482 #[link_name = "xrCreateReferenceSpace"]
13483 pub fn create_reference_space(
13484 session: Session,
13485 create_info: *const ReferenceSpaceCreateInfo,
13486 space: *mut Space,
13487 ) -> Result;
13488 #[link_name = "xrCreateActionSpace"]
13489 pub fn create_action_space(
13490 session: Session,
13491 create_info: *const ActionSpaceCreateInfo,
13492 space: *mut Space,
13493 ) -> Result;
13494 #[link_name = "xrLocateSpace"]
13495 pub fn locate_space(
13496 space: Space,
13497 base_space: Space,
13498 time: Time,
13499 location: *mut SpaceLocation,
13500 ) -> Result;
13501 #[link_name = "xrEnumerateViewConfigurations"]
13502 pub fn enumerate_view_configurations(
13503 instance: Instance,
13504 system_id: SystemId,
13505 view_configuration_type_capacity_input: u32,
13506 view_configuration_type_count_output: *mut u32,
13507 view_configuration_types: *mut ViewConfigurationType,
13508 ) -> Result;
13509 #[link_name = "xrEnumerateEnvironmentBlendModes"]
13510 pub fn enumerate_environment_blend_modes(
13511 instance: Instance,
13512 system_id: SystemId,
13513 view_configuration_type: ViewConfigurationType,
13514 environment_blend_mode_capacity_input: u32,
13515 environment_blend_mode_count_output: *mut u32,
13516 environment_blend_modes: *mut EnvironmentBlendMode,
13517 ) -> Result;
13518 #[link_name = "xrGetViewConfigurationProperties"]
13519 pub fn get_view_configuration_properties(
13520 instance: Instance,
13521 system_id: SystemId,
13522 view_configuration_type: ViewConfigurationType,
13523 configuration_properties: *mut ViewConfigurationProperties,
13524 ) -> Result;
13525 #[link_name = "xrEnumerateViewConfigurationViews"]
13526 pub fn enumerate_view_configuration_views(
13527 instance: Instance,
13528 system_id: SystemId,
13529 view_configuration_type: ViewConfigurationType,
13530 view_capacity_input: u32,
13531 view_count_output: *mut u32,
13532 views: *mut ViewConfigurationView,
13533 ) -> Result;
13534 #[link_name = "xrBeginFrame"]
13535 pub fn begin_frame(session: Session, frame_begin_info: *const FrameBeginInfo) -> Result;
13536 #[link_name = "xrLocateViews"]
13537 pub fn locate_views(
13538 session: Session,
13539 view_locate_info: *const ViewLocateInfo,
13540 view_state: *mut ViewState,
13541 view_capacity_input: u32,
13542 view_count_output: *mut u32,
13543 views: *mut View,
13544 ) -> Result;
13545 #[link_name = "xrEndFrame"]
13546 pub fn end_frame(session: Session, frame_end_info: *const FrameEndInfo) -> Result;
13547 #[link_name = "xrWaitFrame"]
13548 pub fn wait_frame(
13549 session: Session,
13550 frame_wait_info: *const FrameWaitInfo,
13551 frame_state: *mut FrameState,
13552 ) -> Result;
13553 #[link_name = "xrApplyHapticFeedback"]
13554 pub fn apply_haptic_feedback(
13555 session: Session,
13556 haptic_action_info: *const HapticActionInfo,
13557 haptic_feedback: *const HapticBaseHeader,
13558 ) -> Result;
13559 #[link_name = "xrStopHapticFeedback"]
13560 pub fn stop_haptic_feedback(
13561 session: Session,
13562 haptic_action_info: *const HapticActionInfo,
13563 ) -> Result;
13564 #[link_name = "xrPollEvent"]
13565 pub fn poll_event(instance: Instance, event_data: *mut EventDataBuffer) -> Result;
13566 #[link_name = "xrStringToPath"]
13567 pub fn string_to_path(
13568 instance: Instance,
13569 path_string: *const c_char,
13570 path: *mut Path,
13571 ) -> Result;
13572 #[link_name = "xrPathToString"]
13573 pub fn path_to_string(
13574 instance: Instance,
13575 path: Path,
13576 buffer_capacity_input: u32,
13577 buffer_count_output: *mut u32,
13578 buffer: *mut c_char,
13579 ) -> Result;
13580 #[link_name = "xrGetReferenceSpaceBoundsRect"]
13581 pub fn get_reference_space_bounds_rect(
13582 session: Session,
13583 reference_space_type: ReferenceSpaceType,
13584 bounds: *mut Extent2Df,
13585 ) -> Result;
13586 #[link_name = "xrGetActionStateBoolean"]
13587 pub fn get_action_state_boolean(
13588 session: Session,
13589 get_info: *const ActionStateGetInfo,
13590 state: *mut ActionStateBoolean,
13591 ) -> Result;
13592 #[link_name = "xrGetActionStateFloat"]
13593 pub fn get_action_state_float(
13594 session: Session,
13595 get_info: *const ActionStateGetInfo,
13596 state: *mut ActionStateFloat,
13597 ) -> Result;
13598 #[link_name = "xrGetActionStateVector2f"]
13599 pub fn get_action_state_vector2f(
13600 session: Session,
13601 get_info: *const ActionStateGetInfo,
13602 state: *mut ActionStateVector2f,
13603 ) -> Result;
13604 #[link_name = "xrGetActionStatePose"]
13605 pub fn get_action_state_pose(
13606 session: Session,
13607 get_info: *const ActionStateGetInfo,
13608 state: *mut ActionStatePose,
13609 ) -> Result;
13610 #[link_name = "xrCreateActionSet"]
13611 pub fn create_action_set(
13612 instance: Instance,
13613 create_info: *const ActionSetCreateInfo,
13614 action_set: *mut ActionSet,
13615 ) -> Result;
13616 #[link_name = "xrDestroyActionSet"]
13617 pub fn destroy_action_set(action_set: ActionSet) -> Result;
13618 #[link_name = "xrCreateAction"]
13619 pub fn create_action(
13620 action_set: ActionSet,
13621 create_info: *const ActionCreateInfo,
13622 action: *mut Action,
13623 ) -> Result;
13624 #[link_name = "xrDestroyAction"]
13625 pub fn destroy_action(action: Action) -> Result;
13626 #[link_name = "xrSuggestInteractionProfileBindings"]
13627 pub fn suggest_interaction_profile_bindings(
13628 instance: Instance,
13629 suggested_bindings: *const InteractionProfileSuggestedBinding,
13630 ) -> Result;
13631 #[link_name = "xrAttachSessionActionSets"]
13632 pub fn attach_session_action_sets(
13633 session: Session,
13634 attach_info: *const SessionActionSetsAttachInfo,
13635 ) -> Result;
13636 #[link_name = "xrGetCurrentInteractionProfile"]
13637 pub fn get_current_interaction_profile(
13638 session: Session,
13639 top_level_user_path: Path,
13640 interaction_profile: *mut InteractionProfileState,
13641 ) -> Result;
13642 #[link_name = "xrSyncActions"]
13643 pub fn sync_actions(session: Session, sync_info: *const ActionsSyncInfo) -> Result;
13644 #[link_name = "xrEnumerateBoundSourcesForAction"]
13645 pub fn enumerate_bound_sources_for_action(
13646 session: Session,
13647 enumerate_info: *const BoundSourcesForActionEnumerateInfo,
13648 source_capacity_input: u32,
13649 source_count_output: *mut u32,
13650 sources: *mut Path,
13651 ) -> Result;
13652 #[link_name = "xrGetInputSourceLocalizedName"]
13653 pub fn get_input_source_localized_name(
13654 session: Session,
13655 get_info: *const InputSourceLocalizedNameGetInfo,
13656 buffer_capacity_input: u32,
13657 buffer_count_output: *mut u32,
13658 buffer: *mut c_char,
13659 ) -> Result;
13660 #[link_name = "xrLocateSpaces"]
13661 pub fn locate_spaces(
13662 session: Session,
13663 locate_info: *const SpacesLocateInfo,
13664 space_locations: *mut SpaceLocations,
13665 ) -> Result;
13666 #[link_name = "xrLocateSpacesKHR"]
13667 pub fn locate_spaces_khr(
13668 session: Session,
13669 locate_info: *const SpacesLocateInfo,
13670 space_locations: *mut SpaceLocations,
13671 ) -> Result;
13672}