1#ifndef OPENXR_H_
2#define OPENXR_H_ 1
3
4/*
5** Copyright 2017-2025 The Khronos Group Inc.
6**
7** SPDX-License-Identifier: Apache-2.0 OR MIT
8*/
9
10/*
11** This header is generated from the Khronos OpenXR XML API Registry.
12**
13*/
14
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20
21
22// XR_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23#define XR_VERSION_1_0 1
24#include "openxr_platform_defines.h"
25#define XR_MAKE_VERSION(major, minor, patch) \
26 ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))
27
28// OpenXR current version number.
29#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 49)
30
31// OpenXR 1.0 version number
32#define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
33
34#define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL)
35#define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL)
36#define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL)
37
38#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16
39
40
41#if !defined(XR_NULL_HANDLE)
42#if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED
43 #define XR_NULL_HANDLE nullptr
44#else
45 #define XR_NULL_HANDLE 0
46#endif
47#endif
48
49
50#define XR_NULL_SYSTEM_ID 0
51
52
53#define XR_NULL_PATH 0
54
55
56#define XR_SUCCEEDED(result) ((result) >= 0)
57
58
59#define XR_FAILED(result) ((result) < 0)
60
61
62#define XR_UNQUALIFIED_SUCCESS(result) ((result) == 0)
63
64
65#define XR_NO_DURATION 0
66
67
68#define XR_INFINITE_DURATION 0x7fffffffffffffffLL
69
70
71#define XR_MIN_HAPTIC_DURATION -1
72
73
74#define XR_FREQUENCY_UNSPECIFIED 0
75
76
77#define XR_MAX_EVENT_DATA_SIZE sizeof(XrEventDataBuffer)
78
79
80#define XR_EXTENSION_ENUM_BASE 1000000000
81
82
83#define XR_EXTENSION_ENUM_STRIDE 1000
84
85
86#if !defined(XR_MAY_ALIAS)
87#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4))
88#define XR_MAY_ALIAS __attribute__((__may_alias__))
89#else
90#define XR_MAY_ALIAS
91#endif
92#endif
93
94
95#if !defined(XR_DEFINE_HANDLE)
96#if (XR_PTR_SIZE == 8)
97 #define XR_DEFINE_HANDLE(object) typedef struct object##_T* object;
98#else
99 #define XR_DEFINE_HANDLE(object) typedef uint64_t object;
100#endif
101#endif
102
103
104#if !defined(XR_DEFINE_OPAQUE_64)
105 #if (XR_PTR_SIZE == 8)
106 #define XR_DEFINE_OPAQUE_64(object) typedef struct object##_T* object;
107 #else
108 #define XR_DEFINE_OPAQUE_64(object) typedef uint64_t object;
109 #endif
110#endif
111
112
113#if !defined(XR_DEFINE_ATOM)
114 #define XR_DEFINE_ATOM(object) typedef uint64_t object;
115#endif
116
117typedef uint64_t XrVersion;
118typedef uint64_t XrFlags64;
119XR_DEFINE_ATOM(XrSystemId)
120typedef uint32_t XrBool32;
121XR_DEFINE_ATOM(XrPath)
122typedef int64_t XrTime;
123typedef int64_t XrDuration;
124XR_DEFINE_HANDLE(XrInstance)
125XR_DEFINE_HANDLE(XrSession)
126XR_DEFINE_HANDLE(XrSpace)
127XR_DEFINE_HANDLE(XrAction)
128XR_DEFINE_HANDLE(XrSwapchain)
129XR_DEFINE_HANDLE(XrActionSet)
130#define XR_TRUE 1
131#define XR_FALSE 0
132#define XR_MAX_EXTENSION_NAME_SIZE 128
133#define XR_MAX_API_LAYER_NAME_SIZE 256
134#define XR_MAX_API_LAYER_DESCRIPTION_SIZE 256
135#define XR_MAX_SYSTEM_NAME_SIZE 256
136#define XR_MAX_APPLICATION_NAME_SIZE 128
137#define XR_MAX_ENGINE_NAME_SIZE 128
138#define XR_MAX_RUNTIME_NAME_SIZE 128
139#define XR_MAX_PATH_LENGTH 256
140#define XR_MAX_STRUCTURE_NAME_SIZE 64
141#define XR_MAX_RESULT_STRING_SIZE 64
142#define XR_MAX_ACTION_SET_NAME_SIZE 64
143#define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE 128
144#define XR_MAX_ACTION_NAME_SIZE 64
145#define XR_MAX_LOCALIZED_ACTION_NAME_SIZE 128
146
147typedef enum XrResult {
148 XR_SUCCESS = 0,
149 XR_TIMEOUT_EXPIRED = 1,
150 XR_SESSION_LOSS_PENDING = 3,
151 XR_EVENT_UNAVAILABLE = 4,
152 XR_SPACE_BOUNDS_UNAVAILABLE = 7,
153 XR_SESSION_NOT_FOCUSED = 8,
154 XR_FRAME_DISCARDED = 9,
155 XR_ERROR_VALIDATION_FAILURE = -1,
156 XR_ERROR_RUNTIME_FAILURE = -2,
157 XR_ERROR_OUT_OF_MEMORY = -3,
158 XR_ERROR_API_VERSION_UNSUPPORTED = -4,
159 XR_ERROR_INITIALIZATION_FAILED = -6,
160 XR_ERROR_FUNCTION_UNSUPPORTED = -7,
161 XR_ERROR_FEATURE_UNSUPPORTED = -8,
162 XR_ERROR_EXTENSION_NOT_PRESENT = -9,
163 XR_ERROR_LIMIT_REACHED = -10,
164 XR_ERROR_SIZE_INSUFFICIENT = -11,
165 XR_ERROR_HANDLE_INVALID = -12,
166 XR_ERROR_INSTANCE_LOST = -13,
167 XR_ERROR_SESSION_RUNNING = -14,
168 XR_ERROR_SESSION_NOT_RUNNING = -16,
169 XR_ERROR_SESSION_LOST = -17,
170 XR_ERROR_SYSTEM_INVALID = -18,
171 XR_ERROR_PATH_INVALID = -19,
172 XR_ERROR_PATH_COUNT_EXCEEDED = -20,
173 XR_ERROR_PATH_FORMAT_INVALID = -21,
174 XR_ERROR_PATH_UNSUPPORTED = -22,
175 XR_ERROR_LAYER_INVALID = -23,
176 XR_ERROR_LAYER_LIMIT_EXCEEDED = -24,
177 XR_ERROR_SWAPCHAIN_RECT_INVALID = -25,
178 XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26,
179 XR_ERROR_ACTION_TYPE_MISMATCH = -27,
180 XR_ERROR_SESSION_NOT_READY = -28,
181 XR_ERROR_SESSION_NOT_STOPPING = -29,
182 XR_ERROR_TIME_INVALID = -30,
183 XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31,
184 XR_ERROR_FILE_ACCESS_ERROR = -32,
185 XR_ERROR_FILE_CONTENTS_INVALID = -33,
186 XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34,
187 XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35,
188 XR_ERROR_API_LAYER_NOT_PRESENT = -36,
189 XR_ERROR_CALL_ORDER_INVALID = -37,
190 XR_ERROR_GRAPHICS_DEVICE_INVALID = -38,
191 XR_ERROR_POSE_INVALID = -39,
192 XR_ERROR_INDEX_OUT_OF_RANGE = -40,
193 XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41,
194 XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42,
195 XR_ERROR_NAME_DUPLICATED = -44,
196 XR_ERROR_NAME_INVALID = -45,
197 XR_ERROR_ACTIONSET_NOT_ATTACHED = -46,
198 XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47,
199 XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48,
200 XR_ERROR_LOCALIZED_NAME_INVALID = -49,
201 XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50,
202 XR_ERROR_RUNTIME_UNAVAILABLE = -51,
203 XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED = -1000710001,
204 XR_ERROR_PERMISSION_INSUFFICIENT = -1000710000,
205 XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000,
206 XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001,
207 XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001,
208 XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000,
209 XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000,
210 XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000,
211 XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000,
212 XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001,
213 XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002,
214 XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003,
215 XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004,
216 XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005,
217 XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000,
218 XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000,
219 XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB = -1000113000,
220 XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB = -1000113001,
221 XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB = -1000113002,
222 XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB = -1000113003,
223 XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB = -1000118000,
224 XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB = -1000118001,
225 XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB = -1000118002,
226 XR_ERROR_NOT_PERMITTED_PASSTHROUGH_FB = -1000118003,
227 XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB = -1000118004,
228 XR_ERROR_UNKNOWN_PASSTHROUGH_FB = -1000118050,
229 XR_ERROR_RENDER_MODEL_KEY_INVALID_FB = -1000119000,
230 XR_RENDER_MODEL_UNAVAILABLE_FB = 1000119020,
231 XR_ERROR_MARKER_NOT_TRACKED_VARJO = -1000124000,
232 XR_ERROR_MARKER_ID_INVALID_VARJO = -1000124001,
233 XR_ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML = -1000138000,
234 XR_ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML = -1000138001,
235 XR_ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML = -1000138002,
236 XR_ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML = -1000138003,
237 XR_ERROR_MARKER_INVALID_ML = -1000138004,
238 XR_ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML = -1000139000,
239 XR_ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML = -1000139001,
240 XR_ERROR_LOCALIZATION_MAP_FAIL_ML = -1000139002,
241 XR_ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML = -1000139003,
242 XR_ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML = -1000139004,
243 XR_ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML = -1000139005,
244 XR_ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML = -1000139006,
245 XR_ERROR_SPATIAL_ANCHORS_PERMISSION_DENIED_ML = -1000140000,
246 XR_ERROR_SPATIAL_ANCHORS_NOT_LOCALIZED_ML = -1000140001,
247 XR_ERROR_SPATIAL_ANCHORS_OUT_OF_MAP_BOUNDS_ML = -1000140002,
248 XR_ERROR_SPATIAL_ANCHORS_SPACE_NOT_LOCATABLE_ML = -1000140003,
249 XR_ERROR_SPATIAL_ANCHORS_ANCHOR_NOT_FOUND_ML = -1000141000,
250 XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001,
251 XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002,
252 XR_SCENE_MARKER_DATA_NOT_STRING_MSFT = 1000147000,
253 XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB = -1000169000,
254 XR_ERROR_SPACE_LOCALIZATION_FAILED_FB = -1000169001,
255 XR_ERROR_SPACE_NETWORK_TIMEOUT_FB = -1000169002,
256 XR_ERROR_SPACE_NETWORK_REQUEST_FAILED_FB = -1000169003,
257 XR_ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB = -1000169004,
258 XR_ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META = -1000266000,
259 XR_ENVIRONMENT_DEPTH_NOT_AVAILABLE_META = 1000291000,
260 XR_ERROR_RENDER_MODEL_ID_INVALID_EXT = -1000300000,
261 XR_ERROR_RENDER_MODEL_ASSET_UNAVAILABLE_EXT = -1000300001,
262 XR_ERROR_RENDER_MODEL_GLTF_EXTENSION_REQUIRED_EXT = -1000300002,
263 XR_ERROR_NOT_INTERACTION_RENDER_MODEL_EXT = -1000301000,
264 XR_ERROR_HINT_ALREADY_SET_QCOM = -1000306000,
265 XR_ERROR_NOT_AN_ANCHOR_HTC = -1000319000,
266 XR_ERROR_SPATIAL_ENTITY_ID_INVALID_BD = -1000389000,
267 XR_ERROR_SPATIAL_SENSING_SERVICE_UNAVAILABLE_BD = -1000389001,
268 XR_ERROR_ANCHOR_NOT_SUPPORTED_FOR_ENTITY_BD = -1000389002,
269 XR_ERROR_SPATIAL_ANCHOR_NOT_FOUND_BD = -1000390000,
270 XR_ERROR_SPATIAL_ANCHOR_SHARING_NETWORK_TIMEOUT_BD = -1000391000,
271 XR_ERROR_SPATIAL_ANCHOR_SHARING_AUTHENTICATION_FAILURE_BD = -1000391001,
272 XR_ERROR_SPATIAL_ANCHOR_SHARING_NETWORK_FAILURE_BD = -1000391002,
273 XR_ERROR_SPATIAL_ANCHOR_SHARING_LOCALIZATION_FAIL_BD = -1000391003,
274 XR_ERROR_SPATIAL_ANCHOR_SHARING_MAP_INSUFFICIENT_BD = -1000391004,
275 XR_ERROR_SCENE_CAPTURE_FAILURE_BD = -1000392000,
276 XR_ERROR_SPACE_NOT_LOCATABLE_EXT = -1000429000,
277 XR_ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT = -1000429001,
278 XR_ERROR_FUTURE_PENDING_EXT = -1000469001,
279 XR_ERROR_FUTURE_INVALID_EXT = -1000469002,
280 XR_ERROR_SYSTEM_NOTIFICATION_PERMISSION_DENIED_ML = -1000473000,
281 XR_ERROR_SYSTEM_NOTIFICATION_INCOMPATIBLE_SKU_ML = -1000473001,
282 XR_ERROR_WORLD_MESH_DETECTOR_PERMISSION_DENIED_ML = -1000474000,
283 XR_ERROR_WORLD_MESH_DETECTOR_SPACE_NOT_LOCATABLE_ML = -1000474001,
284 XR_ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML = 1000482000,
285 XR_ERROR_COLOCATION_DISCOVERY_NETWORK_FAILED_META = -1000571001,
286 XR_ERROR_COLOCATION_DISCOVERY_NO_DISCOVERY_METHOD_META = -1000571002,
287 XR_COLOCATION_DISCOVERY_ALREADY_ADVERTISING_META = 1000571003,
288 XR_COLOCATION_DISCOVERY_ALREADY_DISCOVERING_META = 1000571004,
289 XR_ERROR_SPACE_GROUP_NOT_FOUND_META = -1000572002,
290 XR_ERROR_SPATIAL_CAPABILITY_UNSUPPORTED_EXT = -1000740001,
291 XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT = -1000740002,
292 XR_ERROR_SPATIAL_BUFFER_ID_INVALID_EXT = -1000740003,
293 XR_ERROR_SPATIAL_COMPONENT_UNSUPPORTED_FOR_CAPABILITY_EXT = -1000740004,
294 XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT = -1000740005,
295 XR_ERROR_SPATIAL_COMPONENT_NOT_ENABLED_EXT = -1000740006,
296 XR_ERROR_SPATIAL_PERSISTENCE_SCOPE_UNSUPPORTED_EXT = -1000763001,
297 XR_ERROR_SPATIAL_PERSISTENCE_SCOPE_INCOMPATIBLE_EXT = -1000781001,
298 XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR = XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED,
299 XR_ERROR_PERMISSION_INSUFFICIENT_KHR = XR_ERROR_PERMISSION_INSUFFICIENT,
300 XR_RESULT_MAX_ENUM = 0x7FFFFFFF
301} XrResult;
302
303typedef enum XrStructureType {
304 XR_TYPE_UNKNOWN = 0,
305 XR_TYPE_API_LAYER_PROPERTIES = 1,
306 XR_TYPE_EXTENSION_PROPERTIES = 2,
307 XR_TYPE_INSTANCE_CREATE_INFO = 3,
308 XR_TYPE_SYSTEM_GET_INFO = 4,
309 XR_TYPE_SYSTEM_PROPERTIES = 5,
310 XR_TYPE_VIEW_LOCATE_INFO = 6,
311 XR_TYPE_VIEW = 7,
312 XR_TYPE_SESSION_CREATE_INFO = 8,
313 XR_TYPE_SWAPCHAIN_CREATE_INFO = 9,
314 XR_TYPE_SESSION_BEGIN_INFO = 10,
315 XR_TYPE_VIEW_STATE = 11,
316 XR_TYPE_FRAME_END_INFO = 12,
317 XR_TYPE_HAPTIC_VIBRATION = 13,
318 XR_TYPE_EVENT_DATA_BUFFER = 16,
319 XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17,
320 XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18,
321 XR_TYPE_ACTION_STATE_BOOLEAN = 23,
322 XR_TYPE_ACTION_STATE_FLOAT = 24,
323 XR_TYPE_ACTION_STATE_VECTOR2F = 25,
324 XR_TYPE_ACTION_STATE_POSE = 27,
325 XR_TYPE_ACTION_SET_CREATE_INFO = 28,
326 XR_TYPE_ACTION_CREATE_INFO = 29,
327 XR_TYPE_INSTANCE_PROPERTIES = 32,
328 XR_TYPE_FRAME_WAIT_INFO = 33,
329 XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35,
330 XR_TYPE_COMPOSITION_LAYER_QUAD = 36,
331 XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37,
332 XR_TYPE_ACTION_SPACE_CREATE_INFO = 38,
333 XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40,
334 XR_TYPE_VIEW_CONFIGURATION_VIEW = 41,
335 XR_TYPE_SPACE_LOCATION = 42,
336 XR_TYPE_SPACE_VELOCITY = 43,
337 XR_TYPE_FRAME_STATE = 44,
338 XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45,
339 XR_TYPE_FRAME_BEGIN_INFO = 46,
340 XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48,
341 XR_TYPE_EVENT_DATA_EVENTS_LOST = 49,
342 XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51,
343 XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52,
344 XR_TYPE_INTERACTION_PROFILE_STATE = 53,
345 XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55,
346 XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56,
347 XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57,
348 XR_TYPE_ACTION_STATE_GET_INFO = 58,
349 XR_TYPE_HAPTIC_ACTION_INFO = 59,
350 XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO = 60,
351 XR_TYPE_ACTIONS_SYNC_INFO = 61,
352 XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO = 62,
353 XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO = 63,
354 XR_TYPE_SPACES_LOCATE_INFO = 1000471000,
355 XR_TYPE_SPACE_LOCATIONS = 1000471001,
356 XR_TYPE_SPACE_VELOCITIES = 1000471002,
357 XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000,
358 XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000,
359 XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000,
360 XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000,
361 XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000,
362 XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000,
363 XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000,
364 XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000,
365 XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001,
366 XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002,
367 XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003,
368 XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000,
369 XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001,
370 XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002,
371 XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003,
372 XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004,
373 XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005,
374 XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001,
375 XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002,
376 XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003,
377 XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000,
378 XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001,
379 XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002,
380 XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000,
381 XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001,
382 XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002,
383 XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000,
384 XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001,
385 XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002,
386 XR_TYPE_GRAPHICS_BINDING_METAL_KHR = 1000029000,
387 XR_TYPE_SWAPCHAIN_IMAGE_METAL_KHR = 1000029001,
388 XR_TYPE_GRAPHICS_REQUIREMENTS_METAL_KHR = 1000029002,
389 XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT = 1000030000,
390 XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT = 1000030001,
391 XR_TYPE_VISIBILITY_MASK_KHR = 1000031000,
392 XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001,
393 XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX = 1000033000,
394 XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX = 1000033003,
395 XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR = 1000034000,
396 XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000,
397 XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001,
398 XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB = 1000040000,
399 XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB = 1000041001,
400 XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000,
401 XR_TYPE_GRAPHICS_BINDING_EGL_MNDX = 1000048004,
402 XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000,
403 XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT = 1000049001,
404 XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT = 1000049002,
405 XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT = 1000049003,
406 XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000,
407 XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT = 1000051001,
408 XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT = 1000051002,
409 XR_TYPE_HAND_JOINT_LOCATIONS_EXT = 1000051003,
410 XR_TYPE_HAND_JOINT_VELOCITIES_EXT = 1000051004,
411 XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT = 1000052000,
412 XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT = 1000052001,
413 XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT = 1000052002,
414 XR_TYPE_HAND_MESH_MSFT = 1000052003,
415 XR_TYPE_HAND_POSE_TYPE_INFO_MSFT = 1000052004,
416 XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT = 1000053000,
417 XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT = 1000053001,
418 XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT = 1000053002,
419 XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT = 1000053003,
420 XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT = 1000053004,
421 XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT = 1000053005,
422 XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT = 1000055000,
423 XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT = 1000055001,
424 XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT = 1000055002,
425 XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT = 1000055003,
426 XR_TYPE_CONTROLLER_MODEL_STATE_MSFT = 1000055004,
427 XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC = 1000059000,
428 XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT = 1000063000,
429 XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT = 1000066000,
430 XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001,
431 XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB = 1000070000,
432 XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB = 1000072000,
433 XR_TYPE_BODY_TRACKER_CREATE_INFO_FB = 1000076001,
434 XR_TYPE_BODY_JOINTS_LOCATE_INFO_FB = 1000076002,
435 XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_FB = 1000076004,
436 XR_TYPE_BODY_JOINT_LOCATIONS_FB = 1000076005,
437 XR_TYPE_BODY_SKELETON_FB = 1000076006,
438 XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT = 1000078000,
439 XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000,
440 XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000,
441 XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR = 1000089000,
442 XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000,
443 XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR = 1000090001,
444 XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR = 1000090003,
445 XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR = 1000091000,
446 XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT = 1000097000,
447 XR_TYPE_SCENE_CREATE_INFO_MSFT = 1000097001,
448 XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT = 1000097002,
449 XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT = 1000097003,
450 XR_TYPE_SCENE_COMPONENTS_MSFT = 1000097004,
451 XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT = 1000097005,
452 XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT = 1000097006,
453 XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT = 1000097007,
454 XR_TYPE_SCENE_OBJECTS_MSFT = 1000097008,
455 XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT = 1000097009,
456 XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT = 1000097010,
457 XR_TYPE_SCENE_PLANES_MSFT = 1000097011,
458 XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT = 1000097012,
459 XR_TYPE_SCENE_MESHES_MSFT = 1000097013,
460 XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT = 1000097014,
461 XR_TYPE_SCENE_MESH_BUFFERS_MSFT = 1000097015,
462 XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT = 1000097016,
463 XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT = 1000097017,
464 XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT = 1000097018,
465 XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT = 1000098000,
466 XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT = 1000098001,
467 XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB = 1000101000,
468 XR_TYPE_VIVE_TRACKER_PATHS_HTCX = 1000103000,
469 XR_TYPE_EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX = 1000103001,
470 XR_TYPE_SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC = 1000104000,
471 XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC = 1000104001,
472 XR_TYPE_FACIAL_EXPRESSIONS_HTC = 1000104002,
473 XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB = 1000108000,
474 XR_TYPE_HAND_TRACKING_MESH_FB = 1000110001,
475 XR_TYPE_HAND_TRACKING_SCALE_FB = 1000110003,
476 XR_TYPE_HAND_TRACKING_AIM_STATE_FB = 1000111001,
477 XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB = 1000112000,
478 XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB = 1000113004,
479 XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB = 1000113003,
480 XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB = 1000113007,
481 XR_TYPE_SPACE_COMPONENT_STATUS_FB = 1000113001,
482 XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB = 1000113005,
483 XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB = 1000113006,
484 XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB = 1000114000,
485 XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB = 1000114001,
486 XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB = 1000114002,
487 XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB = 1000115000,
488 XR_TYPE_KEYBOARD_SPACE_CREATE_INFO_FB = 1000116009,
489 XR_TYPE_KEYBOARD_TRACKING_QUERY_FB = 1000116004,
490 XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB = 1000116002,
491 XR_TYPE_TRIANGLE_MESH_CREATE_INFO_FB = 1000117001,
492 XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB = 1000118000,
493 XR_TYPE_PASSTHROUGH_CREATE_INFO_FB = 1000118001,
494 XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_FB = 1000118002,
495 XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB = 1000118003,
496 XR_TYPE_GEOMETRY_INSTANCE_CREATE_INFO_FB = 1000118004,
497 XR_TYPE_GEOMETRY_INSTANCE_TRANSFORM_FB = 1000118005,
498 XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES2_FB = 1000118006,
499 XR_TYPE_PASSTHROUGH_STYLE_FB = 1000118020,
500 XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB = 1000118021,
501 XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB = 1000118022,
502 XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB = 1000118023,
503 XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB = 1000118030,
504 XR_TYPE_RENDER_MODEL_PATH_INFO_FB = 1000119000,
505 XR_TYPE_RENDER_MODEL_PROPERTIES_FB = 1000119001,
506 XR_TYPE_RENDER_MODEL_BUFFER_FB = 1000119002,
507 XR_TYPE_RENDER_MODEL_LOAD_INFO_FB = 1000119003,
508 XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB = 1000119004,
509 XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB = 1000119005,
510 XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000,
511 XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO = 1000121000,
512 XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO = 1000121001,
513 XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO = 1000121002,
514 XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO = 1000122000,
515 XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO = 1000124000,
516 XR_TYPE_EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO = 1000124001,
517 XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO = 1000124002,
518 XR_TYPE_FRAME_END_INFO_ML = 1000135000,
519 XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML = 1000136000,
520 XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML = 1000137000,
521 XR_TYPE_SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML = 1000138000,
522 XR_TYPE_MARKER_DETECTOR_CREATE_INFO_ML = 1000138001,
523 XR_TYPE_MARKER_DETECTOR_ARUCO_INFO_ML = 1000138002,
524 XR_TYPE_MARKER_DETECTOR_SIZE_INFO_ML = 1000138003,
525 XR_TYPE_MARKER_DETECTOR_APRIL_TAG_INFO_ML = 1000138004,
526 XR_TYPE_MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML = 1000138005,
527 XR_TYPE_MARKER_DETECTOR_SNAPSHOT_INFO_ML = 1000138006,
528 XR_TYPE_MARKER_DETECTOR_STATE_ML = 1000138007,
529 XR_TYPE_MARKER_SPACE_CREATE_INFO_ML = 1000138008,
530 XR_TYPE_LOCALIZATION_MAP_ML = 1000139000,
531 XR_TYPE_EVENT_DATA_LOCALIZATION_CHANGED_ML = 1000139001,
532 XR_TYPE_MAP_LOCALIZATION_REQUEST_INFO_ML = 1000139002,
533 XR_TYPE_LOCALIZATION_MAP_IMPORT_INFO_ML = 1000139003,
534 XR_TYPE_LOCALIZATION_ENABLE_EVENTS_INFO_ML = 1000139004,
535 XR_TYPE_SPATIAL_ANCHORS_CREATE_INFO_FROM_POSE_ML = 1000140000,
536 XR_TYPE_CREATE_SPATIAL_ANCHORS_COMPLETION_ML = 1000140001,
537 XR_TYPE_SPATIAL_ANCHOR_STATE_ML = 1000140002,
538 XR_TYPE_SPATIAL_ANCHORS_CREATE_STORAGE_INFO_ML = 1000141000,
539 XR_TYPE_SPATIAL_ANCHORS_QUERY_INFO_RADIUS_ML = 1000141001,
540 XR_TYPE_SPATIAL_ANCHORS_QUERY_COMPLETION_ML = 1000141002,
541 XR_TYPE_SPATIAL_ANCHORS_CREATE_INFO_FROM_UUIDS_ML = 1000141003,
542 XR_TYPE_SPATIAL_ANCHORS_PUBLISH_INFO_ML = 1000141004,
543 XR_TYPE_SPATIAL_ANCHORS_PUBLISH_COMPLETION_ML = 1000141005,
544 XR_TYPE_SPATIAL_ANCHORS_DELETE_INFO_ML = 1000141006,
545 XR_TYPE_SPATIAL_ANCHORS_DELETE_COMPLETION_ML = 1000141007,
546 XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_INFO_ML = 1000141008,
547 XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_COMPLETION_ML = 1000141009,
548 XR_TYPE_SPATIAL_ANCHORS_PUBLISH_COMPLETION_DETAILS_ML = 1000141010,
549 XR_TYPE_SPATIAL_ANCHORS_DELETE_COMPLETION_DETAILS_ML = 1000141011,
550 XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_COMPLETION_DETAILS_ML = 1000141012,
551 XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML = 1000472000,
552 XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML = 1000472001,
553 XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML = 1000472002,
554 XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000,
555 XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001,
556 XR_TYPE_SCENE_MARKERS_MSFT = 1000147000,
557 XR_TYPE_SCENE_MARKER_TYPE_FILTER_MSFT = 1000147001,
558 XR_TYPE_SCENE_MARKER_QR_CODES_MSFT = 1000147002,
559 XR_TYPE_SPACE_QUERY_INFO_FB = 1000156001,
560 XR_TYPE_SPACE_QUERY_RESULTS_FB = 1000156002,
561 XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB = 1000156003,
562 XR_TYPE_SPACE_UUID_FILTER_INFO_FB = 1000156054,
563 XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB = 1000156052,
564 XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB = 1000156103,
565 XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB = 1000156104,
566 XR_TYPE_SPACE_SAVE_INFO_FB = 1000158000,
567 XR_TYPE_SPACE_ERASE_INFO_FB = 1000158001,
568 XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB = 1000158106,
569 XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB = 1000158107,
570 XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB = 1000160000,
571 XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB = 1000161000,
572 XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB = 1000162000,
573 XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB = 1000163000,
574 XR_TYPE_SPACE_SHARE_INFO_FB = 1000169001,
575 XR_TYPE_EVENT_DATA_SPACE_SHARE_COMPLETE_FB = 1000169002,
576 XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000,
577 XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001,
578 XR_TYPE_HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB = 1000173001,
579 XR_TYPE_SEMANTIC_LABELS_FB = 1000175000,
580 XR_TYPE_ROOM_LAYOUT_FB = 1000175001,
581 XR_TYPE_BOUNDARY_2D_FB = 1000175002,
582 XR_TYPE_SEMANTIC_LABELS_SUPPORT_INFO_FB = 1000175010,
583 XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE = 1000196000,
584 XR_TYPE_EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB = 1000198001,
585 XR_TYPE_SCENE_CAPTURE_REQUEST_INFO_FB = 1000198050,
586 XR_TYPE_SPACE_CONTAINER_FB = 1000199000,
587 XR_TYPE_FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META = 1000200000,
588 XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META = 1000200001,
589 XR_TYPE_SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META = 1000200002,
590 XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_FB = 1000201004,
591 XR_TYPE_FACE_TRACKER_CREATE_INFO_FB = 1000201005,
592 XR_TYPE_FACE_EXPRESSION_INFO_FB = 1000201002,
593 XR_TYPE_FACE_EXPRESSION_WEIGHTS_FB = 1000201006,
594 XR_TYPE_EYE_TRACKER_CREATE_INFO_FB = 1000202001,
595 XR_TYPE_EYE_GAZES_INFO_FB = 1000202002,
596 XR_TYPE_EYE_GAZES_FB = 1000202003,
597 XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_FB = 1000202004,
598 XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB = 1000203002,
599 XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB = 1000204000,
600 XR_TYPE_HAPTIC_PCM_VIBRATION_FB = 1000209001,
601 XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB = 1000209002,
602 XR_TYPE_FRAME_SYNTHESIS_INFO_EXT = 1000211000,
603 XR_TYPE_FRAME_SYNTHESIS_CONFIG_VIEW_EXT = 1000211001,
604 XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB = 1000212000,
605 XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META = 1000216000,
606 XR_TYPE_PASSTHROUGH_PREFERENCES_META = 1000217000,
607 XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META = 1000219001,
608 XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META = 1000219002,
609 XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META = 1000219003,
610 XR_TYPE_VIRTUAL_KEYBOARD_LOCATION_INFO_META = 1000219004,
611 XR_TYPE_VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META = 1000219005,
612 XR_TYPE_VIRTUAL_KEYBOARD_ANIMATION_STATE_META = 1000219006,
613 XR_TYPE_VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META = 1000219007,
614 XR_TYPE_VIRTUAL_KEYBOARD_TEXTURE_DATA_META = 1000219009,
615 XR_TYPE_VIRTUAL_KEYBOARD_INPUT_INFO_META = 1000219010,
616 XR_TYPE_VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META = 1000219011,
617 XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META = 1000219014,
618 XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META = 1000219015,
619 XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META = 1000219016,
620 XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META = 1000219017,
621 XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META = 1000219018,
622 XR_TYPE_EXTERNAL_CAMERA_OCULUS = 1000226000,
623 XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000,
624 XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001,
625 XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002,
626 XR_TYPE_SPACE_LIST_SAVE_INFO_FB = 1000238000,
627 XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB = 1000238001,
628 XR_TYPE_SPACE_USER_CREATE_INFO_FB = 1000241001,
629 XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META = 1000245000,
630 XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META = 1000254000,
631 XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META = 1000254001,
632 XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META = 1000266000,
633 XR_TYPE_PASSTHROUGH_COLOR_LUT_CREATE_INFO_META = 1000266001,
634 XR_TYPE_PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META = 1000266002,
635 XR_TYPE_PASSTHROUGH_COLOR_MAP_LUT_META = 1000266100,
636 XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META = 1000266101,
637 XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META = 1000269001,
638 XR_TYPE_SPACE_TRIANGLE_MESH_META = 1000269002,
639 XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FULL_BODY_META = 1000274000,
640 XR_TYPE_EVENT_DATA_PASSTHROUGH_LAYER_RESUMED_META = 1000282000,
641 XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB = 1000287013,
642 XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB = 1000287014,
643 XR_TYPE_FACE_EXPRESSION_INFO2_FB = 1000287015,
644 XR_TYPE_FACE_EXPRESSION_WEIGHTS2_FB = 1000287016,
645 XR_TYPE_SYSTEM_SPATIAL_ENTITY_SHARING_PROPERTIES_META = 1000290000,
646 XR_TYPE_SHARE_SPACES_INFO_META = 1000290001,
647 XR_TYPE_EVENT_DATA_SHARE_SPACES_COMPLETE_META = 1000290002,
648 XR_TYPE_ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META = 1000291000,
649 XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META = 1000291001,
650 XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META = 1000291002,
651 XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META = 1000291003,
652 XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META = 1000291004,
653 XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META = 1000291005,
654 XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META = 1000291006,
655 XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META = 1000291007,
656 XR_TYPE_RENDER_MODEL_CREATE_INFO_EXT = 1000300000,
657 XR_TYPE_RENDER_MODEL_PROPERTIES_GET_INFO_EXT = 1000300001,
658 XR_TYPE_RENDER_MODEL_PROPERTIES_EXT = 1000300002,
659 XR_TYPE_RENDER_MODEL_SPACE_CREATE_INFO_EXT = 1000300003,
660 XR_TYPE_RENDER_MODEL_STATE_GET_INFO_EXT = 1000300004,
661 XR_TYPE_RENDER_MODEL_STATE_EXT = 1000300005,
662 XR_TYPE_RENDER_MODEL_ASSET_CREATE_INFO_EXT = 1000300006,
663 XR_TYPE_RENDER_MODEL_ASSET_DATA_GET_INFO_EXT = 1000300007,
664 XR_TYPE_RENDER_MODEL_ASSET_DATA_EXT = 1000300008,
665 XR_TYPE_RENDER_MODEL_ASSET_PROPERTIES_GET_INFO_EXT = 1000300009,
666 XR_TYPE_RENDER_MODEL_ASSET_PROPERTIES_EXT = 1000300010,
667 XR_TYPE_INTERACTION_RENDER_MODEL_IDS_ENUMERATE_INFO_EXT = 1000301000,
668 XR_TYPE_INTERACTION_RENDER_MODEL_SUBACTION_PATH_INFO_EXT = 1000301001,
669 XR_TYPE_EVENT_DATA_INTERACTION_RENDER_MODELS_CHANGED_EXT = 1000301002,
670 XR_TYPE_INTERACTION_RENDER_MODEL_TOP_LEVEL_USER_PATH_GET_INFO_EXT = 1000301003,
671 XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC = 1000317001,
672 XR_TYPE_PASSTHROUGH_COLOR_HTC = 1000317002,
673 XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC = 1000317003,
674 XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004,
675 XR_TYPE_FOVEATION_APPLY_INFO_HTC = 1000318000,
676 XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC = 1000318001,
677 XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC = 1000318002,
678 XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC = 1000319000,
679 XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC = 1000319001,
680 XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_HTC = 1000320000,
681 XR_TYPE_BODY_TRACKER_CREATE_INFO_HTC = 1000320001,
682 XR_TYPE_BODY_JOINTS_LOCATE_INFO_HTC = 1000320002,
683 XR_TYPE_BODY_JOINT_LOCATIONS_HTC = 1000320003,
684 XR_TYPE_BODY_SKELETON_HTC = 1000320004,
685 XR_TYPE_ACTIVE_ACTION_SET_PRIORITIES_EXT = 1000373000,
686 XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX = 1000375000,
687 XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX = 1000375001,
688 XR_TYPE_BODY_TRACKER_CREATE_INFO_BD = 1000385001,
689 XR_TYPE_BODY_JOINTS_LOCATE_INFO_BD = 1000385002,
690 XR_TYPE_BODY_JOINT_LOCATIONS_BD = 1000385003,
691 XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_BD = 1000385004,
692 XR_TYPE_SYSTEM_SPATIAL_SENSING_PROPERTIES_BD = 1000389000,
693 XR_TYPE_SPATIAL_ENTITY_COMPONENT_GET_INFO_BD = 1000389001,
694 XR_TYPE_SPATIAL_ENTITY_LOCATION_GET_INFO_BD = 1000389002,
695 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_LOCATION_BD = 1000389003,
696 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_SEMANTIC_BD = 1000389004,
697 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_BOUNDING_BOX_2D_BD = 1000389005,
698 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_POLYGON_BD = 1000389006,
699 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_BOUNDING_BOX_3D_BD = 1000389007,
700 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_TRIANGLE_MESH_BD = 1000389008,
701 XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_BD = 1000389009,
702 XR_TYPE_SENSE_DATA_PROVIDER_START_INFO_BD = 1000389010,
703 XR_TYPE_EVENT_DATA_SENSE_DATA_PROVIDER_STATE_CHANGED_BD = 1000389011,
704 XR_TYPE_EVENT_DATA_SENSE_DATA_UPDATED_BD = 1000389012,
705 XR_TYPE_SENSE_DATA_QUERY_INFO_BD = 1000389013,
706 XR_TYPE_SENSE_DATA_QUERY_COMPLETION_BD = 1000389014,
707 XR_TYPE_SENSE_DATA_FILTER_UUID_BD = 1000389015,
708 XR_TYPE_SENSE_DATA_FILTER_SEMANTIC_BD = 1000389016,
709 XR_TYPE_QUERIED_SENSE_DATA_GET_INFO_BD = 1000389017,
710 XR_TYPE_QUERIED_SENSE_DATA_BD = 1000389018,
711 XR_TYPE_SPATIAL_ENTITY_STATE_BD = 1000389019,
712 XR_TYPE_SPATIAL_ENTITY_ANCHOR_CREATE_INFO_BD = 1000389020,
713 XR_TYPE_ANCHOR_SPACE_CREATE_INFO_BD = 1000389021,
714 XR_TYPE_SYSTEM_SPATIAL_ANCHOR_PROPERTIES_BD = 1000390000,
715 XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_BD = 1000390001,
716 XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION_BD = 1000390002,
717 XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_BD = 1000390003,
718 XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO_BD = 1000390004,
719 XR_TYPE_SYSTEM_SPATIAL_ANCHOR_SHARING_PROPERTIES_BD = 1000391000,
720 XR_TYPE_SPATIAL_ANCHOR_SHARE_INFO_BD = 1000391001,
721 XR_TYPE_SHARED_SPATIAL_ANCHOR_DOWNLOAD_INFO_BD = 1000391002,
722 XR_TYPE_SYSTEM_SPATIAL_SCENE_PROPERTIES_BD = 1000392000,
723 XR_TYPE_SCENE_CAPTURE_INFO_BD = 1000392001,
724 XR_TYPE_SYSTEM_SPATIAL_MESH_PROPERTIES_BD = 1000393000,
725 XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH_BD = 1000393001,
726 XR_TYPE_FUTURE_POLL_RESULT_PROGRESS_BD = 1000394001,
727 XR_TYPE_SYSTEM_SPATIAL_PLANE_PROPERTIES_BD = 1000396000,
728 XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_PLANE_ORIENTATION_BD = 1000396001,
729 XR_TYPE_SENSE_DATA_FILTER_PLANE_ORIENTATION_BD = 1000396002,
730 XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT = 1000428000,
731 XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT = 1000428001,
732 XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001,
733 XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT = 1000429002,
734 XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT = 1000429003,
735 XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT = 1000429004,
736 XR_TYPE_PLANE_DETECTOR_LOCATION_EXT = 1000429005,
737 XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT = 1000429006,
738 XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT = 1000429007,
739 XR_TYPE_FUTURE_CANCEL_INFO_EXT = 1000469000,
740 XR_TYPE_FUTURE_POLL_INFO_EXT = 1000469001,
741 XR_TYPE_FUTURE_COMPLETION_EXT = 1000469002,
742 XR_TYPE_FUTURE_POLL_RESULT_EXT = 1000469003,
743 XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT = 1000470000,
744 XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT = 1000470001,
745 XR_TYPE_SYSTEM_NOTIFICATIONS_SET_INFO_ML = 1000473000,
746 XR_TYPE_WORLD_MESH_DETECTOR_CREATE_INFO_ML = 1000474001,
747 XR_TYPE_WORLD_MESH_STATE_REQUEST_INFO_ML = 1000474002,
748 XR_TYPE_WORLD_MESH_BLOCK_STATE_ML = 1000474003,
749 XR_TYPE_WORLD_MESH_STATE_REQUEST_COMPLETION_ML = 1000474004,
750 XR_TYPE_WORLD_MESH_BUFFER_RECOMMENDED_SIZE_INFO_ML = 1000474005,
751 XR_TYPE_WORLD_MESH_BUFFER_SIZE_ML = 1000474006,
752 XR_TYPE_WORLD_MESH_BUFFER_ML = 1000474007,
753 XR_TYPE_WORLD_MESH_BLOCK_REQUEST_ML = 1000474008,
754 XR_TYPE_WORLD_MESH_GET_INFO_ML = 1000474009,
755 XR_TYPE_WORLD_MESH_BLOCK_ML = 1000474010,
756 XR_TYPE_WORLD_MESH_REQUEST_COMPLETION_ML = 1000474011,
757 XR_TYPE_WORLD_MESH_REQUEST_COMPLETION_INFO_ML = 1000474012,
758 XR_TYPE_SYSTEM_FACIAL_EXPRESSION_PROPERTIES_ML = 1000482004,
759 XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML = 1000482005,
760 XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML = 1000482006,
761 XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML = 1000482007,
762 XR_TYPE_SYSTEM_SIMULTANEOUS_HANDS_AND_CONTROLLERS_PROPERTIES_META = 1000532001,
763 XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_RESUME_INFO_META = 1000532002,
764 XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_PAUSE_INFO_META = 1000532003,
765 XR_TYPE_COLOCATION_DISCOVERY_START_INFO_META = 1000571010,
766 XR_TYPE_COLOCATION_DISCOVERY_STOP_INFO_META = 1000571011,
767 XR_TYPE_COLOCATION_ADVERTISEMENT_START_INFO_META = 1000571012,
768 XR_TYPE_COLOCATION_ADVERTISEMENT_STOP_INFO_META = 1000571013,
769 XR_TYPE_EVENT_DATA_START_COLOCATION_ADVERTISEMENT_COMPLETE_META = 1000571020,
770 XR_TYPE_EVENT_DATA_STOP_COLOCATION_ADVERTISEMENT_COMPLETE_META = 1000571021,
771 XR_TYPE_EVENT_DATA_COLOCATION_ADVERTISEMENT_COMPLETE_META = 1000571022,
772 XR_TYPE_EVENT_DATA_START_COLOCATION_DISCOVERY_COMPLETE_META = 1000571023,
773 XR_TYPE_EVENT_DATA_COLOCATION_DISCOVERY_RESULT_META = 1000571024,
774 XR_TYPE_EVENT_DATA_COLOCATION_DISCOVERY_COMPLETE_META = 1000571025,
775 XR_TYPE_EVENT_DATA_STOP_COLOCATION_DISCOVERY_COMPLETE_META = 1000571026,
776 XR_TYPE_SYSTEM_COLOCATION_DISCOVERY_PROPERTIES_META = 1000571030,
777 XR_TYPE_SHARE_SPACES_RECIPIENT_GROUPS_META = 1000572000,
778 XR_TYPE_SPACE_GROUP_UUID_FILTER_INFO_META = 1000572001,
779 XR_TYPE_SYSTEM_SPATIAL_ENTITY_GROUP_SHARING_PROPERTIES_META = 1000572100,
780 XR_TYPE_SPATIAL_CAPABILITY_COMPONENT_TYPES_EXT = 1000740000,
781 XR_TYPE_SPATIAL_CONTEXT_CREATE_INFO_EXT = 1000740001,
782 XR_TYPE_CREATE_SPATIAL_CONTEXT_COMPLETION_EXT = 1000740002,
783 XR_TYPE_SPATIAL_DISCOVERY_SNAPSHOT_CREATE_INFO_EXT = 1000740003,
784 XR_TYPE_CREATE_SPATIAL_DISCOVERY_SNAPSHOT_COMPLETION_INFO_EXT = 1000740004,
785 XR_TYPE_CREATE_SPATIAL_DISCOVERY_SNAPSHOT_COMPLETION_EXT = 1000740005,
786 XR_TYPE_SPATIAL_COMPONENT_DATA_QUERY_CONDITION_EXT = 1000740006,
787 XR_TYPE_SPATIAL_COMPONENT_DATA_QUERY_RESULT_EXT = 1000740007,
788 XR_TYPE_SPATIAL_BUFFER_GET_INFO_EXT = 1000740008,
789 XR_TYPE_SPATIAL_COMPONENT_BOUNDED_2D_LIST_EXT = 1000740009,
790 XR_TYPE_SPATIAL_COMPONENT_BOUNDED_3D_LIST_EXT = 1000740010,
791 XR_TYPE_SPATIAL_COMPONENT_PARENT_LIST_EXT = 1000740011,
792 XR_TYPE_SPATIAL_COMPONENT_MESH_3D_LIST_EXT = 1000740012,
793 XR_TYPE_SPATIAL_ENTITY_FROM_ID_CREATE_INFO_EXT = 1000740013,
794 XR_TYPE_SPATIAL_UPDATE_SNAPSHOT_CREATE_INFO_EXT = 1000740014,
795 XR_TYPE_EVENT_DATA_SPATIAL_DISCOVERY_RECOMMENDED_EXT = 1000740015,
796 XR_TYPE_SPATIAL_FILTER_TRACKING_STATE_EXT = 1000740016,
797 XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_PLANE_TRACKING_EXT = 1000741000,
798 XR_TYPE_SPATIAL_COMPONENT_PLANE_ALIGNMENT_LIST_EXT = 1000741001,
799 XR_TYPE_SPATIAL_COMPONENT_MESH_2D_LIST_EXT = 1000741002,
800 XR_TYPE_SPATIAL_COMPONENT_POLYGON_2D_LIST_EXT = 1000741003,
801 XR_TYPE_SPATIAL_COMPONENT_PLANE_SEMANTIC_LABEL_LIST_EXT = 1000741004,
802 XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_QR_CODE_EXT = 1000743000,
803 XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MICRO_QR_CODE_EXT = 1000743001,
804 XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ARUCO_MARKER_EXT = 1000743002,
805 XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_APRIL_TAG_EXT = 1000743003,
806 XR_TYPE_SPATIAL_MARKER_SIZE_EXT = 1000743004,
807 XR_TYPE_SPATIAL_MARKER_STATIC_OPTIMIZATION_EXT = 1000743005,
808 XR_TYPE_SPATIAL_COMPONENT_MARKER_LIST_EXT = 1000743006,
809 XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANCHOR_EXT = 1000762000,
810 XR_TYPE_SPATIAL_COMPONENT_ANCHOR_LIST_EXT = 1000762001,
811 XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_EXT = 1000762002,
812 XR_TYPE_SPATIAL_PERSISTENCE_CONTEXT_CREATE_INFO_EXT = 1000763000,
813 XR_TYPE_CREATE_SPATIAL_PERSISTENCE_CONTEXT_COMPLETION_EXT = 1000763001,
814 XR_TYPE_SPATIAL_CONTEXT_PERSISTENCE_CONFIG_EXT = 1000763002,
815 XR_TYPE_SPATIAL_DISCOVERY_PERSISTENCE_UUID_FILTER_EXT = 1000763003,
816 XR_TYPE_SPATIAL_COMPONENT_PERSISTENCE_LIST_EXT = 1000763004,
817 XR_TYPE_SPATIAL_ENTITY_PERSIST_INFO_EXT = 1000781000,
818 XR_TYPE_PERSIST_SPATIAL_ENTITY_COMPLETION_EXT = 1000781001,
819 XR_TYPE_SPATIAL_ENTITY_UNPERSIST_INFO_EXT = 1000781002,
820 XR_TYPE_UNPERSIST_SPATIAL_ENTITY_COMPLETION_EXT = 1000781003,
821 XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR,
822 XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR,
823 XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR,
824 XR_TYPE_DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB = XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB,
825 XR_TYPE_SPACES_LOCATE_INFO_KHR = XR_TYPE_SPACES_LOCATE_INFO,
826 XR_TYPE_SPACE_LOCATIONS_KHR = XR_TYPE_SPACE_LOCATIONS,
827 XR_TYPE_SPACE_VELOCITIES_KHR = XR_TYPE_SPACE_VELOCITIES,
828 XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
829} XrStructureType;
830
831typedef enum XrFormFactor {
832 XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY = 1,
833 XR_FORM_FACTOR_HANDHELD_DISPLAY = 2,
834 XR_FORM_FACTOR_MAX_ENUM = 0x7FFFFFFF
835} XrFormFactor;
836
837typedef enum XrViewConfigurationType {
838 XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1,
839 XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2,
840 XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET = 1000037000,
841 XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT = 1000054000,
842 XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET,
843 XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF
844} XrViewConfigurationType;
845
846typedef enum XrEnvironmentBlendMode {
847 XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1,
848 XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2,
849 XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3,
850 XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF
851} XrEnvironmentBlendMode;
852
853typedef enum XrReferenceSpaceType {
854 XR_REFERENCE_SPACE_TYPE_VIEW = 1,
855 XR_REFERENCE_SPACE_TYPE_LOCAL = 2,
856 XR_REFERENCE_SPACE_TYPE_STAGE = 3,
857 XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR = 1000426000,
858 XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000,
859 XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO = 1000121000,
860 XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML = 1000139000,
861 XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR_EXT = XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR,
862 XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF
863} XrReferenceSpaceType;
864
865typedef enum XrActionType {
866 XR_ACTION_TYPE_BOOLEAN_INPUT = 1,
867 XR_ACTION_TYPE_FLOAT_INPUT = 2,
868 XR_ACTION_TYPE_VECTOR2F_INPUT = 3,
869 XR_ACTION_TYPE_POSE_INPUT = 4,
870 XR_ACTION_TYPE_VIBRATION_OUTPUT = 100,
871 XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF
872} XrActionType;
873
874typedef enum XrEyeVisibility {
875 XR_EYE_VISIBILITY_BOTH = 0,
876 XR_EYE_VISIBILITY_LEFT = 1,
877 XR_EYE_VISIBILITY_RIGHT = 2,
878 XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF
879} XrEyeVisibility;
880
881typedef enum XrSessionState {
882 XR_SESSION_STATE_UNKNOWN = 0,
883 XR_SESSION_STATE_IDLE = 1,
884 XR_SESSION_STATE_READY = 2,
885 XR_SESSION_STATE_SYNCHRONIZED = 3,
886 XR_SESSION_STATE_VISIBLE = 4,
887 XR_SESSION_STATE_FOCUSED = 5,
888 XR_SESSION_STATE_STOPPING = 6,
889 XR_SESSION_STATE_LOSS_PENDING = 7,
890 XR_SESSION_STATE_EXITING = 8,
891 XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF
892} XrSessionState;
893
894typedef enum XrObjectType {
895 XR_OBJECT_TYPE_UNKNOWN = 0,
896 XR_OBJECT_TYPE_INSTANCE = 1,
897 XR_OBJECT_TYPE_SESSION = 2,
898 XR_OBJECT_TYPE_SWAPCHAIN = 3,
899 XR_OBJECT_TYPE_SPACE = 4,
900 XR_OBJECT_TYPE_ACTION_SET = 5,
901 XR_OBJECT_TYPE_ACTION = 6,
902 XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000,
903 XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000,
904 XR_OBJECT_TYPE_SPATIAL_GRAPH_NODE_BINDING_MSFT = 1000049000,
905 XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000,
906 XR_OBJECT_TYPE_BODY_TRACKER_FB = 1000076000,
907 XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000,
908 XR_OBJECT_TYPE_SCENE_MSFT = 1000097001,
909 XR_OBJECT_TYPE_FACIAL_TRACKER_HTC = 1000104000,
910 XR_OBJECT_TYPE_FOVEATION_PROFILE_FB = 1000114000,
911 XR_OBJECT_TYPE_TRIANGLE_MESH_FB = 1000117000,
912 XR_OBJECT_TYPE_PASSTHROUGH_FB = 1000118000,
913 XR_OBJECT_TYPE_PASSTHROUGH_LAYER_FB = 1000118002,
914 XR_OBJECT_TYPE_GEOMETRY_INSTANCE_FB = 1000118004,
915 XR_OBJECT_TYPE_MARKER_DETECTOR_ML = 1000138000,
916 XR_OBJECT_TYPE_EXPORTED_LOCALIZATION_MAP_ML = 1000139000,
917 XR_OBJECT_TYPE_SPATIAL_ANCHORS_STORAGE_ML = 1000141000,
918 XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT = 1000142000,
919 XR_OBJECT_TYPE_FACE_TRACKER_FB = 1000201000,
920 XR_OBJECT_TYPE_EYE_TRACKER_FB = 1000202000,
921 XR_OBJECT_TYPE_VIRTUAL_KEYBOARD_META = 1000219000,
922 XR_OBJECT_TYPE_SPACE_USER_FB = 1000241000,
923 XR_OBJECT_TYPE_PASSTHROUGH_COLOR_LUT_META = 1000266000,
924 XR_OBJECT_TYPE_FACE_TRACKER2_FB = 1000287012,
925 XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_PROVIDER_META = 1000291000,
926 XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_META = 1000291001,
927 XR_OBJECT_TYPE_RENDER_MODEL_EXT = 1000300000,
928 XR_OBJECT_TYPE_RENDER_MODEL_ASSET_EXT = 1000300001,
929 XR_OBJECT_TYPE_PASSTHROUGH_HTC = 1000317000,
930 XR_OBJECT_TYPE_BODY_TRACKER_HTC = 1000320000,
931 XR_OBJECT_TYPE_BODY_TRACKER_BD = 1000385000,
932 XR_OBJECT_TYPE_SENSE_DATA_PROVIDER_BD = 1000389000,
933 XR_OBJECT_TYPE_SENSE_DATA_SNAPSHOT_BD = 1000389001,
934 XR_OBJECT_TYPE_ANCHOR_BD = 1000389002,
935 XR_OBJECT_TYPE_PLANE_DETECTOR_EXT = 1000429000,
936 XR_OBJECT_TYPE_WORLD_MESH_DETECTOR_ML = 1000474000,
937 XR_OBJECT_TYPE_FACIAL_EXPRESSION_CLIENT_ML = 1000482000,
938 XR_OBJECT_TYPE_SPATIAL_ENTITY_EXT = 1000740000,
939 XR_OBJECT_TYPE_SPATIAL_CONTEXT_EXT = 1000740001,
940 XR_OBJECT_TYPE_SPATIAL_SNAPSHOT_EXT = 1000740002,
941 XR_OBJECT_TYPE_SPATIAL_PERSISTENCE_CONTEXT_EXT = 1000763000,
942 XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
943} XrObjectType;
944typedef XrFlags64 XrInstanceCreateFlags;
945
946// Flag bits for XrInstanceCreateFlags
947
948typedef XrFlags64 XrSessionCreateFlags;
949
950// Flag bits for XrSessionCreateFlags
951
952typedef XrFlags64 XrSpaceVelocityFlags;
953
954// Flag bits for XrSpaceVelocityFlags
955static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001;
956static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002;
957
958typedef XrFlags64 XrSpaceLocationFlags;
959
960// Flag bits for XrSpaceLocationFlags
961static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = 0x00000001;
962static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_VALID_BIT = 0x00000002;
963static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = 0x00000004;
964static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_TRACKED_BIT = 0x00000008;
965
966typedef XrFlags64 XrSwapchainCreateFlags;
967
968// Flag bits for XrSwapchainCreateFlags
969static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001;
970static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002;
971
972typedef XrFlags64 XrSwapchainUsageFlags;
973
974// Flag bits for XrSwapchainUsageFlags
975static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001;
976static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002;
977static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004;
978static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008;
979static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010;
980static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020;
981static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040;
982static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND = 0x00000080;
983static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR = 0x00000080; // alias of XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND
984
985typedef XrFlags64 XrCompositionLayerFlags;
986
987// Flag bits for XrCompositionLayerFlags
988// XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT is deprecated and should not be used
989static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001;
990static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002;
991static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT = 0x00000004;
992static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT = 0x00000008;
993
994typedef XrFlags64 XrViewStateFlags;
995
996// Flag bits for XrViewStateFlags
997static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT = 0x00000001;
998static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT = 0x00000002;
999static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT = 0x00000004;
1000static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT = 0x00000008;
1001
1002typedef XrFlags64 XrInputSourceLocalizedNameFlags;
1003
1004// Flag bits for XrInputSourceLocalizedNameFlags
1005static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001;
1006static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002;
1007static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004;
1008
1009typedef void (XRAPI_PTR *PFN_xrVoidFunction)(void);
1010typedef struct XrApiLayerProperties {
1011 XrStructureType type;
1012 void* XR_MAY_ALIAS next;
1013 char layerName[XR_MAX_API_LAYER_NAME_SIZE];
1014 XrVersion specVersion;
1015 uint32_t layerVersion;
1016 char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE];
1017} XrApiLayerProperties;
1018
1019typedef struct XrExtensionProperties {
1020 XrStructureType type;
1021 void* XR_MAY_ALIAS next;
1022 char extensionName[XR_MAX_EXTENSION_NAME_SIZE];
1023 uint32_t extensionVersion;
1024} XrExtensionProperties;
1025
1026typedef struct XrApplicationInfo {
1027 char applicationName[XR_MAX_APPLICATION_NAME_SIZE];
1028 uint32_t applicationVersion;
1029 char engineName[XR_MAX_ENGINE_NAME_SIZE];
1030 uint32_t engineVersion;
1031 XrVersion apiVersion;
1032} XrApplicationInfo;
1033
1034typedef struct XrInstanceCreateInfo {
1035 XrStructureType type;
1036 const void* XR_MAY_ALIAS next;
1037 XrInstanceCreateFlags createFlags;
1038 XrApplicationInfo applicationInfo;
1039 uint32_t enabledApiLayerCount;
1040 const char* const* enabledApiLayerNames;
1041 uint32_t enabledExtensionCount;
1042 const char* const* enabledExtensionNames;
1043} XrInstanceCreateInfo;
1044
1045typedef struct XrInstanceProperties {
1046 XrStructureType type;
1047 void* XR_MAY_ALIAS next;
1048 XrVersion runtimeVersion;
1049 char runtimeName[XR_MAX_RUNTIME_NAME_SIZE];
1050} XrInstanceProperties;
1051
1052typedef struct XrEventDataBuffer {
1053 XrStructureType type;
1054 const void* XR_MAY_ALIAS next;
1055 uint8_t varying[4000];
1056} XrEventDataBuffer;
1057
1058typedef struct XrSystemGetInfo {
1059 XrStructureType type;
1060 const void* XR_MAY_ALIAS next;
1061 XrFormFactor formFactor;
1062} XrSystemGetInfo;
1063
1064typedef struct XrSystemGraphicsProperties {
1065 uint32_t maxSwapchainImageHeight;
1066 uint32_t maxSwapchainImageWidth;
1067 uint32_t maxLayerCount;
1068} XrSystemGraphicsProperties;
1069
1070typedef struct XrSystemTrackingProperties {
1071 XrBool32 orientationTracking;
1072 XrBool32 positionTracking;
1073} XrSystemTrackingProperties;
1074
1075typedef struct XrSystemProperties {
1076 XrStructureType type;
1077 void* XR_MAY_ALIAS next;
1078 XrSystemId systemId;
1079 uint32_t vendorId;
1080 char systemName[XR_MAX_SYSTEM_NAME_SIZE];
1081 XrSystemGraphicsProperties graphicsProperties;
1082 XrSystemTrackingProperties trackingProperties;
1083} XrSystemProperties;
1084
1085typedef struct XrSessionCreateInfo {
1086 XrStructureType type;
1087 const void* XR_MAY_ALIAS next;
1088 XrSessionCreateFlags createFlags;
1089 XrSystemId systemId;
1090} XrSessionCreateInfo;
1091
1092typedef struct XrVector3f {
1093 float x;
1094 float y;
1095 float z;
1096} XrVector3f;
1097
1098// XrSpaceVelocity extends XrSpaceLocation
1099typedef struct XrSpaceVelocity {
1100 XrStructureType type;
1101 void* XR_MAY_ALIAS next;
1102 XrSpaceVelocityFlags velocityFlags;
1103 XrVector3f linearVelocity;
1104 XrVector3f angularVelocity;
1105} XrSpaceVelocity;
1106
1107typedef struct XrQuaternionf {
1108 float x;
1109 float y;
1110 float z;
1111 float w;
1112} XrQuaternionf;
1113
1114typedef struct XrPosef {
1115 XrQuaternionf orientation;
1116 XrVector3f position;
1117} XrPosef;
1118
1119typedef struct XrReferenceSpaceCreateInfo {
1120 XrStructureType type;
1121 const void* XR_MAY_ALIAS next;
1122 XrReferenceSpaceType referenceSpaceType;
1123 XrPosef poseInReferenceSpace;
1124} XrReferenceSpaceCreateInfo;
1125
1126typedef struct XrExtent2Df {
1127 float width;
1128 float height;
1129} XrExtent2Df;
1130
1131typedef struct XrActionSpaceCreateInfo {
1132 XrStructureType type;
1133 const void* XR_MAY_ALIAS next;
1134 XrAction action;
1135 XrPath subactionPath;
1136 XrPosef poseInActionSpace;
1137} XrActionSpaceCreateInfo;
1138
1139typedef struct XrSpaceLocation {
1140 XrStructureType type;
1141 void* XR_MAY_ALIAS next;
1142 XrSpaceLocationFlags locationFlags;
1143 XrPosef pose;
1144} XrSpaceLocation;
1145
1146typedef struct XrViewConfigurationProperties {
1147 XrStructureType type;
1148 void* XR_MAY_ALIAS next;
1149 XrViewConfigurationType viewConfigurationType;
1150 XrBool32 fovMutable;
1151} XrViewConfigurationProperties;
1152
1153typedef struct XrViewConfigurationView {
1154 XrStructureType type;
1155 void* XR_MAY_ALIAS next;
1156 uint32_t recommendedImageRectWidth;
1157 uint32_t maxImageRectWidth;
1158 uint32_t recommendedImageRectHeight;
1159 uint32_t maxImageRectHeight;
1160 uint32_t recommendedSwapchainSampleCount;
1161 uint32_t maxSwapchainSampleCount;
1162} XrViewConfigurationView;
1163
1164typedef struct XrSwapchainCreateInfo {
1165 XrStructureType type;
1166 const void* XR_MAY_ALIAS next;
1167 XrSwapchainCreateFlags createFlags;
1168 XrSwapchainUsageFlags usageFlags;
1169 int64_t format;
1170 uint32_t sampleCount;
1171 uint32_t width;
1172 uint32_t height;
1173 uint32_t faceCount;
1174 uint32_t arraySize;
1175 uint32_t mipCount;
1176} XrSwapchainCreateInfo;
1177
1178typedef struct XR_MAY_ALIAS XrSwapchainImageBaseHeader {
1179 XrStructureType type;
1180 void* XR_MAY_ALIAS next;
1181} XrSwapchainImageBaseHeader;
1182
1183typedef struct XrSwapchainImageAcquireInfo {
1184 XrStructureType type;
1185 const void* XR_MAY_ALIAS next;
1186} XrSwapchainImageAcquireInfo;
1187
1188typedef struct XrSwapchainImageWaitInfo {
1189 XrStructureType type;
1190 const void* XR_MAY_ALIAS next;
1191 XrDuration timeout;
1192} XrSwapchainImageWaitInfo;
1193
1194typedef struct XrSwapchainImageReleaseInfo {
1195 XrStructureType type;
1196 const void* XR_MAY_ALIAS next;
1197} XrSwapchainImageReleaseInfo;
1198
1199typedef struct XrSessionBeginInfo {
1200 XrStructureType type;
1201 const void* XR_MAY_ALIAS next;
1202 XrViewConfigurationType primaryViewConfigurationType;
1203} XrSessionBeginInfo;
1204
1205typedef struct XrFrameWaitInfo {
1206 XrStructureType type;
1207 const void* XR_MAY_ALIAS next;
1208} XrFrameWaitInfo;
1209
1210typedef struct XrFrameState {
1211 XrStructureType type;
1212 void* XR_MAY_ALIAS next;
1213 XrTime predictedDisplayTime;
1214 XrDuration predictedDisplayPeriod;
1215 XrBool32 shouldRender;
1216} XrFrameState;
1217
1218typedef struct XrFrameBeginInfo {
1219 XrStructureType type;
1220 const void* XR_MAY_ALIAS next;
1221} XrFrameBeginInfo;
1222
1223typedef struct XR_MAY_ALIAS XrCompositionLayerBaseHeader {
1224 XrStructureType type;
1225 const void* XR_MAY_ALIAS next;
1226 XrCompositionLayerFlags layerFlags;
1227 XrSpace space;
1228} XrCompositionLayerBaseHeader;
1229
1230typedef struct XrFrameEndInfo {
1231 XrStructureType type;
1232 const void* XR_MAY_ALIAS next;
1233 XrTime displayTime;
1234 XrEnvironmentBlendMode environmentBlendMode;
1235 uint32_t layerCount;
1236 const XrCompositionLayerBaseHeader* const* layers;
1237} XrFrameEndInfo;
1238
1239typedef struct XrViewLocateInfo {
1240 XrStructureType type;
1241 const void* XR_MAY_ALIAS next;
1242 XrViewConfigurationType viewConfigurationType;
1243 XrTime displayTime;
1244 XrSpace space;
1245} XrViewLocateInfo;
1246
1247typedef struct XrViewState {
1248 XrStructureType type;
1249 void* XR_MAY_ALIAS next;
1250 XrViewStateFlags viewStateFlags;
1251} XrViewState;
1252
1253typedef struct XrFovf {
1254 float angleLeft;
1255 float angleRight;
1256 float angleUp;
1257 float angleDown;
1258} XrFovf;
1259
1260typedef struct XrView {
1261 XrStructureType type;
1262 void* XR_MAY_ALIAS next;
1263 XrPosef pose;
1264 XrFovf fov;
1265} XrView;
1266
1267typedef struct XrActionSetCreateInfo {
1268 XrStructureType type;
1269 const void* XR_MAY_ALIAS next;
1270 char actionSetName[XR_MAX_ACTION_SET_NAME_SIZE];
1271 char localizedActionSetName[XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE];
1272 uint32_t priority;
1273} XrActionSetCreateInfo;
1274
1275typedef struct XrActionCreateInfo {
1276 XrStructureType type;
1277 const void* XR_MAY_ALIAS next;
1278 char actionName[XR_MAX_ACTION_NAME_SIZE];
1279 XrActionType actionType;
1280 uint32_t countSubactionPaths;
1281 const XrPath* subactionPaths;
1282 char localizedActionName[XR_MAX_LOCALIZED_ACTION_NAME_SIZE];
1283} XrActionCreateInfo;
1284
1285typedef struct XrActionSuggestedBinding {
1286 XrAction action;
1287 XrPath binding;
1288} XrActionSuggestedBinding;
1289
1290typedef struct XrInteractionProfileSuggestedBinding {
1291 XrStructureType type;
1292 const void* XR_MAY_ALIAS next;
1293 XrPath interactionProfile;
1294 uint32_t countSuggestedBindings;
1295 const XrActionSuggestedBinding* suggestedBindings;
1296} XrInteractionProfileSuggestedBinding;
1297
1298typedef struct XrSessionActionSetsAttachInfo {
1299 XrStructureType type;
1300 const void* XR_MAY_ALIAS next;
1301 uint32_t countActionSets;
1302 const XrActionSet* actionSets;
1303} XrSessionActionSetsAttachInfo;
1304
1305typedef struct XrInteractionProfileState {
1306 XrStructureType type;
1307 void* XR_MAY_ALIAS next;
1308 XrPath interactionProfile;
1309} XrInteractionProfileState;
1310
1311typedef struct XrActionStateGetInfo {
1312 XrStructureType type;
1313 const void* XR_MAY_ALIAS next;
1314 XrAction action;
1315 XrPath subactionPath;
1316} XrActionStateGetInfo;
1317
1318typedef struct XrActionStateBoolean {
1319 XrStructureType type;
1320 void* XR_MAY_ALIAS next;
1321 XrBool32 currentState;
1322 XrBool32 changedSinceLastSync;
1323 XrTime lastChangeTime;
1324 XrBool32 isActive;
1325} XrActionStateBoolean;
1326
1327typedef struct XrActionStateFloat {
1328 XrStructureType type;
1329 void* XR_MAY_ALIAS next;
1330 float currentState;
1331 XrBool32 changedSinceLastSync;
1332 XrTime lastChangeTime;
1333 XrBool32 isActive;
1334} XrActionStateFloat;
1335
1336typedef struct XrVector2f {
1337 float x;
1338 float y;
1339} XrVector2f;
1340
1341typedef struct XrActionStateVector2f {
1342 XrStructureType type;
1343 void* XR_MAY_ALIAS next;
1344 XrVector2f currentState;
1345 XrBool32 changedSinceLastSync;
1346 XrTime lastChangeTime;
1347 XrBool32 isActive;
1348} XrActionStateVector2f;
1349
1350typedef struct XrActionStatePose {
1351 XrStructureType type;
1352 void* XR_MAY_ALIAS next;
1353 XrBool32 isActive;
1354} XrActionStatePose;
1355
1356typedef struct XrActiveActionSet {
1357 XrActionSet actionSet;
1358 XrPath subactionPath;
1359} XrActiveActionSet;
1360
1361typedef struct XrActionsSyncInfo {
1362 XrStructureType type;
1363 const void* XR_MAY_ALIAS next;
1364 uint32_t countActiveActionSets;
1365 const XrActiveActionSet* activeActionSets;
1366} XrActionsSyncInfo;
1367
1368typedef struct XrBoundSourcesForActionEnumerateInfo {
1369 XrStructureType type;
1370 const void* XR_MAY_ALIAS next;
1371 XrAction action;
1372} XrBoundSourcesForActionEnumerateInfo;
1373
1374typedef struct XrInputSourceLocalizedNameGetInfo {
1375 XrStructureType type;
1376 const void* XR_MAY_ALIAS next;
1377 XrPath sourcePath;
1378 XrInputSourceLocalizedNameFlags whichComponents;
1379} XrInputSourceLocalizedNameGetInfo;
1380
1381typedef struct XrHapticActionInfo {
1382 XrStructureType type;
1383 const void* XR_MAY_ALIAS next;
1384 XrAction action;
1385 XrPath subactionPath;
1386} XrHapticActionInfo;
1387
1388typedef struct XR_MAY_ALIAS XrHapticBaseHeader {
1389 XrStructureType type;
1390 const void* XR_MAY_ALIAS next;
1391} XrHapticBaseHeader;
1392
1393typedef struct XR_MAY_ALIAS XrBaseInStructure {
1394 XrStructureType type;
1395 const struct XrBaseInStructure* next;
1396} XrBaseInStructure;
1397
1398typedef struct XR_MAY_ALIAS XrBaseOutStructure {
1399 XrStructureType type;
1400 struct XrBaseOutStructure* next;
1401} XrBaseOutStructure;
1402
1403typedef struct XrOffset2Di {
1404 int32_t x;
1405 int32_t y;
1406} XrOffset2Di;
1407
1408typedef struct XrExtent2Di {
1409 int32_t width;
1410 int32_t height;
1411} XrExtent2Di;
1412
1413typedef struct XrRect2Di {
1414 XrOffset2Di offset;
1415 XrExtent2Di extent;
1416} XrRect2Di;
1417
1418typedef struct XrSwapchainSubImage {
1419 XrSwapchain swapchain;
1420 XrRect2Di imageRect;
1421 uint32_t imageArrayIndex;
1422} XrSwapchainSubImage;
1423
1424typedef struct XrCompositionLayerProjectionView {
1425 XrStructureType type;
1426 const void* XR_MAY_ALIAS next;
1427 XrPosef pose;
1428 XrFovf fov;
1429 XrSwapchainSubImage subImage;
1430} XrCompositionLayerProjectionView;
1431
1432typedef struct XrCompositionLayerProjection {
1433 XrStructureType type;
1434 const void* XR_MAY_ALIAS next;
1435 XrCompositionLayerFlags layerFlags;
1436 XrSpace space;
1437 uint32_t viewCount;
1438 const XrCompositionLayerProjectionView* views;
1439} XrCompositionLayerProjection;
1440
1441typedef struct XrCompositionLayerQuad {
1442 XrStructureType type;
1443 const void* XR_MAY_ALIAS next;
1444 XrCompositionLayerFlags layerFlags;
1445 XrSpace space;
1446 XrEyeVisibility eyeVisibility;
1447 XrSwapchainSubImage subImage;
1448 XrPosef pose;
1449 XrExtent2Df size;
1450} XrCompositionLayerQuad;
1451
1452typedef struct XR_MAY_ALIAS XrEventDataBaseHeader {
1453 XrStructureType type;
1454 const void* XR_MAY_ALIAS next;
1455} XrEventDataBaseHeader;
1456
1457typedef struct XrEventDataEventsLost {
1458 XrStructureType type;
1459 const void* XR_MAY_ALIAS next;
1460 uint32_t lostEventCount;
1461} XrEventDataEventsLost;
1462
1463typedef struct XrEventDataInstanceLossPending {
1464 XrStructureType type;
1465 const void* XR_MAY_ALIAS next;
1466 XrTime lossTime;
1467} XrEventDataInstanceLossPending;
1468
1469typedef struct XrEventDataSessionStateChanged {
1470 XrStructureType type;
1471 const void* XR_MAY_ALIAS next;
1472 XrSession session;
1473 XrSessionState state;
1474 XrTime time;
1475} XrEventDataSessionStateChanged;
1476
1477typedef struct XrEventDataReferenceSpaceChangePending {
1478 XrStructureType type;
1479 const void* XR_MAY_ALIAS next;
1480 XrSession session;
1481 XrReferenceSpaceType referenceSpaceType;
1482 XrTime changeTime;
1483 XrBool32 poseValid;
1484 XrPosef poseInPreviousSpace;
1485} XrEventDataReferenceSpaceChangePending;
1486
1487typedef struct XrEventDataInteractionProfileChanged {
1488 XrStructureType type;
1489 const void* XR_MAY_ALIAS next;
1490 XrSession session;
1491} XrEventDataInteractionProfileChanged;
1492
1493typedef struct XrHapticVibration {
1494 XrStructureType type;
1495 const void* XR_MAY_ALIAS next;
1496 XrDuration duration;
1497 float frequency;
1498 float amplitude;
1499} XrHapticVibration;
1500
1501typedef struct XrOffset2Df {
1502 float x;
1503 float y;
1504} XrOffset2Df;
1505
1506typedef struct XrRect2Df {
1507 XrOffset2Df offset;
1508 XrExtent2Df extent;
1509} XrRect2Df;
1510
1511typedef struct XrVector4f {
1512 float x;
1513 float y;
1514 float z;
1515 float w;
1516} XrVector4f;
1517
1518typedef struct XrColor4f {
1519 float r;
1520 float g;
1521 float b;
1522 float a;
1523} XrColor4f;
1524
1525typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance instance, const char* name, PFN_xrVoidFunction* function);
1526typedef XrResult (XRAPI_PTR *PFN_xrEnumerateApiLayerProperties)(uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrApiLayerProperties* properties);
1527typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char* layerName, uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrExtensionProperties* properties);
1528typedef XrResult (XRAPI_PTR *PFN_xrCreateInstance)(const XrInstanceCreateInfo* createInfo, XrInstance* instance);
1529typedef XrResult (XRAPI_PTR *PFN_xrDestroyInstance)(XrInstance instance);
1530typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProperties)(XrInstance instance, XrInstanceProperties* instanceProperties);
1531typedef XrResult (XRAPI_PTR *PFN_xrPollEvent)(XrInstance instance, XrEventDataBuffer* eventData);
1532typedef XrResult (XRAPI_PTR *PFN_xrResultToString)(XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE]);
1533typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString)(XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE]);
1534typedef XrResult (XRAPI_PTR *PFN_xrGetSystem)(XrInstance instance, const XrSystemGetInfo* getInfo, XrSystemId* systemId);
1535typedef XrResult (XRAPI_PTR *PFN_xrGetSystemProperties)(XrInstance instance, XrSystemId systemId, XrSystemProperties* properties);
1536typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t* environmentBlendModeCountOutput, XrEnvironmentBlendMode* environmentBlendModes);
1537typedef XrResult (XRAPI_PTR *PFN_xrCreateSession)(XrInstance instance, const XrSessionCreateInfo* createInfo, XrSession* session);
1538typedef XrResult (XRAPI_PTR *PFN_xrDestroySession)(XrSession session);
1539typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession session, uint32_t spaceCapacityInput, uint32_t* spaceCountOutput, XrReferenceSpaceType* spaces);
1540typedef XrResult (XRAPI_PTR *PFN_xrCreateReferenceSpace)(XrSession session, const XrReferenceSpaceCreateInfo* createInfo, XrSpace* space);
1541typedef XrResult (XRAPI_PTR *PFN_xrGetReferenceSpaceBoundsRect)(XrSession session, XrReferenceSpaceType referenceSpaceType, XrExtent2Df* bounds);
1542typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSpace)(XrSession session, const XrActionSpaceCreateInfo* createInfo, XrSpace* space);
1543typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation* location);
1544typedef XrResult (XRAPI_PTR *PFN_xrDestroySpace)(XrSpace space);
1545typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurations)(XrInstance instance, XrSystemId systemId, uint32_t viewConfigurationTypeCapacityInput, uint32_t* viewConfigurationTypeCountOutput, XrViewConfigurationType* viewConfigurationTypes);
1546typedef XrResult (XRAPI_PTR *PFN_xrGetViewConfigurationProperties)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, XrViewConfigurationProperties* configurationProperties);
1547typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurationViews)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrViewConfigurationView* views);
1548typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainFormats)(XrSession session, uint32_t formatCapacityInput, uint32_t* formatCountOutput, int64_t* formats);
1549typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchain)(XrSession session, const XrSwapchainCreateInfo* createInfo, XrSwapchain* swapchain);
1550typedef XrResult (XRAPI_PTR *PFN_xrDestroySwapchain)(XrSwapchain swapchain);
1551typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainImages)(XrSwapchain swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images);
1552typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageAcquireInfo* acquireInfo, uint32_t* index);
1553typedef XrResult (XRAPI_PTR *PFN_xrWaitSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageWaitInfo* waitInfo);
1554typedef XrResult (XRAPI_PTR *PFN_xrReleaseSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo* releaseInfo);
1555typedef XrResult (XRAPI_PTR *PFN_xrBeginSession)(XrSession session, const XrSessionBeginInfo* beginInfo);
1556typedef XrResult (XRAPI_PTR *PFN_xrEndSession)(XrSession session);
1557typedef XrResult (XRAPI_PTR *PFN_xrRequestExitSession)(XrSession session);
1558typedef XrResult (XRAPI_PTR *PFN_xrWaitFrame)(XrSession session, const XrFrameWaitInfo* frameWaitInfo, XrFrameState* frameState);
1559typedef XrResult (XRAPI_PTR *PFN_xrBeginFrame)(XrSession session, const XrFrameBeginInfo* frameBeginInfo);
1560typedef XrResult (XRAPI_PTR *PFN_xrEndFrame)(XrSession session, const XrFrameEndInfo* frameEndInfo);
1561typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession session, const XrViewLocateInfo* viewLocateInfo, XrViewState* viewState, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrView* views);
1562typedef XrResult (XRAPI_PTR *PFN_xrStringToPath)(XrInstance instance, const char* pathString, XrPath* path);
1563typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
1564typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSet)(XrInstance instance, const XrActionSetCreateInfo* createInfo, XrActionSet* actionSet);
1565typedef XrResult (XRAPI_PTR *PFN_xrDestroyActionSet)(XrActionSet actionSet);
1566typedef XrResult (XRAPI_PTR *PFN_xrCreateAction)(XrActionSet actionSet, const XrActionCreateInfo* createInfo, XrAction* action);
1567typedef XrResult (XRAPI_PTR *PFN_xrDestroyAction)(XrAction action);
1568typedef XrResult (XRAPI_PTR *PFN_xrSuggestInteractionProfileBindings)(XrInstance instance, const XrInteractionProfileSuggestedBinding* suggestedBindings);
1569typedef XrResult (XRAPI_PTR *PFN_xrAttachSessionActionSets)(XrSession session, const XrSessionActionSetsAttachInfo* attachInfo);
1570typedef XrResult (XRAPI_PTR *PFN_xrGetCurrentInteractionProfile)(XrSession session, XrPath topLevelUserPath, XrInteractionProfileState* interactionProfile);
1571typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateBoolean)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateBoolean* state);
1572typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateFloat)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateFloat* state);
1573typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateVector2f)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateVector2f* state);
1574typedef XrResult (XRAPI_PTR *PFN_xrGetActionStatePose)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStatePose* state);
1575typedef XrResult (XRAPI_PTR *PFN_xrSyncActions)(XrSession session, const XrActionsSyncInfo* syncInfo);
1576typedef XrResult (XRAPI_PTR *PFN_xrEnumerateBoundSourcesForAction)(XrSession session, const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, uint32_t sourceCapacityInput, uint32_t* sourceCountOutput, XrPath* sources);
1577typedef XrResult (XRAPI_PTR *PFN_xrGetInputSourceLocalizedName)(XrSession session, const XrInputSourceLocalizedNameGetInfo* getInfo, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
1578typedef XrResult (XRAPI_PTR *PFN_xrApplyHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo, const XrHapticBaseHeader* hapticFeedback);
1579typedef XrResult (XRAPI_PTR *PFN_xrStopHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo);
1580
1581#ifndef XR_NO_PROTOTYPES
1582XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProcAddr(
1583 XrInstance instance,
1584 const char* name,
1585 PFN_xrVoidFunction* function);
1586
1587XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateApiLayerProperties(
1588 uint32_t propertyCapacityInput,
1589 uint32_t* propertyCountOutput,
1590 XrApiLayerProperties* properties);
1591
1592XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties(
1593 const char* layerName,
1594 uint32_t propertyCapacityInput,
1595 uint32_t* propertyCountOutput,
1596 XrExtensionProperties* properties);
1597
1598XRAPI_ATTR XrResult XRAPI_CALL xrCreateInstance(
1599 const XrInstanceCreateInfo* createInfo,
1600 XrInstance* instance);
1601
1602XRAPI_ATTR XrResult XRAPI_CALL xrDestroyInstance(
1603 XrInstance instance);
1604
1605XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProperties(
1606 XrInstance instance,
1607 XrInstanceProperties* instanceProperties);
1608
1609XRAPI_ATTR XrResult XRAPI_CALL xrPollEvent(
1610 XrInstance instance,
1611 XrEventDataBuffer* eventData);
1612
1613XRAPI_ATTR XrResult XRAPI_CALL xrResultToString(
1614 XrInstance instance,
1615 XrResult value,
1616 char buffer[XR_MAX_RESULT_STRING_SIZE]);
1617
1618XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString(
1619 XrInstance instance,
1620 XrStructureType value,
1621 char buffer[XR_MAX_STRUCTURE_NAME_SIZE]);
1622
1623XRAPI_ATTR XrResult XRAPI_CALL xrGetSystem(
1624 XrInstance instance,
1625 const XrSystemGetInfo* getInfo,
1626 XrSystemId* systemId);
1627
1628XRAPI_ATTR XrResult XRAPI_CALL xrGetSystemProperties(
1629 XrInstance instance,
1630 XrSystemId systemId,
1631 XrSystemProperties* properties);
1632
1633XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes(
1634 XrInstance instance,
1635 XrSystemId systemId,
1636 XrViewConfigurationType viewConfigurationType,
1637 uint32_t environmentBlendModeCapacityInput,
1638 uint32_t* environmentBlendModeCountOutput,
1639 XrEnvironmentBlendMode* environmentBlendModes);
1640
1641XRAPI_ATTR XrResult XRAPI_CALL xrCreateSession(
1642 XrInstance instance,
1643 const XrSessionCreateInfo* createInfo,
1644 XrSession* session);
1645
1646XRAPI_ATTR XrResult XRAPI_CALL xrDestroySession(
1647 XrSession session);
1648
1649XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReferenceSpaces(
1650 XrSession session,
1651 uint32_t spaceCapacityInput,
1652 uint32_t* spaceCountOutput,
1653 XrReferenceSpaceType* spaces);
1654
1655XRAPI_ATTR XrResult XRAPI_CALL xrCreateReferenceSpace(
1656 XrSession session,
1657 const XrReferenceSpaceCreateInfo* createInfo,
1658 XrSpace* space);
1659
1660XRAPI_ATTR XrResult XRAPI_CALL xrGetReferenceSpaceBoundsRect(
1661 XrSession session,
1662 XrReferenceSpaceType referenceSpaceType,
1663 XrExtent2Df* bounds);
1664
1665XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSpace(
1666 XrSession session,
1667 const XrActionSpaceCreateInfo* createInfo,
1668 XrSpace* space);
1669
1670XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpace(
1671 XrSpace space,
1672 XrSpace baseSpace,
1673 XrTime time,
1674 XrSpaceLocation* location);
1675
1676XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpace(
1677 XrSpace space);
1678
1679XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurations(
1680 XrInstance instance,
1681 XrSystemId systemId,
1682 uint32_t viewConfigurationTypeCapacityInput,
1683 uint32_t* viewConfigurationTypeCountOutput,
1684 XrViewConfigurationType* viewConfigurationTypes);
1685
1686XRAPI_ATTR XrResult XRAPI_CALL xrGetViewConfigurationProperties(
1687 XrInstance instance,
1688 XrSystemId systemId,
1689 XrViewConfigurationType viewConfigurationType,
1690 XrViewConfigurationProperties* configurationProperties);
1691
1692XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurationViews(
1693 XrInstance instance,
1694 XrSystemId systemId,
1695 XrViewConfigurationType viewConfigurationType,
1696 uint32_t viewCapacityInput,
1697 uint32_t* viewCountOutput,
1698 XrViewConfigurationView* views);
1699
1700XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainFormats(
1701 XrSession session,
1702 uint32_t formatCapacityInput,
1703 uint32_t* formatCountOutput,
1704 int64_t* formats);
1705
1706XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchain(
1707 XrSession session,
1708 const XrSwapchainCreateInfo* createInfo,
1709 XrSwapchain* swapchain);
1710
1711XRAPI_ATTR XrResult XRAPI_CALL xrDestroySwapchain(
1712 XrSwapchain swapchain);
1713
1714XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainImages(
1715 XrSwapchain swapchain,
1716 uint32_t imageCapacityInput,
1717 uint32_t* imageCountOutput,
1718 XrSwapchainImageBaseHeader* images);
1719
1720XRAPI_ATTR XrResult XRAPI_CALL xrAcquireSwapchainImage(
1721 XrSwapchain swapchain,
1722 const XrSwapchainImageAcquireInfo* acquireInfo,
1723 uint32_t* index);
1724
1725XRAPI_ATTR XrResult XRAPI_CALL xrWaitSwapchainImage(
1726 XrSwapchain swapchain,
1727 const XrSwapchainImageWaitInfo* waitInfo);
1728
1729XRAPI_ATTR XrResult XRAPI_CALL xrReleaseSwapchainImage(
1730 XrSwapchain swapchain,
1731 const XrSwapchainImageReleaseInfo* releaseInfo);
1732
1733XRAPI_ATTR XrResult XRAPI_CALL xrBeginSession(
1734 XrSession session,
1735 const XrSessionBeginInfo* beginInfo);
1736
1737XRAPI_ATTR XrResult XRAPI_CALL xrEndSession(
1738 XrSession session);
1739
1740XRAPI_ATTR XrResult XRAPI_CALL xrRequestExitSession(
1741 XrSession session);
1742
1743XRAPI_ATTR XrResult XRAPI_CALL xrWaitFrame(
1744 XrSession session,
1745 const XrFrameWaitInfo* frameWaitInfo,
1746 XrFrameState* frameState);
1747
1748XRAPI_ATTR XrResult XRAPI_CALL xrBeginFrame(
1749 XrSession session,
1750 const XrFrameBeginInfo* frameBeginInfo);
1751
1752XRAPI_ATTR XrResult XRAPI_CALL xrEndFrame(
1753 XrSession session,
1754 const XrFrameEndInfo* frameEndInfo);
1755
1756XRAPI_ATTR XrResult XRAPI_CALL xrLocateViews(
1757 XrSession session,
1758 const XrViewLocateInfo* viewLocateInfo,
1759 XrViewState* viewState,
1760 uint32_t viewCapacityInput,
1761 uint32_t* viewCountOutput,
1762 XrView* views);
1763
1764XRAPI_ATTR XrResult XRAPI_CALL xrStringToPath(
1765 XrInstance instance,
1766 const char* pathString,
1767 XrPath* path);
1768
1769XRAPI_ATTR XrResult XRAPI_CALL xrPathToString(
1770 XrInstance instance,
1771 XrPath path,
1772 uint32_t bufferCapacityInput,
1773 uint32_t* bufferCountOutput,
1774 char* buffer);
1775
1776XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSet(
1777 XrInstance instance,
1778 const XrActionSetCreateInfo* createInfo,
1779 XrActionSet* actionSet);
1780
1781XRAPI_ATTR XrResult XRAPI_CALL xrDestroyActionSet(
1782 XrActionSet actionSet);
1783
1784XRAPI_ATTR XrResult XRAPI_CALL xrCreateAction(
1785 XrActionSet actionSet,
1786 const XrActionCreateInfo* createInfo,
1787 XrAction* action);
1788
1789XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAction(
1790 XrAction action);
1791
1792XRAPI_ATTR XrResult XRAPI_CALL xrSuggestInteractionProfileBindings(
1793 XrInstance instance,
1794 const XrInteractionProfileSuggestedBinding* suggestedBindings);
1795
1796XRAPI_ATTR XrResult XRAPI_CALL xrAttachSessionActionSets(
1797 XrSession session,
1798 const XrSessionActionSetsAttachInfo* attachInfo);
1799
1800XRAPI_ATTR XrResult XRAPI_CALL xrGetCurrentInteractionProfile(
1801 XrSession session,
1802 XrPath topLevelUserPath,
1803 XrInteractionProfileState* interactionProfile);
1804
1805XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateBoolean(
1806 XrSession session,
1807 const XrActionStateGetInfo* getInfo,
1808 XrActionStateBoolean* state);
1809
1810XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateFloat(
1811 XrSession session,
1812 const XrActionStateGetInfo* getInfo,
1813 XrActionStateFloat* state);
1814
1815XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateVector2f(
1816 XrSession session,
1817 const XrActionStateGetInfo* getInfo,
1818 XrActionStateVector2f* state);
1819
1820XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStatePose(
1821 XrSession session,
1822 const XrActionStateGetInfo* getInfo,
1823 XrActionStatePose* state);
1824
1825XRAPI_ATTR XrResult XRAPI_CALL xrSyncActions(
1826 XrSession session,
1827 const XrActionsSyncInfo* syncInfo);
1828
1829XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateBoundSourcesForAction(
1830 XrSession session,
1831 const XrBoundSourcesForActionEnumerateInfo* enumerateInfo,
1832 uint32_t sourceCapacityInput,
1833 uint32_t* sourceCountOutput,
1834 XrPath* sources);
1835
1836XRAPI_ATTR XrResult XRAPI_CALL xrGetInputSourceLocalizedName(
1837 XrSession session,
1838 const XrInputSourceLocalizedNameGetInfo* getInfo,
1839 uint32_t bufferCapacityInput,
1840 uint32_t* bufferCountOutput,
1841 char* buffer);
1842
1843XRAPI_ATTR XrResult XRAPI_CALL xrApplyHapticFeedback(
1844 XrSession session,
1845 const XrHapticActionInfo* hapticActionInfo,
1846 const XrHapticBaseHeader* hapticFeedback);
1847
1848XRAPI_ATTR XrResult XRAPI_CALL xrStopHapticFeedback(
1849 XrSession session,
1850 const XrHapticActionInfo* hapticActionInfo);
1851#endif /* !XR_NO_PROTOTYPES */
1852
1853
1854// XR_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
1855#define XR_VERSION_1_1 1
1856// OpenXR 1.1 version number
1857#define XR_API_VERSION_1_1 XR_MAKE_VERSION(1, 1, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
1858
1859#define XR_UUID_SIZE 16
1860typedef struct XrColor3f {
1861 float r;
1862 float g;
1863 float b;
1864} XrColor3f;
1865
1866typedef struct XrExtent3Df {
1867 float width;
1868 float height;
1869 float depth;
1870} XrExtent3Df;
1871
1872typedef struct XrSpheref {
1873 XrPosef center;
1874 float radius;
1875} XrSpheref;
1876
1877typedef struct XrBoxf {
1878 XrPosef center;
1879 XrExtent3Df extents;
1880} XrBoxf;
1881
1882typedef struct XrFrustumf {
1883 XrPosef pose;
1884 XrFovf fov;
1885 float nearZ;
1886 float farZ;
1887} XrFrustumf;
1888
1889typedef struct XrUuid {
1890 uint8_t data[XR_UUID_SIZE];
1891} XrUuid;
1892
1893typedef struct XrSpacesLocateInfo {
1894 XrStructureType type;
1895 const void* XR_MAY_ALIAS next;
1896 XrSpace baseSpace;
1897 XrTime time;
1898 uint32_t spaceCount;
1899 const XrSpace* spaces;
1900} XrSpacesLocateInfo;
1901
1902typedef struct XrSpaceLocationData {
1903 XrSpaceLocationFlags locationFlags;
1904 XrPosef pose;
1905} XrSpaceLocationData;
1906
1907typedef struct XrSpaceLocations {
1908 XrStructureType type;
1909 void* XR_MAY_ALIAS next;
1910 uint32_t locationCount;
1911 XrSpaceLocationData* locations;
1912} XrSpaceLocations;
1913
1914typedef struct XrSpaceVelocityData {
1915 XrSpaceVelocityFlags velocityFlags;
1916 XrVector3f linearVelocity;
1917 XrVector3f angularVelocity;
1918} XrSpaceVelocityData;
1919
1920// XrSpaceVelocities extends XrSpaceLocations
1921typedef struct XrSpaceVelocities {
1922 XrStructureType type;
1923 void* XR_MAY_ALIAS next;
1924 uint32_t velocityCount;
1925 XrSpaceVelocityData* velocities;
1926} XrSpaceVelocities;
1927
1928typedef XrResult (XRAPI_PTR *PFN_xrLocateSpaces)(XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations);
1929
1930#ifndef XR_NO_PROTOTYPES
1931XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpaces(
1932 XrSession session,
1933 const XrSpacesLocateInfo* locateInfo,
1934 XrSpaceLocations* spaceLocations);
1935#endif /* !XR_NO_PROTOTYPES */
1936
1937
1938// XR_KHR_composition_layer_cube is a preprocessor guard. Do not pass it to API calls.
1939#define XR_KHR_composition_layer_cube 1
1940#define XR_KHR_composition_layer_cube_SPEC_VERSION 8
1941#define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME "XR_KHR_composition_layer_cube"
1942typedef struct XrCompositionLayerCubeKHR {
1943 XrStructureType type;
1944 const void* XR_MAY_ALIAS next;
1945 XrCompositionLayerFlags layerFlags;
1946 XrSpace space;
1947 XrEyeVisibility eyeVisibility;
1948 XrSwapchain swapchain;
1949 uint32_t imageArrayIndex;
1950 XrQuaternionf orientation;
1951} XrCompositionLayerCubeKHR;
1952
1953
1954
1955// XR_KHR_composition_layer_depth is a preprocessor guard. Do not pass it to API calls.
1956#define XR_KHR_composition_layer_depth 1
1957#define XR_KHR_composition_layer_depth_SPEC_VERSION 6
1958#define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth"
1959// XrCompositionLayerDepthInfoKHR extends XrCompositionLayerProjectionView
1960typedef struct XrCompositionLayerDepthInfoKHR {
1961 XrStructureType type;
1962 const void* XR_MAY_ALIAS next;
1963 XrSwapchainSubImage subImage;
1964 float minDepth;
1965 float maxDepth;
1966 float nearZ;
1967 float farZ;
1968} XrCompositionLayerDepthInfoKHR;
1969
1970
1971
1972// XR_KHR_composition_layer_cylinder is a preprocessor guard. Do not pass it to API calls.
1973#define XR_KHR_composition_layer_cylinder 1
1974#define XR_KHR_composition_layer_cylinder_SPEC_VERSION 4
1975#define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME "XR_KHR_composition_layer_cylinder"
1976typedef struct XrCompositionLayerCylinderKHR {
1977 XrStructureType type;
1978 const void* XR_MAY_ALIAS next;
1979 XrCompositionLayerFlags layerFlags;
1980 XrSpace space;
1981 XrEyeVisibility eyeVisibility;
1982 XrSwapchainSubImage subImage;
1983 XrPosef pose;
1984 float radius;
1985 float centralAngle;
1986 float aspectRatio;
1987} XrCompositionLayerCylinderKHR;
1988
1989
1990
1991// XR_KHR_composition_layer_equirect is a preprocessor guard. Do not pass it to API calls.
1992#define XR_KHR_composition_layer_equirect 1
1993#define XR_KHR_composition_layer_equirect_SPEC_VERSION 3
1994#define XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME "XR_KHR_composition_layer_equirect"
1995typedef struct XrCompositionLayerEquirectKHR {
1996 XrStructureType type;
1997 const void* XR_MAY_ALIAS next;
1998 XrCompositionLayerFlags layerFlags;
1999 XrSpace space;
2000 XrEyeVisibility eyeVisibility;
2001 XrSwapchainSubImage subImage;
2002 XrPosef pose;
2003 float radius;
2004 XrVector2f scale;
2005 XrVector2f bias;
2006} XrCompositionLayerEquirectKHR;
2007
2008
2009
2010// XR_KHR_visibility_mask is a preprocessor guard. Do not pass it to API calls.
2011#define XR_KHR_visibility_mask 1
2012#define XR_KHR_visibility_mask_SPEC_VERSION 2
2013#define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME "XR_KHR_visibility_mask"
2014
2015typedef enum XrVisibilityMaskTypeKHR {
2016 XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR = 1,
2017 XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR = 2,
2018 XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR = 3,
2019 XR_VISIBILITY_MASK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
2020} XrVisibilityMaskTypeKHR;
2021typedef struct XrVisibilityMaskKHR {
2022 XrStructureType type;
2023 void* XR_MAY_ALIAS next;
2024 uint32_t vertexCapacityInput;
2025 uint32_t vertexCountOutput;
2026 XrVector2f* vertices;
2027 uint32_t indexCapacityInput;
2028 uint32_t indexCountOutput;
2029 uint32_t* indices;
2030} XrVisibilityMaskKHR;
2031
2032typedef struct XrEventDataVisibilityMaskChangedKHR {
2033 XrStructureType type;
2034 const void* XR_MAY_ALIAS next;
2035 XrSession session;
2036 XrViewConfigurationType viewConfigurationType;
2037 uint32_t viewIndex;
2038} XrEventDataVisibilityMaskChangedKHR;
2039
2040typedef XrResult (XRAPI_PTR *PFN_xrGetVisibilityMaskKHR)(XrSession session, XrViewConfigurationType viewConfigurationType, uint32_t viewIndex, XrVisibilityMaskTypeKHR visibilityMaskType, XrVisibilityMaskKHR* visibilityMask);
2041
2042#ifndef XR_NO_PROTOTYPES
2043#ifdef XR_EXTENSION_PROTOTYPES
2044XRAPI_ATTR XrResult XRAPI_CALL xrGetVisibilityMaskKHR(
2045 XrSession session,
2046 XrViewConfigurationType viewConfigurationType,
2047 uint32_t viewIndex,
2048 XrVisibilityMaskTypeKHR visibilityMaskType,
2049 XrVisibilityMaskKHR* visibilityMask);
2050#endif /* XR_EXTENSION_PROTOTYPES */
2051#endif /* !XR_NO_PROTOTYPES */
2052
2053
2054// XR_KHR_composition_layer_color_scale_bias is a preprocessor guard. Do not pass it to API calls.
2055#define XR_KHR_composition_layer_color_scale_bias 1
2056#define XR_KHR_composition_layer_color_scale_bias_SPEC_VERSION 5
2057#define XR_KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME "XR_KHR_composition_layer_color_scale_bias"
2058// XrCompositionLayerColorScaleBiasKHR extends XrCompositionLayerBaseHeader
2059typedef struct XrCompositionLayerColorScaleBiasKHR {
2060 XrStructureType type;
2061 const void* XR_MAY_ALIAS next;
2062 XrColor4f colorScale;
2063 XrColor4f colorBias;
2064} XrCompositionLayerColorScaleBiasKHR;
2065
2066
2067
2068// XR_KHR_loader_init is a preprocessor guard. Do not pass it to API calls.
2069#define XR_KHR_loader_init 1
2070#define XR_KHR_loader_init_SPEC_VERSION 2
2071#define XR_KHR_LOADER_INIT_EXTENSION_NAME "XR_KHR_loader_init"
2072typedef struct XR_MAY_ALIAS XrLoaderInitInfoBaseHeaderKHR {
2073 XrStructureType type;
2074 const void* XR_MAY_ALIAS next;
2075} XrLoaderInitInfoBaseHeaderKHR;
2076
2077typedef XrResult (XRAPI_PTR *PFN_xrInitializeLoaderKHR)(const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo);
2078
2079#ifndef XR_NO_PROTOTYPES
2080#ifdef XR_EXTENSION_PROTOTYPES
2081XRAPI_ATTR XrResult XRAPI_CALL xrInitializeLoaderKHR(
2082 const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo);
2083#endif /* XR_EXTENSION_PROTOTYPES */
2084#endif /* !XR_NO_PROTOTYPES */
2085
2086
2087// XR_KHR_composition_layer_equirect2 is a preprocessor guard. Do not pass it to API calls.
2088#define XR_KHR_composition_layer_equirect2 1
2089#define XR_KHR_composition_layer_equirect2_SPEC_VERSION 1
2090#define XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME "XR_KHR_composition_layer_equirect2"
2091typedef struct XrCompositionLayerEquirect2KHR {
2092 XrStructureType type;
2093 const void* XR_MAY_ALIAS next;
2094 XrCompositionLayerFlags layerFlags;
2095 XrSpace space;
2096 XrEyeVisibility eyeVisibility;
2097 XrSwapchainSubImage subImage;
2098 XrPosef pose;
2099 float radius;
2100 float centralHorizontalAngle;
2101 float upperVerticalAngle;
2102 float lowerVerticalAngle;
2103} XrCompositionLayerEquirect2KHR;
2104
2105
2106
2107// XR_KHR_binding_modification is a preprocessor guard. Do not pass it to API calls.
2108#define XR_KHR_binding_modification 1
2109#define XR_KHR_binding_modification_SPEC_VERSION 1
2110#define XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME "XR_KHR_binding_modification"
2111typedef struct XR_MAY_ALIAS XrBindingModificationBaseHeaderKHR {
2112 XrStructureType type;
2113 const void* XR_MAY_ALIAS next;
2114} XrBindingModificationBaseHeaderKHR;
2115
2116// XrBindingModificationsKHR extends XrInteractionProfileSuggestedBinding
2117typedef struct XrBindingModificationsKHR {
2118 XrStructureType type;
2119 const void* XR_MAY_ALIAS next;
2120 uint32_t bindingModificationCount;
2121 const XrBindingModificationBaseHeaderKHR* const* bindingModifications;
2122} XrBindingModificationsKHR;
2123
2124
2125
2126// XR_KHR_extended_struct_name_lengths is a preprocessor guard. Do not pass it to API calls.
2127#define XR_KHR_extended_struct_name_lengths 1
2128#define XR_KHR_extended_struct_name_lengths_SPEC_VERSION 1
2129#define XR_KHR_EXTENDED_STRUCT_NAME_LENGTHS_EXTENSION_NAME "XR_KHR_extended_struct_name_lengths"
2130#define XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR 256
2131typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString2KHR)(XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR]);
2132
2133#ifndef XR_NO_PROTOTYPES
2134#ifdef XR_EXTENSION_PROTOTYPES
2135XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString2KHR(
2136 XrInstance instance,
2137 XrStructureType value,
2138 char buffer[XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR]);
2139#endif /* XR_EXTENSION_PROTOTYPES */
2140#endif /* !XR_NO_PROTOTYPES */
2141
2142
2143// XR_KHR_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls.
2144#define XR_KHR_swapchain_usage_input_attachment_bit 1
2145#define XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION 3
2146#define XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_KHR_swapchain_usage_input_attachment_bit"
2147
2148
2149// XR_KHR_locate_spaces is a preprocessor guard. Do not pass it to API calls.
2150#define XR_KHR_locate_spaces 1
2151#define XR_KHR_locate_spaces_SPEC_VERSION 1
2152#define XR_KHR_LOCATE_SPACES_EXTENSION_NAME "XR_KHR_locate_spaces"
2153typedef XrSpacesLocateInfo XrSpacesLocateInfoKHR;
2154
2155typedef XrSpaceLocationData XrSpaceLocationDataKHR;
2156
2157typedef XrSpaceLocations XrSpaceLocationsKHR;
2158
2159typedef XrSpaceVelocityData XrSpaceVelocityDataKHR;
2160
2161typedef XrSpaceVelocities XrSpaceVelocitiesKHR;
2162
2163typedef XrResult (XRAPI_PTR *PFN_xrLocateSpacesKHR)(XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations);
2164
2165#ifndef XR_NO_PROTOTYPES
2166#ifdef XR_EXTENSION_PROTOTYPES
2167XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpacesKHR(
2168 XrSession session,
2169 const XrSpacesLocateInfo* locateInfo,
2170 XrSpaceLocations* spaceLocations);
2171#endif /* XR_EXTENSION_PROTOTYPES */
2172#endif /* !XR_NO_PROTOTYPES */
2173
2174
2175// XR_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
2176#define XR_KHR_maintenance1 1
2177#define XR_KHR_maintenance1_SPEC_VERSION 1
2178#define XR_KHR_MAINTENANCE1_EXTENSION_NAME "XR_KHR_maintenance1"
2179typedef XrColor3f XrColor3fKHR;
2180
2181typedef XrExtent3Df XrExtent3DfKHR;
2182
2183typedef XrSpheref XrSpherefKHR;
2184
2185typedef XrBoxf XrBoxfKHR;
2186
2187typedef XrFrustumf XrFrustumfKHR;
2188
2189
2190
2191// XR_EXT_performance_settings is a preprocessor guard. Do not pass it to API calls.
2192#define XR_EXT_performance_settings 1
2193#define XR_EXT_performance_settings_SPEC_VERSION 4
2194#define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings"
2195
2196typedef enum XrPerfSettingsDomainEXT {
2197 XR_PERF_SETTINGS_DOMAIN_CPU_EXT = 1,
2198 XR_PERF_SETTINGS_DOMAIN_GPU_EXT = 2,
2199 XR_PERF_SETTINGS_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
2200} XrPerfSettingsDomainEXT;
2201
2202typedef enum XrPerfSettingsSubDomainEXT {
2203 XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT = 1,
2204 XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT = 2,
2205 XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT = 3,
2206 XR_PERF_SETTINGS_SUB_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
2207} XrPerfSettingsSubDomainEXT;
2208
2209typedef enum XrPerfSettingsLevelEXT {
2210 XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT = 0,
2211 XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT = 25,
2212 XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT = 50,
2213 XR_PERF_SETTINGS_LEVEL_BOOST_EXT = 75,
2214 XR_PERF_SETTINGS_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF
2215} XrPerfSettingsLevelEXT;
2216
2217typedef enum XrPerfSettingsNotificationLevelEXT {
2218 XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT = 0,
2219 XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT = 25,
2220 XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT = 75,
2221 XR_PERF_SETTINGS_NOTIFICATION_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF
2222} XrPerfSettingsNotificationLevelEXT;
2223typedef struct XrEventDataPerfSettingsEXT {
2224 XrStructureType type;
2225 const void* XR_MAY_ALIAS next;
2226 XrPerfSettingsDomainEXT domain;
2227 XrPerfSettingsSubDomainEXT subDomain;
2228 XrPerfSettingsNotificationLevelEXT fromLevel;
2229 XrPerfSettingsNotificationLevelEXT toLevel;
2230} XrEventDataPerfSettingsEXT;
2231
2232typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level);
2233
2234#ifndef XR_NO_PROTOTYPES
2235#ifdef XR_EXTENSION_PROTOTYPES
2236XRAPI_ATTR XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT(
2237 XrSession session,
2238 XrPerfSettingsDomainEXT domain,
2239 XrPerfSettingsLevelEXT level);
2240#endif /* XR_EXTENSION_PROTOTYPES */
2241#endif /* !XR_NO_PROTOTYPES */
2242
2243
2244// XR_EXT_thermal_query is a preprocessor guard. Do not pass it to API calls.
2245#define XR_EXT_thermal_query 1
2246#define XR_EXT_thermal_query_SPEC_VERSION 2
2247#define XR_EXT_THERMAL_QUERY_EXTENSION_NAME "XR_EXT_thermal_query"
2248typedef XrResult (XRAPI_PTR *PFN_xrThermalGetTemperatureTrendEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT* notificationLevel, float* tempHeadroom, float* tempSlope);
2249
2250#ifndef XR_NO_PROTOTYPES
2251#ifdef XR_EXTENSION_PROTOTYPES
2252XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT(
2253 XrSession session,
2254 XrPerfSettingsDomainEXT domain,
2255 XrPerfSettingsNotificationLevelEXT* notificationLevel,
2256 float* tempHeadroom,
2257 float* tempSlope);
2258#endif /* XR_EXTENSION_PROTOTYPES */
2259#endif /* !XR_NO_PROTOTYPES */
2260
2261
2262// XR_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
2263#define XR_EXT_debug_utils 1
2264XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT)
2265#define XR_EXT_debug_utils_SPEC_VERSION 5
2266#define XR_EXT_DEBUG_UTILS_EXTENSION_NAME "XR_EXT_debug_utils"
2267typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT;
2268
2269// Flag bits for XrDebugUtilsMessageSeverityFlagsEXT
2270static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001;
2271static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010;
2272static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100;
2273static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000;
2274
2275typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT;
2276
2277// Flag bits for XrDebugUtilsMessageTypeFlagsEXT
2278static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001;
2279static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002;
2280static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004;
2281static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT = 0x00000008;
2282
2283typedef struct XrDebugUtilsObjectNameInfoEXT {
2284 XrStructureType type;
2285 const void* XR_MAY_ALIAS next;
2286 XrObjectType objectType;
2287 uint64_t objectHandle;
2288 const char* objectName;
2289} XrDebugUtilsObjectNameInfoEXT;
2290
2291typedef struct XrDebugUtilsLabelEXT {
2292 XrStructureType type;
2293 const void* XR_MAY_ALIAS next;
2294 const char* labelName;
2295} XrDebugUtilsLabelEXT;
2296
2297typedef struct XrDebugUtilsMessengerCallbackDataEXT {
2298 XrStructureType type;
2299 const void* XR_MAY_ALIAS next;
2300 const char* messageId;
2301 const char* functionName;
2302 const char* message;
2303 uint32_t objectCount;
2304 XrDebugUtilsObjectNameInfoEXT* objects;
2305 uint32_t sessionLabelCount;
2306 XrDebugUtilsLabelEXT* sessionLabels;
2307} XrDebugUtilsMessengerCallbackDataEXT;
2308
2309typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)(
2310 XrDebugUtilsMessageSeverityFlagsEXT messageSeverity,
2311 XrDebugUtilsMessageTypeFlagsEXT messageTypes,
2312 const XrDebugUtilsMessengerCallbackDataEXT* callbackData,
2313 void* userData);
2314
2315
2316// XrDebugUtilsMessengerCreateInfoEXT extends XrInstanceCreateInfo
2317typedef struct XrDebugUtilsMessengerCreateInfoEXT {
2318 XrStructureType type;
2319 const void* XR_MAY_ALIAS next;
2320 XrDebugUtilsMessageSeverityFlagsEXT messageSeverities;
2321 XrDebugUtilsMessageTypeFlagsEXT messageTypes;
2322 PFN_xrDebugUtilsMessengerCallbackEXT userCallback;
2323 void* XR_MAY_ALIAS userData;
2324} XrDebugUtilsMessengerCreateInfoEXT;
2325
2326typedef XrResult (XRAPI_PTR *PFN_xrSetDebugUtilsObjectNameEXT)(XrInstance instance, const XrDebugUtilsObjectNameInfoEXT* nameInfo);
2327typedef XrResult (XRAPI_PTR *PFN_xrCreateDebugUtilsMessengerEXT)(XrInstance instance, const XrDebugUtilsMessengerCreateInfoEXT* createInfo, XrDebugUtilsMessengerEXT* messenger);
2328typedef XrResult (XRAPI_PTR *PFN_xrDestroyDebugUtilsMessengerEXT)(XrDebugUtilsMessengerEXT messenger);
2329typedef XrResult (XRAPI_PTR *PFN_xrSubmitDebugUtilsMessageEXT)(XrInstance instance, XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData);
2330typedef XrResult (XRAPI_PTR *PFN_xrSessionBeginDebugUtilsLabelRegionEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo);
2331typedef XrResult (XRAPI_PTR *PFN_xrSessionEndDebugUtilsLabelRegionEXT)(XrSession session);
2332typedef XrResult (XRAPI_PTR *PFN_xrSessionInsertDebugUtilsLabelEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo);
2333
2334#ifndef XR_NO_PROTOTYPES
2335#ifdef XR_EXTENSION_PROTOTYPES
2336XRAPI_ATTR XrResult XRAPI_CALL xrSetDebugUtilsObjectNameEXT(
2337 XrInstance instance,
2338 const XrDebugUtilsObjectNameInfoEXT* nameInfo);
2339
2340XRAPI_ATTR XrResult XRAPI_CALL xrCreateDebugUtilsMessengerEXT(
2341 XrInstance instance,
2342 const XrDebugUtilsMessengerCreateInfoEXT* createInfo,
2343 XrDebugUtilsMessengerEXT* messenger);
2344
2345XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDebugUtilsMessengerEXT(
2346 XrDebugUtilsMessengerEXT messenger);
2347
2348XRAPI_ATTR XrResult XRAPI_CALL xrSubmitDebugUtilsMessageEXT(
2349 XrInstance instance,
2350 XrDebugUtilsMessageSeverityFlagsEXT messageSeverity,
2351 XrDebugUtilsMessageTypeFlagsEXT messageTypes,
2352 const XrDebugUtilsMessengerCallbackDataEXT* callbackData);
2353
2354XRAPI_ATTR XrResult XRAPI_CALL xrSessionBeginDebugUtilsLabelRegionEXT(
2355 XrSession session,
2356 const XrDebugUtilsLabelEXT* labelInfo);
2357
2358XRAPI_ATTR XrResult XRAPI_CALL xrSessionEndDebugUtilsLabelRegionEXT(
2359 XrSession session);
2360
2361XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT(
2362 XrSession session,
2363 const XrDebugUtilsLabelEXT* labelInfo);
2364#endif /* XR_EXTENSION_PROTOTYPES */
2365#endif /* !XR_NO_PROTOTYPES */
2366
2367
2368// XR_EXT_eye_gaze_interaction is a preprocessor guard. Do not pass it to API calls.
2369#define XR_EXT_eye_gaze_interaction 1
2370#define XR_EXT_eye_gaze_interaction_SPEC_VERSION 2
2371#define XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME "XR_EXT_eye_gaze_interaction"
2372// XrSystemEyeGazeInteractionPropertiesEXT extends XrSystemProperties
2373typedef struct XrSystemEyeGazeInteractionPropertiesEXT {
2374 XrStructureType type;
2375 void* XR_MAY_ALIAS next;
2376 XrBool32 supportsEyeGazeInteraction;
2377} XrSystemEyeGazeInteractionPropertiesEXT;
2378
2379// XrEyeGazeSampleTimeEXT extends XrSpaceLocation
2380typedef struct XrEyeGazeSampleTimeEXT {
2381 XrStructureType type;
2382 void* XR_MAY_ALIAS next;
2383 XrTime time;
2384} XrEyeGazeSampleTimeEXT;
2385
2386
2387
2388// XR_EXTX_overlay is a preprocessor guard. Do not pass it to API calls.
2389#define XR_EXTX_overlay 1
2390#define XR_EXTX_overlay_SPEC_VERSION 5
2391#define XR_EXTX_OVERLAY_EXTENSION_NAME "XR_EXTX_overlay"
2392typedef XrFlags64 XrOverlaySessionCreateFlagsEXTX;
2393
2394// Flag bits for XrOverlaySessionCreateFlagsEXTX
2395
2396typedef XrFlags64 XrOverlayMainSessionFlagsEXTX;
2397
2398// Flag bits for XrOverlayMainSessionFlagsEXTX
2399static const XrOverlayMainSessionFlagsEXTX XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX = 0x00000001;
2400
2401// XrSessionCreateInfoOverlayEXTX extends XrSessionCreateInfo
2402typedef struct XrSessionCreateInfoOverlayEXTX {
2403 XrStructureType type;
2404 const void* XR_MAY_ALIAS next;
2405 XrOverlaySessionCreateFlagsEXTX createFlags;
2406 uint32_t sessionLayersPlacement;
2407} XrSessionCreateInfoOverlayEXTX;
2408
2409typedef struct XrEventDataMainSessionVisibilityChangedEXTX {
2410 XrStructureType type;
2411 const void* XR_MAY_ALIAS next;
2412 XrBool32 visible;
2413 XrOverlayMainSessionFlagsEXTX flags;
2414} XrEventDataMainSessionVisibilityChangedEXTX;
2415
2416
2417
2418// XR_VARJO_quad_views is a preprocessor guard. Do not pass it to API calls.
2419#define XR_VARJO_quad_views 1
2420#define XR_VARJO_quad_views_SPEC_VERSION 2
2421#define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views"
2422
2423
2424// XR_MSFT_unbounded_reference_space is a preprocessor guard. Do not pass it to API calls.
2425#define XR_MSFT_unbounded_reference_space 1
2426#define XR_MSFT_unbounded_reference_space_SPEC_VERSION 1
2427#define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_MSFT_unbounded_reference_space"
2428
2429
2430// XR_MSFT_spatial_anchor is a preprocessor guard. Do not pass it to API calls.
2431#define XR_MSFT_spatial_anchor 1
2432XR_DEFINE_HANDLE(XrSpatialAnchorMSFT)
2433#define XR_MSFT_spatial_anchor_SPEC_VERSION 2
2434#define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_MSFT_spatial_anchor"
2435typedef struct XrSpatialAnchorCreateInfoMSFT {
2436 XrStructureType type;
2437 const void* XR_MAY_ALIAS next;
2438 XrSpace space;
2439 XrPosef pose;
2440 XrTime time;
2441} XrSpatialAnchorCreateInfoMSFT;
2442
2443typedef struct XrSpatialAnchorSpaceCreateInfoMSFT {
2444 XrStructureType type;
2445 const void* XR_MAY_ALIAS next;
2446 XrSpatialAnchorMSFT anchor;
2447 XrPosef poseInAnchorSpace;
2448} XrSpatialAnchorSpaceCreateInfoMSFT;
2449
2450typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorMSFT)(XrSession session, const XrSpatialAnchorCreateInfoMSFT* createInfo, XrSpatialAnchorMSFT* anchor);
2451typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, XrSpace* space);
2452typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT anchor);
2453
2454#ifndef XR_NO_PROTOTYPES
2455#ifdef XR_EXTENSION_PROTOTYPES
2456XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT(
2457 XrSession session,
2458 const XrSpatialAnchorCreateInfoMSFT* createInfo,
2459 XrSpatialAnchorMSFT* anchor);
2460
2461XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT(
2462 XrSession session,
2463 const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo,
2464 XrSpace* space);
2465
2466XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT(
2467 XrSpatialAnchorMSFT anchor);
2468#endif /* XR_EXTENSION_PROTOTYPES */
2469#endif /* !XR_NO_PROTOTYPES */
2470
2471
2472// XR_FB_composition_layer_image_layout is a preprocessor guard. Do not pass it to API calls.
2473#define XR_FB_composition_layer_image_layout 1
2474#define XR_FB_composition_layer_image_layout_SPEC_VERSION 1
2475#define XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME "XR_FB_composition_layer_image_layout"
2476typedef XrFlags64 XrCompositionLayerImageLayoutFlagsFB;
2477
2478// Flag bits for XrCompositionLayerImageLayoutFlagsFB
2479static const XrCompositionLayerImageLayoutFlagsFB XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB = 0x00000001;
2480
2481// XrCompositionLayerImageLayoutFB extends XrCompositionLayerBaseHeader
2482typedef struct XrCompositionLayerImageLayoutFB {
2483 XrStructureType type;
2484 void* XR_MAY_ALIAS next;
2485 XrCompositionLayerImageLayoutFlagsFB flags;
2486} XrCompositionLayerImageLayoutFB;
2487
2488
2489
2490// XR_FB_composition_layer_alpha_blend is a preprocessor guard. Do not pass it to API calls.
2491#define XR_FB_composition_layer_alpha_blend 1
2492#define XR_FB_composition_layer_alpha_blend_SPEC_VERSION 3
2493#define XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME "XR_FB_composition_layer_alpha_blend"
2494
2495typedef enum XrBlendFactorFB {
2496 XR_BLEND_FACTOR_ZERO_FB = 0,
2497 XR_BLEND_FACTOR_ONE_FB = 1,
2498 XR_BLEND_FACTOR_SRC_ALPHA_FB = 2,
2499 XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB = 3,
2500 XR_BLEND_FACTOR_DST_ALPHA_FB = 4,
2501 XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB = 5,
2502 XR_BLEND_FACTOR_MAX_ENUM_FB = 0x7FFFFFFF
2503} XrBlendFactorFB;
2504// XrCompositionLayerAlphaBlendFB extends XrCompositionLayerBaseHeader
2505typedef struct XrCompositionLayerAlphaBlendFB {
2506 XrStructureType type;
2507 void* XR_MAY_ALIAS next;
2508 XrBlendFactorFB srcFactorColor;
2509 XrBlendFactorFB dstFactorColor;
2510 XrBlendFactorFB srcFactorAlpha;
2511 XrBlendFactorFB dstFactorAlpha;
2512} XrCompositionLayerAlphaBlendFB;
2513
2514
2515
2516// XR_MND_headless is a preprocessor guard. Do not pass it to API calls.
2517#define XR_MND_headless 1
2518#define XR_MND_headless_SPEC_VERSION 2
2519#define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless"
2520
2521
2522// XR_OCULUS_android_session_state_enable is a preprocessor guard. Do not pass it to API calls.
2523#define XR_OCULUS_android_session_state_enable 1
2524#define XR_OCULUS_android_session_state_enable_SPEC_VERSION 1
2525#define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME "XR_OCULUS_android_session_state_enable"
2526
2527
2528// XR_EXT_view_configuration_depth_range is a preprocessor guard. Do not pass it to API calls.
2529#define XR_EXT_view_configuration_depth_range 1
2530#define XR_EXT_view_configuration_depth_range_SPEC_VERSION 1
2531#define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME "XR_EXT_view_configuration_depth_range"
2532// XrViewConfigurationDepthRangeEXT extends XrViewConfigurationView
2533typedef struct XrViewConfigurationDepthRangeEXT {
2534 XrStructureType type;
2535 void* XR_MAY_ALIAS next;
2536 float recommendedNearZ;
2537 float minNearZ;
2538 float recommendedFarZ;
2539 float maxFarZ;
2540} XrViewConfigurationDepthRangeEXT;
2541
2542
2543
2544// XR_EXT_conformance_automation is a preprocessor guard. Do not pass it to API calls.
2545#define XR_EXT_conformance_automation 1
2546#define XR_EXT_conformance_automation_SPEC_VERSION 3
2547#define XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME "XR_EXT_conformance_automation"
2548typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceActiveEXT)(XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive);
2549typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateBoolEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrBool32 state);
2550typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateFloatEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, float state);
2551typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateVector2fEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrVector2f state);
2552typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceLocationEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrSpace space, XrPosef pose);
2553
2554#ifndef XR_NO_PROTOTYPES
2555#ifdef XR_EXTENSION_PROTOTYPES
2556XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceActiveEXT(
2557 XrSession session,
2558 XrPath interactionProfile,
2559 XrPath topLevelPath,
2560 XrBool32 isActive);
2561
2562XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateBoolEXT(
2563 XrSession session,
2564 XrPath topLevelPath,
2565 XrPath inputSourcePath,
2566 XrBool32 state);
2567
2568XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateFloatEXT(
2569 XrSession session,
2570 XrPath topLevelPath,
2571 XrPath inputSourcePath,
2572 float state);
2573
2574XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateVector2fEXT(
2575 XrSession session,
2576 XrPath topLevelPath,
2577 XrPath inputSourcePath,
2578 XrVector2f state);
2579
2580XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(
2581 XrSession session,
2582 XrPath topLevelPath,
2583 XrPath inputSourcePath,
2584 XrSpace space,
2585 XrPosef pose);
2586#endif /* XR_EXTENSION_PROTOTYPES */
2587#endif /* !XR_NO_PROTOTYPES */
2588
2589
2590// XR_MSFT_spatial_graph_bridge is a preprocessor guard. Do not pass it to API calls.
2591#define XR_MSFT_spatial_graph_bridge 1
2592XR_DEFINE_HANDLE(XrSpatialGraphNodeBindingMSFT)
2593#define XR_GUID_SIZE_MSFT 16
2594#define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 2
2595#define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge"
2596
2597typedef enum XrSpatialGraphNodeTypeMSFT {
2598 XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT = 1,
2599 XR_SPATIAL_GRAPH_NODE_TYPE_DYNAMIC_MSFT = 2,
2600 XR_SPATIAL_GRAPH_NODE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
2601} XrSpatialGraphNodeTypeMSFT;
2602typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT {
2603 XrStructureType type;
2604 const void* XR_MAY_ALIAS next;
2605 XrSpatialGraphNodeTypeMSFT nodeType;
2606 uint8_t nodeId[XR_GUID_SIZE_MSFT];
2607 XrPosef pose;
2608} XrSpatialGraphNodeSpaceCreateInfoMSFT;
2609
2610typedef struct XrSpatialGraphStaticNodeBindingCreateInfoMSFT {
2611 XrStructureType type;
2612 const void* XR_MAY_ALIAS next;
2613 XrSpace space;
2614 XrPosef poseInSpace;
2615 XrTime time;
2616} XrSpatialGraphStaticNodeBindingCreateInfoMSFT;
2617
2618typedef struct XrSpatialGraphNodeBindingPropertiesGetInfoMSFT {
2619 XrStructureType type;
2620 const void* XR_MAY_ALIAS next;
2621} XrSpatialGraphNodeBindingPropertiesGetInfoMSFT;
2622
2623typedef struct XrSpatialGraphNodeBindingPropertiesMSFT {
2624 XrStructureType type;
2625 void* XR_MAY_ALIAS next;
2626 uint8_t nodeId[XR_GUID_SIZE_MSFT];
2627 XrPosef poseInNodeSpace;
2628} XrSpatialGraphNodeBindingPropertiesMSFT;
2629
2630typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession session, const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo, XrSpace* space);
2631typedef XrResult (XRAPI_PTR *PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT)(XrSession session, const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo, XrSpatialGraphNodeBindingMSFT* nodeBinding);
2632typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialGraphNodeBindingMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding);
2633typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding, const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo, XrSpatialGraphNodeBindingPropertiesMSFT* properties);
2634
2635#ifndef XR_NO_PROTOTYPES
2636#ifdef XR_EXTENSION_PROTOTYPES
2637XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT(
2638 XrSession session,
2639 const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo,
2640 XrSpace* space);
2641
2642XRAPI_ATTR XrResult XRAPI_CALL xrTryCreateSpatialGraphStaticNodeBindingMSFT(
2643 XrSession session,
2644 const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo,
2645 XrSpatialGraphNodeBindingMSFT* nodeBinding);
2646
2647XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialGraphNodeBindingMSFT(
2648 XrSpatialGraphNodeBindingMSFT nodeBinding);
2649
2650XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialGraphNodeBindingPropertiesMSFT(
2651 XrSpatialGraphNodeBindingMSFT nodeBinding,
2652 const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo,
2653 XrSpatialGraphNodeBindingPropertiesMSFT* properties);
2654#endif /* XR_EXTENSION_PROTOTYPES */
2655#endif /* !XR_NO_PROTOTYPES */
2656
2657
2658// XR_MSFT_hand_interaction is a preprocessor guard. Do not pass it to API calls.
2659#define XR_MSFT_hand_interaction 1
2660#define XR_MSFT_hand_interaction_SPEC_VERSION 1
2661#define XR_MSFT_HAND_INTERACTION_EXTENSION_NAME "XR_MSFT_hand_interaction"
2662
2663
2664// XR_EXT_hand_tracking is a preprocessor guard. Do not pass it to API calls.
2665#define XR_EXT_hand_tracking 1
2666
2667#define XR_HAND_JOINT_COUNT_EXT 26
2668
2669XR_DEFINE_HANDLE(XrHandTrackerEXT)
2670#define XR_EXT_hand_tracking_SPEC_VERSION 4
2671#define XR_EXT_HAND_TRACKING_EXTENSION_NAME "XR_EXT_hand_tracking"
2672
2673typedef enum XrHandEXT {
2674 XR_HAND_LEFT_EXT = 1,
2675 XR_HAND_RIGHT_EXT = 2,
2676 XR_HAND_MAX_ENUM_EXT = 0x7FFFFFFF
2677} XrHandEXT;
2678
2679typedef enum XrHandJointEXT {
2680 XR_HAND_JOINT_PALM_EXT = 0,
2681 XR_HAND_JOINT_WRIST_EXT = 1,
2682 XR_HAND_JOINT_THUMB_METACARPAL_EXT = 2,
2683 XR_HAND_JOINT_THUMB_PROXIMAL_EXT = 3,
2684 XR_HAND_JOINT_THUMB_DISTAL_EXT = 4,
2685 XR_HAND_JOINT_THUMB_TIP_EXT = 5,
2686 XR_HAND_JOINT_INDEX_METACARPAL_EXT = 6,
2687 XR_HAND_JOINT_INDEX_PROXIMAL_EXT = 7,
2688 XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT = 8,
2689 XR_HAND_JOINT_INDEX_DISTAL_EXT = 9,
2690 XR_HAND_JOINT_INDEX_TIP_EXT = 10,
2691 XR_HAND_JOINT_MIDDLE_METACARPAL_EXT = 11,
2692 XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT = 12,
2693 XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT = 13,
2694 XR_HAND_JOINT_MIDDLE_DISTAL_EXT = 14,
2695 XR_HAND_JOINT_MIDDLE_TIP_EXT = 15,
2696 XR_HAND_JOINT_RING_METACARPAL_EXT = 16,
2697 XR_HAND_JOINT_RING_PROXIMAL_EXT = 17,
2698 XR_HAND_JOINT_RING_INTERMEDIATE_EXT = 18,
2699 XR_HAND_JOINT_RING_DISTAL_EXT = 19,
2700 XR_HAND_JOINT_RING_TIP_EXT = 20,
2701 XR_HAND_JOINT_LITTLE_METACARPAL_EXT = 21,
2702 XR_HAND_JOINT_LITTLE_PROXIMAL_EXT = 22,
2703 XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT = 23,
2704 XR_HAND_JOINT_LITTLE_DISTAL_EXT = 24,
2705 XR_HAND_JOINT_LITTLE_TIP_EXT = 25,
2706 XR_HAND_JOINT_MAX_ENUM_EXT = 0x7FFFFFFF
2707} XrHandJointEXT;
2708
2709typedef enum XrHandJointSetEXT {
2710 XR_HAND_JOINT_SET_DEFAULT_EXT = 0,
2711 XR_HAND_JOINT_SET_HAND_WITH_FOREARM_ULTRALEAP = 1000149000,
2712 XR_HAND_JOINT_SET_MAX_ENUM_EXT = 0x7FFFFFFF
2713} XrHandJointSetEXT;
2714// XrSystemHandTrackingPropertiesEXT extends XrSystemProperties
2715typedef struct XrSystemHandTrackingPropertiesEXT {
2716 XrStructureType type;
2717 void* XR_MAY_ALIAS next;
2718 XrBool32 supportsHandTracking;
2719} XrSystemHandTrackingPropertiesEXT;
2720
2721typedef struct XrHandTrackerCreateInfoEXT {
2722 XrStructureType type;
2723 const void* XR_MAY_ALIAS next;
2724 XrHandEXT hand;
2725 XrHandJointSetEXT handJointSet;
2726} XrHandTrackerCreateInfoEXT;
2727
2728typedef struct XrHandJointsLocateInfoEXT {
2729 XrStructureType type;
2730 const void* XR_MAY_ALIAS next;
2731 XrSpace baseSpace;
2732 XrTime time;
2733} XrHandJointsLocateInfoEXT;
2734
2735typedef struct XrHandJointLocationEXT {
2736 XrSpaceLocationFlags locationFlags;
2737 XrPosef pose;
2738 float radius;
2739} XrHandJointLocationEXT;
2740
2741typedef struct XrHandJointVelocityEXT {
2742 XrSpaceVelocityFlags velocityFlags;
2743 XrVector3f linearVelocity;
2744 XrVector3f angularVelocity;
2745} XrHandJointVelocityEXT;
2746
2747typedef struct XrHandJointLocationsEXT {
2748 XrStructureType type;
2749 void* XR_MAY_ALIAS next;
2750 XrBool32 isActive;
2751 uint32_t jointCount;
2752 XrHandJointLocationEXT* jointLocations;
2753} XrHandJointLocationsEXT;
2754
2755// XrHandJointVelocitiesEXT extends XrHandJointLocationsEXT
2756typedef struct XrHandJointVelocitiesEXT {
2757 XrStructureType type;
2758 void* XR_MAY_ALIAS next;
2759 uint32_t jointCount;
2760 XrHandJointVelocityEXT* jointVelocities;
2761} XrHandJointVelocitiesEXT;
2762
2763typedef XrResult (XRAPI_PTR *PFN_xrCreateHandTrackerEXT)(XrSession session, const XrHandTrackerCreateInfoEXT* createInfo, XrHandTrackerEXT* handTracker);
2764typedef XrResult (XRAPI_PTR *PFN_xrDestroyHandTrackerEXT)(XrHandTrackerEXT handTracker);
2765typedef XrResult (XRAPI_PTR *PFN_xrLocateHandJointsEXT)(XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT* locateInfo, XrHandJointLocationsEXT* locations);
2766
2767#ifndef XR_NO_PROTOTYPES
2768#ifdef XR_EXTENSION_PROTOTYPES
2769XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandTrackerEXT(
2770 XrSession session,
2771 const XrHandTrackerCreateInfoEXT* createInfo,
2772 XrHandTrackerEXT* handTracker);
2773
2774XRAPI_ATTR XrResult XRAPI_CALL xrDestroyHandTrackerEXT(
2775 XrHandTrackerEXT handTracker);
2776
2777XRAPI_ATTR XrResult XRAPI_CALL xrLocateHandJointsEXT(
2778 XrHandTrackerEXT handTracker,
2779 const XrHandJointsLocateInfoEXT* locateInfo,
2780 XrHandJointLocationsEXT* locations);
2781#endif /* XR_EXTENSION_PROTOTYPES */
2782#endif /* !XR_NO_PROTOTYPES */
2783
2784
2785// XR_MSFT_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls.
2786#define XR_MSFT_hand_tracking_mesh 1
2787#define XR_MSFT_hand_tracking_mesh_SPEC_VERSION 4
2788#define XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME "XR_MSFT_hand_tracking_mesh"
2789
2790typedef enum XrHandPoseTypeMSFT {
2791 XR_HAND_POSE_TYPE_TRACKED_MSFT = 0,
2792 XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT = 1,
2793 XR_HAND_POSE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
2794} XrHandPoseTypeMSFT;
2795// XrSystemHandTrackingMeshPropertiesMSFT extends XrSystemProperties
2796typedef struct XrSystemHandTrackingMeshPropertiesMSFT {
2797 XrStructureType type;
2798 void* XR_MAY_ALIAS next;
2799 XrBool32 supportsHandTrackingMesh;
2800 uint32_t maxHandMeshIndexCount;
2801 uint32_t maxHandMeshVertexCount;
2802} XrSystemHandTrackingMeshPropertiesMSFT;
2803
2804typedef struct XrHandMeshSpaceCreateInfoMSFT {
2805 XrStructureType type;
2806 const void* XR_MAY_ALIAS next;
2807 XrHandPoseTypeMSFT handPoseType;
2808 XrPosef poseInHandMeshSpace;
2809} XrHandMeshSpaceCreateInfoMSFT;
2810
2811typedef struct XrHandMeshUpdateInfoMSFT {
2812 XrStructureType type;
2813 const void* XR_MAY_ALIAS next;
2814 XrTime time;
2815 XrHandPoseTypeMSFT handPoseType;
2816} XrHandMeshUpdateInfoMSFT;
2817
2818typedef struct XrHandMeshIndexBufferMSFT {
2819 uint32_t indexBufferKey;
2820 uint32_t indexCapacityInput;
2821 uint32_t indexCountOutput;
2822 uint32_t* indices;
2823} XrHandMeshIndexBufferMSFT;
2824
2825typedef struct XrHandMeshVertexMSFT {
2826 XrVector3f position;
2827 XrVector3f normal;
2828} XrHandMeshVertexMSFT;
2829
2830typedef struct XrHandMeshVertexBufferMSFT {
2831 XrTime vertexUpdateTime;
2832 uint32_t vertexCapacityInput;
2833 uint32_t vertexCountOutput;
2834 XrHandMeshVertexMSFT* vertices;
2835} XrHandMeshVertexBufferMSFT;
2836
2837typedef struct XrHandMeshMSFT {
2838 XrStructureType type;
2839 void* XR_MAY_ALIAS next;
2840 XrBool32 isActive;
2841 XrBool32 indexBufferChanged;
2842 XrBool32 vertexBufferChanged;
2843 XrHandMeshIndexBufferMSFT indexBuffer;
2844 XrHandMeshVertexBufferMSFT vertexBuffer;
2845} XrHandMeshMSFT;
2846
2847// XrHandPoseTypeInfoMSFT extends XrHandTrackerCreateInfoEXT
2848typedef struct XrHandPoseTypeInfoMSFT {
2849 XrStructureType type;
2850 const void* XR_MAY_ALIAS next;
2851 XrHandPoseTypeMSFT handPoseType;
2852} XrHandPoseTypeInfoMSFT;
2853
2854typedef XrResult (XRAPI_PTR *PFN_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT handTracker, const XrHandMeshSpaceCreateInfoMSFT* createInfo, XrSpace* space);
2855typedef XrResult (XRAPI_PTR *PFN_xrUpdateHandMeshMSFT)(XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT* updateInfo, XrHandMeshMSFT* handMesh);
2856
2857#ifndef XR_NO_PROTOTYPES
2858#ifdef XR_EXTENSION_PROTOTYPES
2859XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandMeshSpaceMSFT(
2860 XrHandTrackerEXT handTracker,
2861 const XrHandMeshSpaceCreateInfoMSFT* createInfo,
2862 XrSpace* space);
2863
2864XRAPI_ATTR XrResult XRAPI_CALL xrUpdateHandMeshMSFT(
2865 XrHandTrackerEXT handTracker,
2866 const XrHandMeshUpdateInfoMSFT* updateInfo,
2867 XrHandMeshMSFT* handMesh);
2868#endif /* XR_EXTENSION_PROTOTYPES */
2869#endif /* !XR_NO_PROTOTYPES */
2870
2871
2872// XR_MSFT_secondary_view_configuration is a preprocessor guard. Do not pass it to API calls.
2873#define XR_MSFT_secondary_view_configuration 1
2874#define XR_MSFT_secondary_view_configuration_SPEC_VERSION 1
2875#define XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME "XR_MSFT_secondary_view_configuration"
2876// XrSecondaryViewConfigurationSessionBeginInfoMSFT extends XrSessionBeginInfo
2877typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT {
2878 XrStructureType type;
2879 const void* XR_MAY_ALIAS next;
2880 uint32_t viewConfigurationCount;
2881 const XrViewConfigurationType* enabledViewConfigurationTypes;
2882} XrSecondaryViewConfigurationSessionBeginInfoMSFT;
2883
2884typedef struct XrSecondaryViewConfigurationStateMSFT {
2885 XrStructureType type;
2886 void* XR_MAY_ALIAS next;
2887 XrViewConfigurationType viewConfigurationType;
2888 XrBool32 active;
2889} XrSecondaryViewConfigurationStateMSFT;
2890
2891// XrSecondaryViewConfigurationFrameStateMSFT extends XrFrameState
2892typedef struct XrSecondaryViewConfigurationFrameStateMSFT {
2893 XrStructureType type;
2894 void* XR_MAY_ALIAS next;
2895 uint32_t viewConfigurationCount;
2896 XrSecondaryViewConfigurationStateMSFT* viewConfigurationStates;
2897} XrSecondaryViewConfigurationFrameStateMSFT;
2898
2899typedef struct XrSecondaryViewConfigurationLayerInfoMSFT {
2900 XrStructureType type;
2901 const void* XR_MAY_ALIAS next;
2902 XrViewConfigurationType viewConfigurationType;
2903 XrEnvironmentBlendMode environmentBlendMode;
2904 uint32_t layerCount;
2905 const XrCompositionLayerBaseHeader* const* layers;
2906} XrSecondaryViewConfigurationLayerInfoMSFT;
2907
2908// XrSecondaryViewConfigurationFrameEndInfoMSFT extends XrFrameEndInfo
2909typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT {
2910 XrStructureType type;
2911 const void* XR_MAY_ALIAS next;
2912 uint32_t viewConfigurationCount;
2913 const XrSecondaryViewConfigurationLayerInfoMSFT* viewConfigurationLayersInfo;
2914} XrSecondaryViewConfigurationFrameEndInfoMSFT;
2915
2916// XrSecondaryViewConfigurationSwapchainCreateInfoMSFT extends XrSwapchainCreateInfo
2917typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT {
2918 XrStructureType type;
2919 const void* XR_MAY_ALIAS next;
2920 XrViewConfigurationType viewConfigurationType;
2921} XrSecondaryViewConfigurationSwapchainCreateInfoMSFT;
2922
2923
2924
2925// XR_MSFT_first_person_observer is a preprocessor guard. Do not pass it to API calls.
2926#define XR_MSFT_first_person_observer 1
2927#define XR_MSFT_first_person_observer_SPEC_VERSION 1
2928#define XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME "XR_MSFT_first_person_observer"
2929
2930
2931// XR_MSFT_controller_model is a preprocessor guard. Do not pass it to API calls.
2932#define XR_MSFT_controller_model 1
2933
2934#define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0
2935
2936XR_DEFINE_ATOM(XrControllerModelKeyMSFT)
2937#define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64
2938#define XR_MSFT_controller_model_SPEC_VERSION 2
2939#define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME "XR_MSFT_controller_model"
2940typedef struct XrControllerModelKeyStateMSFT {
2941 XrStructureType type;
2942 void* XR_MAY_ALIAS next;
2943 XrControllerModelKeyMSFT modelKey;
2944} XrControllerModelKeyStateMSFT;
2945
2946typedef struct XrControllerModelNodePropertiesMSFT {
2947 XrStructureType type;
2948 void* XR_MAY_ALIAS next;
2949 char parentNodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT];
2950 char nodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT];
2951} XrControllerModelNodePropertiesMSFT;
2952
2953typedef struct XrControllerModelPropertiesMSFT {
2954 XrStructureType type;
2955 void* XR_MAY_ALIAS next;
2956 uint32_t nodeCapacityInput;
2957 uint32_t nodeCountOutput;
2958 XrControllerModelNodePropertiesMSFT* nodeProperties;
2959} XrControllerModelPropertiesMSFT;
2960
2961typedef struct XrControllerModelNodeStateMSFT {
2962 XrStructureType type;
2963 void* XR_MAY_ALIAS next;
2964 XrPosef nodePose;
2965} XrControllerModelNodeStateMSFT;
2966
2967typedef struct XrControllerModelStateMSFT {
2968 XrStructureType type;
2969 void* XR_MAY_ALIAS next;
2970 uint32_t nodeCapacityInput;
2971 uint32_t nodeCountOutput;
2972 XrControllerModelNodeStateMSFT* nodeStates;
2973} XrControllerModelStateMSFT;
2974
2975typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelKeyMSFT)(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT* controllerModelKeyState);
2976typedef XrResult (XRAPI_PTR *PFN_xrLoadControllerModelMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer);
2977typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelPropertiesMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT* properties);
2978typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelStateMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT* state);
2979
2980#ifndef XR_NO_PROTOTYPES
2981#ifdef XR_EXTENSION_PROTOTYPES
2982XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelKeyMSFT(
2983 XrSession session,
2984 XrPath topLevelUserPath,
2985 XrControllerModelKeyStateMSFT* controllerModelKeyState);
2986
2987XRAPI_ATTR XrResult XRAPI_CALL xrLoadControllerModelMSFT(
2988 XrSession session,
2989 XrControllerModelKeyMSFT modelKey,
2990 uint32_t bufferCapacityInput,
2991 uint32_t* bufferCountOutput,
2992 uint8_t* buffer);
2993
2994XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelPropertiesMSFT(
2995 XrSession session,
2996 XrControllerModelKeyMSFT modelKey,
2997 XrControllerModelPropertiesMSFT* properties);
2998
2999XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelStateMSFT(
3000 XrSession session,
3001 XrControllerModelKeyMSFT modelKey,
3002 XrControllerModelStateMSFT* state);
3003#endif /* XR_EXTENSION_PROTOTYPES */
3004#endif /* !XR_NO_PROTOTYPES */
3005
3006
3007// XR_EXT_win32_appcontainer_compatible is a preprocessor guard. Do not pass it to API calls.
3008#define XR_EXT_win32_appcontainer_compatible 1
3009#define XR_EXT_win32_appcontainer_compatible_SPEC_VERSION 1
3010#define XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME "XR_EXT_win32_appcontainer_compatible"
3011
3012
3013// XR_EPIC_view_configuration_fov is a preprocessor guard. Do not pass it to API calls.
3014#define XR_EPIC_view_configuration_fov 1
3015#define XR_EPIC_view_configuration_fov_SPEC_VERSION 2
3016#define XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME "XR_EPIC_view_configuration_fov"
3017// XrViewConfigurationViewFovEPIC extends XrViewConfigurationView
3018typedef struct XrViewConfigurationViewFovEPIC {
3019 XrStructureType type;
3020 const void* XR_MAY_ALIAS next;
3021 XrFovf recommendedFov;
3022 XrFovf maxMutableFov;
3023} XrViewConfigurationViewFovEPIC;
3024
3025
3026
3027// XR_MSFT_composition_layer_reprojection is a preprocessor guard. Do not pass it to API calls.
3028#define XR_MSFT_composition_layer_reprojection 1
3029#define XR_MSFT_composition_layer_reprojection_SPEC_VERSION 1
3030#define XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME "XR_MSFT_composition_layer_reprojection"
3031
3032typedef enum XrReprojectionModeMSFT {
3033 XR_REPROJECTION_MODE_DEPTH_MSFT = 1,
3034 XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT = 2,
3035 XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT = 3,
3036 XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT = 4,
3037 XR_REPROJECTION_MODE_MAX_ENUM_MSFT = 0x7FFFFFFF
3038} XrReprojectionModeMSFT;
3039// XrCompositionLayerReprojectionInfoMSFT extends XrCompositionLayerProjection
3040typedef struct XrCompositionLayerReprojectionInfoMSFT {
3041 XrStructureType type;
3042 const void* XR_MAY_ALIAS next;
3043 XrReprojectionModeMSFT reprojectionMode;
3044} XrCompositionLayerReprojectionInfoMSFT;
3045
3046// XrCompositionLayerReprojectionPlaneOverrideMSFT extends XrCompositionLayerProjection
3047typedef struct XrCompositionLayerReprojectionPlaneOverrideMSFT {
3048 XrStructureType type;
3049 const void* XR_MAY_ALIAS next;
3050 XrVector3f position;
3051 XrVector3f normal;
3052 XrVector3f velocity;
3053} XrCompositionLayerReprojectionPlaneOverrideMSFT;
3054
3055typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReprojectionModesMSFT)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrReprojectionModeMSFT* modes);
3056
3057#ifndef XR_NO_PROTOTYPES
3058#ifdef XR_EXTENSION_PROTOTYPES
3059XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReprojectionModesMSFT(
3060 XrInstance instance,
3061 XrSystemId systemId,
3062 XrViewConfigurationType viewConfigurationType,
3063 uint32_t modeCapacityInput,
3064 uint32_t* modeCountOutput,
3065 XrReprojectionModeMSFT* modes);
3066#endif /* XR_EXTENSION_PROTOTYPES */
3067#endif /* !XR_NO_PROTOTYPES */
3068
3069
3070// XR_HUAWEI_controller_interaction is a preprocessor guard. Do not pass it to API calls.
3071#define XR_HUAWEI_controller_interaction 1
3072#define XR_HUAWEI_controller_interaction_SPEC_VERSION 1
3073#define XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HUAWEI_controller_interaction"
3074
3075
3076// XR_FB_swapchain_update_state is a preprocessor guard. Do not pass it to API calls.
3077#define XR_FB_swapchain_update_state 1
3078#define XR_FB_swapchain_update_state_SPEC_VERSION 3
3079#define XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME "XR_FB_swapchain_update_state"
3080typedef struct XR_MAY_ALIAS XrSwapchainStateBaseHeaderFB {
3081 XrStructureType type;
3082 void* XR_MAY_ALIAS next;
3083} XrSwapchainStateBaseHeaderFB;
3084
3085typedef XrResult (XRAPI_PTR *PFN_xrUpdateSwapchainFB)(XrSwapchain swapchain, const XrSwapchainStateBaseHeaderFB* state);
3086typedef XrResult (XRAPI_PTR *PFN_xrGetSwapchainStateFB)(XrSwapchain swapchain, XrSwapchainStateBaseHeaderFB* state);
3087
3088#ifndef XR_NO_PROTOTYPES
3089#ifdef XR_EXTENSION_PROTOTYPES
3090XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSwapchainFB(
3091 XrSwapchain swapchain,
3092 const XrSwapchainStateBaseHeaderFB* state);
3093
3094XRAPI_ATTR XrResult XRAPI_CALL xrGetSwapchainStateFB(
3095 XrSwapchain swapchain,
3096 XrSwapchainStateBaseHeaderFB* state);
3097#endif /* XR_EXTENSION_PROTOTYPES */
3098#endif /* !XR_NO_PROTOTYPES */
3099
3100
3101// XR_FB_composition_layer_secure_content is a preprocessor guard. Do not pass it to API calls.
3102#define XR_FB_composition_layer_secure_content 1
3103#define XR_FB_composition_layer_secure_content_SPEC_VERSION 1
3104#define XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME "XR_FB_composition_layer_secure_content"
3105typedef XrFlags64 XrCompositionLayerSecureContentFlagsFB;
3106
3107// Flag bits for XrCompositionLayerSecureContentFlagsFB
3108static const XrCompositionLayerSecureContentFlagsFB XR_COMPOSITION_LAYER_SECURE_CONTENT_EXCLUDE_LAYER_BIT_FB = 0x00000001;
3109static const XrCompositionLayerSecureContentFlagsFB XR_COMPOSITION_LAYER_SECURE_CONTENT_REPLACE_LAYER_BIT_FB = 0x00000002;
3110
3111// XrCompositionLayerSecureContentFB extends XrCompositionLayerBaseHeader
3112typedef struct XrCompositionLayerSecureContentFB {
3113 XrStructureType type;
3114 const void* XR_MAY_ALIAS next;
3115 XrCompositionLayerSecureContentFlagsFB flags;
3116} XrCompositionLayerSecureContentFB;
3117
3118
3119
3120// XR_FB_body_tracking is a preprocessor guard. Do not pass it to API calls.
3121#define XR_FB_body_tracking 1
3122XR_DEFINE_HANDLE(XrBodyTrackerFB)
3123#define XR_FB_body_tracking_SPEC_VERSION 1
3124#define XR_FB_BODY_TRACKING_EXTENSION_NAME "XR_FB_body_tracking"
3125
3126typedef enum XrBodyJointFB {
3127 XR_BODY_JOINT_ROOT_FB = 0,
3128 XR_BODY_JOINT_HIPS_FB = 1,
3129 XR_BODY_JOINT_SPINE_LOWER_FB = 2,
3130 XR_BODY_JOINT_SPINE_MIDDLE_FB = 3,
3131 XR_BODY_JOINT_SPINE_UPPER_FB = 4,
3132 XR_BODY_JOINT_CHEST_FB = 5,
3133 XR_BODY_JOINT_NECK_FB = 6,
3134 XR_BODY_JOINT_HEAD_FB = 7,
3135 XR_BODY_JOINT_LEFT_SHOULDER_FB = 8,
3136 XR_BODY_JOINT_LEFT_SCAPULA_FB = 9,
3137 XR_BODY_JOINT_LEFT_ARM_UPPER_FB = 10,
3138 XR_BODY_JOINT_LEFT_ARM_LOWER_FB = 11,
3139 XR_BODY_JOINT_LEFT_HAND_WRIST_TWIST_FB = 12,
3140 XR_BODY_JOINT_RIGHT_SHOULDER_FB = 13,
3141 XR_BODY_JOINT_RIGHT_SCAPULA_FB = 14,
3142 XR_BODY_JOINT_RIGHT_ARM_UPPER_FB = 15,
3143 XR_BODY_JOINT_RIGHT_ARM_LOWER_FB = 16,
3144 XR_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_FB = 17,
3145 XR_BODY_JOINT_LEFT_HAND_PALM_FB = 18,
3146 XR_BODY_JOINT_LEFT_HAND_WRIST_FB = 19,
3147 XR_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_FB = 20,
3148 XR_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_FB = 21,
3149 XR_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_FB = 22,
3150 XR_BODY_JOINT_LEFT_HAND_THUMB_TIP_FB = 23,
3151 XR_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_FB = 24,
3152 XR_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_FB = 25,
3153 XR_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_FB = 26,
3154 XR_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_FB = 27,
3155 XR_BODY_JOINT_LEFT_HAND_INDEX_TIP_FB = 28,
3156 XR_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_FB = 29,
3157 XR_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_FB = 30,
3158 XR_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_FB = 31,
3159 XR_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_FB = 32,
3160 XR_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_FB = 33,
3161 XR_BODY_JOINT_LEFT_HAND_RING_METACARPAL_FB = 34,
3162 XR_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_FB = 35,
3163 XR_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_FB = 36,
3164 XR_BODY_JOINT_LEFT_HAND_RING_DISTAL_FB = 37,
3165 XR_BODY_JOINT_LEFT_HAND_RING_TIP_FB = 38,
3166 XR_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_FB = 39,
3167 XR_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_FB = 40,
3168 XR_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_FB = 41,
3169 XR_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_FB = 42,
3170 XR_BODY_JOINT_LEFT_HAND_LITTLE_TIP_FB = 43,
3171 XR_BODY_JOINT_RIGHT_HAND_PALM_FB = 44,
3172 XR_BODY_JOINT_RIGHT_HAND_WRIST_FB = 45,
3173 XR_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_FB = 46,
3174 XR_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_FB = 47,
3175 XR_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_FB = 48,
3176 XR_BODY_JOINT_RIGHT_HAND_THUMB_TIP_FB = 49,
3177 XR_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_FB = 50,
3178 XR_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_FB = 51,
3179 XR_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_FB = 52,
3180 XR_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_FB = 53,
3181 XR_BODY_JOINT_RIGHT_HAND_INDEX_TIP_FB = 54,
3182 XR_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_FB = 55,
3183 XR_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_FB = 56,
3184 XR_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_FB = 57,
3185 XR_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_FB = 58,
3186 XR_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_FB = 59,
3187 XR_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_FB = 60,
3188 XR_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_FB = 61,
3189 XR_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_FB = 62,
3190 XR_BODY_JOINT_RIGHT_HAND_RING_DISTAL_FB = 63,
3191 XR_BODY_JOINT_RIGHT_HAND_RING_TIP_FB = 64,
3192 XR_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_FB = 65,
3193 XR_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_FB = 66,
3194 XR_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_FB = 67,
3195 XR_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_FB = 68,
3196 XR_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_FB = 69,
3197 XR_BODY_JOINT_COUNT_FB = 70,
3198 XR_BODY_JOINT_NONE_FB = -1,
3199 XR_BODY_JOINT_MAX_ENUM_FB = 0x7FFFFFFF
3200} XrBodyJointFB;
3201
3202typedef enum XrBodyJointSetFB {
3203 XR_BODY_JOINT_SET_DEFAULT_FB = 0,
3204 XR_BODY_JOINT_SET_FULL_BODY_META = 1000274000,
3205 XR_BODY_JOINT_SET_MAX_ENUM_FB = 0x7FFFFFFF
3206} XrBodyJointSetFB;
3207typedef struct XrBodyJointLocationFB {
3208 XrSpaceLocationFlags locationFlags;
3209 XrPosef pose;
3210} XrBodyJointLocationFB;
3211
3212// XrSystemBodyTrackingPropertiesFB extends XrSystemProperties
3213typedef struct XrSystemBodyTrackingPropertiesFB {
3214 XrStructureType type;
3215 void* XR_MAY_ALIAS next;
3216 XrBool32 supportsBodyTracking;
3217} XrSystemBodyTrackingPropertiesFB;
3218
3219typedef struct XrBodyTrackerCreateInfoFB {
3220 XrStructureType type;
3221 const void* XR_MAY_ALIAS next;
3222 XrBodyJointSetFB bodyJointSet;
3223} XrBodyTrackerCreateInfoFB;
3224
3225typedef struct XrBodySkeletonJointFB {
3226 int32_t joint;
3227 int32_t parentJoint;
3228 XrPosef pose;
3229} XrBodySkeletonJointFB;
3230
3231typedef struct XrBodySkeletonFB {
3232 XrStructureType type;
3233 void* XR_MAY_ALIAS next;
3234 uint32_t jointCount;
3235 XrBodySkeletonJointFB* joints;
3236} XrBodySkeletonFB;
3237
3238typedef struct XrBodyJointsLocateInfoFB {
3239 XrStructureType type;
3240 const void* XR_MAY_ALIAS next;
3241 XrSpace baseSpace;
3242 XrTime time;
3243} XrBodyJointsLocateInfoFB;
3244
3245typedef struct XrBodyJointLocationsFB {
3246 XrStructureType type;
3247 void* XR_MAY_ALIAS next;
3248 XrBool32 isActive;
3249 float confidence;
3250 uint32_t jointCount;
3251 XrBodyJointLocationFB* jointLocations;
3252 uint32_t skeletonChangedCount;
3253 XrTime time;
3254} XrBodyJointLocationsFB;
3255
3256typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerFB)(XrSession session, const XrBodyTrackerCreateInfoFB* createInfo, XrBodyTrackerFB* bodyTracker);
3257typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerFB)(XrBodyTrackerFB bodyTracker);
3258typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsFB)(XrBodyTrackerFB bodyTracker, const XrBodyJointsLocateInfoFB* locateInfo, XrBodyJointLocationsFB* locations);
3259typedef XrResult (XRAPI_PTR *PFN_xrGetBodySkeletonFB)(XrBodyTrackerFB bodyTracker, XrBodySkeletonFB* skeleton);
3260
3261#ifndef XR_NO_PROTOTYPES
3262#ifdef XR_EXTENSION_PROTOTYPES
3263XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerFB(
3264 XrSession session,
3265 const XrBodyTrackerCreateInfoFB* createInfo,
3266 XrBodyTrackerFB* bodyTracker);
3267
3268XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerFB(
3269 XrBodyTrackerFB bodyTracker);
3270
3271XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsFB(
3272 XrBodyTrackerFB bodyTracker,
3273 const XrBodyJointsLocateInfoFB* locateInfo,
3274 XrBodyJointLocationsFB* locations);
3275
3276XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonFB(
3277 XrBodyTrackerFB bodyTracker,
3278 XrBodySkeletonFB* skeleton);
3279#endif /* XR_EXTENSION_PROTOTYPES */
3280#endif /* !XR_NO_PROTOTYPES */
3281
3282
3283// XR_EXT_dpad_binding is a preprocessor guard. Do not pass it to API calls.
3284#define XR_EXT_dpad_binding 1
3285#define XR_EXT_dpad_binding_SPEC_VERSION 1
3286#define XR_EXT_DPAD_BINDING_EXTENSION_NAME "XR_EXT_dpad_binding"
3287typedef struct XrInteractionProfileDpadBindingEXT {
3288 XrStructureType type;
3289 const void* XR_MAY_ALIAS next;
3290 XrPath binding;
3291 XrActionSet actionSet;
3292 float forceThreshold;
3293 float forceThresholdReleased;
3294 float centerRegion;
3295 float wedgeAngle;
3296 XrBool32 isSticky;
3297 const XrHapticBaseHeader* onHaptic;
3298 const XrHapticBaseHeader* offHaptic;
3299} XrInteractionProfileDpadBindingEXT;
3300
3301
3302
3303// XR_VALVE_analog_threshold is a preprocessor guard. Do not pass it to API calls.
3304#define XR_VALVE_analog_threshold 1
3305#define XR_VALVE_analog_threshold_SPEC_VERSION 2
3306#define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME "XR_VALVE_analog_threshold"
3307typedef struct XrInteractionProfileAnalogThresholdVALVE {
3308 XrStructureType type;
3309 const void* XR_MAY_ALIAS next;
3310 XrAction action;
3311 XrPath binding;
3312 float onThreshold;
3313 float offThreshold;
3314 const XrHapticBaseHeader* onHaptic;
3315 const XrHapticBaseHeader* offHaptic;
3316} XrInteractionProfileAnalogThresholdVALVE;
3317
3318
3319
3320// XR_EXT_hand_joints_motion_range is a preprocessor guard. Do not pass it to API calls.
3321#define XR_EXT_hand_joints_motion_range 1
3322#define XR_EXT_hand_joints_motion_range_SPEC_VERSION 1
3323#define XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME "XR_EXT_hand_joints_motion_range"
3324
3325typedef enum XrHandJointsMotionRangeEXT {
3326 XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT = 1,
3327 XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_EXT = 2,
3328 XR_HAND_JOINTS_MOTION_RANGE_MAX_ENUM_EXT = 0x7FFFFFFF
3329} XrHandJointsMotionRangeEXT;
3330// XrHandJointsMotionRangeInfoEXT extends XrHandJointsLocateInfoEXT
3331typedef struct XrHandJointsMotionRangeInfoEXT {
3332 XrStructureType type;
3333 const void* XR_MAY_ALIAS next;
3334 XrHandJointsMotionRangeEXT handJointsMotionRange;
3335} XrHandJointsMotionRangeInfoEXT;
3336
3337
3338
3339// XR_EXT_samsung_odyssey_controller is a preprocessor guard. Do not pass it to API calls.
3340#define XR_EXT_samsung_odyssey_controller 1
3341#define XR_EXT_samsung_odyssey_controller_SPEC_VERSION 1
3342#define XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME "XR_EXT_samsung_odyssey_controller"
3343
3344
3345// XR_EXT_hp_mixed_reality_controller is a preprocessor guard. Do not pass it to API calls.
3346#define XR_EXT_hp_mixed_reality_controller 1
3347#define XR_EXT_hp_mixed_reality_controller_SPEC_VERSION 1
3348#define XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME "XR_EXT_hp_mixed_reality_controller"
3349
3350
3351// XR_MND_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls.
3352#define XR_MND_swapchain_usage_input_attachment_bit 1
3353#define XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION 2
3354#define XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_MND_swapchain_usage_input_attachment_bit"
3355
3356
3357// XR_MSFT_scene_understanding is a preprocessor guard. Do not pass it to API calls.
3358#define XR_MSFT_scene_understanding 1
3359
3360 XR_DEFINE_HANDLE(XrSceneObserverMSFT)
3361
3362
3363 XR_DEFINE_HANDLE(XrSceneMSFT)
3364
3365#define XR_MSFT_scene_understanding_SPEC_VERSION 2
3366#define XR_MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME "XR_MSFT_scene_understanding"
3367
3368typedef enum XrSceneComputeFeatureMSFT {
3369 XR_SCENE_COMPUTE_FEATURE_PLANE_MSFT = 1,
3370 XR_SCENE_COMPUTE_FEATURE_PLANE_MESH_MSFT = 2,
3371 XR_SCENE_COMPUTE_FEATURE_VISUAL_MESH_MSFT = 3,
3372 XR_SCENE_COMPUTE_FEATURE_COLLIDER_MESH_MSFT = 4,
3373 XR_SCENE_COMPUTE_FEATURE_SERIALIZE_SCENE_MSFT = 1000098000,
3374 XR_SCENE_COMPUTE_FEATURE_MARKER_MSFT = 1000147000,
3375 XR_SCENE_COMPUTE_FEATURE_MAX_ENUM_MSFT = 0x7FFFFFFF
3376} XrSceneComputeFeatureMSFT;
3377
3378typedef enum XrSceneComputeConsistencyMSFT {
3379 XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_COMPLETE_MSFT = 1,
3380 XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_INCOMPLETE_FAST_MSFT = 2,
3381 XR_SCENE_COMPUTE_CONSISTENCY_OCCLUSION_OPTIMIZED_MSFT = 3,
3382 XR_SCENE_COMPUTE_CONSISTENCY_MAX_ENUM_MSFT = 0x7FFFFFFF
3383} XrSceneComputeConsistencyMSFT;
3384
3385typedef enum XrMeshComputeLodMSFT {
3386 XR_MESH_COMPUTE_LOD_COARSE_MSFT = 1,
3387 XR_MESH_COMPUTE_LOD_MEDIUM_MSFT = 2,
3388 XR_MESH_COMPUTE_LOD_FINE_MSFT = 3,
3389 XR_MESH_COMPUTE_LOD_UNLIMITED_MSFT = 4,
3390 XR_MESH_COMPUTE_LOD_MAX_ENUM_MSFT = 0x7FFFFFFF
3391} XrMeshComputeLodMSFT;
3392
3393typedef enum XrSceneComponentTypeMSFT {
3394 XR_SCENE_COMPONENT_TYPE_INVALID_MSFT = -1,
3395 XR_SCENE_COMPONENT_TYPE_OBJECT_MSFT = 1,
3396 XR_SCENE_COMPONENT_TYPE_PLANE_MSFT = 2,
3397 XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT = 3,
3398 XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT = 4,
3399 XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT = 1000098000,
3400 XR_SCENE_COMPONENT_TYPE_MARKER_MSFT = 1000147000,
3401 XR_SCENE_COMPONENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
3402} XrSceneComponentTypeMSFT;
3403
3404typedef enum XrSceneObjectTypeMSFT {
3405 XR_SCENE_OBJECT_TYPE_UNCATEGORIZED_MSFT = -1,
3406 XR_SCENE_OBJECT_TYPE_BACKGROUND_MSFT = 1,
3407 XR_SCENE_OBJECT_TYPE_WALL_MSFT = 2,
3408 XR_SCENE_OBJECT_TYPE_FLOOR_MSFT = 3,
3409 XR_SCENE_OBJECT_TYPE_CEILING_MSFT = 4,
3410 XR_SCENE_OBJECT_TYPE_PLATFORM_MSFT = 5,
3411 XR_SCENE_OBJECT_TYPE_INFERRED_MSFT = 6,
3412 XR_SCENE_OBJECT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
3413} XrSceneObjectTypeMSFT;
3414
3415typedef enum XrScenePlaneAlignmentTypeMSFT {
3416 XR_SCENE_PLANE_ALIGNMENT_TYPE_NON_ORTHOGONAL_MSFT = 0,
3417 XR_SCENE_PLANE_ALIGNMENT_TYPE_HORIZONTAL_MSFT = 1,
3418 XR_SCENE_PLANE_ALIGNMENT_TYPE_VERTICAL_MSFT = 2,
3419 XR_SCENE_PLANE_ALIGNMENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
3420} XrScenePlaneAlignmentTypeMSFT;
3421
3422typedef enum XrSceneComputeStateMSFT {
3423 XR_SCENE_COMPUTE_STATE_NONE_MSFT = 0,
3424 XR_SCENE_COMPUTE_STATE_UPDATING_MSFT = 1,
3425 XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT = 2,
3426 XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT = 3,
3427 XR_SCENE_COMPUTE_STATE_MAX_ENUM_MSFT = 0x7FFFFFFF
3428} XrSceneComputeStateMSFT;
3429typedef struct XrUuidMSFT {
3430 uint8_t bytes[16];
3431} XrUuidMSFT;
3432
3433typedef struct XrSceneObserverCreateInfoMSFT {
3434 XrStructureType type;
3435 const void* XR_MAY_ALIAS next;
3436} XrSceneObserverCreateInfoMSFT;
3437
3438typedef struct XrSceneCreateInfoMSFT {
3439 XrStructureType type;
3440 const void* XR_MAY_ALIAS next;
3441} XrSceneCreateInfoMSFT;
3442
3443typedef struct XrSceneSphereBoundMSFT {
3444 XrVector3f center;
3445 float radius;
3446} XrSceneSphereBoundMSFT;
3447
3448typedef struct XrSceneOrientedBoxBoundMSFT {
3449 XrPosef pose;
3450 XrVector3f extents;
3451} XrSceneOrientedBoxBoundMSFT;
3452
3453typedef struct XrSceneFrustumBoundMSFT {
3454 XrPosef pose;
3455 XrFovf fov;
3456 float farDistance;
3457} XrSceneFrustumBoundMSFT;
3458
3459typedef struct XrSceneBoundsMSFT {
3460 XrSpace space;
3461 XrTime time;
3462 uint32_t sphereCount;
3463 const XrSceneSphereBoundMSFT* spheres;
3464 uint32_t boxCount;
3465 const XrSceneOrientedBoxBoundMSFT* boxes;
3466 uint32_t frustumCount;
3467 const XrSceneFrustumBoundMSFT* frustums;
3468} XrSceneBoundsMSFT;
3469
3470typedef struct XrNewSceneComputeInfoMSFT {
3471 XrStructureType type;
3472 const void* XR_MAY_ALIAS next;
3473 uint32_t requestedFeatureCount;
3474 const XrSceneComputeFeatureMSFT* requestedFeatures;
3475 XrSceneComputeConsistencyMSFT consistency;
3476 XrSceneBoundsMSFT bounds;
3477} XrNewSceneComputeInfoMSFT;
3478
3479// XrVisualMeshComputeLodInfoMSFT extends XrNewSceneComputeInfoMSFT
3480typedef struct XrVisualMeshComputeLodInfoMSFT {
3481 XrStructureType type;
3482 const void* XR_MAY_ALIAS next;
3483 XrMeshComputeLodMSFT lod;
3484} XrVisualMeshComputeLodInfoMSFT;
3485
3486typedef struct XrSceneComponentMSFT {
3487 XrSceneComponentTypeMSFT componentType;
3488 XrUuidMSFT id;
3489 XrUuidMSFT parentId;
3490 XrTime updateTime;
3491} XrSceneComponentMSFT;
3492
3493typedef struct XrSceneComponentsMSFT {
3494 XrStructureType type;
3495 void* XR_MAY_ALIAS next;
3496 uint32_t componentCapacityInput;
3497 uint32_t componentCountOutput;
3498 XrSceneComponentMSFT* components;
3499} XrSceneComponentsMSFT;
3500
3501typedef struct XrSceneComponentsGetInfoMSFT {
3502 XrStructureType type;
3503 const void* XR_MAY_ALIAS next;
3504 XrSceneComponentTypeMSFT componentType;
3505} XrSceneComponentsGetInfoMSFT;
3506
3507typedef struct XrSceneComponentLocationMSFT {
3508 XrSpaceLocationFlags flags;
3509 XrPosef pose;
3510} XrSceneComponentLocationMSFT;
3511
3512typedef struct XrSceneComponentLocationsMSFT {
3513 XrStructureType type;
3514 void* XR_MAY_ALIAS next;
3515 uint32_t locationCount;
3516 XrSceneComponentLocationMSFT* locations;
3517} XrSceneComponentLocationsMSFT;
3518
3519typedef struct XrSceneComponentsLocateInfoMSFT {
3520 XrStructureType type;
3521 const void* XR_MAY_ALIAS next;
3522 XrSpace baseSpace;
3523 XrTime time;
3524 uint32_t componentIdCount;
3525 const XrUuidMSFT* componentIds;
3526} XrSceneComponentsLocateInfoMSFT;
3527
3528typedef struct XrSceneObjectMSFT {
3529 XrSceneObjectTypeMSFT objectType;
3530} XrSceneObjectMSFT;
3531
3532// XrSceneObjectsMSFT extends XrSceneComponentsMSFT
3533typedef struct XrSceneObjectsMSFT {
3534 XrStructureType type;
3535 void* XR_MAY_ALIAS next;
3536 uint32_t sceneObjectCount;
3537 XrSceneObjectMSFT* sceneObjects;
3538} XrSceneObjectsMSFT;
3539
3540// XrSceneComponentParentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
3541typedef struct XrSceneComponentParentFilterInfoMSFT {
3542 XrStructureType type;
3543 const void* XR_MAY_ALIAS next;
3544 XrUuidMSFT parentId;
3545} XrSceneComponentParentFilterInfoMSFT;
3546
3547// XrSceneObjectTypesFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
3548typedef struct XrSceneObjectTypesFilterInfoMSFT {
3549 XrStructureType type;
3550 const void* XR_MAY_ALIAS next;
3551 uint32_t objectTypeCount;
3552 const XrSceneObjectTypeMSFT* objectTypes;
3553} XrSceneObjectTypesFilterInfoMSFT;
3554
3555typedef struct XrScenePlaneMSFT {
3556 XrScenePlaneAlignmentTypeMSFT alignment;
3557 XrExtent2Df size;
3558 uint64_t meshBufferId;
3559 XrBool32 supportsIndicesUint16;
3560} XrScenePlaneMSFT;
3561
3562// XrScenePlanesMSFT extends XrSceneComponentsMSFT
3563typedef struct XrScenePlanesMSFT {
3564 XrStructureType type;
3565 void* XR_MAY_ALIAS next;
3566 uint32_t scenePlaneCount;
3567 XrScenePlaneMSFT* scenePlanes;
3568} XrScenePlanesMSFT;
3569
3570// XrScenePlaneAlignmentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
3571typedef struct XrScenePlaneAlignmentFilterInfoMSFT {
3572 XrStructureType type;
3573 const void* XR_MAY_ALIAS next;
3574 uint32_t alignmentCount;
3575 const XrScenePlaneAlignmentTypeMSFT* alignments;
3576} XrScenePlaneAlignmentFilterInfoMSFT;
3577
3578typedef struct XrSceneMeshMSFT {
3579 uint64_t meshBufferId;
3580 XrBool32 supportsIndicesUint16;
3581} XrSceneMeshMSFT;
3582
3583// XrSceneMeshesMSFT extends XrSceneComponentsMSFT
3584typedef struct XrSceneMeshesMSFT {
3585 XrStructureType type;
3586 void* XR_MAY_ALIAS next;
3587 uint32_t sceneMeshCount;
3588 XrSceneMeshMSFT* sceneMeshes;
3589} XrSceneMeshesMSFT;
3590
3591typedef struct XrSceneMeshBuffersGetInfoMSFT {
3592 XrStructureType type;
3593 const void* XR_MAY_ALIAS next;
3594 uint64_t meshBufferId;
3595} XrSceneMeshBuffersGetInfoMSFT;
3596
3597typedef struct XrSceneMeshBuffersMSFT {
3598 XrStructureType type;
3599 void* XR_MAY_ALIAS next;
3600} XrSceneMeshBuffersMSFT;
3601
3602typedef struct XrSceneMeshVertexBufferMSFT {
3603 XrStructureType type;
3604 void* XR_MAY_ALIAS next;
3605 uint32_t vertexCapacityInput;
3606 uint32_t vertexCountOutput;
3607 XrVector3f* vertices;
3608} XrSceneMeshVertexBufferMSFT;
3609
3610typedef struct XrSceneMeshIndicesUint32MSFT {
3611 XrStructureType type;
3612 void* XR_MAY_ALIAS next;
3613 uint32_t indexCapacityInput;
3614 uint32_t indexCountOutput;
3615 uint32_t* indices;
3616} XrSceneMeshIndicesUint32MSFT;
3617
3618typedef struct XrSceneMeshIndicesUint16MSFT {
3619 XrStructureType type;
3620 void* XR_MAY_ALIAS next;
3621 uint32_t indexCapacityInput;
3622 uint32_t indexCountOutput;
3623 uint16_t* indices;
3624} XrSceneMeshIndicesUint16MSFT;
3625
3626typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSceneComputeFeaturesMSFT)(XrInstance instance, XrSystemId systemId, uint32_t featureCapacityInput, uint32_t* featureCountOutput, XrSceneComputeFeatureMSFT* features);
3627typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneObserverMSFT)(XrSession session, const XrSceneObserverCreateInfoMSFT* createInfo, XrSceneObserverMSFT* sceneObserver);
3628typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneObserverMSFT)(XrSceneObserverMSFT sceneObserver);
3629typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrSceneCreateInfoMSFT* createInfo, XrSceneMSFT* scene);
3630typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneMSFT)(XrSceneMSFT scene);
3631typedef XrResult (XRAPI_PTR *PFN_xrComputeNewSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT* computeInfo);
3632typedef XrResult (XRAPI_PTR *PFN_xrGetSceneComputeStateMSFT)(XrSceneObserverMSFT sceneObserver, XrSceneComputeStateMSFT* state);
3633typedef XrResult (XRAPI_PTR *PFN_xrGetSceneComponentsMSFT)(XrSceneMSFT scene, const XrSceneComponentsGetInfoMSFT* getInfo, XrSceneComponentsMSFT* components);
3634typedef XrResult (XRAPI_PTR *PFN_xrLocateSceneComponentsMSFT)(XrSceneMSFT scene, const XrSceneComponentsLocateInfoMSFT* locateInfo, XrSceneComponentLocationsMSFT* locations);
3635typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMeshBuffersMSFT)(XrSceneMSFT scene, const XrSceneMeshBuffersGetInfoMSFT* getInfo, XrSceneMeshBuffersMSFT* buffers);
3636
3637#ifndef XR_NO_PROTOTYPES
3638#ifdef XR_EXTENSION_PROTOTYPES
3639XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSceneComputeFeaturesMSFT(
3640 XrInstance instance,
3641 XrSystemId systemId,
3642 uint32_t featureCapacityInput,
3643 uint32_t* featureCountOutput,
3644 XrSceneComputeFeatureMSFT* features);
3645
3646XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneObserverMSFT(
3647 XrSession session,
3648 const XrSceneObserverCreateInfoMSFT* createInfo,
3649 XrSceneObserverMSFT* sceneObserver);
3650
3651XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneObserverMSFT(
3652 XrSceneObserverMSFT sceneObserver);
3653
3654XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneMSFT(
3655 XrSceneObserverMSFT sceneObserver,
3656 const XrSceneCreateInfoMSFT* createInfo,
3657 XrSceneMSFT* scene);
3658
3659XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneMSFT(
3660 XrSceneMSFT scene);
3661
3662XRAPI_ATTR XrResult XRAPI_CALL xrComputeNewSceneMSFT(
3663 XrSceneObserverMSFT sceneObserver,
3664 const XrNewSceneComputeInfoMSFT* computeInfo);
3665
3666XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneComputeStateMSFT(
3667 XrSceneObserverMSFT sceneObserver,
3668 XrSceneComputeStateMSFT* state);
3669
3670XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneComponentsMSFT(
3671 XrSceneMSFT scene,
3672 const XrSceneComponentsGetInfoMSFT* getInfo,
3673 XrSceneComponentsMSFT* components);
3674
3675XRAPI_ATTR XrResult XRAPI_CALL xrLocateSceneComponentsMSFT(
3676 XrSceneMSFT scene,
3677 const XrSceneComponentsLocateInfoMSFT* locateInfo,
3678 XrSceneComponentLocationsMSFT* locations);
3679
3680XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMeshBuffersMSFT(
3681 XrSceneMSFT scene,
3682 const XrSceneMeshBuffersGetInfoMSFT* getInfo,
3683 XrSceneMeshBuffersMSFT* buffers);
3684#endif /* XR_EXTENSION_PROTOTYPES */
3685#endif /* !XR_NO_PROTOTYPES */
3686
3687
3688// XR_MSFT_scene_understanding_serialization is a preprocessor guard. Do not pass it to API calls.
3689#define XR_MSFT_scene_understanding_serialization 1
3690#define XR_MSFT_scene_understanding_serialization_SPEC_VERSION 2
3691#define XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME "XR_MSFT_scene_understanding_serialization"
3692typedef struct XrSerializedSceneFragmentDataGetInfoMSFT {
3693 XrStructureType type;
3694 const void* XR_MAY_ALIAS next;
3695 XrUuidMSFT sceneFragmentId;
3696} XrSerializedSceneFragmentDataGetInfoMSFT;
3697
3698typedef struct XrDeserializeSceneFragmentMSFT {
3699 uint32_t bufferSize;
3700 const uint8_t* buffer;
3701} XrDeserializeSceneFragmentMSFT;
3702
3703typedef struct XrSceneDeserializeInfoMSFT {
3704 XrStructureType type;
3705 const void* XR_MAY_ALIAS next;
3706 uint32_t fragmentCount;
3707 const XrDeserializeSceneFragmentMSFT* fragments;
3708} XrSceneDeserializeInfoMSFT;
3709
3710typedef XrResult (XRAPI_PTR *PFN_xrDeserializeSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT* deserializeInfo);
3711typedef XrResult (XRAPI_PTR *PFN_xrGetSerializedSceneFragmentDataMSFT)(XrSceneMSFT scene, const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo, uint32_t countInput, uint32_t* readOutput, uint8_t* buffer);
3712
3713#ifndef XR_NO_PROTOTYPES
3714#ifdef XR_EXTENSION_PROTOTYPES
3715XRAPI_ATTR XrResult XRAPI_CALL xrDeserializeSceneMSFT(
3716 XrSceneObserverMSFT sceneObserver,
3717 const XrSceneDeserializeInfoMSFT* deserializeInfo);
3718
3719XRAPI_ATTR XrResult XRAPI_CALL xrGetSerializedSceneFragmentDataMSFT(
3720 XrSceneMSFT scene,
3721 const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo,
3722 uint32_t countInput,
3723 uint32_t* readOutput,
3724 uint8_t* buffer);
3725#endif /* XR_EXTENSION_PROTOTYPES */
3726#endif /* !XR_NO_PROTOTYPES */
3727
3728
3729// XR_FB_display_refresh_rate is a preprocessor guard. Do not pass it to API calls.
3730#define XR_FB_display_refresh_rate 1
3731#define XR_FB_display_refresh_rate_SPEC_VERSION 1
3732#define XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME "XR_FB_display_refresh_rate"
3733typedef struct XrEventDataDisplayRefreshRateChangedFB {
3734 XrStructureType type;
3735 const void* XR_MAY_ALIAS next;
3736 float fromDisplayRefreshRate;
3737 float toDisplayRefreshRate;
3738} XrEventDataDisplayRefreshRateChangedFB;
3739
3740typedef XrResult (XRAPI_PTR *PFN_xrEnumerateDisplayRefreshRatesFB)(XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t* displayRefreshRateCountOutput, float* displayRefreshRates);
3741typedef XrResult (XRAPI_PTR *PFN_xrGetDisplayRefreshRateFB)(XrSession session, float* displayRefreshRate);
3742typedef XrResult (XRAPI_PTR *PFN_xrRequestDisplayRefreshRateFB)(XrSession session, float displayRefreshRate);
3743
3744#ifndef XR_NO_PROTOTYPES
3745#ifdef XR_EXTENSION_PROTOTYPES
3746XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB(
3747 XrSession session,
3748 uint32_t displayRefreshRateCapacityInput,
3749 uint32_t* displayRefreshRateCountOutput,
3750 float* displayRefreshRates);
3751
3752XRAPI_ATTR XrResult XRAPI_CALL xrGetDisplayRefreshRateFB(
3753 XrSession session,
3754 float* displayRefreshRate);
3755
3756XRAPI_ATTR XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB(
3757 XrSession session,
3758 float displayRefreshRate);
3759#endif /* XR_EXTENSION_PROTOTYPES */
3760#endif /* !XR_NO_PROTOTYPES */
3761
3762
3763// XR_HTC_vive_cosmos_controller_interaction is a preprocessor guard. Do not pass it to API calls.
3764#define XR_HTC_vive_cosmos_controller_interaction 1
3765#define XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION 1
3766#define XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_cosmos_controller_interaction"
3767
3768
3769// XR_HTCX_vive_tracker_interaction is a preprocessor guard. Do not pass it to API calls.
3770#define XR_HTCX_vive_tracker_interaction 1
3771#define XR_HTCX_vive_tracker_interaction_SPEC_VERSION 3
3772#define XR_HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTCX_vive_tracker_interaction"
3773typedef struct XrViveTrackerPathsHTCX {
3774 XrStructureType type;
3775 void* XR_MAY_ALIAS next;
3776 XrPath persistentPath;
3777 XrPath rolePath;
3778} XrViveTrackerPathsHTCX;
3779
3780typedef struct XrEventDataViveTrackerConnectedHTCX {
3781 XrStructureType type;
3782 const void* XR_MAY_ALIAS next;
3783 XrViveTrackerPathsHTCX* paths;
3784} XrEventDataViveTrackerConnectedHTCX;
3785
3786typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViveTrackerPathsHTCX)(XrInstance instance, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrViveTrackerPathsHTCX* paths);
3787
3788#ifndef XR_NO_PROTOTYPES
3789#ifdef XR_EXTENSION_PROTOTYPES
3790XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViveTrackerPathsHTCX(
3791 XrInstance instance,
3792 uint32_t pathCapacityInput,
3793 uint32_t* pathCountOutput,
3794 XrViveTrackerPathsHTCX* paths);
3795#endif /* XR_EXTENSION_PROTOTYPES */
3796#endif /* !XR_NO_PROTOTYPES */
3797
3798
3799// XR_HTC_facial_tracking is a preprocessor guard. Do not pass it to API calls.
3800#define XR_HTC_facial_tracking 1
3801
3802#define XR_FACIAL_EXPRESSION_EYE_COUNT_HTC 14
3803
3804
3805#define XR_FACIAL_EXPRESSION_LIP_COUNT_HTC 37
3806
3807XR_DEFINE_HANDLE(XrFacialTrackerHTC)
3808#define XR_HTC_facial_tracking_SPEC_VERSION 3
3809#define XR_HTC_FACIAL_TRACKING_EXTENSION_NAME "XR_HTC_facial_tracking"
3810
3811typedef enum XrEyeExpressionHTC {
3812 XR_EYE_EXPRESSION_LEFT_BLINK_HTC = 0,
3813 XR_EYE_EXPRESSION_LEFT_WIDE_HTC = 1,
3814 XR_EYE_EXPRESSION_RIGHT_BLINK_HTC = 2,
3815 XR_EYE_EXPRESSION_RIGHT_WIDE_HTC = 3,
3816 XR_EYE_EXPRESSION_LEFT_SQUEEZE_HTC = 4,
3817 XR_EYE_EXPRESSION_RIGHT_SQUEEZE_HTC = 5,
3818 XR_EYE_EXPRESSION_LEFT_DOWN_HTC = 6,
3819 XR_EYE_EXPRESSION_RIGHT_DOWN_HTC = 7,
3820 XR_EYE_EXPRESSION_LEFT_OUT_HTC = 8,
3821 XR_EYE_EXPRESSION_RIGHT_IN_HTC = 9,
3822 XR_EYE_EXPRESSION_LEFT_IN_HTC = 10,
3823 XR_EYE_EXPRESSION_RIGHT_OUT_HTC = 11,
3824 XR_EYE_EXPRESSION_LEFT_UP_HTC = 12,
3825 XR_EYE_EXPRESSION_RIGHT_UP_HTC = 13,
3826 XR_EYE_EXPRESSION_MAX_ENUM_HTC = 0x7FFFFFFF
3827} XrEyeExpressionHTC;
3828
3829typedef enum XrLipExpressionHTC {
3830 XR_LIP_EXPRESSION_JAW_RIGHT_HTC = 0,
3831 XR_LIP_EXPRESSION_JAW_LEFT_HTC = 1,
3832 XR_LIP_EXPRESSION_JAW_FORWARD_HTC = 2,
3833 XR_LIP_EXPRESSION_JAW_OPEN_HTC = 3,
3834 XR_LIP_EXPRESSION_MOUTH_APE_SHAPE_HTC = 4,
3835 XR_LIP_EXPRESSION_MOUTH_UPPER_RIGHT_HTC = 5,
3836 XR_LIP_EXPRESSION_MOUTH_UPPER_LEFT_HTC = 6,
3837 XR_LIP_EXPRESSION_MOUTH_LOWER_RIGHT_HTC = 7,
3838 XR_LIP_EXPRESSION_MOUTH_LOWER_LEFT_HTC = 8,
3839 XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC = 9,
3840 XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC = 10,
3841 XR_LIP_EXPRESSION_MOUTH_POUT_HTC = 11,
3842 XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC = 12,
3843 XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC = 13,
3844 XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC = 14,
3845 XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC = 15,
3846 XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC = 16,
3847 XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC = 17,
3848 XR_LIP_EXPRESSION_CHEEK_SUCK_HTC = 18,
3849 XR_LIP_EXPRESSION_MOUTH_UPPER_UPRIGHT_HTC = 19,
3850 XR_LIP_EXPRESSION_MOUTH_UPPER_UPLEFT_HTC = 20,
3851 XR_LIP_EXPRESSION_MOUTH_LOWER_DOWNRIGHT_HTC = 21,
3852 XR_LIP_EXPRESSION_MOUTH_LOWER_DOWNLEFT_HTC = 22,
3853 XR_LIP_EXPRESSION_MOUTH_UPPER_INSIDE_HTC = 23,
3854 XR_LIP_EXPRESSION_MOUTH_LOWER_INSIDE_HTC = 24,
3855 XR_LIP_EXPRESSION_MOUTH_LOWER_OVERLAY_HTC = 25,
3856 XR_LIP_EXPRESSION_TONGUE_LONGSTEP1_HTC = 26,
3857 XR_LIP_EXPRESSION_TONGUE_LEFT_HTC = 27,
3858 XR_LIP_EXPRESSION_TONGUE_RIGHT_HTC = 28,
3859 XR_LIP_EXPRESSION_TONGUE_UP_HTC = 29,
3860 XR_LIP_EXPRESSION_TONGUE_DOWN_HTC = 30,
3861 XR_LIP_EXPRESSION_TONGUE_ROLL_HTC = 31,
3862 XR_LIP_EXPRESSION_TONGUE_LONGSTEP2_HTC = 32,
3863 XR_LIP_EXPRESSION_TONGUE_UPRIGHT_MORPH_HTC = 33,
3864 XR_LIP_EXPRESSION_TONGUE_UPLEFT_MORPH_HTC = 34,
3865 XR_LIP_EXPRESSION_TONGUE_DOWNRIGHT_MORPH_HTC = 35,
3866 XR_LIP_EXPRESSION_TONGUE_DOWNLEFT_MORPH_HTC = 36,
3867 XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC = XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC,
3868 XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC,
3869 XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC,
3870 XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC = XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC,
3871 XR_LIP_EXPRESSION_MAX_ENUM_HTC = 0x7FFFFFFF
3872} XrLipExpressionHTC;
3873
3874typedef enum XrFacialTrackingTypeHTC {
3875 XR_FACIAL_TRACKING_TYPE_EYE_DEFAULT_HTC = 1,
3876 XR_FACIAL_TRACKING_TYPE_LIP_DEFAULT_HTC = 2,
3877 XR_FACIAL_TRACKING_TYPE_MAX_ENUM_HTC = 0x7FFFFFFF
3878} XrFacialTrackingTypeHTC;
3879// XrSystemFacialTrackingPropertiesHTC extends XrSystemProperties
3880typedef struct XrSystemFacialTrackingPropertiesHTC {
3881 XrStructureType type;
3882 void* XR_MAY_ALIAS next;
3883 XrBool32 supportEyeFacialTracking;
3884 XrBool32 supportLipFacialTracking;
3885} XrSystemFacialTrackingPropertiesHTC;
3886
3887typedef struct XrFacialExpressionsHTC {
3888 XrStructureType type;
3889 const void* XR_MAY_ALIAS next;
3890 XrBool32 isActive;
3891 XrTime sampleTime;
3892 uint32_t expressionCount;
3893 float* expressionWeightings;
3894} XrFacialExpressionsHTC;
3895
3896typedef struct XrFacialTrackerCreateInfoHTC {
3897 XrStructureType type;
3898 const void* XR_MAY_ALIAS next;
3899 XrFacialTrackingTypeHTC facialTrackingType;
3900} XrFacialTrackerCreateInfoHTC;
3901
3902typedef XrResult (XRAPI_PTR *PFN_xrCreateFacialTrackerHTC)(XrSession session, const XrFacialTrackerCreateInfoHTC* createInfo, XrFacialTrackerHTC* facialTracker);
3903typedef XrResult (XRAPI_PTR *PFN_xrDestroyFacialTrackerHTC)(XrFacialTrackerHTC facialTracker);
3904typedef XrResult (XRAPI_PTR *PFN_xrGetFacialExpressionsHTC)(XrFacialTrackerHTC facialTracker, XrFacialExpressionsHTC* facialExpressions);
3905
3906#ifndef XR_NO_PROTOTYPES
3907#ifdef XR_EXTENSION_PROTOTYPES
3908XRAPI_ATTR XrResult XRAPI_CALL xrCreateFacialTrackerHTC(
3909 XrSession session,
3910 const XrFacialTrackerCreateInfoHTC* createInfo,
3911 XrFacialTrackerHTC* facialTracker);
3912
3913XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFacialTrackerHTC(
3914 XrFacialTrackerHTC facialTracker);
3915
3916XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionsHTC(
3917 XrFacialTrackerHTC facialTracker,
3918 XrFacialExpressionsHTC* facialExpressions);
3919#endif /* XR_EXTENSION_PROTOTYPES */
3920#endif /* !XR_NO_PROTOTYPES */
3921
3922
3923// XR_HTC_vive_focus3_controller_interaction is a preprocessor guard. Do not pass it to API calls.
3924#define XR_HTC_vive_focus3_controller_interaction 1
3925#define XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION 2
3926#define XR_HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_focus3_controller_interaction"
3927
3928
3929// XR_HTC_hand_interaction is a preprocessor guard. Do not pass it to API calls.
3930#define XR_HTC_hand_interaction 1
3931#define XR_HTC_hand_interaction_SPEC_VERSION 1
3932#define XR_HTC_HAND_INTERACTION_EXTENSION_NAME "XR_HTC_hand_interaction"
3933
3934
3935// XR_HTC_vive_wrist_tracker_interaction is a preprocessor guard. Do not pass it to API calls.
3936#define XR_HTC_vive_wrist_tracker_interaction 1
3937#define XR_HTC_vive_wrist_tracker_interaction_SPEC_VERSION 1
3938#define XR_HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_wrist_tracker_interaction"
3939
3940
3941// XR_FB_color_space is a preprocessor guard. Do not pass it to API calls.
3942#define XR_FB_color_space 1
3943#define XR_FB_color_space_SPEC_VERSION 3
3944#define XR_FB_COLOR_SPACE_EXTENSION_NAME "XR_FB_color_space"
3945
3946typedef enum XrColorSpaceFB {
3947 XR_COLOR_SPACE_UNMANAGED_FB = 0,
3948 XR_COLOR_SPACE_REC2020_FB = 1,
3949 XR_COLOR_SPACE_REC709_FB = 2,
3950 XR_COLOR_SPACE_RIFT_CV1_FB = 3,
3951 XR_COLOR_SPACE_RIFT_S_FB = 4,
3952 XR_COLOR_SPACE_QUEST_FB = 5,
3953 XR_COLOR_SPACE_P3_FB = 6,
3954 XR_COLOR_SPACE_ADOBE_RGB_FB = 7,
3955 XR_COLOR_SPACE_MAX_ENUM_FB = 0x7FFFFFFF
3956} XrColorSpaceFB;
3957// XrSystemColorSpacePropertiesFB extends XrSystemProperties
3958typedef struct XrSystemColorSpacePropertiesFB {
3959 XrStructureType type;
3960 void* XR_MAY_ALIAS next;
3961 XrColorSpaceFB colorSpace;
3962} XrSystemColorSpacePropertiesFB;
3963
3964typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesFB)(XrSession session, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceFB* colorSpaces);
3965typedef XrResult (XRAPI_PTR *PFN_xrSetColorSpaceFB)(XrSession session, const XrColorSpaceFB colorSpace);
3966
3967#ifndef XR_NO_PROTOTYPES
3968#ifdef XR_EXTENSION_PROTOTYPES
3969XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateColorSpacesFB(
3970 XrSession session,
3971 uint32_t colorSpaceCapacityInput,
3972 uint32_t* colorSpaceCountOutput,
3973 XrColorSpaceFB* colorSpaces);
3974
3975XRAPI_ATTR XrResult XRAPI_CALL xrSetColorSpaceFB(
3976 XrSession session,
3977 const XrColorSpaceFB colorSpace);
3978#endif /* XR_EXTENSION_PROTOTYPES */
3979#endif /* !XR_NO_PROTOTYPES */
3980
3981
3982// XR_FB_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls.
3983#define XR_FB_hand_tracking_mesh 1
3984#define XR_FB_hand_tracking_mesh_SPEC_VERSION 3
3985#define XR_FB_HAND_TRACKING_MESH_EXTENSION_NAME "XR_FB_hand_tracking_mesh"
3986typedef struct XrVector4sFB {
3987 int16_t x;
3988 int16_t y;
3989 int16_t z;
3990 int16_t w;
3991} XrVector4sFB;
3992
3993typedef struct XrHandTrackingMeshFB {
3994 XrStructureType type;
3995 void* XR_MAY_ALIAS next;
3996 uint32_t jointCapacityInput;
3997 uint32_t jointCountOutput;
3998 XrPosef* jointBindPoses;
3999 float* jointRadii;
4000 XrHandJointEXT* jointParents;
4001 uint32_t vertexCapacityInput;
4002 uint32_t vertexCountOutput;
4003 XrVector3f* vertexPositions;
4004 XrVector3f* vertexNormals;
4005 XrVector2f* vertexUVs;
4006 XrVector4sFB* vertexBlendIndices;
4007 XrVector4f* vertexBlendWeights;
4008 uint32_t indexCapacityInput;
4009 uint32_t indexCountOutput;
4010 int16_t* indices;
4011} XrHandTrackingMeshFB;
4012
4013// XrHandTrackingScaleFB extends XrHandJointLocationsEXT
4014typedef struct XrHandTrackingScaleFB {
4015 XrStructureType type;
4016 void* XR_MAY_ALIAS next;
4017 float sensorOutput;
4018 float currentOutput;
4019 XrBool32 overrideHandScale;
4020 float overrideValueInput;
4021} XrHandTrackingScaleFB;
4022
4023typedef XrResult (XRAPI_PTR *PFN_xrGetHandMeshFB)(XrHandTrackerEXT handTracker, XrHandTrackingMeshFB* mesh);
4024
4025#ifndef XR_NO_PROTOTYPES
4026#ifdef XR_EXTENSION_PROTOTYPES
4027XRAPI_ATTR XrResult XRAPI_CALL xrGetHandMeshFB(
4028 XrHandTrackerEXT handTracker,
4029 XrHandTrackingMeshFB* mesh);
4030#endif /* XR_EXTENSION_PROTOTYPES */
4031#endif /* !XR_NO_PROTOTYPES */
4032
4033
4034// XR_FB_hand_tracking_aim is a preprocessor guard. Do not pass it to API calls.
4035#define XR_FB_hand_tracking_aim 1
4036#define XR_FB_hand_tracking_aim_SPEC_VERSION 2
4037#define XR_FB_HAND_TRACKING_AIM_EXTENSION_NAME "XR_FB_hand_tracking_aim"
4038typedef XrFlags64 XrHandTrackingAimFlagsFB;
4039
4040// Flag bits for XrHandTrackingAimFlagsFB
4041static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_COMPUTED_BIT_FB = 0x00000001;
4042static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_VALID_BIT_FB = 0x00000002;
4043static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_INDEX_PINCHING_BIT_FB = 0x00000004;
4044static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MIDDLE_PINCHING_BIT_FB = 0x00000008;
4045static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_RING_PINCHING_BIT_FB = 0x00000010;
4046static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_LITTLE_PINCHING_BIT_FB = 0x00000020;
4047static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_SYSTEM_GESTURE_BIT_FB = 0x00000040;
4048static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_DOMINANT_HAND_BIT_FB = 0x00000080;
4049static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MENU_PRESSED_BIT_FB = 0x00000100;
4050
4051// XrHandTrackingAimStateFB extends XrHandJointLocationsEXT
4052typedef struct XrHandTrackingAimStateFB {
4053 XrStructureType type;
4054 void* XR_MAY_ALIAS next;
4055 XrHandTrackingAimFlagsFB status;
4056 XrPosef aimPose;
4057 float pinchStrengthIndex;
4058 float pinchStrengthMiddle;
4059 float pinchStrengthRing;
4060 float pinchStrengthLittle;
4061} XrHandTrackingAimStateFB;
4062
4063
4064
4065// XR_FB_hand_tracking_capsules is a preprocessor guard. Do not pass it to API calls.
4066#define XR_FB_hand_tracking_capsules 1
4067#define XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB 2
4068#define XR_HAND_TRACKING_CAPSULE_COUNT_FB 19
4069#define XR_FB_hand_tracking_capsules_SPEC_VERSION 3
4070#define XR_FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME "XR_FB_hand_tracking_capsules"
4071#define XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB
4072#define XR_FB_HAND_TRACKING_CAPSULE_COUNT XR_HAND_TRACKING_CAPSULE_COUNT_FB
4073typedef struct XrHandCapsuleFB {
4074 XrVector3f points[XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB];
4075 float radius;
4076 XrHandJointEXT joint;
4077} XrHandCapsuleFB;
4078
4079// XrHandTrackingCapsulesStateFB extends XrHandJointLocationsEXT
4080typedef struct XrHandTrackingCapsulesStateFB {
4081 XrStructureType type;
4082 void* XR_MAY_ALIAS next;
4083 XrHandCapsuleFB capsules[XR_HAND_TRACKING_CAPSULE_COUNT_FB];
4084} XrHandTrackingCapsulesStateFB;
4085
4086
4087
4088// XR_FB_spatial_entity is a preprocessor guard. Do not pass it to API calls.
4089#define XR_FB_spatial_entity 1
4090XR_DEFINE_ATOM(XrAsyncRequestIdFB)
4091#define XR_FB_spatial_entity_SPEC_VERSION 3
4092#define XR_FB_SPATIAL_ENTITY_EXTENSION_NAME "XR_FB_spatial_entity"
4093
4094typedef enum XrSpaceComponentTypeFB {
4095 XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB = 0,
4096 XR_SPACE_COMPONENT_TYPE_STORABLE_FB = 1,
4097 XR_SPACE_COMPONENT_TYPE_SHARABLE_FB = 2,
4098 XR_SPACE_COMPONENT_TYPE_BOUNDED_2D_FB = 3,
4099 XR_SPACE_COMPONENT_TYPE_BOUNDED_3D_FB = 4,
4100 XR_SPACE_COMPONENT_TYPE_SEMANTIC_LABELS_FB = 5,
4101 XR_SPACE_COMPONENT_TYPE_ROOM_LAYOUT_FB = 6,
4102 XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB = 7,
4103 XR_SPACE_COMPONENT_TYPE_TRIANGLE_MESH_META = 1000269000,
4104 XR_SPACE_COMPONENT_TYPE_MAX_ENUM_FB = 0x7FFFFFFF
4105} XrSpaceComponentTypeFB;
4106// XrSystemSpatialEntityPropertiesFB extends XrSystemProperties
4107typedef struct XrSystemSpatialEntityPropertiesFB {
4108 XrStructureType type;
4109 const void* XR_MAY_ALIAS next;
4110 XrBool32 supportsSpatialEntity;
4111} XrSystemSpatialEntityPropertiesFB;
4112
4113typedef struct XrSpatialAnchorCreateInfoFB {
4114 XrStructureType type;
4115 const void* XR_MAY_ALIAS next;
4116 XrSpace space;
4117 XrPosef poseInSpace;
4118 XrTime time;
4119} XrSpatialAnchorCreateInfoFB;
4120
4121typedef struct XrSpaceComponentStatusSetInfoFB {
4122 XrStructureType type;
4123 const void* XR_MAY_ALIAS next;
4124 XrSpaceComponentTypeFB componentType;
4125 XrBool32 enabled;
4126 XrDuration timeout;
4127} XrSpaceComponentStatusSetInfoFB;
4128
4129typedef struct XrSpaceComponentStatusFB {
4130 XrStructureType type;
4131 void* XR_MAY_ALIAS next;
4132 XrBool32 enabled;
4133 XrBool32 changePending;
4134} XrSpaceComponentStatusFB;
4135
4136typedef XrUuid XrUuidEXT;
4137
4138typedef struct XrEventDataSpatialAnchorCreateCompleteFB {
4139 XrStructureType type;
4140 const void* XR_MAY_ALIAS next;
4141 XrAsyncRequestIdFB requestId;
4142 XrResult result;
4143 XrSpace space;
4144 XrUuidEXT uuid;
4145} XrEventDataSpatialAnchorCreateCompleteFB;
4146
4147typedef struct XrEventDataSpaceSetStatusCompleteFB {
4148 XrStructureType type;
4149 const void* XR_MAY_ALIAS next;
4150 XrAsyncRequestIdFB requestId;
4151 XrResult result;
4152 XrSpace space;
4153 XrUuidEXT uuid;
4154 XrSpaceComponentTypeFB componentType;
4155 XrBool32 enabled;
4156} XrEventDataSpaceSetStatusCompleteFB;
4157
4158typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFB)(XrSession session, const XrSpatialAnchorCreateInfoFB* info, XrAsyncRequestIdFB* requestId);
4159typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUuidFB)(XrSpace space, XrUuidEXT* uuid);
4160typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpaceSupportedComponentsFB)(XrSpace space, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpaceComponentTypeFB* componentTypes);
4161typedef XrResult (XRAPI_PTR *PFN_xrSetSpaceComponentStatusFB)(XrSpace space, const XrSpaceComponentStatusSetInfoFB* info, XrAsyncRequestIdFB* requestId);
4162typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceComponentStatusFB)(XrSpace space, XrSpaceComponentTypeFB componentType, XrSpaceComponentStatusFB* status);
4163
4164#ifndef XR_NO_PROTOTYPES
4165#ifdef XR_EXTENSION_PROTOTYPES
4166XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFB(
4167 XrSession session,
4168 const XrSpatialAnchorCreateInfoFB* info,
4169 XrAsyncRequestIdFB* requestId);
4170
4171XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUuidFB(
4172 XrSpace space,
4173 XrUuidEXT* uuid);
4174
4175XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpaceSupportedComponentsFB(
4176 XrSpace space,
4177 uint32_t componentTypeCapacityInput,
4178 uint32_t* componentTypeCountOutput,
4179 XrSpaceComponentTypeFB* componentTypes);
4180
4181XRAPI_ATTR XrResult XRAPI_CALL xrSetSpaceComponentStatusFB(
4182 XrSpace space,
4183 const XrSpaceComponentStatusSetInfoFB* info,
4184 XrAsyncRequestIdFB* requestId);
4185
4186XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceComponentStatusFB(
4187 XrSpace space,
4188 XrSpaceComponentTypeFB componentType,
4189 XrSpaceComponentStatusFB* status);
4190#endif /* XR_EXTENSION_PROTOTYPES */
4191#endif /* !XR_NO_PROTOTYPES */
4192
4193
4194// XR_FB_foveation is a preprocessor guard. Do not pass it to API calls.
4195#define XR_FB_foveation 1
4196XR_DEFINE_HANDLE(XrFoveationProfileFB)
4197#define XR_FB_foveation_SPEC_VERSION 1
4198#define XR_FB_FOVEATION_EXTENSION_NAME "XR_FB_foveation"
4199typedef XrFlags64 XrSwapchainCreateFoveationFlagsFB;
4200
4201// Flag bits for XrSwapchainCreateFoveationFlagsFB
4202static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB = 0x00000001;
4203static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB = 0x00000002;
4204
4205typedef XrFlags64 XrSwapchainStateFoveationFlagsFB;
4206
4207// Flag bits for XrSwapchainStateFoveationFlagsFB
4208
4209typedef struct XrFoveationProfileCreateInfoFB {
4210 XrStructureType type;
4211 void* XR_MAY_ALIAS next;
4212} XrFoveationProfileCreateInfoFB;
4213
4214// XrSwapchainCreateInfoFoveationFB extends XrSwapchainCreateInfo
4215typedef struct XrSwapchainCreateInfoFoveationFB {
4216 XrStructureType type;
4217 void* XR_MAY_ALIAS next;
4218 XrSwapchainCreateFoveationFlagsFB flags;
4219} XrSwapchainCreateInfoFoveationFB;
4220
4221typedef struct XrSwapchainStateFoveationFB {
4222 XrStructureType type;
4223 void* XR_MAY_ALIAS next;
4224 XrSwapchainStateFoveationFlagsFB flags;
4225 XrFoveationProfileFB profile;
4226} XrSwapchainStateFoveationFB;
4227
4228typedef XrResult (XRAPI_PTR *PFN_xrCreateFoveationProfileFB)(XrSession session, const XrFoveationProfileCreateInfoFB* createInfo, XrFoveationProfileFB* profile);
4229typedef XrResult (XRAPI_PTR *PFN_xrDestroyFoveationProfileFB)(XrFoveationProfileFB profile);
4230
4231#ifndef XR_NO_PROTOTYPES
4232#ifdef XR_EXTENSION_PROTOTYPES
4233XRAPI_ATTR XrResult XRAPI_CALL xrCreateFoveationProfileFB(
4234 XrSession session,
4235 const XrFoveationProfileCreateInfoFB* createInfo,
4236 XrFoveationProfileFB* profile);
4237
4238XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFoveationProfileFB(
4239 XrFoveationProfileFB profile);
4240#endif /* XR_EXTENSION_PROTOTYPES */
4241#endif /* !XR_NO_PROTOTYPES */
4242
4243
4244// XR_FB_foveation_configuration is a preprocessor guard. Do not pass it to API calls.
4245#define XR_FB_foveation_configuration 1
4246#define XR_FB_foveation_configuration_SPEC_VERSION 1
4247#define XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME "XR_FB_foveation_configuration"
4248
4249typedef enum XrFoveationLevelFB {
4250 XR_FOVEATION_LEVEL_NONE_FB = 0,
4251 XR_FOVEATION_LEVEL_LOW_FB = 1,
4252 XR_FOVEATION_LEVEL_MEDIUM_FB = 2,
4253 XR_FOVEATION_LEVEL_HIGH_FB = 3,
4254 XR_FOVEATION_LEVEL_MAX_ENUM_FB = 0x7FFFFFFF
4255} XrFoveationLevelFB;
4256
4257typedef enum XrFoveationDynamicFB {
4258 XR_FOVEATION_DYNAMIC_DISABLED_FB = 0,
4259 XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB = 1,
4260 XR_FOVEATION_DYNAMIC_MAX_ENUM_FB = 0x7FFFFFFF
4261} XrFoveationDynamicFB;
4262// XrFoveationLevelProfileCreateInfoFB extends XrFoveationProfileCreateInfoFB
4263typedef struct XrFoveationLevelProfileCreateInfoFB {
4264 XrStructureType type;
4265 void* XR_MAY_ALIAS next;
4266 XrFoveationLevelFB level;
4267 float verticalOffset;
4268 XrFoveationDynamicFB dynamic;
4269} XrFoveationLevelProfileCreateInfoFB;
4270
4271
4272
4273// XR_FB_keyboard_tracking is a preprocessor guard. Do not pass it to API calls.
4274#define XR_FB_keyboard_tracking 1
4275#define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB 128
4276#define XR_FB_keyboard_tracking_SPEC_VERSION 1
4277#define XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME "XR_FB_keyboard_tracking"
4278typedef XrFlags64 XrKeyboardTrackingFlagsFB;
4279
4280// Flag bits for XrKeyboardTrackingFlagsFB
4281static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_EXISTS_BIT_FB = 0x00000001;
4282static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_LOCAL_BIT_FB = 0x00000002;
4283static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_REMOTE_BIT_FB = 0x00000004;
4284static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_CONNECTED_BIT_FB = 0x00000008;
4285
4286typedef XrFlags64 XrKeyboardTrackingQueryFlagsFB;
4287
4288// Flag bits for XrKeyboardTrackingQueryFlagsFB
4289static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB = 0x00000002;
4290static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB = 0x00000004;
4291
4292// XrSystemKeyboardTrackingPropertiesFB extends XrSystemProperties
4293typedef struct XrSystemKeyboardTrackingPropertiesFB {
4294 XrStructureType type;
4295 void* XR_MAY_ALIAS next;
4296 XrBool32 supportsKeyboardTracking;
4297} XrSystemKeyboardTrackingPropertiesFB;
4298
4299typedef struct XrKeyboardTrackingDescriptionFB {
4300 uint64_t trackedKeyboardId;
4301 XrVector3f size;
4302 XrKeyboardTrackingFlagsFB flags;
4303 char name[XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB];
4304} XrKeyboardTrackingDescriptionFB;
4305
4306typedef struct XrKeyboardSpaceCreateInfoFB {
4307 XrStructureType type;
4308 void* XR_MAY_ALIAS next;
4309 uint64_t trackedKeyboardId;
4310} XrKeyboardSpaceCreateInfoFB;
4311
4312typedef struct XrKeyboardTrackingQueryFB {
4313 XrStructureType type;
4314 void* XR_MAY_ALIAS next;
4315 XrKeyboardTrackingQueryFlagsFB flags;
4316} XrKeyboardTrackingQueryFB;
4317
4318typedef XrResult (XRAPI_PTR *PFN_xrQuerySystemTrackedKeyboardFB)(XrSession session, const XrKeyboardTrackingQueryFB* queryInfo, XrKeyboardTrackingDescriptionFB* keyboard);
4319typedef XrResult (XRAPI_PTR *PFN_xrCreateKeyboardSpaceFB)(XrSession session, const XrKeyboardSpaceCreateInfoFB* createInfo, XrSpace* keyboardSpace);
4320
4321#ifndef XR_NO_PROTOTYPES
4322#ifdef XR_EXTENSION_PROTOTYPES
4323XRAPI_ATTR XrResult XRAPI_CALL xrQuerySystemTrackedKeyboardFB(
4324 XrSession session,
4325 const XrKeyboardTrackingQueryFB* queryInfo,
4326 XrKeyboardTrackingDescriptionFB* keyboard);
4327
4328XRAPI_ATTR XrResult XRAPI_CALL xrCreateKeyboardSpaceFB(
4329 XrSession session,
4330 const XrKeyboardSpaceCreateInfoFB* createInfo,
4331 XrSpace* keyboardSpace);
4332#endif /* XR_EXTENSION_PROTOTYPES */
4333#endif /* !XR_NO_PROTOTYPES */
4334
4335
4336// XR_FB_triangle_mesh is a preprocessor guard. Do not pass it to API calls.
4337#define XR_FB_triangle_mesh 1
4338XR_DEFINE_HANDLE(XrTriangleMeshFB)
4339#define XR_FB_triangle_mesh_SPEC_VERSION 2
4340#define XR_FB_TRIANGLE_MESH_EXTENSION_NAME "XR_FB_triangle_mesh"
4341
4342typedef enum XrWindingOrderFB {
4343 XR_WINDING_ORDER_UNKNOWN_FB = 0,
4344 XR_WINDING_ORDER_CW_FB = 1,
4345 XR_WINDING_ORDER_CCW_FB = 2,
4346 XR_WINDING_ORDER_MAX_ENUM_FB = 0x7FFFFFFF
4347} XrWindingOrderFB;
4348typedef XrFlags64 XrTriangleMeshFlagsFB;
4349
4350// Flag bits for XrTriangleMeshFlagsFB
4351static const XrTriangleMeshFlagsFB XR_TRIANGLE_MESH_MUTABLE_BIT_FB = 0x00000001;
4352
4353typedef struct XrTriangleMeshCreateInfoFB {
4354 XrStructureType type;
4355 const void* XR_MAY_ALIAS next;
4356 XrTriangleMeshFlagsFB flags;
4357 XrWindingOrderFB windingOrder;
4358 uint32_t vertexCount;
4359 const XrVector3f* vertexBuffer;
4360 uint32_t triangleCount;
4361 const uint32_t* indexBuffer;
4362} XrTriangleMeshCreateInfoFB;
4363
4364typedef XrResult (XRAPI_PTR *PFN_xrCreateTriangleMeshFB)(XrSession session, const XrTriangleMeshCreateInfoFB* createInfo, XrTriangleMeshFB* outTriangleMesh);
4365typedef XrResult (XRAPI_PTR *PFN_xrDestroyTriangleMeshFB)(XrTriangleMeshFB mesh);
4366typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshGetVertexBufferFB)(XrTriangleMeshFB mesh, XrVector3f** outVertexBuffer);
4367typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshGetIndexBufferFB)(XrTriangleMeshFB mesh, uint32_t** outIndexBuffer);
4368typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshBeginUpdateFB)(XrTriangleMeshFB mesh);
4369typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshEndUpdateFB)(XrTriangleMeshFB mesh, uint32_t vertexCount, uint32_t triangleCount);
4370typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshBeginVertexBufferUpdateFB)(XrTriangleMeshFB mesh, uint32_t* outVertexCount);
4371typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshEndVertexBufferUpdateFB)(XrTriangleMeshFB mesh);
4372
4373#ifndef XR_NO_PROTOTYPES
4374#ifdef XR_EXTENSION_PROTOTYPES
4375XRAPI_ATTR XrResult XRAPI_CALL xrCreateTriangleMeshFB(
4376 XrSession session,
4377 const XrTriangleMeshCreateInfoFB* createInfo,
4378 XrTriangleMeshFB* outTriangleMesh);
4379
4380XRAPI_ATTR XrResult XRAPI_CALL xrDestroyTriangleMeshFB(
4381 XrTriangleMeshFB mesh);
4382
4383XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetVertexBufferFB(
4384 XrTriangleMeshFB mesh,
4385 XrVector3f** outVertexBuffer);
4386
4387XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetIndexBufferFB(
4388 XrTriangleMeshFB mesh,
4389 uint32_t** outIndexBuffer);
4390
4391XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginUpdateFB(
4392 XrTriangleMeshFB mesh);
4393
4394XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndUpdateFB(
4395 XrTriangleMeshFB mesh,
4396 uint32_t vertexCount,
4397 uint32_t triangleCount);
4398
4399XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginVertexBufferUpdateFB(
4400 XrTriangleMeshFB mesh,
4401 uint32_t* outVertexCount);
4402
4403XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndVertexBufferUpdateFB(
4404 XrTriangleMeshFB mesh);
4405#endif /* XR_EXTENSION_PROTOTYPES */
4406#endif /* !XR_NO_PROTOTYPES */
4407
4408
4409// XR_FB_passthrough is a preprocessor guard. Do not pass it to API calls.
4410#define XR_FB_passthrough 1
4411XR_DEFINE_HANDLE(XrPassthroughFB)
4412XR_DEFINE_HANDLE(XrPassthroughLayerFB)
4413XR_DEFINE_HANDLE(XrGeometryInstanceFB)
4414#define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256
4415#define XR_FB_passthrough_SPEC_VERSION 4
4416#define XR_FB_PASSTHROUGH_EXTENSION_NAME "XR_FB_passthrough"
4417
4418typedef enum XrPassthroughLayerPurposeFB {
4419 XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB = 0,
4420 XR_PASSTHROUGH_LAYER_PURPOSE_PROJECTED_FB = 1,
4421 XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_HANDS_FB = 1000203001,
4422 XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_MASKED_HANDS_FB = 1000203002,
4423 XR_PASSTHROUGH_LAYER_PURPOSE_MAX_ENUM_FB = 0x7FFFFFFF
4424} XrPassthroughLayerPurposeFB;
4425typedef XrFlags64 XrPassthroughCapabilityFlagsFB;
4426
4427// Flag bits for XrPassthroughCapabilityFlagsFB
4428static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_BIT_FB = 0x00000001;
4429static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB = 0x00000002;
4430static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB = 0x00000004;
4431
4432typedef XrFlags64 XrPassthroughFlagsFB;
4433
4434// Flag bits for XrPassthroughFlagsFB
4435static const XrPassthroughFlagsFB XR_PASSTHROUGH_IS_RUNNING_AT_CREATION_BIT_FB = 0x00000001;
4436static const XrPassthroughFlagsFB XR_PASSTHROUGH_LAYER_DEPTH_BIT_FB = 0x00000002;
4437
4438typedef XrFlags64 XrPassthroughStateChangedFlagsFB;
4439
4440// Flag bits for XrPassthroughStateChangedFlagsFB
4441static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_REINIT_REQUIRED_BIT_FB = 0x00000001;
4442static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_NON_RECOVERABLE_ERROR_BIT_FB = 0x00000002;
4443static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RECOVERABLE_ERROR_BIT_FB = 0x00000004;
4444static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RESTORED_ERROR_BIT_FB = 0x00000008;
4445
4446// XrSystemPassthroughPropertiesFB extends XrSystemProperties
4447typedef struct XrSystemPassthroughPropertiesFB {
4448 XrStructureType type;
4449 const void* XR_MAY_ALIAS next;
4450 XrBool32 supportsPassthrough;
4451} XrSystemPassthroughPropertiesFB;
4452
4453// XrSystemPassthroughProperties2FB extends XrSystemProperties
4454typedef struct XrSystemPassthroughProperties2FB {
4455 XrStructureType type;
4456 const void* XR_MAY_ALIAS next;
4457 XrPassthroughCapabilityFlagsFB capabilities;
4458} XrSystemPassthroughProperties2FB;
4459
4460typedef struct XrPassthroughCreateInfoFB {
4461 XrStructureType type;
4462 const void* XR_MAY_ALIAS next;
4463 XrPassthroughFlagsFB flags;
4464} XrPassthroughCreateInfoFB;
4465
4466typedef struct XrPassthroughLayerCreateInfoFB {
4467 XrStructureType type;
4468 const void* XR_MAY_ALIAS next;
4469 XrPassthroughFB passthrough;
4470 XrPassthroughFlagsFB flags;
4471 XrPassthroughLayerPurposeFB purpose;
4472} XrPassthroughLayerCreateInfoFB;
4473
4474typedef struct XrCompositionLayerPassthroughFB {
4475 XrStructureType type;
4476 const void* XR_MAY_ALIAS next;
4477 XrCompositionLayerFlags flags;
4478 XrSpace space;
4479 XrPassthroughLayerFB layerHandle;
4480} XrCompositionLayerPassthroughFB;
4481
4482typedef struct XrGeometryInstanceCreateInfoFB {
4483 XrStructureType type;
4484 const void* XR_MAY_ALIAS next;
4485 XrPassthroughLayerFB layer;
4486 XrTriangleMeshFB mesh;
4487 XrSpace baseSpace;
4488 XrPosef pose;
4489 XrVector3f scale;
4490} XrGeometryInstanceCreateInfoFB;
4491
4492typedef struct XrGeometryInstanceTransformFB {
4493 XrStructureType type;
4494 const void* XR_MAY_ALIAS next;
4495 XrSpace baseSpace;
4496 XrTime time;
4497 XrPosef pose;
4498 XrVector3f scale;
4499} XrGeometryInstanceTransformFB;
4500
4501typedef struct XrPassthroughStyleFB {
4502 XrStructureType type;
4503 const void* XR_MAY_ALIAS next;
4504 float textureOpacityFactor;
4505 XrColor4f edgeColor;
4506} XrPassthroughStyleFB;
4507
4508// XrPassthroughColorMapMonoToRgbaFB extends XrPassthroughStyleFB
4509typedef struct XrPassthroughColorMapMonoToRgbaFB {
4510 XrStructureType type;
4511 const void* XR_MAY_ALIAS next;
4512 XrColor4f textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB];
4513} XrPassthroughColorMapMonoToRgbaFB;
4514
4515// XrPassthroughColorMapMonoToMonoFB extends XrPassthroughStyleFB
4516typedef struct XrPassthroughColorMapMonoToMonoFB {
4517 XrStructureType type;
4518 const void* XR_MAY_ALIAS next;
4519 uint8_t textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB];
4520} XrPassthroughColorMapMonoToMonoFB;
4521
4522// XrPassthroughBrightnessContrastSaturationFB extends XrPassthroughStyleFB
4523typedef struct XrPassthroughBrightnessContrastSaturationFB {
4524 XrStructureType type;
4525 const void* XR_MAY_ALIAS next;
4526 float brightness;
4527 float contrast;
4528 float saturation;
4529} XrPassthroughBrightnessContrastSaturationFB;
4530
4531typedef struct XrEventDataPassthroughStateChangedFB {
4532 XrStructureType type;
4533 const void* XR_MAY_ALIAS next;
4534 XrPassthroughStateChangedFlagsFB flags;
4535} XrEventDataPassthroughStateChangedFB;
4536
4537typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughFB)(XrSession session, const XrPassthroughCreateInfoFB* createInfo, XrPassthroughFB* outPassthrough);
4538typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughFB)(XrPassthroughFB passthrough);
4539typedef XrResult (XRAPI_PTR *PFN_xrPassthroughStartFB)(XrPassthroughFB passthrough);
4540typedef XrResult (XRAPI_PTR *PFN_xrPassthroughPauseFB)(XrPassthroughFB passthrough);
4541typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughLayerFB)(XrSession session, const XrPassthroughLayerCreateInfoFB* createInfo, XrPassthroughLayerFB* outLayer);
4542typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughLayerFB)(XrPassthroughLayerFB layer);
4543typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerPauseFB)(XrPassthroughLayerFB layer);
4544typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerResumeFB)(XrPassthroughLayerFB layer);
4545typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerSetStyleFB)(XrPassthroughLayerFB layer, const XrPassthroughStyleFB* style);
4546typedef XrResult (XRAPI_PTR *PFN_xrCreateGeometryInstanceFB)(XrSession session, const XrGeometryInstanceCreateInfoFB* createInfo, XrGeometryInstanceFB* outGeometryInstance);
4547typedef XrResult (XRAPI_PTR *PFN_xrDestroyGeometryInstanceFB)(XrGeometryInstanceFB instance);
4548typedef XrResult (XRAPI_PTR *PFN_xrGeometryInstanceSetTransformFB)(XrGeometryInstanceFB instance, const XrGeometryInstanceTransformFB* transformation);
4549
4550#ifndef XR_NO_PROTOTYPES
4551#ifdef XR_EXTENSION_PROTOTYPES
4552XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughFB(
4553 XrSession session,
4554 const XrPassthroughCreateInfoFB* createInfo,
4555 XrPassthroughFB* outPassthrough);
4556
4557XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughFB(
4558 XrPassthroughFB passthrough);
4559
4560XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughStartFB(
4561 XrPassthroughFB passthrough);
4562
4563XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughPauseFB(
4564 XrPassthroughFB passthrough);
4565
4566XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughLayerFB(
4567 XrSession session,
4568 const XrPassthroughLayerCreateInfoFB* createInfo,
4569 XrPassthroughLayerFB* outLayer);
4570
4571XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughLayerFB(
4572 XrPassthroughLayerFB layer);
4573
4574XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerPauseFB(
4575 XrPassthroughLayerFB layer);
4576
4577XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerResumeFB(
4578 XrPassthroughLayerFB layer);
4579
4580XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetStyleFB(
4581 XrPassthroughLayerFB layer,
4582 const XrPassthroughStyleFB* style);
4583
4584XRAPI_ATTR XrResult XRAPI_CALL xrCreateGeometryInstanceFB(
4585 XrSession session,
4586 const XrGeometryInstanceCreateInfoFB* createInfo,
4587 XrGeometryInstanceFB* outGeometryInstance);
4588
4589XRAPI_ATTR XrResult XRAPI_CALL xrDestroyGeometryInstanceFB(
4590 XrGeometryInstanceFB instance);
4591
4592XRAPI_ATTR XrResult XRAPI_CALL xrGeometryInstanceSetTransformFB(
4593 XrGeometryInstanceFB instance,
4594 const XrGeometryInstanceTransformFB* transformation);
4595#endif /* XR_EXTENSION_PROTOTYPES */
4596#endif /* !XR_NO_PROTOTYPES */
4597
4598
4599// XR_FB_render_model is a preprocessor guard. Do not pass it to API calls.
4600#define XR_FB_render_model 1
4601
4602#define XR_NULL_RENDER_MODEL_KEY_FB 0
4603
4604XR_DEFINE_ATOM(XrRenderModelKeyFB)
4605#define XR_MAX_RENDER_MODEL_NAME_SIZE_FB 64
4606#define XR_FB_render_model_SPEC_VERSION 4
4607#define XR_FB_RENDER_MODEL_EXTENSION_NAME "XR_FB_render_model"
4608typedef XrFlags64 XrRenderModelFlagsFB;
4609
4610// Flag bits for XrRenderModelFlagsFB
4611static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB = 0x00000001;
4612static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB = 0x00000002;
4613
4614typedef struct XrRenderModelPathInfoFB {
4615 XrStructureType type;
4616 void* XR_MAY_ALIAS next;
4617 XrPath path;
4618} XrRenderModelPathInfoFB;
4619
4620typedef struct XrRenderModelPropertiesFB {
4621 XrStructureType type;
4622 void* XR_MAY_ALIAS next;
4623 uint32_t vendorId;
4624 char modelName[XR_MAX_RENDER_MODEL_NAME_SIZE_FB];
4625 XrRenderModelKeyFB modelKey;
4626 uint32_t modelVersion;
4627 XrRenderModelFlagsFB flags;
4628} XrRenderModelPropertiesFB;
4629
4630typedef struct XrRenderModelBufferFB {
4631 XrStructureType type;
4632 void* XR_MAY_ALIAS next;
4633 uint32_t bufferCapacityInput;
4634 uint32_t bufferCountOutput;
4635 uint8_t* buffer;
4636} XrRenderModelBufferFB;
4637
4638typedef struct XrRenderModelLoadInfoFB {
4639 XrStructureType type;
4640 void* XR_MAY_ALIAS next;
4641 XrRenderModelKeyFB modelKey;
4642} XrRenderModelLoadInfoFB;
4643
4644// XrSystemRenderModelPropertiesFB extends XrSystemProperties
4645typedef struct XrSystemRenderModelPropertiesFB {
4646 XrStructureType type;
4647 void* XR_MAY_ALIAS next;
4648 XrBool32 supportsRenderModelLoading;
4649} XrSystemRenderModelPropertiesFB;
4650
4651// XrRenderModelCapabilitiesRequestFB extends XrRenderModelPropertiesFB
4652typedef struct XrRenderModelCapabilitiesRequestFB {
4653 XrStructureType type;
4654 void* XR_MAY_ALIAS next;
4655 XrRenderModelFlagsFB flags;
4656} XrRenderModelCapabilitiesRequestFB;
4657
4658typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRenderModelPathsFB)(XrSession session, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrRenderModelPathInfoFB* paths);
4659typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPropertiesFB)(XrSession session, XrPath path, XrRenderModelPropertiesFB* properties);
4660typedef XrResult (XRAPI_PTR *PFN_xrLoadRenderModelFB)(XrSession session, const XrRenderModelLoadInfoFB* info, XrRenderModelBufferFB* buffer);
4661
4662#ifndef XR_NO_PROTOTYPES
4663#ifdef XR_EXTENSION_PROTOTYPES
4664XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRenderModelPathsFB(
4665 XrSession session,
4666 uint32_t pathCapacityInput,
4667 uint32_t* pathCountOutput,
4668 XrRenderModelPathInfoFB* paths);
4669
4670XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPropertiesFB(
4671 XrSession session,
4672 XrPath path,
4673 XrRenderModelPropertiesFB* properties);
4674
4675XRAPI_ATTR XrResult XRAPI_CALL xrLoadRenderModelFB(
4676 XrSession session,
4677 const XrRenderModelLoadInfoFB* info,
4678 XrRenderModelBufferFB* buffer);
4679#endif /* XR_EXTENSION_PROTOTYPES */
4680#endif /* !XR_NO_PROTOTYPES */
4681
4682
4683// XR_VARJO_foveated_rendering is a preprocessor guard. Do not pass it to API calls.
4684#define XR_VARJO_foveated_rendering 1
4685#define XR_VARJO_foveated_rendering_SPEC_VERSION 3
4686#define XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME "XR_VARJO_foveated_rendering"
4687// XrViewLocateFoveatedRenderingVARJO extends XrViewLocateInfo
4688typedef struct XrViewLocateFoveatedRenderingVARJO {
4689 XrStructureType type;
4690 const void* XR_MAY_ALIAS next;
4691 XrBool32 foveatedRenderingActive;
4692} XrViewLocateFoveatedRenderingVARJO;
4693
4694// XrFoveatedViewConfigurationViewVARJO extends XrViewConfigurationView
4695typedef struct XrFoveatedViewConfigurationViewVARJO {
4696 XrStructureType type;
4697 void* XR_MAY_ALIAS next;
4698 XrBool32 foveatedRenderingActive;
4699} XrFoveatedViewConfigurationViewVARJO;
4700
4701// XrSystemFoveatedRenderingPropertiesVARJO extends XrSystemProperties
4702typedef struct XrSystemFoveatedRenderingPropertiesVARJO {
4703 XrStructureType type;
4704 void* XR_MAY_ALIAS next;
4705 XrBool32 supportsFoveatedRendering;
4706} XrSystemFoveatedRenderingPropertiesVARJO;
4707
4708
4709
4710// XR_VARJO_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls.
4711#define XR_VARJO_composition_layer_depth_test 1
4712#define XR_VARJO_composition_layer_depth_test_SPEC_VERSION 2
4713#define XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_VARJO_composition_layer_depth_test"
4714// XrCompositionLayerDepthTestVARJO extends XrCompositionLayerProjection
4715typedef struct XrCompositionLayerDepthTestVARJO {
4716 XrStructureType type;
4717 const void* XR_MAY_ALIAS next;
4718 float depthTestRangeNearZ;
4719 float depthTestRangeFarZ;
4720} XrCompositionLayerDepthTestVARJO;
4721
4722
4723
4724// XR_VARJO_environment_depth_estimation is a preprocessor guard. Do not pass it to API calls.
4725#define XR_VARJO_environment_depth_estimation 1
4726#define XR_VARJO_environment_depth_estimation_SPEC_VERSION 1
4727#define XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME "XR_VARJO_environment_depth_estimation"
4728typedef XrResult (XRAPI_PTR *PFN_xrSetEnvironmentDepthEstimationVARJO)(XrSession session, XrBool32 enabled);
4729
4730#ifndef XR_NO_PROTOTYPES
4731#ifdef XR_EXTENSION_PROTOTYPES
4732XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthEstimationVARJO(
4733 XrSession session,
4734 XrBool32 enabled);
4735#endif /* XR_EXTENSION_PROTOTYPES */
4736#endif /* !XR_NO_PROTOTYPES */
4737
4738
4739// XR_VARJO_marker_tracking is a preprocessor guard. Do not pass it to API calls.
4740#define XR_VARJO_marker_tracking 1
4741#define XR_VARJO_marker_tracking_SPEC_VERSION 1
4742#define XR_VARJO_MARKER_TRACKING_EXTENSION_NAME "XR_VARJO_marker_tracking"
4743// XrSystemMarkerTrackingPropertiesVARJO extends XrSystemProperties
4744typedef struct XrSystemMarkerTrackingPropertiesVARJO {
4745 XrStructureType type;
4746 void* XR_MAY_ALIAS next;
4747 XrBool32 supportsMarkerTracking;
4748} XrSystemMarkerTrackingPropertiesVARJO;
4749
4750typedef struct XrEventDataMarkerTrackingUpdateVARJO {
4751 XrStructureType type;
4752 const void* XR_MAY_ALIAS next;
4753 uint64_t markerId;
4754 XrBool32 isActive;
4755 XrBool32 isPredicted;
4756 XrTime time;
4757} XrEventDataMarkerTrackingUpdateVARJO;
4758
4759typedef struct XrMarkerSpaceCreateInfoVARJO {
4760 XrStructureType type;
4761 const void* XR_MAY_ALIAS next;
4762 uint64_t markerId;
4763 XrPosef poseInMarkerSpace;
4764} XrMarkerSpaceCreateInfoVARJO;
4765
4766typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingVARJO)(XrSession session, XrBool32 enabled);
4767typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingTimeoutVARJO)(XrSession session, uint64_t markerId, XrDuration timeout);
4768typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingPredictionVARJO)(XrSession session, uint64_t markerId, XrBool32 enable);
4769typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerSizeVARJO)(XrSession session, uint64_t markerId, XrExtent2Df* size);
4770typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceVARJO)(XrSession session, const XrMarkerSpaceCreateInfoVARJO* createInfo, XrSpace* space);
4771
4772#ifndef XR_NO_PROTOTYPES
4773#ifdef XR_EXTENSION_PROTOTYPES
4774XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingVARJO(
4775 XrSession session,
4776 XrBool32 enabled);
4777
4778XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingTimeoutVARJO(
4779 XrSession session,
4780 uint64_t markerId,
4781 XrDuration timeout);
4782
4783XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingPredictionVARJO(
4784 XrSession session,
4785 uint64_t markerId,
4786 XrBool32 enable);
4787
4788XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerSizeVARJO(
4789 XrSession session,
4790 uint64_t markerId,
4791 XrExtent2Df* size);
4792
4793XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceVARJO(
4794 XrSession session,
4795 const XrMarkerSpaceCreateInfoVARJO* createInfo,
4796 XrSpace* space);
4797#endif /* XR_EXTENSION_PROTOTYPES */
4798#endif /* !XR_NO_PROTOTYPES */
4799
4800
4801// XR_VARJO_view_offset is a preprocessor guard. Do not pass it to API calls.
4802#define XR_VARJO_view_offset 1
4803#define XR_VARJO_view_offset_SPEC_VERSION 1
4804#define XR_VARJO_VIEW_OFFSET_EXTENSION_NAME "XR_VARJO_view_offset"
4805typedef XrResult (XRAPI_PTR *PFN_xrSetViewOffsetVARJO)(XrSession session, float offset);
4806
4807#ifndef XR_NO_PROTOTYPES
4808#ifdef XR_EXTENSION_PROTOTYPES
4809XRAPI_ATTR XrResult XRAPI_CALL xrSetViewOffsetVARJO(
4810 XrSession session,
4811 float offset);
4812#endif /* XR_EXTENSION_PROTOTYPES */
4813#endif /* !XR_NO_PROTOTYPES */
4814
4815
4816// XR_VARJO_xr4_controller_interaction is a preprocessor guard. Do not pass it to API calls.
4817#define XR_VARJO_xr4_controller_interaction 1
4818#define XR_VARJO_xr4_controller_interaction_SPEC_VERSION 2
4819#define XR_VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_VARJO_xr4_controller_interaction"
4820
4821
4822// XR_ML_ml2_controller_interaction is a preprocessor guard. Do not pass it to API calls.
4823#define XR_ML_ml2_controller_interaction 1
4824#define XR_ML_ml2_controller_interaction_SPEC_VERSION 1
4825#define XR_ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_ML_ml2_controller_interaction"
4826
4827
4828// XR_ML_frame_end_info is a preprocessor guard. Do not pass it to API calls.
4829#define XR_ML_frame_end_info 1
4830#define XR_ML_frame_end_info_SPEC_VERSION 1
4831#define XR_ML_FRAME_END_INFO_EXTENSION_NAME "XR_ML_frame_end_info"
4832typedef XrFlags64 XrFrameEndInfoFlagsML;
4833
4834// Flag bits for XrFrameEndInfoFlagsML
4835static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_PROTECTED_BIT_ML = 0x00000001;
4836static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_VIGNETTE_BIT_ML = 0x00000002;
4837
4838// XrFrameEndInfoML extends XrFrameEndInfo
4839typedef struct XrFrameEndInfoML {
4840 XrStructureType type;
4841 const void* XR_MAY_ALIAS next;
4842 float focusDistance;
4843 XrFrameEndInfoFlagsML flags;
4844} XrFrameEndInfoML;
4845
4846
4847
4848// XR_ML_global_dimmer is a preprocessor guard. Do not pass it to API calls.
4849#define XR_ML_global_dimmer 1
4850#define XR_ML_global_dimmer_SPEC_VERSION 1
4851#define XR_ML_GLOBAL_DIMMER_EXTENSION_NAME "XR_ML_global_dimmer"
4852typedef XrFlags64 XrGlobalDimmerFrameEndInfoFlagsML;
4853
4854// Flag bits for XrGlobalDimmerFrameEndInfoFlagsML
4855static const XrGlobalDimmerFrameEndInfoFlagsML XR_GLOBAL_DIMMER_FRAME_END_INFO_ENABLED_BIT_ML = 0x00000001;
4856
4857// XrGlobalDimmerFrameEndInfoML extends XrFrameEndInfo
4858typedef struct XrGlobalDimmerFrameEndInfoML {
4859 XrStructureType type;
4860 const void* XR_MAY_ALIAS next;
4861 float dimmerValue;
4862 XrGlobalDimmerFrameEndInfoFlagsML flags;
4863} XrGlobalDimmerFrameEndInfoML;
4864
4865
4866
4867// XR_ML_marker_understanding is a preprocessor guard. Do not pass it to API calls.
4868#define XR_ML_marker_understanding 1
4869XR_DEFINE_ATOM(XrMarkerML)
4870XR_DEFINE_HANDLE(XrMarkerDetectorML)
4871#define XR_ML_marker_understanding_SPEC_VERSION 1
4872#define XR_ML_MARKER_UNDERSTANDING_EXTENSION_NAME "XR_ML_marker_understanding"
4873
4874typedef enum XrMarkerDetectorProfileML {
4875 XR_MARKER_DETECTOR_PROFILE_DEFAULT_ML = 0,
4876 XR_MARKER_DETECTOR_PROFILE_SPEED_ML = 1,
4877 XR_MARKER_DETECTOR_PROFILE_ACCURACY_ML = 2,
4878 XR_MARKER_DETECTOR_PROFILE_SMALL_TARGETS_ML = 3,
4879 XR_MARKER_DETECTOR_PROFILE_LARGE_FOV_ML = 4,
4880 XR_MARKER_DETECTOR_PROFILE_CUSTOM_ML = 5,
4881 XR_MARKER_DETECTOR_PROFILE_MAX_ENUM_ML = 0x7FFFFFFF
4882} XrMarkerDetectorProfileML;
4883
4884typedef enum XrMarkerTypeML {
4885 XR_MARKER_TYPE_ARUCO_ML = 0,
4886 XR_MARKER_TYPE_APRIL_TAG_ML = 1,
4887 XR_MARKER_TYPE_QR_ML = 2,
4888 XR_MARKER_TYPE_EAN_13_ML = 3,
4889 XR_MARKER_TYPE_UPC_A_ML = 4,
4890 XR_MARKER_TYPE_CODE_128_ML = 5,
4891 XR_MARKER_TYPE_MAX_ENUM_ML = 0x7FFFFFFF
4892} XrMarkerTypeML;
4893
4894typedef enum XrMarkerArucoDictML {
4895 XR_MARKER_ARUCO_DICT_4X4_50_ML = 0,
4896 XR_MARKER_ARUCO_DICT_4X4_100_ML = 1,
4897 XR_MARKER_ARUCO_DICT_4X4_250_ML = 2,
4898 XR_MARKER_ARUCO_DICT_4X4_1000_ML = 3,
4899 XR_MARKER_ARUCO_DICT_5X5_50_ML = 4,
4900 XR_MARKER_ARUCO_DICT_5X5_100_ML = 5,
4901 XR_MARKER_ARUCO_DICT_5X5_250_ML = 6,
4902 XR_MARKER_ARUCO_DICT_5X5_1000_ML = 7,
4903 XR_MARKER_ARUCO_DICT_6X6_50_ML = 8,
4904 XR_MARKER_ARUCO_DICT_6X6_100_ML = 9,
4905 XR_MARKER_ARUCO_DICT_6X6_250_ML = 10,
4906 XR_MARKER_ARUCO_DICT_6X6_1000_ML = 11,
4907 XR_MARKER_ARUCO_DICT_7X7_50_ML = 12,
4908 XR_MARKER_ARUCO_DICT_7X7_100_ML = 13,
4909 XR_MARKER_ARUCO_DICT_7X7_250_ML = 14,
4910 XR_MARKER_ARUCO_DICT_7X7_1000_ML = 15,
4911 XR_MARKER_ARUCO_DICT_MAX_ENUM_ML = 0x7FFFFFFF
4912} XrMarkerArucoDictML;
4913
4914typedef enum XrMarkerAprilTagDictML {
4915 XR_MARKER_APRIL_TAG_DICT_16H5_ML = 0,
4916 XR_MARKER_APRIL_TAG_DICT_25H9_ML = 1,
4917 XR_MARKER_APRIL_TAG_DICT_36H10_ML = 2,
4918 XR_MARKER_APRIL_TAG_DICT_36H11_ML = 3,
4919 XR_MARKER_APRIL_TAG_DICT_MAX_ENUM_ML = 0x7FFFFFFF
4920} XrMarkerAprilTagDictML;
4921
4922typedef enum XrMarkerDetectorFpsML {
4923 XR_MARKER_DETECTOR_FPS_LOW_ML = 0,
4924 XR_MARKER_DETECTOR_FPS_MEDIUM_ML = 1,
4925 XR_MARKER_DETECTOR_FPS_HIGH_ML = 2,
4926 XR_MARKER_DETECTOR_FPS_MAX_ML = 3,
4927 XR_MARKER_DETECTOR_FPS_MAX_ENUM_ML = 0x7FFFFFFF
4928} XrMarkerDetectorFpsML;
4929
4930typedef enum XrMarkerDetectorResolutionML {
4931 XR_MARKER_DETECTOR_RESOLUTION_LOW_ML = 0,
4932 XR_MARKER_DETECTOR_RESOLUTION_MEDIUM_ML = 1,
4933 XR_MARKER_DETECTOR_RESOLUTION_HIGH_ML = 2,
4934 XR_MARKER_DETECTOR_RESOLUTION_MAX_ENUM_ML = 0x7FFFFFFF
4935} XrMarkerDetectorResolutionML;
4936
4937typedef enum XrMarkerDetectorCameraML {
4938 XR_MARKER_DETECTOR_CAMERA_RGB_CAMERA_ML = 0,
4939 XR_MARKER_DETECTOR_CAMERA_WORLD_CAMERAS_ML = 1,
4940 XR_MARKER_DETECTOR_CAMERA_MAX_ENUM_ML = 0x7FFFFFFF
4941} XrMarkerDetectorCameraML;
4942
4943typedef enum XrMarkerDetectorCornerRefineMethodML {
4944 XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_NONE_ML = 0,
4945 XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_SUBPIX_ML = 1,
4946 XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_CONTOUR_ML = 2,
4947 XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML = 3,
4948 XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_MAX_ENUM_ML = 0x7FFFFFFF
4949} XrMarkerDetectorCornerRefineMethodML;
4950
4951typedef enum XrMarkerDetectorFullAnalysisIntervalML {
4952 XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ML = 0,
4953 XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_FAST_ML = 1,
4954 XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MEDIUM_ML = 2,
4955 XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_SLOW_ML = 3,
4956 XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ENUM_ML = 0x7FFFFFFF
4957} XrMarkerDetectorFullAnalysisIntervalML;
4958
4959typedef enum XrMarkerDetectorStatusML {
4960 XR_MARKER_DETECTOR_STATUS_PENDING_ML = 0,
4961 XR_MARKER_DETECTOR_STATUS_READY_ML = 1,
4962 XR_MARKER_DETECTOR_STATUS_ERROR_ML = 2,
4963 XR_MARKER_DETECTOR_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
4964} XrMarkerDetectorStatusML;
4965// XrSystemMarkerUnderstandingPropertiesML extends XrSystemProperties
4966typedef struct XrSystemMarkerUnderstandingPropertiesML {
4967 XrStructureType type;
4968 void* XR_MAY_ALIAS next;
4969 XrBool32 supportsMarkerUnderstanding;
4970} XrSystemMarkerUnderstandingPropertiesML;
4971
4972typedef struct XrMarkerDetectorCreateInfoML {
4973 XrStructureType type;
4974 const void* XR_MAY_ALIAS next;
4975 XrMarkerDetectorProfileML profile;
4976 XrMarkerTypeML markerType;
4977} XrMarkerDetectorCreateInfoML;
4978
4979// XrMarkerDetectorArucoInfoML extends XrMarkerDetectorCreateInfoML
4980typedef struct XrMarkerDetectorArucoInfoML {
4981 XrStructureType type;
4982 const void* XR_MAY_ALIAS next;
4983 XrMarkerArucoDictML arucoDict;
4984} XrMarkerDetectorArucoInfoML;
4985
4986// XrMarkerDetectorSizeInfoML extends XrMarkerDetectorCreateInfoML
4987typedef struct XrMarkerDetectorSizeInfoML {
4988 XrStructureType type;
4989 const void* XR_MAY_ALIAS next;
4990 float markerLength;
4991} XrMarkerDetectorSizeInfoML;
4992
4993// XrMarkerDetectorAprilTagInfoML extends XrMarkerDetectorCreateInfoML
4994typedef struct XrMarkerDetectorAprilTagInfoML {
4995 XrStructureType type;
4996 const void* XR_MAY_ALIAS next;
4997 XrMarkerAprilTagDictML aprilTagDict;
4998} XrMarkerDetectorAprilTagInfoML;
4999
5000// XrMarkerDetectorCustomProfileInfoML extends XrMarkerDetectorCreateInfoML
5001typedef struct XrMarkerDetectorCustomProfileInfoML {
5002 XrStructureType type;
5003 const void* XR_MAY_ALIAS next;
5004 XrMarkerDetectorFpsML fpsHint;
5005 XrMarkerDetectorResolutionML resolutionHint;
5006 XrMarkerDetectorCameraML cameraHint;
5007 XrMarkerDetectorCornerRefineMethodML cornerRefineMethod;
5008 XrBool32 useEdgeRefinement;
5009 XrMarkerDetectorFullAnalysisIntervalML fullAnalysisIntervalHint;
5010} XrMarkerDetectorCustomProfileInfoML;
5011
5012typedef struct XrMarkerDetectorSnapshotInfoML {
5013 XrStructureType type;
5014 const void* XR_MAY_ALIAS next;
5015} XrMarkerDetectorSnapshotInfoML;
5016
5017typedef struct XrMarkerDetectorStateML {
5018 XrStructureType type;
5019 void* XR_MAY_ALIAS next;
5020 XrMarkerDetectorStatusML state;
5021} XrMarkerDetectorStateML;
5022
5023typedef struct XrMarkerSpaceCreateInfoML {
5024 XrStructureType type;
5025 const void* XR_MAY_ALIAS next;
5026 XrMarkerDetectorML markerDetector;
5027 XrMarkerML marker;
5028 XrPosef poseInMarkerSpace;
5029} XrMarkerSpaceCreateInfoML;
5030
5031typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerDetectorML)(XrSession session, const XrMarkerDetectorCreateInfoML* createInfo, XrMarkerDetectorML* markerDetector);
5032typedef XrResult (XRAPI_PTR *PFN_xrDestroyMarkerDetectorML)(XrMarkerDetectorML markerDetector);
5033typedef XrResult (XRAPI_PTR *PFN_xrSnapshotMarkerDetectorML)(XrMarkerDetectorML markerDetector, XrMarkerDetectorSnapshotInfoML* snapshotInfo);
5034typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerDetectorStateML)(XrMarkerDetectorML markerDetector, XrMarkerDetectorStateML* state);
5035typedef XrResult (XRAPI_PTR *PFN_xrGetMarkersML)(XrMarkerDetectorML markerDetector, uint32_t markerCapacityInput, uint32_t* markerCountOutput, XrMarkerML* markers);
5036typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerReprojectionErrorML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, float* reprojectionErrorMeters);
5037typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerLengthML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, float* meters);
5038typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerNumberML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, uint64_t* number);
5039typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerStringML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
5040typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceML)(XrSession session, const XrMarkerSpaceCreateInfoML* createInfo, XrSpace* space);
5041
5042#ifndef XR_NO_PROTOTYPES
5043#ifdef XR_EXTENSION_PROTOTYPES
5044XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerDetectorML(
5045 XrSession session,
5046 const XrMarkerDetectorCreateInfoML* createInfo,
5047 XrMarkerDetectorML* markerDetector);
5048
5049XRAPI_ATTR XrResult XRAPI_CALL xrDestroyMarkerDetectorML(
5050 XrMarkerDetectorML markerDetector);
5051
5052XRAPI_ATTR XrResult XRAPI_CALL xrSnapshotMarkerDetectorML(
5053 XrMarkerDetectorML markerDetector,
5054 XrMarkerDetectorSnapshotInfoML* snapshotInfo);
5055
5056XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerDetectorStateML(
5057 XrMarkerDetectorML markerDetector,
5058 XrMarkerDetectorStateML* state);
5059
5060XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkersML(
5061 XrMarkerDetectorML markerDetector,
5062 uint32_t markerCapacityInput,
5063 uint32_t* markerCountOutput,
5064 XrMarkerML* markers);
5065
5066XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerReprojectionErrorML(
5067 XrMarkerDetectorML markerDetector,
5068 XrMarkerML marker,
5069 float* reprojectionErrorMeters);
5070
5071XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerLengthML(
5072 XrMarkerDetectorML markerDetector,
5073 XrMarkerML marker,
5074 float* meters);
5075
5076XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerNumberML(
5077 XrMarkerDetectorML markerDetector,
5078 XrMarkerML marker,
5079 uint64_t* number);
5080
5081XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerStringML(
5082 XrMarkerDetectorML markerDetector,
5083 XrMarkerML marker,
5084 uint32_t bufferCapacityInput,
5085 uint32_t* bufferCountOutput,
5086 char* buffer);
5087
5088XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceML(
5089 XrSession session,
5090 const XrMarkerSpaceCreateInfoML* createInfo,
5091 XrSpace* space);
5092#endif /* XR_EXTENSION_PROTOTYPES */
5093#endif /* !XR_NO_PROTOTYPES */
5094
5095
5096// XR_ML_localization_map is a preprocessor guard. Do not pass it to API calls.
5097#define XR_ML_localization_map 1
5098XR_DEFINE_HANDLE(XrExportedLocalizationMapML)
5099#define XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML 64
5100#define XR_ML_localization_map_SPEC_VERSION 1
5101#define XR_ML_LOCALIZATION_MAP_EXTENSION_NAME "XR_ML_localization_map"
5102
5103typedef enum XrLocalizationMapStateML {
5104 XR_LOCALIZATION_MAP_STATE_NOT_LOCALIZED_ML = 0,
5105 XR_LOCALIZATION_MAP_STATE_LOCALIZED_ML = 1,
5106 XR_LOCALIZATION_MAP_STATE_LOCALIZATION_PENDING_ML = 2,
5107 XR_LOCALIZATION_MAP_STATE_LOCALIZATION_SLEEPING_BEFORE_RETRY_ML = 3,
5108 XR_LOCALIZATION_MAP_STATE_MAX_ENUM_ML = 0x7FFFFFFF
5109} XrLocalizationMapStateML;
5110
5111typedef enum XrLocalizationMapTypeML {
5112 XR_LOCALIZATION_MAP_TYPE_ON_DEVICE_ML = 0,
5113 XR_LOCALIZATION_MAP_TYPE_CLOUD_ML = 1,
5114 XR_LOCALIZATION_MAP_TYPE_MAX_ENUM_ML = 0x7FFFFFFF
5115} XrLocalizationMapTypeML;
5116
5117typedef enum XrLocalizationMapConfidenceML {
5118 XR_LOCALIZATION_MAP_CONFIDENCE_POOR_ML = 0,
5119 XR_LOCALIZATION_MAP_CONFIDENCE_FAIR_ML = 1,
5120 XR_LOCALIZATION_MAP_CONFIDENCE_GOOD_ML = 2,
5121 XR_LOCALIZATION_MAP_CONFIDENCE_EXCELLENT_ML = 3,
5122 XR_LOCALIZATION_MAP_CONFIDENCE_MAX_ENUM_ML = 0x7FFFFFFF
5123} XrLocalizationMapConfidenceML;
5124typedef XrFlags64 XrLocalizationMapErrorFlagsML;
5125
5126// Flag bits for XrLocalizationMapErrorFlagsML
5127static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_UNKNOWN_BIT_ML = 0x00000001;
5128static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_OUT_OF_MAPPED_AREA_BIT_ML = 0x00000002;
5129static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_FEATURE_COUNT_BIT_ML = 0x00000004;
5130static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_EXCESSIVE_MOTION_BIT_ML = 0x00000008;
5131static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_LIGHT_BIT_ML = 0x00000010;
5132static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_HEADPOSE_BIT_ML = 0x00000020;
5133
5134typedef struct XrLocalizationMapML {
5135 XrStructureType type;
5136 void* XR_MAY_ALIAS next;
5137 char name[XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML];
5138 XrUuidEXT mapUuid;
5139 XrLocalizationMapTypeML mapType;
5140} XrLocalizationMapML;
5141
5142typedef struct XrEventDataLocalizationChangedML {
5143 XrStructureType type;
5144 const void* XR_MAY_ALIAS next;
5145 XrSession session;
5146 XrLocalizationMapStateML state;
5147 XrLocalizationMapML map;
5148 XrLocalizationMapConfidenceML confidence;
5149 XrLocalizationMapErrorFlagsML errorFlags;
5150} XrEventDataLocalizationChangedML;
5151
5152typedef struct XrLocalizationMapQueryInfoBaseHeaderML {
5153 XrStructureType type;
5154 const void* XR_MAY_ALIAS next;
5155} XrLocalizationMapQueryInfoBaseHeaderML;
5156
5157typedef struct XrMapLocalizationRequestInfoML {
5158 XrStructureType type;
5159 const void* XR_MAY_ALIAS next;
5160 XrUuidEXT mapUuid;
5161} XrMapLocalizationRequestInfoML;
5162
5163typedef struct XrLocalizationMapImportInfoML {
5164 XrStructureType type;
5165 const void* XR_MAY_ALIAS next;
5166 uint32_t size;
5167 char* data;
5168} XrLocalizationMapImportInfoML;
5169
5170typedef struct XrLocalizationEnableEventsInfoML {
5171 XrStructureType type;
5172 const void* XR_MAY_ALIAS next;
5173 XrBool32 enabled;
5174} XrLocalizationEnableEventsInfoML;
5175
5176typedef XrResult (XRAPI_PTR *PFN_xrEnableLocalizationEventsML)(XrSession session, const XrLocalizationEnableEventsInfoML * info);
5177typedef XrResult (XRAPI_PTR *PFN_xrQueryLocalizationMapsML)(XrSession session, const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo, uint32_t mapCapacityInput, uint32_t * mapCountOutput, XrLocalizationMapML* maps);
5178typedef XrResult (XRAPI_PTR *PFN_xrRequestMapLocalizationML)(XrSession session, const XrMapLocalizationRequestInfoML* requestInfo);
5179typedef XrResult (XRAPI_PTR *PFN_xrImportLocalizationMapML)(XrSession session, const XrLocalizationMapImportInfoML* importInfo, XrUuidEXT* mapUuid);
5180typedef XrResult (XRAPI_PTR *PFN_xrCreateExportedLocalizationMapML)(XrSession session, const XrUuidEXT* mapUuid, XrExportedLocalizationMapML* map);
5181typedef XrResult (XRAPI_PTR *PFN_xrDestroyExportedLocalizationMapML)(XrExportedLocalizationMapML map);
5182typedef XrResult (XRAPI_PTR *PFN_xrGetExportedLocalizationMapDataML)(XrExportedLocalizationMapML map, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
5183
5184#ifndef XR_NO_PROTOTYPES
5185#ifdef XR_EXTENSION_PROTOTYPES
5186XRAPI_ATTR XrResult XRAPI_CALL xrEnableLocalizationEventsML(
5187 XrSession session,
5188 const XrLocalizationEnableEventsInfoML * info);
5189
5190XRAPI_ATTR XrResult XRAPI_CALL xrQueryLocalizationMapsML(
5191 XrSession session,
5192 const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo,
5193 uint32_t mapCapacityInput,
5194 uint32_t * mapCountOutput,
5195 XrLocalizationMapML* maps);
5196
5197XRAPI_ATTR XrResult XRAPI_CALL xrRequestMapLocalizationML(
5198 XrSession session,
5199 const XrMapLocalizationRequestInfoML* requestInfo);
5200
5201XRAPI_ATTR XrResult XRAPI_CALL xrImportLocalizationMapML(
5202 XrSession session,
5203 const XrLocalizationMapImportInfoML* importInfo,
5204 XrUuidEXT* mapUuid);
5205
5206XRAPI_ATTR XrResult XRAPI_CALL xrCreateExportedLocalizationMapML(
5207 XrSession session,
5208 const XrUuidEXT* mapUuid,
5209 XrExportedLocalizationMapML* map);
5210
5211XRAPI_ATTR XrResult XRAPI_CALL xrDestroyExportedLocalizationMapML(
5212 XrExportedLocalizationMapML map);
5213
5214XRAPI_ATTR XrResult XRAPI_CALL xrGetExportedLocalizationMapDataML(
5215 XrExportedLocalizationMapML map,
5216 uint32_t bufferCapacityInput,
5217 uint32_t* bufferCountOutput,
5218 char* buffer);
5219#endif /* XR_EXTENSION_PROTOTYPES */
5220#endif /* !XR_NO_PROTOTYPES */
5221
5222
5223// XR_ML_spatial_anchors is a preprocessor guard. Do not pass it to API calls.
5224#define XR_ML_spatial_anchors 1
5225XR_DEFINE_OPAQUE_64(XrFutureEXT)
5226#define XR_ML_spatial_anchors_SPEC_VERSION 1
5227#define XR_ML_SPATIAL_ANCHORS_EXTENSION_NAME "XR_ML_spatial_anchors"
5228
5229typedef enum XrSpatialAnchorConfidenceML {
5230 XR_SPATIAL_ANCHOR_CONFIDENCE_LOW_ML = 0,
5231 XR_SPATIAL_ANCHOR_CONFIDENCE_MEDIUM_ML = 1,
5232 XR_SPATIAL_ANCHOR_CONFIDENCE_HIGH_ML = 2,
5233 XR_SPATIAL_ANCHOR_CONFIDENCE_MAX_ENUM_ML = 0x7FFFFFFF
5234} XrSpatialAnchorConfidenceML;
5235typedef struct XR_MAY_ALIAS XrSpatialAnchorsCreateInfoBaseHeaderML {
5236 XrStructureType type;
5237 const void* XR_MAY_ALIAS next;
5238} XrSpatialAnchorsCreateInfoBaseHeaderML;
5239
5240typedef struct XrSpatialAnchorsCreateInfoFromPoseML {
5241 XrStructureType type;
5242 const void* XR_MAY_ALIAS next;
5243 XrSpace baseSpace;
5244 XrPosef poseInBaseSpace;
5245 XrTime time;
5246} XrSpatialAnchorsCreateInfoFromPoseML;
5247
5248typedef struct XrCreateSpatialAnchorsCompletionML {
5249 XrStructureType type;
5250 void* XR_MAY_ALIAS next;
5251 XrResult futureResult;
5252 uint32_t spaceCount;
5253 XrSpace* spaces;
5254} XrCreateSpatialAnchorsCompletionML;
5255
5256typedef struct XrSpatialAnchorStateML {
5257 XrStructureType type;
5258 void* XR_MAY_ALIAS next;
5259 XrSpatialAnchorConfidenceML confidence;
5260} XrSpatialAnchorStateML;
5261
5262typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsAsyncML)(XrSession session, const XrSpatialAnchorsCreateInfoBaseHeaderML* createInfo, XrFutureEXT* future);
5263typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsCompleteML)(XrSession session, XrFutureEXT future, XrCreateSpatialAnchorsCompletionML* completion);
5264typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorStateML)(XrSpace anchor, XrSpatialAnchorStateML* state);
5265
5266#ifndef XR_NO_PROTOTYPES
5267#ifdef XR_EXTENSION_PROTOTYPES
5268XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsAsyncML(
5269 XrSession session,
5270 const XrSpatialAnchorsCreateInfoBaseHeaderML* createInfo,
5271 XrFutureEXT* future);
5272
5273XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsCompleteML(
5274 XrSession session,
5275 XrFutureEXT future,
5276 XrCreateSpatialAnchorsCompletionML* completion);
5277
5278XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorStateML(
5279 XrSpace anchor,
5280 XrSpatialAnchorStateML* state);
5281#endif /* XR_EXTENSION_PROTOTYPES */
5282#endif /* !XR_NO_PROTOTYPES */
5283
5284
5285// XR_ML_spatial_anchors_storage is a preprocessor guard. Do not pass it to API calls.
5286#define XR_ML_spatial_anchors_storage 1
5287XR_DEFINE_HANDLE(XrSpatialAnchorsStorageML)
5288#define XR_ML_spatial_anchors_storage_SPEC_VERSION 1
5289#define XR_ML_SPATIAL_ANCHORS_STORAGE_EXTENSION_NAME "XR_ML_spatial_anchors_storage"
5290typedef struct XrSpatialAnchorsCreateStorageInfoML {
5291 XrStructureType type;
5292 const void* XR_MAY_ALIAS next;
5293} XrSpatialAnchorsCreateStorageInfoML;
5294
5295typedef struct XR_MAY_ALIAS XrSpatialAnchorsQueryInfoBaseHeaderML {
5296 XrStructureType type;
5297 const void* XR_MAY_ALIAS next;
5298} XrSpatialAnchorsQueryInfoBaseHeaderML;
5299
5300typedef struct XrSpatialAnchorsQueryInfoRadiusML {
5301 XrStructureType type;
5302 const void* XR_MAY_ALIAS next;
5303 XrSpace baseSpace;
5304 XrVector3f center;
5305 XrTime time;
5306 float radius;
5307} XrSpatialAnchorsQueryInfoRadiusML;
5308
5309typedef struct XrSpatialAnchorsQueryCompletionML {
5310 XrStructureType type;
5311 void* XR_MAY_ALIAS next;
5312 XrResult futureResult;
5313 uint32_t uuidCapacityInput;
5314 uint32_t uuidCountOutput;
5315 XrUuidEXT* uuids;
5316} XrSpatialAnchorsQueryCompletionML;
5317
5318typedef struct XrSpatialAnchorsCreateInfoFromUuidsML {
5319 XrStructureType type;
5320 const void* XR_MAY_ALIAS next;
5321 XrSpatialAnchorsStorageML storage;
5322 uint32_t uuidCount;
5323 const XrUuidEXT* uuids;
5324} XrSpatialAnchorsCreateInfoFromUuidsML;
5325
5326typedef struct XrSpatialAnchorsPublishInfoML {
5327 XrStructureType type;
5328 const void* XR_MAY_ALIAS next;
5329 uint32_t anchorCount;
5330 const XrSpace* anchors;
5331 uint64_t expiration;
5332} XrSpatialAnchorsPublishInfoML;
5333
5334typedef struct XrSpatialAnchorsPublishCompletionML {
5335 XrStructureType type;
5336 void* XR_MAY_ALIAS next;
5337 XrResult futureResult;
5338 uint32_t uuidCount;
5339 XrUuidEXT* uuids;
5340} XrSpatialAnchorsPublishCompletionML;
5341
5342typedef struct XrSpatialAnchorsDeleteInfoML {
5343 XrStructureType type;
5344 const void* XR_MAY_ALIAS next;
5345 uint32_t uuidCount;
5346 const XrUuidEXT* uuids;
5347} XrSpatialAnchorsDeleteInfoML;
5348
5349typedef struct XrSpatialAnchorsDeleteCompletionML {
5350 XrStructureType type;
5351 void* XR_MAY_ALIAS next;
5352 XrResult futureResult;
5353} XrSpatialAnchorsDeleteCompletionML;
5354
5355typedef struct XrSpatialAnchorsUpdateExpirationInfoML {
5356 XrStructureType type;
5357 const void* XR_MAY_ALIAS next;
5358 uint32_t uuidCount;
5359 const XrUuidEXT* uuids;
5360 uint64_t expiration;
5361} XrSpatialAnchorsUpdateExpirationInfoML;
5362
5363typedef struct XrSpatialAnchorsUpdateExpirationCompletionML {
5364 XrStructureType type;
5365 void* XR_MAY_ALIAS next;
5366 XrResult futureResult;
5367} XrSpatialAnchorsUpdateExpirationCompletionML;
5368
5369typedef struct XrSpatialAnchorCompletionResultML {
5370 XrUuidEXT uuid;
5371 XrResult result;
5372} XrSpatialAnchorCompletionResultML;
5373
5374// XrSpatialAnchorsPublishCompletionDetailsML extends XrSpatialAnchorsPublishCompletionML
5375typedef struct XrSpatialAnchorsPublishCompletionDetailsML {
5376 XrStructureType type;
5377 void* XR_MAY_ALIAS next;
5378 uint32_t resultCount;
5379 XrSpatialAnchorCompletionResultML* results;
5380} XrSpatialAnchorsPublishCompletionDetailsML;
5381
5382// XrSpatialAnchorsDeleteCompletionDetailsML extends XrSpatialAnchorsDeleteCompletionML
5383typedef struct XrSpatialAnchorsDeleteCompletionDetailsML {
5384 XrStructureType type;
5385 void* XR_MAY_ALIAS next;
5386 uint32_t resultCount;
5387 XrSpatialAnchorCompletionResultML* results;
5388} XrSpatialAnchorsDeleteCompletionDetailsML;
5389
5390// XrSpatialAnchorsUpdateExpirationCompletionDetailsML extends XrSpatialAnchorsUpdateExpirationCompletionML
5391typedef struct XrSpatialAnchorsUpdateExpirationCompletionDetailsML {
5392 XrStructureType type;
5393 void* XR_MAY_ALIAS next;
5394 uint32_t resultCount;
5395 XrSpatialAnchorCompletionResultML* results;
5396} XrSpatialAnchorsUpdateExpirationCompletionDetailsML;
5397
5398typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsStorageML)(XrSession session, const XrSpatialAnchorsCreateStorageInfoML* createInfo, XrSpatialAnchorsStorageML* storage);
5399typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorsStorageML)(XrSpatialAnchorsStorageML storage);
5400typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsQueryInfoBaseHeaderML* queryInfo, XrFutureEXT* future);
5401typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsQueryCompletionML* completion);
5402typedef XrResult (XRAPI_PTR *PFN_xrPublishSpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsPublishInfoML* publishInfo, XrFutureEXT* future);
5403typedef XrResult (XRAPI_PTR *PFN_xrPublishSpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsPublishCompletionML* completion);
5404typedef XrResult (XRAPI_PTR *PFN_xrDeleteSpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsDeleteInfoML* deleteInfo, XrFutureEXT* future);
5405typedef XrResult (XRAPI_PTR *PFN_xrDeleteSpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsDeleteCompletionML* completion);
5406typedef XrResult (XRAPI_PTR *PFN_xrUpdateSpatialAnchorsExpirationAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsUpdateExpirationInfoML* updateInfo, XrFutureEXT* future);
5407typedef XrResult (XRAPI_PTR *PFN_xrUpdateSpatialAnchorsExpirationCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsUpdateExpirationCompletionML* completion);
5408
5409#ifndef XR_NO_PROTOTYPES
5410#ifdef XR_EXTENSION_PROTOTYPES
5411XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsStorageML(
5412 XrSession session,
5413 const XrSpatialAnchorsCreateStorageInfoML* createInfo,
5414 XrSpatialAnchorsStorageML* storage);
5415
5416XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorsStorageML(
5417 XrSpatialAnchorsStorageML storage);
5418
5419XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialAnchorsAsyncML(
5420 XrSpatialAnchorsStorageML storage,
5421 const XrSpatialAnchorsQueryInfoBaseHeaderML* queryInfo,
5422 XrFutureEXT* future);
5423
5424XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialAnchorsCompleteML(
5425 XrSpatialAnchorsStorageML storage,
5426 XrFutureEXT future,
5427 XrSpatialAnchorsQueryCompletionML* completion);
5428
5429XRAPI_ATTR XrResult XRAPI_CALL xrPublishSpatialAnchorsAsyncML(
5430 XrSpatialAnchorsStorageML storage,
5431 const XrSpatialAnchorsPublishInfoML* publishInfo,
5432 XrFutureEXT* future);
5433
5434XRAPI_ATTR XrResult XRAPI_CALL xrPublishSpatialAnchorsCompleteML(
5435 XrSpatialAnchorsStorageML storage,
5436 XrFutureEXT future,
5437 XrSpatialAnchorsPublishCompletionML* completion);
5438
5439XRAPI_ATTR XrResult XRAPI_CALL xrDeleteSpatialAnchorsAsyncML(
5440 XrSpatialAnchorsStorageML storage,
5441 const XrSpatialAnchorsDeleteInfoML* deleteInfo,
5442 XrFutureEXT* future);
5443
5444XRAPI_ATTR XrResult XRAPI_CALL xrDeleteSpatialAnchorsCompleteML(
5445 XrSpatialAnchorsStorageML storage,
5446 XrFutureEXT future,
5447 XrSpatialAnchorsDeleteCompletionML* completion);
5448
5449XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSpatialAnchorsExpirationAsyncML(
5450 XrSpatialAnchorsStorageML storage,
5451 const XrSpatialAnchorsUpdateExpirationInfoML* updateInfo,
5452 XrFutureEXT* future);
5453
5454XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSpatialAnchorsExpirationCompleteML(
5455 XrSpatialAnchorsStorageML storage,
5456 XrFutureEXT future,
5457 XrSpatialAnchorsUpdateExpirationCompletionML* completion);
5458#endif /* XR_EXTENSION_PROTOTYPES */
5459#endif /* !XR_NO_PROTOTYPES */
5460
5461
5462// XR_MSFT_spatial_anchor_persistence is a preprocessor guard. Do not pass it to API calls.
5463#define XR_MSFT_spatial_anchor_persistence 1
5464XR_DEFINE_HANDLE(XrSpatialAnchorStoreConnectionMSFT)
5465#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT 256
5466#define XR_MSFT_spatial_anchor_persistence_SPEC_VERSION 2
5467#define XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME "XR_MSFT_spatial_anchor_persistence"
5468typedef struct XrSpatialAnchorPersistenceNameMSFT {
5469 char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT];
5470} XrSpatialAnchorPersistenceNameMSFT;
5471
5472typedef struct XrSpatialAnchorPersistenceInfoMSFT {
5473 XrStructureType type;
5474 const void* XR_MAY_ALIAS next;
5475 XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName;
5476 XrSpatialAnchorMSFT spatialAnchor;
5477} XrSpatialAnchorPersistenceInfoMSFT;
5478
5479typedef struct XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT {
5480 XrStructureType type;
5481 const void* XR_MAY_ALIAS next;
5482 XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore;
5483 XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName;
5484} XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT;
5485
5486typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession session, XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore);
5487typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
5488typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo);
5489typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNameCapacityInput, uint32_t* spatialAnchorNameCountOutput, XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames);
5490typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo, XrSpatialAnchorMSFT* spatialAnchor);
5491typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName);
5492typedef XrResult (XRAPI_PTR *PFN_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
5493
5494#ifndef XR_NO_PROTOTYPES
5495#ifdef XR_EXTENSION_PROTOTYPES
5496XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorStoreConnectionMSFT(
5497 XrSession session,
5498 XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore);
5499
5500XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorStoreConnectionMSFT(
5501 XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
5502
5503XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorMSFT(
5504 XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
5505 const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo);
5506
5507XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePersistedSpatialAnchorNamesMSFT(
5508 XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
5509 uint32_t spatialAnchorNameCapacityInput,
5510 uint32_t* spatialAnchorNameCountOutput,
5511 XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames);
5512
5513XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPersistedNameMSFT(
5514 XrSession session,
5515 const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo,
5516 XrSpatialAnchorMSFT* spatialAnchor);
5517
5518XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorMSFT(
5519 XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
5520 const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName);
5521
5522XRAPI_ATTR XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT(
5523 XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
5524#endif /* XR_EXTENSION_PROTOTYPES */
5525#endif /* !XR_NO_PROTOTYPES */
5526
5527
5528// XR_MSFT_scene_marker is a preprocessor guard. Do not pass it to API calls.
5529#define XR_MSFT_scene_marker 1
5530#define XR_MSFT_scene_marker_SPEC_VERSION 1
5531#define XR_MSFT_SCENE_MARKER_EXTENSION_NAME "XR_MSFT_scene_marker"
5532
5533typedef enum XrSceneMarkerTypeMSFT {
5534 XR_SCENE_MARKER_TYPE_QR_CODE_MSFT = 1,
5535 XR_SCENE_MARKER_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
5536} XrSceneMarkerTypeMSFT;
5537
5538typedef enum XrSceneMarkerQRCodeSymbolTypeMSFT {
5539 XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_QR_CODE_MSFT = 1,
5540 XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_MICRO_QR_CODE_MSFT = 2,
5541 XR_SCENE_MARKER_QRCODE_SYMBOL_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
5542} XrSceneMarkerQRCodeSymbolTypeMSFT;
5543typedef struct XrSceneMarkerMSFT {
5544 XrSceneMarkerTypeMSFT markerType;
5545 XrTime lastSeenTime;
5546 XrOffset2Df center;
5547 XrExtent2Df size;
5548} XrSceneMarkerMSFT;
5549
5550// XrSceneMarkersMSFT extends XrSceneComponentsMSFT
5551typedef struct XrSceneMarkersMSFT {
5552 XrStructureType type;
5553 const void* XR_MAY_ALIAS next;
5554 uint32_t sceneMarkerCapacityInput;
5555 XrSceneMarkerMSFT* sceneMarkers;
5556} XrSceneMarkersMSFT;
5557
5558// XrSceneMarkerTypeFilterMSFT extends XrSceneComponentsGetInfoMSFT
5559typedef struct XrSceneMarkerTypeFilterMSFT {
5560 XrStructureType type;
5561 const void* XR_MAY_ALIAS next;
5562 uint32_t markerTypeCount;
5563 XrSceneMarkerTypeMSFT* markerTypes;
5564} XrSceneMarkerTypeFilterMSFT;
5565
5566typedef struct XrSceneMarkerQRCodeMSFT {
5567 XrSceneMarkerQRCodeSymbolTypeMSFT symbolType;
5568 uint8_t version;
5569} XrSceneMarkerQRCodeMSFT;
5570
5571// XrSceneMarkerQRCodesMSFT extends XrSceneComponentsMSFT
5572typedef struct XrSceneMarkerQRCodesMSFT {
5573 XrStructureType type;
5574 const void* XR_MAY_ALIAS next;
5575 uint32_t qrCodeCapacityInput;
5576 XrSceneMarkerQRCodeMSFT* qrCodes;
5577} XrSceneMarkerQRCodesMSFT;
5578
5579typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerRawDataMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer);
5580typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerDecodedStringMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
5581
5582#ifndef XR_NO_PROTOTYPES
5583#ifdef XR_EXTENSION_PROTOTYPES
5584XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerRawDataMSFT(
5585 XrSceneMSFT scene,
5586 const XrUuidMSFT* markerId,
5587 uint32_t bufferCapacityInput,
5588 uint32_t* bufferCountOutput,
5589 uint8_t* buffer);
5590
5591XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerDecodedStringMSFT(
5592 XrSceneMSFT scene,
5593 const XrUuidMSFT* markerId,
5594 uint32_t bufferCapacityInput,
5595 uint32_t* bufferCountOutput,
5596 char* buffer);
5597#endif /* XR_EXTENSION_PROTOTYPES */
5598#endif /* !XR_NO_PROTOTYPES */
5599
5600
5601// XR_ULTRALEAP_hand_tracking_forearm is a preprocessor guard. Do not pass it to API calls.
5602#define XR_ULTRALEAP_hand_tracking_forearm 1
5603
5604#define XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP 27
5605
5606#define XR_ULTRALEAP_hand_tracking_forearm_SPEC_VERSION 1
5607#define XR_ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME "XR_ULTRALEAP_hand_tracking_forearm"
5608
5609typedef enum XrHandForearmJointULTRALEAP {
5610 XR_HAND_FOREARM_JOINT_PALM_ULTRALEAP = 0,
5611 XR_HAND_FOREARM_JOINT_WRIST_ULTRALEAP = 1,
5612 XR_HAND_FOREARM_JOINT_THUMB_METACARPAL_ULTRALEAP = 2,
5613 XR_HAND_FOREARM_JOINT_THUMB_PROXIMAL_ULTRALEAP = 3,
5614 XR_HAND_FOREARM_JOINT_THUMB_DISTAL_ULTRALEAP = 4,
5615 XR_HAND_FOREARM_JOINT_THUMB_TIP_ULTRALEAP = 5,
5616 XR_HAND_FOREARM_JOINT_INDEX_METACARPAL_ULTRALEAP = 6,
5617 XR_HAND_FOREARM_JOINT_INDEX_PROXIMAL_ULTRALEAP = 7,
5618 XR_HAND_FOREARM_JOINT_INDEX_INTERMEDIATE_ULTRALEAP = 8,
5619 XR_HAND_FOREARM_JOINT_INDEX_DISTAL_ULTRALEAP = 9,
5620 XR_HAND_FOREARM_JOINT_INDEX_TIP_ULTRALEAP = 10,
5621 XR_HAND_FOREARM_JOINT_MIDDLE_METACARPAL_ULTRALEAP = 11,
5622 XR_HAND_FOREARM_JOINT_MIDDLE_PROXIMAL_ULTRALEAP = 12,
5623 XR_HAND_FOREARM_JOINT_MIDDLE_INTERMEDIATE_ULTRALEAP = 13,
5624 XR_HAND_FOREARM_JOINT_MIDDLE_DISTAL_ULTRALEAP = 14,
5625 XR_HAND_FOREARM_JOINT_MIDDLE_TIP_ULTRALEAP = 15,
5626 XR_HAND_FOREARM_JOINT_RING_METACARPAL_ULTRALEAP = 16,
5627 XR_HAND_FOREARM_JOINT_RING_PROXIMAL_ULTRALEAP = 17,
5628 XR_HAND_FOREARM_JOINT_RING_INTERMEDIATE_ULTRALEAP = 18,
5629 XR_HAND_FOREARM_JOINT_RING_DISTAL_ULTRALEAP = 19,
5630 XR_HAND_FOREARM_JOINT_RING_TIP_ULTRALEAP = 20,
5631 XR_HAND_FOREARM_JOINT_LITTLE_METACARPAL_ULTRALEAP = 21,
5632 XR_HAND_FOREARM_JOINT_LITTLE_PROXIMAL_ULTRALEAP = 22,
5633 XR_HAND_FOREARM_JOINT_LITTLE_INTERMEDIATE_ULTRALEAP = 23,
5634 XR_HAND_FOREARM_JOINT_LITTLE_DISTAL_ULTRALEAP = 24,
5635 XR_HAND_FOREARM_JOINT_LITTLE_TIP_ULTRALEAP = 25,
5636 XR_HAND_FOREARM_JOINT_ELBOW_ULTRALEAP = 26,
5637 XR_HAND_FOREARM_JOINT_MAX_ENUM_ULTRALEAP = 0x7FFFFFFF
5638} XrHandForearmJointULTRALEAP;
5639
5640
5641// XR_FB_spatial_entity_query is a preprocessor guard. Do not pass it to API calls.
5642#define XR_FB_spatial_entity_query 1
5643#define XR_FB_spatial_entity_query_SPEC_VERSION 1
5644#define XR_FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME "XR_FB_spatial_entity_query"
5645
5646typedef enum XrSpaceQueryActionFB {
5647 XR_SPACE_QUERY_ACTION_LOAD_FB = 0,
5648 XR_SPACE_QUERY_ACTION_MAX_ENUM_FB = 0x7FFFFFFF
5649} XrSpaceQueryActionFB;
5650
5651typedef enum XrSpaceStorageLocationFB {
5652 XR_SPACE_STORAGE_LOCATION_INVALID_FB = 0,
5653 XR_SPACE_STORAGE_LOCATION_LOCAL_FB = 1,
5654 XR_SPACE_STORAGE_LOCATION_CLOUD_FB = 2,
5655 XR_SPACE_STORAGE_LOCATION_MAX_ENUM_FB = 0x7FFFFFFF
5656} XrSpaceStorageLocationFB;
5657typedef struct XR_MAY_ALIAS XrSpaceQueryInfoBaseHeaderFB {
5658 XrStructureType type;
5659 const void* XR_MAY_ALIAS next;
5660} XrSpaceQueryInfoBaseHeaderFB;
5661
5662typedef struct XR_MAY_ALIAS XrSpaceFilterInfoBaseHeaderFB {
5663 XrStructureType type;
5664 const void* XR_MAY_ALIAS next;
5665} XrSpaceFilterInfoBaseHeaderFB;
5666
5667typedef struct XrSpaceQueryInfoFB {
5668 XrStructureType type;
5669 const void* XR_MAY_ALIAS next;
5670 XrSpaceQueryActionFB queryAction;
5671 uint32_t maxResultCount;
5672 XrDuration timeout;
5673 const XrSpaceFilterInfoBaseHeaderFB* filter;
5674 const XrSpaceFilterInfoBaseHeaderFB* excludeFilter;
5675} XrSpaceQueryInfoFB;
5676
5677// XrSpaceStorageLocationFilterInfoFB extends XrSpaceFilterInfoBaseHeaderFB
5678typedef struct XrSpaceStorageLocationFilterInfoFB {
5679 XrStructureType type;
5680 const void* XR_MAY_ALIAS next;
5681 XrSpaceStorageLocationFB location;
5682} XrSpaceStorageLocationFilterInfoFB;
5683
5684typedef struct XrSpaceUuidFilterInfoFB {
5685 XrStructureType type;
5686 const void* XR_MAY_ALIAS next;
5687 uint32_t uuidCount;
5688 XrUuidEXT* uuids;
5689} XrSpaceUuidFilterInfoFB;
5690
5691typedef struct XrSpaceComponentFilterInfoFB {
5692 XrStructureType type;
5693 const void* XR_MAY_ALIAS next;
5694 XrSpaceComponentTypeFB componentType;
5695} XrSpaceComponentFilterInfoFB;
5696
5697typedef struct XrSpaceQueryResultFB {
5698 XrSpace space;
5699 XrUuidEXT uuid;
5700} XrSpaceQueryResultFB;
5701
5702typedef struct XrSpaceQueryResultsFB {
5703 XrStructureType type;
5704 void* XR_MAY_ALIAS next;
5705 uint32_t resultCapacityInput;
5706 uint32_t resultCountOutput;
5707 XrSpaceQueryResultFB* results;
5708} XrSpaceQueryResultsFB;
5709
5710typedef struct XrEventDataSpaceQueryResultsAvailableFB {
5711 XrStructureType type;
5712 const void* XR_MAY_ALIAS next;
5713 XrAsyncRequestIdFB requestId;
5714} XrEventDataSpaceQueryResultsAvailableFB;
5715
5716typedef struct XrEventDataSpaceQueryCompleteFB {
5717 XrStructureType type;
5718 const void* XR_MAY_ALIAS next;
5719 XrAsyncRequestIdFB requestId;
5720 XrResult result;
5721} XrEventDataSpaceQueryCompleteFB;
5722
5723typedef XrResult (XRAPI_PTR *PFN_xrQuerySpacesFB)(XrSession session, const XrSpaceQueryInfoBaseHeaderFB* info, XrAsyncRequestIdFB* requestId);
5724typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceQueryResultsFB)(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB* results);
5725
5726#ifndef XR_NO_PROTOTYPES
5727#ifdef XR_EXTENSION_PROTOTYPES
5728XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpacesFB(
5729 XrSession session,
5730 const XrSpaceQueryInfoBaseHeaderFB* info,
5731 XrAsyncRequestIdFB* requestId);
5732
5733XRAPI_ATTR XrResult XRAPI_CALL xrRetrieveSpaceQueryResultsFB(
5734 XrSession session,
5735 XrAsyncRequestIdFB requestId,
5736 XrSpaceQueryResultsFB* results);
5737#endif /* XR_EXTENSION_PROTOTYPES */
5738#endif /* !XR_NO_PROTOTYPES */
5739
5740
5741// XR_FB_spatial_entity_storage is a preprocessor guard. Do not pass it to API calls.
5742#define XR_FB_spatial_entity_storage 1
5743#define XR_FB_spatial_entity_storage_SPEC_VERSION 1
5744#define XR_FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME "XR_FB_spatial_entity_storage"
5745
5746typedef enum XrSpacePersistenceModeFB {
5747 XR_SPACE_PERSISTENCE_MODE_INVALID_FB = 0,
5748 XR_SPACE_PERSISTENCE_MODE_INDEFINITE_FB = 1,
5749 XR_SPACE_PERSISTENCE_MODE_MAX_ENUM_FB = 0x7FFFFFFF
5750} XrSpacePersistenceModeFB;
5751typedef struct XrSpaceSaveInfoFB {
5752 XrStructureType type;
5753 const void* XR_MAY_ALIAS next;
5754 XrSpace space;
5755 XrSpaceStorageLocationFB location;
5756 XrSpacePersistenceModeFB persistenceMode;
5757} XrSpaceSaveInfoFB;
5758
5759typedef struct XrSpaceEraseInfoFB {
5760 XrStructureType type;
5761 const void* XR_MAY_ALIAS next;
5762 XrSpace space;
5763 XrSpaceStorageLocationFB location;
5764} XrSpaceEraseInfoFB;
5765
5766typedef struct XrEventDataSpaceSaveCompleteFB {
5767 XrStructureType type;
5768 const void* XR_MAY_ALIAS next;
5769 XrAsyncRequestIdFB requestId;
5770 XrResult result;
5771 XrSpace space;
5772 XrUuidEXT uuid;
5773 XrSpaceStorageLocationFB location;
5774} XrEventDataSpaceSaveCompleteFB;
5775
5776typedef struct XrEventDataSpaceEraseCompleteFB {
5777 XrStructureType type;
5778 const void* XR_MAY_ALIAS next;
5779 XrAsyncRequestIdFB requestId;
5780 XrResult result;
5781 XrSpace space;
5782 XrUuidEXT uuid;
5783 XrSpaceStorageLocationFB location;
5784} XrEventDataSpaceEraseCompleteFB;
5785
5786typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceFB)(XrSession session, const XrSpaceSaveInfoFB* info, XrAsyncRequestIdFB* requestId);
5787typedef XrResult (XRAPI_PTR *PFN_xrEraseSpaceFB)(XrSession session, const XrSpaceEraseInfoFB* info, XrAsyncRequestIdFB* requestId);
5788
5789#ifndef XR_NO_PROTOTYPES
5790#ifdef XR_EXTENSION_PROTOTYPES
5791XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceFB(
5792 XrSession session,
5793 const XrSpaceSaveInfoFB* info,
5794 XrAsyncRequestIdFB* requestId);
5795
5796XRAPI_ATTR XrResult XRAPI_CALL xrEraseSpaceFB(
5797 XrSession session,
5798 const XrSpaceEraseInfoFB* info,
5799 XrAsyncRequestIdFB* requestId);
5800#endif /* XR_EXTENSION_PROTOTYPES */
5801#endif /* !XR_NO_PROTOTYPES */
5802
5803
5804// XR_FB_touch_controller_pro is a preprocessor guard. Do not pass it to API calls.
5805#define XR_FB_touch_controller_pro 1
5806#define XR_FB_touch_controller_pro_SPEC_VERSION 1
5807#define XR_FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME "XR_FB_touch_controller_pro"
5808
5809
5810// XR_FB_spatial_entity_sharing is a preprocessor guard. Do not pass it to API calls.
5811#define XR_FB_spatial_entity_sharing 1
5812XR_DEFINE_HANDLE(XrSpaceUserFB)
5813#define XR_FB_spatial_entity_sharing_SPEC_VERSION 1
5814#define XR_FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME "XR_FB_spatial_entity_sharing"
5815typedef struct XrSpaceShareInfoFB {
5816 XrStructureType type;
5817 const void* XR_MAY_ALIAS next;
5818 uint32_t spaceCount;
5819 XrSpace* spaces;
5820 uint32_t userCount;
5821 XrSpaceUserFB* users;
5822} XrSpaceShareInfoFB;
5823
5824typedef struct XrEventDataSpaceShareCompleteFB {
5825 XrStructureType type;
5826 const void* XR_MAY_ALIAS next;
5827 XrAsyncRequestIdFB requestId;
5828 XrResult result;
5829} XrEventDataSpaceShareCompleteFB;
5830
5831typedef XrResult (XRAPI_PTR *PFN_xrShareSpacesFB)(XrSession session, const XrSpaceShareInfoFB* info, XrAsyncRequestIdFB* requestId);
5832
5833#ifndef XR_NO_PROTOTYPES
5834#ifdef XR_EXTENSION_PROTOTYPES
5835XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesFB(
5836 XrSession session,
5837 const XrSpaceShareInfoFB* info,
5838 XrAsyncRequestIdFB* requestId);
5839#endif /* XR_EXTENSION_PROTOTYPES */
5840#endif /* !XR_NO_PROTOTYPES */
5841
5842
5843// XR_FB_space_warp is a preprocessor guard. Do not pass it to API calls.
5844#define XR_FB_space_warp 1
5845#define XR_FB_space_warp_SPEC_VERSION 2
5846#define XR_FB_SPACE_WARP_EXTENSION_NAME "XR_FB_space_warp"
5847typedef XrFlags64 XrCompositionLayerSpaceWarpInfoFlagsFB;
5848
5849// Flag bits for XrCompositionLayerSpaceWarpInfoFlagsFB
5850static const XrCompositionLayerSpaceWarpInfoFlagsFB XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB = 0x00000001;
5851
5852// XrCompositionLayerSpaceWarpInfoFB extends XrCompositionLayerProjectionView
5853typedef struct XrCompositionLayerSpaceWarpInfoFB {
5854 XrStructureType type;
5855 const void* XR_MAY_ALIAS next;
5856 XrCompositionLayerSpaceWarpInfoFlagsFB layerFlags;
5857 XrSwapchainSubImage motionVectorSubImage;
5858 XrPosef appSpaceDeltaPose;
5859 XrSwapchainSubImage depthSubImage;
5860 float minDepth;
5861 float maxDepth;
5862 float nearZ;
5863 float farZ;
5864} XrCompositionLayerSpaceWarpInfoFB;
5865
5866// XrSystemSpaceWarpPropertiesFB extends XrSystemProperties
5867typedef struct XrSystemSpaceWarpPropertiesFB {
5868 XrStructureType type;
5869 void* XR_MAY_ALIAS next;
5870 uint32_t recommendedMotionVectorImageRectWidth;
5871 uint32_t recommendedMotionVectorImageRectHeight;
5872} XrSystemSpaceWarpPropertiesFB;
5873
5874
5875
5876// XR_FB_haptic_amplitude_envelope is a preprocessor guard. Do not pass it to API calls.
5877#define XR_FB_haptic_amplitude_envelope 1
5878
5879#define XR_MAX_HAPTIC_AMPLITUDE_ENVELOPE_SAMPLES_FB 4000u
5880
5881#define XR_FB_haptic_amplitude_envelope_SPEC_VERSION 1
5882#define XR_FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME "XR_FB_haptic_amplitude_envelope"
5883typedef struct XrHapticAmplitudeEnvelopeVibrationFB {
5884 XrStructureType type;
5885 const void* XR_MAY_ALIAS next;
5886 XrDuration duration;
5887 uint32_t amplitudeCount;
5888 const float* amplitudes;
5889} XrHapticAmplitudeEnvelopeVibrationFB;
5890
5891
5892
5893// XR_FB_scene is a preprocessor guard. Do not pass it to API calls.
5894#define XR_FB_scene 1
5895#define XR_FB_scene_SPEC_VERSION 4
5896#define XR_FB_SCENE_EXTENSION_NAME "XR_FB_scene"
5897typedef XrFlags64 XrSemanticLabelsSupportFlagsFB;
5898
5899// Flag bits for XrSemanticLabelsSupportFlagsFB
5900static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_MULTIPLE_SEMANTIC_LABELS_BIT_FB = 0x00000001;
5901static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_DESK_TO_TABLE_MIGRATION_BIT_FB = 0x00000002;
5902static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_INVISIBLE_WALL_FACE_BIT_FB = 0x00000004;
5903
5904typedef XrExtent3Df XrExtent3DfFB;
5905
5906typedef struct XrOffset3DfFB {
5907 float x;
5908 float y;
5909 float z;
5910} XrOffset3DfFB;
5911
5912typedef struct XrRect3DfFB {
5913 XrOffset3DfFB offset;
5914 XrExtent3DfFB extent;
5915} XrRect3DfFB;
5916
5917typedef struct XrSemanticLabelsFB {
5918 XrStructureType type;
5919 const void* XR_MAY_ALIAS next;
5920 uint32_t bufferCapacityInput;
5921 uint32_t bufferCountOutput;
5922 char* buffer;
5923} XrSemanticLabelsFB;
5924
5925typedef struct XrRoomLayoutFB {
5926 XrStructureType type;
5927 const void* XR_MAY_ALIAS next;
5928 XrUuidEXT floorUuid;
5929 XrUuidEXT ceilingUuid;
5930 uint32_t wallUuidCapacityInput;
5931 uint32_t wallUuidCountOutput;
5932 XrUuidEXT* wallUuids;
5933} XrRoomLayoutFB;
5934
5935typedef struct XrBoundary2DFB {
5936 XrStructureType type;
5937 const void* XR_MAY_ALIAS next;
5938 uint32_t vertexCapacityInput;
5939 uint32_t vertexCountOutput;
5940 XrVector2f* vertices;
5941} XrBoundary2DFB;
5942
5943typedef struct XrSemanticLabelsSupportInfoFB {
5944 XrStructureType type;
5945 const void* XR_MAY_ALIAS next;
5946 XrSemanticLabelsSupportFlagsFB flags;
5947 const char* recognizedLabels;
5948} XrSemanticLabelsSupportInfoFB;
5949
5950typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundingBox2DFB)(XrSession session, XrSpace space, XrRect2Df* boundingBox2DOutput);
5951typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundingBox3DFB)(XrSession session, XrSpace space, XrRect3DfFB* boundingBox3DOutput);
5952typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceSemanticLabelsFB)(XrSession session, XrSpace space, XrSemanticLabelsFB* semanticLabelsOutput);
5953typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundary2DFB)(XrSession session, XrSpace space, XrBoundary2DFB* boundary2DOutput);
5954typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceRoomLayoutFB)(XrSession session, XrSpace space, XrRoomLayoutFB* roomLayoutOutput);
5955
5956#ifndef XR_NO_PROTOTYPES
5957#ifdef XR_EXTENSION_PROTOTYPES
5958XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox2DFB(
5959 XrSession session,
5960 XrSpace space,
5961 XrRect2Df* boundingBox2DOutput);
5962
5963XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox3DFB(
5964 XrSession session,
5965 XrSpace space,
5966 XrRect3DfFB* boundingBox3DOutput);
5967
5968XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceSemanticLabelsFB(
5969 XrSession session,
5970 XrSpace space,
5971 XrSemanticLabelsFB* semanticLabelsOutput);
5972
5973XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundary2DFB(
5974 XrSession session,
5975 XrSpace space,
5976 XrBoundary2DFB* boundary2DOutput);
5977
5978XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceRoomLayoutFB(
5979 XrSession session,
5980 XrSpace space,
5981 XrRoomLayoutFB* roomLayoutOutput);
5982#endif /* XR_EXTENSION_PROTOTYPES */
5983#endif /* !XR_NO_PROTOTYPES */
5984
5985
5986// XR_EXT_palm_pose is a preprocessor guard. Do not pass it to API calls.
5987#define XR_EXT_palm_pose 1
5988#define XR_EXT_palm_pose_SPEC_VERSION 3
5989#define XR_EXT_PALM_POSE_EXTENSION_NAME "XR_EXT_palm_pose"
5990
5991
5992// XR_ALMALENCE_digital_lens_control is a preprocessor guard. Do not pass it to API calls.
5993#define XR_ALMALENCE_digital_lens_control 1
5994#define XR_ALMALENCE_digital_lens_control_SPEC_VERSION 1
5995#define XR_ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME "XR_ALMALENCE_digital_lens_control"
5996typedef XrFlags64 XrDigitalLensControlFlagsALMALENCE;
5997
5998// Flag bits for XrDigitalLensControlFlagsALMALENCE
5999static const XrDigitalLensControlFlagsALMALENCE XR_DIGITAL_LENS_CONTROL_PROCESSING_DISABLE_BIT_ALMALENCE = 0x00000001;
6000
6001typedef struct XrDigitalLensControlALMALENCE {
6002 XrStructureType type;
6003 const void* XR_MAY_ALIAS next;
6004 XrDigitalLensControlFlagsALMALENCE flags;
6005} XrDigitalLensControlALMALENCE;
6006
6007typedef XrResult (XRAPI_PTR *PFN_xrSetDigitalLensControlALMALENCE)(XrSession session, const XrDigitalLensControlALMALENCE* digitalLensControl);
6008
6009#ifndef XR_NO_PROTOTYPES
6010#ifdef XR_EXTENSION_PROTOTYPES
6011XRAPI_ATTR XrResult XRAPI_CALL xrSetDigitalLensControlALMALENCE(
6012 XrSession session,
6013 const XrDigitalLensControlALMALENCE* digitalLensControl);
6014#endif /* XR_EXTENSION_PROTOTYPES */
6015#endif /* !XR_NO_PROTOTYPES */
6016
6017
6018// XR_FB_scene_capture is a preprocessor guard. Do not pass it to API calls.
6019#define XR_FB_scene_capture 1
6020#define XR_FB_scene_capture_SPEC_VERSION 1
6021#define XR_FB_SCENE_CAPTURE_EXTENSION_NAME "XR_FB_scene_capture"
6022typedef struct XrEventDataSceneCaptureCompleteFB {
6023 XrStructureType type;
6024 const void* XR_MAY_ALIAS next;
6025 XrAsyncRequestIdFB requestId;
6026 XrResult result;
6027} XrEventDataSceneCaptureCompleteFB;
6028
6029typedef struct XrSceneCaptureRequestInfoFB {
6030 XrStructureType type;
6031 const void* XR_MAY_ALIAS next;
6032 uint32_t requestByteCount;
6033 const char* request;
6034} XrSceneCaptureRequestInfoFB;
6035
6036typedef XrResult (XRAPI_PTR *PFN_xrRequestSceneCaptureFB)(XrSession session, const XrSceneCaptureRequestInfoFB* info, XrAsyncRequestIdFB* requestId);
6037
6038#ifndef XR_NO_PROTOTYPES
6039#ifdef XR_EXTENSION_PROTOTYPES
6040XRAPI_ATTR XrResult XRAPI_CALL xrRequestSceneCaptureFB(
6041 XrSession session,
6042 const XrSceneCaptureRequestInfoFB* info,
6043 XrAsyncRequestIdFB* requestId);
6044#endif /* XR_EXTENSION_PROTOTYPES */
6045#endif /* !XR_NO_PROTOTYPES */
6046
6047
6048// XR_FB_spatial_entity_container is a preprocessor guard. Do not pass it to API calls.
6049#define XR_FB_spatial_entity_container 1
6050#define XR_FB_spatial_entity_container_SPEC_VERSION 2
6051#define XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME "XR_FB_spatial_entity_container"
6052typedef struct XrSpaceContainerFB {
6053 XrStructureType type;
6054 const void* XR_MAY_ALIAS next;
6055 uint32_t uuidCapacityInput;
6056 uint32_t uuidCountOutput;
6057 XrUuidEXT* uuids;
6058} XrSpaceContainerFB;
6059
6060typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceContainerFB)(XrSession session, XrSpace space, XrSpaceContainerFB* spaceContainerOutput);
6061
6062#ifndef XR_NO_PROTOTYPES
6063#ifdef XR_EXTENSION_PROTOTYPES
6064XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceContainerFB(
6065 XrSession session,
6066 XrSpace space,
6067 XrSpaceContainerFB* spaceContainerOutput);
6068#endif /* XR_EXTENSION_PROTOTYPES */
6069#endif /* !XR_NO_PROTOTYPES */
6070
6071
6072// XR_META_foveation_eye_tracked is a preprocessor guard. Do not pass it to API calls.
6073#define XR_META_foveation_eye_tracked 1
6074#define XR_FOVEATION_CENTER_SIZE_META 2
6075#define XR_META_foveation_eye_tracked_SPEC_VERSION 1
6076#define XR_META_FOVEATION_EYE_TRACKED_EXTENSION_NAME "XR_META_foveation_eye_tracked"
6077typedef XrFlags64 XrFoveationEyeTrackedProfileCreateFlagsMETA;
6078
6079// Flag bits for XrFoveationEyeTrackedProfileCreateFlagsMETA
6080
6081typedef XrFlags64 XrFoveationEyeTrackedStateFlagsMETA;
6082
6083// Flag bits for XrFoveationEyeTrackedStateFlagsMETA
6084static const XrFoveationEyeTrackedStateFlagsMETA XR_FOVEATION_EYE_TRACKED_STATE_VALID_BIT_META = 0x00000001;
6085
6086// XrFoveationEyeTrackedProfileCreateInfoMETA extends XrFoveationLevelProfileCreateInfoFB
6087typedef struct XrFoveationEyeTrackedProfileCreateInfoMETA {
6088 XrStructureType type;
6089 const void* XR_MAY_ALIAS next;
6090 XrFoveationEyeTrackedProfileCreateFlagsMETA flags;
6091} XrFoveationEyeTrackedProfileCreateInfoMETA;
6092
6093typedef struct XrFoveationEyeTrackedStateMETA {
6094 XrStructureType type;
6095 void* XR_MAY_ALIAS next;
6096 XrVector2f foveationCenter[XR_FOVEATION_CENTER_SIZE_META];
6097 XrFoveationEyeTrackedStateFlagsMETA flags;
6098} XrFoveationEyeTrackedStateMETA;
6099
6100// XrSystemFoveationEyeTrackedPropertiesMETA extends XrSystemProperties
6101typedef struct XrSystemFoveationEyeTrackedPropertiesMETA {
6102 XrStructureType type;
6103 void* XR_MAY_ALIAS next;
6104 XrBool32 supportsFoveationEyeTracked;
6105} XrSystemFoveationEyeTrackedPropertiesMETA;
6106
6107typedef XrResult (XRAPI_PTR *PFN_xrGetFoveationEyeTrackedStateMETA)(XrSession session, XrFoveationEyeTrackedStateMETA* foveationState);
6108
6109#ifndef XR_NO_PROTOTYPES
6110#ifdef XR_EXTENSION_PROTOTYPES
6111XRAPI_ATTR XrResult XRAPI_CALL xrGetFoveationEyeTrackedStateMETA(
6112 XrSession session,
6113 XrFoveationEyeTrackedStateMETA* foveationState);
6114#endif /* XR_EXTENSION_PROTOTYPES */
6115#endif /* !XR_NO_PROTOTYPES */
6116
6117
6118// XR_FB_face_tracking is a preprocessor guard. Do not pass it to API calls.
6119#define XR_FB_face_tracking 1
6120
6121#define XR_FACE_EXPRESSSION_SET_DEFAULT_FB XR_FACE_EXPRESSION_SET_DEFAULT_FB
6122
6123XR_DEFINE_HANDLE(XrFaceTrackerFB)
6124#define XR_FB_face_tracking_SPEC_VERSION 1
6125#define XR_FB_FACE_TRACKING_EXTENSION_NAME "XR_FB_face_tracking"
6126
6127typedef enum XrFaceExpressionFB {
6128 XR_FACE_EXPRESSION_BROW_LOWERER_L_FB = 0,
6129 XR_FACE_EXPRESSION_BROW_LOWERER_R_FB = 1,
6130 XR_FACE_EXPRESSION_CHEEK_PUFF_L_FB = 2,
6131 XR_FACE_EXPRESSION_CHEEK_PUFF_R_FB = 3,
6132 XR_FACE_EXPRESSION_CHEEK_RAISER_L_FB = 4,
6133 XR_FACE_EXPRESSION_CHEEK_RAISER_R_FB = 5,
6134 XR_FACE_EXPRESSION_CHEEK_SUCK_L_FB = 6,
6135 XR_FACE_EXPRESSION_CHEEK_SUCK_R_FB = 7,
6136 XR_FACE_EXPRESSION_CHIN_RAISER_B_FB = 8,
6137 XR_FACE_EXPRESSION_CHIN_RAISER_T_FB = 9,
6138 XR_FACE_EXPRESSION_DIMPLER_L_FB = 10,
6139 XR_FACE_EXPRESSION_DIMPLER_R_FB = 11,
6140 XR_FACE_EXPRESSION_EYES_CLOSED_L_FB = 12,
6141 XR_FACE_EXPRESSION_EYES_CLOSED_R_FB = 13,
6142 XR_FACE_EXPRESSION_EYES_LOOK_DOWN_L_FB = 14,
6143 XR_FACE_EXPRESSION_EYES_LOOK_DOWN_R_FB = 15,
6144 XR_FACE_EXPRESSION_EYES_LOOK_LEFT_L_FB = 16,
6145 XR_FACE_EXPRESSION_EYES_LOOK_LEFT_R_FB = 17,
6146 XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_L_FB = 18,
6147 XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_R_FB = 19,
6148 XR_FACE_EXPRESSION_EYES_LOOK_UP_L_FB = 20,
6149 XR_FACE_EXPRESSION_EYES_LOOK_UP_R_FB = 21,
6150 XR_FACE_EXPRESSION_INNER_BROW_RAISER_L_FB = 22,
6151 XR_FACE_EXPRESSION_INNER_BROW_RAISER_R_FB = 23,
6152 XR_FACE_EXPRESSION_JAW_DROP_FB = 24,
6153 XR_FACE_EXPRESSION_JAW_SIDEWAYS_LEFT_FB = 25,
6154 XR_FACE_EXPRESSION_JAW_SIDEWAYS_RIGHT_FB = 26,
6155 XR_FACE_EXPRESSION_JAW_THRUST_FB = 27,
6156 XR_FACE_EXPRESSION_LID_TIGHTENER_L_FB = 28,
6157 XR_FACE_EXPRESSION_LID_TIGHTENER_R_FB = 29,
6158 XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_L_FB = 30,
6159 XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_R_FB = 31,
6160 XR_FACE_EXPRESSION_LIP_CORNER_PULLER_L_FB = 32,
6161 XR_FACE_EXPRESSION_LIP_CORNER_PULLER_R_FB = 33,
6162 XR_FACE_EXPRESSION_LIP_FUNNELER_LB_FB = 34,
6163 XR_FACE_EXPRESSION_LIP_FUNNELER_LT_FB = 35,
6164 XR_FACE_EXPRESSION_LIP_FUNNELER_RB_FB = 36,
6165 XR_FACE_EXPRESSION_LIP_FUNNELER_RT_FB = 37,
6166 XR_FACE_EXPRESSION_LIP_PRESSOR_L_FB = 38,
6167 XR_FACE_EXPRESSION_LIP_PRESSOR_R_FB = 39,
6168 XR_FACE_EXPRESSION_LIP_PUCKER_L_FB = 40,
6169 XR_FACE_EXPRESSION_LIP_PUCKER_R_FB = 41,
6170 XR_FACE_EXPRESSION_LIP_STRETCHER_L_FB = 42,
6171 XR_FACE_EXPRESSION_LIP_STRETCHER_R_FB = 43,
6172 XR_FACE_EXPRESSION_LIP_SUCK_LB_FB = 44,
6173 XR_FACE_EXPRESSION_LIP_SUCK_LT_FB = 45,
6174 XR_FACE_EXPRESSION_LIP_SUCK_RB_FB = 46,
6175 XR_FACE_EXPRESSION_LIP_SUCK_RT_FB = 47,
6176 XR_FACE_EXPRESSION_LIP_TIGHTENER_L_FB = 48,
6177 XR_FACE_EXPRESSION_LIP_TIGHTENER_R_FB = 49,
6178 XR_FACE_EXPRESSION_LIPS_TOWARD_FB = 50,
6179 XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_L_FB = 51,
6180 XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_R_FB = 52,
6181 XR_FACE_EXPRESSION_MOUTH_LEFT_FB = 53,
6182 XR_FACE_EXPRESSION_MOUTH_RIGHT_FB = 54,
6183 XR_FACE_EXPRESSION_NOSE_WRINKLER_L_FB = 55,
6184 XR_FACE_EXPRESSION_NOSE_WRINKLER_R_FB = 56,
6185 XR_FACE_EXPRESSION_OUTER_BROW_RAISER_L_FB = 57,
6186 XR_FACE_EXPRESSION_OUTER_BROW_RAISER_R_FB = 58,
6187 XR_FACE_EXPRESSION_UPPER_LID_RAISER_L_FB = 59,
6188 XR_FACE_EXPRESSION_UPPER_LID_RAISER_R_FB = 60,
6189 XR_FACE_EXPRESSION_UPPER_LIP_RAISER_L_FB = 61,
6190 XR_FACE_EXPRESSION_UPPER_LIP_RAISER_R_FB = 62,
6191 XR_FACE_EXPRESSION_COUNT_FB = 63,
6192 XR_FACE_EXPRESSION_MAX_ENUM_FB = 0x7FFFFFFF
6193} XrFaceExpressionFB;
6194
6195typedef enum XrFaceExpressionSetFB {
6196 XR_FACE_EXPRESSION_SET_DEFAULT_FB = 0,
6197 XR_FACE_EXPRESSION_SET_MAX_ENUM_FB = 0x7FFFFFFF
6198} XrFaceExpressionSetFB;
6199
6200typedef enum XrFaceConfidenceFB {
6201 XR_FACE_CONFIDENCE_LOWER_FACE_FB = 0,
6202 XR_FACE_CONFIDENCE_UPPER_FACE_FB = 1,
6203 XR_FACE_CONFIDENCE_COUNT_FB = 2,
6204 XR_FACE_CONFIDENCE_MAX_ENUM_FB = 0x7FFFFFFF
6205} XrFaceConfidenceFB;
6206// XrSystemFaceTrackingPropertiesFB extends XrSystemProperties
6207typedef struct XrSystemFaceTrackingPropertiesFB {
6208 XrStructureType type;
6209 void* XR_MAY_ALIAS next;
6210 XrBool32 supportsFaceTracking;
6211} XrSystemFaceTrackingPropertiesFB;
6212
6213typedef struct XrFaceTrackerCreateInfoFB {
6214 XrStructureType type;
6215 const void* XR_MAY_ALIAS next;
6216 XrFaceExpressionSetFB faceExpressionSet;
6217} XrFaceTrackerCreateInfoFB;
6218
6219typedef struct XrFaceExpressionInfoFB {
6220 XrStructureType type;
6221 const void* XR_MAY_ALIAS next;
6222 XrTime time;
6223} XrFaceExpressionInfoFB;
6224
6225typedef struct XrFaceExpressionStatusFB {
6226 XrBool32 isValid;
6227 XrBool32 isEyeFollowingBlendshapesValid;
6228} XrFaceExpressionStatusFB;
6229
6230typedef struct XrFaceExpressionWeightsFB {
6231 XrStructureType type;
6232 void* XR_MAY_ALIAS next;
6233 uint32_t weightCount;
6234 float* weights;
6235 uint32_t confidenceCount;
6236 float* confidences;
6237 XrFaceExpressionStatusFB status;
6238 XrTime time;
6239} XrFaceExpressionWeightsFB;
6240
6241typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTrackerFB)(XrSession session, const XrFaceTrackerCreateInfoFB* createInfo, XrFaceTrackerFB* faceTracker);
6242typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTrackerFB)(XrFaceTrackerFB faceTracker);
6243typedef XrResult (XRAPI_PTR *PFN_xrGetFaceExpressionWeightsFB)(XrFaceTrackerFB faceTracker, const XrFaceExpressionInfoFB* expressionInfo, XrFaceExpressionWeightsFB* expressionWeights);
6244
6245#ifndef XR_NO_PROTOTYPES
6246#ifdef XR_EXTENSION_PROTOTYPES
6247XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTrackerFB(
6248 XrSession session,
6249 const XrFaceTrackerCreateInfoFB* createInfo,
6250 XrFaceTrackerFB* faceTracker);
6251
6252XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTrackerFB(
6253 XrFaceTrackerFB faceTracker);
6254
6255XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeightsFB(
6256 XrFaceTrackerFB faceTracker,
6257 const XrFaceExpressionInfoFB* expressionInfo,
6258 XrFaceExpressionWeightsFB* expressionWeights);
6259#endif /* XR_EXTENSION_PROTOTYPES */
6260#endif /* !XR_NO_PROTOTYPES */
6261
6262
6263// XR_FB_eye_tracking_social is a preprocessor guard. Do not pass it to API calls.
6264#define XR_FB_eye_tracking_social 1
6265XR_DEFINE_HANDLE(XrEyeTrackerFB)
6266#define XR_FB_eye_tracking_social_SPEC_VERSION 1
6267#define XR_FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME "XR_FB_eye_tracking_social"
6268
6269typedef enum XrEyePositionFB {
6270 XR_EYE_POSITION_LEFT_FB = 0,
6271 XR_EYE_POSITION_RIGHT_FB = 1,
6272 XR_EYE_POSITION_COUNT_FB = 2,
6273 XR_EYE_POSITION_MAX_ENUM_FB = 0x7FFFFFFF
6274} XrEyePositionFB;
6275typedef struct XrEyeGazeFB {
6276 XrBool32 isValid;
6277 XrPosef gazePose;
6278 float gazeConfidence;
6279} XrEyeGazeFB;
6280
6281typedef struct XrEyeTrackerCreateInfoFB {
6282 XrStructureType type;
6283 const void* XR_MAY_ALIAS next;
6284} XrEyeTrackerCreateInfoFB;
6285
6286typedef struct XrEyeGazesInfoFB {
6287 XrStructureType type;
6288 const void* XR_MAY_ALIAS next;
6289 XrSpace baseSpace;
6290 XrTime time;
6291} XrEyeGazesInfoFB;
6292
6293// XrSystemEyeTrackingPropertiesFB extends XrSystemProperties
6294typedef struct XrSystemEyeTrackingPropertiesFB {
6295 XrStructureType type;
6296 void* XR_MAY_ALIAS next;
6297 XrBool32 supportsEyeTracking;
6298} XrSystemEyeTrackingPropertiesFB;
6299
6300typedef struct XrEyeGazesFB {
6301 XrStructureType type;
6302 void* XR_MAY_ALIAS next;
6303 XrEyeGazeFB gaze[XR_EYE_POSITION_COUNT_FB];
6304 XrTime time;
6305} XrEyeGazesFB;
6306
6307typedef XrResult (XRAPI_PTR *PFN_xrCreateEyeTrackerFB)(XrSession session, const XrEyeTrackerCreateInfoFB* createInfo, XrEyeTrackerFB* eyeTracker);
6308typedef XrResult (XRAPI_PTR *PFN_xrDestroyEyeTrackerFB)(XrEyeTrackerFB eyeTracker);
6309typedef XrResult (XRAPI_PTR *PFN_xrGetEyeGazesFB)(XrEyeTrackerFB eyeTracker, const XrEyeGazesInfoFB* gazeInfo, XrEyeGazesFB* eyeGazes);
6310
6311#ifndef XR_NO_PROTOTYPES
6312#ifdef XR_EXTENSION_PROTOTYPES
6313XRAPI_ATTR XrResult XRAPI_CALL xrCreateEyeTrackerFB(
6314 XrSession session,
6315 const XrEyeTrackerCreateInfoFB* createInfo,
6316 XrEyeTrackerFB* eyeTracker);
6317
6318XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEyeTrackerFB(
6319 XrEyeTrackerFB eyeTracker);
6320
6321XRAPI_ATTR XrResult XRAPI_CALL xrGetEyeGazesFB(
6322 XrEyeTrackerFB eyeTracker,
6323 const XrEyeGazesInfoFB* gazeInfo,
6324 XrEyeGazesFB* eyeGazes);
6325#endif /* XR_EXTENSION_PROTOTYPES */
6326#endif /* !XR_NO_PROTOTYPES */
6327
6328
6329// XR_FB_passthrough_keyboard_hands is a preprocessor guard. Do not pass it to API calls.
6330#define XR_FB_passthrough_keyboard_hands 1
6331#define XR_FB_passthrough_keyboard_hands_SPEC_VERSION 2
6332#define XR_FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME "XR_FB_passthrough_keyboard_hands"
6333typedef struct XrPassthroughKeyboardHandsIntensityFB {
6334 XrStructureType type;
6335 const void* XR_MAY_ALIAS next;
6336 float leftHandIntensity;
6337 float rightHandIntensity;
6338} XrPassthroughKeyboardHandsIntensityFB;
6339
6340typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerSetKeyboardHandsIntensityFB)(XrPassthroughLayerFB layer, const XrPassthroughKeyboardHandsIntensityFB* intensity);
6341
6342#ifndef XR_NO_PROTOTYPES
6343#ifdef XR_EXTENSION_PROTOTYPES
6344XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetKeyboardHandsIntensityFB(
6345 XrPassthroughLayerFB layer,
6346 const XrPassthroughKeyboardHandsIntensityFB* intensity);
6347#endif /* XR_EXTENSION_PROTOTYPES */
6348#endif /* !XR_NO_PROTOTYPES */
6349
6350
6351// XR_FB_composition_layer_settings is a preprocessor guard. Do not pass it to API calls.
6352#define XR_FB_composition_layer_settings 1
6353#define XR_FB_composition_layer_settings_SPEC_VERSION 1
6354#define XR_FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME "XR_FB_composition_layer_settings"
6355typedef XrFlags64 XrCompositionLayerSettingsFlagsFB;
6356
6357// Flag bits for XrCompositionLayerSettingsFlagsFB
6358static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB = 0x00000001;
6359static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB = 0x00000002;
6360static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB = 0x00000004;
6361static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB = 0x00000008;
6362static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_AUTO_LAYER_FILTER_BIT_META = 0x00000020;
6363
6364// XrCompositionLayerSettingsFB extends XrCompositionLayerBaseHeader
6365typedef struct XrCompositionLayerSettingsFB {
6366 XrStructureType type;
6367 const void* XR_MAY_ALIAS next;
6368 XrCompositionLayerSettingsFlagsFB layerFlags;
6369} XrCompositionLayerSettingsFB;
6370
6371
6372
6373// XR_FB_touch_controller_proximity is a preprocessor guard. Do not pass it to API calls.
6374#define XR_FB_touch_controller_proximity 1
6375#define XR_FB_touch_controller_proximity_SPEC_VERSION 1
6376#define XR_FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME "XR_FB_touch_controller_proximity"
6377
6378
6379// XR_FB_haptic_pcm is a preprocessor guard. Do not pass it to API calls.
6380#define XR_FB_haptic_pcm 1
6381
6382#define XR_MAX_HAPTIC_PCM_BUFFER_SIZE_FB 4000
6383
6384#define XR_FB_haptic_pcm_SPEC_VERSION 1
6385#define XR_FB_HAPTIC_PCM_EXTENSION_NAME "XR_FB_haptic_pcm"
6386typedef struct XrHapticPcmVibrationFB {
6387 XrStructureType type;
6388 const void* XR_MAY_ALIAS next;
6389 uint32_t bufferSize;
6390 const float* buffer;
6391 float sampleRate;
6392 XrBool32 append;
6393 uint32_t* samplesConsumed;
6394} XrHapticPcmVibrationFB;
6395
6396typedef struct XrDevicePcmSampleRateStateFB {
6397 XrStructureType type;
6398 void* XR_MAY_ALIAS next;
6399 float sampleRate;
6400} XrDevicePcmSampleRateStateFB;
6401
6402typedef XrDevicePcmSampleRateStateFB XrDevicePcmSampleRateGetInfoFB;
6403
6404typedef XrResult (XRAPI_PTR *PFN_xrGetDeviceSampleRateFB)(XrSession session, const XrHapticActionInfo* hapticActionInfo, XrDevicePcmSampleRateGetInfoFB* deviceSampleRate);
6405
6406#ifndef XR_NO_PROTOTYPES
6407#ifdef XR_EXTENSION_PROTOTYPES
6408XRAPI_ATTR XrResult XRAPI_CALL xrGetDeviceSampleRateFB(
6409 XrSession session,
6410 const XrHapticActionInfo* hapticActionInfo,
6411 XrDevicePcmSampleRateGetInfoFB* deviceSampleRate);
6412#endif /* XR_EXTENSION_PROTOTYPES */
6413#endif /* !XR_NO_PROTOTYPES */
6414
6415
6416// XR_EXT_frame_synthesis is a preprocessor guard. Do not pass it to API calls.
6417#define XR_EXT_frame_synthesis 1
6418#define XR_EXT_frame_synthesis_SPEC_VERSION 1
6419#define XR_EXT_FRAME_SYNTHESIS_EXTENSION_NAME "XR_EXT_frame_synthesis"
6420typedef XrFlags64 XrFrameSynthesisInfoFlagsEXT;
6421
6422// Flag bits for XrFrameSynthesisInfoFlagsEXT
6423static const XrFrameSynthesisInfoFlagsEXT XR_FRAME_SYNTHESIS_INFO_USE_2D_MOTION_VECTOR_BIT_EXT = 0x00000001;
6424static const XrFrameSynthesisInfoFlagsEXT XR_FRAME_SYNTHESIS_INFO_REQUEST_RELAXED_FRAME_INTERVAL_BIT_EXT = 0x00000002;
6425
6426// XrFrameSynthesisInfoEXT extends XrCompositionLayerProjectionView
6427typedef struct XrFrameSynthesisInfoEXT {
6428 XrStructureType type;
6429 const void* XR_MAY_ALIAS next;
6430 XrFrameSynthesisInfoFlagsEXT layerFlags;
6431 XrSwapchainSubImage motionVectorSubImage;
6432 XrVector4f motionVectorScale;
6433 XrVector4f motionVectorOffset;
6434 XrPosef appSpaceDeltaPose;
6435 XrSwapchainSubImage depthSubImage;
6436 float minDepth;
6437 float maxDepth;
6438 float nearZ;
6439 float farZ;
6440} XrFrameSynthesisInfoEXT;
6441
6442// XrFrameSynthesisConfigViewEXT extends XrViewConfigurationView
6443typedef struct XrFrameSynthesisConfigViewEXT {
6444 XrStructureType type;
6445 void* XR_MAY_ALIAS next;
6446 uint32_t recommendedMotionVectorImageRectWidth;
6447 uint32_t recommendedMotionVectorImageRectHeight;
6448} XrFrameSynthesisConfigViewEXT;
6449
6450
6451
6452// XR_FB_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls.
6453#define XR_FB_composition_layer_depth_test 1
6454#define XR_FB_composition_layer_depth_test_SPEC_VERSION 1
6455#define XR_FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_FB_composition_layer_depth_test"
6456
6457typedef enum XrCompareOpFB {
6458 XR_COMPARE_OP_NEVER_FB = 0,
6459 XR_COMPARE_OP_LESS_FB = 1,
6460 XR_COMPARE_OP_EQUAL_FB = 2,
6461 XR_COMPARE_OP_LESS_OR_EQUAL_FB = 3,
6462 XR_COMPARE_OP_GREATER_FB = 4,
6463 XR_COMPARE_OP_NOT_EQUAL_FB = 5,
6464 XR_COMPARE_OP_GREATER_OR_EQUAL_FB = 6,
6465 XR_COMPARE_OP_ALWAYS_FB = 7,
6466 XR_COMPARE_OP_MAX_ENUM_FB = 0x7FFFFFFF
6467} XrCompareOpFB;
6468// XrCompositionLayerDepthTestFB extends XrCompositionLayerBaseHeader
6469typedef struct XrCompositionLayerDepthTestFB {
6470 XrStructureType type;
6471 const void* XR_MAY_ALIAS next;
6472 XrBool32 depthMask;
6473 XrCompareOpFB compareOp;
6474} XrCompositionLayerDepthTestFB;
6475
6476
6477
6478// XR_META_local_dimming is a preprocessor guard. Do not pass it to API calls.
6479#define XR_META_local_dimming 1
6480#define XR_META_local_dimming_SPEC_VERSION 1
6481#define XR_META_LOCAL_DIMMING_EXTENSION_NAME "XR_META_local_dimming"
6482
6483typedef enum XrLocalDimmingModeMETA {
6484 XR_LOCAL_DIMMING_MODE_OFF_META = 0,
6485 XR_LOCAL_DIMMING_MODE_ON_META = 1,
6486 XR_LOCAL_DIMMING_MODE_MAX_ENUM_META = 0x7FFFFFFF
6487} XrLocalDimmingModeMETA;
6488// XrLocalDimmingFrameEndInfoMETA extends XrFrameEndInfo
6489typedef struct XrLocalDimmingFrameEndInfoMETA {
6490 XrStructureType type;
6491 const void* XR_MAY_ALIAS next;
6492 XrLocalDimmingModeMETA localDimmingMode;
6493} XrLocalDimmingFrameEndInfoMETA;
6494
6495
6496
6497// XR_META_passthrough_preferences is a preprocessor guard. Do not pass it to API calls.
6498#define XR_META_passthrough_preferences 1
6499#define XR_META_passthrough_preferences_SPEC_VERSION 1
6500#define XR_META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME "XR_META_passthrough_preferences"
6501typedef XrFlags64 XrPassthroughPreferenceFlagsMETA;
6502
6503// Flag bits for XrPassthroughPreferenceFlagsMETA
6504static const XrPassthroughPreferenceFlagsMETA XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META = 0x00000001;
6505
6506typedef struct XrPassthroughPreferencesMETA {
6507 XrStructureType type;
6508 const void* XR_MAY_ALIAS next;
6509 XrPassthroughPreferenceFlagsMETA flags;
6510} XrPassthroughPreferencesMETA;
6511
6512typedef XrResult (XRAPI_PTR *PFN_xrGetPassthroughPreferencesMETA)(XrSession session, XrPassthroughPreferencesMETA* preferences);
6513
6514#ifndef XR_NO_PROTOTYPES
6515#ifdef XR_EXTENSION_PROTOTYPES
6516XRAPI_ATTR XrResult XRAPI_CALL xrGetPassthroughPreferencesMETA(
6517 XrSession session,
6518 XrPassthroughPreferencesMETA* preferences);
6519#endif /* XR_EXTENSION_PROTOTYPES */
6520#endif /* !XR_NO_PROTOTYPES */
6521
6522
6523// XR_META_virtual_keyboard is a preprocessor guard. Do not pass it to API calls.
6524#define XR_META_virtual_keyboard 1
6525XR_DEFINE_HANDLE(XrVirtualKeyboardMETA)
6526#define XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META 3992
6527#define XR_META_virtual_keyboard_SPEC_VERSION 1
6528#define XR_META_VIRTUAL_KEYBOARD_EXTENSION_NAME "XR_META_virtual_keyboard"
6529
6530typedef enum XrVirtualKeyboardLocationTypeMETA {
6531 XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_CUSTOM_META = 0,
6532 XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_FAR_META = 1,
6533 XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_DIRECT_META = 2,
6534 XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_MAX_ENUM_META = 0x7FFFFFFF
6535} XrVirtualKeyboardLocationTypeMETA;
6536
6537typedef enum XrVirtualKeyboardInputSourceMETA {
6538 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_LEFT_META = 1,
6539 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_RIGHT_META = 2,
6540 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_LEFT_META = 3,
6541 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_RIGHT_META = 4,
6542 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_LEFT_META = 5,
6543 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_RIGHT_META = 6,
6544 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_LEFT_META = 7,
6545 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_RIGHT_META = 8,
6546 XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_MAX_ENUM_META = 0x7FFFFFFF
6547} XrVirtualKeyboardInputSourceMETA;
6548typedef XrFlags64 XrVirtualKeyboardInputStateFlagsMETA;
6549
6550// Flag bits for XrVirtualKeyboardInputStateFlagsMETA
6551static const XrVirtualKeyboardInputStateFlagsMETA XR_VIRTUAL_KEYBOARD_INPUT_STATE_PRESSED_BIT_META = 0x00000001;
6552
6553// XrSystemVirtualKeyboardPropertiesMETA extends XrSystemProperties
6554typedef struct XrSystemVirtualKeyboardPropertiesMETA {
6555 XrStructureType type;
6556 void* XR_MAY_ALIAS next;
6557 XrBool32 supportsVirtualKeyboard;
6558} XrSystemVirtualKeyboardPropertiesMETA;
6559
6560typedef struct XrVirtualKeyboardCreateInfoMETA {
6561 XrStructureType type;
6562 const void* XR_MAY_ALIAS next;
6563} XrVirtualKeyboardCreateInfoMETA;
6564
6565typedef struct XrVirtualKeyboardSpaceCreateInfoMETA {
6566 XrStructureType type;
6567 const void* XR_MAY_ALIAS next;
6568 XrVirtualKeyboardLocationTypeMETA locationType;
6569 XrSpace space;
6570 XrPosef poseInSpace;
6571} XrVirtualKeyboardSpaceCreateInfoMETA;
6572
6573typedef struct XrVirtualKeyboardLocationInfoMETA {
6574 XrStructureType type;
6575 const void* XR_MAY_ALIAS next;
6576 XrVirtualKeyboardLocationTypeMETA locationType;
6577 XrSpace space;
6578 XrPosef poseInSpace;
6579 float scale;
6580} XrVirtualKeyboardLocationInfoMETA;
6581
6582typedef struct XrVirtualKeyboardModelVisibilitySetInfoMETA {
6583 XrStructureType type;
6584 const void* XR_MAY_ALIAS next;
6585 XrBool32 visible;
6586} XrVirtualKeyboardModelVisibilitySetInfoMETA;
6587
6588typedef struct XrVirtualKeyboardAnimationStateMETA {
6589 XrStructureType type;
6590 void* XR_MAY_ALIAS next;
6591 int32_t animationIndex;
6592 float fraction;
6593} XrVirtualKeyboardAnimationStateMETA;
6594
6595typedef struct XrVirtualKeyboardModelAnimationStatesMETA {
6596 XrStructureType type;
6597 void* XR_MAY_ALIAS next;
6598 uint32_t stateCapacityInput;
6599 uint32_t stateCountOutput;
6600 XrVirtualKeyboardAnimationStateMETA* states;
6601} XrVirtualKeyboardModelAnimationStatesMETA;
6602
6603typedef struct XrVirtualKeyboardTextureDataMETA {
6604 XrStructureType type;
6605 void* XR_MAY_ALIAS next;
6606 uint32_t textureWidth;
6607 uint32_t textureHeight;
6608 uint32_t bufferCapacityInput;
6609 uint32_t bufferCountOutput;
6610 uint8_t* buffer;
6611} XrVirtualKeyboardTextureDataMETA;
6612
6613typedef struct XrVirtualKeyboardInputInfoMETA {
6614 XrStructureType type;
6615 const void* XR_MAY_ALIAS next;
6616 XrVirtualKeyboardInputSourceMETA inputSource;
6617 XrSpace inputSpace;
6618 XrPosef inputPoseInSpace;
6619 XrVirtualKeyboardInputStateFlagsMETA inputState;
6620} XrVirtualKeyboardInputInfoMETA;
6621
6622typedef struct XrVirtualKeyboardTextContextChangeInfoMETA {
6623 XrStructureType type;
6624 const void* XR_MAY_ALIAS next;
6625 const char* textContext;
6626} XrVirtualKeyboardTextContextChangeInfoMETA;
6627
6628typedef struct XrEventDataVirtualKeyboardCommitTextMETA {
6629 XrStructureType type;
6630 const void* XR_MAY_ALIAS next;
6631 XrVirtualKeyboardMETA keyboard;
6632 char text[XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META];
6633} XrEventDataVirtualKeyboardCommitTextMETA;
6634
6635typedef struct XrEventDataVirtualKeyboardBackspaceMETA {
6636 XrStructureType type;
6637 const void* XR_MAY_ALIAS next;
6638 XrVirtualKeyboardMETA keyboard;
6639} XrEventDataVirtualKeyboardBackspaceMETA;
6640
6641typedef struct XrEventDataVirtualKeyboardEnterMETA {
6642 XrStructureType type;
6643 const void* XR_MAY_ALIAS next;
6644 XrVirtualKeyboardMETA keyboard;
6645} XrEventDataVirtualKeyboardEnterMETA;
6646
6647typedef struct XrEventDataVirtualKeyboardShownMETA {
6648 XrStructureType type;
6649 const void* XR_MAY_ALIAS next;
6650 XrVirtualKeyboardMETA keyboard;
6651} XrEventDataVirtualKeyboardShownMETA;
6652
6653typedef struct XrEventDataVirtualKeyboardHiddenMETA {
6654 XrStructureType type;
6655 const void* XR_MAY_ALIAS next;
6656 XrVirtualKeyboardMETA keyboard;
6657} XrEventDataVirtualKeyboardHiddenMETA;
6658
6659typedef XrResult (XRAPI_PTR *PFN_xrCreateVirtualKeyboardMETA)(XrSession session, const XrVirtualKeyboardCreateInfoMETA* createInfo, XrVirtualKeyboardMETA* keyboard);
6660typedef XrResult (XRAPI_PTR *PFN_xrDestroyVirtualKeyboardMETA)(XrVirtualKeyboardMETA keyboard);
6661typedef XrResult (XRAPI_PTR *PFN_xrCreateVirtualKeyboardSpaceMETA)(XrSession session, XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo, XrSpace* keyboardSpace);
6662typedef XrResult (XRAPI_PTR *PFN_xrSuggestVirtualKeyboardLocationMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardLocationInfoMETA* locationInfo);
6663typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardScaleMETA)(XrVirtualKeyboardMETA keyboard, float* scale);
6664typedef XrResult (XRAPI_PTR *PFN_xrSetVirtualKeyboardModelVisibilityMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility);
6665typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardModelAnimationStatesMETA)(XrVirtualKeyboardMETA keyboard, XrVirtualKeyboardModelAnimationStatesMETA* animationStates);
6666typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardDirtyTexturesMETA)(XrVirtualKeyboardMETA keyboard, uint32_t textureIdCapacityInput, uint32_t* textureIdCountOutput, uint64_t* textureIds);
6667typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardTextureDataMETA)(XrVirtualKeyboardMETA keyboard, uint64_t textureId, XrVirtualKeyboardTextureDataMETA* textureData);
6668typedef XrResult (XRAPI_PTR *PFN_xrSendVirtualKeyboardInputMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardInputInfoMETA* info, XrPosef* interactorRootPose);
6669typedef XrResult (XRAPI_PTR *PFN_xrChangeVirtualKeyboardTextContextMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo);
6670
6671#ifndef XR_NO_PROTOTYPES
6672#ifdef XR_EXTENSION_PROTOTYPES
6673XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardMETA(
6674 XrSession session,
6675 const XrVirtualKeyboardCreateInfoMETA* createInfo,
6676 XrVirtualKeyboardMETA* keyboard);
6677
6678XRAPI_ATTR XrResult XRAPI_CALL xrDestroyVirtualKeyboardMETA(
6679 XrVirtualKeyboardMETA keyboard);
6680
6681XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardSpaceMETA(
6682 XrSession session,
6683 XrVirtualKeyboardMETA keyboard,
6684 const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo,
6685 XrSpace* keyboardSpace);
6686
6687XRAPI_ATTR XrResult XRAPI_CALL xrSuggestVirtualKeyboardLocationMETA(
6688 XrVirtualKeyboardMETA keyboard,
6689 const XrVirtualKeyboardLocationInfoMETA* locationInfo);
6690
6691XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardScaleMETA(
6692 XrVirtualKeyboardMETA keyboard,
6693 float* scale);
6694
6695XRAPI_ATTR XrResult XRAPI_CALL xrSetVirtualKeyboardModelVisibilityMETA(
6696 XrVirtualKeyboardMETA keyboard,
6697 const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility);
6698
6699XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardModelAnimationStatesMETA(
6700 XrVirtualKeyboardMETA keyboard,
6701 XrVirtualKeyboardModelAnimationStatesMETA* animationStates);
6702
6703XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardDirtyTexturesMETA(
6704 XrVirtualKeyboardMETA keyboard,
6705 uint32_t textureIdCapacityInput,
6706 uint32_t* textureIdCountOutput,
6707 uint64_t* textureIds);
6708
6709XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardTextureDataMETA(
6710 XrVirtualKeyboardMETA keyboard,
6711 uint64_t textureId,
6712 XrVirtualKeyboardTextureDataMETA* textureData);
6713
6714XRAPI_ATTR XrResult XRAPI_CALL xrSendVirtualKeyboardInputMETA(
6715 XrVirtualKeyboardMETA keyboard,
6716 const XrVirtualKeyboardInputInfoMETA* info,
6717 XrPosef* interactorRootPose);
6718
6719XRAPI_ATTR XrResult XRAPI_CALL xrChangeVirtualKeyboardTextContextMETA(
6720 XrVirtualKeyboardMETA keyboard,
6721 const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo);
6722#endif /* XR_EXTENSION_PROTOTYPES */
6723#endif /* !XR_NO_PROTOTYPES */
6724
6725
6726// XR_OCULUS_external_camera is a preprocessor guard. Do not pass it to API calls.
6727#define XR_OCULUS_external_camera 1
6728#define XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS 32
6729#define XR_OCULUS_external_camera_SPEC_VERSION 1
6730#define XR_OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME "XR_OCULUS_external_camera"
6731
6732typedef enum XrExternalCameraAttachedToDeviceOCULUS {
6733 XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_NONE_OCULUS = 0,
6734 XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_HMD_OCULUS = 1,
6735 XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_LTOUCH_OCULUS = 2,
6736 XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_RTOUCH_OCULUS = 3,
6737 XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_MAX_ENUM_OCULUS = 0x7FFFFFFF
6738} XrExternalCameraAttachedToDeviceOCULUS;
6739typedef XrFlags64 XrExternalCameraStatusFlagsOCULUS;
6740
6741// Flag bits for XrExternalCameraStatusFlagsOCULUS
6742static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CONNECTED_BIT_OCULUS = 0x00000001;
6743static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATING_BIT_OCULUS = 0x00000002;
6744static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATION_FAILED_BIT_OCULUS = 0x00000004;
6745static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATED_BIT_OCULUS = 0x00000008;
6746static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CAPTURING_BIT_OCULUS = 0x00000010;
6747
6748typedef struct XrExternalCameraIntrinsicsOCULUS {
6749 XrTime lastChangeTime;
6750 XrFovf fov;
6751 float virtualNearPlaneDistance;
6752 float virtualFarPlaneDistance;
6753 XrExtent2Di imageSensorPixelResolution;
6754} XrExternalCameraIntrinsicsOCULUS;
6755
6756typedef struct XrExternalCameraExtrinsicsOCULUS {
6757 XrTime lastChangeTime;
6758 XrExternalCameraStatusFlagsOCULUS cameraStatusFlags;
6759 XrExternalCameraAttachedToDeviceOCULUS attachedToDevice;
6760 XrPosef relativePose;
6761} XrExternalCameraExtrinsicsOCULUS;
6762
6763typedef struct XrExternalCameraOCULUS {
6764 XrStructureType type;
6765 const void* XR_MAY_ALIAS next;
6766 char name[XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS];
6767 XrExternalCameraIntrinsicsOCULUS intrinsics;
6768 XrExternalCameraExtrinsicsOCULUS extrinsics;
6769} XrExternalCameraOCULUS;
6770
6771typedef XrResult (XRAPI_PTR *PFN_xrEnumerateExternalCamerasOCULUS)(XrSession session, uint32_t cameraCapacityInput, uint32_t* cameraCountOutput, XrExternalCameraOCULUS* cameras);
6772
6773#ifndef XR_NO_PROTOTYPES
6774#ifdef XR_EXTENSION_PROTOTYPES
6775XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateExternalCamerasOCULUS(
6776 XrSession session,
6777 uint32_t cameraCapacityInput,
6778 uint32_t* cameraCountOutput,
6779 XrExternalCameraOCULUS* cameras);
6780#endif /* XR_EXTENSION_PROTOTYPES */
6781#endif /* !XR_NO_PROTOTYPES */
6782
6783
6784// XR_META_performance_metrics is a preprocessor guard. Do not pass it to API calls.
6785#define XR_META_performance_metrics 1
6786#define XR_META_performance_metrics_SPEC_VERSION 2
6787#define XR_META_PERFORMANCE_METRICS_EXTENSION_NAME "XR_META_performance_metrics"
6788
6789typedef enum XrPerformanceMetricsCounterUnitMETA {
6790 XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_META = 0,
6791 XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_META = 1,
6792 XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_META = 2,
6793 XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_META = 3,
6794 XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META = 4,
6795 XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_META = 0x7FFFFFFF
6796} XrPerformanceMetricsCounterUnitMETA;
6797typedef XrFlags64 XrPerformanceMetricsCounterFlagsMETA;
6798
6799// Flag bits for XrPerformanceMetricsCounterFlagsMETA
6800static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META = 0x00000001;
6801static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META = 0x00000002;
6802static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META = 0x00000004;
6803
6804typedef struct XrPerformanceMetricsStateMETA {
6805 XrStructureType type;
6806 const void* XR_MAY_ALIAS next;
6807 XrBool32 enabled;
6808} XrPerformanceMetricsStateMETA;
6809
6810typedef struct XrPerformanceMetricsCounterMETA {
6811 XrStructureType type;
6812 const void* XR_MAY_ALIAS next;
6813 XrPerformanceMetricsCounterFlagsMETA counterFlags;
6814 XrPerformanceMetricsCounterUnitMETA counterUnit;
6815 uint32_t uintValue;
6816 float floatValue;
6817} XrPerformanceMetricsCounterMETA;
6818
6819typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePerformanceMetricsCounterPathsMETA)(XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths);
6820typedef XrResult (XRAPI_PTR *PFN_xrSetPerformanceMetricsStateMETA)(XrSession session, const XrPerformanceMetricsStateMETA* state);
6821typedef XrResult (XRAPI_PTR *PFN_xrGetPerformanceMetricsStateMETA)(XrSession session, XrPerformanceMetricsStateMETA* state);
6822typedef XrResult (XRAPI_PTR *PFN_xrQueryPerformanceMetricsCounterMETA)(XrSession session, XrPath counterPath, XrPerformanceMetricsCounterMETA* counter);
6823
6824#ifndef XR_NO_PROTOTYPES
6825#ifdef XR_EXTENSION_PROTOTYPES
6826XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePerformanceMetricsCounterPathsMETA(
6827 XrInstance instance,
6828 uint32_t counterPathCapacityInput,
6829 uint32_t* counterPathCountOutput,
6830 XrPath* counterPaths);
6831
6832XRAPI_ATTR XrResult XRAPI_CALL xrSetPerformanceMetricsStateMETA(
6833 XrSession session,
6834 const XrPerformanceMetricsStateMETA* state);
6835
6836XRAPI_ATTR XrResult XRAPI_CALL xrGetPerformanceMetricsStateMETA(
6837 XrSession session,
6838 XrPerformanceMetricsStateMETA* state);
6839
6840XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterMETA(
6841 XrSession session,
6842 XrPath counterPath,
6843 XrPerformanceMetricsCounterMETA* counter);
6844#endif /* XR_EXTENSION_PROTOTYPES */
6845#endif /* !XR_NO_PROTOTYPES */
6846
6847
6848// XR_FB_spatial_entity_storage_batch is a preprocessor guard. Do not pass it to API calls.
6849#define XR_FB_spatial_entity_storage_batch 1
6850#define XR_FB_spatial_entity_storage_batch_SPEC_VERSION 1
6851#define XR_FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME "XR_FB_spatial_entity_storage_batch"
6852typedef struct XrSpaceListSaveInfoFB {
6853 XrStructureType type;
6854 const void* XR_MAY_ALIAS next;
6855 uint32_t spaceCount;
6856 XrSpace* spaces;
6857 XrSpaceStorageLocationFB location;
6858} XrSpaceListSaveInfoFB;
6859
6860typedef struct XrEventDataSpaceListSaveCompleteFB {
6861 XrStructureType type;
6862 const void* XR_MAY_ALIAS next;
6863 XrAsyncRequestIdFB requestId;
6864 XrResult result;
6865} XrEventDataSpaceListSaveCompleteFB;
6866
6867typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceListFB)(XrSession session, const XrSpaceListSaveInfoFB* info, XrAsyncRequestIdFB* requestId);
6868
6869#ifndef XR_NO_PROTOTYPES
6870#ifdef XR_EXTENSION_PROTOTYPES
6871XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceListFB(
6872 XrSession session,
6873 const XrSpaceListSaveInfoFB* info,
6874 XrAsyncRequestIdFB* requestId);
6875#endif /* XR_EXTENSION_PROTOTYPES */
6876#endif /* !XR_NO_PROTOTYPES */
6877
6878
6879// XR_META_detached_controllers is a preprocessor guard. Do not pass it to API calls.
6880#define XR_META_detached_controllers 1
6881#define XR_META_detached_controllers_SPEC_VERSION 1
6882#define XR_META_DETACHED_CONTROLLERS_EXTENSION_NAME "XR_META_detached_controllers"
6883
6884
6885// XR_FB_spatial_entity_user is a preprocessor guard. Do not pass it to API calls.
6886#define XR_FB_spatial_entity_user 1
6887typedef uint64_t XrSpaceUserIdFB;
6888#define XR_FB_spatial_entity_user_SPEC_VERSION 1
6889#define XR_FB_SPATIAL_ENTITY_USER_EXTENSION_NAME "XR_FB_spatial_entity_user"
6890typedef struct XrSpaceUserCreateInfoFB {
6891 XrStructureType type;
6892 const void* XR_MAY_ALIAS next;
6893 XrSpaceUserIdFB userId;
6894} XrSpaceUserCreateInfoFB;
6895
6896typedef XrResult (XRAPI_PTR *PFN_xrCreateSpaceUserFB)(XrSession session, const XrSpaceUserCreateInfoFB* info, XrSpaceUserFB* user);
6897typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUserIdFB)(XrSpaceUserFB user, XrSpaceUserIdFB* userId);
6898typedef XrResult (XRAPI_PTR *PFN_xrDestroySpaceUserFB)(XrSpaceUserFB user);
6899
6900#ifndef XR_NO_PROTOTYPES
6901#ifdef XR_EXTENSION_PROTOTYPES
6902XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpaceUserFB(
6903 XrSession session,
6904 const XrSpaceUserCreateInfoFB* info,
6905 XrSpaceUserFB* user);
6906
6907XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUserIdFB(
6908 XrSpaceUserFB user,
6909 XrSpaceUserIdFB* userId);
6910
6911XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpaceUserFB(
6912 XrSpaceUserFB user);
6913#endif /* XR_EXTENSION_PROTOTYPES */
6914#endif /* !XR_NO_PROTOTYPES */
6915
6916
6917// XR_META_headset_id is a preprocessor guard. Do not pass it to API calls.
6918#define XR_META_headset_id 1
6919#define XR_META_headset_id_SPEC_VERSION 2
6920#define XR_META_HEADSET_ID_EXTENSION_NAME "XR_META_headset_id"
6921// XrSystemHeadsetIdPropertiesMETA extends XrSystemProperties
6922typedef struct XrSystemHeadsetIdPropertiesMETA {
6923 XrStructureType type;
6924 void* XR_MAY_ALIAS next;
6925 XrUuidEXT id;
6926} XrSystemHeadsetIdPropertiesMETA;
6927
6928
6929
6930// XR_META_hand_tracking_microgestures is a preprocessor guard. Do not pass it to API calls.
6931#define XR_META_hand_tracking_microgestures 1
6932#define XR_META_hand_tracking_microgestures_SPEC_VERSION 1
6933#define XR_META_HAND_TRACKING_MICROGESTURES_EXTENSION_NAME "XR_META_hand_tracking_microgestures"
6934
6935
6936// XR_META_recommended_layer_resolution is a preprocessor guard. Do not pass it to API calls.
6937#define XR_META_recommended_layer_resolution 1
6938#define XR_META_recommended_layer_resolution_SPEC_VERSION 1
6939#define XR_META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME "XR_META_recommended_layer_resolution"
6940typedef struct XrRecommendedLayerResolutionMETA {
6941 XrStructureType type;
6942 void* XR_MAY_ALIAS next;
6943 XrExtent2Di recommendedImageDimensions;
6944 XrBool32 isValid;
6945} XrRecommendedLayerResolutionMETA;
6946
6947typedef struct XrRecommendedLayerResolutionGetInfoMETA {
6948 XrStructureType type;
6949 const void* XR_MAY_ALIAS next;
6950 const XrCompositionLayerBaseHeader* layer;
6951 XrTime predictedDisplayTime;
6952} XrRecommendedLayerResolutionGetInfoMETA;
6953
6954typedef XrResult (XRAPI_PTR *PFN_xrGetRecommendedLayerResolutionMETA)(XrSession session, const XrRecommendedLayerResolutionGetInfoMETA* info, XrRecommendedLayerResolutionMETA* resolution);
6955
6956#ifndef XR_NO_PROTOTYPES
6957#ifdef XR_EXTENSION_PROTOTYPES
6958XRAPI_ATTR XrResult XRAPI_CALL xrGetRecommendedLayerResolutionMETA(
6959 XrSession session,
6960 const XrRecommendedLayerResolutionGetInfoMETA* info,
6961 XrRecommendedLayerResolutionMETA* resolution);
6962#endif /* XR_EXTENSION_PROTOTYPES */
6963#endif /* !XR_NO_PROTOTYPES */
6964
6965
6966// XR_META_passthrough_color_lut is a preprocessor guard. Do not pass it to API calls.
6967#define XR_META_passthrough_color_lut 1
6968XR_DEFINE_HANDLE(XrPassthroughColorLutMETA)
6969#define XR_META_passthrough_color_lut_SPEC_VERSION 1
6970#define XR_META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME "XR_META_passthrough_color_lut"
6971
6972typedef enum XrPassthroughColorLutChannelsMETA {
6973 XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGB_META = 1,
6974 XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGBA_META = 2,
6975 XR_PASSTHROUGH_COLOR_LUT_CHANNELS_MAX_ENUM_META = 0x7FFFFFFF
6976} XrPassthroughColorLutChannelsMETA;
6977typedef struct XrPassthroughColorLutDataMETA {
6978 uint32_t bufferSize;
6979 const uint8_t* buffer;
6980} XrPassthroughColorLutDataMETA;
6981
6982typedef struct XrPassthroughColorLutCreateInfoMETA {
6983 XrStructureType type;
6984 const void* XR_MAY_ALIAS next;
6985 XrPassthroughColorLutChannelsMETA channels;
6986 uint32_t resolution;
6987 XrPassthroughColorLutDataMETA data;
6988} XrPassthroughColorLutCreateInfoMETA;
6989
6990typedef struct XrPassthroughColorLutUpdateInfoMETA {
6991 XrStructureType type;
6992 const void* XR_MAY_ALIAS next;
6993 XrPassthroughColorLutDataMETA data;
6994} XrPassthroughColorLutUpdateInfoMETA;
6995
6996// XrPassthroughColorMapLutMETA extends XrPassthroughStyleFB
6997typedef struct XrPassthroughColorMapLutMETA {
6998 XrStructureType type;
6999 const void* XR_MAY_ALIAS next;
7000 XrPassthroughColorLutMETA colorLut;
7001 float weight;
7002} XrPassthroughColorMapLutMETA;
7003
7004// XrPassthroughColorMapInterpolatedLutMETA extends XrPassthroughStyleFB
7005typedef struct XrPassthroughColorMapInterpolatedLutMETA {
7006 XrStructureType type;
7007 const void* XR_MAY_ALIAS next;
7008 XrPassthroughColorLutMETA sourceColorLut;
7009 XrPassthroughColorLutMETA targetColorLut;
7010 float weight;
7011} XrPassthroughColorMapInterpolatedLutMETA;
7012
7013// XrSystemPassthroughColorLutPropertiesMETA extends XrSystemProperties
7014typedef struct XrSystemPassthroughColorLutPropertiesMETA {
7015 XrStructureType type;
7016 const void* XR_MAY_ALIAS next;
7017 uint32_t maxColorLutResolution;
7018} XrSystemPassthroughColorLutPropertiesMETA;
7019
7020typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughColorLutMETA)(XrPassthroughFB passthrough, const XrPassthroughColorLutCreateInfoMETA* createInfo, XrPassthroughColorLutMETA* colorLut);
7021typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughColorLutMETA)(XrPassthroughColorLutMETA colorLut);
7022typedef XrResult (XRAPI_PTR *PFN_xrUpdatePassthroughColorLutMETA)(XrPassthroughColorLutMETA colorLut, const XrPassthroughColorLutUpdateInfoMETA* updateInfo);
7023
7024#ifndef XR_NO_PROTOTYPES
7025#ifdef XR_EXTENSION_PROTOTYPES
7026XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughColorLutMETA(
7027 XrPassthroughFB passthrough,
7028 const XrPassthroughColorLutCreateInfoMETA* createInfo,
7029 XrPassthroughColorLutMETA* colorLut);
7030
7031XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughColorLutMETA(
7032 XrPassthroughColorLutMETA colorLut);
7033
7034XRAPI_ATTR XrResult XRAPI_CALL xrUpdatePassthroughColorLutMETA(
7035 XrPassthroughColorLutMETA colorLut,
7036 const XrPassthroughColorLutUpdateInfoMETA* updateInfo);
7037#endif /* XR_EXTENSION_PROTOTYPES */
7038#endif /* !XR_NO_PROTOTYPES */
7039
7040
7041// XR_META_spatial_entity_mesh is a preprocessor guard. Do not pass it to API calls.
7042#define XR_META_spatial_entity_mesh 1
7043#define XR_META_spatial_entity_mesh_SPEC_VERSION 1
7044#define XR_META_SPATIAL_ENTITY_MESH_EXTENSION_NAME "XR_META_spatial_entity_mesh"
7045typedef struct XrSpaceTriangleMeshGetInfoMETA {
7046 XrStructureType type;
7047 const void* XR_MAY_ALIAS next;
7048} XrSpaceTriangleMeshGetInfoMETA;
7049
7050typedef struct XrSpaceTriangleMeshMETA {
7051 XrStructureType type;
7052 void* XR_MAY_ALIAS next;
7053 uint32_t vertexCapacityInput;
7054 uint32_t vertexCountOutput;
7055 XrVector3f* vertices;
7056 uint32_t indexCapacityInput;
7057 uint32_t indexCountOutput;
7058 uint32_t* indices;
7059} XrSpaceTriangleMeshMETA;
7060
7061typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceTriangleMeshMETA)(XrSpace space, const XrSpaceTriangleMeshGetInfoMETA* getInfo, XrSpaceTriangleMeshMETA* triangleMeshOutput);
7062
7063#ifndef XR_NO_PROTOTYPES
7064#ifdef XR_EXTENSION_PROTOTYPES
7065XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceTriangleMeshMETA(
7066 XrSpace space,
7067 const XrSpaceTriangleMeshGetInfoMETA* getInfo,
7068 XrSpaceTriangleMeshMETA* triangleMeshOutput);
7069#endif /* XR_EXTENSION_PROTOTYPES */
7070#endif /* !XR_NO_PROTOTYPES */
7071
7072
7073// XR_META_automatic_layer_filter is a preprocessor guard. Do not pass it to API calls.
7074#define XR_META_automatic_layer_filter 1
7075#define XR_META_automatic_layer_filter_SPEC_VERSION 1
7076#define XR_META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME "XR_META_automatic_layer_filter"
7077
7078
7079// XR_META_body_tracking_full_body is a preprocessor guard. Do not pass it to API calls.
7080#define XR_META_body_tracking_full_body 1
7081#define XR_META_body_tracking_full_body_SPEC_VERSION 1
7082#define XR_META_BODY_TRACKING_FULL_BODY_EXTENSION_NAME "XR_META_body_tracking_full_body"
7083
7084typedef enum XrFullBodyJointMETA {
7085 XR_FULL_BODY_JOINT_ROOT_META = 0,
7086 XR_FULL_BODY_JOINT_HIPS_META = 1,
7087 XR_FULL_BODY_JOINT_SPINE_LOWER_META = 2,
7088 XR_FULL_BODY_JOINT_SPINE_MIDDLE_META = 3,
7089 XR_FULL_BODY_JOINT_SPINE_UPPER_META = 4,
7090 XR_FULL_BODY_JOINT_CHEST_META = 5,
7091 XR_FULL_BODY_JOINT_NECK_META = 6,
7092 XR_FULL_BODY_JOINT_HEAD_META = 7,
7093 XR_FULL_BODY_JOINT_LEFT_SHOULDER_META = 8,
7094 XR_FULL_BODY_JOINT_LEFT_SCAPULA_META = 9,
7095 XR_FULL_BODY_JOINT_LEFT_ARM_UPPER_META = 10,
7096 XR_FULL_BODY_JOINT_LEFT_ARM_LOWER_META = 11,
7097 XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_TWIST_META = 12,
7098 XR_FULL_BODY_JOINT_RIGHT_SHOULDER_META = 13,
7099 XR_FULL_BODY_JOINT_RIGHT_SCAPULA_META = 14,
7100 XR_FULL_BODY_JOINT_RIGHT_ARM_UPPER_META = 15,
7101 XR_FULL_BODY_JOINT_RIGHT_ARM_LOWER_META = 16,
7102 XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_META = 17,
7103 XR_FULL_BODY_JOINT_LEFT_HAND_PALM_META = 18,
7104 XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_META = 19,
7105 XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_META = 20,
7106 XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_META = 21,
7107 XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_META = 22,
7108 XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_TIP_META = 23,
7109 XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_META = 24,
7110 XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_META = 25,
7111 XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_META = 26,
7112 XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_META = 27,
7113 XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_TIP_META = 28,
7114 XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_META = 29,
7115 XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_META = 30,
7116 XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_META = 31,
7117 XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_META = 32,
7118 XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_META = 33,
7119 XR_FULL_BODY_JOINT_LEFT_HAND_RING_METACARPAL_META = 34,
7120 XR_FULL_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_META = 35,
7121 XR_FULL_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_META = 36,
7122 XR_FULL_BODY_JOINT_LEFT_HAND_RING_DISTAL_META = 37,
7123 XR_FULL_BODY_JOINT_LEFT_HAND_RING_TIP_META = 38,
7124 XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_META = 39,
7125 XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_META = 40,
7126 XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_META = 41,
7127 XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_META = 42,
7128 XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_TIP_META = 43,
7129 XR_FULL_BODY_JOINT_RIGHT_HAND_PALM_META = 44,
7130 XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_META = 45,
7131 XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_META = 46,
7132 XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_META = 47,
7133 XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_META = 48,
7134 XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_TIP_META = 49,
7135 XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_META = 50,
7136 XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_META = 51,
7137 XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_META = 52,
7138 XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_META = 53,
7139 XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_TIP_META = 54,
7140 XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_META = 55,
7141 XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_META = 56,
7142 XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_META = 57,
7143 XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_META = 58,
7144 XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_META = 59,
7145 XR_FULL_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_META = 60,
7146 XR_FULL_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_META = 61,
7147 XR_FULL_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_META = 62,
7148 XR_FULL_BODY_JOINT_RIGHT_HAND_RING_DISTAL_META = 63,
7149 XR_FULL_BODY_JOINT_RIGHT_HAND_RING_TIP_META = 64,
7150 XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_META = 65,
7151 XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_META = 66,
7152 XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_META = 67,
7153 XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_META = 68,
7154 XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_META = 69,
7155 XR_FULL_BODY_JOINT_LEFT_UPPER_LEG_META = 70,
7156 XR_FULL_BODY_JOINT_LEFT_LOWER_LEG_META = 71,
7157 XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_TWIST_META = 72,
7158 XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_META = 73,
7159 XR_FULL_BODY_JOINT_LEFT_FOOT_SUBTALAR_META = 74,
7160 XR_FULL_BODY_JOINT_LEFT_FOOT_TRANSVERSE_META = 75,
7161 XR_FULL_BODY_JOINT_LEFT_FOOT_BALL_META = 76,
7162 XR_FULL_BODY_JOINT_RIGHT_UPPER_LEG_META = 77,
7163 XR_FULL_BODY_JOINT_RIGHT_LOWER_LEG_META = 78,
7164 XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_TWIST_META = 79,
7165 XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_META = 80,
7166 XR_FULL_BODY_JOINT_RIGHT_FOOT_SUBTALAR_META = 81,
7167 XR_FULL_BODY_JOINT_RIGHT_FOOT_TRANSVERSE_META = 82,
7168 XR_FULL_BODY_JOINT_RIGHT_FOOT_BALL_META = 83,
7169 XR_FULL_BODY_JOINT_COUNT_META = 84,
7170 XR_FULL_BODY_JOINT_NONE_META = 85,
7171 XR_FULL_BODY_JOINT_MAX_ENUM_META = 0x7FFFFFFF
7172} XrFullBodyJointMETA;
7173// XrSystemPropertiesBodyTrackingFullBodyMETA extends XrSystemProperties
7174typedef struct XrSystemPropertiesBodyTrackingFullBodyMETA {
7175 XrStructureType type;
7176 void* XR_MAY_ALIAS next;
7177 XrBool32 supportsFullBodyTracking;
7178} XrSystemPropertiesBodyTrackingFullBodyMETA;
7179
7180
7181
7182// XR_META_touch_controller_plus is a preprocessor guard. Do not pass it to API calls.
7183#define XR_META_touch_controller_plus 1
7184#define XR_META_touch_controller_plus_SPEC_VERSION 1
7185#define XR_META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME "XR_META_touch_controller_plus"
7186
7187
7188// XR_META_passthrough_layer_resumed_event is a preprocessor guard. Do not pass it to API calls.
7189#define XR_META_passthrough_layer_resumed_event 1
7190#define XR_META_passthrough_layer_resumed_event_SPEC_VERSION 1
7191#define XR_META_PASSTHROUGH_LAYER_RESUMED_EVENT_EXTENSION_NAME "XR_META_passthrough_layer_resumed_event"
7192typedef struct XrEventDataPassthroughLayerResumedMETA {
7193 XrStructureType type;
7194 const void* XR_MAY_ALIAS next;
7195 XrPassthroughLayerFB layer;
7196} XrEventDataPassthroughLayerResumedMETA;
7197
7198
7199
7200// XR_FB_face_tracking2 is a preprocessor guard. Do not pass it to API calls.
7201#define XR_FB_face_tracking2 1
7202XR_DEFINE_HANDLE(XrFaceTracker2FB)
7203#define XR_FB_face_tracking2_SPEC_VERSION 1
7204#define XR_FB_FACE_TRACKING2_EXTENSION_NAME "XR_FB_face_tracking2"
7205
7206typedef enum XrFaceExpression2FB {
7207 XR_FACE_EXPRESSION2_BROW_LOWERER_L_FB = 0,
7208 XR_FACE_EXPRESSION2_BROW_LOWERER_R_FB = 1,
7209 XR_FACE_EXPRESSION2_CHEEK_PUFF_L_FB = 2,
7210 XR_FACE_EXPRESSION2_CHEEK_PUFF_R_FB = 3,
7211 XR_FACE_EXPRESSION2_CHEEK_RAISER_L_FB = 4,
7212 XR_FACE_EXPRESSION2_CHEEK_RAISER_R_FB = 5,
7213 XR_FACE_EXPRESSION2_CHEEK_SUCK_L_FB = 6,
7214 XR_FACE_EXPRESSION2_CHEEK_SUCK_R_FB = 7,
7215 XR_FACE_EXPRESSION2_CHIN_RAISER_B_FB = 8,
7216 XR_FACE_EXPRESSION2_CHIN_RAISER_T_FB = 9,
7217 XR_FACE_EXPRESSION2_DIMPLER_L_FB = 10,
7218 XR_FACE_EXPRESSION2_DIMPLER_R_FB = 11,
7219 XR_FACE_EXPRESSION2_EYES_CLOSED_L_FB = 12,
7220 XR_FACE_EXPRESSION2_EYES_CLOSED_R_FB = 13,
7221 XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_L_FB = 14,
7222 XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_R_FB = 15,
7223 XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_L_FB = 16,
7224 XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_R_FB = 17,
7225 XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_L_FB = 18,
7226 XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_R_FB = 19,
7227 XR_FACE_EXPRESSION2_EYES_LOOK_UP_L_FB = 20,
7228 XR_FACE_EXPRESSION2_EYES_LOOK_UP_R_FB = 21,
7229 XR_FACE_EXPRESSION2_INNER_BROW_RAISER_L_FB = 22,
7230 XR_FACE_EXPRESSION2_INNER_BROW_RAISER_R_FB = 23,
7231 XR_FACE_EXPRESSION2_JAW_DROP_FB = 24,
7232 XR_FACE_EXPRESSION2_JAW_SIDEWAYS_LEFT_FB = 25,
7233 XR_FACE_EXPRESSION2_JAW_SIDEWAYS_RIGHT_FB = 26,
7234 XR_FACE_EXPRESSION2_JAW_THRUST_FB = 27,
7235 XR_FACE_EXPRESSION2_LID_TIGHTENER_L_FB = 28,
7236 XR_FACE_EXPRESSION2_LID_TIGHTENER_R_FB = 29,
7237 XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_L_FB = 30,
7238 XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_R_FB = 31,
7239 XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_L_FB = 32,
7240 XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_R_FB = 33,
7241 XR_FACE_EXPRESSION2_LIP_FUNNELER_LB_FB = 34,
7242 XR_FACE_EXPRESSION2_LIP_FUNNELER_LT_FB = 35,
7243 XR_FACE_EXPRESSION2_LIP_FUNNELER_RB_FB = 36,
7244 XR_FACE_EXPRESSION2_LIP_FUNNELER_RT_FB = 37,
7245 XR_FACE_EXPRESSION2_LIP_PRESSOR_L_FB = 38,
7246 XR_FACE_EXPRESSION2_LIP_PRESSOR_R_FB = 39,
7247 XR_FACE_EXPRESSION2_LIP_PUCKER_L_FB = 40,
7248 XR_FACE_EXPRESSION2_LIP_PUCKER_R_FB = 41,
7249 XR_FACE_EXPRESSION2_LIP_STRETCHER_L_FB = 42,
7250 XR_FACE_EXPRESSION2_LIP_STRETCHER_R_FB = 43,
7251 XR_FACE_EXPRESSION2_LIP_SUCK_LB_FB = 44,
7252 XR_FACE_EXPRESSION2_LIP_SUCK_LT_FB = 45,
7253 XR_FACE_EXPRESSION2_LIP_SUCK_RB_FB = 46,
7254 XR_FACE_EXPRESSION2_LIP_SUCK_RT_FB = 47,
7255 XR_FACE_EXPRESSION2_LIP_TIGHTENER_L_FB = 48,
7256 XR_FACE_EXPRESSION2_LIP_TIGHTENER_R_FB = 49,
7257 XR_FACE_EXPRESSION2_LIPS_TOWARD_FB = 50,
7258 XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_L_FB = 51,
7259 XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_R_FB = 52,
7260 XR_FACE_EXPRESSION2_MOUTH_LEFT_FB = 53,
7261 XR_FACE_EXPRESSION2_MOUTH_RIGHT_FB = 54,
7262 XR_FACE_EXPRESSION2_NOSE_WRINKLER_L_FB = 55,
7263 XR_FACE_EXPRESSION2_NOSE_WRINKLER_R_FB = 56,
7264 XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_L_FB = 57,
7265 XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_R_FB = 58,
7266 XR_FACE_EXPRESSION2_UPPER_LID_RAISER_L_FB = 59,
7267 XR_FACE_EXPRESSION2_UPPER_LID_RAISER_R_FB = 60,
7268 XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_L_FB = 61,
7269 XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_R_FB = 62,
7270 XR_FACE_EXPRESSION2_TONGUE_TIP_INTERDENTAL_FB = 63,
7271 XR_FACE_EXPRESSION2_TONGUE_TIP_ALVEOLAR_FB = 64,
7272 XR_FACE_EXPRESSION2_TONGUE_FRONT_DORSAL_PALATE_FB = 65,
7273 XR_FACE_EXPRESSION2_TONGUE_MID_DORSAL_PALATE_FB = 66,
7274 XR_FACE_EXPRESSION2_TONGUE_BACK_DORSAL_VELAR_FB = 67,
7275 XR_FACE_EXPRESSION2_TONGUE_OUT_FB = 68,
7276 XR_FACE_EXPRESSION2_TONGUE_RETREAT_FB = 69,
7277 XR_FACE_EXPRESSION2_COUNT_FB = 70,
7278 XR_FACE_EXPRESSION_2FB_MAX_ENUM_FB = 0x7FFFFFFF
7279} XrFaceExpression2FB;
7280
7281typedef enum XrFaceExpressionSet2FB {
7282 XR_FACE_EXPRESSION_SET2_DEFAULT_FB = 0,
7283 XR_FACE_EXPRESSION_SET_2FB_MAX_ENUM_FB = 0x7FFFFFFF
7284} XrFaceExpressionSet2FB;
7285
7286typedef enum XrFaceTrackingDataSource2FB {
7287 XR_FACE_TRACKING_DATA_SOURCE2_VISUAL_FB = 0,
7288 XR_FACE_TRACKING_DATA_SOURCE2_AUDIO_FB = 1,
7289 XR_FACE_TRACKING_DATA_SOURCE_2FB_MAX_ENUM_FB = 0x7FFFFFFF
7290} XrFaceTrackingDataSource2FB;
7291
7292typedef enum XrFaceConfidence2FB {
7293 XR_FACE_CONFIDENCE2_LOWER_FACE_FB = 0,
7294 XR_FACE_CONFIDENCE2_UPPER_FACE_FB = 1,
7295 XR_FACE_CONFIDENCE2_COUNT_FB = 2,
7296 XR_FACE_CONFIDENCE_2FB_MAX_ENUM_FB = 0x7FFFFFFF
7297} XrFaceConfidence2FB;
7298// XrSystemFaceTrackingProperties2FB extends XrSystemProperties
7299typedef struct XrSystemFaceTrackingProperties2FB {
7300 XrStructureType type;
7301 void* XR_MAY_ALIAS next;
7302 XrBool32 supportsVisualFaceTracking;
7303 XrBool32 supportsAudioFaceTracking;
7304} XrSystemFaceTrackingProperties2FB;
7305
7306typedef struct XrFaceTrackerCreateInfo2FB {
7307 XrStructureType type;
7308 const void* XR_MAY_ALIAS next;
7309 XrFaceExpressionSet2FB faceExpressionSet;
7310 uint32_t requestedDataSourceCount;
7311 XrFaceTrackingDataSource2FB* requestedDataSources;
7312} XrFaceTrackerCreateInfo2FB;
7313
7314typedef struct XrFaceExpressionInfo2FB {
7315 XrStructureType type;
7316 const void* XR_MAY_ALIAS next;
7317 XrTime time;
7318} XrFaceExpressionInfo2FB;
7319
7320typedef struct XrFaceExpressionWeights2FB {
7321 XrStructureType type;
7322 void* XR_MAY_ALIAS next;
7323 uint32_t weightCount;
7324 float* weights;
7325 uint32_t confidenceCount;
7326 float* confidences;
7327 XrBool32 isValid;
7328 XrBool32 isEyeFollowingBlendshapesValid;
7329 XrFaceTrackingDataSource2FB dataSource;
7330 XrTime time;
7331} XrFaceExpressionWeights2FB;
7332
7333typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTracker2FB)(XrSession session, const XrFaceTrackerCreateInfo2FB* createInfo, XrFaceTracker2FB* faceTracker);
7334typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTracker2FB)(XrFaceTracker2FB faceTracker);
7335typedef XrResult (XRAPI_PTR *PFN_xrGetFaceExpressionWeights2FB)(XrFaceTracker2FB faceTracker, const XrFaceExpressionInfo2FB* expressionInfo, XrFaceExpressionWeights2FB* expressionWeights);
7336
7337#ifndef XR_NO_PROTOTYPES
7338#ifdef XR_EXTENSION_PROTOTYPES
7339XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTracker2FB(
7340 XrSession session,
7341 const XrFaceTrackerCreateInfo2FB* createInfo,
7342 XrFaceTracker2FB* faceTracker);
7343
7344XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTracker2FB(
7345 XrFaceTracker2FB faceTracker);
7346
7347XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeights2FB(
7348 XrFaceTracker2FB faceTracker,
7349 const XrFaceExpressionInfo2FB* expressionInfo,
7350 XrFaceExpressionWeights2FB* expressionWeights);
7351#endif /* XR_EXTENSION_PROTOTYPES */
7352#endif /* !XR_NO_PROTOTYPES */
7353
7354
7355// XR_META_spatial_entity_sharing is a preprocessor guard. Do not pass it to API calls.
7356#define XR_META_spatial_entity_sharing 1
7357#define XR_META_spatial_entity_sharing_SPEC_VERSION 1
7358#define XR_META_SPATIAL_ENTITY_SHARING_EXTENSION_NAME "XR_META_spatial_entity_sharing"
7359#define XR_MAX_SPACES_PER_SHARE_REQUEST_META 32
7360// XrSystemSpatialEntitySharingPropertiesMETA extends XrSystemProperties
7361typedef struct XrSystemSpatialEntitySharingPropertiesMETA {
7362 XrStructureType type;
7363 void* XR_MAY_ALIAS next;
7364 XrBool32 supportsSpatialEntitySharing;
7365} XrSystemSpatialEntitySharingPropertiesMETA;
7366
7367typedef struct XR_MAY_ALIAS XrShareSpacesRecipientBaseHeaderMETA {
7368 XrStructureType type;
7369 const void* XR_MAY_ALIAS next;
7370} XrShareSpacesRecipientBaseHeaderMETA;
7371
7372typedef struct XrShareSpacesInfoMETA {
7373 XrStructureType type;
7374 const void* XR_MAY_ALIAS next;
7375 uint32_t spaceCount;
7376 XrSpace* spaces;
7377 const XrShareSpacesRecipientBaseHeaderMETA* recipientInfo;
7378} XrShareSpacesInfoMETA;
7379
7380typedef struct XrEventDataShareSpacesCompleteMETA {
7381 XrStructureType type;
7382 const void* XR_MAY_ALIAS next;
7383 XrAsyncRequestIdFB requestId;
7384 XrResult result;
7385} XrEventDataShareSpacesCompleteMETA;
7386
7387typedef XrResult (XRAPI_PTR *PFN_xrShareSpacesMETA)(XrSession session, const XrShareSpacesInfoMETA* info, XrAsyncRequestIdFB* requestId);
7388
7389#ifndef XR_NO_PROTOTYPES
7390#ifdef XR_EXTENSION_PROTOTYPES
7391XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesMETA(
7392 XrSession session,
7393 const XrShareSpacesInfoMETA* info,
7394 XrAsyncRequestIdFB* requestId);
7395#endif /* XR_EXTENSION_PROTOTYPES */
7396#endif /* !XR_NO_PROTOTYPES */
7397
7398
7399// XR_META_environment_depth is a preprocessor guard. Do not pass it to API calls.
7400#define XR_META_environment_depth 1
7401XR_DEFINE_HANDLE(XrEnvironmentDepthProviderMETA)
7402XR_DEFINE_HANDLE(XrEnvironmentDepthSwapchainMETA)
7403#define XR_META_environment_depth_SPEC_VERSION 1
7404#define XR_META_ENVIRONMENT_DEPTH_EXTENSION_NAME "XR_META_environment_depth"
7405typedef XrFlags64 XrEnvironmentDepthProviderCreateFlagsMETA;
7406
7407// Flag bits for XrEnvironmentDepthProviderCreateFlagsMETA
7408
7409typedef XrFlags64 XrEnvironmentDepthSwapchainCreateFlagsMETA;
7410
7411// Flag bits for XrEnvironmentDepthSwapchainCreateFlagsMETA
7412
7413typedef struct XrEnvironmentDepthProviderCreateInfoMETA {
7414 XrStructureType type;
7415 const void* XR_MAY_ALIAS next;
7416 XrEnvironmentDepthProviderCreateFlagsMETA createFlags;
7417} XrEnvironmentDepthProviderCreateInfoMETA;
7418
7419typedef struct XrEnvironmentDepthSwapchainCreateInfoMETA {
7420 XrStructureType type;
7421 const void* XR_MAY_ALIAS next;
7422 XrEnvironmentDepthSwapchainCreateFlagsMETA createFlags;
7423} XrEnvironmentDepthSwapchainCreateInfoMETA;
7424
7425typedef struct XrEnvironmentDepthSwapchainStateMETA {
7426 XrStructureType type;
7427 void* XR_MAY_ALIAS next;
7428 uint32_t width;
7429 uint32_t height;
7430} XrEnvironmentDepthSwapchainStateMETA;
7431
7432typedef struct XrEnvironmentDepthImageAcquireInfoMETA {
7433 XrStructureType type;
7434 const void* XR_MAY_ALIAS next;
7435 XrSpace space;
7436 XrTime displayTime;
7437} XrEnvironmentDepthImageAcquireInfoMETA;
7438
7439typedef struct XrEnvironmentDepthImageViewMETA {
7440 XrStructureType type;
7441 const void* XR_MAY_ALIAS next;
7442 XrFovf fov;
7443 XrPosef pose;
7444} XrEnvironmentDepthImageViewMETA;
7445
7446typedef struct XrEnvironmentDepthImageMETA {
7447 XrStructureType type;
7448 const void* XR_MAY_ALIAS next;
7449 uint32_t swapchainIndex;
7450 float nearZ;
7451 float farZ;
7452 XrEnvironmentDepthImageViewMETA views[2];
7453} XrEnvironmentDepthImageMETA;
7454
7455typedef struct XrEnvironmentDepthHandRemovalSetInfoMETA {
7456 XrStructureType type;
7457 const void* XR_MAY_ALIAS next;
7458 XrBool32 enabled;
7459} XrEnvironmentDepthHandRemovalSetInfoMETA;
7460
7461// XrSystemEnvironmentDepthPropertiesMETA extends XrSystemProperties
7462typedef struct XrSystemEnvironmentDepthPropertiesMETA {
7463 XrStructureType type;
7464 void* XR_MAY_ALIAS next;
7465 XrBool32 supportsEnvironmentDepth;
7466 XrBool32 supportsHandRemoval;
7467} XrSystemEnvironmentDepthPropertiesMETA;
7468
7469typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentDepthProviderMETA)(XrSession session, const XrEnvironmentDepthProviderCreateInfoMETA* createInfo, XrEnvironmentDepthProviderMETA* environmentDepthProvider);
7470typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider);
7471typedef XrResult (XRAPI_PTR *PFN_xrStartEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider);
7472typedef XrResult (XRAPI_PTR *PFN_xrStopEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider);
7473typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentDepthSwapchainMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo, XrEnvironmentDepthSwapchainMETA* swapchain);
7474typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentDepthSwapchainMETA)(XrEnvironmentDepthSwapchainMETA swapchain);
7475typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentDepthSwapchainImagesMETA)(XrEnvironmentDepthSwapchainMETA swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images);
7476typedef XrResult (XRAPI_PTR *PFN_xrGetEnvironmentDepthSwapchainStateMETA)(XrEnvironmentDepthSwapchainMETA swapchain, XrEnvironmentDepthSwapchainStateMETA* state);
7477typedef XrResult (XRAPI_PTR *PFN_xrAcquireEnvironmentDepthImageMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo, XrEnvironmentDepthImageMETA* environmentDepthImage);
7478typedef XrResult (XRAPI_PTR *PFN_xrSetEnvironmentDepthHandRemovalMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo);
7479
7480#ifndef XR_NO_PROTOTYPES
7481#ifdef XR_EXTENSION_PROTOTYPES
7482XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthProviderMETA(
7483 XrSession session,
7484 const XrEnvironmentDepthProviderCreateInfoMETA* createInfo,
7485 XrEnvironmentDepthProviderMETA* environmentDepthProvider);
7486
7487XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthProviderMETA(
7488 XrEnvironmentDepthProviderMETA environmentDepthProvider);
7489
7490XRAPI_ATTR XrResult XRAPI_CALL xrStartEnvironmentDepthProviderMETA(
7491 XrEnvironmentDepthProviderMETA environmentDepthProvider);
7492
7493XRAPI_ATTR XrResult XRAPI_CALL xrStopEnvironmentDepthProviderMETA(
7494 XrEnvironmentDepthProviderMETA environmentDepthProvider);
7495
7496XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthSwapchainMETA(
7497 XrEnvironmentDepthProviderMETA environmentDepthProvider,
7498 const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo,
7499 XrEnvironmentDepthSwapchainMETA* swapchain);
7500
7501XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthSwapchainMETA(
7502 XrEnvironmentDepthSwapchainMETA swapchain);
7503
7504XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentDepthSwapchainImagesMETA(
7505 XrEnvironmentDepthSwapchainMETA swapchain,
7506 uint32_t imageCapacityInput,
7507 uint32_t* imageCountOutput,
7508 XrSwapchainImageBaseHeader* images);
7509
7510XRAPI_ATTR XrResult XRAPI_CALL xrGetEnvironmentDepthSwapchainStateMETA(
7511 XrEnvironmentDepthSwapchainMETA swapchain,
7512 XrEnvironmentDepthSwapchainStateMETA* state);
7513
7514XRAPI_ATTR XrResult XRAPI_CALL xrAcquireEnvironmentDepthImageMETA(
7515 XrEnvironmentDepthProviderMETA environmentDepthProvider,
7516 const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo,
7517 XrEnvironmentDepthImageMETA* environmentDepthImage);
7518
7519XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthHandRemovalMETA(
7520 XrEnvironmentDepthProviderMETA environmentDepthProvider,
7521 const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo);
7522#endif /* XR_EXTENSION_PROTOTYPES */
7523#endif /* !XR_NO_PROTOTYPES */
7524
7525
7526// XR_EXT_uuid is a preprocessor guard. Do not pass it to API calls.
7527#define XR_EXT_uuid 1
7528#define XR_EXT_uuid_SPEC_VERSION 1
7529#define XR_EXT_UUID_EXTENSION_NAME "XR_EXT_uuid"
7530#define XR_UUID_SIZE_EXT 16
7531
7532
7533// XR_EXT_render_model is a preprocessor guard. Do not pass it to API calls.
7534#define XR_EXT_render_model 1
7535XR_DEFINE_ATOM(XrRenderModelIdEXT)
7536XR_DEFINE_HANDLE(XrRenderModelEXT)
7537XR_DEFINE_HANDLE(XrRenderModelAssetEXT)
7538#define XR_MAX_RENDER_MODEL_ASSET_NODE_NAME_SIZE_EXT 64
7539#define XR_EXT_render_model_SPEC_VERSION 1
7540#define XR_EXT_RENDER_MODEL_EXTENSION_NAME "XR_EXT_render_model"
7541#define XR_NULL_RENDER_MODEL_ID_EXT 0
7542typedef struct XrRenderModelCreateInfoEXT {
7543 XrStructureType type;
7544 const void* XR_MAY_ALIAS next;
7545 XrRenderModelIdEXT renderModelId;
7546 uint32_t gltfExtensionCount;
7547 const char* const* gltfExtensions;
7548} XrRenderModelCreateInfoEXT;
7549
7550typedef struct XrRenderModelPropertiesGetInfoEXT {
7551 XrStructureType type;
7552 const void* XR_MAY_ALIAS next;
7553} XrRenderModelPropertiesGetInfoEXT;
7554
7555typedef struct XrRenderModelPropertiesEXT {
7556 XrStructureType type;
7557 void* XR_MAY_ALIAS next;
7558 XrUuidEXT cacheId;
7559 uint32_t animatableNodeCount;
7560} XrRenderModelPropertiesEXT;
7561
7562typedef struct XrRenderModelSpaceCreateInfoEXT {
7563 XrStructureType type;
7564 const void* XR_MAY_ALIAS next;
7565 XrRenderModelEXT renderModel;
7566} XrRenderModelSpaceCreateInfoEXT;
7567
7568typedef struct XrRenderModelStateGetInfoEXT {
7569 XrStructureType type;
7570 const void* XR_MAY_ALIAS next;
7571 XrTime displayTime;
7572} XrRenderModelStateGetInfoEXT;
7573
7574typedef struct XrRenderModelNodeStateEXT {
7575 XrPosef nodePose;
7576 XrBool32 isVisible;
7577} XrRenderModelNodeStateEXT;
7578
7579typedef struct XrRenderModelStateEXT {
7580 XrStructureType type;
7581 void* XR_MAY_ALIAS next;
7582 uint32_t nodeStateCount;
7583 XrRenderModelNodeStateEXT* nodeStates;
7584} XrRenderModelStateEXT;
7585
7586typedef struct XrRenderModelAssetCreateInfoEXT {
7587 XrStructureType type;
7588 const void* XR_MAY_ALIAS next;
7589 XrUuidEXT cacheId;
7590} XrRenderModelAssetCreateInfoEXT;
7591
7592typedef struct XrRenderModelAssetDataGetInfoEXT {
7593 XrStructureType type;
7594 const void* XR_MAY_ALIAS next;
7595} XrRenderModelAssetDataGetInfoEXT;
7596
7597typedef struct XrRenderModelAssetDataEXT {
7598 XrStructureType type;
7599 void* XR_MAY_ALIAS next;
7600 uint32_t bufferCapacityInput;
7601 uint32_t bufferCountOutput;
7602 uint8_t* buffer;
7603} XrRenderModelAssetDataEXT;
7604
7605typedef struct XrRenderModelAssetPropertiesGetInfoEXT {
7606 XrStructureType type;
7607 const void* XR_MAY_ALIAS next;
7608} XrRenderModelAssetPropertiesGetInfoEXT;
7609
7610typedef struct XrRenderModelAssetNodePropertiesEXT {
7611 char uniqueName[XR_MAX_RENDER_MODEL_ASSET_NODE_NAME_SIZE_EXT];
7612} XrRenderModelAssetNodePropertiesEXT;
7613
7614typedef struct XrRenderModelAssetPropertiesEXT {
7615 XrStructureType type;
7616 void* XR_MAY_ALIAS next;
7617 uint32_t nodePropertyCount;
7618 XrRenderModelAssetNodePropertiesEXT* nodeProperties;
7619} XrRenderModelAssetPropertiesEXT;
7620
7621typedef XrResult (XRAPI_PTR *PFN_xrCreateRenderModelEXT)(XrSession session, const XrRenderModelCreateInfoEXT* createInfo, XrRenderModelEXT* renderModel);
7622typedef XrResult (XRAPI_PTR *PFN_xrDestroyRenderModelEXT)(XrRenderModelEXT renderModel);
7623typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPropertiesEXT)(XrRenderModelEXT renderModel, const XrRenderModelPropertiesGetInfoEXT* getInfo, XrRenderModelPropertiesEXT* properties);
7624typedef XrResult (XRAPI_PTR *PFN_xrCreateRenderModelSpaceEXT)(XrSession session, const XrRenderModelSpaceCreateInfoEXT* createInfo, XrSpace* space);
7625typedef XrResult (XRAPI_PTR *PFN_xrCreateRenderModelAssetEXT)(XrSession session, const XrRenderModelAssetCreateInfoEXT* createInfo, XrRenderModelAssetEXT* asset);
7626typedef XrResult (XRAPI_PTR *PFN_xrDestroyRenderModelAssetEXT)(XrRenderModelAssetEXT asset);
7627typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelAssetDataEXT)(XrRenderModelAssetEXT asset, const XrRenderModelAssetDataGetInfoEXT* getInfo, XrRenderModelAssetDataEXT* buffer);
7628typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelAssetPropertiesEXT)(XrRenderModelAssetEXT asset, const XrRenderModelAssetPropertiesGetInfoEXT* getInfo, XrRenderModelAssetPropertiesEXT* properties);
7629typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelStateEXT)(XrRenderModelEXT renderModel, const XrRenderModelStateGetInfoEXT* getInfo, XrRenderModelStateEXT* state);
7630
7631#ifndef XR_NO_PROTOTYPES
7632#ifdef XR_EXTENSION_PROTOTYPES
7633XRAPI_ATTR XrResult XRAPI_CALL xrCreateRenderModelEXT(
7634 XrSession session,
7635 const XrRenderModelCreateInfoEXT* createInfo,
7636 XrRenderModelEXT* renderModel);
7637
7638XRAPI_ATTR XrResult XRAPI_CALL xrDestroyRenderModelEXT(
7639 XrRenderModelEXT renderModel);
7640
7641XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPropertiesEXT(
7642 XrRenderModelEXT renderModel,
7643 const XrRenderModelPropertiesGetInfoEXT* getInfo,
7644 XrRenderModelPropertiesEXT* properties);
7645
7646XRAPI_ATTR XrResult XRAPI_CALL xrCreateRenderModelSpaceEXT(
7647 XrSession session,
7648 const XrRenderModelSpaceCreateInfoEXT* createInfo,
7649 XrSpace* space);
7650
7651XRAPI_ATTR XrResult XRAPI_CALL xrCreateRenderModelAssetEXT(
7652 XrSession session,
7653 const XrRenderModelAssetCreateInfoEXT* createInfo,
7654 XrRenderModelAssetEXT* asset);
7655
7656XRAPI_ATTR XrResult XRAPI_CALL xrDestroyRenderModelAssetEXT(
7657 XrRenderModelAssetEXT asset);
7658
7659XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelAssetDataEXT(
7660 XrRenderModelAssetEXT asset,
7661 const XrRenderModelAssetDataGetInfoEXT* getInfo,
7662 XrRenderModelAssetDataEXT* buffer);
7663
7664XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelAssetPropertiesEXT(
7665 XrRenderModelAssetEXT asset,
7666 const XrRenderModelAssetPropertiesGetInfoEXT* getInfo,
7667 XrRenderModelAssetPropertiesEXT* properties);
7668
7669XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelStateEXT(
7670 XrRenderModelEXT renderModel,
7671 const XrRenderModelStateGetInfoEXT* getInfo,
7672 XrRenderModelStateEXT* state);
7673#endif /* XR_EXTENSION_PROTOTYPES */
7674#endif /* !XR_NO_PROTOTYPES */
7675
7676
7677// XR_EXT_interaction_render_model is a preprocessor guard. Do not pass it to API calls.
7678#define XR_EXT_interaction_render_model 1
7679#define XR_EXT_interaction_render_model_SPEC_VERSION 1
7680#define XR_EXT_INTERACTION_RENDER_MODEL_EXTENSION_NAME "XR_EXT_interaction_render_model"
7681typedef struct XrInteractionRenderModelIdsEnumerateInfoEXT {
7682 XrStructureType type;
7683 const void* XR_MAY_ALIAS next;
7684} XrInteractionRenderModelIdsEnumerateInfoEXT;
7685
7686typedef struct XrInteractionRenderModelSubactionPathInfoEXT {
7687 XrStructureType type;
7688 const void* XR_MAY_ALIAS next;
7689} XrInteractionRenderModelSubactionPathInfoEXT;
7690
7691typedef struct XrInteractionRenderModelTopLevelUserPathGetInfoEXT {
7692 XrStructureType type;
7693 const void* XR_MAY_ALIAS next;
7694 uint32_t topLevelUserPathCount;
7695 const XrPath* topLevelUserPaths;
7696} XrInteractionRenderModelTopLevelUserPathGetInfoEXT;
7697
7698typedef struct XrEventDataInteractionRenderModelsChangedEXT {
7699 XrStructureType type;
7700 const void* XR_MAY_ALIAS next;
7701} XrEventDataInteractionRenderModelsChangedEXT;
7702
7703typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInteractionRenderModelIdsEXT)(XrSession session, const XrInteractionRenderModelIdsEnumerateInfoEXT* getInfo, uint32_t renderModelIdCapacityInput, uint32_t* renderModelIdCountOutput, XrRenderModelIdEXT* renderModelIds);
7704typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRenderModelSubactionPathsEXT)(XrRenderModelEXT renderModel, const XrInteractionRenderModelSubactionPathInfoEXT* info, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrPath* paths);
7705typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPoseTopLevelUserPathEXT)(XrRenderModelEXT renderModel, const XrInteractionRenderModelTopLevelUserPathGetInfoEXT* info, XrPath* topLevelUserPath);
7706
7707#ifndef XR_NO_PROTOTYPES
7708#ifdef XR_EXTENSION_PROTOTYPES
7709XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInteractionRenderModelIdsEXT(
7710 XrSession session,
7711 const XrInteractionRenderModelIdsEnumerateInfoEXT* getInfo,
7712 uint32_t renderModelIdCapacityInput,
7713 uint32_t* renderModelIdCountOutput,
7714 XrRenderModelIdEXT* renderModelIds);
7715
7716XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRenderModelSubactionPathsEXT(
7717 XrRenderModelEXT renderModel,
7718 const XrInteractionRenderModelSubactionPathInfoEXT* info,
7719 uint32_t pathCapacityInput,
7720 uint32_t* pathCountOutput,
7721 XrPath* paths);
7722
7723XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPoseTopLevelUserPathEXT(
7724 XrRenderModelEXT renderModel,
7725 const XrInteractionRenderModelTopLevelUserPathGetInfoEXT* info,
7726 XrPath* topLevelUserPath);
7727#endif /* XR_EXTENSION_PROTOTYPES */
7728#endif /* !XR_NO_PROTOTYPES */
7729
7730
7731// XR_EXT_hand_interaction is a preprocessor guard. Do not pass it to API calls.
7732#define XR_EXT_hand_interaction 1
7733#define XR_EXT_hand_interaction_SPEC_VERSION 1
7734#define XR_EXT_HAND_INTERACTION_EXTENSION_NAME "XR_EXT_hand_interaction"
7735
7736
7737// XR_QCOM_tracking_optimization_settings is a preprocessor guard. Do not pass it to API calls.
7738#define XR_QCOM_tracking_optimization_settings 1
7739#define XR_QCOM_tracking_optimization_settings_SPEC_VERSION 1
7740#define XR_QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME "XR_QCOM_tracking_optimization_settings"
7741
7742typedef enum XrTrackingOptimizationSettingsDomainQCOM {
7743 XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_ALL_QCOM = 1,
7744 XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_MAX_ENUM_QCOM = 0x7FFFFFFF
7745} XrTrackingOptimizationSettingsDomainQCOM;
7746
7747typedef enum XrTrackingOptimizationSettingsHintQCOM {
7748 XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_NONE_QCOM = 0,
7749 XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LONG_RANGE_PRIORIZATION_QCOM = 1,
7750 XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_CLOSE_RANGE_PRIORIZATION_QCOM = 2,
7751 XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LOW_POWER_PRIORIZATION_QCOM = 3,
7752 XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_HIGH_POWER_PRIORIZATION_QCOM = 4,
7753 XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_MAX_ENUM_QCOM = 0x7FFFFFFF
7754} XrTrackingOptimizationSettingsHintQCOM;
7755typedef XrResult (XRAPI_PTR *PFN_xrSetTrackingOptimizationSettingsHintQCOM)(XrSession session, XrTrackingOptimizationSettingsDomainQCOM domain, XrTrackingOptimizationSettingsHintQCOM hint);
7756
7757#ifndef XR_NO_PROTOTYPES
7758#ifdef XR_EXTENSION_PROTOTYPES
7759XRAPI_ATTR XrResult XRAPI_CALL xrSetTrackingOptimizationSettingsHintQCOM(
7760 XrSession session,
7761 XrTrackingOptimizationSettingsDomainQCOM domain,
7762 XrTrackingOptimizationSettingsHintQCOM hint);
7763#endif /* XR_EXTENSION_PROTOTYPES */
7764#endif /* !XR_NO_PROTOTYPES */
7765
7766
7767// XR_HTC_passthrough is a preprocessor guard. Do not pass it to API calls.
7768#define XR_HTC_passthrough 1
7769XR_DEFINE_HANDLE(XrPassthroughHTC)
7770#define XR_HTC_passthrough_SPEC_VERSION 1
7771#define XR_HTC_PASSTHROUGH_EXTENSION_NAME "XR_HTC_passthrough"
7772
7773typedef enum XrPassthroughFormHTC {
7774 XR_PASSTHROUGH_FORM_PLANAR_HTC = 0,
7775 XR_PASSTHROUGH_FORM_PROJECTED_HTC = 1,
7776 XR_PASSTHROUGH_FORM_MAX_ENUM_HTC = 0x7FFFFFFF
7777} XrPassthroughFormHTC;
7778typedef struct XrPassthroughCreateInfoHTC {
7779 XrStructureType type;
7780 const void* XR_MAY_ALIAS next;
7781 XrPassthroughFormHTC form;
7782} XrPassthroughCreateInfoHTC;
7783
7784typedef struct XrPassthroughColorHTC {
7785 XrStructureType type;
7786 const void* XR_MAY_ALIAS next;
7787 float alpha;
7788} XrPassthroughColorHTC;
7789
7790// XrPassthroughMeshTransformInfoHTC extends XrCompositionLayerPassthroughHTC
7791typedef struct XrPassthroughMeshTransformInfoHTC {
7792 XrStructureType type;
7793 const void* XR_MAY_ALIAS next;
7794 uint32_t vertexCount;
7795 const XrVector3f* vertices;
7796 uint32_t indexCount;
7797 const uint32_t* indices;
7798 XrSpace baseSpace;
7799 XrTime time;
7800 XrPosef pose;
7801 XrVector3f scale;
7802} XrPassthroughMeshTransformInfoHTC;
7803
7804typedef struct XrCompositionLayerPassthroughHTC {
7805 XrStructureType type;
7806 const void* XR_MAY_ALIAS next;
7807 XrCompositionLayerFlags layerFlags;
7808 XrSpace space;
7809 XrPassthroughHTC passthrough;
7810 XrPassthroughColorHTC color;
7811} XrCompositionLayerPassthroughHTC;
7812
7813typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughHTC)(XrSession session, const XrPassthroughCreateInfoHTC* createInfo, XrPassthroughHTC* passthrough);
7814typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughHTC)(XrPassthroughHTC passthrough);
7815
7816#ifndef XR_NO_PROTOTYPES
7817#ifdef XR_EXTENSION_PROTOTYPES
7818XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughHTC(
7819 XrSession session,
7820 const XrPassthroughCreateInfoHTC* createInfo,
7821 XrPassthroughHTC* passthrough);
7822
7823XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughHTC(
7824 XrPassthroughHTC passthrough);
7825#endif /* XR_EXTENSION_PROTOTYPES */
7826#endif /* !XR_NO_PROTOTYPES */
7827
7828
7829// XR_HTC_foveation is a preprocessor guard. Do not pass it to API calls.
7830#define XR_HTC_foveation 1
7831#define XR_HTC_foveation_SPEC_VERSION 1
7832#define XR_HTC_FOVEATION_EXTENSION_NAME "XR_HTC_foveation"
7833
7834typedef enum XrFoveationModeHTC {
7835 XR_FOVEATION_MODE_DISABLE_HTC = 0,
7836 XR_FOVEATION_MODE_FIXED_HTC = 1,
7837 XR_FOVEATION_MODE_DYNAMIC_HTC = 2,
7838 XR_FOVEATION_MODE_CUSTOM_HTC = 3,
7839 XR_FOVEATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF
7840} XrFoveationModeHTC;
7841
7842typedef enum XrFoveationLevelHTC {
7843 XR_FOVEATION_LEVEL_NONE_HTC = 0,
7844 XR_FOVEATION_LEVEL_LOW_HTC = 1,
7845 XR_FOVEATION_LEVEL_MEDIUM_HTC = 2,
7846 XR_FOVEATION_LEVEL_HIGH_HTC = 3,
7847 XR_FOVEATION_LEVEL_MAX_ENUM_HTC = 0x7FFFFFFF
7848} XrFoveationLevelHTC;
7849typedef XrFlags64 XrFoveationDynamicFlagsHTC;
7850
7851// Flag bits for XrFoveationDynamicFlagsHTC
7852static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC = 0x00000001;
7853static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC = 0x00000002;
7854static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC = 0x00000004;
7855
7856typedef struct XrFoveationApplyInfoHTC {
7857 XrStructureType type;
7858 const void* XR_MAY_ALIAS next;
7859 XrFoveationModeHTC mode;
7860 uint32_t subImageCount;
7861 XrSwapchainSubImage* subImages;
7862} XrFoveationApplyInfoHTC;
7863
7864typedef struct XrFoveationConfigurationHTC {
7865 XrFoveationLevelHTC level;
7866 float clearFovDegree;
7867 XrVector2f focalCenterOffset;
7868} XrFoveationConfigurationHTC;
7869
7870// XrFoveationDynamicModeInfoHTC extends XrFoveationApplyInfoHTC
7871typedef struct XrFoveationDynamicModeInfoHTC {
7872 XrStructureType type;
7873 const void* XR_MAY_ALIAS next;
7874 XrFoveationDynamicFlagsHTC dynamicFlags;
7875} XrFoveationDynamicModeInfoHTC;
7876
7877// XrFoveationCustomModeInfoHTC extends XrFoveationApplyInfoHTC
7878typedef struct XrFoveationCustomModeInfoHTC {
7879 XrStructureType type;
7880 const void* XR_MAY_ALIAS next;
7881 uint32_t configCount;
7882 const XrFoveationConfigurationHTC* configs;
7883} XrFoveationCustomModeInfoHTC;
7884
7885typedef XrResult (XRAPI_PTR *PFN_xrApplyFoveationHTC)(XrSession session, const XrFoveationApplyInfoHTC* applyInfo);
7886
7887#ifndef XR_NO_PROTOTYPES
7888#ifdef XR_EXTENSION_PROTOTYPES
7889XRAPI_ATTR XrResult XRAPI_CALL xrApplyFoveationHTC(
7890 XrSession session,
7891 const XrFoveationApplyInfoHTC* applyInfo);
7892#endif /* XR_EXTENSION_PROTOTYPES */
7893#endif /* !XR_NO_PROTOTYPES */
7894
7895
7896// XR_HTC_anchor is a preprocessor guard. Do not pass it to API calls.
7897#define XR_HTC_anchor 1
7898#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC 256
7899#define XR_HTC_anchor_SPEC_VERSION 1
7900#define XR_HTC_ANCHOR_EXTENSION_NAME "XR_HTC_anchor"
7901// XrSystemAnchorPropertiesHTC extends XrSystemProperties
7902typedef struct XrSystemAnchorPropertiesHTC {
7903 XrStructureType type;
7904 void* XR_MAY_ALIAS next;
7905 XrBool32 supportsAnchor;
7906} XrSystemAnchorPropertiesHTC;
7907
7908typedef struct XrSpatialAnchorNameHTC {
7909 char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC];
7910} XrSpatialAnchorNameHTC;
7911
7912typedef struct XrSpatialAnchorCreateInfoHTC {
7913 XrStructureType type;
7914 const void* XR_MAY_ALIAS next;
7915 XrSpace space;
7916 XrPosef poseInSpace;
7917 XrSpatialAnchorNameHTC name;
7918} XrSpatialAnchorCreateInfoHTC;
7919
7920typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorHTC)(XrSession session, const XrSpatialAnchorCreateInfoHTC* createInfo, XrSpace* anchor);
7921typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorNameHTC)(XrSpace anchor, XrSpatialAnchorNameHTC* name);
7922
7923#ifndef XR_NO_PROTOTYPES
7924#ifdef XR_EXTENSION_PROTOTYPES
7925XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorHTC(
7926 XrSession session,
7927 const XrSpatialAnchorCreateInfoHTC* createInfo,
7928 XrSpace* anchor);
7929
7930XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorNameHTC(
7931 XrSpace anchor,
7932 XrSpatialAnchorNameHTC* name);
7933#endif /* XR_EXTENSION_PROTOTYPES */
7934#endif /* !XR_NO_PROTOTYPES */
7935
7936
7937// XR_HTC_body_tracking is a preprocessor guard. Do not pass it to API calls.
7938#define XR_HTC_body_tracking 1
7939
7940#define XR_BODY_JOINT_COUNT_HTC 26
7941
7942XR_DEFINE_HANDLE(XrBodyTrackerHTC)
7943#define XR_HTC_body_tracking_SPEC_VERSION 1
7944#define XR_HTC_BODY_TRACKING_EXTENSION_NAME "XR_HTC_body_tracking"
7945
7946typedef enum XrBodyJointHTC {
7947 XR_BODY_JOINT_PELVIS_HTC = 0,
7948 XR_BODY_JOINT_LEFT_HIP_HTC = 1,
7949 XR_BODY_JOINT_LEFT_KNEE_HTC = 2,
7950 XR_BODY_JOINT_LEFT_ANKLE_HTC = 3,
7951 XR_BODY_JOINT_LEFT_FEET_HTC = 4,
7952 XR_BODY_JOINT_RIGHT_HIP_HTC = 5,
7953 XR_BODY_JOINT_RIGHT_KNEE_HTC = 6,
7954 XR_BODY_JOINT_RIGHT_ANKLE_HTC = 7,
7955 XR_BODY_JOINT_RIGHT_FEET_HTC = 8,
7956 XR_BODY_JOINT_WAIST_HTC = 9,
7957 XR_BODY_JOINT_SPINE_LOWER_HTC = 10,
7958 XR_BODY_JOINT_SPINE_MIDDLE_HTC = 11,
7959 XR_BODY_JOINT_SPINE_HIGH_HTC = 12,
7960 XR_BODY_JOINT_CHEST_HTC = 13,
7961 XR_BODY_JOINT_NECK_HTC = 14,
7962 XR_BODY_JOINT_HEAD_HTC = 15,
7963 XR_BODY_JOINT_LEFT_CLAVICLE_HTC = 16,
7964 XR_BODY_JOINT_LEFT_SCAPULA_HTC = 17,
7965 XR_BODY_JOINT_LEFT_ARM_HTC = 18,
7966 XR_BODY_JOINT_LEFT_ELBOW_HTC = 19,
7967 XR_BODY_JOINT_LEFT_WRIST_HTC = 20,
7968 XR_BODY_JOINT_RIGHT_CLAVICLE_HTC = 21,
7969 XR_BODY_JOINT_RIGHT_SCAPULA_HTC = 22,
7970 XR_BODY_JOINT_RIGHT_ARM_HTC = 23,
7971 XR_BODY_JOINT_RIGHT_ELBOW_HTC = 24,
7972 XR_BODY_JOINT_RIGHT_WRIST_HTC = 25,
7973 XR_BODY_JOINT_MAX_ENUM_HTC = 0x7FFFFFFF
7974} XrBodyJointHTC;
7975
7976typedef enum XrBodyJointSetHTC {
7977 XR_BODY_JOINT_SET_FULL_HTC = 0,
7978 XR_BODY_JOINT_SET_MAX_ENUM_HTC = 0x7FFFFFFF
7979} XrBodyJointSetHTC;
7980
7981typedef enum XrBodyJointConfidenceHTC {
7982 XR_BODY_JOINT_CONFIDENCE_NONE_HTC = 0,
7983 XR_BODY_JOINT_CONFIDENCE_LOW_HTC = 1,
7984 XR_BODY_JOINT_CONFIDENCE_HIGH_HTC = 2,
7985 XR_BODY_JOINT_CONFIDENCE_MAX_ENUM_HTC = 0x7FFFFFFF
7986} XrBodyJointConfidenceHTC;
7987// XrSystemBodyTrackingPropertiesHTC extends XrSystemProperties
7988typedef struct XrSystemBodyTrackingPropertiesHTC {
7989 XrStructureType type;
7990 void* XR_MAY_ALIAS next;
7991 XrBool32 supportsBodyTracking;
7992} XrSystemBodyTrackingPropertiesHTC;
7993
7994typedef struct XrBodyTrackerCreateInfoHTC {
7995 XrStructureType type;
7996 const void* XR_MAY_ALIAS next;
7997 XrBodyJointSetHTC bodyJointSet;
7998} XrBodyTrackerCreateInfoHTC;
7999
8000typedef struct XrBodyJointsLocateInfoHTC {
8001 XrStructureType type;
8002 const void* XR_MAY_ALIAS next;
8003 XrSpace baseSpace;
8004 XrTime time;
8005} XrBodyJointsLocateInfoHTC;
8006
8007typedef struct XrBodyJointLocationHTC {
8008 XrSpaceLocationFlags locationFlags;
8009 XrPosef pose;
8010} XrBodyJointLocationHTC;
8011
8012typedef struct XrBodyJointLocationsHTC {
8013 XrStructureType type;
8014 void* XR_MAY_ALIAS next;
8015 XrSpaceLocationFlags combinedLocationFlags;
8016 XrBodyJointConfidenceHTC confidenceLevel;
8017 uint32_t jointLocationCount;
8018 XrBodyJointLocationHTC* jointLocations;
8019 uint32_t skeletonGenerationId;
8020} XrBodyJointLocationsHTC;
8021
8022typedef struct XrBodySkeletonJointHTC {
8023 XrPosef pose;
8024} XrBodySkeletonJointHTC;
8025
8026typedef struct XrBodySkeletonHTC {
8027 XrStructureType type;
8028 void* XR_MAY_ALIAS next;
8029 uint32_t jointCount;
8030 XrBodySkeletonJointHTC* joints;
8031} XrBodySkeletonHTC;
8032
8033typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerHTC)(XrSession session, const XrBodyTrackerCreateInfoHTC* createInfo, XrBodyTrackerHTC* bodyTracker);
8034typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerHTC)(XrBodyTrackerHTC bodyTracker);
8035typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsHTC)(XrBodyTrackerHTC bodyTracker, const XrBodyJointsLocateInfoHTC* locateInfo, XrBodyJointLocationsHTC* locations);
8036typedef XrResult (XRAPI_PTR *PFN_xrGetBodySkeletonHTC)(XrBodyTrackerHTC bodyTracker, XrSpace baseSpace, uint32_t skeletonGenerationId, XrBodySkeletonHTC* skeleton);
8037
8038#ifndef XR_NO_PROTOTYPES
8039#ifdef XR_EXTENSION_PROTOTYPES
8040XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerHTC(
8041 XrSession session,
8042 const XrBodyTrackerCreateInfoHTC* createInfo,
8043 XrBodyTrackerHTC* bodyTracker);
8044
8045XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerHTC(
8046 XrBodyTrackerHTC bodyTracker);
8047
8048XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsHTC(
8049 XrBodyTrackerHTC bodyTracker,
8050 const XrBodyJointsLocateInfoHTC* locateInfo,
8051 XrBodyJointLocationsHTC* locations);
8052
8053XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonHTC(
8054 XrBodyTrackerHTC bodyTracker,
8055 XrSpace baseSpace,
8056 uint32_t skeletonGenerationId,
8057 XrBodySkeletonHTC* skeleton);
8058#endif /* XR_EXTENSION_PROTOTYPES */
8059#endif /* !XR_NO_PROTOTYPES */
8060
8061
8062// XR_EXT_active_action_set_priority is a preprocessor guard. Do not pass it to API calls.
8063#define XR_EXT_active_action_set_priority 1
8064#define XR_EXT_active_action_set_priority_SPEC_VERSION 1
8065#define XR_EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME "XR_EXT_active_action_set_priority"
8066typedef struct XrActiveActionSetPriorityEXT {
8067 XrActionSet actionSet;
8068 uint32_t priorityOverride;
8069} XrActiveActionSetPriorityEXT;
8070
8071// XrActiveActionSetPrioritiesEXT extends XrActionsSyncInfo
8072typedef struct XrActiveActionSetPrioritiesEXT {
8073 XrStructureType type;
8074 const void* XR_MAY_ALIAS next;
8075 uint32_t actionSetPriorityCount;
8076 const XrActiveActionSetPriorityEXT* actionSetPriorities;
8077} XrActiveActionSetPrioritiesEXT;
8078
8079
8080
8081// XR_MNDX_force_feedback_curl is a preprocessor guard. Do not pass it to API calls.
8082#define XR_MNDX_force_feedback_curl 1
8083#define XR_MNDX_force_feedback_curl_SPEC_VERSION 1
8084#define XR_MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME "XR_MNDX_force_feedback_curl"
8085
8086typedef enum XrForceFeedbackCurlLocationMNDX {
8087 XR_FORCE_FEEDBACK_CURL_LOCATION_THUMB_CURL_MNDX = 0,
8088 XR_FORCE_FEEDBACK_CURL_LOCATION_INDEX_CURL_MNDX = 1,
8089 XR_FORCE_FEEDBACK_CURL_LOCATION_MIDDLE_CURL_MNDX = 2,
8090 XR_FORCE_FEEDBACK_CURL_LOCATION_RING_CURL_MNDX = 3,
8091 XR_FORCE_FEEDBACK_CURL_LOCATION_LITTLE_CURL_MNDX = 4,
8092 XR_FORCE_FEEDBACK_CURL_LOCATION_MAX_ENUM_MNDX = 0x7FFFFFFF
8093} XrForceFeedbackCurlLocationMNDX;
8094// XrSystemForceFeedbackCurlPropertiesMNDX extends XrSystemProperties
8095typedef struct XrSystemForceFeedbackCurlPropertiesMNDX {
8096 XrStructureType type;
8097 void* XR_MAY_ALIAS next;
8098 XrBool32 supportsForceFeedbackCurl;
8099} XrSystemForceFeedbackCurlPropertiesMNDX;
8100
8101typedef struct XrForceFeedbackCurlApplyLocationMNDX {
8102 XrForceFeedbackCurlLocationMNDX location;
8103 float value;
8104} XrForceFeedbackCurlApplyLocationMNDX;
8105
8106typedef struct XrForceFeedbackCurlApplyLocationsMNDX {
8107 XrStructureType type;
8108 const void* XR_MAY_ALIAS next;
8109 uint32_t locationCount;
8110 XrForceFeedbackCurlApplyLocationMNDX* locations;
8111} XrForceFeedbackCurlApplyLocationsMNDX;
8112
8113typedef XrResult (XRAPI_PTR *PFN_xrApplyForceFeedbackCurlMNDX)(XrHandTrackerEXT handTracker, const XrForceFeedbackCurlApplyLocationsMNDX* locations);
8114
8115#ifndef XR_NO_PROTOTYPES
8116#ifdef XR_EXTENSION_PROTOTYPES
8117XRAPI_ATTR XrResult XRAPI_CALL xrApplyForceFeedbackCurlMNDX(
8118 XrHandTrackerEXT handTracker,
8119 const XrForceFeedbackCurlApplyLocationsMNDX* locations);
8120#endif /* XR_EXTENSION_PROTOTYPES */
8121#endif /* !XR_NO_PROTOTYPES */
8122
8123
8124// XR_BD_controller_interaction is a preprocessor guard. Do not pass it to API calls.
8125#define XR_BD_controller_interaction 1
8126#define XR_BD_controller_interaction_SPEC_VERSION 2
8127#define XR_BD_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_BD_controller_interaction"
8128
8129
8130// XR_BD_body_tracking is a preprocessor guard. Do not pass it to API calls.
8131#define XR_BD_body_tracking 1
8132
8133#define XR_BODY_JOINT_COUNT_BD 24
8134
8135
8136#define XR_BODY_JOINT_WITHOUT_ARM_COUNT_BD 16
8137
8138XR_DEFINE_HANDLE(XrBodyTrackerBD)
8139#define XR_BD_body_tracking_SPEC_VERSION 1
8140#define XR_BD_BODY_TRACKING_EXTENSION_NAME "XR_BD_body_tracking"
8141
8142typedef enum XrBodyJointBD {
8143 XR_BODY_JOINT_PELVIS_BD = 0,
8144 XR_BODY_JOINT_LEFT_HIP_BD = 1,
8145 XR_BODY_JOINT_RIGHT_HIP_BD = 2,
8146 XR_BODY_JOINT_SPINE1_BD = 3,
8147 XR_BODY_JOINT_LEFT_KNEE_BD = 4,
8148 XR_BODY_JOINT_RIGHT_KNEE_BD = 5,
8149 XR_BODY_JOINT_SPINE2_BD = 6,
8150 XR_BODY_JOINT_LEFT_ANKLE_BD = 7,
8151 XR_BODY_JOINT_RIGHT_ANKLE_BD = 8,
8152 XR_BODY_JOINT_SPINE3_BD = 9,
8153 XR_BODY_JOINT_LEFT_FOOT_BD = 10,
8154 XR_BODY_JOINT_RIGHT_FOOT_BD = 11,
8155 XR_BODY_JOINT_NECK_BD = 12,
8156 XR_BODY_JOINT_LEFT_COLLAR_BD = 13,
8157 XR_BODY_JOINT_RIGHT_COLLAR_BD = 14,
8158 XR_BODY_JOINT_HEAD_BD = 15,
8159 XR_BODY_JOINT_LEFT_SHOULDER_BD = 16,
8160 XR_BODY_JOINT_RIGHT_SHOULDER_BD = 17,
8161 XR_BODY_JOINT_LEFT_ELBOW_BD = 18,
8162 XR_BODY_JOINT_RIGHT_ELBOW_BD = 19,
8163 XR_BODY_JOINT_LEFT_WRIST_BD = 20,
8164 XR_BODY_JOINT_RIGHT_WRIST_BD = 21,
8165 XR_BODY_JOINT_LEFT_HAND_BD = 22,
8166 XR_BODY_JOINT_RIGHT_HAND_BD = 23,
8167 XR_BODY_JOINT_MAX_ENUM_BD = 0x7FFFFFFF
8168} XrBodyJointBD;
8169
8170typedef enum XrBodyJointSetBD {
8171 XR_BODY_JOINT_SET_BODY_WITHOUT_ARM_BD = 1,
8172 XR_BODY_JOINT_SET_FULL_BODY_JOINTS_BD = 2,
8173 XR_BODY_JOINT_SET_MAX_ENUM_BD = 0x7FFFFFFF
8174} XrBodyJointSetBD;
8175// XrSystemBodyTrackingPropertiesBD extends XrSystemProperties
8176typedef struct XrSystemBodyTrackingPropertiesBD {
8177 XrStructureType type;
8178 void* XR_MAY_ALIAS next;
8179 XrBool32 supportsBodyTracking;
8180} XrSystemBodyTrackingPropertiesBD;
8181
8182typedef struct XrBodyTrackerCreateInfoBD {
8183 XrStructureType type;
8184 const void* XR_MAY_ALIAS next;
8185 XrBodyJointSetBD jointSet;
8186} XrBodyTrackerCreateInfoBD;
8187
8188typedef struct XrBodyJointsLocateInfoBD {
8189 XrStructureType type;
8190 const void* XR_MAY_ALIAS next;
8191 XrSpace baseSpace;
8192 XrTime time;
8193} XrBodyJointsLocateInfoBD;
8194
8195typedef struct XrBodyJointLocationBD {
8196 XrSpaceLocationFlags locationFlags;
8197 XrPosef pose;
8198} XrBodyJointLocationBD;
8199
8200typedef struct XrBodyJointLocationsBD {
8201 XrStructureType type;
8202 void* XR_MAY_ALIAS next;
8203 XrBool32 allJointPosesTracked;
8204 uint32_t jointLocationCount;
8205 XrBodyJointLocationBD* jointLocations;
8206} XrBodyJointLocationsBD;
8207
8208typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerBD)(XrSession session, const XrBodyTrackerCreateInfoBD* createInfo, XrBodyTrackerBD* bodyTracker);
8209typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerBD)(XrBodyTrackerBD bodyTracker);
8210typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsBD)(XrBodyTrackerBD bodyTracker, const XrBodyJointsLocateInfoBD* locateInfo, XrBodyJointLocationsBD* locations);
8211
8212#ifndef XR_NO_PROTOTYPES
8213#ifdef XR_EXTENSION_PROTOTYPES
8214XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerBD(
8215 XrSession session,
8216 const XrBodyTrackerCreateInfoBD* createInfo,
8217 XrBodyTrackerBD* bodyTracker);
8218
8219XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerBD(
8220 XrBodyTrackerBD bodyTracker);
8221
8222XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsBD(
8223 XrBodyTrackerBD bodyTracker,
8224 const XrBodyJointsLocateInfoBD* locateInfo,
8225 XrBodyJointLocationsBD* locations);
8226#endif /* XR_EXTENSION_PROTOTYPES */
8227#endif /* !XR_NO_PROTOTYPES */
8228
8229
8230// XR_BD_spatial_sensing is a preprocessor guard. Do not pass it to API calls.
8231#define XR_BD_spatial_sensing 1
8232XR_DEFINE_ATOM(XrSpatialEntityIdBD)
8233XR_DEFINE_HANDLE(XrSenseDataProviderBD)
8234XR_DEFINE_HANDLE(XrSenseDataSnapshotBD)
8235XR_DEFINE_HANDLE(XrAnchorBD)
8236#define XR_BD_spatial_sensing_SPEC_VERSION 1
8237#define XR_BD_SPATIAL_SENSING_EXTENSION_NAME "XR_BD_spatial_sensing"
8238
8239typedef enum XrSpatialEntityComponentTypeBD {
8240 XR_SPATIAL_ENTITY_COMPONENT_TYPE_LOCATION_BD = 0,
8241 XR_SPATIAL_ENTITY_COMPONENT_TYPE_SEMANTIC_BD = 1,
8242 XR_SPATIAL_ENTITY_COMPONENT_TYPE_BOUNDING_BOX_2D_BD = 2,
8243 XR_SPATIAL_ENTITY_COMPONENT_TYPE_POLYGON_BD = 3,
8244 XR_SPATIAL_ENTITY_COMPONENT_TYPE_BOUNDING_BOX_3D_BD = 4,
8245 XR_SPATIAL_ENTITY_COMPONENT_TYPE_TRIANGLE_MESH_BD = 5,
8246 XR_SPATIAL_ENTITY_COMPONENT_TYPE_PLANE_ORIENTATION_BD = 1000396000,
8247 XR_SPATIAL_ENTITY_COMPONENT_TYPE_MAX_ENUM_BD = 0x7FFFFFFF
8248} XrSpatialEntityComponentTypeBD;
8249
8250typedef enum XrSemanticLabelBD {
8251 XR_SEMANTIC_LABEL_UNKNOWN_BD = 0,
8252 XR_SEMANTIC_LABEL_FLOOR_BD = 1,
8253 XR_SEMANTIC_LABEL_CEILING_BD = 2,
8254 XR_SEMANTIC_LABEL_WALL_BD = 3,
8255 XR_SEMANTIC_LABEL_DOOR_BD = 4,
8256 XR_SEMANTIC_LABEL_WINDOW_BD = 5,
8257 XR_SEMANTIC_LABEL_OPENING_BD = 6,
8258 XR_SEMANTIC_LABEL_TABLE_BD = 7,
8259 XR_SEMANTIC_LABEL_SOFA_BD = 8,
8260 XR_SEMANTIC_LABEL_CHAIR_BD = 9,
8261 XR_SEMANTIC_LABEL_HUMAN_BD = 10,
8262 XR_SEMANTIC_LABEL_BEAM_BD = 11,
8263 XR_SEMANTIC_LABEL_COLUMN_BD = 12,
8264 XR_SEMANTIC_LABEL_CURTAIN_BD = 13,
8265 XR_SEMANTIC_LABEL_CABINET_BD = 14,
8266 XR_SEMANTIC_LABEL_BED_BD = 15,
8267 XR_SEMANTIC_LABEL_PLANT_BD = 16,
8268 XR_SEMANTIC_LABEL_SCREEN_BD = 17,
8269 XR_SEMANTIC_LABEL_VIRTUAL_WALL_BD = 18,
8270 XR_SEMANTIC_LABEL_REFRIGERATOR_BD = 19,
8271 XR_SEMANTIC_LABEL_WASHING_MACHINE_BD = 20,
8272 XR_SEMANTIC_LABEL_AIR_CONDITIONER_BD = 21,
8273 XR_SEMANTIC_LABEL_LAMP_BD = 22,
8274 XR_SEMANTIC_LABEL_WALL_ART_BD = 23,
8275 XR_SEMANTIC_LABEL_STAIRWAY_BD = 24,
8276 XR_SEMANTIC_LABEL_MAX_ENUM_BD = 0x7FFFFFFF
8277} XrSemanticLabelBD;
8278
8279typedef enum XrSenseDataProviderTypeBD {
8280 XR_SENSE_DATA_PROVIDER_TYPE_ANCHOR_BD = 1000390000,
8281 XR_SENSE_DATA_PROVIDER_TYPE_SCENE_BD = 1000392000,
8282 XR_SENSE_DATA_PROVIDER_TYPE_MESH_BD = 1000393000,
8283 XR_SENSE_DATA_PROVIDER_TYPE_PLANE_BD = 1000396000,
8284 XR_SENSE_DATA_PROVIDER_TYPE_MAX_ENUM_BD = 0x7FFFFFFF
8285} XrSenseDataProviderTypeBD;
8286
8287typedef enum XrSenseDataProviderStateBD {
8288 XR_SENSE_DATA_PROVIDER_STATE_INITIALIZED_BD = 0,
8289 XR_SENSE_DATA_PROVIDER_STATE_RUNNING_BD = 1,
8290 XR_SENSE_DATA_PROVIDER_STATE_STOPPED_BD = 2,
8291 XR_SENSE_DATA_PROVIDER_STATE_MAX_ENUM_BD = 0x7FFFFFFF
8292} XrSenseDataProviderStateBD;
8293// XrSystemSpatialSensingPropertiesBD extends XrSystemProperties
8294typedef struct XrSystemSpatialSensingPropertiesBD {
8295 XrStructureType type;
8296 void* XR_MAY_ALIAS next;
8297 XrBool32 supportsSpatialSensing;
8298} XrSystemSpatialSensingPropertiesBD;
8299
8300typedef struct XrSpatialEntityComponentGetInfoBD {
8301 XrStructureType type;
8302 const void* XR_MAY_ALIAS next;
8303 XrSpatialEntityIdBD entityId;
8304 XrSpatialEntityComponentTypeBD componentType;
8305} XrSpatialEntityComponentGetInfoBD;
8306
8307typedef struct XrSpatialEntityComponentDataBaseHeaderBD {
8308 XrStructureType type;
8309 void* XR_MAY_ALIAS next;
8310} XrSpatialEntityComponentDataBaseHeaderBD;
8311
8312typedef struct XrSpatialEntityLocationGetInfoBD {
8313 XrStructureType type;
8314 const void* XR_MAY_ALIAS next;
8315 XrSpace baseSpace;
8316} XrSpatialEntityLocationGetInfoBD;
8317
8318// XrSpatialEntityComponentDataLocationBD extends XrSpatialEntityComponentDataBaseHeaderBD
8319typedef struct XrSpatialEntityComponentDataLocationBD {
8320 XrStructureType type;
8321 void* XR_MAY_ALIAS next;
8322 XrSpaceLocation location;
8323} XrSpatialEntityComponentDataLocationBD;
8324
8325// XrSpatialEntityComponentDataSemanticBD extends XrSpatialEntityComponentDataBaseHeaderBD
8326typedef struct XrSpatialEntityComponentDataSemanticBD {
8327 XrStructureType type;
8328 void* XR_MAY_ALIAS next;
8329 uint32_t labelCapacityInput;
8330 uint32_t labelCountOutput;
8331 XrSemanticLabelBD* labels;
8332} XrSpatialEntityComponentDataSemanticBD;
8333
8334// XrSpatialEntityComponentDataBoundingBox2DBD extends XrSpatialEntityComponentDataBaseHeaderBD
8335typedef struct XrSpatialEntityComponentDataBoundingBox2DBD {
8336 XrStructureType type;
8337 void* XR_MAY_ALIAS next;
8338 XrRect2Df boundingBox2D;
8339} XrSpatialEntityComponentDataBoundingBox2DBD;
8340
8341// XrSpatialEntityComponentDataPolygonBD extends XrSpatialEntityComponentDataBaseHeaderBD
8342typedef struct XrSpatialEntityComponentDataPolygonBD {
8343 XrStructureType type;
8344 void* XR_MAY_ALIAS next;
8345 uint32_t vertexCapacityInput;
8346 uint32_t vertexCountOutput;
8347 XrVector2f* vertices;
8348} XrSpatialEntityComponentDataPolygonBD;
8349
8350// XrSpatialEntityComponentDataBoundingBox3DBD extends XrSpatialEntityComponentDataBaseHeaderBD
8351typedef struct XrSpatialEntityComponentDataBoundingBox3DBD {
8352 XrStructureType type;
8353 void* XR_MAY_ALIAS next;
8354 XrBoxf boundingBox3D;
8355} XrSpatialEntityComponentDataBoundingBox3DBD;
8356
8357// XrSpatialEntityComponentDataTriangleMeshBD extends XrSpatialEntityComponentDataBaseHeaderBD
8358typedef struct XrSpatialEntityComponentDataTriangleMeshBD {
8359 XrStructureType type;
8360 void* XR_MAY_ALIAS next;
8361 uint32_t vertexCapacityInput;
8362 uint32_t vertexCountOutput;
8363 XrVector3f* vertices;
8364 uint32_t indexCapacityInput;
8365 uint32_t indexCountOutput;
8366 uint16_t* indices;
8367} XrSpatialEntityComponentDataTriangleMeshBD;
8368
8369typedef struct XrSenseDataProviderCreateInfoBD {
8370 XrStructureType type;
8371 const void* XR_MAY_ALIAS next;
8372 XrSenseDataProviderTypeBD providerType;
8373} XrSenseDataProviderCreateInfoBD;
8374
8375typedef struct XrSenseDataProviderStartInfoBD {
8376 XrStructureType type;
8377 const void* XR_MAY_ALIAS next;
8378} XrSenseDataProviderStartInfoBD;
8379
8380typedef struct XrEventDataSenseDataProviderStateChangedBD {
8381 XrStructureType type;
8382 const void* XR_MAY_ALIAS next;
8383 XrSenseDataProviderBD provider;
8384 XrSenseDataProviderStateBD newState;
8385} XrEventDataSenseDataProviderStateChangedBD;
8386
8387typedef struct XrEventDataSenseDataUpdatedBD {
8388 XrStructureType type;
8389 const void* XR_MAY_ALIAS next;
8390 XrSenseDataProviderBD provider;
8391} XrEventDataSenseDataUpdatedBD;
8392
8393typedef struct XrSenseDataQueryInfoBD {
8394 XrStructureType type;
8395 const void* XR_MAY_ALIAS next;
8396} XrSenseDataQueryInfoBD;
8397
8398typedef struct XrSenseDataQueryCompletionBD {
8399 XrStructureType type;
8400 void* XR_MAY_ALIAS next;
8401 XrResult futureResult;
8402 XrSenseDataSnapshotBD snapshot;
8403} XrSenseDataQueryCompletionBD;
8404
8405typedef struct XrQueriedSenseDataGetInfoBD {
8406 XrStructureType type;
8407 const void* XR_MAY_ALIAS next;
8408} XrQueriedSenseDataGetInfoBD;
8409
8410typedef struct XrSpatialEntityStateBD {
8411 XrStructureType type;
8412 void* XR_MAY_ALIAS next;
8413 XrSpatialEntityIdBD entityId;
8414 XrTime lastUpdateTime;
8415 XrUuidEXT uuid;
8416} XrSpatialEntityStateBD;
8417
8418typedef struct XrQueriedSenseDataBD {
8419 XrStructureType type;
8420 void* XR_MAY_ALIAS next;
8421 uint32_t stateCapacityInput;
8422 uint32_t stateCountOutput;
8423 XrSpatialEntityStateBD* states;
8424} XrQueriedSenseDataBD;
8425
8426// XrSenseDataFilterUuidBD extends XrSenseDataQueryInfoBD
8427typedef struct XrSenseDataFilterUuidBD {
8428 XrStructureType type;
8429 const void* XR_MAY_ALIAS next;
8430 uint32_t uuidCount;
8431 const XrUuidEXT* uuids;
8432} XrSenseDataFilterUuidBD;
8433
8434// XrSenseDataFilterSemanticBD extends XrSenseDataQueryInfoBD
8435typedef struct XrSenseDataFilterSemanticBD {
8436 XrStructureType type;
8437 const void* XR_MAY_ALIAS next;
8438 uint32_t labelCount;
8439 const XrSemanticLabelBD* labels;
8440} XrSenseDataFilterSemanticBD;
8441
8442typedef struct XrSpatialEntityAnchorCreateInfoBD {
8443 XrStructureType type;
8444 const void* XR_MAY_ALIAS next;
8445 XrSenseDataSnapshotBD snapshot;
8446 XrSpatialEntityIdBD entityId;
8447} XrSpatialEntityAnchorCreateInfoBD;
8448
8449typedef struct XrAnchorSpaceCreateInfoBD {
8450 XrStructureType type;
8451 const void* XR_MAY_ALIAS next;
8452 XrAnchorBD anchor;
8453 XrPosef poseInAnchorSpace;
8454} XrAnchorSpaceCreateInfoBD;
8455
8456typedef struct XrFutureCompletionEXT {
8457 XrStructureType type;
8458 void* XR_MAY_ALIAS next;
8459 XrResult futureResult;
8460} XrFutureCompletionEXT;
8461
8462typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialEntityComponentTypesBD)(XrSenseDataSnapshotBD snapshot, XrSpatialEntityIdBD entityId, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpatialEntityComponentTypeBD* componentTypes);
8463typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialEntityUuidBD)(XrSenseDataSnapshotBD snapshot, XrSpatialEntityIdBD entityId, XrUuidEXT* uuid);
8464typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialEntityComponentDataBD)(XrSenseDataSnapshotBD snapshot, const XrSpatialEntityComponentGetInfoBD* getInfo, XrSpatialEntityComponentDataBaseHeaderBD* componentData);
8465typedef XrResult (XRAPI_PTR *PFN_xrCreateSenseDataProviderBD)(XrSession session, const XrSenseDataProviderCreateInfoBD* createInfo, XrSenseDataProviderBD* provider);
8466typedef XrResult (XRAPI_PTR *PFN_xrStartSenseDataProviderAsyncBD)(XrSenseDataProviderBD provider, const XrSenseDataProviderStartInfoBD* startInfo, XrFutureEXT* future);
8467typedef XrResult (XRAPI_PTR *PFN_xrStartSenseDataProviderCompleteBD)(XrSession session, XrFutureEXT future, XrFutureCompletionEXT* completion);
8468typedef XrResult (XRAPI_PTR *PFN_xrGetSenseDataProviderStateBD)(XrSenseDataProviderBD provider, XrSenseDataProviderStateBD* state);
8469typedef XrResult (XRAPI_PTR *PFN_xrQuerySenseDataAsyncBD)(XrSenseDataProviderBD provider, const XrSenseDataQueryInfoBD* queryInfo, XrFutureEXT* future);
8470typedef XrResult (XRAPI_PTR *PFN_xrQuerySenseDataCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrSenseDataQueryCompletionBD* completion);
8471typedef XrResult (XRAPI_PTR *PFN_xrDestroySenseDataSnapshotBD)(XrSenseDataSnapshotBD snapshot);
8472typedef XrResult (XRAPI_PTR *PFN_xrGetQueriedSenseDataBD)(XrSenseDataSnapshotBD snapshot, XrQueriedSenseDataGetInfoBD* getInfo, XrQueriedSenseDataBD* queriedSenseData);
8473typedef XrResult (XRAPI_PTR *PFN_xrStopSenseDataProviderBD)(XrSenseDataProviderBD provider);
8474typedef XrResult (XRAPI_PTR *PFN_xrDestroySenseDataProviderBD)(XrSenseDataProviderBD provider);
8475typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialEntityAnchorBD)(XrSenseDataProviderBD provider, const XrSpatialEntityAnchorCreateInfoBD* createInfo, XrAnchorBD* anchor);
8476typedef XrResult (XRAPI_PTR *PFN_xrDestroyAnchorBD)(XrAnchorBD anchor);
8477typedef XrResult (XRAPI_PTR *PFN_xrGetAnchorUuidBD)(XrAnchorBD anchor, XrUuidEXT* uuid);
8478typedef XrResult (XRAPI_PTR *PFN_xrCreateAnchorSpaceBD)(XrSession session, const XrAnchorSpaceCreateInfoBD* createInfo, XrSpace* space);
8479
8480#ifndef XR_NO_PROTOTYPES
8481#ifdef XR_EXTENSION_PROTOTYPES
8482XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialEntityComponentTypesBD(
8483 XrSenseDataSnapshotBD snapshot,
8484 XrSpatialEntityIdBD entityId,
8485 uint32_t componentTypeCapacityInput,
8486 uint32_t* componentTypeCountOutput,
8487 XrSpatialEntityComponentTypeBD* componentTypes);
8488
8489XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialEntityUuidBD(
8490 XrSenseDataSnapshotBD snapshot,
8491 XrSpatialEntityIdBD entityId,
8492 XrUuidEXT* uuid);
8493
8494XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialEntityComponentDataBD(
8495 XrSenseDataSnapshotBD snapshot,
8496 const XrSpatialEntityComponentGetInfoBD* getInfo,
8497 XrSpatialEntityComponentDataBaseHeaderBD* componentData);
8498
8499XRAPI_ATTR XrResult XRAPI_CALL xrCreateSenseDataProviderBD(
8500 XrSession session,
8501 const XrSenseDataProviderCreateInfoBD* createInfo,
8502 XrSenseDataProviderBD* provider);
8503
8504XRAPI_ATTR XrResult XRAPI_CALL xrStartSenseDataProviderAsyncBD(
8505 XrSenseDataProviderBD provider,
8506 const XrSenseDataProviderStartInfoBD* startInfo,
8507 XrFutureEXT* future);
8508
8509XRAPI_ATTR XrResult XRAPI_CALL xrStartSenseDataProviderCompleteBD(
8510 XrSession session,
8511 XrFutureEXT future,
8512 XrFutureCompletionEXT* completion);
8513
8514XRAPI_ATTR XrResult XRAPI_CALL xrGetSenseDataProviderStateBD(
8515 XrSenseDataProviderBD provider,
8516 XrSenseDataProviderStateBD* state);
8517
8518XRAPI_ATTR XrResult XRAPI_CALL xrQuerySenseDataAsyncBD(
8519 XrSenseDataProviderBD provider,
8520 const XrSenseDataQueryInfoBD* queryInfo,
8521 XrFutureEXT* future);
8522
8523XRAPI_ATTR XrResult XRAPI_CALL xrQuerySenseDataCompleteBD(
8524 XrSenseDataProviderBD provider,
8525 XrFutureEXT future,
8526 XrSenseDataQueryCompletionBD* completion);
8527
8528XRAPI_ATTR XrResult XRAPI_CALL xrDestroySenseDataSnapshotBD(
8529 XrSenseDataSnapshotBD snapshot);
8530
8531XRAPI_ATTR XrResult XRAPI_CALL xrGetQueriedSenseDataBD(
8532 XrSenseDataSnapshotBD snapshot,
8533 XrQueriedSenseDataGetInfoBD* getInfo,
8534 XrQueriedSenseDataBD* queriedSenseData);
8535
8536XRAPI_ATTR XrResult XRAPI_CALL xrStopSenseDataProviderBD(
8537 XrSenseDataProviderBD provider);
8538
8539XRAPI_ATTR XrResult XRAPI_CALL xrDestroySenseDataProviderBD(
8540 XrSenseDataProviderBD provider);
8541
8542XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialEntityAnchorBD(
8543 XrSenseDataProviderBD provider,
8544 const XrSpatialEntityAnchorCreateInfoBD* createInfo,
8545 XrAnchorBD* anchor);
8546
8547XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAnchorBD(
8548 XrAnchorBD anchor);
8549
8550XRAPI_ATTR XrResult XRAPI_CALL xrGetAnchorUuidBD(
8551 XrAnchorBD anchor,
8552 XrUuidEXT* uuid);
8553
8554XRAPI_ATTR XrResult XRAPI_CALL xrCreateAnchorSpaceBD(
8555 XrSession session,
8556 const XrAnchorSpaceCreateInfoBD* createInfo,
8557 XrSpace* space);
8558#endif /* XR_EXTENSION_PROTOTYPES */
8559#endif /* !XR_NO_PROTOTYPES */
8560
8561
8562// XR_BD_spatial_anchor is a preprocessor guard. Do not pass it to API calls.
8563#define XR_BD_spatial_anchor 1
8564#define XR_BD_spatial_anchor_SPEC_VERSION 1
8565#define XR_BD_SPATIAL_ANCHOR_EXTENSION_NAME "XR_BD_spatial_anchor"
8566
8567typedef enum XrPersistenceLocationBD {
8568 XR_PERSISTENCE_LOCATION_LOCAL_BD = 0,
8569 XR_PERSISTENCE_LOCATION_MAX_ENUM_BD = 0x7FFFFFFF
8570} XrPersistenceLocationBD;
8571// XrSystemSpatialAnchorPropertiesBD extends XrSystemProperties
8572typedef struct XrSystemSpatialAnchorPropertiesBD {
8573 XrStructureType type;
8574 void* XR_MAY_ALIAS next;
8575 XrBool32 supportsSpatialAnchor;
8576} XrSystemSpatialAnchorPropertiesBD;
8577
8578typedef struct XrSpatialAnchorCreateInfoBD {
8579 XrStructureType type;
8580 const void* XR_MAY_ALIAS next;
8581 XrSpace space;
8582 XrPosef pose;
8583 XrTime time;
8584} XrSpatialAnchorCreateInfoBD;
8585
8586typedef struct XrSpatialAnchorCreateCompletionBD {
8587 XrStructureType type;
8588 void* XR_MAY_ALIAS next;
8589 XrResult futureResult;
8590 XrAnchorBD anchor;
8591 XrUuidEXT uuid;
8592} XrSpatialAnchorCreateCompletionBD;
8593
8594typedef struct XrSpatialAnchorPersistInfoBD {
8595 XrStructureType type;
8596 const void* XR_MAY_ALIAS next;
8597 XrPersistenceLocationBD location;
8598 XrAnchorBD anchor;
8599} XrSpatialAnchorPersistInfoBD;
8600
8601typedef struct XrSpatialAnchorUnpersistInfoBD {
8602 XrStructureType type;
8603 const void* XR_MAY_ALIAS next;
8604 XrPersistenceLocationBD location;
8605 XrAnchorBD anchor;
8606} XrSpatialAnchorUnpersistInfoBD;
8607
8608typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorCreateInfoBD* info, XrFutureEXT* future);
8609typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrSpatialAnchorCreateCompletionBD* completion);
8610typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorPersistInfoBD* info, XrFutureEXT* future);
8611typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion);
8612typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorUnpersistInfoBD* info, XrFutureEXT* future);
8613typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion);
8614
8615#ifndef XR_NO_PROTOTYPES
8616#ifdef XR_EXTENSION_PROTOTYPES
8617XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorAsyncBD(
8618 XrSenseDataProviderBD provider,
8619 const XrSpatialAnchorCreateInfoBD* info,
8620 XrFutureEXT* future);
8621
8622XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorCompleteBD(
8623 XrSenseDataProviderBD provider,
8624 XrFutureEXT future,
8625 XrSpatialAnchorCreateCompletionBD* completion);
8626
8627XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorAsyncBD(
8628 XrSenseDataProviderBD provider,
8629 const XrSpatialAnchorPersistInfoBD* info,
8630 XrFutureEXT* future);
8631
8632XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorCompleteBD(
8633 XrSenseDataProviderBD provider,
8634 XrFutureEXT future,
8635 XrFutureCompletionEXT* completion);
8636
8637XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorAsyncBD(
8638 XrSenseDataProviderBD provider,
8639 const XrSpatialAnchorUnpersistInfoBD* info,
8640 XrFutureEXT* future);
8641
8642XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorCompleteBD(
8643 XrSenseDataProviderBD provider,
8644 XrFutureEXT future,
8645 XrFutureCompletionEXT* completion);
8646#endif /* XR_EXTENSION_PROTOTYPES */
8647#endif /* !XR_NO_PROTOTYPES */
8648
8649
8650// XR_BD_spatial_anchor_sharing is a preprocessor guard. Do not pass it to API calls.
8651#define XR_BD_spatial_anchor_sharing 1
8652#define XR_BD_spatial_anchor_sharing_SPEC_VERSION 2
8653#define XR_BD_SPATIAL_ANCHOR_SHARING_EXTENSION_NAME "XR_BD_spatial_anchor_sharing"
8654// XrSystemSpatialAnchorSharingPropertiesBD extends XrSystemProperties
8655typedef struct XrSystemSpatialAnchorSharingPropertiesBD {
8656 XrStructureType type;
8657 void* XR_MAY_ALIAS next;
8658 XrBool32 supportsSpatialAnchorSharing;
8659} XrSystemSpatialAnchorSharingPropertiesBD;
8660
8661typedef struct XrSpatialAnchorShareInfoBD {
8662 XrStructureType type;
8663 const void* XR_MAY_ALIAS next;
8664 XrAnchorBD anchor;
8665} XrSpatialAnchorShareInfoBD;
8666
8667typedef struct XrSharedSpatialAnchorDownloadInfoBD {
8668 XrStructureType type;
8669 const void* XR_MAY_ALIAS next;
8670 XrUuidEXT uuid;
8671} XrSharedSpatialAnchorDownloadInfoBD;
8672
8673typedef XrResult (XRAPI_PTR *PFN_xrShareSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorShareInfoBD* info, XrFutureEXT* future);
8674typedef XrResult (XRAPI_PTR *PFN_xrShareSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion);
8675typedef XrResult (XRAPI_PTR *PFN_xrDownloadSharedSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSharedSpatialAnchorDownloadInfoBD* info, XrFutureEXT* future);
8676typedef XrResult (XRAPI_PTR *PFN_xrDownloadSharedSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion);
8677
8678#ifndef XR_NO_PROTOTYPES
8679#ifdef XR_EXTENSION_PROTOTYPES
8680XRAPI_ATTR XrResult XRAPI_CALL xrShareSpatialAnchorAsyncBD(
8681 XrSenseDataProviderBD provider,
8682 const XrSpatialAnchorShareInfoBD* info,
8683 XrFutureEXT* future);
8684
8685XRAPI_ATTR XrResult XRAPI_CALL xrShareSpatialAnchorCompleteBD(
8686 XrSenseDataProviderBD provider,
8687 XrFutureEXT future,
8688 XrFutureCompletionEXT* completion);
8689
8690XRAPI_ATTR XrResult XRAPI_CALL xrDownloadSharedSpatialAnchorAsyncBD(
8691 XrSenseDataProviderBD provider,
8692 const XrSharedSpatialAnchorDownloadInfoBD* info,
8693 XrFutureEXT* future);
8694
8695XRAPI_ATTR XrResult XRAPI_CALL xrDownloadSharedSpatialAnchorCompleteBD(
8696 XrSenseDataProviderBD provider,
8697 XrFutureEXT future,
8698 XrFutureCompletionEXT* completion);
8699#endif /* XR_EXTENSION_PROTOTYPES */
8700#endif /* !XR_NO_PROTOTYPES */
8701
8702
8703// XR_BD_spatial_scene is a preprocessor guard. Do not pass it to API calls.
8704#define XR_BD_spatial_scene 1
8705#define XR_BD_spatial_scene_SPEC_VERSION 1
8706#define XR_BD_SPATIAL_SCENE_EXTENSION_NAME "XR_BD_spatial_scene"
8707// XrSystemSpatialScenePropertiesBD extends XrSystemProperties
8708typedef struct XrSystemSpatialScenePropertiesBD {
8709 XrStructureType type;
8710 void* XR_MAY_ALIAS next;
8711 XrBool32 supportsSpatialScene;
8712} XrSystemSpatialScenePropertiesBD;
8713
8714typedef struct XrSceneCaptureInfoBD {
8715 XrStructureType type;
8716 const void* XR_MAY_ALIAS next;
8717} XrSceneCaptureInfoBD;
8718
8719typedef XrResult (XRAPI_PTR *PFN_xrCaptureSceneAsyncBD)(XrSenseDataProviderBD provider, const XrSceneCaptureInfoBD* info, XrFutureEXT* future);
8720typedef XrResult (XRAPI_PTR *PFN_xrCaptureSceneCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion);
8721
8722#ifndef XR_NO_PROTOTYPES
8723#ifdef XR_EXTENSION_PROTOTYPES
8724XRAPI_ATTR XrResult XRAPI_CALL xrCaptureSceneAsyncBD(
8725 XrSenseDataProviderBD provider,
8726 const XrSceneCaptureInfoBD* info,
8727 XrFutureEXT* future);
8728
8729XRAPI_ATTR XrResult XRAPI_CALL xrCaptureSceneCompleteBD(
8730 XrSenseDataProviderBD provider,
8731 XrFutureEXT future,
8732 XrFutureCompletionEXT* completion);
8733#endif /* XR_EXTENSION_PROTOTYPES */
8734#endif /* !XR_NO_PROTOTYPES */
8735
8736
8737// XR_BD_spatial_mesh is a preprocessor guard. Do not pass it to API calls.
8738#define XR_BD_spatial_mesh 1
8739#define XR_BD_spatial_mesh_SPEC_VERSION 1
8740#define XR_BD_SPATIAL_MESH_EXTENSION_NAME "XR_BD_spatial_mesh"
8741
8742typedef enum XrSpatialMeshLodBD {
8743 XR_SPATIAL_MESH_LOD_COARSE_BD = 0,
8744 XR_SPATIAL_MESH_LOD_MEDIUM_BD = 1,
8745 XR_SPATIAL_MESH_LOD_FINE_BD = 2,
8746 XR_SPATIAL_MESH_LOD_MAX_ENUM_BD = 0x7FFFFFFF
8747} XrSpatialMeshLodBD;
8748typedef XrFlags64 XrSpatialMeshConfigFlagsBD;
8749
8750// Flag bits for XrSpatialMeshConfigFlagsBD
8751static const XrSpatialMeshConfigFlagsBD XR_SPATIAL_MESH_CONFIG_SEMANTIC_BIT_BD = 0x00000001;
8752static const XrSpatialMeshConfigFlagsBD XR_SPATIAL_MESH_CONFIG_ALIGN_SEMANTIC_WITH_VERTEX_BIT_BD = 0x00000002;
8753
8754// XrSystemSpatialMeshPropertiesBD extends XrSystemProperties
8755typedef struct XrSystemSpatialMeshPropertiesBD {
8756 XrStructureType type;
8757 void* XR_MAY_ALIAS next;
8758 XrBool32 supportsSpatialMesh;
8759} XrSystemSpatialMeshPropertiesBD;
8760
8761// XrSenseDataProviderCreateInfoSpatialMeshBD extends XrSenseDataProviderCreateInfoBD
8762typedef struct XrSenseDataProviderCreateInfoSpatialMeshBD {
8763 XrStructureType type;
8764 const void* XR_MAY_ALIAS next;
8765 XrSpatialMeshConfigFlagsBD configFlags;
8766 XrSpatialMeshLodBD lod;
8767} XrSenseDataProviderCreateInfoSpatialMeshBD;
8768
8769
8770
8771// XR_BD_future_progress is a preprocessor guard. Do not pass it to API calls.
8772#define XR_BD_future_progress 1
8773#define XR_BD_future_progress_SPEC_VERSION 1
8774#define XR_BD_FUTURE_PROGRESS_EXTENSION_NAME "XR_BD_future_progress"
8775// XrFuturePollResultProgressBD extends XrFuturePollResultEXT
8776typedef struct XrFuturePollResultProgressBD {
8777 XrStructureType type;
8778 void* XR_MAY_ALIAS next;
8779 XrBool32 isSupported;
8780 uint32_t progressPercentage;
8781} XrFuturePollResultProgressBD;
8782
8783
8784
8785// XR_BD_spatial_plane is a preprocessor guard. Do not pass it to API calls.
8786#define XR_BD_spatial_plane 1
8787#define XR_BD_spatial_plane_SPEC_VERSION 1
8788#define XR_BD_SPATIAL_PLANE_EXTENSION_NAME "XR_BD_spatial_plane"
8789
8790typedef enum XrPlaneOrientationBD {
8791 XR_PLANE_ORIENTATION_HORIZONTAL_UPWARD_BD = 0,
8792 XR_PLANE_ORIENTATION_HORIZONTAL_DOWNWARD_BD = 1,
8793 XR_PLANE_ORIENTATION_VERTICAL_BD = 2,
8794 XR_PLANE_ORIENTATION_ARBITRARY_BD = 3,
8795 XR_PLANE_ORIENTATION_MAX_ENUM_BD = 0x7FFFFFFF
8796} XrPlaneOrientationBD;
8797// XrSystemSpatialPlanePropertiesBD extends XrSystemProperties
8798typedef struct XrSystemSpatialPlanePropertiesBD {
8799 XrStructureType type;
8800 void* XR_MAY_ALIAS next;
8801 XrBool32 supportsSpatialPlane;
8802} XrSystemSpatialPlanePropertiesBD;
8803
8804// XrSpatialEntityComponentDataPlaneOrientationBD extends XrSpatialEntityComponentDataBaseHeaderBD
8805typedef struct XrSpatialEntityComponentDataPlaneOrientationBD {
8806 XrStructureType type;
8807 void* XR_MAY_ALIAS next;
8808 XrPlaneOrientationBD orientation;
8809} XrSpatialEntityComponentDataPlaneOrientationBD;
8810
8811// XrSenseDataFilterPlaneOrientationBD extends XrSenseDataQueryInfoBD
8812typedef struct XrSenseDataFilterPlaneOrientationBD {
8813 XrStructureType type;
8814 const void* XR_MAY_ALIAS next;
8815 uint32_t orientationCount;
8816 XrPlaneOrientationBD* orientations;
8817} XrSenseDataFilterPlaneOrientationBD;
8818
8819
8820
8821// XR_EXT_local_floor is a preprocessor guard. Do not pass it to API calls.
8822#define XR_EXT_local_floor 1
8823#define XR_EXT_local_floor_SPEC_VERSION 1
8824#define XR_EXT_LOCAL_FLOOR_EXTENSION_NAME "XR_EXT_local_floor"
8825
8826
8827// XR_EXT_hand_tracking_data_source is a preprocessor guard. Do not pass it to API calls.
8828#define XR_EXT_hand_tracking_data_source 1
8829#define XR_EXT_hand_tracking_data_source_SPEC_VERSION 1
8830#define XR_EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME "XR_EXT_hand_tracking_data_source"
8831
8832typedef enum XrHandTrackingDataSourceEXT {
8833 XR_HAND_TRACKING_DATA_SOURCE_UNOBSTRUCTED_EXT = 1,
8834 XR_HAND_TRACKING_DATA_SOURCE_CONTROLLER_EXT = 2,
8835 XR_HAND_TRACKING_DATA_SOURCE_MAX_ENUM_EXT = 0x7FFFFFFF
8836} XrHandTrackingDataSourceEXT;
8837// XrHandTrackingDataSourceInfoEXT extends XrHandTrackerCreateInfoEXT
8838typedef struct XrHandTrackingDataSourceInfoEXT {
8839 XrStructureType type;
8840 const void* XR_MAY_ALIAS next;
8841 uint32_t requestedDataSourceCount;
8842 XrHandTrackingDataSourceEXT* requestedDataSources;
8843} XrHandTrackingDataSourceInfoEXT;
8844
8845// XrHandTrackingDataSourceStateEXT extends XrHandJointLocationsEXT
8846typedef struct XrHandTrackingDataSourceStateEXT {
8847 XrStructureType type;
8848 void* XR_MAY_ALIAS next;
8849 XrBool32 isActive;
8850 XrHandTrackingDataSourceEXT dataSource;
8851} XrHandTrackingDataSourceStateEXT;
8852
8853
8854
8855// XR_EXT_plane_detection is a preprocessor guard. Do not pass it to API calls.
8856#define XR_EXT_plane_detection 1
8857XR_DEFINE_HANDLE(XrPlaneDetectorEXT)
8858#define XR_EXT_plane_detection_SPEC_VERSION 2
8859#define XR_EXT_PLANE_DETECTION_EXTENSION_NAME "XR_EXT_plane_detection"
8860
8861typedef enum XrPlaneDetectorOrientationEXT {
8862 XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_UPWARD_EXT = 0,
8863 XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_DOWNWARD_EXT = 1,
8864 XR_PLANE_DETECTOR_ORIENTATION_VERTICAL_EXT = 2,
8865 XR_PLANE_DETECTOR_ORIENTATION_ARBITRARY_EXT = 3,
8866 XR_PLANE_DETECTOR_ORIENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
8867} XrPlaneDetectorOrientationEXT;
8868
8869typedef enum XrPlaneDetectorSemanticTypeEXT {
8870 XR_PLANE_DETECTOR_SEMANTIC_TYPE_UNDEFINED_EXT = 0,
8871 XR_PLANE_DETECTOR_SEMANTIC_TYPE_CEILING_EXT = 1,
8872 XR_PLANE_DETECTOR_SEMANTIC_TYPE_FLOOR_EXT = 2,
8873 XR_PLANE_DETECTOR_SEMANTIC_TYPE_WALL_EXT = 3,
8874 XR_PLANE_DETECTOR_SEMANTIC_TYPE_PLATFORM_EXT = 4,
8875 XR_PLANE_DETECTOR_SEMANTIC_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
8876} XrPlaneDetectorSemanticTypeEXT;
8877
8878typedef enum XrPlaneDetectionStateEXT {
8879 XR_PLANE_DETECTION_STATE_NONE_EXT = 0,
8880 XR_PLANE_DETECTION_STATE_PENDING_EXT = 1,
8881 XR_PLANE_DETECTION_STATE_DONE_EXT = 2,
8882 XR_PLANE_DETECTION_STATE_ERROR_EXT = 3,
8883 XR_PLANE_DETECTION_STATE_FATAL_EXT = 4,
8884 XR_PLANE_DETECTION_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
8885} XrPlaneDetectionStateEXT;
8886typedef XrFlags64 XrPlaneDetectionCapabilityFlagsEXT;
8887
8888// Flag bits for XrPlaneDetectionCapabilityFlagsEXT
8889static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_DETECTION_BIT_EXT = 0x00000001;
8890static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_HOLES_BIT_EXT = 0x00000002;
8891static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_CEILING_BIT_EXT = 0x00000004;
8892static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_FLOOR_BIT_EXT = 0x00000008;
8893static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_WALL_BIT_EXT = 0x00000010;
8894static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_PLATFORM_BIT_EXT = 0x00000020;
8895static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_ORIENTATION_BIT_EXT = 0x00000040;
8896
8897typedef XrFlags64 XrPlaneDetectorFlagsEXT;
8898
8899// Flag bits for XrPlaneDetectorFlagsEXT
8900static const XrPlaneDetectorFlagsEXT XR_PLANE_DETECTOR_ENABLE_CONTOUR_BIT_EXT = 0x00000001;
8901
8902// XrSystemPlaneDetectionPropertiesEXT extends XrSystemProperties
8903typedef struct XrSystemPlaneDetectionPropertiesEXT {
8904 XrStructureType type;
8905 void* XR_MAY_ALIAS next;
8906 XrPlaneDetectionCapabilityFlagsEXT supportedFeatures;
8907} XrSystemPlaneDetectionPropertiesEXT;
8908
8909typedef struct XrPlaneDetectorCreateInfoEXT {
8910 XrStructureType type;
8911 const void* XR_MAY_ALIAS next;
8912 XrPlaneDetectorFlagsEXT flags;
8913} XrPlaneDetectorCreateInfoEXT;
8914
8915typedef XrExtent3Df XrExtent3DfEXT;
8916
8917typedef struct XrPlaneDetectorBeginInfoEXT {
8918 XrStructureType type;
8919 const void* XR_MAY_ALIAS next;
8920 XrSpace baseSpace;
8921 XrTime time;
8922 uint32_t orientationCount;
8923 const XrPlaneDetectorOrientationEXT* orientations;
8924 uint32_t semanticTypeCount;
8925 const XrPlaneDetectorSemanticTypeEXT* semanticTypes;
8926 uint32_t maxPlanes;
8927 float minArea;
8928 XrPosef boundingBoxPose;
8929 XrExtent3DfEXT boundingBoxExtent;
8930} XrPlaneDetectorBeginInfoEXT;
8931
8932typedef struct XrPlaneDetectorGetInfoEXT {
8933 XrStructureType type;
8934 const void* XR_MAY_ALIAS next;
8935 XrSpace baseSpace;
8936 XrTime time;
8937} XrPlaneDetectorGetInfoEXT;
8938
8939typedef struct XrPlaneDetectorLocationEXT {
8940 XrStructureType type;
8941 void* XR_MAY_ALIAS next;
8942 uint64_t planeId;
8943 XrSpaceLocationFlags locationFlags;
8944 XrPosef pose;
8945 XrExtent2Df extents;
8946 XrPlaneDetectorOrientationEXT orientation;
8947 XrPlaneDetectorSemanticTypeEXT semanticType;
8948 uint32_t polygonBufferCount;
8949} XrPlaneDetectorLocationEXT;
8950
8951typedef struct XrPlaneDetectorLocationsEXT {
8952 XrStructureType type;
8953 void* XR_MAY_ALIAS next;
8954 uint32_t planeLocationCapacityInput;
8955 uint32_t planeLocationCountOutput;
8956 XrPlaneDetectorLocationEXT* planeLocations;
8957} XrPlaneDetectorLocationsEXT;
8958
8959typedef struct XrPlaneDetectorPolygonBufferEXT {
8960 XrStructureType type;
8961 void* XR_MAY_ALIAS next;
8962 uint32_t vertexCapacityInput;
8963 uint32_t vertexCountOutput;
8964 XrVector2f* vertices;
8965} XrPlaneDetectorPolygonBufferEXT;
8966
8967typedef XrResult (XRAPI_PTR *PFN_xrCreatePlaneDetectorEXT)(XrSession session, const XrPlaneDetectorCreateInfoEXT* createInfo, XrPlaneDetectorEXT* planeDetector);
8968typedef XrResult (XRAPI_PTR *PFN_xrDestroyPlaneDetectorEXT)(XrPlaneDetectorEXT planeDetector);
8969typedef XrResult (XRAPI_PTR *PFN_xrBeginPlaneDetectionEXT)(XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorBeginInfoEXT* beginInfo);
8970typedef XrResult (XRAPI_PTR *PFN_xrGetPlaneDetectionStateEXT)(XrPlaneDetectorEXT planeDetector, XrPlaneDetectionStateEXT* state);
8971typedef XrResult (XRAPI_PTR *PFN_xrGetPlaneDetectionsEXT)(XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorGetInfoEXT* info, XrPlaneDetectorLocationsEXT* locations);
8972typedef XrResult (XRAPI_PTR *PFN_xrGetPlanePolygonBufferEXT)(XrPlaneDetectorEXT planeDetector, uint64_t planeId, uint32_t polygonBufferIndex, XrPlaneDetectorPolygonBufferEXT* polygonBuffer);
8973
8974#ifndef XR_NO_PROTOTYPES
8975#ifdef XR_EXTENSION_PROTOTYPES
8976XRAPI_ATTR XrResult XRAPI_CALL xrCreatePlaneDetectorEXT(
8977 XrSession session,
8978 const XrPlaneDetectorCreateInfoEXT* createInfo,
8979 XrPlaneDetectorEXT* planeDetector);
8980
8981XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPlaneDetectorEXT(
8982 XrPlaneDetectorEXT planeDetector);
8983
8984XRAPI_ATTR XrResult XRAPI_CALL xrBeginPlaneDetectionEXT(
8985 XrPlaneDetectorEXT planeDetector,
8986 const XrPlaneDetectorBeginInfoEXT* beginInfo);
8987
8988XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionStateEXT(
8989 XrPlaneDetectorEXT planeDetector,
8990 XrPlaneDetectionStateEXT* state);
8991
8992XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionsEXT(
8993 XrPlaneDetectorEXT planeDetector,
8994 const XrPlaneDetectorGetInfoEXT* info,
8995 XrPlaneDetectorLocationsEXT* locations);
8996
8997XRAPI_ATTR XrResult XRAPI_CALL xrGetPlanePolygonBufferEXT(
8998 XrPlaneDetectorEXT planeDetector,
8999 uint64_t planeId,
9000 uint32_t polygonBufferIndex,
9001 XrPlaneDetectorPolygonBufferEXT* polygonBuffer);
9002#endif /* XR_EXTENSION_PROTOTYPES */
9003#endif /* !XR_NO_PROTOTYPES */
9004
9005
9006// XR_OPPO_controller_interaction is a preprocessor guard. Do not pass it to API calls.
9007#define XR_OPPO_controller_interaction 1
9008#define XR_OPPO_controller_interaction_SPEC_VERSION 1
9009#define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_OPPO_controller_interaction"
9010
9011
9012// XR_EXT_future is a preprocessor guard. Do not pass it to API calls.
9013#define XR_EXT_future 1
9014#define XR_EXT_future_SPEC_VERSION 1
9015#define XR_EXT_FUTURE_EXTENSION_NAME "XR_EXT_future"
9016#define XR_NULL_FUTURE_EXT 0
9017
9018typedef enum XrFutureStateEXT {
9019 XR_FUTURE_STATE_PENDING_EXT = 1,
9020 XR_FUTURE_STATE_READY_EXT = 2,
9021 XR_FUTURE_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
9022} XrFutureStateEXT;
9023typedef struct XrFutureCancelInfoEXT {
9024 XrStructureType type;
9025 const void* XR_MAY_ALIAS next;
9026 XrFutureEXT future;
9027} XrFutureCancelInfoEXT;
9028
9029typedef struct XrFuturePollInfoEXT {
9030 XrStructureType type;
9031 const void* XR_MAY_ALIAS next;
9032 XrFutureEXT future;
9033} XrFuturePollInfoEXT;
9034
9035typedef struct XR_MAY_ALIAS XrFutureCompletionBaseHeaderEXT {
9036 XrStructureType type;
9037 void* XR_MAY_ALIAS next;
9038 XrResult futureResult;
9039} XrFutureCompletionBaseHeaderEXT;
9040
9041typedef struct XrFuturePollResultEXT {
9042 XrStructureType type;
9043 void* XR_MAY_ALIAS next;
9044 XrFutureStateEXT state;
9045} XrFuturePollResultEXT;
9046
9047typedef XrResult (XRAPI_PTR *PFN_xrPollFutureEXT)(XrInstance instance, const XrFuturePollInfoEXT* pollInfo, XrFuturePollResultEXT* pollResult);
9048typedef XrResult (XRAPI_PTR *PFN_xrCancelFutureEXT)(XrInstance instance, const XrFutureCancelInfoEXT* cancelInfo);
9049
9050#ifndef XR_NO_PROTOTYPES
9051#ifdef XR_EXTENSION_PROTOTYPES
9052XRAPI_ATTR XrResult XRAPI_CALL xrPollFutureEXT(
9053 XrInstance instance,
9054 const XrFuturePollInfoEXT* pollInfo,
9055 XrFuturePollResultEXT* pollResult);
9056
9057XRAPI_ATTR XrResult XRAPI_CALL xrCancelFutureEXT(
9058 XrInstance instance,
9059 const XrFutureCancelInfoEXT* cancelInfo);
9060#endif /* XR_EXTENSION_PROTOTYPES */
9061#endif /* !XR_NO_PROTOTYPES */
9062
9063
9064// XR_EXT_user_presence is a preprocessor guard. Do not pass it to API calls.
9065#define XR_EXT_user_presence 1
9066#define XR_EXT_user_presence_SPEC_VERSION 1
9067#define XR_EXT_USER_PRESENCE_EXTENSION_NAME "XR_EXT_user_presence"
9068typedef struct XrEventDataUserPresenceChangedEXT {
9069 XrStructureType type;
9070 const void* XR_MAY_ALIAS next;
9071 XrSession session;
9072 XrBool32 isUserPresent;
9073} XrEventDataUserPresenceChangedEXT;
9074
9075// XrSystemUserPresencePropertiesEXT extends XrSystemProperties
9076typedef struct XrSystemUserPresencePropertiesEXT {
9077 XrStructureType type;
9078 void* XR_MAY_ALIAS next;
9079 XrBool32 supportsUserPresence;
9080} XrSystemUserPresencePropertiesEXT;
9081
9082
9083
9084// XR_ML_user_calibration is a preprocessor guard. Do not pass it to API calls.
9085#define XR_ML_user_calibration 1
9086#define XR_ML_user_calibration_SPEC_VERSION 1
9087#define XR_ML_USER_CALIBRATION_EXTENSION_NAME "XR_ML_user_calibration"
9088
9089typedef enum XrHeadsetFitStatusML {
9090 XR_HEADSET_FIT_STATUS_UNKNOWN_ML = 0,
9091 XR_HEADSET_FIT_STATUS_NOT_WORN_ML = 1,
9092 XR_HEADSET_FIT_STATUS_GOOD_FIT_ML = 2,
9093 XR_HEADSET_FIT_STATUS_BAD_FIT_ML = 3,
9094 XR_HEADSET_FIT_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
9095} XrHeadsetFitStatusML;
9096
9097typedef enum XrEyeCalibrationStatusML {
9098 XR_EYE_CALIBRATION_STATUS_UNKNOWN_ML = 0,
9099 XR_EYE_CALIBRATION_STATUS_NONE_ML = 1,
9100 XR_EYE_CALIBRATION_STATUS_COARSE_ML = 2,
9101 XR_EYE_CALIBRATION_STATUS_FINE_ML = 3,
9102 XR_EYE_CALIBRATION_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
9103} XrEyeCalibrationStatusML;
9104typedef struct XrEventDataHeadsetFitChangedML {
9105 XrStructureType type;
9106 const void* XR_MAY_ALIAS next;
9107 XrHeadsetFitStatusML status;
9108 XrTime time;
9109} XrEventDataHeadsetFitChangedML;
9110
9111typedef struct XrEventDataEyeCalibrationChangedML {
9112 XrStructureType type;
9113 const void* XR_MAY_ALIAS next;
9114 XrEyeCalibrationStatusML status;
9115} XrEventDataEyeCalibrationChangedML;
9116
9117typedef struct XrUserCalibrationEnableEventsInfoML {
9118 XrStructureType type;
9119 const void* XR_MAY_ALIAS next;
9120 XrBool32 enabled;
9121} XrUserCalibrationEnableEventsInfoML;
9122
9123typedef XrResult (XRAPI_PTR *PFN_xrEnableUserCalibrationEventsML)(XrInstance instance, const XrUserCalibrationEnableEventsInfoML* enableInfo);
9124
9125#ifndef XR_NO_PROTOTYPES
9126#ifdef XR_EXTENSION_PROTOTYPES
9127XRAPI_ATTR XrResult XRAPI_CALL xrEnableUserCalibrationEventsML(
9128 XrInstance instance,
9129 const XrUserCalibrationEnableEventsInfoML* enableInfo);
9130#endif /* XR_EXTENSION_PROTOTYPES */
9131#endif /* !XR_NO_PROTOTYPES */
9132
9133
9134// XR_ML_system_notifications is a preprocessor guard. Do not pass it to API calls.
9135#define XR_ML_system_notifications 1
9136#define XR_ML_system_notifications_SPEC_VERSION 1
9137#define XR_ML_SYSTEM_NOTIFICATIONS_EXTENSION_NAME "XR_ML_system_notifications"
9138typedef struct XrSystemNotificationsSetInfoML {
9139 XrStructureType type;
9140 const void* XR_MAY_ALIAS next;
9141 XrBool32 suppressNotifications;
9142} XrSystemNotificationsSetInfoML;
9143
9144typedef XrResult (XRAPI_PTR *PFN_xrSetSystemNotificationsML)(XrInstance instance, const XrSystemNotificationsSetInfoML* info);
9145
9146#ifndef XR_NO_PROTOTYPES
9147#ifdef XR_EXTENSION_PROTOTYPES
9148XRAPI_ATTR XrResult XRAPI_CALL xrSetSystemNotificationsML(
9149 XrInstance instance,
9150 const XrSystemNotificationsSetInfoML* info);
9151#endif /* XR_EXTENSION_PROTOTYPES */
9152#endif /* !XR_NO_PROTOTYPES */
9153
9154
9155// XR_ML_world_mesh_detection is a preprocessor guard. Do not pass it to API calls.
9156#define XR_ML_world_mesh_detection 1
9157XR_DEFINE_HANDLE(XrWorldMeshDetectorML)
9158#define XR_ML_world_mesh_detection_SPEC_VERSION 1
9159#define XR_ML_WORLD_MESH_DETECTION_EXTENSION_NAME "XR_ML_world_mesh_detection"
9160
9161typedef enum XrWorldMeshDetectorLodML {
9162 XR_WORLD_MESH_DETECTOR_LOD_MINIMUM_ML = 0,
9163 XR_WORLD_MESH_DETECTOR_LOD_MEDIUM_ML = 1,
9164 XR_WORLD_MESH_DETECTOR_LOD_MAXIMUM_ML = 2,
9165 XR_WORLD_MESH_DETECTOR_LOD_MAX_ENUM_ML = 0x7FFFFFFF
9166} XrWorldMeshDetectorLodML;
9167
9168typedef enum XrWorldMeshBlockStatusML {
9169 XR_WORLD_MESH_BLOCK_STATUS_NEW_ML = 0,
9170 XR_WORLD_MESH_BLOCK_STATUS_UPDATED_ML = 1,
9171 XR_WORLD_MESH_BLOCK_STATUS_DELETED_ML = 2,
9172 XR_WORLD_MESH_BLOCK_STATUS_UNCHANGED_ML = 3,
9173 XR_WORLD_MESH_BLOCK_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
9174} XrWorldMeshBlockStatusML;
9175
9176typedef enum XrWorldMeshBlockResultML {
9177 XR_WORLD_MESH_BLOCK_RESULT_SUCCESS_ML = 0,
9178 XR_WORLD_MESH_BLOCK_RESULT_FAILED_ML = 1,
9179 XR_WORLD_MESH_BLOCK_RESULT_PENDING_ML = 2,
9180 XR_WORLD_MESH_BLOCK_RESULT_PARTIAL_UPDATE_ML = 3,
9181 XR_WORLD_MESH_BLOCK_RESULT_MAX_ENUM_ML = 0x7FFFFFFF
9182} XrWorldMeshBlockResultML;
9183typedef XrFlags64 XrWorldMeshDetectorFlagsML;
9184
9185// Flag bits for XrWorldMeshDetectorFlagsML
9186static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_POINT_CLOUD_BIT_ML = 0x00000001;
9187static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_COMPUTE_NORMALS_BIT_ML = 0x00000002;
9188static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_COMPUTE_CONFIDENCE_BIT_ML = 0x00000004;
9189static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_PLANARIZE_BIT_ML = 0x00000008;
9190static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_REMOVE_MESH_SKIRT_BIT_ML = 0x00000010;
9191static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_INDEX_ORDER_CW_BIT_ML = 0x00000020;
9192
9193typedef struct XrWorldMeshDetectorCreateInfoML {
9194 XrStructureType type;
9195 const void* XR_MAY_ALIAS next;
9196} XrWorldMeshDetectorCreateInfoML;
9197
9198typedef struct XrWorldMeshBlockStateML {
9199 XrStructureType type;
9200 void* XR_MAY_ALIAS next;
9201 XrUuidEXT uuid;
9202 XrPosef meshBoundingBoxCenter;
9203 XrExtent3DfEXT meshBoundingBoxExtents;
9204 XrTime lastUpdateTime;
9205 XrWorldMeshBlockStatusML status;
9206} XrWorldMeshBlockStateML;
9207
9208typedef struct XrWorldMeshStateRequestInfoML {
9209 XrStructureType type;
9210 const void* XR_MAY_ALIAS next;
9211 XrSpace baseSpace;
9212 XrTime time;
9213 XrPosef boundingBoxCenter;
9214 XrExtent3DfEXT boundingBoxExtents;
9215} XrWorldMeshStateRequestInfoML;
9216
9217typedef struct XrWorldMeshStateRequestCompletionML {
9218 XrStructureType type;
9219 void* XR_MAY_ALIAS next;
9220 XrResult futureResult;
9221 XrTime timestamp;
9222 uint32_t meshBlockStateCapacityInput;
9223 uint32_t meshBlockStateCountOutput;
9224 XrWorldMeshBlockStateML* meshBlockStates;
9225} XrWorldMeshStateRequestCompletionML;
9226
9227typedef struct XrWorldMeshBufferRecommendedSizeInfoML {
9228 XrStructureType type;
9229 const void* XR_MAY_ALIAS next;
9230 uint32_t maxBlockCount;
9231} XrWorldMeshBufferRecommendedSizeInfoML;
9232
9233typedef struct XrWorldMeshBufferSizeML {
9234 XrStructureType type;
9235 void* XR_MAY_ALIAS next;
9236 uint32_t size;
9237} XrWorldMeshBufferSizeML;
9238
9239typedef struct XrWorldMeshBufferML {
9240 XrStructureType type;
9241 void* XR_MAY_ALIAS next;
9242 uint32_t bufferSize;
9243 void* XR_MAY_ALIAS buffer;
9244} XrWorldMeshBufferML;
9245
9246typedef struct XrWorldMeshBlockRequestML {
9247 XrStructureType type;
9248 void* XR_MAY_ALIAS next;
9249 XrUuidEXT uuid;
9250 XrWorldMeshDetectorLodML lod;
9251} XrWorldMeshBlockRequestML;
9252
9253typedef struct XrWorldMeshGetInfoML {
9254 XrStructureType type;
9255 const void* XR_MAY_ALIAS next;
9256 XrWorldMeshDetectorFlagsML flags;
9257 float fillHoleLength;
9258 float disconnectedComponentArea;
9259 uint32_t blockCount;
9260 XrWorldMeshBlockRequestML* blocks;
9261} XrWorldMeshGetInfoML;
9262
9263typedef struct XrWorldMeshBlockML {
9264 XrStructureType type;
9265 void* XR_MAY_ALIAS next;
9266 XrUuidEXT uuid;
9267 XrWorldMeshBlockResultML blockResult;
9268 XrWorldMeshDetectorLodML lod;
9269 XrWorldMeshDetectorFlagsML flags;
9270 uint32_t indexCount;
9271 uint16_t* indexBuffer;
9272 uint32_t vertexCount;
9273 XrVector3f* vertexBuffer;
9274 uint32_t normalCount;
9275 XrVector3f* normalBuffer;
9276 uint32_t confidenceCount;
9277 float* confidenceBuffer;
9278} XrWorldMeshBlockML;
9279
9280typedef struct XrWorldMeshRequestCompletionInfoML {
9281 XrStructureType type;
9282 const void* XR_MAY_ALIAS next;
9283 XrSpace meshSpace;
9284 XrTime meshSpaceLocateTime;
9285} XrWorldMeshRequestCompletionInfoML;
9286
9287typedef struct XrWorldMeshRequestCompletionML {
9288 XrStructureType type;
9289 void* XR_MAY_ALIAS next;
9290 XrResult futureResult;
9291 uint32_t blockCount;
9292 XrWorldMeshBlockML* blocks;
9293} XrWorldMeshRequestCompletionML;
9294
9295typedef XrResult (XRAPI_PTR *PFN_xrCreateWorldMeshDetectorML)(XrSession session, const XrWorldMeshDetectorCreateInfoML* createInfo, XrWorldMeshDetectorML* detector);
9296typedef XrResult (XRAPI_PTR *PFN_xrDestroyWorldMeshDetectorML)(XrWorldMeshDetectorML detector);
9297typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateAsyncML)(XrWorldMeshDetectorML detector, const XrWorldMeshStateRequestInfoML* stateRequest, XrFutureEXT* future);
9298typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateCompleteML)(XrWorldMeshDetectorML detector, XrFutureEXT future, XrWorldMeshStateRequestCompletionML* completion);
9299typedef XrResult (XRAPI_PTR *PFN_xrGetWorldMeshBufferRecommendSizeML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferRecommendedSizeInfoML* sizeInfo, XrWorldMeshBufferSizeML* size);
9300typedef XrResult (XRAPI_PTR *PFN_xrAllocateWorldMeshBufferML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferSizeML* size, XrWorldMeshBufferML* buffer);
9301typedef XrResult (XRAPI_PTR *PFN_xrFreeWorldMeshBufferML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferML* buffer);
9302typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshAsyncML)(XrWorldMeshDetectorML detector, const XrWorldMeshGetInfoML* getInfo, XrWorldMeshBufferML* buffer, XrFutureEXT* future);
9303typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshCompleteML)(XrWorldMeshDetectorML detector, const XrWorldMeshRequestCompletionInfoML* completionInfo, XrFutureEXT future, XrWorldMeshRequestCompletionML* completion);
9304
9305#ifndef XR_NO_PROTOTYPES
9306#ifdef XR_EXTENSION_PROTOTYPES
9307XRAPI_ATTR XrResult XRAPI_CALL xrCreateWorldMeshDetectorML(
9308 XrSession session,
9309 const XrWorldMeshDetectorCreateInfoML* createInfo,
9310 XrWorldMeshDetectorML* detector);
9311
9312XRAPI_ATTR XrResult XRAPI_CALL xrDestroyWorldMeshDetectorML(
9313 XrWorldMeshDetectorML detector);
9314
9315XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshStateAsyncML(
9316 XrWorldMeshDetectorML detector,
9317 const XrWorldMeshStateRequestInfoML* stateRequest,
9318 XrFutureEXT* future);
9319
9320XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshStateCompleteML(
9321 XrWorldMeshDetectorML detector,
9322 XrFutureEXT future,
9323 XrWorldMeshStateRequestCompletionML* completion);
9324
9325XRAPI_ATTR XrResult XRAPI_CALL xrGetWorldMeshBufferRecommendSizeML(
9326 XrWorldMeshDetectorML detector,
9327 const XrWorldMeshBufferRecommendedSizeInfoML* sizeInfo,
9328 XrWorldMeshBufferSizeML* size);
9329
9330XRAPI_ATTR XrResult XRAPI_CALL xrAllocateWorldMeshBufferML(
9331 XrWorldMeshDetectorML detector,
9332 const XrWorldMeshBufferSizeML* size,
9333 XrWorldMeshBufferML* buffer);
9334
9335XRAPI_ATTR XrResult XRAPI_CALL xrFreeWorldMeshBufferML(
9336 XrWorldMeshDetectorML detector,
9337 const XrWorldMeshBufferML* buffer);
9338
9339XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshAsyncML(
9340 XrWorldMeshDetectorML detector,
9341 const XrWorldMeshGetInfoML* getInfo,
9342 XrWorldMeshBufferML* buffer,
9343 XrFutureEXT* future);
9344
9345XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshCompleteML(
9346 XrWorldMeshDetectorML detector,
9347 const XrWorldMeshRequestCompletionInfoML* completionInfo,
9348 XrFutureEXT future,
9349 XrWorldMeshRequestCompletionML* completion);
9350#endif /* XR_EXTENSION_PROTOTYPES */
9351#endif /* !XR_NO_PROTOTYPES */
9352
9353
9354// XR_ML_facial_expression is a preprocessor guard. Do not pass it to API calls.
9355#define XR_ML_facial_expression 1
9356XR_DEFINE_HANDLE(XrFacialExpressionClientML)
9357#define XR_ML_facial_expression_SPEC_VERSION 1
9358#define XR_ML_FACIAL_EXPRESSION_EXTENSION_NAME "XR_ML_facial_expression"
9359
9360typedef enum XrFacialBlendShapeML {
9361 XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_L_ML = 0,
9362 XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_R_ML = 1,
9363 XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_L_ML = 2,
9364 XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_R_ML = 3,
9365 XR_FACIAL_BLEND_SHAPE_CHIN_RAISER_ML = 4,
9366 XR_FACIAL_BLEND_SHAPE_DIMPLER_L_ML = 5,
9367 XR_FACIAL_BLEND_SHAPE_DIMPLER_R_ML = 6,
9368 XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_L_ML = 7,
9369 XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_R_ML = 8,
9370 XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_L_ML = 9,
9371 XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_R_ML = 10,
9372 XR_FACIAL_BLEND_SHAPE_JAW_DROP_ML = 11,
9373 XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_L_ML = 12,
9374 XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_R_ML = 13,
9375 XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_L_ML = 14,
9376 XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_R_ML = 15,
9377 XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_L_ML = 16,
9378 XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_R_ML = 17,
9379 XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LB_ML = 18,
9380 XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LT_ML = 19,
9381 XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RB_ML = 20,
9382 XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RT_ML = 21,
9383 XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_L_ML = 22,
9384 XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_R_ML = 23,
9385 XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_L_ML = 24,
9386 XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_R_ML = 25,
9387 XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_L_ML = 26,
9388 XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_R_ML = 27,
9389 XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LB_ML = 28,
9390 XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LT_ML = 29,
9391 XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RB_ML = 30,
9392 XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RT_ML = 31,
9393 XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_L_ML = 32,
9394 XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_R_ML = 33,
9395 XR_FACIAL_BLEND_SHAPE_LIPS_TOWARD_ML = 34,
9396 XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_L_ML = 35,
9397 XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_R_ML = 36,
9398 XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_L_ML = 37,
9399 XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_R_ML = 38,
9400 XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_L_ML = 39,
9401 XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_R_ML = 40,
9402 XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_L_ML = 41,
9403 XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_R_ML = 42,
9404 XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_L_ML = 43,
9405 XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_R_ML = 44,
9406 XR_FACIAL_BLEND_SHAPE_TONGUE_OUT_ML = 45,
9407 XR_FACIAL_BLEND_SHAPE_MAX_ENUM_ML = 0x7FFFFFFF
9408} XrFacialBlendShapeML;
9409typedef XrFlags64 XrFacialExpressionBlendShapePropertiesFlagsML;
9410
9411// Flag bits for XrFacialExpressionBlendShapePropertiesFlagsML
9412static const XrFacialExpressionBlendShapePropertiesFlagsML XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_VALID_BIT_ML = 0x00000001;
9413static const XrFacialExpressionBlendShapePropertiesFlagsML XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_TRACKED_BIT_ML = 0x00000002;
9414
9415// XrSystemFacialExpressionPropertiesML extends XrSystemProperties
9416typedef struct XrSystemFacialExpressionPropertiesML {
9417 XrStructureType type;
9418 void* XR_MAY_ALIAS next;
9419 XrBool32 supportsFacialExpression;
9420} XrSystemFacialExpressionPropertiesML;
9421
9422typedef struct XrFacialExpressionClientCreateInfoML {
9423 XrStructureType type;
9424 const void* XR_MAY_ALIAS next;
9425 uint32_t requestedCount;
9426 const XrFacialBlendShapeML* requestedFacialBlendShapes;
9427} XrFacialExpressionClientCreateInfoML;
9428
9429typedef struct XrFacialExpressionBlendShapeGetInfoML {
9430 XrStructureType type;
9431 const void* XR_MAY_ALIAS next;
9432} XrFacialExpressionBlendShapeGetInfoML;
9433
9434typedef struct XrFacialExpressionBlendShapePropertiesML {
9435 XrStructureType type;
9436 void* XR_MAY_ALIAS next;
9437 XrFacialBlendShapeML requestedFacialBlendShape;
9438 float weight;
9439 XrFacialExpressionBlendShapePropertiesFlagsML flags;
9440 XrTime time;
9441} XrFacialExpressionBlendShapePropertiesML;
9442
9443typedef XrResult (XRAPI_PTR *PFN_xrCreateFacialExpressionClientML)(XrSession session, const XrFacialExpressionClientCreateInfoML* createInfo, XrFacialExpressionClientML* facialExpressionClient);
9444typedef XrResult (XRAPI_PTR *PFN_xrDestroyFacialExpressionClientML)(XrFacialExpressionClientML facialExpressionClient);
9445typedef XrResult (XRAPI_PTR *PFN_xrGetFacialExpressionBlendShapePropertiesML)(XrFacialExpressionClientML facialExpressionClient, const XrFacialExpressionBlendShapeGetInfoML* blendShapeGetInfo, uint32_t blendShapeCount, XrFacialExpressionBlendShapePropertiesML* blendShapes);
9446
9447#ifndef XR_NO_PROTOTYPES
9448#ifdef XR_EXTENSION_PROTOTYPES
9449XRAPI_ATTR XrResult XRAPI_CALL xrCreateFacialExpressionClientML(
9450 XrSession session,
9451 const XrFacialExpressionClientCreateInfoML* createInfo,
9452 XrFacialExpressionClientML* facialExpressionClient);
9453
9454XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFacialExpressionClientML(
9455 XrFacialExpressionClientML facialExpressionClient);
9456
9457XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionBlendShapePropertiesML(
9458 XrFacialExpressionClientML facialExpressionClient,
9459 const XrFacialExpressionBlendShapeGetInfoML* blendShapeGetInfo,
9460 uint32_t blendShapeCount,
9461 XrFacialExpressionBlendShapePropertiesML* blendShapes);
9462#endif /* XR_EXTENSION_PROTOTYPES */
9463#endif /* !XR_NO_PROTOTYPES */
9464
9465
9466// XR_ML_view_configuration_depth_range_change is a preprocessor guard. Do not pass it to API calls.
9467#define XR_ML_view_configuration_depth_range_change 1
9468#define XR_ML_view_configuration_depth_range_change_SPEC_VERSION 1
9469#define XR_ML_VIEW_CONFIGURATION_DEPTH_RANGE_CHANGE_EXTENSION_NAME "XR_ML_view_configuration_depth_range_change"
9470
9471
9472// XR_YVR_controller_interaction is a preprocessor guard. Do not pass it to API calls.
9473#define XR_YVR_controller_interaction 1
9474#define XR_YVR_controller_interaction_SPEC_VERSION 1
9475#define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction"
9476
9477
9478// XR_META_simultaneous_hands_and_controllers is a preprocessor guard. Do not pass it to API calls.
9479#define XR_META_simultaneous_hands_and_controllers 1
9480#define XR_META_simultaneous_hands_and_controllers_SPEC_VERSION 1
9481#define XR_META_SIMULTANEOUS_HANDS_AND_CONTROLLERS_EXTENSION_NAME "XR_META_simultaneous_hands_and_controllers"
9482// XrSystemSimultaneousHandsAndControllersPropertiesMETA extends XrSystemProperties
9483typedef struct XrSystemSimultaneousHandsAndControllersPropertiesMETA {
9484 XrStructureType type;
9485 void* XR_MAY_ALIAS next;
9486 XrBool32 supportsSimultaneousHandsAndControllers;
9487} XrSystemSimultaneousHandsAndControllersPropertiesMETA;
9488
9489typedef struct XrSimultaneousHandsAndControllersTrackingResumeInfoMETA {
9490 XrStructureType type;
9491 const void* XR_MAY_ALIAS next;
9492} XrSimultaneousHandsAndControllersTrackingResumeInfoMETA;
9493
9494typedef struct XrSimultaneousHandsAndControllersTrackingPauseInfoMETA {
9495 XrStructureType type;
9496 const void* XR_MAY_ALIAS next;
9497} XrSimultaneousHandsAndControllersTrackingPauseInfoMETA;
9498
9499typedef XrResult (XRAPI_PTR *PFN_xrResumeSimultaneousHandsAndControllersTrackingMETA)(XrSession session, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo);
9500typedef XrResult (XRAPI_PTR *PFN_xrPauseSimultaneousHandsAndControllersTrackingMETA)(XrSession session, const XrSimultaneousHandsAndControllersTrackingPauseInfoMETA* pauseInfo);
9501
9502#ifndef XR_NO_PROTOTYPES
9503#ifdef XR_EXTENSION_PROTOTYPES
9504XRAPI_ATTR XrResult XRAPI_CALL xrResumeSimultaneousHandsAndControllersTrackingMETA(
9505 XrSession session,
9506 const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo);
9507
9508XRAPI_ATTR XrResult XRAPI_CALL xrPauseSimultaneousHandsAndControllersTrackingMETA(
9509 XrSession session,
9510 const XrSimultaneousHandsAndControllersTrackingPauseInfoMETA* pauseInfo);
9511#endif /* XR_EXTENSION_PROTOTYPES */
9512#endif /* !XR_NO_PROTOTYPES */
9513
9514
9515// XR_EXT_composition_layer_inverted_alpha is a preprocessor guard. Do not pass it to API calls.
9516#define XR_EXT_composition_layer_inverted_alpha 1
9517#define XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION 1
9518#define XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME "XR_EXT_composition_layer_inverted_alpha"
9519
9520
9521// XR_META_colocation_discovery is a preprocessor guard. Do not pass it to API calls.
9522#define XR_META_colocation_discovery 1
9523#define XR_MAX_COLOCATION_DISCOVERY_BUFFER_SIZE_META 1024
9524#define XR_META_colocation_discovery_SPEC_VERSION 1
9525#define XR_META_COLOCATION_DISCOVERY_EXTENSION_NAME "XR_META_colocation_discovery"
9526typedef struct XrColocationDiscoveryStartInfoMETA {
9527 XrStructureType type;
9528 const void* XR_MAY_ALIAS next;
9529} XrColocationDiscoveryStartInfoMETA;
9530
9531typedef struct XrColocationDiscoveryStopInfoMETA {
9532 XrStructureType type;
9533 const void* XR_MAY_ALIAS next;
9534} XrColocationDiscoveryStopInfoMETA;
9535
9536typedef struct XrColocationAdvertisementStartInfoMETA {
9537 XrStructureType type;
9538 const void* XR_MAY_ALIAS next;
9539 uint32_t bufferSize;
9540 uint8_t* buffer;
9541} XrColocationAdvertisementStartInfoMETA;
9542
9543typedef struct XrColocationAdvertisementStopInfoMETA {
9544 XrStructureType type;
9545 const void* XR_MAY_ALIAS next;
9546} XrColocationAdvertisementStopInfoMETA;
9547
9548typedef struct XrEventDataStartColocationAdvertisementCompleteMETA {
9549 XrStructureType type;
9550 const void* XR_MAY_ALIAS next;
9551 XrAsyncRequestIdFB advertisementRequestId;
9552 XrResult result;
9553 XrUuid advertisementUuid;
9554} XrEventDataStartColocationAdvertisementCompleteMETA;
9555
9556typedef struct XrEventDataStopColocationAdvertisementCompleteMETA {
9557 XrStructureType type;
9558 const void* XR_MAY_ALIAS next;
9559 XrAsyncRequestIdFB requestId;
9560 XrResult result;
9561} XrEventDataStopColocationAdvertisementCompleteMETA;
9562
9563typedef struct XrEventDataColocationAdvertisementCompleteMETA {
9564 XrStructureType type;
9565 const void* XR_MAY_ALIAS next;
9566 XrAsyncRequestIdFB advertisementRequestId;
9567 XrResult result;
9568} XrEventDataColocationAdvertisementCompleteMETA;
9569
9570typedef struct XrEventDataStartColocationDiscoveryCompleteMETA {
9571 XrStructureType type;
9572 const void* XR_MAY_ALIAS next;
9573 XrAsyncRequestIdFB discoveryRequestId;
9574 XrResult result;
9575} XrEventDataStartColocationDiscoveryCompleteMETA;
9576
9577typedef struct XrEventDataColocationDiscoveryResultMETA {
9578 XrStructureType type;
9579 const void* XR_MAY_ALIAS next;
9580 XrAsyncRequestIdFB discoveryRequestId;
9581 XrUuid advertisementUuid;
9582 uint32_t bufferSize;
9583 uint8_t buffer[XR_MAX_COLOCATION_DISCOVERY_BUFFER_SIZE_META];
9584} XrEventDataColocationDiscoveryResultMETA;
9585
9586typedef struct XrEventDataColocationDiscoveryCompleteMETA {
9587 XrStructureType type;
9588 const void* XR_MAY_ALIAS next;
9589 XrAsyncRequestIdFB discoveryRequestId;
9590 XrResult result;
9591} XrEventDataColocationDiscoveryCompleteMETA;
9592
9593typedef struct XrEventDataStopColocationDiscoveryCompleteMETA {
9594 XrStructureType type;
9595 const void* XR_MAY_ALIAS next;
9596 XrAsyncRequestIdFB requestId;
9597 XrResult result;
9598} XrEventDataStopColocationDiscoveryCompleteMETA;
9599
9600// XrSystemColocationDiscoveryPropertiesMETA extends XrSystemProperties
9601typedef struct XrSystemColocationDiscoveryPropertiesMETA {
9602 XrStructureType type;
9603 void* XR_MAY_ALIAS next;
9604 XrBool32 supportsColocationDiscovery;
9605} XrSystemColocationDiscoveryPropertiesMETA;
9606
9607typedef XrResult (XRAPI_PTR *PFN_xrStartColocationDiscoveryMETA)(XrSession session, const XrColocationDiscoveryStartInfoMETA* info, XrAsyncRequestIdFB* discoveryRequestId);
9608typedef XrResult (XRAPI_PTR *PFN_xrStopColocationDiscoveryMETA)(XrSession session, const XrColocationDiscoveryStopInfoMETA* info, XrAsyncRequestIdFB* requestId);
9609typedef XrResult (XRAPI_PTR *PFN_xrStartColocationAdvertisementMETA)(XrSession session, const XrColocationAdvertisementStartInfoMETA* info, XrAsyncRequestIdFB* advertisementRequestId);
9610typedef XrResult (XRAPI_PTR *PFN_xrStopColocationAdvertisementMETA)(XrSession session, const XrColocationAdvertisementStopInfoMETA* info, XrAsyncRequestIdFB* requestId);
9611
9612#ifndef XR_NO_PROTOTYPES
9613#ifdef XR_EXTENSION_PROTOTYPES
9614XRAPI_ATTR XrResult XRAPI_CALL xrStartColocationDiscoveryMETA(
9615 XrSession session,
9616 const XrColocationDiscoveryStartInfoMETA* info,
9617 XrAsyncRequestIdFB* discoveryRequestId);
9618
9619XRAPI_ATTR XrResult XRAPI_CALL xrStopColocationDiscoveryMETA(
9620 XrSession session,
9621 const XrColocationDiscoveryStopInfoMETA* info,
9622 XrAsyncRequestIdFB* requestId);
9623
9624XRAPI_ATTR XrResult XRAPI_CALL xrStartColocationAdvertisementMETA(
9625 XrSession session,
9626 const XrColocationAdvertisementStartInfoMETA* info,
9627 XrAsyncRequestIdFB* advertisementRequestId);
9628
9629XRAPI_ATTR XrResult XRAPI_CALL xrStopColocationAdvertisementMETA(
9630 XrSession session,
9631 const XrColocationAdvertisementStopInfoMETA* info,
9632 XrAsyncRequestIdFB* requestId);
9633#endif /* XR_EXTENSION_PROTOTYPES */
9634#endif /* !XR_NO_PROTOTYPES */
9635
9636
9637// XR_META_spatial_entity_group_sharing is a preprocessor guard. Do not pass it to API calls.
9638#define XR_META_spatial_entity_group_sharing 1
9639#define XR_META_spatial_entity_group_sharing_SPEC_VERSION 1
9640#define XR_META_SPATIAL_ENTITY_GROUP_SHARING_EXTENSION_NAME "XR_META_spatial_entity_group_sharing"
9641// XrSystemSpatialEntityGroupSharingPropertiesMETA extends XrSystemProperties
9642typedef struct XrSystemSpatialEntityGroupSharingPropertiesMETA {
9643 XrStructureType type;
9644 void* XR_MAY_ALIAS next;
9645 XrBool32 supportsSpatialEntityGroupSharing;
9646} XrSystemSpatialEntityGroupSharingPropertiesMETA;
9647
9648typedef struct XrShareSpacesRecipientGroupsMETA {
9649 XrStructureType type;
9650 const void* XR_MAY_ALIAS next;
9651 uint32_t groupCount;
9652 XrUuid* groups;
9653} XrShareSpacesRecipientGroupsMETA;
9654
9655typedef struct XrSpaceGroupUuidFilterInfoMETA {
9656 XrStructureType type;
9657 const void* XR_MAY_ALIAS next;
9658 XrUuid groupUuid;
9659} XrSpaceGroupUuidFilterInfoMETA;
9660
9661
9662
9663// XR_EXT_spatial_entity is a preprocessor guard. Do not pass it to API calls.
9664#define XR_EXT_spatial_entity 1
9665
9666#define XR_NULL_SPATIAL_ENTITY_ID_EXT 0
9667
9668
9669#define XR_NULL_SPATIAL_BUFFER_ID_EXT 0
9670
9671XR_DEFINE_ATOM(XrSpatialEntityIdEXT)
9672XR_DEFINE_ATOM(XrSpatialBufferIdEXT)
9673XR_DEFINE_HANDLE(XrSpatialEntityEXT)
9674XR_DEFINE_HANDLE(XrSpatialContextEXT)
9675XR_DEFINE_HANDLE(XrSpatialSnapshotEXT)
9676#define XR_EXT_spatial_entity_SPEC_VERSION 1
9677#define XR_EXT_SPATIAL_ENTITY_EXTENSION_NAME "XR_EXT_spatial_entity"
9678
9679typedef enum XrSpatialCapabilityEXT {
9680 XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT = 1000741000,
9681 XR_SPATIAL_CAPABILITY_MARKER_TRACKING_QR_CODE_EXT = 1000743000,
9682 XR_SPATIAL_CAPABILITY_MARKER_TRACKING_MICRO_QR_CODE_EXT = 1000743001,
9683 XR_SPATIAL_CAPABILITY_MARKER_TRACKING_ARUCO_MARKER_EXT = 1000743002,
9684 XR_SPATIAL_CAPABILITY_MARKER_TRACKING_APRIL_TAG_EXT = 1000743003,
9685 XR_SPATIAL_CAPABILITY_ANCHOR_EXT = 1000762000,
9686 XR_SPATIAL_CAPABILITY_MAX_ENUM_EXT = 0x7FFFFFFF
9687} XrSpatialCapabilityEXT;
9688
9689typedef enum XrSpatialCapabilityFeatureEXT {
9690 XR_SPATIAL_CAPABILITY_FEATURE_MARKER_TRACKING_FIXED_SIZE_MARKERS_EXT = 1000743000,
9691 XR_SPATIAL_CAPABILITY_FEATURE_MARKER_TRACKING_STATIC_MARKERS_EXT = 1000743001,
9692 XR_SPATIAL_CAPABILITY_FEATURE_MAX_ENUM_EXT = 0x7FFFFFFF
9693} XrSpatialCapabilityFeatureEXT;
9694
9695typedef enum XrSpatialComponentTypeEXT {
9696 XR_SPATIAL_COMPONENT_TYPE_BOUNDED_2D_EXT = 1,
9697 XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT = 2,
9698 XR_SPATIAL_COMPONENT_TYPE_PARENT_EXT = 3,
9699 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT = 4,
9700 XR_SPATIAL_COMPONENT_TYPE_PLANE_ALIGNMENT_EXT = 1000741000,
9701 XR_SPATIAL_COMPONENT_TYPE_MESH_2D_EXT = 1000741001,
9702 XR_SPATIAL_COMPONENT_TYPE_POLYGON_2D_EXT = 1000741002,
9703 XR_SPATIAL_COMPONENT_TYPE_PLANE_SEMANTIC_LABEL_EXT = 1000741003,
9704 XR_SPATIAL_COMPONENT_TYPE_MARKER_EXT = 1000743000,
9705 XR_SPATIAL_COMPONENT_TYPE_ANCHOR_EXT = 1000762000,
9706 XR_SPATIAL_COMPONENT_TYPE_PERSISTENCE_EXT = 1000763000,
9707 XR_SPATIAL_COMPONENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
9708} XrSpatialComponentTypeEXT;
9709
9710typedef enum XrSpatialEntityTrackingStateEXT {
9711 XR_SPATIAL_ENTITY_TRACKING_STATE_STOPPED_EXT = 1,
9712 XR_SPATIAL_ENTITY_TRACKING_STATE_PAUSED_EXT = 2,
9713 XR_SPATIAL_ENTITY_TRACKING_STATE_TRACKING_EXT = 3,
9714 XR_SPATIAL_ENTITY_TRACKING_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
9715} XrSpatialEntityTrackingStateEXT;
9716
9717typedef enum XrSpatialBufferTypeEXT {
9718 XR_SPATIAL_BUFFER_TYPE_UNKNOWN_EXT = 0,
9719 XR_SPATIAL_BUFFER_TYPE_STRING_EXT = 1,
9720 XR_SPATIAL_BUFFER_TYPE_UINT8_EXT = 2,
9721 XR_SPATIAL_BUFFER_TYPE_UINT16_EXT = 3,
9722 XR_SPATIAL_BUFFER_TYPE_UINT32_EXT = 4,
9723 XR_SPATIAL_BUFFER_TYPE_FLOAT_EXT = 5,
9724 XR_SPATIAL_BUFFER_TYPE_VECTOR2F_EXT = 6,
9725 XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT = 7,
9726 XR_SPATIAL_BUFFER_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
9727} XrSpatialBufferTypeEXT;
9728typedef struct XrSpatialCapabilityComponentTypesEXT {
9729 XrStructureType type;
9730 void* XR_MAY_ALIAS next;
9731 uint32_t componentTypeCapacityInput;
9732 uint32_t componentTypeCountOutput;
9733 XrSpatialComponentTypeEXT* componentTypes;
9734} XrSpatialCapabilityComponentTypesEXT;
9735
9736typedef struct XR_MAY_ALIAS XrSpatialCapabilityConfigurationBaseHeaderEXT {
9737 XrStructureType type;
9738 const void* XR_MAY_ALIAS next;
9739 XrSpatialCapabilityEXT capability;
9740 uint32_t enabledComponentCount;
9741 const XrSpatialComponentTypeEXT* enabledComponents;
9742} XrSpatialCapabilityConfigurationBaseHeaderEXT;
9743
9744typedef struct XrSpatialContextCreateInfoEXT {
9745 XrStructureType type;
9746 const void* XR_MAY_ALIAS next;
9747 uint32_t capabilityConfigCount;
9748 const XrSpatialCapabilityConfigurationBaseHeaderEXT* const* capabilityConfigs;
9749} XrSpatialContextCreateInfoEXT;
9750
9751typedef struct XrCreateSpatialContextCompletionEXT {
9752 XrStructureType type;
9753 void* XR_MAY_ALIAS next;
9754 XrResult futureResult;
9755 XrSpatialContextEXT spatialContext;
9756} XrCreateSpatialContextCompletionEXT;
9757
9758typedef struct XrSpatialDiscoverySnapshotCreateInfoEXT {
9759 XrStructureType type;
9760 const void* XR_MAY_ALIAS next;
9761 uint32_t componentTypeCount;
9762 const XrSpatialComponentTypeEXT* componentTypes;
9763} XrSpatialDiscoverySnapshotCreateInfoEXT;
9764
9765typedef struct XrCreateSpatialDiscoverySnapshotCompletionInfoEXT {
9766 XrStructureType type;
9767 const void* XR_MAY_ALIAS next;
9768 XrSpace baseSpace;
9769 XrTime time;
9770 XrFutureEXT future;
9771} XrCreateSpatialDiscoverySnapshotCompletionInfoEXT;
9772
9773typedef struct XrCreateSpatialDiscoverySnapshotCompletionEXT {
9774 XrStructureType type;
9775 void* XR_MAY_ALIAS next;
9776 XrResult futureResult;
9777 XrSpatialSnapshotEXT snapshot;
9778} XrCreateSpatialDiscoverySnapshotCompletionEXT;
9779
9780typedef struct XrSpatialComponentDataQueryConditionEXT {
9781 XrStructureType type;
9782 const void* XR_MAY_ALIAS next;
9783 uint32_t componentTypeCount;
9784 const XrSpatialComponentTypeEXT* componentTypes;
9785} XrSpatialComponentDataQueryConditionEXT;
9786
9787typedef struct XrSpatialComponentDataQueryResultEXT {
9788 XrStructureType type;
9789 void* XR_MAY_ALIAS next;
9790 uint32_t entityIdCapacityInput;
9791 uint32_t entityIdCountOutput;
9792 XrSpatialEntityIdEXT* entityIds;
9793 uint32_t entityStateCapacityInput;
9794 uint32_t entityStateCountOutput;
9795 XrSpatialEntityTrackingStateEXT* entityStates;
9796} XrSpatialComponentDataQueryResultEXT;
9797
9798typedef struct XrSpatialBufferEXT {
9799 XrSpatialBufferIdEXT bufferId;
9800 XrSpatialBufferTypeEXT bufferType;
9801} XrSpatialBufferEXT;
9802
9803typedef struct XrSpatialBufferGetInfoEXT {
9804 XrStructureType type;
9805 const void* XR_MAY_ALIAS next;
9806 XrSpatialBufferIdEXT bufferId;
9807} XrSpatialBufferGetInfoEXT;
9808
9809typedef struct XrSpatialBounded2DDataEXT {
9810 XrPosef center;
9811 XrExtent2Df extents;
9812} XrSpatialBounded2DDataEXT;
9813
9814// XrSpatialComponentBounded2DListEXT extends XrSpatialComponentDataQueryResultEXT
9815typedef struct XrSpatialComponentBounded2DListEXT {
9816 XrStructureType type;
9817 void* XR_MAY_ALIAS next;
9818 uint32_t boundCount;
9819 XrSpatialBounded2DDataEXT* bounds;
9820} XrSpatialComponentBounded2DListEXT;
9821
9822// XrSpatialComponentBounded3DListEXT extends XrSpatialComponentDataQueryResultEXT
9823typedef struct XrSpatialComponentBounded3DListEXT {
9824 XrStructureType type;
9825 void* XR_MAY_ALIAS next;
9826 uint32_t boundCount;
9827 XrBoxf* bounds;
9828} XrSpatialComponentBounded3DListEXT;
9829
9830// XrSpatialComponentParentListEXT extends XrSpatialComponentDataQueryResultEXT
9831typedef struct XrSpatialComponentParentListEXT {
9832 XrStructureType type;
9833 void* XR_MAY_ALIAS next;
9834 uint32_t parentCount;
9835 XrSpatialEntityIdEXT* parents;
9836} XrSpatialComponentParentListEXT;
9837
9838typedef struct XrSpatialMeshDataEXT {
9839 XrPosef origin;
9840 XrSpatialBufferEXT vertexBuffer;
9841 XrSpatialBufferEXT indexBuffer;
9842} XrSpatialMeshDataEXT;
9843
9844// XrSpatialComponentMesh3DListEXT extends XrSpatialComponentDataQueryResultEXT
9845typedef struct XrSpatialComponentMesh3DListEXT {
9846 XrStructureType type;
9847 void* XR_MAY_ALIAS next;
9848 uint32_t meshCount;
9849 XrSpatialMeshDataEXT* meshes;
9850} XrSpatialComponentMesh3DListEXT;
9851
9852typedef struct XrSpatialEntityFromIdCreateInfoEXT {
9853 XrStructureType type;
9854 const void* XR_MAY_ALIAS next;
9855 XrSpatialEntityIdEXT entityId;
9856} XrSpatialEntityFromIdCreateInfoEXT;
9857
9858typedef struct XrSpatialUpdateSnapshotCreateInfoEXT {
9859 XrStructureType type;
9860 const void* XR_MAY_ALIAS next;
9861 uint32_t entityCount;
9862 const XrSpatialEntityEXT* entities;
9863 uint32_t componentTypeCount;
9864 const XrSpatialComponentTypeEXT* componentTypes;
9865 XrSpace baseSpace;
9866 XrTime time;
9867} XrSpatialUpdateSnapshotCreateInfoEXT;
9868
9869typedef struct XrEventDataSpatialDiscoveryRecommendedEXT {
9870 XrStructureType type;
9871 const void* XR_MAY_ALIAS next;
9872 XrSpatialContextEXT spatialContext;
9873} XrEventDataSpatialDiscoveryRecommendedEXT;
9874
9875// XrSpatialFilterTrackingStateEXT extends XrSpatialDiscoverySnapshotCreateInfoEXT,XrSpatialComponentDataQueryConditionEXT
9876typedef struct XrSpatialFilterTrackingStateEXT {
9877 XrStructureType type;
9878 const void* XR_MAY_ALIAS next;
9879 XrSpatialEntityTrackingStateEXT trackingState;
9880} XrSpatialFilterTrackingStateEXT;
9881
9882typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialCapabilitiesEXT)(XrInstance instance, XrSystemId systemId, uint32_t capabilityCapacityInput, uint32_t* capabilityCountOutput, XrSpatialCapabilityEXT* capabilities);
9883typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialCapabilityComponentTypesEXT)(XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, XrSpatialCapabilityComponentTypesEXT* capabilityComponents);
9884typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialCapabilityFeaturesEXT)(XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, uint32_t capabilityFeatureCapacityInput, uint32_t* capabilityFeatureCountOutput, XrSpatialCapabilityFeatureEXT* capabilityFeatures);
9885typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialContextAsyncEXT)(XrSession session, const XrSpatialContextCreateInfoEXT* createInfo, XrFutureEXT* future);
9886typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialContextCompleteEXT)(XrSession session, XrFutureEXT future, XrCreateSpatialContextCompletionEXT* completion);
9887typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialContextEXT)(XrSpatialContextEXT spatialContext);
9888typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialDiscoverySnapshotAsyncEXT)(XrSpatialContextEXT spatialContext, const XrSpatialDiscoverySnapshotCreateInfoEXT* createInfo, XrFutureEXT* future);
9889typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialDiscoverySnapshotCompleteEXT)(XrSpatialContextEXT spatialContext, const XrCreateSpatialDiscoverySnapshotCompletionInfoEXT* createSnapshotCompletionInfo, XrCreateSpatialDiscoverySnapshotCompletionEXT* completion);
9890typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialComponentDataEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialComponentDataQueryConditionEXT* queryCondition, XrSpatialComponentDataQueryResultEXT* queryResult);
9891typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialSnapshotEXT)(XrSpatialSnapshotEXT snapshot);
9892typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialEntityFromIdEXT)(XrSpatialContextEXT spatialContext, const XrSpatialEntityFromIdCreateInfoEXT* createInfo, XrSpatialEntityEXT* spatialEntity);
9893typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialEntityEXT)(XrSpatialEntityEXT spatialEntity);
9894typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialUpdateSnapshotEXT)(XrSpatialContextEXT spatialContext, const XrSpatialUpdateSnapshotCreateInfoEXT* createInfo, XrSpatialSnapshotEXT* snapshot);
9895typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferStringEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
9896typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferUint8EXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer);
9897typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferUint16EXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint16_t* buffer);
9898typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferUint32EXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint32_t* buffer);
9899typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferFloatEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, float* buffer);
9900typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferVector2fEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, XrVector2f* buffer);
9901typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferVector3fEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, XrVector3f* buffer);
9902
9903#ifndef XR_NO_PROTOTYPES
9904#ifdef XR_EXTENSION_PROTOTYPES
9905XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialCapabilitiesEXT(
9906 XrInstance instance,
9907 XrSystemId systemId,
9908 uint32_t capabilityCapacityInput,
9909 uint32_t* capabilityCountOutput,
9910 XrSpatialCapabilityEXT* capabilities);
9911
9912XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialCapabilityComponentTypesEXT(
9913 XrInstance instance,
9914 XrSystemId systemId,
9915 XrSpatialCapabilityEXT capability,
9916 XrSpatialCapabilityComponentTypesEXT* capabilityComponents);
9917
9918XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialCapabilityFeaturesEXT(
9919 XrInstance instance,
9920 XrSystemId systemId,
9921 XrSpatialCapabilityEXT capability,
9922 uint32_t capabilityFeatureCapacityInput,
9923 uint32_t* capabilityFeatureCountOutput,
9924 XrSpatialCapabilityFeatureEXT* capabilityFeatures);
9925
9926XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialContextAsyncEXT(
9927 XrSession session,
9928 const XrSpatialContextCreateInfoEXT* createInfo,
9929 XrFutureEXT* future);
9930
9931XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialContextCompleteEXT(
9932 XrSession session,
9933 XrFutureEXT future,
9934 XrCreateSpatialContextCompletionEXT* completion);
9935
9936XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialContextEXT(
9937 XrSpatialContextEXT spatialContext);
9938
9939XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialDiscoverySnapshotAsyncEXT(
9940 XrSpatialContextEXT spatialContext,
9941 const XrSpatialDiscoverySnapshotCreateInfoEXT* createInfo,
9942 XrFutureEXT* future);
9943
9944XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialDiscoverySnapshotCompleteEXT(
9945 XrSpatialContextEXT spatialContext,
9946 const XrCreateSpatialDiscoverySnapshotCompletionInfoEXT* createSnapshotCompletionInfo,
9947 XrCreateSpatialDiscoverySnapshotCompletionEXT* completion);
9948
9949XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialComponentDataEXT(
9950 XrSpatialSnapshotEXT snapshot,
9951 const XrSpatialComponentDataQueryConditionEXT* queryCondition,
9952 XrSpatialComponentDataQueryResultEXT* queryResult);
9953
9954XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialSnapshotEXT(
9955 XrSpatialSnapshotEXT snapshot);
9956
9957XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialEntityFromIdEXT(
9958 XrSpatialContextEXT spatialContext,
9959 const XrSpatialEntityFromIdCreateInfoEXT* createInfo,
9960 XrSpatialEntityEXT* spatialEntity);
9961
9962XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialEntityEXT(
9963 XrSpatialEntityEXT spatialEntity);
9964
9965XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialUpdateSnapshotEXT(
9966 XrSpatialContextEXT spatialContext,
9967 const XrSpatialUpdateSnapshotCreateInfoEXT* createInfo,
9968 XrSpatialSnapshotEXT* snapshot);
9969
9970XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferStringEXT(
9971 XrSpatialSnapshotEXT snapshot,
9972 const XrSpatialBufferGetInfoEXT* info,
9973 uint32_t bufferCapacityInput,
9974 uint32_t* bufferCountOutput,
9975 char* buffer);
9976
9977XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferUint8EXT(
9978 XrSpatialSnapshotEXT snapshot,
9979 const XrSpatialBufferGetInfoEXT* info,
9980 uint32_t bufferCapacityInput,
9981 uint32_t* bufferCountOutput,
9982 uint8_t* buffer);
9983
9984XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferUint16EXT(
9985 XrSpatialSnapshotEXT snapshot,
9986 const XrSpatialBufferGetInfoEXT* info,
9987 uint32_t bufferCapacityInput,
9988 uint32_t* bufferCountOutput,
9989 uint16_t* buffer);
9990
9991XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferUint32EXT(
9992 XrSpatialSnapshotEXT snapshot,
9993 const XrSpatialBufferGetInfoEXT* info,
9994 uint32_t bufferCapacityInput,
9995 uint32_t* bufferCountOutput,
9996 uint32_t* buffer);
9997
9998XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferFloatEXT(
9999 XrSpatialSnapshotEXT snapshot,
10000 const XrSpatialBufferGetInfoEXT* info,
10001 uint32_t bufferCapacityInput,
10002 uint32_t* bufferCountOutput,
10003 float* buffer);
10004
10005XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferVector2fEXT(
10006 XrSpatialSnapshotEXT snapshot,
10007 const XrSpatialBufferGetInfoEXT* info,
10008 uint32_t bufferCapacityInput,
10009 uint32_t* bufferCountOutput,
10010 XrVector2f* buffer);
10011
10012XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferVector3fEXT(
10013 XrSpatialSnapshotEXT snapshot,
10014 const XrSpatialBufferGetInfoEXT* info,
10015 uint32_t bufferCapacityInput,
10016 uint32_t* bufferCountOutput,
10017 XrVector3f* buffer);
10018#endif /* XR_EXTENSION_PROTOTYPES */
10019#endif /* !XR_NO_PROTOTYPES */
10020
10021
10022// XR_EXT_spatial_plane_tracking is a preprocessor guard. Do not pass it to API calls.
10023#define XR_EXT_spatial_plane_tracking 1
10024#define XR_EXT_spatial_plane_tracking_SPEC_VERSION 1
10025#define XR_EXT_SPATIAL_PLANE_TRACKING_EXTENSION_NAME "XR_EXT_spatial_plane_tracking"
10026
10027typedef enum XrSpatialPlaneAlignmentEXT {
10028 XR_SPATIAL_PLANE_ALIGNMENT_HORIZONTAL_UPWARD_EXT = 0,
10029 XR_SPATIAL_PLANE_ALIGNMENT_HORIZONTAL_DOWNWARD_EXT = 1,
10030 XR_SPATIAL_PLANE_ALIGNMENT_VERTICAL_EXT = 2,
10031 XR_SPATIAL_PLANE_ALIGNMENT_ARBITRARY_EXT = 3,
10032 XR_SPATIAL_PLANE_ALIGNMENT_MAX_ENUM_EXT = 0x7FFFFFFF
10033} XrSpatialPlaneAlignmentEXT;
10034
10035typedef enum XrSpatialPlaneSemanticLabelEXT {
10036 XR_SPATIAL_PLANE_SEMANTIC_LABEL_UNCATEGORIZED_EXT = 1,
10037 XR_SPATIAL_PLANE_SEMANTIC_LABEL_FLOOR_EXT = 2,
10038 XR_SPATIAL_PLANE_SEMANTIC_LABEL_WALL_EXT = 3,
10039 XR_SPATIAL_PLANE_SEMANTIC_LABEL_CEILING_EXT = 4,
10040 XR_SPATIAL_PLANE_SEMANTIC_LABEL_TABLE_EXT = 5,
10041 XR_SPATIAL_PLANE_SEMANTIC_LABEL_MAX_ENUM_EXT = 0x7FFFFFFF
10042} XrSpatialPlaneSemanticLabelEXT;
10043typedef struct XrSpatialCapabilityConfigurationPlaneTrackingEXT {
10044 XrStructureType type;
10045 const void* XR_MAY_ALIAS next;
10046 XrSpatialCapabilityEXT capability;
10047 uint32_t enabledComponentCount;
10048 const XrSpatialComponentTypeEXT* enabledComponents;
10049} XrSpatialCapabilityConfigurationPlaneTrackingEXT;
10050
10051// XrSpatialComponentPlaneAlignmentListEXT extends XrSpatialComponentDataQueryResultEXT
10052typedef struct XrSpatialComponentPlaneAlignmentListEXT {
10053 XrStructureType type;
10054 void* XR_MAY_ALIAS next;
10055 uint32_t planeAlignmentCount;
10056 XrSpatialPlaneAlignmentEXT* planeAlignments;
10057} XrSpatialComponentPlaneAlignmentListEXT;
10058
10059// XrSpatialComponentMesh2DListEXT extends XrSpatialComponentDataQueryResultEXT
10060typedef struct XrSpatialComponentMesh2DListEXT {
10061 XrStructureType type;
10062 void* XR_MAY_ALIAS next;
10063 uint32_t meshCount;
10064 XrSpatialMeshDataEXT* meshes;
10065} XrSpatialComponentMesh2DListEXT;
10066
10067typedef struct XrSpatialPolygon2DDataEXT {
10068 XrPosef origin;
10069 XrSpatialBufferEXT vertexBuffer;
10070} XrSpatialPolygon2DDataEXT;
10071
10072// XrSpatialComponentPolygon2DListEXT extends XrSpatialComponentDataQueryResultEXT
10073typedef struct XrSpatialComponentPolygon2DListEXT {
10074 XrStructureType type;
10075 void* XR_MAY_ALIAS next;
10076 uint32_t polygonCount;
10077 XrSpatialPolygon2DDataEXT* polygons;
10078} XrSpatialComponentPolygon2DListEXT;
10079
10080// XrSpatialComponentPlaneSemanticLabelListEXT extends XrSpatialComponentDataQueryResultEXT
10081typedef struct XrSpatialComponentPlaneSemanticLabelListEXT {
10082 XrStructureType type;
10083 void* XR_MAY_ALIAS next;
10084 uint32_t semanticLabelCount;
10085 XrSpatialPlaneSemanticLabelEXT* semanticLabels;
10086} XrSpatialComponentPlaneSemanticLabelListEXT;
10087
10088
10089
10090// XR_EXT_spatial_marker_tracking is a preprocessor guard. Do not pass it to API calls.
10091#define XR_EXT_spatial_marker_tracking 1
10092#define XR_EXT_spatial_marker_tracking_SPEC_VERSION 1
10093#define XR_EXT_SPATIAL_MARKER_TRACKING_EXTENSION_NAME "XR_EXT_spatial_marker_tracking"
10094
10095typedef enum XrSpatialMarkerArucoDictEXT {
10096 XR_SPATIAL_MARKER_ARUCO_DICT_4X4_50_EXT = 1,
10097 XR_SPATIAL_MARKER_ARUCO_DICT_4X4_100_EXT = 2,
10098 XR_SPATIAL_MARKER_ARUCO_DICT_4X4_250_EXT = 3,
10099 XR_SPATIAL_MARKER_ARUCO_DICT_4X4_1000_EXT = 4,
10100 XR_SPATIAL_MARKER_ARUCO_DICT_5X5_50_EXT = 5,
10101 XR_SPATIAL_MARKER_ARUCO_DICT_5X5_100_EXT = 6,
10102 XR_SPATIAL_MARKER_ARUCO_DICT_5X5_250_EXT = 7,
10103 XR_SPATIAL_MARKER_ARUCO_DICT_5X5_1000_EXT = 8,
10104 XR_SPATIAL_MARKER_ARUCO_DICT_6X6_50_EXT = 9,
10105 XR_SPATIAL_MARKER_ARUCO_DICT_6X6_100_EXT = 10,
10106 XR_SPATIAL_MARKER_ARUCO_DICT_6X6_250_EXT = 11,
10107 XR_SPATIAL_MARKER_ARUCO_DICT_6X6_1000_EXT = 12,
10108 XR_SPATIAL_MARKER_ARUCO_DICT_7X7_50_EXT = 13,
10109 XR_SPATIAL_MARKER_ARUCO_DICT_7X7_100_EXT = 14,
10110 XR_SPATIAL_MARKER_ARUCO_DICT_7X7_250_EXT = 15,
10111 XR_SPATIAL_MARKER_ARUCO_DICT_7X7_1000_EXT = 16,
10112 XR_SPATIAL_MARKER_ARUCO_DICT_MAX_ENUM_EXT = 0x7FFFFFFF
10113} XrSpatialMarkerArucoDictEXT;
10114
10115typedef enum XrSpatialMarkerAprilTagDictEXT {
10116 XR_SPATIAL_MARKER_APRIL_TAG_DICT_16H5_EXT = 1,
10117 XR_SPATIAL_MARKER_APRIL_TAG_DICT_25H9_EXT = 2,
10118 XR_SPATIAL_MARKER_APRIL_TAG_DICT_36H10_EXT = 3,
10119 XR_SPATIAL_MARKER_APRIL_TAG_DICT_36H11_EXT = 4,
10120 XR_SPATIAL_MARKER_APRIL_TAG_DICT_MAX_ENUM_EXT = 0x7FFFFFFF
10121} XrSpatialMarkerAprilTagDictEXT;
10122typedef struct XrSpatialCapabilityConfigurationQrCodeEXT {
10123 XrStructureType type;
10124 const void* XR_MAY_ALIAS next;
10125 XrSpatialCapabilityEXT capability;
10126 uint32_t enabledComponentCount;
10127 const XrSpatialComponentTypeEXT* enabledComponents;
10128} XrSpatialCapabilityConfigurationQrCodeEXT;
10129
10130typedef struct XrSpatialCapabilityConfigurationMicroQrCodeEXT {
10131 XrStructureType type;
10132 const void* XR_MAY_ALIAS next;
10133 XrSpatialCapabilityEXT capability;
10134 uint32_t enabledComponentCount;
10135 const XrSpatialComponentTypeEXT* enabledComponents;
10136} XrSpatialCapabilityConfigurationMicroQrCodeEXT;
10137
10138typedef struct XrSpatialCapabilityConfigurationArucoMarkerEXT {
10139 XrStructureType type;
10140 const void* XR_MAY_ALIAS next;
10141 XrSpatialCapabilityEXT capability;
10142 uint32_t enabledComponentCount;
10143 const XrSpatialComponentTypeEXT* enabledComponents;
10144 XrSpatialMarkerArucoDictEXT arUcoDict;
10145} XrSpatialCapabilityConfigurationArucoMarkerEXT;
10146
10147typedef struct XrSpatialCapabilityConfigurationAprilTagEXT {
10148 XrStructureType type;
10149 const void* XR_MAY_ALIAS next;
10150 XrSpatialCapabilityEXT capability;
10151 uint32_t enabledComponentCount;
10152 const XrSpatialComponentTypeEXT* enabledComponents;
10153 XrSpatialMarkerAprilTagDictEXT aprilDict;
10154} XrSpatialCapabilityConfigurationAprilTagEXT;
10155
10156// XrSpatialMarkerSizeEXT extends XrSpatialCapabilityConfigurationArucoMarkerEXT,XrSpatialCapabilityConfigurationAprilTagEXT,XrSpatialCapabilityConfigurationQrCodeEXT,XrSpatialCapabilityConfigurationMicroQrCodeEXT
10157typedef struct XrSpatialMarkerSizeEXT {
10158 XrStructureType type;
10159 const void* XR_MAY_ALIAS next;
10160 float markerSideLength;
10161} XrSpatialMarkerSizeEXT;
10162
10163// XrSpatialMarkerStaticOptimizationEXT extends XrSpatialCapabilityConfigurationArucoMarkerEXT,XrSpatialCapabilityConfigurationAprilTagEXT,XrSpatialCapabilityConfigurationQrCodeEXT,XrSpatialCapabilityConfigurationMicroQrCodeEXT
10164typedef struct XrSpatialMarkerStaticOptimizationEXT {
10165 XrStructureType type;
10166 const void* XR_MAY_ALIAS next;
10167 XrBool32 optimizeForStaticMarker;
10168} XrSpatialMarkerStaticOptimizationEXT;
10169
10170typedef struct XrSpatialMarkerDataEXT {
10171 XrSpatialCapabilityEXT capability;
10172 uint32_t markerId;
10173 XrSpatialBufferEXT data;
10174} XrSpatialMarkerDataEXT;
10175
10176// XrSpatialComponentMarkerListEXT extends XrSpatialComponentDataQueryResultEXT
10177typedef struct XrSpatialComponentMarkerListEXT {
10178 XrStructureType type;
10179 void* XR_MAY_ALIAS next;
10180 uint32_t markerCount;
10181 XrSpatialMarkerDataEXT* markers;
10182} XrSpatialComponentMarkerListEXT;
10183
10184
10185
10186// XR_LOGITECH_mx_ink_stylus_interaction is a preprocessor guard. Do not pass it to API calls.
10187#define XR_LOGITECH_mx_ink_stylus_interaction 1
10188#define XR_LOGITECH_mx_ink_stylus_interaction_SPEC_VERSION 1
10189#define XR_LOGITECH_MX_INK_STYLUS_INTERACTION_EXTENSION_NAME "XR_LOGITECH_mx_ink_stylus_interaction"
10190
10191
10192// XR_EXT_spatial_anchor is a preprocessor guard. Do not pass it to API calls.
10193#define XR_EXT_spatial_anchor 1
10194#define XR_EXT_spatial_anchor_SPEC_VERSION 1
10195#define XR_EXT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_EXT_spatial_anchor"
10196typedef struct XrSpatialCapabilityConfigurationAnchorEXT {
10197 XrStructureType type;
10198 const void* XR_MAY_ALIAS next;
10199 XrSpatialCapabilityEXT capability;
10200 uint32_t enabledComponentCount;
10201 const XrSpatialComponentTypeEXT* enabledComponents;
10202} XrSpatialCapabilityConfigurationAnchorEXT;
10203
10204// XrSpatialComponentAnchorListEXT extends XrSpatialComponentDataQueryResultEXT
10205typedef struct XrSpatialComponentAnchorListEXT {
10206 XrStructureType type;
10207 void* XR_MAY_ALIAS next;
10208 uint32_t locationCount;
10209 XrPosef* locations;
10210} XrSpatialComponentAnchorListEXT;
10211
10212typedef struct XrSpatialAnchorCreateInfoEXT {
10213 XrStructureType type;
10214 const void* XR_MAY_ALIAS next;
10215 XrSpace baseSpace;
10216 XrTime time;
10217 XrPosef pose;
10218} XrSpatialAnchorCreateInfoEXT;
10219
10220typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorEXT)(XrSpatialContextEXT spatialContext, const XrSpatialAnchorCreateInfoEXT* createInfo, XrSpatialEntityIdEXT* anchorEntityId, XrSpatialEntityEXT* anchorEntity);
10221
10222#ifndef XR_NO_PROTOTYPES
10223#ifdef XR_EXTENSION_PROTOTYPES
10224XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorEXT(
10225 XrSpatialContextEXT spatialContext,
10226 const XrSpatialAnchorCreateInfoEXT* createInfo,
10227 XrSpatialEntityIdEXT* anchorEntityId,
10228 XrSpatialEntityEXT* anchorEntity);
10229#endif /* XR_EXTENSION_PROTOTYPES */
10230#endif /* !XR_NO_PROTOTYPES */
10231
10232
10233// XR_EXT_spatial_persistence is a preprocessor guard. Do not pass it to API calls.
10234#define XR_EXT_spatial_persistence 1
10235XR_DEFINE_HANDLE(XrSpatialPersistenceContextEXT)
10236#define XR_EXT_spatial_persistence_SPEC_VERSION 1
10237#define XR_EXT_SPATIAL_PERSISTENCE_EXTENSION_NAME "XR_EXT_spatial_persistence"
10238
10239typedef enum XrSpatialPersistenceScopeEXT {
10240 XR_SPATIAL_PERSISTENCE_SCOPE_SYSTEM_MANAGED_EXT = 1,
10241 XR_SPATIAL_PERSISTENCE_SCOPE_LOCAL_ANCHORS_EXT = 1000781000,
10242 XR_SPATIAL_PERSISTENCE_SCOPE_MAX_ENUM_EXT = 0x7FFFFFFF
10243} XrSpatialPersistenceScopeEXT;
10244
10245typedef enum XrSpatialPersistenceContextResultEXT {
10246 XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_SUCCESS_EXT = 0,
10247 XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_ENTITY_NOT_TRACKING_EXT = -1000781001,
10248 XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_PERSIST_UUID_NOT_FOUND_EXT = -1000781002,
10249 XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_MAX_ENUM_EXT = 0x7FFFFFFF
10250} XrSpatialPersistenceContextResultEXT;
10251
10252typedef enum XrSpatialPersistenceStateEXT {
10253 XR_SPATIAL_PERSISTENCE_STATE_LOADED_EXT = 1,
10254 XR_SPATIAL_PERSISTENCE_STATE_NOT_FOUND_EXT = 2,
10255 XR_SPATIAL_PERSISTENCE_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
10256} XrSpatialPersistenceStateEXT;
10257typedef struct XrSpatialPersistenceContextCreateInfoEXT {
10258 XrStructureType type;
10259 const void* XR_MAY_ALIAS next;
10260 XrSpatialPersistenceScopeEXT scope;
10261} XrSpatialPersistenceContextCreateInfoEXT;
10262
10263typedef struct XrCreateSpatialPersistenceContextCompletionEXT {
10264 XrStructureType type;
10265 void* XR_MAY_ALIAS next;
10266 XrResult futureResult;
10267 XrSpatialPersistenceContextResultEXT createResult;
10268 XrSpatialPersistenceContextEXT persistenceContext;
10269} XrCreateSpatialPersistenceContextCompletionEXT;
10270
10271// XrSpatialContextPersistenceConfigEXT extends XrSpatialContextCreateInfoEXT
10272typedef struct XrSpatialContextPersistenceConfigEXT {
10273 XrStructureType type;
10274 const void* XR_MAY_ALIAS next;
10275 uint32_t persistenceContextCount;
10276 const XrSpatialPersistenceContextEXT* persistenceContexts;
10277} XrSpatialContextPersistenceConfigEXT;
10278
10279// XrSpatialDiscoveryPersistenceUuidFilterEXT extends XrSpatialDiscoverySnapshotCreateInfoEXT,XrSpatialComponentDataQueryConditionEXT
10280typedef struct XrSpatialDiscoveryPersistenceUuidFilterEXT {
10281 XrStructureType type;
10282 const void* XR_MAY_ALIAS next;
10283 uint32_t persistedUuidCount;
10284 const XrUuid* persistedUuids;
10285} XrSpatialDiscoveryPersistenceUuidFilterEXT;
10286
10287typedef struct XrSpatialPersistenceDataEXT {
10288 XrUuid persistUuid;
10289 XrSpatialPersistenceStateEXT persistState;
10290} XrSpatialPersistenceDataEXT;
10291
10292// XrSpatialComponentPersistenceListEXT extends XrSpatialComponentDataQueryResultEXT
10293typedef struct XrSpatialComponentPersistenceListEXT {
10294 XrStructureType type;
10295 void* XR_MAY_ALIAS next;
10296 uint32_t persistDataCount;
10297 XrSpatialPersistenceDataEXT* persistData;
10298} XrSpatialComponentPersistenceListEXT;
10299
10300typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialPersistenceScopesEXT)(XrInstance instance, XrSystemId systemId, uint32_t persistenceScopeCapacityInput, uint32_t* persistenceScopeCountOutput, XrSpatialPersistenceScopeEXT* persistenceScopes);
10301typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialPersistenceContextAsyncEXT)(XrSession session, const XrSpatialPersistenceContextCreateInfoEXT* createInfo, XrFutureEXT* future);
10302typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialPersistenceContextCompleteEXT)(XrSession session, XrFutureEXT future, XrCreateSpatialPersistenceContextCompletionEXT* completion);
10303typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialPersistenceContextEXT)(XrSpatialPersistenceContextEXT persistenceContext);
10304
10305#ifndef XR_NO_PROTOTYPES
10306#ifdef XR_EXTENSION_PROTOTYPES
10307XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialPersistenceScopesEXT(
10308 XrInstance instance,
10309 XrSystemId systemId,
10310 uint32_t persistenceScopeCapacityInput,
10311 uint32_t* persistenceScopeCountOutput,
10312 XrSpatialPersistenceScopeEXT* persistenceScopes);
10313
10314XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialPersistenceContextAsyncEXT(
10315 XrSession session,
10316 const XrSpatialPersistenceContextCreateInfoEXT* createInfo,
10317 XrFutureEXT* future);
10318
10319XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialPersistenceContextCompleteEXT(
10320 XrSession session,
10321 XrFutureEXT future,
10322 XrCreateSpatialPersistenceContextCompletionEXT* completion);
10323
10324XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialPersistenceContextEXT(
10325 XrSpatialPersistenceContextEXT persistenceContext);
10326#endif /* XR_EXTENSION_PROTOTYPES */
10327#endif /* !XR_NO_PROTOTYPES */
10328
10329
10330// XR_EXT_spatial_persistence_operations is a preprocessor guard. Do not pass it to API calls.
10331#define XR_EXT_spatial_persistence_operations 1
10332#define XR_EXT_spatial_persistence_operations_SPEC_VERSION 1
10333#define XR_EXT_SPATIAL_PERSISTENCE_OPERATIONS_EXTENSION_NAME "XR_EXT_spatial_persistence_operations"
10334typedef struct XrSpatialEntityPersistInfoEXT {
10335 XrStructureType type;
10336 const void* XR_MAY_ALIAS next;
10337 XrSpatialContextEXT spatialContext;
10338 XrSpatialEntityIdEXT spatialEntityId;
10339} XrSpatialEntityPersistInfoEXT;
10340
10341typedef struct XrPersistSpatialEntityCompletionEXT {
10342 XrStructureType type;
10343 void* XR_MAY_ALIAS next;
10344 XrResult futureResult;
10345 XrSpatialPersistenceContextResultEXT persistResult;
10346 XrUuid persistUuid;
10347} XrPersistSpatialEntityCompletionEXT;
10348
10349typedef struct XrSpatialEntityUnpersistInfoEXT {
10350 XrStructureType type;
10351 const void* XR_MAY_ALIAS next;
10352 XrUuid persistUuid;
10353} XrSpatialEntityUnpersistInfoEXT;
10354
10355typedef struct XrUnpersistSpatialEntityCompletionEXT {
10356 XrStructureType type;
10357 void* XR_MAY_ALIAS next;
10358 XrResult futureResult;
10359 XrSpatialPersistenceContextResultEXT unpersistResult;
10360} XrUnpersistSpatialEntityCompletionEXT;
10361
10362typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialEntityAsyncEXT)(XrSpatialPersistenceContextEXT persistenceContext, const XrSpatialEntityPersistInfoEXT* persistInfo, XrFutureEXT* future);
10363typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialEntityCompleteEXT)(XrSpatialPersistenceContextEXT persistenceContext, XrFutureEXT future, XrPersistSpatialEntityCompletionEXT* completion);
10364typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialEntityAsyncEXT)(XrSpatialPersistenceContextEXT persistenceContext, const XrSpatialEntityUnpersistInfoEXT* unpersistInfo, XrFutureEXT* future);
10365typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialEntityCompleteEXT)(XrSpatialPersistenceContextEXT persistenceContext, XrFutureEXT future, XrUnpersistSpatialEntityCompletionEXT* completion);
10366
10367#ifndef XR_NO_PROTOTYPES
10368#ifdef XR_EXTENSION_PROTOTYPES
10369XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialEntityAsyncEXT(
10370 XrSpatialPersistenceContextEXT persistenceContext,
10371 const XrSpatialEntityPersistInfoEXT* persistInfo,
10372 XrFutureEXT* future);
10373
10374XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialEntityCompleteEXT(
10375 XrSpatialPersistenceContextEXT persistenceContext,
10376 XrFutureEXT future,
10377 XrPersistSpatialEntityCompletionEXT* completion);
10378
10379XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialEntityAsyncEXT(
10380 XrSpatialPersistenceContextEXT persistenceContext,
10381 const XrSpatialEntityUnpersistInfoEXT* unpersistInfo,
10382 XrFutureEXT* future);
10383
10384XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialEntityCompleteEXT(
10385 XrSpatialPersistenceContextEXT persistenceContext,
10386 XrFutureEXT future,
10387 XrUnpersistSpatialEntityCompletionEXT* completion);
10388#endif /* XR_EXTENSION_PROTOTYPES */
10389#endif /* !XR_NO_PROTOTYPES */
10390
10391#ifdef __cplusplus
10392}
10393#endif
10394
10395#endif
10396

source code of qtquick3d/src/3rdparty/openxr/include/openxr/openxr.h