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