#ifndef OPENXR_H_ #define OPENXR_H_ 1 /* ** Copyright 2017-2026 The Khronos Group Inc. ** ** SPDX-License-Identifier: Apache-2.0 OR MIT */ /* ** This header is generated from the Khronos OpenXR XML API Registry. ** */ #ifdef __cplusplus extern "C" { #endif // XR_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls. #define XR_VERSION_1_0 1 #include "openxr_platform_defines.h" #define XR_MAKE_VERSION(major, minor, patch) \ ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL)) // OpenXR current version number. #define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 63) // OpenXR 1.0 version number #define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION)) #define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL) #define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL) #define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) #define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16 #if !defined(XR_NULL_HANDLE) #if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED #define XR_NULL_HANDLE nullptr #else #define XR_NULL_HANDLE 0 #endif #endif #define XR_NULL_SYSTEM_ID 0 #define XR_NULL_PATH 0 #define XR_SUCCEEDED(result) ((result) >= 0) #define XR_FAILED(result) ((result) < 0) #define XR_UNQUALIFIED_SUCCESS(result) ((result) == 0) #define XR_NO_DURATION 0 #define XR_INFINITE_DURATION 0x7fffffffffffffffLL #define XR_MIN_HAPTIC_DURATION -1 #define XR_FREQUENCY_UNSPECIFIED 0 #define XR_MAX_EVENT_DATA_SIZE sizeof(XrEventDataBuffer) #define XR_EXTENSION_ENUM_BASE 1000000000 #define XR_EXTENSION_ENUM_STRIDE 1000 #if !defined(XR_MAY_ALIAS) #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4)) #define XR_MAY_ALIAS __attribute__((__may_alias__)) #else #define XR_MAY_ALIAS #endif #endif #if !defined(XR_DEFINE_HANDLE) #if (XR_PTR_SIZE == 8) #define XR_DEFINE_HANDLE(object) typedef struct object##_T* object; #else #define XR_DEFINE_HANDLE(object) typedef uint64_t object; #endif #endif #if !defined(XR_DEFINE_OPAQUE_64) #if (XR_PTR_SIZE == 8) #define XR_DEFINE_OPAQUE_64(object) typedef struct object##_T* object; #else #define XR_DEFINE_OPAQUE_64(object) typedef uint64_t object; #endif #endif #if !defined(XR_DEFINE_ATOM) #define XR_DEFINE_ATOM(object) typedef uint64_t object; #endif typedef uint64_t XrVersion; typedef uint64_t XrFlags64; XR_DEFINE_ATOM(XrSystemId) typedef uint32_t XrBool32; XR_DEFINE_ATOM(XrPath) typedef int64_t XrTime; typedef int64_t XrDuration; XR_DEFINE_HANDLE(XrInstance) XR_DEFINE_HANDLE(XrSession) XR_DEFINE_HANDLE(XrSpace) XR_DEFINE_HANDLE(XrAction) XR_DEFINE_HANDLE(XrSwapchain) XR_DEFINE_HANDLE(XrActionSet) #define XR_TRUE 1 #define XR_FALSE 0 #define XR_MAX_EXTENSION_NAME_SIZE 128 #define XR_MAX_API_LAYER_NAME_SIZE 256 #define XR_MAX_API_LAYER_DESCRIPTION_SIZE 256 #define XR_MAX_SYSTEM_NAME_SIZE 256 #define XR_MAX_APPLICATION_NAME_SIZE 128 #define XR_MAX_ENGINE_NAME_SIZE 128 #define XR_MAX_RUNTIME_NAME_SIZE 128 #define XR_MAX_PATH_LENGTH 256 #define XR_MAX_STRUCTURE_NAME_SIZE 64 #define XR_MAX_RESULT_STRING_SIZE 64 #define XR_MAX_ACTION_SET_NAME_SIZE 64 #define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE 128 #define XR_MAX_ACTION_NAME_SIZE 64 #define XR_MAX_LOCALIZED_ACTION_NAME_SIZE 128 typedef enum XrResult { XR_SUCCESS = 0, XR_TIMEOUT_EXPIRED = 1, XR_SESSION_LOSS_PENDING = 3, XR_EVENT_UNAVAILABLE = 4, XR_SPACE_BOUNDS_UNAVAILABLE = 7, XR_SESSION_NOT_FOCUSED = 8, XR_FRAME_DISCARDED = 9, XR_ERROR_VALIDATION_FAILURE = -1, XR_ERROR_RUNTIME_FAILURE = -2, XR_ERROR_OUT_OF_MEMORY = -3, XR_ERROR_API_VERSION_UNSUPPORTED = -4, XR_ERROR_INITIALIZATION_FAILED = -6, XR_ERROR_FUNCTION_UNSUPPORTED = -7, XR_ERROR_FEATURE_UNSUPPORTED = -8, XR_ERROR_EXTENSION_NOT_PRESENT = -9, XR_ERROR_LIMIT_REACHED = -10, XR_ERROR_SIZE_INSUFFICIENT = -11, XR_ERROR_HANDLE_INVALID = -12, XR_ERROR_INSTANCE_LOST = -13, XR_ERROR_SESSION_RUNNING = -14, XR_ERROR_SESSION_NOT_RUNNING = -16, XR_ERROR_SESSION_LOST = -17, XR_ERROR_SYSTEM_INVALID = -18, XR_ERROR_PATH_INVALID = -19, XR_ERROR_PATH_COUNT_EXCEEDED = -20, XR_ERROR_PATH_FORMAT_INVALID = -21, XR_ERROR_PATH_UNSUPPORTED = -22, XR_ERROR_LAYER_INVALID = -23, XR_ERROR_LAYER_LIMIT_EXCEEDED = -24, XR_ERROR_SWAPCHAIN_RECT_INVALID = -25, XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26, XR_ERROR_ACTION_TYPE_MISMATCH = -27, XR_ERROR_SESSION_NOT_READY = -28, XR_ERROR_SESSION_NOT_STOPPING = -29, XR_ERROR_TIME_INVALID = -30, XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31, XR_ERROR_FILE_ACCESS_ERROR = -32, XR_ERROR_FILE_CONTENTS_INVALID = -33, XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34, XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35, XR_ERROR_API_LAYER_NOT_PRESENT = -36, XR_ERROR_CALL_ORDER_INVALID = -37, XR_ERROR_GRAPHICS_DEVICE_INVALID = -38, XR_ERROR_POSE_INVALID = -39, XR_ERROR_INDEX_OUT_OF_RANGE = -40, XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41, XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42, XR_ERROR_NAME_DUPLICATED = -44, XR_ERROR_NAME_INVALID = -45, XR_ERROR_ACTIONSET_NOT_ATTACHED = -46, XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47, XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48, XR_ERROR_LOCALIZED_NAME_INVALID = -49, XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50, XR_ERROR_RUNTIME_UNAVAILABLE = -51, XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED = -1000710001, XR_ERROR_PERMISSION_INSUFFICIENT = -1000710000, XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000, XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001, XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000, XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000, XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000, XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000, XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001, XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002, XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003, XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004, XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005, XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB = -1000113000, XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB = -1000113001, XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB = -1000113002, XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB = -1000113003, XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB = -1000118000, XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB = -1000118001, XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB = -1000118002, XR_ERROR_NOT_PERMITTED_PASSTHROUGH_FB = -1000118003, XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB = -1000118004, XR_ERROR_UNKNOWN_PASSTHROUGH_FB = -1000118050, XR_ERROR_RENDER_MODEL_KEY_INVALID_FB = -1000119000, XR_RENDER_MODEL_UNAVAILABLE_FB = 1000119020, XR_ERROR_MARKER_NOT_TRACKED_VARJO = -1000124000, XR_ERROR_MARKER_ID_INVALID_VARJO = -1000124001, XR_ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML = -1000138000, XR_ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML = -1000138001, XR_ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML = -1000138002, XR_ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML = -1000138003, XR_ERROR_MARKER_INVALID_ML = -1000138004, XR_ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML = -1000139000, XR_ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML = -1000139001, XR_ERROR_LOCALIZATION_MAP_FAIL_ML = -1000139002, XR_ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML = -1000139003, XR_ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML = -1000139004, XR_ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML = -1000139005, XR_ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML = -1000139006, XR_ERROR_SPATIAL_ANCHORS_PERMISSION_DENIED_ML = -1000140000, XR_ERROR_SPATIAL_ANCHORS_NOT_LOCALIZED_ML = -1000140001, XR_ERROR_SPATIAL_ANCHORS_OUT_OF_MAP_BOUNDS_ML = -1000140002, XR_ERROR_SPATIAL_ANCHORS_SPACE_NOT_LOCATABLE_ML = -1000140003, XR_ERROR_SPATIAL_ANCHORS_ANCHOR_NOT_FOUND_ML = -1000141000, XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001, XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002, XR_SCENE_MARKER_DATA_NOT_STRING_MSFT = 1000147000, XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB = -1000169000, XR_ERROR_SPACE_LOCALIZATION_FAILED_FB = -1000169001, XR_ERROR_SPACE_NETWORK_TIMEOUT_FB = -1000169002, XR_ERROR_SPACE_NETWORK_REQUEST_FAILED_FB = -1000169003, XR_ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB = -1000169004, XR_ERROR_SPACE_INSUFFICIENT_RESOURCES_META = -1000259000, XR_ERROR_SPACE_STORAGE_AT_CAPACITY_META = -1000259001, XR_ERROR_SPACE_INSUFFICIENT_VIEW_META = -1000259002, XR_ERROR_SPACE_PERMISSION_INSUFFICIENT_META = -1000259003, XR_ERROR_SPACE_RATE_LIMITED_META = -1000259004, XR_ERROR_SPACE_TOO_DARK_META = -1000259005, XR_ERROR_SPACE_TOO_BRIGHT_META = -1000259006, XR_ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META = -1000266000, XR_ENVIRONMENT_DEPTH_NOT_AVAILABLE_META = 1000291000, XR_ERROR_RENDER_MODEL_ID_INVALID_EXT = -1000300000, XR_ERROR_RENDER_MODEL_ASSET_UNAVAILABLE_EXT = -1000300001, XR_ERROR_RENDER_MODEL_GLTF_EXTENSION_REQUIRED_EXT = -1000300002, XR_ERROR_NOT_INTERACTION_RENDER_MODEL_EXT = -1000301000, XR_ERROR_HINT_ALREADY_SET_QCOM = -1000306000, XR_ERROR_NOT_AN_ANCHOR_HTC = -1000319000, XR_ERROR_SPATIAL_ENTITY_ID_INVALID_BD = -1000389000, XR_ERROR_SPATIAL_SENSING_SERVICE_UNAVAILABLE_BD = -1000389001, XR_ERROR_ANCHOR_NOT_SUPPORTED_FOR_ENTITY_BD = -1000389002, XR_ERROR_SPATIAL_ANCHOR_NOT_FOUND_BD = -1000390000, XR_ERROR_SPATIAL_ANCHOR_SHARING_NETWORK_TIMEOUT_BD = -1000391000, XR_ERROR_SPATIAL_ANCHOR_SHARING_AUTHENTICATION_FAILURE_BD = -1000391001, XR_ERROR_SPATIAL_ANCHOR_SHARING_NETWORK_FAILURE_BD = -1000391002, XR_ERROR_SPATIAL_ANCHOR_SHARING_LOCALIZATION_FAIL_BD = -1000391003, XR_ERROR_SPATIAL_ANCHOR_SHARING_MAP_INSUFFICIENT_BD = -1000391004, XR_ERROR_SCENE_CAPTURE_FAILURE_BD = -1000392000, XR_ERROR_SPACE_NOT_LOCATABLE_EXT = -1000429000, XR_ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT = -1000429001, XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID = -1000455000, XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID = -1000455001, XR_ERROR_ANCHOR_ID_NOT_FOUND_ANDROID = -1000457000, XR_ERROR_ANCHOR_ALREADY_PERSISTED_ANDROID = -1000457001, XR_ERROR_ANCHOR_NOT_TRACKING_ANDROID = -1000457002, XR_ERROR_PERSISTED_DATA_NOT_READY_ANDROID = -1000457003, XR_ERROR_SERVICE_NOT_READY_ANDROID = -1000458000, XR_ERROR_MESH_DATA_LIMIT_EXCEEDED_ANDROID = -1000462000, XR_ERROR_FUTURE_PENDING_EXT = -1000469001, XR_ERROR_FUTURE_INVALID_EXT = -1000469002, XR_ERROR_SYSTEM_NOTIFICATION_PERMISSION_DENIED_ML = -1000473000, XR_ERROR_SYSTEM_NOTIFICATION_INCOMPATIBLE_SKU_ML = -1000473001, XR_ERROR_WORLD_MESH_DETECTOR_PERMISSION_DENIED_ML = -1000474000, XR_ERROR_WORLD_MESH_DETECTOR_SPACE_NOT_LOCATABLE_ML = -1000474001, XR_ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML = 1000482000, XR_BOUNDARY_VISIBILITY_SUPPRESSION_NOT_ALLOWED_META = 1000528000, XR_ERROR_COLOCATION_DISCOVERY_NETWORK_FAILED_META = -1000571001, XR_ERROR_COLOCATION_DISCOVERY_NO_DISCOVERY_METHOD_META = -1000571002, XR_COLOCATION_DISCOVERY_ALREADY_ADVERTISING_META = 1000571003, XR_COLOCATION_DISCOVERY_ALREADY_DISCOVERING_META = 1000571004, XR_ERROR_SPACE_GROUP_NOT_FOUND_META = -1000572002, XR_ERROR_ANCHOR_NOT_OWNED_BY_CALLER_ANDROID = -1000701000, XR_ERROR_IMAGE_FORMAT_UNSUPPORTED_ANDROID = -1000709000, XR_ERROR_SPATIAL_CAPABILITY_UNSUPPORTED_EXT = -1000740001, XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT = -1000740002, XR_ERROR_SPATIAL_BUFFER_ID_INVALID_EXT = -1000740003, XR_ERROR_SPATIAL_COMPONENT_UNSUPPORTED_FOR_CAPABILITY_EXT = -1000740004, XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT = -1000740005, XR_ERROR_SPATIAL_COMPONENT_NOT_ENABLED_EXT = -1000740006, XR_ERROR_CAMERA_UNAVAILABLE_BD = -1000755000, XR_ERROR_CAMERA_OCCUPIED_BD = -1000755001, XR_ERROR_CAMERA_CAPTURE_SESSION_CAPTURING_BD = -1000755002, XR_ERROR_CAMERA_CAPTURE_SESSION_NOT_CAPTURING_BD = -1000755003, XR_ERROR_CAMERA_ID_INVALID_BD = -1000755004, XR_ERROR_CAMERA_IMAGE_ID_INVALID_BD = -1000755005, XR_ERROR_CAMERA_PROPERTY_TYPE_INVALID_BD = -1000755006, XR_ERROR_CAMERA_CAPABILITY_TYPE_INVALID_BD = -1000755007, XR_ERROR_IMAGE_BUFFER_EXHAUSTED_BD = -1000755008, XR_ERROR_SPATIAL_PERSISTENCE_SCOPE_UNSUPPORTED_EXT = -1000763001, XR_ERROR_SPATIAL_PERSISTENCE_SCOPE_INCOMPATIBLE_EXT = -1000781001, XR_ERROR_SPATIAL_IMAGE_FORMAT_UNSUPPORTED_EXT = -1000782001, XR_ERROR_SPATIAL_IMAGE_INVALID_EXT = -1000782002, XR_ERROR_SPATIAL_IMAGE_SIZE_MISSING_EXT = -1000782003, XR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID = -1000787000, XR_ERROR_KEYLESS_AUTH_FAILED_ANDROID = -1000787001, XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID = -1000789000, XR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROID = -1000789001, XR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROID = -1000789002, XR_ERROR_SPATIAL_ANCHOR_ATTACHABLE_COMPONENT_NOT_FOUND_ANDROID = -1000790001, XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID = -1000795001, XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID = -1000797000, XR_ERROR_SPATIAL_CONTAINER_CLOSED_EXT = -1000810000, XR_ERROR_SPATIAL_CONTAINERS_ENABLED_EXT = -1000810001, XR_ERROR_SPATIAL_CONTAINERS_NOT_ENABLED_EXT = -1000810002, XR_ERROR_COMPATIBLE_SPATIAL_CONTAINER_MISSING_EXT = -1000810003, XR_ERROR_SPATIAL_CONTAINER_IS_RENDERING_EXT = -1000813001, XR_ERROR_SPATIAL_CONTAINER_NOT_RENDERING_EXT = -1000813002, XR_ERROR_SPATIAL_CONTAINER_MISSING_EXT = -1000813003, XR_ERROR_SPATIAL_CONTAINER_DUPLICATE_EXT = -1000813004, XR_ERROR_SPATIAL_CONTAINER_GRAPHICS_PRESENTATION_MISSING_EXT = -1000813005, XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR = XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED, XR_ERROR_PERMISSION_INSUFFICIENT_KHR = XR_ERROR_PERMISSION_INSUFFICIENT, XR_RESULT_MAX_ENUM = 0x7FFFFFFF } XrResult; typedef enum XrStructureType { XR_TYPE_UNKNOWN = 0, XR_TYPE_API_LAYER_PROPERTIES = 1, XR_TYPE_EXTENSION_PROPERTIES = 2, XR_TYPE_INSTANCE_CREATE_INFO = 3, XR_TYPE_SYSTEM_GET_INFO = 4, XR_TYPE_SYSTEM_PROPERTIES = 5, XR_TYPE_VIEW_LOCATE_INFO = 6, XR_TYPE_VIEW = 7, XR_TYPE_SESSION_CREATE_INFO = 8, XR_TYPE_SWAPCHAIN_CREATE_INFO = 9, XR_TYPE_SESSION_BEGIN_INFO = 10, XR_TYPE_VIEW_STATE = 11, XR_TYPE_FRAME_END_INFO = 12, XR_TYPE_HAPTIC_VIBRATION = 13, XR_TYPE_EVENT_DATA_BUFFER = 16, XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17, XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18, XR_TYPE_ACTION_STATE_BOOLEAN = 23, XR_TYPE_ACTION_STATE_FLOAT = 24, XR_TYPE_ACTION_STATE_VECTOR2F = 25, XR_TYPE_ACTION_STATE_POSE = 27, XR_TYPE_ACTION_SET_CREATE_INFO = 28, XR_TYPE_ACTION_CREATE_INFO = 29, XR_TYPE_INSTANCE_PROPERTIES = 32, XR_TYPE_FRAME_WAIT_INFO = 33, XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35, XR_TYPE_COMPOSITION_LAYER_QUAD = 36, XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37, XR_TYPE_ACTION_SPACE_CREATE_INFO = 38, XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40, XR_TYPE_VIEW_CONFIGURATION_VIEW = 41, XR_TYPE_SPACE_LOCATION = 42, XR_TYPE_SPACE_VELOCITY = 43, XR_TYPE_FRAME_STATE = 44, XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45, XR_TYPE_FRAME_BEGIN_INFO = 46, XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48, XR_TYPE_EVENT_DATA_EVENTS_LOST = 49, XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51, XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52, XR_TYPE_INTERACTION_PROFILE_STATE = 53, XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55, XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56, XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57, XR_TYPE_ACTION_STATE_GET_INFO = 58, XR_TYPE_HAPTIC_ACTION_INFO = 59, XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO = 60, XR_TYPE_ACTIONS_SYNC_INFO = 61, XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO = 62, XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO = 63, XR_TYPE_SPACES_LOCATE_INFO = 1000471000, XR_TYPE_SPACE_LOCATIONS = 1000471001, XR_TYPE_SPACE_VELOCITIES = 1000471002, XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000, XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000, XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000, XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000, XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000, XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000, XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000, XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000, XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001, XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002, XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003, XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000, XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001, XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002, XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003, XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004, XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005, XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001, XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002, XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003, XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000, XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001, XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002, XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000, XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001, XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002, XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000, XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001, XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002, XR_TYPE_GRAPHICS_BINDING_METAL_KHR = 1000029000, XR_TYPE_SWAPCHAIN_IMAGE_METAL_KHR = 1000029001, XR_TYPE_GRAPHICS_REQUIREMENTS_METAL_KHR = 1000029002, XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT = 1000030000, XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT = 1000030001, XR_TYPE_VISIBILITY_MASK_KHR = 1000031000, XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001, XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX = 1000033000, XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX = 1000033003, XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR = 1000034000, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000, XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001, XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB = 1000040000, XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB = 1000041001, XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, XR_TYPE_GRAPHICS_BINDING_EGL_MNDX = 1000048004, XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000, XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT = 1000049001, XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT = 1000049002, XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT = 1000049003, XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000, XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT = 1000051001, XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT = 1000051002, XR_TYPE_HAND_JOINT_LOCATIONS_EXT = 1000051003, XR_TYPE_HAND_JOINT_VELOCITIES_EXT = 1000051004, XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT = 1000052000, XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT = 1000052001, XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT = 1000052002, XR_TYPE_HAND_MESH_MSFT = 1000052003, XR_TYPE_HAND_POSE_TYPE_INFO_MSFT = 1000052004, XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT = 1000053000, XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT = 1000053001, XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT = 1000053002, XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT = 1000053003, XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT = 1000053004, XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT = 1000053005, XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT = 1000055000, XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT = 1000055001, XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT = 1000055002, XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT = 1000055003, XR_TYPE_CONTROLLER_MODEL_STATE_MSFT = 1000055004, XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC = 1000059000, XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT = 1000063000, XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT = 1000066000, XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001, XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB = 1000070000, XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB = 1000072000, XR_TYPE_BODY_TRACKER_CREATE_INFO_FB = 1000076001, XR_TYPE_BODY_JOINTS_LOCATE_INFO_FB = 1000076002, XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_FB = 1000076004, XR_TYPE_BODY_JOINT_LOCATIONS_FB = 1000076005, XR_TYPE_BODY_SKELETON_FB = 1000076006, XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT = 1000078000, XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000, XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000, XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR = 1000089000, XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000, XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR = 1000090001, XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR = 1000090003, XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR = 1000091000, XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT = 1000097000, XR_TYPE_SCENE_CREATE_INFO_MSFT = 1000097001, XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT = 1000097002, XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT = 1000097003, XR_TYPE_SCENE_COMPONENTS_MSFT = 1000097004, XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT = 1000097005, XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT = 1000097006, XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT = 1000097007, XR_TYPE_SCENE_OBJECTS_MSFT = 1000097008, XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT = 1000097009, XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT = 1000097010, XR_TYPE_SCENE_PLANES_MSFT = 1000097011, XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT = 1000097012, XR_TYPE_SCENE_MESHES_MSFT = 1000097013, XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT = 1000097014, XR_TYPE_SCENE_MESH_BUFFERS_MSFT = 1000097015, XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT = 1000097016, XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT = 1000097017, XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT = 1000097018, XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT = 1000098000, XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT = 1000098001, XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB = 1000101000, XR_TYPE_VIVE_TRACKER_PATHS_HTCX = 1000103000, XR_TYPE_EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX = 1000103001, XR_TYPE_SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC = 1000104000, XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC = 1000104001, XR_TYPE_FACIAL_EXPRESSIONS_HTC = 1000104002, XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB = 1000108000, XR_TYPE_HAND_TRACKING_MESH_FB = 1000110001, XR_TYPE_HAND_TRACKING_SCALE_FB = 1000110003, XR_TYPE_HAND_TRACKING_AIM_STATE_FB = 1000111001, XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB = 1000112000, XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB = 1000113004, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB = 1000113003, XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB = 1000113007, XR_TYPE_SPACE_COMPONENT_STATUS_FB = 1000113001, XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB = 1000113005, XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB = 1000113006, XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB = 1000114000, XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB = 1000114001, XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB = 1000114002, XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB = 1000115000, XR_TYPE_KEYBOARD_SPACE_CREATE_INFO_FB = 1000116009, XR_TYPE_KEYBOARD_TRACKING_QUERY_FB = 1000116004, XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB = 1000116002, XR_TYPE_TRIANGLE_MESH_CREATE_INFO_FB = 1000117001, XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB = 1000118000, XR_TYPE_PASSTHROUGH_CREATE_INFO_FB = 1000118001, XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_FB = 1000118002, XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB = 1000118003, XR_TYPE_GEOMETRY_INSTANCE_CREATE_INFO_FB = 1000118004, XR_TYPE_GEOMETRY_INSTANCE_TRANSFORM_FB = 1000118005, XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES2_FB = 1000118006, XR_TYPE_PASSTHROUGH_STYLE_FB = 1000118020, XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB = 1000118021, XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB = 1000118022, XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB = 1000118023, XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB = 1000118030, XR_TYPE_RENDER_MODEL_PATH_INFO_FB = 1000119000, XR_TYPE_RENDER_MODEL_PROPERTIES_FB = 1000119001, XR_TYPE_RENDER_MODEL_BUFFER_FB = 1000119002, XR_TYPE_RENDER_MODEL_LOAD_INFO_FB = 1000119003, XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB = 1000119004, XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB = 1000119005, XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000, XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO = 1000121000, XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO = 1000121001, XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO = 1000121002, XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO = 1000122000, XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO = 1000124000, XR_TYPE_EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO = 1000124001, XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO = 1000124002, XR_TYPE_FRAME_END_INFO_ML = 1000135000, XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML = 1000136000, XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML = 1000137000, XR_TYPE_SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML = 1000138000, XR_TYPE_MARKER_DETECTOR_CREATE_INFO_ML = 1000138001, XR_TYPE_MARKER_DETECTOR_ARUCO_INFO_ML = 1000138002, XR_TYPE_MARKER_DETECTOR_SIZE_INFO_ML = 1000138003, XR_TYPE_MARKER_DETECTOR_APRIL_TAG_INFO_ML = 1000138004, XR_TYPE_MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML = 1000138005, XR_TYPE_MARKER_DETECTOR_SNAPSHOT_INFO_ML = 1000138006, XR_TYPE_MARKER_DETECTOR_STATE_ML = 1000138007, XR_TYPE_MARKER_SPACE_CREATE_INFO_ML = 1000138008, XR_TYPE_LOCALIZATION_MAP_ML = 1000139000, XR_TYPE_EVENT_DATA_LOCALIZATION_CHANGED_ML = 1000139001, XR_TYPE_MAP_LOCALIZATION_REQUEST_INFO_ML = 1000139002, XR_TYPE_LOCALIZATION_MAP_IMPORT_INFO_ML = 1000139003, XR_TYPE_LOCALIZATION_ENABLE_EVENTS_INFO_ML = 1000139004, XR_TYPE_SPATIAL_ANCHORS_CREATE_INFO_FROM_POSE_ML = 1000140000, XR_TYPE_CREATE_SPATIAL_ANCHORS_COMPLETION_ML = 1000140001, XR_TYPE_SPATIAL_ANCHOR_STATE_ML = 1000140002, XR_TYPE_SPATIAL_ANCHORS_CREATE_STORAGE_INFO_ML = 1000141000, XR_TYPE_SPATIAL_ANCHORS_QUERY_INFO_RADIUS_ML = 1000141001, XR_TYPE_SPATIAL_ANCHORS_QUERY_COMPLETION_ML = 1000141002, XR_TYPE_SPATIAL_ANCHORS_CREATE_INFO_FROM_UUIDS_ML = 1000141003, XR_TYPE_SPATIAL_ANCHORS_PUBLISH_INFO_ML = 1000141004, XR_TYPE_SPATIAL_ANCHORS_PUBLISH_COMPLETION_ML = 1000141005, XR_TYPE_SPATIAL_ANCHORS_DELETE_INFO_ML = 1000141006, XR_TYPE_SPATIAL_ANCHORS_DELETE_COMPLETION_ML = 1000141007, XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_INFO_ML = 1000141008, XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_COMPLETION_ML = 1000141009, XR_TYPE_SPATIAL_ANCHORS_PUBLISH_COMPLETION_DETAILS_ML = 1000141010, XR_TYPE_SPATIAL_ANCHORS_DELETE_COMPLETION_DETAILS_ML = 1000141011, XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_COMPLETION_DETAILS_ML = 1000141012, XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML = 1000472000, XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML = 1000472001, XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML = 1000472002, XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000, XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001, XR_TYPE_SCENE_MARKERS_MSFT = 1000147000, XR_TYPE_SCENE_MARKER_TYPE_FILTER_MSFT = 1000147001, XR_TYPE_SCENE_MARKER_QR_CODES_MSFT = 1000147002, XR_TYPE_SPACE_QUERY_INFO_FB = 1000156001, XR_TYPE_SPACE_QUERY_RESULTS_FB = 1000156002, XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB = 1000156003, XR_TYPE_SPACE_UUID_FILTER_INFO_FB = 1000156054, XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB = 1000156052, XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB = 1000156103, XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB = 1000156104, XR_TYPE_SPACE_SAVE_INFO_FB = 1000158000, XR_TYPE_SPACE_ERASE_INFO_FB = 1000158001, XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB = 1000158106, XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB = 1000158107, XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB = 1000160000, XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB = 1000161000, XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB = 1000162000, XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB = 1000163000, XR_TYPE_SPACE_SHARE_INFO_FB = 1000169001, XR_TYPE_EVENT_DATA_SPACE_SHARE_COMPLETE_FB = 1000169002, XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000, XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001, XR_TYPE_HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB = 1000173001, XR_TYPE_SEMANTIC_LABELS_FB = 1000175000, XR_TYPE_ROOM_LAYOUT_FB = 1000175001, XR_TYPE_BOUNDARY_2D_FB = 1000175002, XR_TYPE_SEMANTIC_LABELS_SUPPORT_INFO_FB = 1000175010, XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE = 1000196000, XR_TYPE_EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB = 1000198001, XR_TYPE_SCENE_CAPTURE_REQUEST_INFO_FB = 1000198050, XR_TYPE_SPACE_CONTAINER_FB = 1000199000, XR_TYPE_FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META = 1000200000, XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META = 1000200001, XR_TYPE_SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META = 1000200002, XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_FB = 1000201004, XR_TYPE_FACE_TRACKER_CREATE_INFO_FB = 1000201005, XR_TYPE_FACE_EXPRESSION_INFO_FB = 1000201002, XR_TYPE_FACE_EXPRESSION_WEIGHTS_FB = 1000201006, XR_TYPE_EYE_TRACKER_CREATE_INFO_FB = 1000202001, XR_TYPE_EYE_GAZES_INFO_FB = 1000202002, XR_TYPE_EYE_GAZES_FB = 1000202003, XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_FB = 1000202004, XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB = 1000203002, XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB = 1000204000, XR_TYPE_HAPTIC_PCM_VIBRATION_FB = 1000209001, XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB = 1000209002, XR_TYPE_FRAME_SYNTHESIS_INFO_EXT = 1000211000, XR_TYPE_FRAME_SYNTHESIS_CONFIG_VIEW_EXT = 1000211001, XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB = 1000212000, XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META = 1000216000, XR_TYPE_PASSTHROUGH_PREFERENCES_META = 1000217000, XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META = 1000219001, XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META = 1000219002, XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META = 1000219003, XR_TYPE_VIRTUAL_KEYBOARD_LOCATION_INFO_META = 1000219004, XR_TYPE_VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META = 1000219005, XR_TYPE_VIRTUAL_KEYBOARD_ANIMATION_STATE_META = 1000219006, XR_TYPE_VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META = 1000219007, XR_TYPE_VIRTUAL_KEYBOARD_TEXTURE_DATA_META = 1000219009, XR_TYPE_VIRTUAL_KEYBOARD_INPUT_INFO_META = 1000219010, XR_TYPE_VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META = 1000219011, XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META = 1000219014, XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META = 1000219015, XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META = 1000219016, XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META = 1000219017, XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META = 1000219018, XR_TYPE_EXTERNAL_CAMERA_OCULUS = 1000226000, XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000, XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001, XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002, XR_TYPE_SPACE_LIST_SAVE_INFO_FB = 1000238000, XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB = 1000238001, XR_TYPE_SPACE_USER_CREATE_INFO_FB = 1000241001, XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META = 1000245000, XR_TYPE_SYSTEM_SPACE_DISCOVERY_PROPERTIES_META = 1000247000, XR_TYPE_SPACE_DISCOVERY_INFO_META = 1000247001, XR_TYPE_SPACE_FILTER_UUID_META = 1000247003, XR_TYPE_SPACE_FILTER_COMPONENT_META = 1000247004, XR_TYPE_SPACE_DISCOVERY_RESULT_META = 1000247005, XR_TYPE_SPACE_DISCOVERY_RESULTS_META = 1000247006, XR_TYPE_EVENT_DATA_SPACE_DISCOVERY_RESULTS_AVAILABLE_META = 1000247007, XR_TYPE_EVENT_DATA_SPACE_DISCOVERY_COMPLETE_META = 1000247008, XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META = 1000254000, XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META = 1000254001, XR_TYPE_SYSTEM_SPACE_PERSISTENCE_PROPERTIES_META = 1000259000, XR_TYPE_SPACES_SAVE_INFO_META = 1000259001, XR_TYPE_EVENT_DATA_SPACES_SAVE_RESULT_META = 1000259002, XR_TYPE_SPACES_ERASE_INFO_META = 1000259003, XR_TYPE_EVENT_DATA_SPACES_ERASE_RESULT_META = 1000259004, XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META = 1000266000, XR_TYPE_PASSTHROUGH_COLOR_LUT_CREATE_INFO_META = 1000266001, XR_TYPE_PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META = 1000266002, XR_TYPE_PASSTHROUGH_COLOR_MAP_LUT_META = 1000266100, XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META = 1000266101, XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META = 1000269001, XR_TYPE_SPACE_TRIANGLE_MESH_META = 1000269002, XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FULL_BODY_META = 1000274000, XR_TYPE_EVENT_DATA_PASSTHROUGH_LAYER_RESUMED_META = 1000282000, XR_TYPE_BODY_TRACKING_CALIBRATION_INFO_META = 1000283002, XR_TYPE_BODY_TRACKING_CALIBRATION_STATUS_META = 1000283003, XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_CALIBRATION_META = 1000283004, XR_TYPE_BODY_TRACKING_FIDELITY_STATUS_META = 1000284000, XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FIDELITY_META = 1000284001, XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB = 1000287013, XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB = 1000287014, XR_TYPE_FACE_EXPRESSION_INFO2_FB = 1000287015, XR_TYPE_FACE_EXPRESSION_WEIGHTS2_FB = 1000287016, XR_TYPE_SYSTEM_SPATIAL_ENTITY_SHARING_PROPERTIES_META = 1000290000, XR_TYPE_SHARE_SPACES_INFO_META = 1000290001, XR_TYPE_EVENT_DATA_SHARE_SPACES_COMPLETE_META = 1000290002, XR_TYPE_ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META = 1000291000, XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META = 1000291001, XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META = 1000291002, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META = 1000291003, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META = 1000291004, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META = 1000291005, XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META = 1000291006, XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META = 1000291007, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_TIMESTAMP_META = 1000291008, XR_TYPE_RENDER_MODEL_CREATE_INFO_EXT = 1000300000, XR_TYPE_RENDER_MODEL_PROPERTIES_GET_INFO_EXT = 1000300001, XR_TYPE_RENDER_MODEL_PROPERTIES_EXT = 1000300002, XR_TYPE_RENDER_MODEL_SPACE_CREATE_INFO_EXT = 1000300003, XR_TYPE_RENDER_MODEL_STATE_GET_INFO_EXT = 1000300004, XR_TYPE_RENDER_MODEL_STATE_EXT = 1000300005, XR_TYPE_RENDER_MODEL_ASSET_CREATE_INFO_EXT = 1000300006, XR_TYPE_RENDER_MODEL_ASSET_DATA_GET_INFO_EXT = 1000300007, XR_TYPE_RENDER_MODEL_ASSET_DATA_EXT = 1000300008, XR_TYPE_RENDER_MODEL_ASSET_PROPERTIES_GET_INFO_EXT = 1000300009, XR_TYPE_RENDER_MODEL_ASSET_PROPERTIES_EXT = 1000300010, XR_TYPE_INTERACTION_RENDER_MODEL_IDS_ENUMERATE_INFO_EXT = 1000301000, XR_TYPE_INTERACTION_RENDER_MODEL_SUBACTION_PATH_INFO_EXT = 1000301001, XR_TYPE_EVENT_DATA_INTERACTION_RENDER_MODELS_CHANGED_EXT = 1000301002, XR_TYPE_INTERACTION_RENDER_MODEL_TOP_LEVEL_USER_PATH_GET_INFO_EXT = 1000301003, XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC = 1000317001, XR_TYPE_PASSTHROUGH_COLOR_HTC = 1000317002, XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC = 1000317003, XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004, XR_TYPE_FOVEATION_APPLY_INFO_HTC = 1000318000, XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC = 1000318001, XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC = 1000318002, XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC = 1000319000, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC = 1000319001, XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_HTC = 1000320000, XR_TYPE_BODY_TRACKER_CREATE_INFO_HTC = 1000320001, XR_TYPE_BODY_JOINTS_LOCATE_INFO_HTC = 1000320002, XR_TYPE_BODY_JOINT_LOCATIONS_HTC = 1000320003, XR_TYPE_BODY_SKELETON_HTC = 1000320004, XR_TYPE_ACTIVE_ACTION_SET_PRIORITIES_EXT = 1000373000, XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX = 1000375000, XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX = 1000375001, XR_TYPE_BODY_TRACKER_CREATE_INFO_BD = 1000385001, XR_TYPE_BODY_JOINTS_LOCATE_INFO_BD = 1000385002, XR_TYPE_BODY_JOINT_LOCATIONS_BD = 1000385003, XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_BD = 1000385004, XR_TYPE_SYSTEM_FACIAL_SIMULATION_PROPERTIES_BD = 1000386001, XR_TYPE_FACE_TRACKER_CREATE_INFO_BD = 1000386002, XR_TYPE_FACIAL_SIMULATION_DATA_GET_INFO_BD = 1000386003, XR_TYPE_FACIAL_SIMULATION_DATA_BD = 1000386004, XR_TYPE_LIP_EXPRESSION_DATA_BD = 1000386005, XR_TYPE_SYSTEM_SPATIAL_SENSING_PROPERTIES_BD = 1000389000, XR_TYPE_SPATIAL_ENTITY_COMPONENT_GET_INFO_BD = 1000389001, XR_TYPE_SPATIAL_ENTITY_LOCATION_GET_INFO_BD = 1000389002, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_LOCATION_BD = 1000389003, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_SEMANTIC_BD = 1000389004, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_BOUNDING_BOX_2D_BD = 1000389005, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_POLYGON_BD = 1000389006, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_BOUNDING_BOX_3D_BD = 1000389007, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_TRIANGLE_MESH_BD = 1000389008, XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_BD = 1000389009, XR_TYPE_SENSE_DATA_PROVIDER_START_INFO_BD = 1000389010, XR_TYPE_EVENT_DATA_SENSE_DATA_PROVIDER_STATE_CHANGED_BD = 1000389011, XR_TYPE_EVENT_DATA_SENSE_DATA_UPDATED_BD = 1000389012, XR_TYPE_SENSE_DATA_QUERY_INFO_BD = 1000389013, XR_TYPE_SENSE_DATA_QUERY_COMPLETION_BD = 1000389014, XR_TYPE_SENSE_DATA_FILTER_UUID_BD = 1000389015, XR_TYPE_SENSE_DATA_FILTER_SEMANTIC_BD = 1000389016, XR_TYPE_QUERIED_SENSE_DATA_GET_INFO_BD = 1000389017, XR_TYPE_QUERIED_SENSE_DATA_BD = 1000389018, XR_TYPE_SPATIAL_ENTITY_STATE_BD = 1000389019, XR_TYPE_SPATIAL_ENTITY_ANCHOR_CREATE_INFO_BD = 1000389020, XR_TYPE_ANCHOR_SPACE_CREATE_INFO_BD = 1000389021, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_SPHERE_BD = 1000389022, XR_TYPE_SYSTEM_SPATIAL_ANCHOR_PROPERTIES_BD = 1000390000, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_BD = 1000390001, XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION_BD = 1000390002, XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_BD = 1000390003, XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO_BD = 1000390004, XR_TYPE_SYSTEM_SPATIAL_ANCHOR_SHARING_PROPERTIES_BD = 1000391000, XR_TYPE_SPATIAL_ANCHOR_SHARE_INFO_BD = 1000391001, XR_TYPE_SHARED_SPATIAL_ANCHOR_DOWNLOAD_INFO_BD = 1000391002, XR_TYPE_SYSTEM_SPATIAL_SCENE_PROPERTIES_BD = 1000392000, XR_TYPE_SCENE_CAPTURE_INFO_BD = 1000392001, XR_TYPE_SYSTEM_SPATIAL_MESH_PROPERTIES_BD = 1000393000, XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH_BD = 1000393001, XR_TYPE_FUTURE_POLL_RESULT_PROGRESS_BD = 1000394001, XR_TYPE_BODY_TRACKING_POSTURE_DATA_BD = 1000395001, XR_TYPE_BODY_JOINT_VELOCITIES_BD = 1000395002, XR_TYPE_BODY_JOINT_ACCELERATIONS_BD = 1000395003, XR_TYPE_BODY_TRACKING_STATE_BD = 1000395004, XR_TYPE_SYSTEM_SPATIAL_PLANE_PROPERTIES_BD = 1000396000, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_PLANE_ORIENTATION_BD = 1000396001, XR_TYPE_SENSE_DATA_FILTER_PLANE_ORIENTATION_BD = 1000396002, XR_TYPE_SYSTEM_LIGHT_ESTIMATION_PROPERTIES_BD = 1000397000, XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_LIGHT_ESTIMATION_BD = 1000397001, XR_TYPE_ENVIRONMENT_TEXTURE_CREATE_CONFIG_INFO_BD = 1000397002, XR_TYPE_LIGHT_ESTIMATION_DATA_ENVIRONMENT_TEXTURE_RAW_BD = 1000397003, XR_TYPE_LIGHT_ESTIMATION_DATA_SPHERICAL_HARMONICS_BD = 1000397005, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_LIGHT_ESTIMATION_BD = 1000397006, XR_TYPE_SPATIAL_AUDIO_RENDERER_CREATE_INFO_BD = 1000409000, XR_TYPE_AUDIO_BUFFER_BD = 1000409001, XR_TYPE_SOUND_OBJECT_DIRECTIVITY_CARDIOID_BD = 1000409003, XR_TYPE_SOUND_OBJECT_SHAPE_SPHERE_BD = 1000409004, XR_TYPE_SOUND_OBJECT_DISTANCE_ATTENUATION_BD = 1000409005, XR_TYPE_SOUND_OBJECT_DISTANCE_ATTENUATION_CURVE_BD = 1000409006, XR_TYPE_SOUND_OBJECT_CONFIG_BD = 1000409007, XR_TYPE_SOUND_FIELD_CONFIG_BD = 1000409008, XR_TYPE_SOUND_FIELD_CHANNEL_DEFINITION_SURROUND_BD = 1000409009, XR_TYPE_SOUND_FIELD_CHANNEL_DEFINITION_AMBIX_BD = 1000409010, XR_TYPE_SOUND_FIELD_CHANNEL_DEFINITION_FUMA_BD = 1000409011, XR_TYPE_SOUND_TRIANGLE_MESH_BD = 1000409012, XR_TYPE_SOUND_OBSTACLE_CONFIG_BD = 1000409013, XR_TYPE_SOUND_OBSTACLE_MATERIAL_CONFIG_BD = 1000409014, XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT = 1000428000, XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT = 1000428001, XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001, XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT = 1000429002, XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT = 1000429003, XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT = 1000429004, XR_TYPE_PLANE_DETECTOR_LOCATION_EXT = 1000429005, XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT = 1000429006, XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT = 1000429007, XR_TYPE_TRACKABLE_GET_INFO_ANDROID = 1000455000, XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID = 1000455001, XR_TYPE_TRACKABLE_PLANE_ANDROID = 1000455003, XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID = 1000455004, XR_TYPE_SYSTEM_TRACKABLES_PROPERTIES_ANDROID = 1000455005, XR_TYPE_EYES_ANDROID = 1000456000, XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID = 1000456001, XR_TYPE_EYES_GET_INFO_ANDROID = 1000456002, XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROID = 1000456004, XR_TYPE_PERSISTED_ANCHOR_SPACE_CREATE_INFO_ANDROID = 1000457001, XR_TYPE_PERSISTED_ANCHOR_SPACE_INFO_ANDROID = 1000457002, XR_TYPE_DEVICE_ANCHOR_PERSISTENCE_CREATE_INFO_ANDROID = 1000457003, XR_TYPE_SYSTEM_DEVICE_ANCHOR_PERSISTENCE_PROPERTIES_ANDROID = 1000457004, XR_TYPE_FACE_TRACKER_CREATE_INFO_ANDROID = 1000458000, XR_TYPE_FACE_STATE_GET_INFO_ANDROID = 1000458001, XR_TYPE_FACE_STATE_ANDROID = 1000458002, XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_ANDROID = 1000458003, XR_TYPE_PASSTHROUGH_CAMERA_STATE_GET_INFO_ANDROID = 1000460000, XR_TYPE_SYSTEM_PASSTHROUGH_CAMERA_STATE_PROPERTIES_ANDROID = 1000460001, XR_TYPE_EVENT_DATA_RECOMMENDED_RESOLUTION_CHANGED_ANDROID = 1000461000, XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_ANDROID = 1000462000, XR_TYPE_PASSTHROUGH_LAYER_MESH_ANDROID = 1000462001, XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_ANDROID = 1000462002, XR_TYPE_SYSTEM_PASSTHROUGH_LAYER_PROPERTIES_ANDROID = 1000462003, XR_TYPE_RAYCAST_INFO_ANDROID = 1000463000, XR_TYPE_RAYCAST_HIT_RESULTS_ANDROID = 1000463001, XR_TYPE_PERFORMANCE_METRICS_STATE_ANDROID = 1000465000, XR_TYPE_PERFORMANCE_METRICS_COUNTER_ANDROID = 1000465001, XR_TYPE_TRACKABLE_OBJECT_ANDROID = 1000466000, XR_TYPE_TRACKABLE_OBJECT_CONFIGURATION_ANDROID = 1000466001, XR_TYPE_FUTURE_CANCEL_INFO_EXT = 1000469000, XR_TYPE_FUTURE_POLL_INFO_EXT = 1000469001, XR_TYPE_FUTURE_COMPLETION_EXT = 1000469002, XR_TYPE_FUTURE_POLL_RESULT_EXT = 1000469003, XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT = 1000470000, XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT = 1000470001, XR_TYPE_SYSTEM_NOTIFICATIONS_SET_INFO_ML = 1000473000, XR_TYPE_WORLD_MESH_DETECTOR_CREATE_INFO_ML = 1000474001, XR_TYPE_WORLD_MESH_STATE_REQUEST_INFO_ML = 1000474002, XR_TYPE_WORLD_MESH_BLOCK_STATE_ML = 1000474003, XR_TYPE_WORLD_MESH_STATE_REQUEST_COMPLETION_ML = 1000474004, XR_TYPE_WORLD_MESH_BUFFER_RECOMMENDED_SIZE_INFO_ML = 1000474005, XR_TYPE_WORLD_MESH_BUFFER_SIZE_ML = 1000474006, XR_TYPE_WORLD_MESH_BUFFER_ML = 1000474007, XR_TYPE_WORLD_MESH_BLOCK_REQUEST_ML = 1000474008, XR_TYPE_WORLD_MESH_GET_INFO_ML = 1000474009, XR_TYPE_WORLD_MESH_BLOCK_ML = 1000474010, XR_TYPE_WORLD_MESH_REQUEST_COMPLETION_ML = 1000474011, XR_TYPE_WORLD_MESH_REQUEST_COMPLETION_INFO_ML = 1000474012, XR_TYPE_SYSTEM_FACIAL_EXPRESSION_PROPERTIES_ML = 1000482004, XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML = 1000482005, XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML = 1000482006, XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML = 1000482007, XR_TYPE_SYSTEM_BOUNDARY_VISIBILITY_PROPERTIES_META = 1000528000, XR_TYPE_EVENT_DATA_BOUNDARY_VISIBILITY_CHANGED_META = 1000528001, XR_TYPE_SYSTEM_SIMULTANEOUS_HANDS_AND_CONTROLLERS_PROPERTIES_META = 1000532001, XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_RESUME_INFO_META = 1000532002, XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_PAUSE_INFO_META = 1000532003, XR_TYPE_FACE_TRACKING_VISEMES_META = 1000541000, XR_TYPE_SYSTEM_FACE_TRACKING_VISEMES_PROPERTIES_META = 1000541001, XR_TYPE_ROOM_MESH_FACE_INDICES_META = 1000553000, XR_TYPE_SPACE_ROOM_MESH_GET_INFO_META = 1000553001, XR_TYPE_ROOM_MESH_META = 1000553002, XR_TYPE_COLOCATION_DISCOVERY_START_INFO_META = 1000571010, XR_TYPE_COLOCATION_DISCOVERY_STOP_INFO_META = 1000571011, XR_TYPE_COLOCATION_ADVERTISEMENT_START_INFO_META = 1000571012, XR_TYPE_COLOCATION_ADVERTISEMENT_STOP_INFO_META = 1000571013, XR_TYPE_EVENT_DATA_START_COLOCATION_ADVERTISEMENT_COMPLETE_META = 1000571020, XR_TYPE_EVENT_DATA_STOP_COLOCATION_ADVERTISEMENT_COMPLETE_META = 1000571021, XR_TYPE_EVENT_DATA_COLOCATION_ADVERTISEMENT_COMPLETE_META = 1000571022, XR_TYPE_EVENT_DATA_START_COLOCATION_DISCOVERY_COMPLETE_META = 1000571023, XR_TYPE_EVENT_DATA_COLOCATION_DISCOVERY_RESULT_META = 1000571024, XR_TYPE_EVENT_DATA_COLOCATION_DISCOVERY_COMPLETE_META = 1000571025, XR_TYPE_EVENT_DATA_STOP_COLOCATION_DISCOVERY_COMPLETE_META = 1000571026, XR_TYPE_SYSTEM_COLOCATION_DISCOVERY_PROPERTIES_META = 1000571030, XR_TYPE_SHARE_SPACES_RECIPIENT_GROUPS_META = 1000572000, XR_TYPE_SPACE_GROUP_UUID_FILTER_INFO_META = 1000572001, XR_TYPE_SYSTEM_SPATIAL_ENTITY_GROUP_SHARING_PROPERTIES_META = 1000572100, XR_TYPE_SYSTEM_ENVIRONMENT_RAYCAST_PROPERTIES_META = 1000592000, XR_TYPE_ENVIRONMENT_RAYCASTER_CREATE_INFO_META = 1000592001, XR_TYPE_ENVIRONMENT_RAYCASTER_CREATE_COMPLETION_META = 1000592002, XR_TYPE_ENVIRONMENT_RAYCAST_HIT_GET_INFO_META = 1000592003, XR_TYPE_ENVIRONMENT_RAYCAST_HIT_META = 1000592004, XR_TYPE_ENVIRONMENT_RAYCAST_FILTER_DISTANCE_META = 1000592005, XR_TYPE_TILE_PROPERTIES_META = 1000609000, XR_TYPE_TILE_PROPERTIES_HINT_META = 1000609001, XR_TYPE_HAND_TRACKING_UNEXTRAPOLATED_POSES_REQUEST_META = 1000693000, XR_TYPE_HAND_TRACKING_UNEXTRAPOLATED_POSES_META = 1000693001, XR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID = 1000700000, XR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROID = 1000700001, XR_TYPE_LIGHT_ESTIMATE_ANDROID = 1000700002, XR_TYPE_DIRECTIONAL_LIGHT_ANDROID = 1000700003, XR_TYPE_SPHERICAL_HARMONICS_ANDROID = 1000700004, XR_TYPE_AMBIENT_LIGHT_ANDROID = 1000700005, XR_TYPE_SYSTEM_LIGHT_ESTIMATION_PROPERTIES_ANDROID = 1000700006, XR_TYPE_ANCHOR_SHARING_INFO_ANDROID = 1000701000, XR_TYPE_ANCHOR_SHARING_TOKEN_ANDROID = 1000701001, XR_TYPE_SYSTEM_ANCHOR_SHARING_EXPORT_PROPERTIES_ANDROID = 1000701002, XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_ANDROID = 1000707000, XR_TYPE_TRACKABLE_MARKER_CONFIGURATION_ANDROID = 1000707001, XR_TYPE_TRACKABLE_MARKER_ANDROID = 1000707002, XR_TYPE_SYSTEM_QR_CODE_TRACKING_PROPERTIES_ANDROID = 1000708000, XR_TYPE_TRACKABLE_QR_CODE_CONFIGURATION_ANDROID = 1000708001, XR_TYPE_TRACKABLE_QR_CODE_ANDROID = 1000708002, XR_TYPE_SYSTEM_IMAGE_TRACKING_PROPERTIES_ANDROID = 1000709000, XR_TYPE_TRACKABLE_IMAGE_DATABASE_ENTRY_ANDROID = 1000709001, XR_TYPE_TRACKABLE_IMAGE_DATABASE_CREATE_INFO_ANDROID = 1000709002, XR_TYPE_CREATE_TRACKABLE_IMAGE_DATABASE_COMPLETION_ANDROID = 1000709003, XR_TYPE_TRACKABLE_IMAGE_CONFIGURATION_ANDROID = 1000709004, XR_TYPE_TRACKABLE_IMAGE_ANDROID = 1000709005, XR_TYPE_EVENT_DATA_IMAGE_TRACKING_LOST_ANDROID = 1000709006, XR_TYPE_SYSTEM_SCENE_MESHING_PROPERTIES_ANDROID = 1000718000, XR_TYPE_SCENE_MESHING_TRACKER_CREATE_INFO_ANDROID = 1000718001, XR_TYPE_SCENE_MESH_SNAPSHOT_CREATE_INFO_ANDROID = 1000718002, XR_TYPE_SCENE_MESH_SNAPSHOT_CREATION_RESULT_ANDROID = 1000718003, XR_TYPE_SCENE_SUBMESH_STATE_ANDROID = 1000718004, XR_TYPE_SCENE_SUBMESH_DATA_ANDROID = 1000718005, XR_TYPE_SPATIAL_CAPABILITY_COMPONENT_TYPES_EXT = 1000740000, XR_TYPE_SPATIAL_CONTEXT_CREATE_INFO_EXT = 1000740001, XR_TYPE_CREATE_SPATIAL_CONTEXT_COMPLETION_EXT = 1000740002, XR_TYPE_SPATIAL_DISCOVERY_SNAPSHOT_CREATE_INFO_EXT = 1000740003, XR_TYPE_CREATE_SPATIAL_DISCOVERY_SNAPSHOT_COMPLETION_INFO_EXT = 1000740004, XR_TYPE_CREATE_SPATIAL_DISCOVERY_SNAPSHOT_COMPLETION_EXT = 1000740005, XR_TYPE_SPATIAL_COMPONENT_DATA_QUERY_CONDITION_EXT = 1000740006, XR_TYPE_SPATIAL_COMPONENT_DATA_QUERY_RESULT_EXT = 1000740007, XR_TYPE_SPATIAL_BUFFER_GET_INFO_EXT = 1000740008, XR_TYPE_SPATIAL_COMPONENT_BOUNDED_2D_LIST_EXT = 1000740009, XR_TYPE_SPATIAL_COMPONENT_BOUNDED_3D_LIST_EXT = 1000740010, XR_TYPE_SPATIAL_COMPONENT_PARENT_LIST_EXT = 1000740011, XR_TYPE_SPATIAL_COMPONENT_MESH_3D_LIST_EXT = 1000740012, XR_TYPE_SPATIAL_ENTITY_FROM_ID_CREATE_INFO_EXT = 1000740013, XR_TYPE_SPATIAL_UPDATE_SNAPSHOT_CREATE_INFO_EXT = 1000740014, XR_TYPE_EVENT_DATA_SPATIAL_DISCOVERY_RECOMMENDED_EXT = 1000740015, XR_TYPE_SPATIAL_FILTER_TRACKING_STATE_EXT = 1000740016, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_PLANE_TRACKING_EXT = 1000741000, XR_TYPE_SPATIAL_COMPONENT_PLANE_ALIGNMENT_LIST_EXT = 1000741001, XR_TYPE_SPATIAL_COMPONENT_MESH_2D_LIST_EXT = 1000741002, XR_TYPE_SPATIAL_COMPONENT_POLYGON_2D_LIST_EXT = 1000741003, XR_TYPE_SPATIAL_COMPONENT_PLANE_SEMANTIC_LABEL_LIST_EXT = 1000741004, XR_TYPE_STATIONARY_REFERENCE_SPACE_GENERATION_ID_GET_INFO_EXT = 1000742001, XR_TYPE_STATIONARY_REFERENCE_SPACE_GENERATION_ID_RESULT_EXT = 1000742002, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_QR_CODE_EXT = 1000743000, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MICRO_QR_CODE_EXT = 1000743001, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ARUCO_MARKER_EXT = 1000743002, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_APRIL_TAG_EXT = 1000743003, XR_TYPE_SPATIAL_MARKER_SIZE_EXT = 1000743004, XR_TYPE_SPATIAL_MARKER_STATIC_OPTIMIZATION_EXT = 1000743005, XR_TYPE_SPATIAL_COMPONENT_MARKER_LIST_EXT = 1000743006, XR_TYPE_SYSTEM_DYNAMIC_OBJECT_TRACKING_PROPERTIES_BD = 1000746000, XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_DYNAMIC_OBJECT_BD = 1000746001, XR_TYPE_SPATIAL_ENTITY_COMPONENT_DATA_DYNAMIC_OBJECT_BD = 1000746002, XR_TYPE_DYNAMIC_OBJECT_DATA_BD = 1000746003, XR_TYPE_SENSE_DATA_FILTER_DYNAMIC_OBJECT_TYPE_BD = 1000746004, XR_TYPE_SYSTEM_DYNAMIC_OBJECT_KEYBOARD_PROPERTIES_BD = 1000747000, XR_TYPE_SYSTEM_DYNAMIC_OBJECT_MOUSE_PROPERTIES_BD = 1000748000, XR_TYPE_AVAILABLE_CAMERAS_ENUMERATE_INFO_BD = 1000755000, XR_TYPE_CAMERA_PROPERTIES_GET_INFO_BD = 1000755001, XR_TYPE_CAMERA_PROPERTIES_BD = 1000755002, XR_TYPE_CAMERA_PROPERTY_FACING_BD = 1000755003, XR_TYPE_CAMERA_PROPERTY_POSITION_BD = 1000755004, XR_TYPE_CAMERA_PROPERTY_CAMERA_TYPE_BD = 1000755005, XR_TYPE_CAMERA_SUPPORTED_CAPABILITIES_GET_INFO_BD = 1000755006, XR_TYPE_CAMERA_SUPPORTED_CAPABILITIES_BD = 1000755007, XR_TYPE_CAMERA_SUPPORTED_CAPABILITY_IMAGE_RESOLUTION_AND_FRAME_RATE_BD = 1000755008, XR_TYPE_CAMERA_CAPABILITY_IMAGE_RESOLUTION_AND_FRAME_RATE_BD = 1000755009, XR_TYPE_CAMERA_SUPPORTED_CAPABILITY_DATA_TRANSFER_TYPE_BD = 1000755010, XR_TYPE_CAMERA_CAPABILITY_DATA_TRANSFER_TYPE_BD = 1000755011, XR_TYPE_CAMERA_SUPPORTED_CAPABILITY_IMAGE_FORMAT_BD = 1000755012, XR_TYPE_CAMERA_CAPABILITY_IMAGE_FORMAT_BD = 1000755013, XR_TYPE_CAMERA_SUPPORTED_CAPABILITY_CAMERA_MODEL_BD = 1000755014, XR_TYPE_CAMERA_CAPABILITY_CAMERA_MODEL_BD = 1000755015, XR_TYPE_CAMERA_DEVICE_CREATE_INFO_BD = 1000755016, XR_TYPE_CREATE_CAMERA_DEVICE_COMPLETION_BD = 1000755017, XR_TYPE_CAMERA_CAPTURE_SESSION_CREATE_INFO_BD = 1000755018, XR_TYPE_CREATE_CAMERA_CAPTURE_SESSION_COMPLETION_BD = 1000755019, XR_TYPE_CAMERA_INTRINSICS_BD = 1000755020, XR_TYPE_CAMERA_EXTRINSICS_BD = 1000755021, XR_TYPE_CAMERA_CAPTURE_BEGIN_INFO_BD = 1000755022, XR_TYPE_CAMERA_IMAGE_ACQUIRE_INFO_BD = 1000755023, XR_TYPE_CAMERA_IMAGE_BD = 1000755024, XR_TYPE_CAMERA_IMAGE_DATA_RAW_BUFFER_BD = 1000755025, XR_TYPE_CAMERA_CAPABILITIES_BD = 1000755026, XR_TYPE_CAMERA_CAPABILITY_TYPES_ENUMERATE_INFO_BD = 1000755027, XR_TYPE_CAMERA_CAPABILITY_TYPES_BD = 1000755028, XR_TYPE_CAMERA_PROPERTY_TYPES_ENUMERATE_INFO_BD = 1000755029, XR_TYPE_CAMERA_PROPERTY_TYPES_BD = 1000755030, XR_TYPE_AVAILABLE_CAMERA_BD = 1000755031, XR_TYPE_SPATIAL_BOUNDS_SPHEREF_ANDROID = 1000761000, XR_TYPE_SPATIAL_BOUNDS_BOXF_ANDROID = 1000761001, XR_TYPE_SPATIAL_BOUNDS_FRUSTUMF_ANDROID = 1000761002, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANCHOR_EXT = 1000762000, XR_TYPE_SPATIAL_COMPONENT_ANCHOR_LIST_EXT = 1000762001, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_EXT = 1000762002, XR_TYPE_SPATIAL_PERSISTENCE_CONTEXT_CREATE_INFO_EXT = 1000763000, XR_TYPE_CREATE_SPATIAL_PERSISTENCE_CONTEXT_COMPLETION_EXT = 1000763001, XR_TYPE_SPATIAL_CONTEXT_PERSISTENCE_CONFIG_EXT = 1000763002, XR_TYPE_SPATIAL_DISCOVERY_PERSISTENCE_UUID_FILTER_EXT = 1000763003, XR_TYPE_SPATIAL_COMPONENT_PERSISTENCE_LIST_EXT = 1000763004, XR_TYPE_HAPTIC_PARAMETRIC_VIBRATION_EXT = 1000775000, XR_TYPE_HAPTIC_PARAMETRIC_PROPERTIES_EXT = 1000775001, XR_TYPE_SYSTEM_HAPTIC_PARAMETRIC_PROPERTIES_EXT = 1000775002, XR_TYPE_COLOR_SPACES_ENUMERATE_INFO_SONY = 1000776000, XR_TYPE_SWAPCHAIN_CREATE_INFO_COLOR_SPACE_SONY = 1000776001, XR_TYPE_HDR_METADATA_SONY = 1000777000, XR_TYPE_SPATIAL_ENTITY_PERSIST_INFO_EXT = 1000781000, XR_TYPE_PERSIST_SPATIAL_ENTITY_COMPLETION_EXT = 1000781001, XR_TYPE_SPATIAL_ENTITY_UNPERSIST_INFO_EXT = 1000781002, XR_TYPE_UNPERSIST_SPATIAL_ENTITY_COMPLETION_EXT = 1000781003, XR_TYPE_SPATIAL_REFERENCE_IMAGE_EXT = 1000782000, XR_TYPE_SPATIAL_IMAGE_STATIC_OPTIMIZATION_EXT = 1000782001, XR_TYPE_SPATIAL_IMAGE_SIZE_EXT = 1000782002, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_IMAGE_TRACKING_EXT = 1000782003, XR_TYPE_SPATIAL_IMAGE_TRACKING_DATABASE_CREATE_INFO_EXT = 1000782004, XR_TYPE_SPATIAL_COMPONENT_IMAGE_2D_LIST_EXT = 1000782005, XR_TYPE_CREATE_SPATIAL_IMAGE_TRACKING_DATABASE_COMPLETION_EXT = 1000782006, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_OBJECT_TRACKING_ANDROID = 1000785000, XR_TYPE_SPATIAL_COMPONENT_OBJECT_SEMANTIC_LABEL_LIST_ANDROID = 1000785001, XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_DEPTH_RAYCAST_ANDROID = 1000786000, XR_TYPE_SPATIAL_RAYCAST_INFO_ANDROID = 1000786001, XR_TYPE_SPATIAL_COMPONENT_RAYCAST_RESULT_LIST_ANDROID = 1000786002, XR_TYPE_SPATIAL_RAYCAST_SNAPSHOT_CREATE_INFO_ANDROID = 1000786003, XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_API_KEY_ANDROID = 1000787000, XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_TOKEN_ANDROID = 1000787001, XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_KEYLESS_ANDROID = 1000787002, XR_TYPE_GOOGLE_CLOUD_AUTH_ERROR_RESULT_ANDROID = 1000787003, XR_TYPE_SYSTEM_GEOSPATIAL_PROPERTIES_ANDROID = 1000789000, XR_TYPE_GEOSPATIAL_TRACKER_CREATE_INFO_ANDROID = 1000789001, XR_TYPE_EVENT_DATA_GEOSPATIAL_TRACKER_STATE_CHANGED_ANDROID = 1000789002, XR_TYPE_GEOSPATIAL_POSE_FROM_POSE_LOCATE_INFO_ANDROID = 1000789003, XR_TYPE_GEOSPATIAL_POSE_RESULT_ANDROID = 1000789004, XR_TYPE_GEOSPATIAL_POSE_LOCATE_INFO_ANDROID = 1000789005, XR_TYPE_VPS_AVAILABILITY_CHECK_COMPLETION_ANDROID = 1000789006, XR_TYPE_SPATIAL_ANCHOR_PARENT_ANDROID = 1000790000, XR_TYPE_SPATIAL_DISCOVERY_UNIQUE_ENTITIES_FILTER_ANDROID = 1000791001, XR_TYPE_SPATIAL_COMPONENT_SUBSUMED_BY_LIST_ANDROID = 1000791002, XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID = 1000795000, XR_TYPE_GEOSPATIAL_ANCHOR_CREATE_INFO_ANDROID = 1000797000, XR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROID = 1000797001, XR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROID = 1000797002, XR_TYPE_SYSTEM_GEOSPATIAL_ANCHOR_PROPERTIES_ANDROID = 1000797003, XR_TYPE_GEOSPATIAL_TRACKER_ANCHOR_TRACKING_INFO_ANDROID = 1000797004, XR_TYPE_SPATIAL_CONTAINER_CREATE_INFO_EXT = 1000810000, XR_TYPE_SPATIAL_CONTAINER_SPACE_CREATE_INFO_EXT = 1000810001, XR_TYPE_EVENT_DATA_SPATIAL_CONTAINER_CLOSED_EXT = 1000810003, XR_TYPE_SYSTEM_SPATIAL_CONTAINER_PROPERTIES_EXT = 1000810004, XR_TYPE_SPATIAL_CONTAINER_BOUNDS_EXT = 1000810005, XR_TYPE_EVENT_DATA_SPATIAL_CONTAINER_BOUNDS_CHANGED_EXT = 1000810006, XR_TYPE_SPATIAL_CONTAINER_BOUNDS_GET_INFO_EXT = 1000810007, XR_TYPE_SPATIAL_CONTAINER_STATE_GET_INFO_EXT = 1000810008, XR_TYPE_SPATIAL_CONTAINER_VISIBLE_REQUEST_INFO_EXT = 1000810009, XR_TYPE_EVENT_DATA_SPATIAL_CONTAINER_VISIBLE_CHANGED_EXT = 1000810010, XR_TYPE_EVENT_DATA_SPATIAL_CONTAINER_VISIBLE_REQUEST_DENIED_EXT = 1000810011, XR_TYPE_EVENT_DATA_SPATIAL_CONTAINER_INTERACTABLE_CHANGED_EXT = 1000810012, XR_TYPE_SPATIAL_CONTAINER_BOUNDS_MODE_REQUEST_INFO_EXT = 1000810013, XR_TYPE_EVENT_DATA_SPATIAL_CONTAINER_BOUNDS_MODE_REQUEST_DENIED_EXT = 1000810014, XR_TYPE_SPATIAL_CONTAINER_STATE_EXT = 1000810015, XR_TYPE_SESSION_CREATE_INFO_SPATIAL_CONTAINERS_EXT = 1000810016, XR_TYPE_SPATIAL_CONTAINER_VIEW_LOCATE_INFO_EXT = 1000813000, XR_TYPE_SPATIAL_CONTAINER_VIEWS_LOCATE_INFO_EXT = 1000813001, XR_TYPE_SPATIAL_CONTAINER_VIEW_STATE_EXT = 1000813002, XR_TYPE_SPATIAL_CONTAINER_LAYER_EXT = 1000813003, XR_TYPE_SPATIAL_CONTAINER_LAYER_FRAME_END_INFO_EXT = 1000813004, XR_TYPE_SPATIAL_CONTAINER_BEGIN_INFO_EXT = 1000813005, XR_TYPE_SPATIAL_CONTAINER_COMPOSITION_LAYER_VIEW_CONFIGURATION_EXT = 1000813006, XR_TYPE_SPATIAL_CONTAINER_END_INFO_EXT = 1000813007, XR_TYPE_SPATIAL_CONTAINER_LAYER_VOLUME_CLIPPING_EXT = 1000813008, XR_TYPE_BATTERY_STATE_DISPLAY_EXT = 1000836000, XR_TYPE_LOADER_INIT_INFO_PROPERTIES_EXT = 1000838000, XR_TYPE_EVENT_DATA_VIEW_CONFIGURATION_VIEWS_CHANGED_EXT = 1000839000, XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR, XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR, XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR, XR_TYPE_DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB = XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB, XR_TYPE_SPACES_LOCATE_INFO_KHR = XR_TYPE_SPACES_LOCATE_INFO, XR_TYPE_SPACE_LOCATIONS_KHR = XR_TYPE_SPACE_LOCATIONS, XR_TYPE_SPACE_VELOCITIES_KHR = XR_TYPE_SPACE_VELOCITIES, XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF } XrStructureType; typedef enum XrFormFactor { XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY = 1, XR_FORM_FACTOR_HANDHELD_DISPLAY = 2, XR_FORM_FACTOR_MAX_ENUM = 0x7FFFFFFF } XrFormFactor; typedef enum XrEnvironmentBlendMode { XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1, XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2, XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3, XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF } XrEnvironmentBlendMode; typedef enum XrViewConfigurationType { XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET = 1000037000, XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT = 1000054000, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET, XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF } XrViewConfigurationType; typedef enum XrReferenceSpaceType { XR_REFERENCE_SPACE_TYPE_VIEW = 1, XR_REFERENCE_SPACE_TYPE_LOCAL = 2, XR_REFERENCE_SPACE_TYPE_STAGE = 3, XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR = 1000426000, XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000, XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO = 1000121000, XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML = 1000139000, XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID = 1000467000, XR_REFERENCE_SPACE_TYPE_STATIONARY_EXT = 1000742000, XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR_EXT = XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR, XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF } XrReferenceSpaceType; typedef enum XrEyeVisibility { XR_EYE_VISIBILITY_BOTH = 0, XR_EYE_VISIBILITY_LEFT = 1, XR_EYE_VISIBILITY_RIGHT = 2, XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF } XrEyeVisibility; typedef enum XrActionType { XR_ACTION_TYPE_BOOLEAN_INPUT = 1, XR_ACTION_TYPE_FLOAT_INPUT = 2, XR_ACTION_TYPE_VECTOR2F_INPUT = 3, XR_ACTION_TYPE_POSE_INPUT = 4, XR_ACTION_TYPE_VIBRATION_OUTPUT = 100, XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF } XrActionType; typedef enum XrSessionState { XR_SESSION_STATE_UNKNOWN = 0, XR_SESSION_STATE_IDLE = 1, XR_SESSION_STATE_READY = 2, XR_SESSION_STATE_SYNCHRONIZED = 3, XR_SESSION_STATE_VISIBLE = 4, XR_SESSION_STATE_FOCUSED = 5, XR_SESSION_STATE_STOPPING = 6, XR_SESSION_STATE_LOSS_PENDING = 7, XR_SESSION_STATE_EXITING = 8, XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF } XrSessionState; typedef enum XrObjectType { XR_OBJECT_TYPE_UNKNOWN = 0, XR_OBJECT_TYPE_INSTANCE = 1, XR_OBJECT_TYPE_SESSION = 2, XR_OBJECT_TYPE_SWAPCHAIN = 3, XR_OBJECT_TYPE_SPACE = 4, XR_OBJECT_TYPE_ACTION_SET = 5, XR_OBJECT_TYPE_ACTION = 6, XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000, XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, XR_OBJECT_TYPE_SPATIAL_GRAPH_NODE_BINDING_MSFT = 1000049000, XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000, XR_OBJECT_TYPE_BODY_TRACKER_FB = 1000076000, XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000, XR_OBJECT_TYPE_SCENE_MSFT = 1000097001, XR_OBJECT_TYPE_FACIAL_TRACKER_HTC = 1000104000, XR_OBJECT_TYPE_FOVEATION_PROFILE_FB = 1000114000, XR_OBJECT_TYPE_TRIANGLE_MESH_FB = 1000117000, XR_OBJECT_TYPE_PASSTHROUGH_FB = 1000118000, XR_OBJECT_TYPE_PASSTHROUGH_LAYER_FB = 1000118002, XR_OBJECT_TYPE_GEOMETRY_INSTANCE_FB = 1000118004, XR_OBJECT_TYPE_MARKER_DETECTOR_ML = 1000138000, XR_OBJECT_TYPE_EXPORTED_LOCALIZATION_MAP_ML = 1000139000, XR_OBJECT_TYPE_SPATIAL_ANCHORS_STORAGE_ML = 1000141000, XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT = 1000142000, XR_OBJECT_TYPE_FACE_TRACKER_FB = 1000201000, XR_OBJECT_TYPE_EYE_TRACKER_FB = 1000202000, XR_OBJECT_TYPE_VIRTUAL_KEYBOARD_META = 1000219000, XR_OBJECT_TYPE_SPACE_USER_FB = 1000241000, XR_OBJECT_TYPE_PASSTHROUGH_COLOR_LUT_META = 1000266000, XR_OBJECT_TYPE_FACE_TRACKER2_FB = 1000287012, XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_PROVIDER_META = 1000291000, XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_META = 1000291001, XR_OBJECT_TYPE_RENDER_MODEL_EXT = 1000300000, XR_OBJECT_TYPE_RENDER_MODEL_ASSET_EXT = 1000300001, XR_OBJECT_TYPE_PASSTHROUGH_HTC = 1000317000, XR_OBJECT_TYPE_BODY_TRACKER_HTC = 1000320000, XR_OBJECT_TYPE_BODY_TRACKER_BD = 1000385000, XR_OBJECT_TYPE_FACE_TRACKER_BD = 1000386000, XR_OBJECT_TYPE_SENSE_DATA_PROVIDER_BD = 1000389000, XR_OBJECT_TYPE_SENSE_DATA_SNAPSHOT_BD = 1000389001, XR_OBJECT_TYPE_ANCHOR_BD = 1000389002, XR_OBJECT_TYPE_SPATIAL_AUDIO_RENDERER_BD = 1000409000, XR_OBJECT_TYPE_SOUND_FIELD_BD = 1000409001, XR_OBJECT_TYPE_SOUND_OBJECT_BD = 1000409002, XR_OBJECT_TYPE_SOUND_OBSTACLE_BD = 1000409003, XR_OBJECT_TYPE_SOUND_OBSTACLE_MATERIAL_BD = 1000409004, XR_OBJECT_TYPE_PLANE_DETECTOR_EXT = 1000429000, XR_OBJECT_TYPE_TRACKABLE_TRACKER_ANDROID = 1000455001, XR_OBJECT_TYPE_EYE_TRACKER_ANDROID = 1000456000, XR_OBJECT_TYPE_DEVICE_ANCHOR_PERSISTENCE_ANDROID = 1000457000, XR_OBJECT_TYPE_FACE_TRACKER_ANDROID = 1000458000, XR_OBJECT_TYPE_PASSTHROUGH_LAYER_ANDROID = 1000462000, XR_OBJECT_TYPE_WORLD_MESH_DETECTOR_ML = 1000474000, XR_OBJECT_TYPE_FACIAL_EXPRESSION_CLIENT_ML = 1000482000, XR_OBJECT_TYPE_ENVIRONMENT_RAYCASTER_META = 1000592000, XR_OBJECT_TYPE_LIGHT_ESTIMATOR_ANDROID = 1000700000, XR_OBJECT_TYPE_TRACKABLE_IMAGE_DATABASE_ANDROID = 1000709000, XR_OBJECT_TYPE_SCENE_MESHING_TRACKER_ANDROID = 1000718000, XR_OBJECT_TYPE_SCENE_MESH_SNAPSHOT_ANDROID = 1000718001, XR_OBJECT_TYPE_SPATIAL_ENTITY_EXT = 1000740000, XR_OBJECT_TYPE_SPATIAL_CONTEXT_EXT = 1000740001, XR_OBJECT_TYPE_SPATIAL_SNAPSHOT_EXT = 1000740002, XR_OBJECT_TYPE_CAMERA_DEVICE_BD = 1000755000, XR_OBJECT_TYPE_CAMERA_CAPTURE_SESSION_BD = 1000755001, XR_OBJECT_TYPE_SPATIAL_PERSISTENCE_CONTEXT_EXT = 1000763000, XR_OBJECT_TYPE_SPATIAL_IMAGE_TRACKING_DATABASE_EXT = 1000782000, XR_OBJECT_TYPE_GEOSPATIAL_TRACKER_ANDROID = 1000789000, XR_OBJECT_TYPE_SPATIAL_CONTAINER_EXT = 1000810000, XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } XrObjectType; typedef XrFlags64 XrInstanceCreateFlags; // Flag bits for XrInstanceCreateFlags typedef XrFlags64 XrSessionCreateFlags; // Flag bits for XrSessionCreateFlags typedef XrFlags64 XrSpaceLocationFlags; // Flag bits for XrSpaceLocationFlags static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = 0x00000001; static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_VALID_BIT = 0x00000002; static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = 0x00000004; static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_TRACKED_BIT = 0x00000008; typedef XrFlags64 XrSpaceVelocityFlags; // Flag bits for XrSpaceVelocityFlags static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001; static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002; typedef XrFlags64 XrSwapchainCreateFlags; // Flag bits for XrSwapchainCreateFlags static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001; static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002; typedef XrFlags64 XrSwapchainUsageFlags; // Flag bits for XrSwapchainUsageFlags static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND = 0x00000080; static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR = 0x00000080; // alias of XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND typedef XrFlags64 XrCompositionLayerFlags; // Flag bits for XrCompositionLayerFlags // XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT is deprecated and should not be used static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001; static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002; static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT = 0x00000004; static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT = 0x00000008; typedef XrFlags64 XrViewStateFlags; // Flag bits for XrViewStateFlags static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT = 0x00000001; static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT = 0x00000002; static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT = 0x00000004; static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT = 0x00000008; typedef XrFlags64 XrInputSourceLocalizedNameFlags; // Flag bits for XrInputSourceLocalizedNameFlags static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001; static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002; static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004; typedef void (XRAPI_PTR *PFN_xrVoidFunction)(void); typedef struct XrApiLayerProperties { XrStructureType type; void* XR_MAY_ALIAS next; char layerName[XR_MAX_API_LAYER_NAME_SIZE]; XrVersion specVersion; uint32_t layerVersion; char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; } XrApiLayerProperties; typedef struct XrExtensionProperties { XrStructureType type; void* XR_MAY_ALIAS next; char extensionName[XR_MAX_EXTENSION_NAME_SIZE]; uint32_t extensionVersion; } XrExtensionProperties; typedef struct XrApplicationInfo { char applicationName[XR_MAX_APPLICATION_NAME_SIZE]; uint32_t applicationVersion; char engineName[XR_MAX_ENGINE_NAME_SIZE]; uint32_t engineVersion; XrVersion apiVersion; } XrApplicationInfo; typedef struct XrInstanceCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrInstanceCreateFlags createFlags; XrApplicationInfo applicationInfo; uint32_t enabledApiLayerCount; const char* const* enabledApiLayerNames; uint32_t enabledExtensionCount; const char* const* enabledExtensionNames; } XrInstanceCreateInfo; typedef struct XrInstanceProperties { XrStructureType type; void* XR_MAY_ALIAS next; XrVersion runtimeVersion; char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; } XrInstanceProperties; typedef struct XrEventDataBuffer { XrStructureType type; const void* XR_MAY_ALIAS next; uint8_t varying[4000]; } XrEventDataBuffer; typedef struct XrSystemGetInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrFormFactor formFactor; } XrSystemGetInfo; typedef struct XrSystemGraphicsProperties { uint32_t maxSwapchainImageHeight; uint32_t maxSwapchainImageWidth; uint32_t maxLayerCount; } XrSystemGraphicsProperties; typedef struct XrSystemTrackingProperties { XrBool32 orientationTracking; XrBool32 positionTracking; } XrSystemTrackingProperties; typedef struct XrSystemProperties { XrStructureType type; void* XR_MAY_ALIAS next; XrSystemId systemId; uint32_t vendorId; char systemName[XR_MAX_SYSTEM_NAME_SIZE]; XrSystemGraphicsProperties graphicsProperties; XrSystemTrackingProperties trackingProperties; } XrSystemProperties; typedef struct XrSessionCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrSessionCreateFlags createFlags; XrSystemId systemId; } XrSessionCreateInfo; typedef struct XrQuaternionf { float x; float y; float z; float w; } XrQuaternionf; typedef struct XrVector3f { float x; float y; float z; } XrVector3f; typedef struct XrPosef { XrQuaternionf orientation; XrVector3f position; } XrPosef; typedef struct XrReferenceSpaceCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrReferenceSpaceType referenceSpaceType; XrPosef poseInReferenceSpace; } XrReferenceSpaceCreateInfo; typedef struct XrActionSpaceCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrAction action; XrPath subactionPath; XrPosef poseInActionSpace; } XrActionSpaceCreateInfo; typedef struct XrSpaceLocation { XrStructureType type; void* XR_MAY_ALIAS next; XrSpaceLocationFlags locationFlags; XrPosef pose; } XrSpaceLocation; // XrSpaceVelocity extends XrSpaceLocation typedef struct XrSpaceVelocity { XrStructureType type; void* XR_MAY_ALIAS next; XrSpaceVelocityFlags velocityFlags; XrVector3f linearVelocity; XrVector3f angularVelocity; } XrSpaceVelocity; typedef struct XrExtent2Df { float width; float height; } XrExtent2Df; typedef struct XrViewConfigurationProperties { XrStructureType type; void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; XrBool32 fovMutable; } XrViewConfigurationProperties; typedef struct XrViewConfigurationView { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t recommendedImageRectWidth; uint32_t maxImageRectWidth; uint32_t recommendedImageRectHeight; uint32_t maxImageRectHeight; uint32_t recommendedSwapchainSampleCount; uint32_t maxSwapchainSampleCount; } XrViewConfigurationView; typedef struct XrSwapchainCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrSwapchainCreateFlags createFlags; XrSwapchainUsageFlags usageFlags; int64_t format; uint32_t sampleCount; uint32_t width; uint32_t height; uint32_t faceCount; uint32_t arraySize; uint32_t mipCount; } XrSwapchainCreateInfo; typedef struct XR_MAY_ALIAS XrSwapchainImageBaseHeader { XrStructureType type; void* XR_MAY_ALIAS next; } XrSwapchainImageBaseHeader; typedef struct XrSwapchainImageAcquireInfo { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSwapchainImageAcquireInfo; typedef struct XrSwapchainImageWaitInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrDuration timeout; } XrSwapchainImageWaitInfo; typedef struct XrSwapchainImageReleaseInfo { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSwapchainImageReleaseInfo; typedef struct XrSessionBeginInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType primaryViewConfigurationType; } XrSessionBeginInfo; typedef struct XrFrameState { XrStructureType type; void* XR_MAY_ALIAS next; XrTime predictedDisplayTime; XrDuration predictedDisplayPeriod; XrBool32 shouldRender; } XrFrameState; typedef struct XrFrameWaitInfo { XrStructureType type; const void* XR_MAY_ALIAS next; } XrFrameWaitInfo; typedef struct XrFrameBeginInfo { XrStructureType type; const void* XR_MAY_ALIAS next; } XrFrameBeginInfo; typedef struct XR_MAY_ALIAS XrCompositionLayerBaseHeader { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; } XrCompositionLayerBaseHeader; typedef struct XrFrameEndInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime displayTime; XrEnvironmentBlendMode environmentBlendMode; uint32_t layerCount; const XrCompositionLayerBaseHeader* const* layers; } XrFrameEndInfo; typedef struct XrViewState { XrStructureType type; void* XR_MAY_ALIAS next; XrViewStateFlags viewStateFlags; } XrViewState; typedef struct XrViewLocateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; XrTime displayTime; XrSpace space; } XrViewLocateInfo; typedef struct XrFovf { float angleLeft; float angleRight; float angleUp; float angleDown; } XrFovf; typedef struct XrView { XrStructureType type; void* XR_MAY_ALIAS next; XrPosef pose; XrFovf fov; } XrView; typedef struct XrActionSetCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; char actionSetName[XR_MAX_ACTION_SET_NAME_SIZE]; char localizedActionSetName[XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE]; uint32_t priority; } XrActionSetCreateInfo; typedef struct XrActionCreateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; char actionName[XR_MAX_ACTION_NAME_SIZE]; XrActionType actionType; uint32_t countSubactionPaths; const XrPath* subactionPaths; char localizedActionName[XR_MAX_LOCALIZED_ACTION_NAME_SIZE]; } XrActionCreateInfo; typedef struct XrActionSuggestedBinding { XrAction action; XrPath binding; } XrActionSuggestedBinding; typedef struct XrInteractionProfileSuggestedBinding { XrStructureType type; const void* XR_MAY_ALIAS next; XrPath interactionProfile; uint32_t countSuggestedBindings; const XrActionSuggestedBinding* suggestedBindings; } XrInteractionProfileSuggestedBinding; typedef struct XrSessionActionSetsAttachInfo { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t countActionSets; const XrActionSet* actionSets; } XrSessionActionSetsAttachInfo; typedef struct XrInteractionProfileState { XrStructureType type; void* XR_MAY_ALIAS next; XrPath interactionProfile; } XrInteractionProfileState; typedef struct XrActionStateGetInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrAction action; XrPath subactionPath; } XrActionStateGetInfo; typedef struct XrActionStateBoolean { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 currentState; XrBool32 changedSinceLastSync; XrTime lastChangeTime; XrBool32 isActive; } XrActionStateBoolean; typedef struct XrActionStateFloat { XrStructureType type; void* XR_MAY_ALIAS next; float currentState; XrBool32 changedSinceLastSync; XrTime lastChangeTime; XrBool32 isActive; } XrActionStateFloat; typedef struct XrVector2f { float x; float y; } XrVector2f; typedef struct XrActionStateVector2f { XrStructureType type; void* XR_MAY_ALIAS next; XrVector2f currentState; XrBool32 changedSinceLastSync; XrTime lastChangeTime; XrBool32 isActive; } XrActionStateVector2f; typedef struct XrActionStatePose { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isActive; } XrActionStatePose; typedef struct XrActiveActionSet { XrActionSet actionSet; XrPath subactionPath; } XrActiveActionSet; typedef struct XrActionsSyncInfo { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t countActiveActionSets; const XrActiveActionSet* activeActionSets; } XrActionsSyncInfo; typedef struct XrBoundSourcesForActionEnumerateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrAction action; } XrBoundSourcesForActionEnumerateInfo; typedef struct XrInputSourceLocalizedNameGetInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrPath sourcePath; XrInputSourceLocalizedNameFlags whichComponents; } XrInputSourceLocalizedNameGetInfo; typedef struct XR_MAY_ALIAS XrHapticBaseHeader { XrStructureType type; const void* XR_MAY_ALIAS next; } XrHapticBaseHeader; typedef struct XrHapticActionInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrAction action; XrPath subactionPath; } XrHapticActionInfo; typedef struct XR_MAY_ALIAS XrBaseInStructure { XrStructureType type; const struct XrBaseInStructure* next; } XrBaseInStructure; typedef struct XR_MAY_ALIAS XrBaseOutStructure { XrStructureType type; struct XrBaseOutStructure* next; } XrBaseOutStructure; typedef struct XrOffset2Di { int32_t x; int32_t y; } XrOffset2Di; typedef struct XrExtent2Di { int32_t width; int32_t height; } XrExtent2Di; typedef struct XrRect2Di { XrOffset2Di offset; XrExtent2Di extent; } XrRect2Di; typedef struct XrSwapchainSubImage { XrSwapchain swapchain; XrRect2Di imageRect; uint32_t imageArrayIndex; } XrSwapchainSubImage; typedef struct XrCompositionLayerProjectionView { XrStructureType type; const void* XR_MAY_ALIAS next; XrPosef pose; XrFovf fov; XrSwapchainSubImage subImage; } XrCompositionLayerProjectionView; typedef struct XrCompositionLayerProjection { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; uint32_t viewCount; const XrCompositionLayerProjectionView* views; } XrCompositionLayerProjection; typedef struct XrCompositionLayerQuad { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrEyeVisibility eyeVisibility; XrSwapchainSubImage subImage; XrPosef pose; XrExtent2Df size; } XrCompositionLayerQuad; typedef struct XR_MAY_ALIAS XrEventDataBaseHeader { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEventDataBaseHeader; typedef struct XrEventDataEventsLost { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t lostEventCount; } XrEventDataEventsLost; typedef struct XrEventDataInstanceLossPending { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime lossTime; } XrEventDataInstanceLossPending; typedef struct XrEventDataSessionStateChanged { XrStructureType type; const void* XR_MAY_ALIAS next; XrSession session; XrSessionState state; XrTime time; } XrEventDataSessionStateChanged; typedef struct XrEventDataReferenceSpaceChangePending { XrStructureType type; const void* XR_MAY_ALIAS next; XrSession session; XrReferenceSpaceType referenceSpaceType; XrTime changeTime; XrBool32 poseValid; XrPosef poseInPreviousSpace; } XrEventDataReferenceSpaceChangePending; typedef struct XrEventDataInteractionProfileChanged { XrStructureType type; const void* XR_MAY_ALIAS next; XrSession session; } XrEventDataInteractionProfileChanged; typedef struct XrHapticVibration { XrStructureType type; const void* XR_MAY_ALIAS next; XrDuration duration; float frequency; float amplitude; } XrHapticVibration; typedef struct XrOffset2Df { float x; float y; } XrOffset2Df; typedef struct XrRect2Df { XrOffset2Df offset; XrExtent2Df extent; } XrRect2Df; typedef struct XrVector4f { float x; float y; float z; float w; } XrVector4f; typedef struct XrColor4f { float r; float g; float b; float a; } XrColor4f; typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance instance, const char* name, PFN_xrVoidFunction* function); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateApiLayerProperties)(uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrApiLayerProperties* properties); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char* layerName, uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrExtensionProperties* properties); typedef XrResult (XRAPI_PTR *PFN_xrCreateInstance)(const XrInstanceCreateInfo* createInfo, XrInstance* instance); typedef XrResult (XRAPI_PTR *PFN_xrDestroyInstance)(XrInstance instance); typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProperties)(XrInstance instance, XrInstanceProperties* instanceProperties); typedef XrResult (XRAPI_PTR *PFN_xrPollEvent)(XrInstance instance, XrEventDataBuffer* eventData); typedef XrResult (XRAPI_PTR *PFN_xrResultToString)(XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE]); typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString)(XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE]); typedef XrResult (XRAPI_PTR *PFN_xrGetSystem)(XrInstance instance, const XrSystemGetInfo* getInfo, XrSystemId* systemId); typedef XrResult (XRAPI_PTR *PFN_xrGetSystemProperties)(XrInstance instance, XrSystemId systemId, XrSystemProperties* properties); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t* environmentBlendModeCountOutput, XrEnvironmentBlendMode* environmentBlendModes); typedef XrResult (XRAPI_PTR *PFN_xrCreateSession)(XrInstance instance, const XrSessionCreateInfo* createInfo, XrSession* session); typedef XrResult (XRAPI_PTR *PFN_xrDestroySession)(XrSession session); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession session, uint32_t spaceCapacityInput, uint32_t* spaceCountOutput, XrReferenceSpaceType* spaces); typedef XrResult (XRAPI_PTR *PFN_xrCreateReferenceSpace)(XrSession session, const XrReferenceSpaceCreateInfo* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrGetReferenceSpaceBoundsRect)(XrSession session, XrReferenceSpaceType referenceSpaceType, XrExtent2Df* bounds); typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSpace)(XrSession session, const XrActionSpaceCreateInfo* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation* location); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpace)(XrSpace space); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurations)(XrInstance instance, XrSystemId systemId, uint32_t viewConfigurationTypeCapacityInput, uint32_t* viewConfigurationTypeCountOutput, XrViewConfigurationType* viewConfigurationTypes); typedef XrResult (XRAPI_PTR *PFN_xrGetViewConfigurationProperties)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, XrViewConfigurationProperties* configurationProperties); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurationViews)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrViewConfigurationView* views); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainFormats)(XrSession session, uint32_t formatCapacityInput, uint32_t* formatCountOutput, int64_t* formats); typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchain)(XrSession session, const XrSwapchainCreateInfo* createInfo, XrSwapchain* swapchain); typedef XrResult (XRAPI_PTR *PFN_xrDestroySwapchain)(XrSwapchain swapchain); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainImages)(XrSwapchain swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images); typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageAcquireInfo* acquireInfo, uint32_t* index); typedef XrResult (XRAPI_PTR *PFN_xrWaitSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageWaitInfo* waitInfo); typedef XrResult (XRAPI_PTR *PFN_xrReleaseSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo* releaseInfo); typedef XrResult (XRAPI_PTR *PFN_xrBeginSession)(XrSession session, const XrSessionBeginInfo* beginInfo); typedef XrResult (XRAPI_PTR *PFN_xrEndSession)(XrSession session); typedef XrResult (XRAPI_PTR *PFN_xrRequestExitSession)(XrSession session); typedef XrResult (XRAPI_PTR *PFN_xrWaitFrame)(XrSession session, const XrFrameWaitInfo* frameWaitInfo, XrFrameState* frameState); typedef XrResult (XRAPI_PTR *PFN_xrBeginFrame)(XrSession session, const XrFrameBeginInfo* frameBeginInfo); typedef XrResult (XRAPI_PTR *PFN_xrEndFrame)(XrSession session, const XrFrameEndInfo* frameEndInfo); typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession session, const XrViewLocateInfo* viewLocateInfo, XrViewState* viewState, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrView* views); typedef XrResult (XRAPI_PTR *PFN_xrStringToPath)(XrInstance instance, const char* pathString, XrPath* path); typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSet)(XrInstance instance, const XrActionSetCreateInfo* createInfo, XrActionSet* actionSet); typedef XrResult (XRAPI_PTR *PFN_xrDestroyActionSet)(XrActionSet actionSet); typedef XrResult (XRAPI_PTR *PFN_xrCreateAction)(XrActionSet actionSet, const XrActionCreateInfo* createInfo, XrAction* action); typedef XrResult (XRAPI_PTR *PFN_xrDestroyAction)(XrAction action); typedef XrResult (XRAPI_PTR *PFN_xrSuggestInteractionProfileBindings)(XrInstance instance, const XrInteractionProfileSuggestedBinding* suggestedBindings); typedef XrResult (XRAPI_PTR *PFN_xrAttachSessionActionSets)(XrSession session, const XrSessionActionSetsAttachInfo* attachInfo); typedef XrResult (XRAPI_PTR *PFN_xrGetCurrentInteractionProfile)(XrSession session, XrPath topLevelUserPath, XrInteractionProfileState* interactionProfile); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateBoolean)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateBoolean* state); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateFloat)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateFloat* state); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateVector2f)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateVector2f* state); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStatePose)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStatePose* state); typedef XrResult (XRAPI_PTR *PFN_xrSyncActions)(XrSession session, const XrActionsSyncInfo* syncInfo); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateBoundSourcesForAction)(XrSession session, const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, uint32_t sourceCapacityInput, uint32_t* sourceCountOutput, XrPath* sources); typedef XrResult (XRAPI_PTR *PFN_xrGetInputSourceLocalizedName)(XrSession session, const XrInputSourceLocalizedNameGetInfo* getInfo, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); typedef XrResult (XRAPI_PTR *PFN_xrApplyHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo, const XrHapticBaseHeader* hapticFeedback); typedef XrResult (XRAPI_PTR *PFN_xrStopHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo); #ifndef XR_NO_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProcAddr( XrInstance instance, const char* name, PFN_xrVoidFunction* function); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateApiLayerProperties( uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrApiLayerProperties* properties); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties( const char* layerName, uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrExtensionProperties* properties); XRAPI_ATTR XrResult XRAPI_CALL xrCreateInstance( const XrInstanceCreateInfo* createInfo, XrInstance* instance); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyInstance( XrInstance instance); XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProperties( XrInstance instance, XrInstanceProperties* instanceProperties); XRAPI_ATTR XrResult XRAPI_CALL xrPollEvent( XrInstance instance, XrEventDataBuffer* eventData); XRAPI_ATTR XrResult XRAPI_CALL xrResultToString( XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE]); XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString( XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE]); XRAPI_ATTR XrResult XRAPI_CALL xrGetSystem( XrInstance instance, const XrSystemGetInfo* getInfo, XrSystemId* systemId); XRAPI_ATTR XrResult XRAPI_CALL xrGetSystemProperties( XrInstance instance, XrSystemId systemId, XrSystemProperties* properties); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes( XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t* environmentBlendModeCountOutput, XrEnvironmentBlendMode* environmentBlendModes); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSession( XrInstance instance, const XrSessionCreateInfo* createInfo, XrSession* session); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySession( XrSession session); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReferenceSpaces( XrSession session, uint32_t spaceCapacityInput, uint32_t* spaceCountOutput, XrReferenceSpaceType* spaces); XRAPI_ATTR XrResult XRAPI_CALL xrCreateReferenceSpace( XrSession session, const XrReferenceSpaceCreateInfo* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrGetReferenceSpaceBoundsRect( XrSession session, XrReferenceSpaceType referenceSpaceType, XrExtent2Df* bounds); XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSpace( XrSession session, const XrActionSpaceCreateInfo* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpace( XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation* location); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpace( XrSpace space); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurations( XrInstance instance, XrSystemId systemId, uint32_t viewConfigurationTypeCapacityInput, uint32_t* viewConfigurationTypeCountOutput, XrViewConfigurationType* viewConfigurationTypes); XRAPI_ATTR XrResult XRAPI_CALL xrGetViewConfigurationProperties( XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, XrViewConfigurationProperties* configurationProperties); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurationViews( XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrViewConfigurationView* views); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainFormats( XrSession session, uint32_t formatCapacityInput, uint32_t* formatCountOutput, int64_t* formats); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchain( XrSession session, const XrSwapchainCreateInfo* createInfo, XrSwapchain* swapchain); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySwapchain( XrSwapchain swapchain); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainImages( XrSwapchain swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images); XRAPI_ATTR XrResult XRAPI_CALL xrAcquireSwapchainImage( XrSwapchain swapchain, const XrSwapchainImageAcquireInfo* acquireInfo, uint32_t* index); XRAPI_ATTR XrResult XRAPI_CALL xrWaitSwapchainImage( XrSwapchain swapchain, const XrSwapchainImageWaitInfo* waitInfo); XRAPI_ATTR XrResult XRAPI_CALL xrReleaseSwapchainImage( XrSwapchain swapchain, const XrSwapchainImageReleaseInfo* releaseInfo); XRAPI_ATTR XrResult XRAPI_CALL xrBeginSession( XrSession session, const XrSessionBeginInfo* beginInfo); XRAPI_ATTR XrResult XRAPI_CALL xrEndSession( XrSession session); XRAPI_ATTR XrResult XRAPI_CALL xrRequestExitSession( XrSession session); XRAPI_ATTR XrResult XRAPI_CALL xrWaitFrame( XrSession session, const XrFrameWaitInfo* frameWaitInfo, XrFrameState* frameState); XRAPI_ATTR XrResult XRAPI_CALL xrBeginFrame( XrSession session, const XrFrameBeginInfo* frameBeginInfo); XRAPI_ATTR XrResult XRAPI_CALL xrEndFrame( XrSession session, const XrFrameEndInfo* frameEndInfo); XRAPI_ATTR XrResult XRAPI_CALL xrLocateViews( XrSession session, const XrViewLocateInfo* viewLocateInfo, XrViewState* viewState, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrView* views); XRAPI_ATTR XrResult XRAPI_CALL xrStringToPath( XrInstance instance, const char* pathString, XrPath* path); XRAPI_ATTR XrResult XRAPI_CALL xrPathToString( XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSet( XrInstance instance, const XrActionSetCreateInfo* createInfo, XrActionSet* actionSet); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyActionSet( XrActionSet actionSet); XRAPI_ATTR XrResult XRAPI_CALL xrCreateAction( XrActionSet actionSet, const XrActionCreateInfo* createInfo, XrAction* action); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAction( XrAction action); XRAPI_ATTR XrResult XRAPI_CALL xrSuggestInteractionProfileBindings( XrInstance instance, const XrInteractionProfileSuggestedBinding* suggestedBindings); XRAPI_ATTR XrResult XRAPI_CALL xrAttachSessionActionSets( XrSession session, const XrSessionActionSetsAttachInfo* attachInfo); XRAPI_ATTR XrResult XRAPI_CALL xrGetCurrentInteractionProfile( XrSession session, XrPath topLevelUserPath, XrInteractionProfileState* interactionProfile); XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateBoolean( XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateBoolean* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateFloat( XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateFloat* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateVector2f( XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateVector2f* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStatePose( XrSession session, const XrActionStateGetInfo* getInfo, XrActionStatePose* state); XRAPI_ATTR XrResult XRAPI_CALL xrSyncActions( XrSession session, const XrActionsSyncInfo* syncInfo); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateBoundSourcesForAction( XrSession session, const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, uint32_t sourceCapacityInput, uint32_t* sourceCountOutput, XrPath* sources); XRAPI_ATTR XrResult XRAPI_CALL xrGetInputSourceLocalizedName( XrSession session, const XrInputSourceLocalizedNameGetInfo* getInfo, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrApplyHapticFeedback( XrSession session, const XrHapticActionInfo* hapticActionInfo, const XrHapticBaseHeader* hapticFeedback); XRAPI_ATTR XrResult XRAPI_CALL xrStopHapticFeedback( XrSession session, const XrHapticActionInfo* hapticActionInfo); #endif /* !XR_NO_PROTOTYPES */ // XR_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls. #define XR_VERSION_1_1 1 // OpenXR 1.1 version number #define XR_API_VERSION_1_1 XR_MAKE_VERSION(1, 1, XR_VERSION_PATCH(XR_CURRENT_API_VERSION)) #define XR_UUID_SIZE 16 typedef struct XrColor3f { float r; float g; float b; } XrColor3f; typedef struct XrExtent3Df { float width; float height; float depth; } XrExtent3Df; typedef struct XrSpheref { XrPosef center; float radius; } XrSpheref; typedef struct XrBoxf { XrPosef center; XrExtent3Df extents; } XrBoxf; typedef struct XrFrustumf { XrPosef pose; XrFovf fov; float nearZ; float farZ; } XrFrustumf; typedef struct XrUuid { uint8_t data[XR_UUID_SIZE]; } XrUuid; typedef struct XrSpacesLocateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; uint32_t spaceCount; const XrSpace* spaces; } XrSpacesLocateInfo; typedef struct XrSpaceLocationData { XrSpaceLocationFlags locationFlags; XrPosef pose; } XrSpaceLocationData; typedef struct XrSpaceLocations { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t locationCount; XrSpaceLocationData* locations; } XrSpaceLocations; typedef struct XrSpaceVelocityData { XrSpaceVelocityFlags velocityFlags; XrVector3f linearVelocity; XrVector3f angularVelocity; } XrSpaceVelocityData; // XrSpaceVelocities extends XrSpaceLocations typedef struct XrSpaceVelocities { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t velocityCount; XrSpaceVelocityData* velocities; } XrSpaceVelocities; typedef XrResult (XRAPI_PTR *PFN_xrLocateSpaces)(XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations); #ifndef XR_NO_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpaces( XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations); #endif /* !XR_NO_PROTOTYPES */ // XR_KHR_composition_layer_cube is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_composition_layer_cube 1 #define XR_KHR_composition_layer_cube_SPEC_VERSION 8 #define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME "XR_KHR_composition_layer_cube" typedef struct XrCompositionLayerCubeKHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrEyeVisibility eyeVisibility; XrSwapchain swapchain; uint32_t imageArrayIndex; XrQuaternionf orientation; } XrCompositionLayerCubeKHR; // XR_KHR_composition_layer_depth is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_composition_layer_depth 1 #define XR_KHR_composition_layer_depth_SPEC_VERSION 6 #define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth" // XrCompositionLayerDepthInfoKHR extends XrCompositionLayerProjectionView typedef struct XrCompositionLayerDepthInfoKHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrSwapchainSubImage subImage; float minDepth; float maxDepth; float nearZ; float farZ; } XrCompositionLayerDepthInfoKHR; // XR_KHR_composition_layer_cylinder is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_composition_layer_cylinder 1 #define XR_KHR_composition_layer_cylinder_SPEC_VERSION 4 #define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME "XR_KHR_composition_layer_cylinder" typedef struct XrCompositionLayerCylinderKHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrEyeVisibility eyeVisibility; XrSwapchainSubImage subImage; XrPosef pose; float radius; float centralAngle; float aspectRatio; } XrCompositionLayerCylinderKHR; // XR_KHR_composition_layer_equirect is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_composition_layer_equirect 1 #define XR_KHR_composition_layer_equirect_SPEC_VERSION 3 #define XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME "XR_KHR_composition_layer_equirect" typedef struct XrCompositionLayerEquirectKHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrEyeVisibility eyeVisibility; XrSwapchainSubImage subImage; XrPosef pose; float radius; XrVector2f scale; XrVector2f bias; } XrCompositionLayerEquirectKHR; // XR_KHR_visibility_mask is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_visibility_mask 1 #define XR_KHR_visibility_mask_SPEC_VERSION 2 #define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME "XR_KHR_visibility_mask" typedef enum XrVisibilityMaskTypeKHR { XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR = 1, XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR = 2, XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR = 3, XR_VISIBILITY_MASK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF } XrVisibilityMaskTypeKHR; typedef struct XrVisibilityMaskKHR { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector2f* vertices; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrVisibilityMaskKHR; typedef struct XrEventDataVisibilityMaskChangedKHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrSession session; XrViewConfigurationType viewConfigurationType; uint32_t viewIndex; } XrEventDataVisibilityMaskChangedKHR; typedef XrResult (XRAPI_PTR *PFN_xrGetVisibilityMaskKHR)(XrSession session, XrViewConfigurationType viewConfigurationType, uint32_t viewIndex, XrVisibilityMaskTypeKHR visibilityMaskType, XrVisibilityMaskKHR* visibilityMask); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetVisibilityMaskKHR( XrSession session, XrViewConfigurationType viewConfigurationType, uint32_t viewIndex, XrVisibilityMaskTypeKHR visibilityMaskType, XrVisibilityMaskKHR* visibilityMask); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_KHR_composition_layer_color_scale_bias is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_composition_layer_color_scale_bias 1 #define XR_KHR_composition_layer_color_scale_bias_SPEC_VERSION 5 #define XR_KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME "XR_KHR_composition_layer_color_scale_bias" // XrCompositionLayerColorScaleBiasKHR extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerColorScaleBiasKHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrColor4f colorScale; XrColor4f colorBias; } XrCompositionLayerColorScaleBiasKHR; // XR_KHR_loader_init is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_loader_init 1 #define XR_KHR_loader_init_SPEC_VERSION 2 #define XR_KHR_LOADER_INIT_EXTENSION_NAME "XR_KHR_loader_init" typedef struct XR_MAY_ALIAS XrLoaderInitInfoBaseHeaderKHR { XrStructureType type; const void* XR_MAY_ALIAS next; } XrLoaderInitInfoBaseHeaderKHR; typedef XrResult (XRAPI_PTR *PFN_xrInitializeLoaderKHR)(const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrInitializeLoaderKHR( const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_KHR_composition_layer_equirect2 is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_composition_layer_equirect2 1 #define XR_KHR_composition_layer_equirect2_SPEC_VERSION 1 #define XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME "XR_KHR_composition_layer_equirect2" typedef struct XrCompositionLayerEquirect2KHR { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrEyeVisibility eyeVisibility; XrSwapchainSubImage subImage; XrPosef pose; float radius; float centralHorizontalAngle; float upperVerticalAngle; float lowerVerticalAngle; } XrCompositionLayerEquirect2KHR; // XR_KHR_binding_modification is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_binding_modification 1 #define XR_KHR_binding_modification_SPEC_VERSION 1 #define XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME "XR_KHR_binding_modification" typedef struct XR_MAY_ALIAS XrBindingModificationBaseHeaderKHR { XrStructureType type; const void* XR_MAY_ALIAS next; } XrBindingModificationBaseHeaderKHR; // XrBindingModificationsKHR extends XrInteractionProfileSuggestedBinding typedef struct XrBindingModificationsKHR { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t bindingModificationCount; const XrBindingModificationBaseHeaderKHR* const* bindingModifications; } XrBindingModificationsKHR; // XR_KHR_extended_struct_name_lengths is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_extended_struct_name_lengths 1 #define XR_KHR_extended_struct_name_lengths_SPEC_VERSION 2 #define XR_KHR_EXTENDED_STRUCT_NAME_LENGTHS_EXTENSION_NAME "XR_KHR_extended_struct_name_lengths" #define XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR 256 typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString2KHR)(XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR]); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString2KHR( XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR]); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_KHR_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_swapchain_usage_input_attachment_bit 1 #define XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION 3 #define XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_KHR_swapchain_usage_input_attachment_bit" // XR_KHR_locate_spaces is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_locate_spaces 1 #define XR_KHR_locate_spaces_SPEC_VERSION 1 #define XR_KHR_LOCATE_SPACES_EXTENSION_NAME "XR_KHR_locate_spaces" typedef XrSpacesLocateInfo XrSpacesLocateInfoKHR; typedef XrSpaceLocationData XrSpaceLocationDataKHR; typedef XrSpaceLocations XrSpaceLocationsKHR; typedef XrSpaceVelocityData XrSpaceVelocityDataKHR; typedef XrSpaceVelocities XrSpaceVelocitiesKHR; typedef XrResult (XRAPI_PTR *PFN_xrLocateSpacesKHR)(XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpacesKHR( XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_maintenance1 1 #define XR_KHR_maintenance1_SPEC_VERSION 1 #define XR_KHR_MAINTENANCE1_EXTENSION_NAME "XR_KHR_maintenance1" typedef XrColor3f XrColor3fKHR; typedef XrExtent3Df XrExtent3DfKHR; typedef XrSpheref XrSpherefKHR; typedef XrBoxf XrBoxfKHR; typedef XrFrustumf XrFrustumfKHR; // XR_KHR_generic_controller is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_generic_controller 1 #define XR_KHR_generic_controller_SPEC_VERSION 1 #define XR_KHR_GENERIC_CONTROLLER_EXTENSION_NAME "XR_KHR_generic_controller" // XR_KHR_extended_result_name_lengths is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_extended_result_name_lengths 1 #define XR_KHR_extended_result_name_lengths_SPEC_VERSION 1 #define XR_KHR_EXTENDED_RESULT_NAME_LENGTHS_EXTENSION_NAME "XR_KHR_extended_result_name_lengths" #define XR_MAX_RESULT_STRING_SIZE_EXTENDED_KHR 256 typedef XrResult (XRAPI_PTR *PFN_xrResultToString2KHR)(XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE_EXTENDED_KHR]); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrResultToString2KHR( XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE_EXTENDED_KHR]); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_performance_settings is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_performance_settings 1 #define XR_EXT_performance_settings_SPEC_VERSION 4 #define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings" typedef enum XrPerfSettingsDomainEXT { XR_PERF_SETTINGS_DOMAIN_CPU_EXT = 1, XR_PERF_SETTINGS_DOMAIN_GPU_EXT = 2, XR_PERF_SETTINGS_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF } XrPerfSettingsDomainEXT; typedef enum XrPerfSettingsSubDomainEXT { XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT = 1, XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT = 2, XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT = 3, XR_PERF_SETTINGS_SUB_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF } XrPerfSettingsSubDomainEXT; typedef enum XrPerfSettingsLevelEXT { XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT = 0, XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT = 25, XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT = 50, XR_PERF_SETTINGS_LEVEL_BOOST_EXT = 75, XR_PERF_SETTINGS_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF } XrPerfSettingsLevelEXT; typedef enum XrPerfSettingsNotificationLevelEXT { XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT = 0, XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT = 25, XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT = 75, XR_PERF_SETTINGS_NOTIFICATION_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF } XrPerfSettingsNotificationLevelEXT; typedef struct XrEventDataPerfSettingsEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrPerfSettingsDomainEXT domain; XrPerfSettingsSubDomainEXT subDomain; XrPerfSettingsNotificationLevelEXT fromLevel; XrPerfSettingsNotificationLevelEXT toLevel; } XrEventDataPerfSettingsEXT; typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT( XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_thermal_query is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_thermal_query 1 #define XR_EXT_thermal_query_SPEC_VERSION 2 #define XR_EXT_THERMAL_QUERY_EXTENSION_NAME "XR_EXT_thermal_query" typedef XrResult (XRAPI_PTR *PFN_xrThermalGetTemperatureTrendEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT* notificationLevel, float* tempHeadroom, float* tempSlope); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT( XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT* notificationLevel, float* tempHeadroom, float* tempSlope); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_debug_utils 1 XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT) #define XR_EXT_debug_utils_SPEC_VERSION 5 #define XR_EXT_DEBUG_UTILS_EXTENSION_NAME "XR_EXT_debug_utils" typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT; // Flag bits for XrDebugUtilsMessageSeverityFlagsEXT static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001; static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010; static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100; static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000; typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT; // Flag bits for XrDebugUtilsMessageTypeFlagsEXT static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001; static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002; static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004; static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT = 0x00000008; typedef struct XrDebugUtilsObjectNameInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrObjectType objectType; uint64_t objectHandle; const char* objectName; } XrDebugUtilsObjectNameInfoEXT; typedef struct XrDebugUtilsLabelEXT { XrStructureType type; const void* XR_MAY_ALIAS next; const char* labelName; } XrDebugUtilsLabelEXT; typedef struct XrDebugUtilsMessengerCallbackDataEXT { XrStructureType type; const void* XR_MAY_ALIAS next; const char* messageId; const char* functionName; const char* message; uint32_t objectCount; XrDebugUtilsObjectNameInfoEXT* objects; uint32_t sessionLabelCount; XrDebugUtilsLabelEXT* sessionLabels; } XrDebugUtilsMessengerCallbackDataEXT; typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)( XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData, void* userData); // XrDebugUtilsMessengerCreateInfoEXT extends XrInstanceCreateInfo typedef struct XrDebugUtilsMessengerCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrDebugUtilsMessageSeverityFlagsEXT messageSeverities; XrDebugUtilsMessageTypeFlagsEXT messageTypes; PFN_xrDebugUtilsMessengerCallbackEXT userCallback; void* XR_MAY_ALIAS userData; } XrDebugUtilsMessengerCreateInfoEXT; typedef XrResult (XRAPI_PTR *PFN_xrSetDebugUtilsObjectNameEXT)(XrInstance instance, const XrDebugUtilsObjectNameInfoEXT* nameInfo); typedef XrResult (XRAPI_PTR *PFN_xrCreateDebugUtilsMessengerEXT)(XrInstance instance, const XrDebugUtilsMessengerCreateInfoEXT* createInfo, XrDebugUtilsMessengerEXT* messenger); typedef XrResult (XRAPI_PTR *PFN_xrDestroyDebugUtilsMessengerEXT)(XrDebugUtilsMessengerEXT messenger); typedef XrResult (XRAPI_PTR *PFN_xrSubmitDebugUtilsMessageEXT)(XrInstance instance, XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData); typedef XrResult (XRAPI_PTR *PFN_xrSessionBeginDebugUtilsLabelRegionEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo); typedef XrResult (XRAPI_PTR *PFN_xrSessionEndDebugUtilsLabelRegionEXT)(XrSession session); typedef XrResult (XRAPI_PTR *PFN_xrSessionInsertDebugUtilsLabelEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetDebugUtilsObjectNameEXT( XrInstance instance, const XrDebugUtilsObjectNameInfoEXT* nameInfo); XRAPI_ATTR XrResult XRAPI_CALL xrCreateDebugUtilsMessengerEXT( XrInstance instance, const XrDebugUtilsMessengerCreateInfoEXT* createInfo, XrDebugUtilsMessengerEXT* messenger); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDebugUtilsMessengerEXT( XrDebugUtilsMessengerEXT messenger); XRAPI_ATTR XrResult XRAPI_CALL xrSubmitDebugUtilsMessageEXT( XrInstance instance, XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData); XRAPI_ATTR XrResult XRAPI_CALL xrSessionBeginDebugUtilsLabelRegionEXT( XrSession session, const XrDebugUtilsLabelEXT* labelInfo); XRAPI_ATTR XrResult XRAPI_CALL xrSessionEndDebugUtilsLabelRegionEXT( XrSession session); XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT( XrSession session, const XrDebugUtilsLabelEXT* labelInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_eye_gaze_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_eye_gaze_interaction 1 #define XR_EXT_eye_gaze_interaction_SPEC_VERSION 2 #define XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME "XR_EXT_eye_gaze_interaction" // XrSystemEyeGazeInteractionPropertiesEXT extends XrSystemProperties typedef struct XrSystemEyeGazeInteractionPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsEyeGazeInteraction; } XrSystemEyeGazeInteractionPropertiesEXT; // XrEyeGazeSampleTimeEXT extends XrSpaceLocation typedef struct XrEyeGazeSampleTimeEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrTime time; } XrEyeGazeSampleTimeEXT; // XR_EXTX_overlay is a preprocessor guard. Do not pass it to API calls. #define XR_EXTX_overlay 1 #define XR_EXTX_overlay_SPEC_VERSION 5 #define XR_EXTX_OVERLAY_EXTENSION_NAME "XR_EXTX_overlay" typedef XrFlags64 XrOverlaySessionCreateFlagsEXTX; // Flag bits for XrOverlaySessionCreateFlagsEXTX typedef XrFlags64 XrOverlayMainSessionFlagsEXTX; // Flag bits for XrOverlayMainSessionFlagsEXTX static const XrOverlayMainSessionFlagsEXTX XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX = 0x00000001; // XrSessionCreateInfoOverlayEXTX extends XrSessionCreateInfo typedef struct XrSessionCreateInfoOverlayEXTX { XrStructureType type; const void* XR_MAY_ALIAS next; XrOverlaySessionCreateFlagsEXTX createFlags; uint32_t sessionLayersPlacement; } XrSessionCreateInfoOverlayEXTX; typedef struct XrEventDataMainSessionVisibilityChangedEXTX { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 visible; XrOverlayMainSessionFlagsEXTX flags; } XrEventDataMainSessionVisibilityChangedEXTX; // XR_VARJO_quad_views is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_quad_views 1 #define XR_VARJO_quad_views_SPEC_VERSION 2 #define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views" // XR_MSFT_unbounded_reference_space is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_unbounded_reference_space 1 #define XR_MSFT_unbounded_reference_space_SPEC_VERSION 1 #define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_MSFT_unbounded_reference_space" // XR_MSFT_spatial_anchor is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_spatial_anchor 1 XR_DEFINE_HANDLE(XrSpatialAnchorMSFT) #define XR_MSFT_spatial_anchor_SPEC_VERSION 2 #define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_MSFT_spatial_anchor" typedef struct XrSpatialAnchorCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrPosef pose; XrTime time; } XrSpatialAnchorCreateInfoMSFT; typedef struct XrSpatialAnchorSpaceCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialAnchorMSFT anchor; XrPosef poseInAnchorSpace; } XrSpatialAnchorSpaceCreateInfoMSFT; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorMSFT)(XrSession session, const XrSpatialAnchorCreateInfoMSFT* createInfo, XrSpatialAnchorMSFT* anchor); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT anchor); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT( XrSession session, const XrSpatialAnchorCreateInfoMSFT* createInfo, XrSpatialAnchorMSFT* anchor); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT( XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT( XrSpatialAnchorMSFT anchor); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_composition_layer_image_layout is a preprocessor guard. Do not pass it to API calls. #define XR_FB_composition_layer_image_layout 1 #define XR_FB_composition_layer_image_layout_SPEC_VERSION 1 #define XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME "XR_FB_composition_layer_image_layout" typedef XrFlags64 XrCompositionLayerImageLayoutFlagsFB; // Flag bits for XrCompositionLayerImageLayoutFlagsFB static const XrCompositionLayerImageLayoutFlagsFB XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB = 0x00000001; // XrCompositionLayerImageLayoutFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerImageLayoutFB { XrStructureType type; void* XR_MAY_ALIAS next; XrCompositionLayerImageLayoutFlagsFB flags; } XrCompositionLayerImageLayoutFB; // XR_FB_composition_layer_alpha_blend is a preprocessor guard. Do not pass it to API calls. #define XR_FB_composition_layer_alpha_blend 1 #define XR_FB_composition_layer_alpha_blend_SPEC_VERSION 3 #define XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME "XR_FB_composition_layer_alpha_blend" typedef enum XrBlendFactorFB { XR_BLEND_FACTOR_ZERO_FB = 0, XR_BLEND_FACTOR_ONE_FB = 1, XR_BLEND_FACTOR_SRC_ALPHA_FB = 2, XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB = 3, XR_BLEND_FACTOR_DST_ALPHA_FB = 4, XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB = 5, XR_BLEND_FACTOR_MAX_ENUM_FB = 0x7FFFFFFF } XrBlendFactorFB; typedef XrFlags64 XrCompositionLayerSecureContentFlagsFB; // Flag bits for XrCompositionLayerSecureContentFlagsFB static const XrCompositionLayerSecureContentFlagsFB XR_COMPOSITION_LAYER_SECURE_CONTENT_EXCLUDE_LAYER_BIT_FB = 0x00000001; static const XrCompositionLayerSecureContentFlagsFB XR_COMPOSITION_LAYER_SECURE_CONTENT_REPLACE_LAYER_BIT_FB = 0x00000002; // XrCompositionLayerAlphaBlendFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerAlphaBlendFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBlendFactorFB srcFactorColor; XrBlendFactorFB dstFactorColor; XrBlendFactorFB srcFactorAlpha; XrBlendFactorFB dstFactorAlpha; } XrCompositionLayerAlphaBlendFB; // XR_MND_headless is a preprocessor guard. Do not pass it to API calls. #define XR_MND_headless 1 #define XR_MND_headless_SPEC_VERSION 3 #define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless" // XR_OCULUS_android_session_state_enable is a preprocessor guard. Do not pass it to API calls. #define XR_OCULUS_android_session_state_enable 1 #define XR_OCULUS_android_session_state_enable_SPEC_VERSION 1 #define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME "XR_OCULUS_android_session_state_enable" // XR_EXT_view_configuration_depth_range is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_view_configuration_depth_range 1 #define XR_EXT_view_configuration_depth_range_SPEC_VERSION 1 #define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME "XR_EXT_view_configuration_depth_range" // XrViewConfigurationDepthRangeEXT extends XrViewConfigurationView typedef struct XrViewConfigurationDepthRangeEXT { XrStructureType type; void* XR_MAY_ALIAS next; float recommendedNearZ; float minNearZ; float recommendedFarZ; float maxFarZ; } XrViewConfigurationDepthRangeEXT; // XR_EXT_conformance_automation is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_conformance_automation 1 #define XR_EXT_conformance_automation_SPEC_VERSION 3 #define XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME "XR_EXT_conformance_automation" typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceActiveEXT)(XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateBoolEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrBool32 state); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateFloatEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, float state); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateVector2fEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrVector2f state); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceLocationEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrSpace space, XrPosef pose); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceActiveEXT( XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive); XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateBoolEXT( XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrBool32 state); XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateFloatEXT( XrSession session, XrPath topLevelPath, XrPath inputSourcePath, float state); XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateVector2fEXT( XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrVector2f state); XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT( XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrSpace space, XrPosef pose); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_spatial_graph_bridge is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_spatial_graph_bridge 1 XR_DEFINE_HANDLE(XrSpatialGraphNodeBindingMSFT) #define XR_GUID_SIZE_MSFT 16 #define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 2 #define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge" typedef enum XrSpatialGraphNodeTypeMSFT { XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT = 1, XR_SPATIAL_GRAPH_NODE_TYPE_DYNAMIC_MSFT = 2, XR_SPATIAL_GRAPH_NODE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSpatialGraphNodeTypeMSFT; typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialGraphNodeTypeMSFT nodeType; uint8_t nodeId[XR_GUID_SIZE_MSFT]; XrPosef pose; } XrSpatialGraphNodeSpaceCreateInfoMSFT; typedef struct XrSpatialGraphStaticNodeBindingCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrPosef poseInSpace; XrTime time; } XrSpatialGraphStaticNodeBindingCreateInfoMSFT; typedef struct XrSpatialGraphNodeBindingPropertiesGetInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialGraphNodeBindingPropertiesGetInfoMSFT; typedef struct XrSpatialGraphNodeBindingPropertiesMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint8_t nodeId[XR_GUID_SIZE_MSFT]; XrPosef poseInNodeSpace; } XrSpatialGraphNodeBindingPropertiesMSFT; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession session, const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT)(XrSession session, const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo, XrSpatialGraphNodeBindingMSFT* nodeBinding); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialGraphNodeBindingMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding, const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo, XrSpatialGraphNodeBindingPropertiesMSFT* properties); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT( XrSession session, const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrTryCreateSpatialGraphStaticNodeBindingMSFT( XrSession session, const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo, XrSpatialGraphNodeBindingMSFT* nodeBinding); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialGraphNodeBindingMSFT( XrSpatialGraphNodeBindingMSFT nodeBinding); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialGraphNodeBindingPropertiesMSFT( XrSpatialGraphNodeBindingMSFT nodeBinding, const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo, XrSpatialGraphNodeBindingPropertiesMSFT* properties); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_hand_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_hand_interaction 1 #define XR_MSFT_hand_interaction_SPEC_VERSION 1 #define XR_MSFT_HAND_INTERACTION_EXTENSION_NAME "XR_MSFT_hand_interaction" // XR_EXT_hand_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_hand_tracking 1 #define XR_HAND_JOINT_COUNT_EXT 26 XR_DEFINE_HANDLE(XrHandTrackerEXT) #define XR_EXT_hand_tracking_SPEC_VERSION 4 #define XR_EXT_HAND_TRACKING_EXTENSION_NAME "XR_EXT_hand_tracking" typedef enum XrHandEXT { XR_HAND_LEFT_EXT = 1, XR_HAND_RIGHT_EXT = 2, XR_HAND_MAX_ENUM_EXT = 0x7FFFFFFF } XrHandEXT; typedef enum XrHandJointEXT { XR_HAND_JOINT_PALM_EXT = 0, XR_HAND_JOINT_WRIST_EXT = 1, XR_HAND_JOINT_THUMB_METACARPAL_EXT = 2, XR_HAND_JOINT_THUMB_PROXIMAL_EXT = 3, XR_HAND_JOINT_THUMB_DISTAL_EXT = 4, XR_HAND_JOINT_THUMB_TIP_EXT = 5, XR_HAND_JOINT_INDEX_METACARPAL_EXT = 6, XR_HAND_JOINT_INDEX_PROXIMAL_EXT = 7, XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT = 8, XR_HAND_JOINT_INDEX_DISTAL_EXT = 9, XR_HAND_JOINT_INDEX_TIP_EXT = 10, XR_HAND_JOINT_MIDDLE_METACARPAL_EXT = 11, XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT = 12, XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT = 13, XR_HAND_JOINT_MIDDLE_DISTAL_EXT = 14, XR_HAND_JOINT_MIDDLE_TIP_EXT = 15, XR_HAND_JOINT_RING_METACARPAL_EXT = 16, XR_HAND_JOINT_RING_PROXIMAL_EXT = 17, XR_HAND_JOINT_RING_INTERMEDIATE_EXT = 18, XR_HAND_JOINT_RING_DISTAL_EXT = 19, XR_HAND_JOINT_RING_TIP_EXT = 20, XR_HAND_JOINT_LITTLE_METACARPAL_EXT = 21, XR_HAND_JOINT_LITTLE_PROXIMAL_EXT = 22, XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT = 23, XR_HAND_JOINT_LITTLE_DISTAL_EXT = 24, XR_HAND_JOINT_LITTLE_TIP_EXT = 25, XR_HAND_JOINT_MAX_ENUM_EXT = 0x7FFFFFFF } XrHandJointEXT; typedef enum XrHandJointSetEXT { XR_HAND_JOINT_SET_DEFAULT_EXT = 0, XR_HAND_JOINT_SET_HAND_WITH_FOREARM_ULTRALEAP = 1000149000, XR_HAND_JOINT_SET_MAX_ENUM_EXT = 0x7FFFFFFF } XrHandJointSetEXT; // XrSystemHandTrackingPropertiesEXT extends XrSystemProperties typedef struct XrSystemHandTrackingPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsHandTracking; } XrSystemHandTrackingPropertiesEXT; typedef struct XrHandTrackerCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrHandEXT hand; XrHandJointSetEXT handJointSet; } XrHandTrackerCreateInfoEXT; typedef struct XrHandJointsLocateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; } XrHandJointsLocateInfoEXT; typedef struct XrHandJointLocationEXT { XrSpaceLocationFlags locationFlags; XrPosef pose; float radius; } XrHandJointLocationEXT; typedef struct XrHandJointVelocityEXT { XrSpaceVelocityFlags velocityFlags; XrVector3f linearVelocity; XrVector3f angularVelocity; } XrHandJointVelocityEXT; typedef struct XrHandJointLocationsEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isActive; uint32_t jointCount; XrHandJointLocationEXT* jointLocations; } XrHandJointLocationsEXT; // XrHandJointVelocitiesEXT extends XrHandJointLocationsEXT typedef struct XrHandJointVelocitiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t jointCount; XrHandJointVelocityEXT* jointVelocities; } XrHandJointVelocitiesEXT; typedef XrResult (XRAPI_PTR *PFN_xrCreateHandTrackerEXT)(XrSession session, const XrHandTrackerCreateInfoEXT* createInfo, XrHandTrackerEXT* handTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyHandTrackerEXT)(XrHandTrackerEXT handTracker); typedef XrResult (XRAPI_PTR *PFN_xrLocateHandJointsEXT)(XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT* locateInfo, XrHandJointLocationsEXT* locations); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandTrackerEXT( XrSession session, const XrHandTrackerCreateInfoEXT* createInfo, XrHandTrackerEXT* handTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyHandTrackerEXT( XrHandTrackerEXT handTracker); XRAPI_ATTR XrResult XRAPI_CALL xrLocateHandJointsEXT( XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT* locateInfo, XrHandJointLocationsEXT* locations); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_hand_tracking_mesh 1 #define XR_MSFT_hand_tracking_mesh_SPEC_VERSION 4 #define XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME "XR_MSFT_hand_tracking_mesh" typedef enum XrHandPoseTypeMSFT { XR_HAND_POSE_TYPE_TRACKED_MSFT = 0, XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT = 1, XR_HAND_POSE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrHandPoseTypeMSFT; // XrSystemHandTrackingMeshPropertiesMSFT extends XrSystemProperties typedef struct XrSystemHandTrackingMeshPropertiesMSFT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsHandTrackingMesh; uint32_t maxHandMeshIndexCount; uint32_t maxHandMeshVertexCount; } XrSystemHandTrackingMeshPropertiesMSFT; typedef struct XrHandMeshSpaceCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrHandPoseTypeMSFT handPoseType; XrPosef poseInHandMeshSpace; } XrHandMeshSpaceCreateInfoMSFT; typedef struct XrHandMeshUpdateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; XrHandPoseTypeMSFT handPoseType; } XrHandMeshUpdateInfoMSFT; typedef struct XrHandMeshIndexBufferMSFT { uint32_t indexBufferKey; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrHandMeshIndexBufferMSFT; typedef struct XrHandMeshVertexMSFT { XrVector3f position; XrVector3f normal; } XrHandMeshVertexMSFT; typedef struct XrHandMeshVertexBufferMSFT { XrTime vertexUpdateTime; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrHandMeshVertexMSFT* vertices; } XrHandMeshVertexBufferMSFT; typedef struct XrHandMeshMSFT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isActive; XrBool32 indexBufferChanged; XrBool32 vertexBufferChanged; XrHandMeshIndexBufferMSFT indexBuffer; XrHandMeshVertexBufferMSFT vertexBuffer; } XrHandMeshMSFT; // XrHandPoseTypeInfoMSFT extends XrHandTrackerCreateInfoEXT typedef struct XrHandPoseTypeInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrHandPoseTypeMSFT handPoseType; } XrHandPoseTypeInfoMSFT; typedef XrResult (XRAPI_PTR *PFN_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT handTracker, const XrHandMeshSpaceCreateInfoMSFT* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrUpdateHandMeshMSFT)(XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT* updateInfo, XrHandMeshMSFT* handMesh); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandMeshSpaceMSFT( XrHandTrackerEXT handTracker, const XrHandMeshSpaceCreateInfoMSFT* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateHandMeshMSFT( XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT* updateInfo, XrHandMeshMSFT* handMesh); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_secondary_view_configuration is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_secondary_view_configuration 1 #define XR_MSFT_secondary_view_configuration_SPEC_VERSION 1 #define XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME "XR_MSFT_secondary_view_configuration" // XrSecondaryViewConfigurationSessionBeginInfoMSFT extends XrSessionBeginInfo typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t viewConfigurationCount; const XrViewConfigurationType* enabledViewConfigurationTypes; } XrSecondaryViewConfigurationSessionBeginInfoMSFT; typedef struct XrSecondaryViewConfigurationStateMSFT { XrStructureType type; void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; XrBool32 active; } XrSecondaryViewConfigurationStateMSFT; // XrSecondaryViewConfigurationFrameStateMSFT extends XrFrameState typedef struct XrSecondaryViewConfigurationFrameStateMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t viewConfigurationCount; XrSecondaryViewConfigurationStateMSFT* viewConfigurationStates; } XrSecondaryViewConfigurationFrameStateMSFT; typedef struct XrSecondaryViewConfigurationLayerInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; XrEnvironmentBlendMode environmentBlendMode; uint32_t layerCount; const XrCompositionLayerBaseHeader* const* layers; } XrSecondaryViewConfigurationLayerInfoMSFT; // XrSecondaryViewConfigurationFrameEndInfoMSFT extends XrFrameEndInfo typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t viewConfigurationCount; const XrSecondaryViewConfigurationLayerInfoMSFT* viewConfigurationLayersInfo; } XrSecondaryViewConfigurationFrameEndInfoMSFT; // XrSecondaryViewConfigurationSwapchainCreateInfoMSFT extends XrSwapchainCreateInfo typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; } XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; // XR_MSFT_first_person_observer is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_first_person_observer 1 #define XR_MSFT_first_person_observer_SPEC_VERSION 1 #define XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME "XR_MSFT_first_person_observer" // XR_MSFT_controller_model is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_controller_model 1 #define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0 XR_DEFINE_ATOM(XrControllerModelKeyMSFT) #define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64 #define XR_MSFT_controller_model_SPEC_VERSION 2 #define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME "XR_MSFT_controller_model" typedef struct XrControllerModelKeyStateMSFT { XrStructureType type; void* XR_MAY_ALIAS next; XrControllerModelKeyMSFT modelKey; } XrControllerModelKeyStateMSFT; typedef struct XrControllerModelNodePropertiesMSFT { XrStructureType type; void* XR_MAY_ALIAS next; char parentNodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; char nodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; } XrControllerModelNodePropertiesMSFT; typedef struct XrControllerModelPropertiesMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t nodeCapacityInput; uint32_t nodeCountOutput; XrControllerModelNodePropertiesMSFT* nodeProperties; } XrControllerModelPropertiesMSFT; typedef struct XrControllerModelNodeStateMSFT { XrStructureType type; void* XR_MAY_ALIAS next; XrPosef nodePose; } XrControllerModelNodeStateMSFT; typedef struct XrControllerModelStateMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t nodeCapacityInput; uint32_t nodeCountOutput; XrControllerModelNodeStateMSFT* nodeStates; } XrControllerModelStateMSFT; typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelKeyMSFT)(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT* controllerModelKeyState); typedef XrResult (XRAPI_PTR *PFN_xrLoadControllerModelMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelPropertiesMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT* properties); typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelStateMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT* state); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelKeyMSFT( XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT* controllerModelKeyState); XRAPI_ATTR XrResult XRAPI_CALL xrLoadControllerModelMSFT( XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelPropertiesMSFT( XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT* properties); XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelStateMSFT( XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT* state); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_win32_appcontainer_compatible is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_win32_appcontainer_compatible 1 #define XR_EXT_win32_appcontainer_compatible_SPEC_VERSION 1 #define XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME "XR_EXT_win32_appcontainer_compatible" // XR_EPIC_view_configuration_fov is a preprocessor guard. Do not pass it to API calls. #define XR_EPIC_view_configuration_fov 1 #define XR_EPIC_view_configuration_fov_SPEC_VERSION 2 #define XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME "XR_EPIC_view_configuration_fov" // XrViewConfigurationViewFovEPIC extends XrViewConfigurationView typedef struct XrViewConfigurationViewFovEPIC { XrStructureType type; const void* XR_MAY_ALIAS next; XrFovf recommendedFov; XrFovf maxMutableFov; } XrViewConfigurationViewFovEPIC; // XR_MSFT_composition_layer_reprojection is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_composition_layer_reprojection 1 #define XR_MSFT_composition_layer_reprojection_SPEC_VERSION 1 #define XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME "XR_MSFT_composition_layer_reprojection" typedef enum XrReprojectionModeMSFT { XR_REPROJECTION_MODE_DEPTH_MSFT = 1, XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT = 2, XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT = 3, XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT = 4, XR_REPROJECTION_MODE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrReprojectionModeMSFT; // XrCompositionLayerReprojectionInfoMSFT extends XrCompositionLayerProjection typedef struct XrCompositionLayerReprojectionInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrReprojectionModeMSFT reprojectionMode; } XrCompositionLayerReprojectionInfoMSFT; // XrCompositionLayerReprojectionPlaneOverrideMSFT extends XrCompositionLayerProjection typedef struct XrCompositionLayerReprojectionPlaneOverrideMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrVector3f position; XrVector3f normal; XrVector3f velocity; } XrCompositionLayerReprojectionPlaneOverrideMSFT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReprojectionModesMSFT)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrReprojectionModeMSFT* modes); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReprojectionModesMSFT( XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrReprojectionModeMSFT* modes); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HUAWEI_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_HUAWEI_controller_interaction 1 #define XR_HUAWEI_controller_interaction_SPEC_VERSION 1 #define XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HUAWEI_controller_interaction" // XR_FB_swapchain_update_state is a preprocessor guard. Do not pass it to API calls. #define XR_FB_swapchain_update_state 1 #define XR_FB_swapchain_update_state_SPEC_VERSION 3 #define XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME "XR_FB_swapchain_update_state" typedef struct XR_MAY_ALIAS XrSwapchainStateBaseHeaderFB { XrStructureType type; void* XR_MAY_ALIAS next; } XrSwapchainStateBaseHeaderFB; typedef XrResult (XRAPI_PTR *PFN_xrUpdateSwapchainFB)(XrSwapchain swapchain, const XrSwapchainStateBaseHeaderFB* state); typedef XrResult (XRAPI_PTR *PFN_xrGetSwapchainStateFB)(XrSwapchain swapchain, XrSwapchainStateBaseHeaderFB* state); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSwapchainFB( XrSwapchain swapchain, const XrSwapchainStateBaseHeaderFB* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetSwapchainStateFB( XrSwapchain swapchain, XrSwapchainStateBaseHeaderFB* state); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_composition_layer_secure_content is a preprocessor guard. Do not pass it to API calls. #define XR_FB_composition_layer_secure_content 1 #define XR_FB_composition_layer_secure_content_SPEC_VERSION 1 #define XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME "XR_FB_composition_layer_secure_content" // XrCompositionLayerSecureContentFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerSecureContentFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerSecureContentFlagsFB flags; } XrCompositionLayerSecureContentFB; // XR_FB_body_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_FB_body_tracking 1 XR_DEFINE_HANDLE(XrBodyTrackerFB) #define XR_FB_body_tracking_SPEC_VERSION 1 #define XR_FB_BODY_TRACKING_EXTENSION_NAME "XR_FB_body_tracking" typedef enum XrBodyJointFB { XR_BODY_JOINT_ROOT_FB = 0, XR_BODY_JOINT_HIPS_FB = 1, XR_BODY_JOINT_SPINE_LOWER_FB = 2, XR_BODY_JOINT_SPINE_MIDDLE_FB = 3, XR_BODY_JOINT_SPINE_UPPER_FB = 4, XR_BODY_JOINT_CHEST_FB = 5, XR_BODY_JOINT_NECK_FB = 6, XR_BODY_JOINT_HEAD_FB = 7, XR_BODY_JOINT_LEFT_SHOULDER_FB = 8, XR_BODY_JOINT_LEFT_SCAPULA_FB = 9, XR_BODY_JOINT_LEFT_ARM_UPPER_FB = 10, XR_BODY_JOINT_LEFT_ARM_LOWER_FB = 11, XR_BODY_JOINT_LEFT_HAND_WRIST_TWIST_FB = 12, XR_BODY_JOINT_RIGHT_SHOULDER_FB = 13, XR_BODY_JOINT_RIGHT_SCAPULA_FB = 14, XR_BODY_JOINT_RIGHT_ARM_UPPER_FB = 15, XR_BODY_JOINT_RIGHT_ARM_LOWER_FB = 16, XR_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_FB = 17, XR_BODY_JOINT_LEFT_HAND_PALM_FB = 18, XR_BODY_JOINT_LEFT_HAND_WRIST_FB = 19, XR_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_FB = 20, XR_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_FB = 21, XR_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_FB = 22, XR_BODY_JOINT_LEFT_HAND_THUMB_TIP_FB = 23, XR_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_FB = 24, XR_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_FB = 25, XR_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_FB = 26, XR_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_FB = 27, XR_BODY_JOINT_LEFT_HAND_INDEX_TIP_FB = 28, XR_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_FB = 29, XR_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_FB = 30, XR_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_FB = 31, XR_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_FB = 32, XR_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_FB = 33, XR_BODY_JOINT_LEFT_HAND_RING_METACARPAL_FB = 34, XR_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_FB = 35, XR_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_FB = 36, XR_BODY_JOINT_LEFT_HAND_RING_DISTAL_FB = 37, XR_BODY_JOINT_LEFT_HAND_RING_TIP_FB = 38, XR_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_FB = 39, XR_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_FB = 40, XR_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_FB = 41, XR_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_FB = 42, XR_BODY_JOINT_LEFT_HAND_LITTLE_TIP_FB = 43, XR_BODY_JOINT_RIGHT_HAND_PALM_FB = 44, XR_BODY_JOINT_RIGHT_HAND_WRIST_FB = 45, XR_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_FB = 46, XR_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_FB = 47, XR_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_FB = 48, XR_BODY_JOINT_RIGHT_HAND_THUMB_TIP_FB = 49, XR_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_FB = 50, XR_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_FB = 51, XR_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_FB = 52, XR_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_FB = 53, XR_BODY_JOINT_RIGHT_HAND_INDEX_TIP_FB = 54, XR_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_FB = 55, XR_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_FB = 56, XR_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_FB = 57, XR_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_FB = 58, XR_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_FB = 59, XR_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_FB = 60, XR_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_FB = 61, XR_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_FB = 62, XR_BODY_JOINT_RIGHT_HAND_RING_DISTAL_FB = 63, XR_BODY_JOINT_RIGHT_HAND_RING_TIP_FB = 64, XR_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_FB = 65, XR_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_FB = 66, XR_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_FB = 67, XR_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_FB = 68, XR_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_FB = 69, XR_BODY_JOINT_COUNT_FB = 70, XR_BODY_JOINT_NONE_FB = -1, XR_BODY_JOINT_MAX_ENUM_FB = 0x7FFFFFFF } XrBodyJointFB; typedef enum XrBodyJointSetFB { XR_BODY_JOINT_SET_DEFAULT_FB = 0, XR_BODY_JOINT_SET_FULL_BODY_META = 1000274000, XR_BODY_JOINT_SET_MAX_ENUM_FB = 0x7FFFFFFF } XrBodyJointSetFB; typedef struct XrBodyJointLocationFB { XrSpaceLocationFlags locationFlags; XrPosef pose; } XrBodyJointLocationFB; // XrSystemBodyTrackingPropertiesFB extends XrSystemProperties typedef struct XrSystemBodyTrackingPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsBodyTracking; } XrSystemBodyTrackingPropertiesFB; typedef struct XrBodyTrackerCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrBodyJointSetFB bodyJointSet; } XrBodyTrackerCreateInfoFB; typedef struct XrBodySkeletonJointFB { int32_t joint; int32_t parentJoint; XrPosef pose; } XrBodySkeletonJointFB; typedef struct XrBodySkeletonFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t jointCount; XrBodySkeletonJointFB* joints; } XrBodySkeletonFB; typedef struct XrBodyJointsLocateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; } XrBodyJointsLocateInfoFB; typedef struct XrBodyJointLocationsFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isActive; float confidence; uint32_t jointCount; XrBodyJointLocationFB* jointLocations; uint32_t skeletonChangedCount; XrTime time; } XrBodyJointLocationsFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerFB)(XrSession session, const XrBodyTrackerCreateInfoFB* createInfo, XrBodyTrackerFB* bodyTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerFB)(XrBodyTrackerFB bodyTracker); typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsFB)(XrBodyTrackerFB bodyTracker, const XrBodyJointsLocateInfoFB* locateInfo, XrBodyJointLocationsFB* locations); typedef XrResult (XRAPI_PTR *PFN_xrGetBodySkeletonFB)(XrBodyTrackerFB bodyTracker, XrBodySkeletonFB* skeleton); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerFB( XrSession session, const XrBodyTrackerCreateInfoFB* createInfo, XrBodyTrackerFB* bodyTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerFB( XrBodyTrackerFB bodyTracker); XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsFB( XrBodyTrackerFB bodyTracker, const XrBodyJointsLocateInfoFB* locateInfo, XrBodyJointLocationsFB* locations); XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonFB( XrBodyTrackerFB bodyTracker, XrBodySkeletonFB* skeleton); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_dpad_binding is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_dpad_binding 1 #define XR_EXT_dpad_binding_SPEC_VERSION 1 #define XR_EXT_DPAD_BINDING_EXTENSION_NAME "XR_EXT_dpad_binding" typedef struct XrInteractionProfileDpadBindingEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrPath binding; XrActionSet actionSet; float forceThreshold; float forceThresholdReleased; float centerRegion; float wedgeAngle; XrBool32 isSticky; const XrHapticBaseHeader* onHaptic; const XrHapticBaseHeader* offHaptic; } XrInteractionProfileDpadBindingEXT; // XR_VALVE_analog_threshold is a preprocessor guard. Do not pass it to API calls. #define XR_VALVE_analog_threshold 1 #define XR_VALVE_analog_threshold_SPEC_VERSION 2 #define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME "XR_VALVE_analog_threshold" typedef struct XrInteractionProfileAnalogThresholdVALVE { XrStructureType type; const void* XR_MAY_ALIAS next; XrAction action; XrPath binding; float onThreshold; float offThreshold; const XrHapticBaseHeader* onHaptic; const XrHapticBaseHeader* offHaptic; } XrInteractionProfileAnalogThresholdVALVE; // XR_EXT_hand_joints_motion_range is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_hand_joints_motion_range 1 #define XR_EXT_hand_joints_motion_range_SPEC_VERSION 1 #define XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME "XR_EXT_hand_joints_motion_range" typedef enum XrHandJointsMotionRangeEXT { XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT = 1, XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_EXT = 2, XR_HAND_JOINTS_MOTION_RANGE_MAX_ENUM_EXT = 0x7FFFFFFF } XrHandJointsMotionRangeEXT; // XrHandJointsMotionRangeInfoEXT extends XrHandJointsLocateInfoEXT typedef struct XrHandJointsMotionRangeInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrHandJointsMotionRangeEXT handJointsMotionRange; } XrHandJointsMotionRangeInfoEXT; // XR_EXT_samsung_odyssey_controller is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_samsung_odyssey_controller 1 #define XR_EXT_samsung_odyssey_controller_SPEC_VERSION 1 #define XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME "XR_EXT_samsung_odyssey_controller" // XR_EXT_hp_mixed_reality_controller is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_hp_mixed_reality_controller 1 #define XR_EXT_hp_mixed_reality_controller_SPEC_VERSION 1 #define XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME "XR_EXT_hp_mixed_reality_controller" // XR_MND_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls. #define XR_MND_swapchain_usage_input_attachment_bit 1 #define XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION 2 #define XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_MND_swapchain_usage_input_attachment_bit" // XR_MSFT_scene_understanding is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_scene_understanding 1 XR_DEFINE_HANDLE(XrSceneMSFT) XR_DEFINE_HANDLE(XrSceneObserverMSFT) #define XR_MSFT_scene_understanding_SPEC_VERSION 2 #define XR_MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME "XR_MSFT_scene_understanding" typedef enum XrSceneComputeFeatureMSFT { XR_SCENE_COMPUTE_FEATURE_PLANE_MSFT = 1, XR_SCENE_COMPUTE_FEATURE_PLANE_MESH_MSFT = 2, XR_SCENE_COMPUTE_FEATURE_VISUAL_MESH_MSFT = 3, XR_SCENE_COMPUTE_FEATURE_COLLIDER_MESH_MSFT = 4, XR_SCENE_COMPUTE_FEATURE_SERIALIZE_SCENE_MSFT = 1000098000, XR_SCENE_COMPUTE_FEATURE_MARKER_MSFT = 1000147000, XR_SCENE_COMPUTE_FEATURE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneComputeFeatureMSFT; typedef enum XrSceneComputeConsistencyMSFT { XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_COMPLETE_MSFT = 1, XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_INCOMPLETE_FAST_MSFT = 2, XR_SCENE_COMPUTE_CONSISTENCY_OCCLUSION_OPTIMIZED_MSFT = 3, XR_SCENE_COMPUTE_CONSISTENCY_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneComputeConsistencyMSFT; typedef enum XrMeshComputeLodMSFT { XR_MESH_COMPUTE_LOD_COARSE_MSFT = 1, XR_MESH_COMPUTE_LOD_MEDIUM_MSFT = 2, XR_MESH_COMPUTE_LOD_FINE_MSFT = 3, XR_MESH_COMPUTE_LOD_UNLIMITED_MSFT = 4, XR_MESH_COMPUTE_LOD_MAX_ENUM_MSFT = 0x7FFFFFFF } XrMeshComputeLodMSFT; typedef enum XrSceneComponentTypeMSFT { XR_SCENE_COMPONENT_TYPE_INVALID_MSFT = -1, XR_SCENE_COMPONENT_TYPE_OBJECT_MSFT = 1, XR_SCENE_COMPONENT_TYPE_PLANE_MSFT = 2, XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT = 3, XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT = 4, XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT = 1000098000, XR_SCENE_COMPONENT_TYPE_MARKER_MSFT = 1000147000, XR_SCENE_COMPONENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneComponentTypeMSFT; typedef enum XrSceneObjectTypeMSFT { XR_SCENE_OBJECT_TYPE_UNCATEGORIZED_MSFT = -1, XR_SCENE_OBJECT_TYPE_BACKGROUND_MSFT = 1, XR_SCENE_OBJECT_TYPE_WALL_MSFT = 2, XR_SCENE_OBJECT_TYPE_FLOOR_MSFT = 3, XR_SCENE_OBJECT_TYPE_CEILING_MSFT = 4, XR_SCENE_OBJECT_TYPE_PLATFORM_MSFT = 5, XR_SCENE_OBJECT_TYPE_INFERRED_MSFT = 6, XR_SCENE_OBJECT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneObjectTypeMSFT; typedef enum XrScenePlaneAlignmentTypeMSFT { XR_SCENE_PLANE_ALIGNMENT_TYPE_NON_ORTHOGONAL_MSFT = 0, XR_SCENE_PLANE_ALIGNMENT_TYPE_HORIZONTAL_MSFT = 1, XR_SCENE_PLANE_ALIGNMENT_TYPE_VERTICAL_MSFT = 2, XR_SCENE_PLANE_ALIGNMENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrScenePlaneAlignmentTypeMSFT; typedef enum XrSceneComputeStateMSFT { XR_SCENE_COMPUTE_STATE_NONE_MSFT = 0, XR_SCENE_COMPUTE_STATE_UPDATING_MSFT = 1, XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT = 2, XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT = 3, XR_SCENE_COMPUTE_STATE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneComputeStateMSFT; typedef struct XrUuidMSFT { uint8_t bytes[16]; } XrUuidMSFT; typedef struct XrSceneObserverCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSceneObserverCreateInfoMSFT; typedef struct XrSceneCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSceneCreateInfoMSFT; typedef struct XrSceneSphereBoundMSFT { XrVector3f center; float radius; } XrSceneSphereBoundMSFT; typedef struct XrSceneOrientedBoxBoundMSFT { XrPosef pose; XrVector3f extents; } XrSceneOrientedBoxBoundMSFT; typedef struct XrSceneFrustumBoundMSFT { XrPosef pose; XrFovf fov; float farDistance; } XrSceneFrustumBoundMSFT; typedef struct XrSceneBoundsMSFT { XrSpace space; XrTime time; uint32_t sphereCount; const XrSceneSphereBoundMSFT* spheres; uint32_t boxCount; const XrSceneOrientedBoxBoundMSFT* boxes; uint32_t frustumCount; const XrSceneFrustumBoundMSFT* frustums; } XrSceneBoundsMSFT; typedef struct XrNewSceneComputeInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t requestedFeatureCount; const XrSceneComputeFeatureMSFT* requestedFeatures; XrSceneComputeConsistencyMSFT consistency; XrSceneBoundsMSFT bounds; } XrNewSceneComputeInfoMSFT; // XrVisualMeshComputeLodInfoMSFT extends XrNewSceneComputeInfoMSFT typedef struct XrVisualMeshComputeLodInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrMeshComputeLodMSFT lod; } XrVisualMeshComputeLodInfoMSFT; typedef struct XrSceneComponentMSFT { XrSceneComponentTypeMSFT componentType; XrUuidMSFT id; XrUuidMSFT parentId; XrTime updateTime; } XrSceneComponentMSFT; typedef struct XrSceneComponentsMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t componentCapacityInput; uint32_t componentCountOutput; XrSceneComponentMSFT* components; } XrSceneComponentsMSFT; typedef struct XrSceneComponentsGetInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSceneComponentTypeMSFT componentType; } XrSceneComponentsGetInfoMSFT; typedef struct XrSceneComponentLocationMSFT { XrSpaceLocationFlags flags; XrPosef pose; } XrSceneComponentLocationMSFT; typedef struct XrSceneComponentLocationsMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t locationCount; XrSceneComponentLocationMSFT* locations; } XrSceneComponentLocationsMSFT; typedef struct XrSceneComponentsLocateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; uint32_t componentIdCount; const XrUuidMSFT* componentIds; } XrSceneComponentsLocateInfoMSFT; typedef struct XrSceneObjectMSFT { XrSceneObjectTypeMSFT objectType; } XrSceneObjectMSFT; // XrSceneObjectsMSFT extends XrSceneComponentsMSFT typedef struct XrSceneObjectsMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t sceneObjectCount; XrSceneObjectMSFT* sceneObjects; } XrSceneObjectsMSFT; // XrSceneComponentParentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT typedef struct XrSceneComponentParentFilterInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidMSFT parentId; } XrSceneComponentParentFilterInfoMSFT; // XrSceneObjectTypesFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT typedef struct XrSceneObjectTypesFilterInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t objectTypeCount; const XrSceneObjectTypeMSFT* objectTypes; } XrSceneObjectTypesFilterInfoMSFT; typedef struct XrScenePlaneMSFT { XrScenePlaneAlignmentTypeMSFT alignment; XrExtent2Df size; uint64_t meshBufferId; XrBool32 supportsIndicesUint16; } XrScenePlaneMSFT; // XrScenePlanesMSFT extends XrSceneComponentsMSFT typedef struct XrScenePlanesMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t scenePlaneCount; XrScenePlaneMSFT* scenePlanes; } XrScenePlanesMSFT; // XrScenePlaneAlignmentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT typedef struct XrScenePlaneAlignmentFilterInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t alignmentCount; const XrScenePlaneAlignmentTypeMSFT* alignments; } XrScenePlaneAlignmentFilterInfoMSFT; typedef struct XrSceneMeshMSFT { uint64_t meshBufferId; XrBool32 supportsIndicesUint16; } XrSceneMeshMSFT; // XrSceneMeshesMSFT extends XrSceneComponentsMSFT typedef struct XrSceneMeshesMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t sceneMeshCount; XrSceneMeshMSFT* sceneMeshes; } XrSceneMeshesMSFT; typedef struct XrSceneMeshBuffersGetInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint64_t meshBufferId; } XrSceneMeshBuffersGetInfoMSFT; typedef struct XrSceneMeshBuffersMSFT { XrStructureType type; void* XR_MAY_ALIAS next; } XrSceneMeshBuffersMSFT; // XrSceneMeshVertexBufferMSFT extends XrSceneMeshBuffersMSFT typedef struct XrSceneMeshVertexBufferMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertices; } XrSceneMeshVertexBufferMSFT; // XrSceneMeshIndicesUint32MSFT extends XrSceneMeshBuffersMSFT typedef struct XrSceneMeshIndicesUint32MSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrSceneMeshIndicesUint32MSFT; // XrSceneMeshIndicesUint16MSFT extends XrSceneMeshBuffersMSFT typedef struct XrSceneMeshIndicesUint16MSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint16_t* indices; } XrSceneMeshIndicesUint16MSFT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSceneComputeFeaturesMSFT)(XrInstance instance, XrSystemId systemId, uint32_t featureCapacityInput, uint32_t* featureCountOutput, XrSceneComputeFeatureMSFT* features); typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneObserverMSFT)(XrSession session, const XrSceneObserverCreateInfoMSFT* createInfo, XrSceneObserverMSFT* sceneObserver); typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneObserverMSFT)(XrSceneObserverMSFT sceneObserver); typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrSceneCreateInfoMSFT* createInfo, XrSceneMSFT* scene); typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneMSFT)(XrSceneMSFT scene); typedef XrResult (XRAPI_PTR *PFN_xrComputeNewSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT* computeInfo); typedef XrResult (XRAPI_PTR *PFN_xrGetSceneComputeStateMSFT)(XrSceneObserverMSFT sceneObserver, XrSceneComputeStateMSFT* state); typedef XrResult (XRAPI_PTR *PFN_xrGetSceneComponentsMSFT)(XrSceneMSFT scene, const XrSceneComponentsGetInfoMSFT* getInfo, XrSceneComponentsMSFT* components); typedef XrResult (XRAPI_PTR *PFN_xrLocateSceneComponentsMSFT)(XrSceneMSFT scene, const XrSceneComponentsLocateInfoMSFT* locateInfo, XrSceneComponentLocationsMSFT* locations); typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMeshBuffersMSFT)(XrSceneMSFT scene, const XrSceneMeshBuffersGetInfoMSFT* getInfo, XrSceneMeshBuffersMSFT* buffers); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSceneComputeFeaturesMSFT( XrInstance instance, XrSystemId systemId, uint32_t featureCapacityInput, uint32_t* featureCountOutput, XrSceneComputeFeatureMSFT* features); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneObserverMSFT( XrSession session, const XrSceneObserverCreateInfoMSFT* createInfo, XrSceneObserverMSFT* sceneObserver); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneObserverMSFT( XrSceneObserverMSFT sceneObserver); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneMSFT( XrSceneObserverMSFT sceneObserver, const XrSceneCreateInfoMSFT* createInfo, XrSceneMSFT* scene); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneMSFT( XrSceneMSFT scene); XRAPI_ATTR XrResult XRAPI_CALL xrComputeNewSceneMSFT( XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT* computeInfo); XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneComputeStateMSFT( XrSceneObserverMSFT sceneObserver, XrSceneComputeStateMSFT* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneComponentsMSFT( XrSceneMSFT scene, const XrSceneComponentsGetInfoMSFT* getInfo, XrSceneComponentsMSFT* components); XRAPI_ATTR XrResult XRAPI_CALL xrLocateSceneComponentsMSFT( XrSceneMSFT scene, const XrSceneComponentsLocateInfoMSFT* locateInfo, XrSceneComponentLocationsMSFT* locations); XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMeshBuffersMSFT( XrSceneMSFT scene, const XrSceneMeshBuffersGetInfoMSFT* getInfo, XrSceneMeshBuffersMSFT* buffers); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_scene_understanding_serialization is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_scene_understanding_serialization 1 #define XR_MSFT_scene_understanding_serialization_SPEC_VERSION 2 #define XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME "XR_MSFT_scene_understanding_serialization" typedef struct XrSerializedSceneFragmentDataGetInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidMSFT sceneFragmentId; } XrSerializedSceneFragmentDataGetInfoMSFT; typedef struct XrDeserializeSceneFragmentMSFT { uint32_t bufferSize; const uint8_t* buffer; } XrDeserializeSceneFragmentMSFT; typedef struct XrSceneDeserializeInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t fragmentCount; const XrDeserializeSceneFragmentMSFT* fragments; } XrSceneDeserializeInfoMSFT; typedef XrResult (XRAPI_PTR *PFN_xrDeserializeSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT* deserializeInfo); typedef XrResult (XRAPI_PTR *PFN_xrGetSerializedSceneFragmentDataMSFT)(XrSceneMSFT scene, const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo, uint32_t countInput, uint32_t* readOutput, uint8_t* buffer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrDeserializeSceneMSFT( XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT* deserializeInfo); XRAPI_ATTR XrResult XRAPI_CALL xrGetSerializedSceneFragmentDataMSFT( XrSceneMSFT scene, const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo, uint32_t countInput, uint32_t* readOutput, uint8_t* buffer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_display_refresh_rate is a preprocessor guard. Do not pass it to API calls. #define XR_FB_display_refresh_rate 1 #define XR_FB_display_refresh_rate_SPEC_VERSION 1 #define XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME "XR_FB_display_refresh_rate" typedef struct XrEventDataDisplayRefreshRateChangedFB { XrStructureType type; const void* XR_MAY_ALIAS next; float fromDisplayRefreshRate; float toDisplayRefreshRate; } XrEventDataDisplayRefreshRateChangedFB; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateDisplayRefreshRatesFB)(XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t* displayRefreshRateCountOutput, float* displayRefreshRates); typedef XrResult (XRAPI_PTR *PFN_xrGetDisplayRefreshRateFB)(XrSession session, float* displayRefreshRate); typedef XrResult (XRAPI_PTR *PFN_xrRequestDisplayRefreshRateFB)(XrSession session, float displayRefreshRate); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB( XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t* displayRefreshRateCountOutput, float* displayRefreshRates); XRAPI_ATTR XrResult XRAPI_CALL xrGetDisplayRefreshRateFB( XrSession session, float* displayRefreshRate); XRAPI_ATTR XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB( XrSession session, float displayRefreshRate); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_vive_cosmos_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_vive_cosmos_controller_interaction 1 #define XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION 1 #define XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_cosmos_controller_interaction" // XR_HTCX_vive_tracker_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_HTCX_vive_tracker_interaction 1 #define XR_HTCX_vive_tracker_interaction_SPEC_VERSION 3 #define XR_HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTCX_vive_tracker_interaction" typedef struct XrViveTrackerPathsHTCX { XrStructureType type; void* XR_MAY_ALIAS next; XrPath persistentPath; XrPath rolePath; } XrViveTrackerPathsHTCX; typedef struct XrEventDataViveTrackerConnectedHTCX { XrStructureType type; const void* XR_MAY_ALIAS next; XrViveTrackerPathsHTCX* paths; } XrEventDataViveTrackerConnectedHTCX; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViveTrackerPathsHTCX)(XrInstance instance, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrViveTrackerPathsHTCX* paths); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViveTrackerPathsHTCX( XrInstance instance, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrViveTrackerPathsHTCX* paths); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_facial_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_facial_tracking 1 #define XR_FACIAL_EXPRESSION_EYE_COUNT_HTC 14 #define XR_FACIAL_EXPRESSION_LIP_COUNT_HTC 37 XR_DEFINE_HANDLE(XrFacialTrackerHTC) #define XR_HTC_facial_tracking_SPEC_VERSION 3 #define XR_HTC_FACIAL_TRACKING_EXTENSION_NAME "XR_HTC_facial_tracking" typedef enum XrEyeExpressionHTC { XR_EYE_EXPRESSION_LEFT_BLINK_HTC = 0, XR_EYE_EXPRESSION_LEFT_WIDE_HTC = 1, XR_EYE_EXPRESSION_RIGHT_BLINK_HTC = 2, XR_EYE_EXPRESSION_RIGHT_WIDE_HTC = 3, XR_EYE_EXPRESSION_LEFT_SQUEEZE_HTC = 4, XR_EYE_EXPRESSION_RIGHT_SQUEEZE_HTC = 5, XR_EYE_EXPRESSION_LEFT_DOWN_HTC = 6, XR_EYE_EXPRESSION_RIGHT_DOWN_HTC = 7, XR_EYE_EXPRESSION_LEFT_OUT_HTC = 8, XR_EYE_EXPRESSION_RIGHT_IN_HTC = 9, XR_EYE_EXPRESSION_LEFT_IN_HTC = 10, XR_EYE_EXPRESSION_RIGHT_OUT_HTC = 11, XR_EYE_EXPRESSION_LEFT_UP_HTC = 12, XR_EYE_EXPRESSION_RIGHT_UP_HTC = 13, XR_EYE_EXPRESSION_MAX_ENUM_HTC = 0x7FFFFFFF } XrEyeExpressionHTC; typedef enum XrLipExpressionHTC { XR_LIP_EXPRESSION_JAW_RIGHT_HTC = 0, XR_LIP_EXPRESSION_JAW_LEFT_HTC = 1, XR_LIP_EXPRESSION_JAW_FORWARD_HTC = 2, XR_LIP_EXPRESSION_JAW_OPEN_HTC = 3, XR_LIP_EXPRESSION_MOUTH_APE_SHAPE_HTC = 4, XR_LIP_EXPRESSION_MOUTH_UPPER_RIGHT_HTC = 5, XR_LIP_EXPRESSION_MOUTH_UPPER_LEFT_HTC = 6, XR_LIP_EXPRESSION_MOUTH_LOWER_RIGHT_HTC = 7, XR_LIP_EXPRESSION_MOUTH_LOWER_LEFT_HTC = 8, XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC = 9, XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC = 10, XR_LIP_EXPRESSION_MOUTH_POUT_HTC = 11, XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC = 12, XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC = 13, XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC = 14, XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC = 15, XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC = 16, XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC = 17, XR_LIP_EXPRESSION_CHEEK_SUCK_HTC = 18, XR_LIP_EXPRESSION_MOUTH_UPPER_UPRIGHT_HTC = 19, XR_LIP_EXPRESSION_MOUTH_UPPER_UPLEFT_HTC = 20, XR_LIP_EXPRESSION_MOUTH_LOWER_DOWNRIGHT_HTC = 21, XR_LIP_EXPRESSION_MOUTH_LOWER_DOWNLEFT_HTC = 22, XR_LIP_EXPRESSION_MOUTH_UPPER_INSIDE_HTC = 23, XR_LIP_EXPRESSION_MOUTH_LOWER_INSIDE_HTC = 24, XR_LIP_EXPRESSION_MOUTH_LOWER_OVERLAY_HTC = 25, XR_LIP_EXPRESSION_TONGUE_LONGSTEP1_HTC = 26, XR_LIP_EXPRESSION_TONGUE_LEFT_HTC = 27, XR_LIP_EXPRESSION_TONGUE_RIGHT_HTC = 28, XR_LIP_EXPRESSION_TONGUE_UP_HTC = 29, XR_LIP_EXPRESSION_TONGUE_DOWN_HTC = 30, XR_LIP_EXPRESSION_TONGUE_ROLL_HTC = 31, XR_LIP_EXPRESSION_TONGUE_LONGSTEP2_HTC = 32, XR_LIP_EXPRESSION_TONGUE_UPRIGHT_MORPH_HTC = 33, XR_LIP_EXPRESSION_TONGUE_UPLEFT_MORPH_HTC = 34, XR_LIP_EXPRESSION_TONGUE_DOWNRIGHT_MORPH_HTC = 35, XR_LIP_EXPRESSION_TONGUE_DOWNLEFT_MORPH_HTC = 36, XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC = XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC, XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC, XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC, XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC = XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC, XR_LIP_EXPRESSION_MAX_ENUM_HTC = 0x7FFFFFFF } XrLipExpressionHTC; typedef enum XrFacialTrackingTypeHTC { XR_FACIAL_TRACKING_TYPE_EYE_DEFAULT_HTC = 1, XR_FACIAL_TRACKING_TYPE_LIP_DEFAULT_HTC = 2, XR_FACIAL_TRACKING_TYPE_MAX_ENUM_HTC = 0x7FFFFFFF } XrFacialTrackingTypeHTC; // XrSystemFacialTrackingPropertiesHTC extends XrSystemProperties typedef struct XrSystemFacialTrackingPropertiesHTC { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportEyeFacialTracking; XrBool32 supportLipFacialTracking; } XrSystemFacialTrackingPropertiesHTC; typedef struct XrFacialExpressionsHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 isActive; XrTime sampleTime; uint32_t expressionCount; float* expressionWeightings; } XrFacialExpressionsHTC; typedef struct XrFacialTrackerCreateInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrFacialTrackingTypeHTC facialTrackingType; } XrFacialTrackerCreateInfoHTC; typedef XrResult (XRAPI_PTR *PFN_xrCreateFacialTrackerHTC)(XrSession session, const XrFacialTrackerCreateInfoHTC* createInfo, XrFacialTrackerHTC* facialTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFacialTrackerHTC)(XrFacialTrackerHTC facialTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetFacialExpressionsHTC)(XrFacialTrackerHTC facialTracker, XrFacialExpressionsHTC* facialExpressions); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateFacialTrackerHTC( XrSession session, const XrFacialTrackerCreateInfoHTC* createInfo, XrFacialTrackerHTC* facialTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFacialTrackerHTC( XrFacialTrackerHTC facialTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionsHTC( XrFacialTrackerHTC facialTracker, XrFacialExpressionsHTC* facialExpressions); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_vive_focus3_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_vive_focus3_controller_interaction 1 #define XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION 2 #define XR_HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_focus3_controller_interaction" // XR_HTC_hand_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_hand_interaction 1 #define XR_HTC_hand_interaction_SPEC_VERSION 1 #define XR_HTC_HAND_INTERACTION_EXTENSION_NAME "XR_HTC_hand_interaction" // XR_HTC_vive_wrist_tracker_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_vive_wrist_tracker_interaction 1 #define XR_HTC_vive_wrist_tracker_interaction_SPEC_VERSION 1 #define XR_HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_wrist_tracker_interaction" // XR_FB_color_space is a preprocessor guard. Do not pass it to API calls. #define XR_FB_color_space 1 #define XR_FB_color_space_SPEC_VERSION 3 #define XR_FB_COLOR_SPACE_EXTENSION_NAME "XR_FB_color_space" typedef enum XrColorSpaceFB { XR_COLOR_SPACE_UNMANAGED_FB = 0, XR_COLOR_SPACE_REC2020_FB = 1, XR_COLOR_SPACE_REC709_FB = 2, XR_COLOR_SPACE_RIFT_CV1_FB = 3, XR_COLOR_SPACE_RIFT_S_FB = 4, XR_COLOR_SPACE_QUEST_FB = 5, XR_COLOR_SPACE_P3_FB = 6, XR_COLOR_SPACE_ADOBE_RGB_FB = 7, XR_COLOR_SPACE_MAX_ENUM_FB = 0x7FFFFFFF } XrColorSpaceFB; // XrSystemColorSpacePropertiesFB extends XrSystemProperties typedef struct XrSystemColorSpacePropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrColorSpaceFB colorSpace; } XrSystemColorSpacePropertiesFB; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesFB)(XrSession session, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceFB* colorSpaces); typedef XrResult (XRAPI_PTR *PFN_xrSetColorSpaceFB)(XrSession session, const XrColorSpaceFB colorSpace); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateColorSpacesFB( XrSession session, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceFB* colorSpaces); XRAPI_ATTR XrResult XRAPI_CALL xrSetColorSpaceFB( XrSession session, const XrColorSpaceFB colorSpace); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_FB_hand_tracking_mesh 1 #define XR_FB_hand_tracking_mesh_SPEC_VERSION 3 #define XR_FB_HAND_TRACKING_MESH_EXTENSION_NAME "XR_FB_hand_tracking_mesh" typedef struct XrVector4sFB { int16_t x; int16_t y; int16_t z; int16_t w; } XrVector4sFB; typedef struct XrHandTrackingMeshFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t jointCapacityInput; uint32_t jointCountOutput; XrPosef* jointBindPoses; float* jointRadii; XrHandJointEXT* jointParents; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertexPositions; XrVector3f* vertexNormals; XrVector2f* vertexUVs; XrVector4sFB* vertexBlendIndices; XrVector4f* vertexBlendWeights; uint32_t indexCapacityInput; uint32_t indexCountOutput; int16_t* indices; } XrHandTrackingMeshFB; // XrHandTrackingScaleFB extends XrHandJointLocationsEXT typedef struct XrHandTrackingScaleFB { XrStructureType type; void* XR_MAY_ALIAS next; float sensorOutput; float currentOutput; XrBool32 overrideHandScale; float overrideValueInput; } XrHandTrackingScaleFB; typedef XrResult (XRAPI_PTR *PFN_xrGetHandMeshFB)(XrHandTrackerEXT handTracker, XrHandTrackingMeshFB* mesh); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetHandMeshFB( XrHandTrackerEXT handTracker, XrHandTrackingMeshFB* mesh); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_hand_tracking_aim is a preprocessor guard. Do not pass it to API calls. #define XR_FB_hand_tracking_aim 1 #define XR_FB_hand_tracking_aim_SPEC_VERSION 2 #define XR_FB_HAND_TRACKING_AIM_EXTENSION_NAME "XR_FB_hand_tracking_aim" typedef XrFlags64 XrHandTrackingAimFlagsFB; // Flag bits for XrHandTrackingAimFlagsFB static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_COMPUTED_BIT_FB = 0x00000001; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_VALID_BIT_FB = 0x00000002; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_INDEX_PINCHING_BIT_FB = 0x00000004; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MIDDLE_PINCHING_BIT_FB = 0x00000008; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_RING_PINCHING_BIT_FB = 0x00000010; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_LITTLE_PINCHING_BIT_FB = 0x00000020; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_SYSTEM_GESTURE_BIT_FB = 0x00000040; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_DOMINANT_HAND_BIT_FB = 0x00000080; static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MENU_PRESSED_BIT_FB = 0x00000100; // XrHandTrackingAimStateFB extends XrHandJointLocationsEXT typedef struct XrHandTrackingAimStateFB { XrStructureType type; void* XR_MAY_ALIAS next; XrHandTrackingAimFlagsFB status; XrPosef aimPose; float pinchStrengthIndex; float pinchStrengthMiddle; float pinchStrengthRing; float pinchStrengthLittle; } XrHandTrackingAimStateFB; // XR_FB_hand_tracking_capsules is a preprocessor guard. Do not pass it to API calls. #define XR_FB_hand_tracking_capsules 1 #define XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB 2 #define XR_HAND_TRACKING_CAPSULE_COUNT_FB 19 #define XR_FB_hand_tracking_capsules_SPEC_VERSION 3 #define XR_FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME "XR_FB_hand_tracking_capsules" #define XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB #define XR_FB_HAND_TRACKING_CAPSULE_COUNT XR_HAND_TRACKING_CAPSULE_COUNT_FB typedef struct XrHandCapsuleFB { XrVector3f points[XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB]; float radius; XrHandJointEXT joint; } XrHandCapsuleFB; // XrHandTrackingCapsulesStateFB extends XrHandJointLocationsEXT typedef struct XrHandTrackingCapsulesStateFB { XrStructureType type; void* XR_MAY_ALIAS next; XrHandCapsuleFB capsules[XR_HAND_TRACKING_CAPSULE_COUNT_FB]; } XrHandTrackingCapsulesStateFB; // XR_FB_spatial_entity is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity 1 XR_DEFINE_ATOM(XrAsyncRequestIdFB) #define XR_FB_spatial_entity_SPEC_VERSION 3 #define XR_FB_SPATIAL_ENTITY_EXTENSION_NAME "XR_FB_spatial_entity" typedef enum XrSpaceComponentTypeFB { XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB = 0, XR_SPACE_COMPONENT_TYPE_STORABLE_FB = 1, XR_SPACE_COMPONENT_TYPE_SHARABLE_FB = 2, XR_SPACE_COMPONENT_TYPE_BOUNDED_2D_FB = 3, XR_SPACE_COMPONENT_TYPE_BOUNDED_3D_FB = 4, XR_SPACE_COMPONENT_TYPE_SEMANTIC_LABELS_FB = 5, XR_SPACE_COMPONENT_TYPE_ROOM_LAYOUT_FB = 6, XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB = 7, XR_SPACE_COMPONENT_TYPE_TRIANGLE_MESH_META = 1000269000, XR_SPACE_COMPONENT_TYPE_ROOM_MESH_META = 1000553000, XR_SPACE_COMPONENT_TYPE_MAX_ENUM_FB = 0x7FFFFFFF } XrSpaceComponentTypeFB; // XrSystemSpatialEntityPropertiesFB extends XrSystemProperties typedef struct XrSystemSpatialEntityPropertiesFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 supportsSpatialEntity; } XrSystemSpatialEntityPropertiesFB; typedef struct XrSpatialAnchorCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrPosef poseInSpace; XrTime time; } XrSpatialAnchorCreateInfoFB; typedef struct XrSpaceComponentStatusSetInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpaceComponentTypeFB componentType; XrBool32 enabled; XrDuration timeout; } XrSpaceComponentStatusSetInfoFB; typedef struct XrSpaceComponentStatusFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 enabled; XrBool32 changePending; } XrSpaceComponentStatusFB; typedef XrUuid XrUuidEXT; typedef struct XrEventDataSpatialAnchorCreateCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; XrSpace space; XrUuidEXT uuid; } XrEventDataSpatialAnchorCreateCompleteFB; typedef struct XrEventDataSpaceSetStatusCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; XrSpace space; XrUuidEXT uuid; XrSpaceComponentTypeFB componentType; XrBool32 enabled; } XrEventDataSpaceSetStatusCompleteFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFB)(XrSession session, const XrSpatialAnchorCreateInfoFB* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUuidFB)(XrSpace space, XrUuidEXT* uuid); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpaceSupportedComponentsFB)(XrSpace space, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpaceComponentTypeFB* componentTypes); typedef XrResult (XRAPI_PTR *PFN_xrSetSpaceComponentStatusFB)(XrSpace space, const XrSpaceComponentStatusSetInfoFB* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceComponentStatusFB)(XrSpace space, XrSpaceComponentTypeFB componentType, XrSpaceComponentStatusFB* status); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFB( XrSession session, const XrSpatialAnchorCreateInfoFB* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUuidFB( XrSpace space, XrUuidEXT* uuid); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpaceSupportedComponentsFB( XrSpace space, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpaceComponentTypeFB* componentTypes); XRAPI_ATTR XrResult XRAPI_CALL xrSetSpaceComponentStatusFB( XrSpace space, const XrSpaceComponentStatusSetInfoFB* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceComponentStatusFB( XrSpace space, XrSpaceComponentTypeFB componentType, XrSpaceComponentStatusFB* status); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_foveation is a preprocessor guard. Do not pass it to API calls. #define XR_FB_foveation 1 XR_DEFINE_HANDLE(XrFoveationProfileFB) #define XR_FB_foveation_SPEC_VERSION 1 #define XR_FB_FOVEATION_EXTENSION_NAME "XR_FB_foveation" typedef XrFlags64 XrSwapchainCreateFoveationFlagsFB; // Flag bits for XrSwapchainCreateFoveationFlagsFB static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB = 0x00000001; static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB = 0x00000002; typedef XrFlags64 XrSwapchainStateFoveationFlagsFB; // Flag bits for XrSwapchainStateFoveationFlagsFB typedef struct XrFoveationProfileCreateInfoFB { XrStructureType type; void* XR_MAY_ALIAS next; } XrFoveationProfileCreateInfoFB; // XrSwapchainCreateInfoFoveationFB extends XrSwapchainCreateInfo typedef struct XrSwapchainCreateInfoFoveationFB { XrStructureType type; void* XR_MAY_ALIAS next; XrSwapchainCreateFoveationFlagsFB flags; } XrSwapchainCreateInfoFoveationFB; typedef struct XrSwapchainStateFoveationFB { XrStructureType type; void* XR_MAY_ALIAS next; XrSwapchainStateFoveationFlagsFB flags; XrFoveationProfileFB profile; } XrSwapchainStateFoveationFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateFoveationProfileFB)(XrSession session, const XrFoveationProfileCreateInfoFB* createInfo, XrFoveationProfileFB* profile); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFoveationProfileFB)(XrFoveationProfileFB profile); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateFoveationProfileFB( XrSession session, const XrFoveationProfileCreateInfoFB* createInfo, XrFoveationProfileFB* profile); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFoveationProfileFB( XrFoveationProfileFB profile); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_foveation_configuration is a preprocessor guard. Do not pass it to API calls. #define XR_FB_foveation_configuration 1 #define XR_FB_foveation_configuration_SPEC_VERSION 1 #define XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME "XR_FB_foveation_configuration" typedef enum XrFoveationLevelFB { XR_FOVEATION_LEVEL_NONE_FB = 0, XR_FOVEATION_LEVEL_LOW_FB = 1, XR_FOVEATION_LEVEL_MEDIUM_FB = 2, XR_FOVEATION_LEVEL_HIGH_FB = 3, XR_FOVEATION_LEVEL_MAX_ENUM_FB = 0x7FFFFFFF } XrFoveationLevelFB; typedef enum XrFoveationDynamicFB { XR_FOVEATION_DYNAMIC_DISABLED_FB = 0, XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB = 1, XR_FOVEATION_DYNAMIC_MAX_ENUM_FB = 0x7FFFFFFF } XrFoveationDynamicFB; // XrFoveationLevelProfileCreateInfoFB extends XrFoveationProfileCreateInfoFB typedef struct XrFoveationLevelProfileCreateInfoFB { XrStructureType type; void* XR_MAY_ALIAS next; XrFoveationLevelFB level; float verticalOffset; XrFoveationDynamicFB dynamic; } XrFoveationLevelProfileCreateInfoFB; // XR_FB_keyboard_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_FB_keyboard_tracking 1 #define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB 128 #define XR_FB_keyboard_tracking_SPEC_VERSION 1 #define XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME "XR_FB_keyboard_tracking" typedef XrFlags64 XrKeyboardTrackingFlagsFB; // Flag bits for XrKeyboardTrackingFlagsFB static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_EXISTS_BIT_FB = 0x00000001; static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_LOCAL_BIT_FB = 0x00000002; static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_REMOTE_BIT_FB = 0x00000004; static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_CONNECTED_BIT_FB = 0x00000008; typedef XrFlags64 XrKeyboardTrackingQueryFlagsFB; // Flag bits for XrKeyboardTrackingQueryFlagsFB static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB = 0x00000002; static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB = 0x00000004; // XrSystemKeyboardTrackingPropertiesFB extends XrSystemProperties typedef struct XrSystemKeyboardTrackingPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsKeyboardTracking; } XrSystemKeyboardTrackingPropertiesFB; typedef struct XrKeyboardTrackingDescriptionFB { uint64_t trackedKeyboardId; XrVector3f size; XrKeyboardTrackingFlagsFB flags; char name[XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB]; } XrKeyboardTrackingDescriptionFB; typedef struct XrKeyboardSpaceCreateInfoFB { XrStructureType type; void* XR_MAY_ALIAS next; uint64_t trackedKeyboardId; } XrKeyboardSpaceCreateInfoFB; typedef struct XrKeyboardTrackingQueryFB { XrStructureType type; void* XR_MAY_ALIAS next; XrKeyboardTrackingQueryFlagsFB flags; } XrKeyboardTrackingQueryFB; typedef XrResult (XRAPI_PTR *PFN_xrQuerySystemTrackedKeyboardFB)(XrSession session, const XrKeyboardTrackingQueryFB* queryInfo, XrKeyboardTrackingDescriptionFB* keyboard); typedef XrResult (XRAPI_PTR *PFN_xrCreateKeyboardSpaceFB)(XrSession session, const XrKeyboardSpaceCreateInfoFB* createInfo, XrSpace* keyboardSpace); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrQuerySystemTrackedKeyboardFB( XrSession session, const XrKeyboardTrackingQueryFB* queryInfo, XrKeyboardTrackingDescriptionFB* keyboard); XRAPI_ATTR XrResult XRAPI_CALL xrCreateKeyboardSpaceFB( XrSession session, const XrKeyboardSpaceCreateInfoFB* createInfo, XrSpace* keyboardSpace); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_triangle_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_FB_triangle_mesh 1 XR_DEFINE_HANDLE(XrTriangleMeshFB) #define XR_FB_triangle_mesh_SPEC_VERSION 2 #define XR_FB_TRIANGLE_MESH_EXTENSION_NAME "XR_FB_triangle_mesh" typedef enum XrWindingOrderFB { XR_WINDING_ORDER_UNKNOWN_FB = 0, XR_WINDING_ORDER_CW_FB = 1, XR_WINDING_ORDER_CCW_FB = 2, XR_WINDING_ORDER_MAX_ENUM_FB = 0x7FFFFFFF } XrWindingOrderFB; typedef XrFlags64 XrTriangleMeshFlagsFB; // Flag bits for XrTriangleMeshFlagsFB static const XrTriangleMeshFlagsFB XR_TRIANGLE_MESH_MUTABLE_BIT_FB = 0x00000001; typedef struct XrTriangleMeshCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrTriangleMeshFlagsFB flags; XrWindingOrderFB windingOrder; uint32_t vertexCount; const XrVector3f* vertexBuffer; uint32_t triangleCount; const uint32_t* indexBuffer; } XrTriangleMeshCreateInfoFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateTriangleMeshFB)(XrSession session, const XrTriangleMeshCreateInfoFB* createInfo, XrTriangleMeshFB* outTriangleMesh); typedef XrResult (XRAPI_PTR *PFN_xrDestroyTriangleMeshFB)(XrTriangleMeshFB mesh); typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshGetVertexBufferFB)(XrTriangleMeshFB mesh, XrVector3f** outVertexBuffer); typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshGetIndexBufferFB)(XrTriangleMeshFB mesh, uint32_t** outIndexBuffer); typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshBeginUpdateFB)(XrTriangleMeshFB mesh); typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshEndUpdateFB)(XrTriangleMeshFB mesh, uint32_t vertexCount, uint32_t triangleCount); typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshBeginVertexBufferUpdateFB)(XrTriangleMeshFB mesh, uint32_t* outVertexCount); typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshEndVertexBufferUpdateFB)(XrTriangleMeshFB mesh); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateTriangleMeshFB( XrSession session, const XrTriangleMeshCreateInfoFB* createInfo, XrTriangleMeshFB* outTriangleMesh); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyTriangleMeshFB( XrTriangleMeshFB mesh); XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetVertexBufferFB( XrTriangleMeshFB mesh, XrVector3f** outVertexBuffer); XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetIndexBufferFB( XrTriangleMeshFB mesh, uint32_t** outIndexBuffer); XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginUpdateFB( XrTriangleMeshFB mesh); XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndUpdateFB( XrTriangleMeshFB mesh, uint32_t vertexCount, uint32_t triangleCount); XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginVertexBufferUpdateFB( XrTriangleMeshFB mesh, uint32_t* outVertexCount); XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndVertexBufferUpdateFB( XrTriangleMeshFB mesh); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_passthrough is a preprocessor guard. Do not pass it to API calls. #define XR_FB_passthrough 1 XR_DEFINE_HANDLE(XrPassthroughFB) XR_DEFINE_HANDLE(XrPassthroughLayerFB) XR_DEFINE_HANDLE(XrGeometryInstanceFB) #define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256 #define XR_FB_passthrough_SPEC_VERSION 5 #define XR_FB_PASSTHROUGH_EXTENSION_NAME "XR_FB_passthrough" typedef enum XrPassthroughLayerPurposeFB { XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB = 0, XR_PASSTHROUGH_LAYER_PURPOSE_PROJECTED_FB = 1, XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_HANDS_FB = 1000203001, XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_MASKED_HANDS_FB = 1000203002, XR_PASSTHROUGH_LAYER_PURPOSE_MAX_ENUM_FB = 0x7FFFFFFF } XrPassthroughLayerPurposeFB; typedef XrFlags64 XrPassthroughCapabilityFlagsFB; // Flag bits for XrPassthroughCapabilityFlagsFB static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_BIT_FB = 0x00000001; static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB = 0x00000002; static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB = 0x00000004; typedef XrFlags64 XrPassthroughFlagsFB; // Flag bits for XrPassthroughFlagsFB static const XrPassthroughFlagsFB XR_PASSTHROUGH_IS_RUNNING_AT_CREATION_BIT_FB = 0x00000001; static const XrPassthroughFlagsFB XR_PASSTHROUGH_LAYER_DEPTH_BIT_FB = 0x00000002; typedef XrFlags64 XrPassthroughStateChangedFlagsFB; // Flag bits for XrPassthroughStateChangedFlagsFB static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_REINIT_REQUIRED_BIT_FB = 0x00000001; static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_NON_RECOVERABLE_ERROR_BIT_FB = 0x00000002; static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RECOVERABLE_ERROR_BIT_FB = 0x00000004; static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RESTORED_ERROR_BIT_FB = 0x00000008; // XrSystemPassthroughPropertiesFB extends XrSystemProperties typedef struct XrSystemPassthroughPropertiesFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 supportsPassthrough; } XrSystemPassthroughPropertiesFB; // XrSystemPassthroughProperties2FB extends XrSystemProperties typedef struct XrSystemPassthroughProperties2FB { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughCapabilityFlagsFB capabilities; } XrSystemPassthroughProperties2FB; typedef struct XrPassthroughCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughFlagsFB flags; } XrPassthroughCreateInfoFB; typedef struct XrPassthroughLayerCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughFB passthrough; XrPassthroughFlagsFB flags; XrPassthroughLayerPurposeFB purpose; } XrPassthroughLayerCreateInfoFB; typedef struct XrCompositionLayerPassthroughFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags flags; XrSpace space; XrPassthroughLayerFB layerHandle; } XrCompositionLayerPassthroughFB; typedef struct XrGeometryInstanceCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughLayerFB layer; XrTriangleMeshFB mesh; XrSpace baseSpace; XrPosef pose; XrVector3f scale; } XrGeometryInstanceCreateInfoFB; typedef struct XrGeometryInstanceTransformFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; XrPosef pose; XrVector3f scale; } XrGeometryInstanceTransformFB; typedef struct XrPassthroughStyleFB { XrStructureType type; const void* XR_MAY_ALIAS next; float textureOpacityFactor; XrColor4f edgeColor; } XrPassthroughStyleFB; // XrPassthroughColorMapMonoToRgbaFB extends XrPassthroughStyleFB typedef struct XrPassthroughColorMapMonoToRgbaFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrColor4f textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB]; } XrPassthroughColorMapMonoToRgbaFB; // XrPassthroughColorMapMonoToMonoFB extends XrPassthroughStyleFB typedef struct XrPassthroughColorMapMonoToMonoFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint8_t textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB]; } XrPassthroughColorMapMonoToMonoFB; // XrPassthroughBrightnessContrastSaturationFB extends XrPassthroughStyleFB typedef struct XrPassthroughBrightnessContrastSaturationFB { XrStructureType type; const void* XR_MAY_ALIAS next; float brightness; float contrast; float saturation; } XrPassthroughBrightnessContrastSaturationFB; typedef struct XrEventDataPassthroughStateChangedFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughStateChangedFlagsFB flags; } XrEventDataPassthroughStateChangedFB; typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughFB)(XrSession session, const XrPassthroughCreateInfoFB* createInfo, XrPassthroughFB* outPassthrough); typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughFB)(XrPassthroughFB passthrough); typedef XrResult (XRAPI_PTR *PFN_xrPassthroughStartFB)(XrPassthroughFB passthrough); typedef XrResult (XRAPI_PTR *PFN_xrPassthroughPauseFB)(XrPassthroughFB passthrough); typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughLayerFB)(XrSession session, const XrPassthroughLayerCreateInfoFB* createInfo, XrPassthroughLayerFB* outLayer); typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughLayerFB)(XrPassthroughLayerFB layer); typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerPauseFB)(XrPassthroughLayerFB layer); typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerResumeFB)(XrPassthroughLayerFB layer); typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerSetStyleFB)(XrPassthroughLayerFB layer, const XrPassthroughStyleFB* style); typedef XrResult (XRAPI_PTR *PFN_xrCreateGeometryInstanceFB)(XrSession session, const XrGeometryInstanceCreateInfoFB* createInfo, XrGeometryInstanceFB* outGeometryInstance); typedef XrResult (XRAPI_PTR *PFN_xrDestroyGeometryInstanceFB)(XrGeometryInstanceFB instance); typedef XrResult (XRAPI_PTR *PFN_xrGeometryInstanceSetTransformFB)(XrGeometryInstanceFB instance, const XrGeometryInstanceTransformFB* transformation); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughFB( XrSession session, const XrPassthroughCreateInfoFB* createInfo, XrPassthroughFB* outPassthrough); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughFB( XrPassthroughFB passthrough); XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughStartFB( XrPassthroughFB passthrough); XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughPauseFB( XrPassthroughFB passthrough); XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughLayerFB( XrSession session, const XrPassthroughLayerCreateInfoFB* createInfo, XrPassthroughLayerFB* outLayer); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughLayerFB( XrPassthroughLayerFB layer); XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerPauseFB( XrPassthroughLayerFB layer); XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerResumeFB( XrPassthroughLayerFB layer); XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetStyleFB( XrPassthroughLayerFB layer, const XrPassthroughStyleFB* style); XRAPI_ATTR XrResult XRAPI_CALL xrCreateGeometryInstanceFB( XrSession session, const XrGeometryInstanceCreateInfoFB* createInfo, XrGeometryInstanceFB* outGeometryInstance); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyGeometryInstanceFB( XrGeometryInstanceFB instance); XRAPI_ATTR XrResult XRAPI_CALL xrGeometryInstanceSetTransformFB( XrGeometryInstanceFB instance, const XrGeometryInstanceTransformFB* transformation); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_render_model is a preprocessor guard. Do not pass it to API calls. #define XR_FB_render_model 1 #define XR_NULL_RENDER_MODEL_KEY_FB 0 XR_DEFINE_ATOM(XrRenderModelKeyFB) #define XR_MAX_RENDER_MODEL_NAME_SIZE_FB 64 #define XR_FB_render_model_SPEC_VERSION 4 #define XR_FB_RENDER_MODEL_EXTENSION_NAME "XR_FB_render_model" typedef XrFlags64 XrRenderModelFlagsFB; // Flag bits for XrRenderModelFlagsFB static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB = 0x00000001; static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB = 0x00000002; typedef struct XrRenderModelPathInfoFB { XrStructureType type; void* XR_MAY_ALIAS next; XrPath path; } XrRenderModelPathInfoFB; typedef struct XrRenderModelPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vendorId; char modelName[XR_MAX_RENDER_MODEL_NAME_SIZE_FB]; XrRenderModelKeyFB modelKey; uint32_t modelVersion; XrRenderModelFlagsFB flags; } XrRenderModelPropertiesFB; typedef struct XrRenderModelBufferFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t bufferCapacityInput; uint32_t bufferCountOutput; uint8_t* buffer; } XrRenderModelBufferFB; typedef struct XrRenderModelLoadInfoFB { XrStructureType type; void* XR_MAY_ALIAS next; XrRenderModelKeyFB modelKey; } XrRenderModelLoadInfoFB; // XrSystemRenderModelPropertiesFB extends XrSystemProperties typedef struct XrSystemRenderModelPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsRenderModelLoading; } XrSystemRenderModelPropertiesFB; // XrRenderModelCapabilitiesRequestFB extends XrRenderModelPropertiesFB typedef struct XrRenderModelCapabilitiesRequestFB { XrStructureType type; void* XR_MAY_ALIAS next; XrRenderModelFlagsFB flags; } XrRenderModelCapabilitiesRequestFB; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRenderModelPathsFB)(XrSession session, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrRenderModelPathInfoFB* paths); typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPropertiesFB)(XrSession session, XrPath path, XrRenderModelPropertiesFB* properties); typedef XrResult (XRAPI_PTR *PFN_xrLoadRenderModelFB)(XrSession session, const XrRenderModelLoadInfoFB* info, XrRenderModelBufferFB* buffer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRenderModelPathsFB( XrSession session, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrRenderModelPathInfoFB* paths); XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPropertiesFB( XrSession session, XrPath path, XrRenderModelPropertiesFB* properties); XRAPI_ATTR XrResult XRAPI_CALL xrLoadRenderModelFB( XrSession session, const XrRenderModelLoadInfoFB* info, XrRenderModelBufferFB* buffer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_VARJO_foveated_rendering is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_foveated_rendering 1 #define XR_VARJO_foveated_rendering_SPEC_VERSION 3 #define XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME "XR_VARJO_foveated_rendering" // XrViewLocateFoveatedRenderingVARJO extends XrViewLocateInfo typedef struct XrViewLocateFoveatedRenderingVARJO { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 foveatedRenderingActive; } XrViewLocateFoveatedRenderingVARJO; // XrFoveatedViewConfigurationViewVARJO extends XrViewConfigurationView typedef struct XrFoveatedViewConfigurationViewVARJO { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 foveatedRenderingActive; } XrFoveatedViewConfigurationViewVARJO; // XrSystemFoveatedRenderingPropertiesVARJO extends XrSystemProperties typedef struct XrSystemFoveatedRenderingPropertiesVARJO { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFoveatedRendering; } XrSystemFoveatedRenderingPropertiesVARJO; // XR_VARJO_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_composition_layer_depth_test 1 #define XR_VARJO_composition_layer_depth_test_SPEC_VERSION 2 #define XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_VARJO_composition_layer_depth_test" // XrCompositionLayerDepthTestVARJO extends XrCompositionLayerProjection typedef struct XrCompositionLayerDepthTestVARJO { XrStructureType type; const void* XR_MAY_ALIAS next; float depthTestRangeNearZ; float depthTestRangeFarZ; } XrCompositionLayerDepthTestVARJO; // XR_VARJO_environment_depth_estimation is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_environment_depth_estimation 1 #define XR_VARJO_environment_depth_estimation_SPEC_VERSION 1 #define XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME "XR_VARJO_environment_depth_estimation" typedef XrResult (XRAPI_PTR *PFN_xrSetEnvironmentDepthEstimationVARJO)(XrSession session, XrBool32 enabled); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthEstimationVARJO( XrSession session, XrBool32 enabled); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_VARJO_marker_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_marker_tracking 1 #define XR_VARJO_marker_tracking_SPEC_VERSION 1 #define XR_VARJO_MARKER_TRACKING_EXTENSION_NAME "XR_VARJO_marker_tracking" // XrSystemMarkerTrackingPropertiesVARJO extends XrSystemProperties typedef struct XrSystemMarkerTrackingPropertiesVARJO { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsMarkerTracking; } XrSystemMarkerTrackingPropertiesVARJO; typedef struct XrEventDataMarkerTrackingUpdateVARJO { XrStructureType type; const void* XR_MAY_ALIAS next; uint64_t markerId; XrBool32 isActive; XrBool32 isPredicted; XrTime time; } XrEventDataMarkerTrackingUpdateVARJO; typedef struct XrMarkerSpaceCreateInfoVARJO { XrStructureType type; const void* XR_MAY_ALIAS next; uint64_t markerId; XrPosef poseInMarkerSpace; } XrMarkerSpaceCreateInfoVARJO; typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingVARJO)(XrSession session, XrBool32 enabled); typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingTimeoutVARJO)(XrSession session, uint64_t markerId, XrDuration timeout); typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingPredictionVARJO)(XrSession session, uint64_t markerId, XrBool32 enable); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerSizeVARJO)(XrSession session, uint64_t markerId, XrExtent2Df* size); typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceVARJO)(XrSession session, const XrMarkerSpaceCreateInfoVARJO* createInfo, XrSpace* space); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingVARJO( XrSession session, XrBool32 enabled); XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingTimeoutVARJO( XrSession session, uint64_t markerId, XrDuration timeout); XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingPredictionVARJO( XrSession session, uint64_t markerId, XrBool32 enable); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerSizeVARJO( XrSession session, uint64_t markerId, XrExtent2Df* size); XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceVARJO( XrSession session, const XrMarkerSpaceCreateInfoVARJO* createInfo, XrSpace* space); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_VARJO_view_offset is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_view_offset 1 #define XR_VARJO_view_offset_SPEC_VERSION 1 #define XR_VARJO_VIEW_OFFSET_EXTENSION_NAME "XR_VARJO_view_offset" typedef XrResult (XRAPI_PTR *PFN_xrSetViewOffsetVARJO)(XrSession session, float offset); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetViewOffsetVARJO( XrSession session, float offset); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_VARJO_xr4_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_VARJO_xr4_controller_interaction 1 #define XR_VARJO_xr4_controller_interaction_SPEC_VERSION 2 #define XR_VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_VARJO_xr4_controller_interaction" // XR_ML_ml2_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_ML_ml2_controller_interaction 1 #define XR_ML_ml2_controller_interaction_SPEC_VERSION 1 #define XR_ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_ML_ml2_controller_interaction" // XR_ML_frame_end_info is a preprocessor guard. Do not pass it to API calls. #define XR_ML_frame_end_info 1 #define XR_ML_frame_end_info_SPEC_VERSION 1 #define XR_ML_FRAME_END_INFO_EXTENSION_NAME "XR_ML_frame_end_info" typedef XrFlags64 XrFrameEndInfoFlagsML; // Flag bits for XrFrameEndInfoFlagsML static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_PROTECTED_BIT_ML = 0x00000001; static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_VIGNETTE_BIT_ML = 0x00000002; // XrFrameEndInfoML extends XrFrameEndInfo typedef struct XrFrameEndInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; float focusDistance; XrFrameEndInfoFlagsML flags; } XrFrameEndInfoML; // XR_ML_global_dimmer is a preprocessor guard. Do not pass it to API calls. #define XR_ML_global_dimmer 1 #define XR_ML_global_dimmer_SPEC_VERSION 1 #define XR_ML_GLOBAL_DIMMER_EXTENSION_NAME "XR_ML_global_dimmer" typedef XrFlags64 XrGlobalDimmerFrameEndInfoFlagsML; // Flag bits for XrGlobalDimmerFrameEndInfoFlagsML static const XrGlobalDimmerFrameEndInfoFlagsML XR_GLOBAL_DIMMER_FRAME_END_INFO_ENABLED_BIT_ML = 0x00000001; // XrGlobalDimmerFrameEndInfoML extends XrFrameEndInfo typedef struct XrGlobalDimmerFrameEndInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; float dimmerValue; XrGlobalDimmerFrameEndInfoFlagsML flags; } XrGlobalDimmerFrameEndInfoML; // XR_ML_marker_understanding is a preprocessor guard. Do not pass it to API calls. #define XR_ML_marker_understanding 1 XR_DEFINE_ATOM(XrMarkerML) XR_DEFINE_HANDLE(XrMarkerDetectorML) #define XR_ML_marker_understanding_SPEC_VERSION 1 #define XR_ML_MARKER_UNDERSTANDING_EXTENSION_NAME "XR_ML_marker_understanding" typedef enum XrMarkerDetectorProfileML { XR_MARKER_DETECTOR_PROFILE_DEFAULT_ML = 0, XR_MARKER_DETECTOR_PROFILE_SPEED_ML = 1, XR_MARKER_DETECTOR_PROFILE_ACCURACY_ML = 2, XR_MARKER_DETECTOR_PROFILE_SMALL_TARGETS_ML = 3, XR_MARKER_DETECTOR_PROFILE_LARGE_FOV_ML = 4, XR_MARKER_DETECTOR_PROFILE_CUSTOM_ML = 5, XR_MARKER_DETECTOR_PROFILE_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorProfileML; typedef enum XrMarkerTypeML { XR_MARKER_TYPE_ARUCO_ML = 0, XR_MARKER_TYPE_APRIL_TAG_ML = 1, XR_MARKER_TYPE_QR_ML = 2, XR_MARKER_TYPE_EAN_13_ML = 3, XR_MARKER_TYPE_UPC_A_ML = 4, XR_MARKER_TYPE_CODE_128_ML = 5, XR_MARKER_TYPE_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerTypeML; typedef enum XrMarkerArucoDictML { XR_MARKER_ARUCO_DICT_4X4_50_ML = 0, XR_MARKER_ARUCO_DICT_4X4_100_ML = 1, XR_MARKER_ARUCO_DICT_4X4_250_ML = 2, XR_MARKER_ARUCO_DICT_4X4_1000_ML = 3, XR_MARKER_ARUCO_DICT_5X5_50_ML = 4, XR_MARKER_ARUCO_DICT_5X5_100_ML = 5, XR_MARKER_ARUCO_DICT_5X5_250_ML = 6, XR_MARKER_ARUCO_DICT_5X5_1000_ML = 7, XR_MARKER_ARUCO_DICT_6X6_50_ML = 8, XR_MARKER_ARUCO_DICT_6X6_100_ML = 9, XR_MARKER_ARUCO_DICT_6X6_250_ML = 10, XR_MARKER_ARUCO_DICT_6X6_1000_ML = 11, XR_MARKER_ARUCO_DICT_7X7_50_ML = 12, XR_MARKER_ARUCO_DICT_7X7_100_ML = 13, XR_MARKER_ARUCO_DICT_7X7_250_ML = 14, XR_MARKER_ARUCO_DICT_7X7_1000_ML = 15, XR_MARKER_ARUCO_DICT_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerArucoDictML; typedef enum XrMarkerAprilTagDictML { XR_MARKER_APRIL_TAG_DICT_16H5_ML = 0, XR_MARKER_APRIL_TAG_DICT_25H9_ML = 1, XR_MARKER_APRIL_TAG_DICT_36H10_ML = 2, XR_MARKER_APRIL_TAG_DICT_36H11_ML = 3, XR_MARKER_APRIL_TAG_DICT_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerAprilTagDictML; typedef enum XrMarkerDetectorFpsML { XR_MARKER_DETECTOR_FPS_LOW_ML = 0, XR_MARKER_DETECTOR_FPS_MEDIUM_ML = 1, XR_MARKER_DETECTOR_FPS_HIGH_ML = 2, XR_MARKER_DETECTOR_FPS_MAX_ML = 3, XR_MARKER_DETECTOR_FPS_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorFpsML; typedef enum XrMarkerDetectorResolutionML { XR_MARKER_DETECTOR_RESOLUTION_LOW_ML = 0, XR_MARKER_DETECTOR_RESOLUTION_MEDIUM_ML = 1, XR_MARKER_DETECTOR_RESOLUTION_HIGH_ML = 2, XR_MARKER_DETECTOR_RESOLUTION_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorResolutionML; typedef enum XrMarkerDetectorCameraML { XR_MARKER_DETECTOR_CAMERA_RGB_CAMERA_ML = 0, XR_MARKER_DETECTOR_CAMERA_WORLD_CAMERAS_ML = 1, XR_MARKER_DETECTOR_CAMERA_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorCameraML; typedef enum XrMarkerDetectorCornerRefineMethodML { XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_NONE_ML = 0, XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_SUBPIX_ML = 1, XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_CONTOUR_ML = 2, XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML = 3, XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorCornerRefineMethodML; typedef enum XrMarkerDetectorFullAnalysisIntervalML { XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ML = 0, XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_FAST_ML = 1, XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MEDIUM_ML = 2, XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_SLOW_ML = 3, XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorFullAnalysisIntervalML; typedef enum XrMarkerDetectorStatusML { XR_MARKER_DETECTOR_STATUS_PENDING_ML = 0, XR_MARKER_DETECTOR_STATUS_READY_ML = 1, XR_MARKER_DETECTOR_STATUS_ERROR_ML = 2, XR_MARKER_DETECTOR_STATUS_MAX_ENUM_ML = 0x7FFFFFFF } XrMarkerDetectorStatusML; // XrSystemMarkerUnderstandingPropertiesML extends XrSystemProperties typedef struct XrSystemMarkerUnderstandingPropertiesML { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsMarkerUnderstanding; } XrSystemMarkerUnderstandingPropertiesML; typedef struct XrMarkerDetectorCreateInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrMarkerDetectorProfileML profile; XrMarkerTypeML markerType; } XrMarkerDetectorCreateInfoML; // XrMarkerDetectorArucoInfoML extends XrMarkerDetectorCreateInfoML typedef struct XrMarkerDetectorArucoInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrMarkerArucoDictML arucoDict; } XrMarkerDetectorArucoInfoML; // XrMarkerDetectorSizeInfoML extends XrMarkerDetectorCreateInfoML typedef struct XrMarkerDetectorSizeInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; float markerLength; } XrMarkerDetectorSizeInfoML; // XrMarkerDetectorAprilTagInfoML extends XrMarkerDetectorCreateInfoML typedef struct XrMarkerDetectorAprilTagInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrMarkerAprilTagDictML aprilTagDict; } XrMarkerDetectorAprilTagInfoML; // XrMarkerDetectorCustomProfileInfoML extends XrMarkerDetectorCreateInfoML typedef struct XrMarkerDetectorCustomProfileInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrMarkerDetectorFpsML fpsHint; XrMarkerDetectorResolutionML resolutionHint; XrMarkerDetectorCameraML cameraHint; XrMarkerDetectorCornerRefineMethodML cornerRefineMethod; XrBool32 useEdgeRefinement; XrMarkerDetectorFullAnalysisIntervalML fullAnalysisIntervalHint; } XrMarkerDetectorCustomProfileInfoML; typedef struct XrMarkerDetectorSnapshotInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrMarkerDetectorSnapshotInfoML; typedef struct XrMarkerDetectorStateML { XrStructureType type; void* XR_MAY_ALIAS next; XrMarkerDetectorStatusML state; } XrMarkerDetectorStateML; typedef struct XrMarkerSpaceCreateInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrMarkerDetectorML markerDetector; XrMarkerML marker; XrPosef poseInMarkerSpace; } XrMarkerSpaceCreateInfoML; typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerDetectorML)(XrSession session, const XrMarkerDetectorCreateInfoML* createInfo, XrMarkerDetectorML* markerDetector); typedef XrResult (XRAPI_PTR *PFN_xrDestroyMarkerDetectorML)(XrMarkerDetectorML markerDetector); typedef XrResult (XRAPI_PTR *PFN_xrSnapshotMarkerDetectorML)(XrMarkerDetectorML markerDetector, XrMarkerDetectorSnapshotInfoML* snapshotInfo); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerDetectorStateML)(XrMarkerDetectorML markerDetector, XrMarkerDetectorStateML* state); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkersML)(XrMarkerDetectorML markerDetector, uint32_t markerCapacityInput, uint32_t* markerCountOutput, XrMarkerML* markers); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerReprojectionErrorML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, float* reprojectionErrorMeters); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerLengthML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, float* meters); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerNumberML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, uint64_t* number); typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerStringML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceML)(XrSession session, const XrMarkerSpaceCreateInfoML* createInfo, XrSpace* space); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerDetectorML( XrSession session, const XrMarkerDetectorCreateInfoML* createInfo, XrMarkerDetectorML* markerDetector); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyMarkerDetectorML( XrMarkerDetectorML markerDetector); XRAPI_ATTR XrResult XRAPI_CALL xrSnapshotMarkerDetectorML( XrMarkerDetectorML markerDetector, XrMarkerDetectorSnapshotInfoML* snapshotInfo); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerDetectorStateML( XrMarkerDetectorML markerDetector, XrMarkerDetectorStateML* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkersML( XrMarkerDetectorML markerDetector, uint32_t markerCapacityInput, uint32_t* markerCountOutput, XrMarkerML* markers); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerReprojectionErrorML( XrMarkerDetectorML markerDetector, XrMarkerML marker, float* reprojectionErrorMeters); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerLengthML( XrMarkerDetectorML markerDetector, XrMarkerML marker, float* meters); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerNumberML( XrMarkerDetectorML markerDetector, XrMarkerML marker, uint64_t* number); XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerStringML( XrMarkerDetectorML markerDetector, XrMarkerML marker, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceML( XrSession session, const XrMarkerSpaceCreateInfoML* createInfo, XrSpace* space); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_localization_map is a preprocessor guard. Do not pass it to API calls. #define XR_ML_localization_map 1 XR_DEFINE_HANDLE(XrExportedLocalizationMapML) #define XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML 64 #define XR_ML_localization_map_SPEC_VERSION 1 #define XR_ML_LOCALIZATION_MAP_EXTENSION_NAME "XR_ML_localization_map" typedef enum XrLocalizationMapStateML { XR_LOCALIZATION_MAP_STATE_NOT_LOCALIZED_ML = 0, XR_LOCALIZATION_MAP_STATE_LOCALIZED_ML = 1, XR_LOCALIZATION_MAP_STATE_LOCALIZATION_PENDING_ML = 2, XR_LOCALIZATION_MAP_STATE_LOCALIZATION_SLEEPING_BEFORE_RETRY_ML = 3, XR_LOCALIZATION_MAP_STATE_MAX_ENUM_ML = 0x7FFFFFFF } XrLocalizationMapStateML; typedef enum XrLocalizationMapTypeML { XR_LOCALIZATION_MAP_TYPE_ON_DEVICE_ML = 0, XR_LOCALIZATION_MAP_TYPE_CLOUD_ML = 1, XR_LOCALIZATION_MAP_TYPE_MAX_ENUM_ML = 0x7FFFFFFF } XrLocalizationMapTypeML; typedef enum XrLocalizationMapConfidenceML { XR_LOCALIZATION_MAP_CONFIDENCE_POOR_ML = 0, XR_LOCALIZATION_MAP_CONFIDENCE_FAIR_ML = 1, XR_LOCALIZATION_MAP_CONFIDENCE_GOOD_ML = 2, XR_LOCALIZATION_MAP_CONFIDENCE_EXCELLENT_ML = 3, XR_LOCALIZATION_MAP_CONFIDENCE_MAX_ENUM_ML = 0x7FFFFFFF } XrLocalizationMapConfidenceML; typedef XrFlags64 XrLocalizationMapErrorFlagsML; // Flag bits for XrLocalizationMapErrorFlagsML static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_UNKNOWN_BIT_ML = 0x00000001; static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_OUT_OF_MAPPED_AREA_BIT_ML = 0x00000002; static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_FEATURE_COUNT_BIT_ML = 0x00000004; static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_EXCESSIVE_MOTION_BIT_ML = 0x00000008; static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_LIGHT_BIT_ML = 0x00000010; static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_HEADPOSE_BIT_ML = 0x00000020; typedef struct XrLocalizationMapML { XrStructureType type; void* XR_MAY_ALIAS next; char name[XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML]; XrUuidEXT mapUuid; XrLocalizationMapTypeML mapType; } XrLocalizationMapML; typedef struct XrEventDataLocalizationChangedML { XrStructureType type; const void* XR_MAY_ALIAS next; XrSession session; XrLocalizationMapStateML state; XrLocalizationMapML map; XrLocalizationMapConfidenceML confidence; XrLocalizationMapErrorFlagsML errorFlags; } XrEventDataLocalizationChangedML; typedef struct XrLocalizationMapQueryInfoBaseHeaderML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrLocalizationMapQueryInfoBaseHeaderML; typedef struct XrMapLocalizationRequestInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidEXT mapUuid; } XrMapLocalizationRequestInfoML; typedef struct XrLocalizationMapImportInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t size; char* data; } XrLocalizationMapImportInfoML; typedef struct XrLocalizationEnableEventsInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; } XrLocalizationEnableEventsInfoML; typedef XrResult (XRAPI_PTR *PFN_xrEnableLocalizationEventsML)(XrSession session, const XrLocalizationEnableEventsInfoML * info); typedef XrResult (XRAPI_PTR *PFN_xrQueryLocalizationMapsML)(XrSession session, const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo, uint32_t mapCapacityInput, uint32_t * mapCountOutput, XrLocalizationMapML* maps); typedef XrResult (XRAPI_PTR *PFN_xrRequestMapLocalizationML)(XrSession session, const XrMapLocalizationRequestInfoML* requestInfo); typedef XrResult (XRAPI_PTR *PFN_xrImportLocalizationMapML)(XrSession session, const XrLocalizationMapImportInfoML* importInfo, XrUuidEXT* mapUuid); typedef XrResult (XRAPI_PTR *PFN_xrCreateExportedLocalizationMapML)(XrSession session, const XrUuidEXT* mapUuid, XrExportedLocalizationMapML* map); typedef XrResult (XRAPI_PTR *PFN_xrDestroyExportedLocalizationMapML)(XrExportedLocalizationMapML map); typedef XrResult (XRAPI_PTR *PFN_xrGetExportedLocalizationMapDataML)(XrExportedLocalizationMapML map, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnableLocalizationEventsML( XrSession session, const XrLocalizationEnableEventsInfoML * info); XRAPI_ATTR XrResult XRAPI_CALL xrQueryLocalizationMapsML( XrSession session, const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo, uint32_t mapCapacityInput, uint32_t * mapCountOutput, XrLocalizationMapML* maps); XRAPI_ATTR XrResult XRAPI_CALL xrRequestMapLocalizationML( XrSession session, const XrMapLocalizationRequestInfoML* requestInfo); XRAPI_ATTR XrResult XRAPI_CALL xrImportLocalizationMapML( XrSession session, const XrLocalizationMapImportInfoML* importInfo, XrUuidEXT* mapUuid); XRAPI_ATTR XrResult XRAPI_CALL xrCreateExportedLocalizationMapML( XrSession session, const XrUuidEXT* mapUuid, XrExportedLocalizationMapML* map); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyExportedLocalizationMapML( XrExportedLocalizationMapML map); XRAPI_ATTR XrResult XRAPI_CALL xrGetExportedLocalizationMapDataML( XrExportedLocalizationMapML map, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_spatial_anchors is a preprocessor guard. Do not pass it to API calls. #define XR_ML_spatial_anchors 1 XR_DEFINE_OPAQUE_64(XrFutureEXT) #define XR_ML_spatial_anchors_SPEC_VERSION 1 #define XR_ML_SPATIAL_ANCHORS_EXTENSION_NAME "XR_ML_spatial_anchors" typedef enum XrSpatialAnchorConfidenceML { XR_SPATIAL_ANCHOR_CONFIDENCE_LOW_ML = 0, XR_SPATIAL_ANCHOR_CONFIDENCE_MEDIUM_ML = 1, XR_SPATIAL_ANCHOR_CONFIDENCE_HIGH_ML = 2, XR_SPATIAL_ANCHOR_CONFIDENCE_MAX_ENUM_ML = 0x7FFFFFFF } XrSpatialAnchorConfidenceML; typedef struct XR_MAY_ALIAS XrSpatialAnchorsCreateInfoBaseHeaderML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialAnchorsCreateInfoBaseHeaderML; typedef struct XrSpatialAnchorsCreateInfoFromPoseML { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrPosef poseInBaseSpace; XrTime time; } XrSpatialAnchorsCreateInfoFromPoseML; typedef struct XrCreateSpatialAnchorsCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; uint32_t spaceCount; XrSpace* spaces; } XrCreateSpatialAnchorsCompletionML; typedef struct XrSpatialAnchorStateML { XrStructureType type; void* XR_MAY_ALIAS next; XrSpatialAnchorConfidenceML confidence; } XrSpatialAnchorStateML; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsAsyncML)(XrSession session, const XrSpatialAnchorsCreateInfoBaseHeaderML* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsCompleteML)(XrSession session, XrFutureEXT future, XrCreateSpatialAnchorsCompletionML* completion); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorStateML)(XrSpace anchor, XrSpatialAnchorStateML* state); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsAsyncML( XrSession session, const XrSpatialAnchorsCreateInfoBaseHeaderML* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsCompleteML( XrSession session, XrFutureEXT future, XrCreateSpatialAnchorsCompletionML* completion); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorStateML( XrSpace anchor, XrSpatialAnchorStateML* state); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_spatial_anchors_storage is a preprocessor guard. Do not pass it to API calls. #define XR_ML_spatial_anchors_storage 1 XR_DEFINE_HANDLE(XrSpatialAnchorsStorageML) #define XR_ML_spatial_anchors_storage_SPEC_VERSION 1 #define XR_ML_SPATIAL_ANCHORS_STORAGE_EXTENSION_NAME "XR_ML_spatial_anchors_storage" typedef struct XrSpatialAnchorsCreateStorageInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialAnchorsCreateStorageInfoML; typedef struct XR_MAY_ALIAS XrSpatialAnchorsQueryInfoBaseHeaderML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialAnchorsQueryInfoBaseHeaderML; typedef struct XrSpatialAnchorsQueryInfoRadiusML { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrVector3f center; XrTime time; float radius; } XrSpatialAnchorsQueryInfoRadiusML; typedef struct XrSpatialAnchorsQueryCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; uint32_t uuidCapacityInput; uint32_t uuidCountOutput; XrUuidEXT* uuids; } XrSpatialAnchorsQueryCompletionML; typedef struct XrSpatialAnchorsCreateInfoFromUuidsML { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialAnchorsStorageML storage; uint32_t uuidCount; const XrUuidEXT* uuids; } XrSpatialAnchorsCreateInfoFromUuidsML; typedef struct XrSpatialAnchorsPublishInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t anchorCount; const XrSpace* anchors; uint64_t expiration; } XrSpatialAnchorsPublishInfoML; typedef struct XrSpatialAnchorsPublishCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; uint32_t uuidCount; XrUuidEXT* uuids; } XrSpatialAnchorsPublishCompletionML; typedef struct XrSpatialAnchorsDeleteInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t uuidCount; const XrUuidEXT* uuids; } XrSpatialAnchorsDeleteInfoML; typedef struct XrSpatialAnchorsDeleteCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; } XrSpatialAnchorsDeleteCompletionML; typedef struct XrSpatialAnchorsUpdateExpirationInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t uuidCount; const XrUuidEXT* uuids; uint64_t expiration; } XrSpatialAnchorsUpdateExpirationInfoML; typedef struct XrSpatialAnchorsUpdateExpirationCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; } XrSpatialAnchorsUpdateExpirationCompletionML; typedef struct XrSpatialAnchorCompletionResultML { XrUuidEXT uuid; XrResult result; } XrSpatialAnchorCompletionResultML; // XrSpatialAnchorsPublishCompletionDetailsML extends XrSpatialAnchorsPublishCompletionML typedef struct XrSpatialAnchorsPublishCompletionDetailsML { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t resultCount; XrSpatialAnchorCompletionResultML* results; } XrSpatialAnchorsPublishCompletionDetailsML; // XrSpatialAnchorsDeleteCompletionDetailsML extends XrSpatialAnchorsDeleteCompletionML typedef struct XrSpatialAnchorsDeleteCompletionDetailsML { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t resultCount; XrSpatialAnchorCompletionResultML* results; } XrSpatialAnchorsDeleteCompletionDetailsML; // XrSpatialAnchorsUpdateExpirationCompletionDetailsML extends XrSpatialAnchorsUpdateExpirationCompletionML typedef struct XrSpatialAnchorsUpdateExpirationCompletionDetailsML { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t resultCount; XrSpatialAnchorCompletionResultML* results; } XrSpatialAnchorsUpdateExpirationCompletionDetailsML; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsStorageML)(XrSession session, const XrSpatialAnchorsCreateStorageInfoML* createInfo, XrSpatialAnchorsStorageML* storage); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorsStorageML)(XrSpatialAnchorsStorageML storage); typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsQueryInfoBaseHeaderML* queryInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsQueryCompletionML* completion); typedef XrResult (XRAPI_PTR *PFN_xrPublishSpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsPublishInfoML* publishInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrPublishSpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsPublishCompletionML* completion); typedef XrResult (XRAPI_PTR *PFN_xrDeleteSpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsDeleteInfoML* deleteInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrDeleteSpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsDeleteCompletionML* completion); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSpatialAnchorsExpirationAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsUpdateExpirationInfoML* updateInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSpatialAnchorsExpirationCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsUpdateExpirationCompletionML* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsStorageML( XrSession session, const XrSpatialAnchorsCreateStorageInfoML* createInfo, XrSpatialAnchorsStorageML* storage); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorsStorageML( XrSpatialAnchorsStorageML storage); XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialAnchorsAsyncML( XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsQueryInfoBaseHeaderML* queryInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialAnchorsCompleteML( XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsQueryCompletionML* completion); XRAPI_ATTR XrResult XRAPI_CALL xrPublishSpatialAnchorsAsyncML( XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsPublishInfoML* publishInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrPublishSpatialAnchorsCompleteML( XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsPublishCompletionML* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDeleteSpatialAnchorsAsyncML( XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsDeleteInfoML* deleteInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrDeleteSpatialAnchorsCompleteML( XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsDeleteCompletionML* completion); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSpatialAnchorsExpirationAsyncML( XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsUpdateExpirationInfoML* updateInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSpatialAnchorsExpirationCompleteML( XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsUpdateExpirationCompletionML* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_spatial_anchor_persistence is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_spatial_anchor_persistence 1 XR_DEFINE_HANDLE(XrSpatialAnchorStoreConnectionMSFT) #define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT 256 #define XR_MSFT_spatial_anchor_persistence_SPEC_VERSION 2 #define XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME "XR_MSFT_spatial_anchor_persistence" typedef struct XrSpatialAnchorPersistenceNameMSFT { char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT]; } XrSpatialAnchorPersistenceNameMSFT; typedef struct XrSpatialAnchorPersistenceInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName; XrSpatialAnchorMSFT spatialAnchor; } XrSpatialAnchorPersistenceInfoMSFT; typedef struct XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore; XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName; } XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession session, XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore); typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo); typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNameCapacityInput, uint32_t* spatialAnchorNameCountOutput, XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo, XrSpatialAnchorMSFT* spatialAnchor); typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName); typedef XrResult (XRAPI_PTR *PFN_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorStoreConnectionMSFT( XrSession session, XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorStoreConnectionMSFT( XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore); XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorMSFT( XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo); XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePersistedSpatialAnchorNamesMSFT( XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNameCapacityInput, uint32_t* spatialAnchorNameCountOutput, XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPersistedNameMSFT( XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo, XrSpatialAnchorMSFT* spatialAnchor); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorMSFT( XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName); XRAPI_ATTR XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT( XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_MSFT_scene_marker is a preprocessor guard. Do not pass it to API calls. #define XR_MSFT_scene_marker 1 #define XR_MSFT_scene_marker_SPEC_VERSION 1 #define XR_MSFT_SCENE_MARKER_EXTENSION_NAME "XR_MSFT_scene_marker" typedef enum XrSceneMarkerTypeMSFT { XR_SCENE_MARKER_TYPE_QR_CODE_MSFT = 1, XR_SCENE_MARKER_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneMarkerTypeMSFT; typedef enum XrSceneMarkerQRCodeSymbolTypeMSFT { XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_QR_CODE_MSFT = 1, XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_MICRO_QR_CODE_MSFT = 2, XR_SCENE_MARKER_QRCODE_SYMBOL_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF } XrSceneMarkerQRCodeSymbolTypeMSFT; typedef struct XrSceneMarkerMSFT { XrSceneMarkerTypeMSFT markerType; XrTime lastSeenTime; XrOffset2Df center; XrExtent2Df size; } XrSceneMarkerMSFT; // XrSceneMarkersMSFT extends XrSceneComponentsMSFT typedef struct XrSceneMarkersMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t sceneMarkerCapacityInput; XrSceneMarkerMSFT* sceneMarkers; } XrSceneMarkersMSFT; // XrSceneMarkerTypeFilterMSFT extends XrSceneComponentsGetInfoMSFT typedef struct XrSceneMarkerTypeFilterMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t markerTypeCount; XrSceneMarkerTypeMSFT* markerTypes; } XrSceneMarkerTypeFilterMSFT; typedef struct XrSceneMarkerQRCodeMSFT { XrSceneMarkerQRCodeSymbolTypeMSFT symbolType; uint8_t version; } XrSceneMarkerQRCodeMSFT; // XrSceneMarkerQRCodesMSFT extends XrSceneComponentsMSFT typedef struct XrSceneMarkerQRCodesMSFT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t qrCodeCapacityInput; XrSceneMarkerQRCodeMSFT* qrCodes; } XrSceneMarkerQRCodesMSFT; typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerRawDataMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerDecodedStringMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerRawDataMSFT( XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerDecodedStringMSFT( XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ULTRALEAP_hand_tracking_forearm is a preprocessor guard. Do not pass it to API calls. #define XR_ULTRALEAP_hand_tracking_forearm 1 #define XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP 27 #define XR_ULTRALEAP_hand_tracking_forearm_SPEC_VERSION 1 #define XR_ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME "XR_ULTRALEAP_hand_tracking_forearm" typedef enum XrHandForearmJointULTRALEAP { XR_HAND_FOREARM_JOINT_PALM_ULTRALEAP = 0, XR_HAND_FOREARM_JOINT_WRIST_ULTRALEAP = 1, XR_HAND_FOREARM_JOINT_THUMB_METACARPAL_ULTRALEAP = 2, XR_HAND_FOREARM_JOINT_THUMB_PROXIMAL_ULTRALEAP = 3, XR_HAND_FOREARM_JOINT_THUMB_DISTAL_ULTRALEAP = 4, XR_HAND_FOREARM_JOINT_THUMB_TIP_ULTRALEAP = 5, XR_HAND_FOREARM_JOINT_INDEX_METACARPAL_ULTRALEAP = 6, XR_HAND_FOREARM_JOINT_INDEX_PROXIMAL_ULTRALEAP = 7, XR_HAND_FOREARM_JOINT_INDEX_INTERMEDIATE_ULTRALEAP = 8, XR_HAND_FOREARM_JOINT_INDEX_DISTAL_ULTRALEAP = 9, XR_HAND_FOREARM_JOINT_INDEX_TIP_ULTRALEAP = 10, XR_HAND_FOREARM_JOINT_MIDDLE_METACARPAL_ULTRALEAP = 11, XR_HAND_FOREARM_JOINT_MIDDLE_PROXIMAL_ULTRALEAP = 12, XR_HAND_FOREARM_JOINT_MIDDLE_INTERMEDIATE_ULTRALEAP = 13, XR_HAND_FOREARM_JOINT_MIDDLE_DISTAL_ULTRALEAP = 14, XR_HAND_FOREARM_JOINT_MIDDLE_TIP_ULTRALEAP = 15, XR_HAND_FOREARM_JOINT_RING_METACARPAL_ULTRALEAP = 16, XR_HAND_FOREARM_JOINT_RING_PROXIMAL_ULTRALEAP = 17, XR_HAND_FOREARM_JOINT_RING_INTERMEDIATE_ULTRALEAP = 18, XR_HAND_FOREARM_JOINT_RING_DISTAL_ULTRALEAP = 19, XR_HAND_FOREARM_JOINT_RING_TIP_ULTRALEAP = 20, XR_HAND_FOREARM_JOINT_LITTLE_METACARPAL_ULTRALEAP = 21, XR_HAND_FOREARM_JOINT_LITTLE_PROXIMAL_ULTRALEAP = 22, XR_HAND_FOREARM_JOINT_LITTLE_INTERMEDIATE_ULTRALEAP = 23, XR_HAND_FOREARM_JOINT_LITTLE_DISTAL_ULTRALEAP = 24, XR_HAND_FOREARM_JOINT_LITTLE_TIP_ULTRALEAP = 25, XR_HAND_FOREARM_JOINT_ELBOW_ULTRALEAP = 26, XR_HAND_FOREARM_JOINT_MAX_ENUM_ULTRALEAP = 0x7FFFFFFF } XrHandForearmJointULTRALEAP; // XR_FB_spatial_entity_query is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity_query 1 #define XR_FB_spatial_entity_query_SPEC_VERSION 1 #define XR_FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME "XR_FB_spatial_entity_query" typedef enum XrSpaceQueryActionFB { XR_SPACE_QUERY_ACTION_LOAD_FB = 0, XR_SPACE_QUERY_ACTION_MAX_ENUM_FB = 0x7FFFFFFF } XrSpaceQueryActionFB; typedef enum XrSpaceStorageLocationFB { XR_SPACE_STORAGE_LOCATION_INVALID_FB = 0, XR_SPACE_STORAGE_LOCATION_LOCAL_FB = 1, XR_SPACE_STORAGE_LOCATION_CLOUD_FB = 2, XR_SPACE_STORAGE_LOCATION_MAX_ENUM_FB = 0x7FFFFFFF } XrSpaceStorageLocationFB; typedef struct XR_MAY_ALIAS XrSpaceQueryInfoBaseHeaderFB { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpaceQueryInfoBaseHeaderFB; typedef struct XR_MAY_ALIAS XrSpaceFilterInfoBaseHeaderFB { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpaceFilterInfoBaseHeaderFB; typedef struct XrSpaceQueryInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpaceQueryActionFB queryAction; uint32_t maxResultCount; XrDuration timeout; const XrSpaceFilterInfoBaseHeaderFB* filter; const XrSpaceFilterInfoBaseHeaderFB* excludeFilter; } XrSpaceQueryInfoFB; // XrSpaceStorageLocationFilterInfoFB extends XrSpaceFilterInfoBaseHeaderFB typedef struct XrSpaceStorageLocationFilterInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpaceStorageLocationFB location; } XrSpaceStorageLocationFilterInfoFB; typedef struct XrSpaceUuidFilterInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t uuidCount; XrUuidEXT* uuids; } XrSpaceUuidFilterInfoFB; typedef struct XrSpaceComponentFilterInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpaceComponentTypeFB componentType; } XrSpaceComponentFilterInfoFB; typedef struct XrSpaceQueryResultFB { XrSpace space; XrUuidEXT uuid; } XrSpaceQueryResultFB; typedef struct XrSpaceQueryResultsFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t resultCapacityInput; uint32_t resultCountOutput; XrSpaceQueryResultFB* results; } XrSpaceQueryResultsFB; typedef struct XrEventDataSpaceQueryResultsAvailableFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; } XrEventDataSpaceQueryResultsAvailableFB; typedef struct XrEventDataSpaceQueryCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSpaceQueryCompleteFB; typedef XrResult (XRAPI_PTR *PFN_xrQuerySpacesFB)(XrSession session, const XrSpaceQueryInfoBaseHeaderFB* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceQueryResultsFB)(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB* results); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpacesFB( XrSession session, const XrSpaceQueryInfoBaseHeaderFB* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrRetrieveSpaceQueryResultsFB( XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB* results); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_spatial_entity_storage is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity_storage 1 #define XR_FB_spatial_entity_storage_SPEC_VERSION 1 #define XR_FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME "XR_FB_spatial_entity_storage" typedef enum XrSpacePersistenceModeFB { XR_SPACE_PERSISTENCE_MODE_INVALID_FB = 0, XR_SPACE_PERSISTENCE_MODE_INDEFINITE_FB = 1, XR_SPACE_PERSISTENCE_MODE_MAX_ENUM_FB = 0x7FFFFFFF } XrSpacePersistenceModeFB; typedef struct XrSpaceSaveInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrSpaceStorageLocationFB location; XrSpacePersistenceModeFB persistenceMode; } XrSpaceSaveInfoFB; typedef struct XrSpaceEraseInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrSpaceStorageLocationFB location; } XrSpaceEraseInfoFB; typedef struct XrEventDataSpaceSaveCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; XrSpace space; XrUuidEXT uuid; XrSpaceStorageLocationFB location; } XrEventDataSpaceSaveCompleteFB; typedef struct XrEventDataSpaceEraseCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; XrSpace space; XrUuidEXT uuid; XrSpaceStorageLocationFB location; } XrEventDataSpaceEraseCompleteFB; typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceFB)(XrSession session, const XrSpaceSaveInfoFB* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrEraseSpaceFB)(XrSession session, const XrSpaceEraseInfoFB* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceFB( XrSession session, const XrSpaceSaveInfoFB* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrEraseSpaceFB( XrSession session, const XrSpaceEraseInfoFB* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_touch_controller_pro is a preprocessor guard. Do not pass it to API calls. #define XR_FB_touch_controller_pro 1 #define XR_FB_touch_controller_pro_SPEC_VERSION 1 #define XR_FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME "XR_FB_touch_controller_pro" // XR_FB_spatial_entity_sharing is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity_sharing 1 XR_DEFINE_HANDLE(XrSpaceUserFB) #define XR_FB_spatial_entity_sharing_SPEC_VERSION 1 #define XR_FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME "XR_FB_spatial_entity_sharing" typedef struct XrSpaceShareInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t spaceCount; XrSpace* spaces; uint32_t userCount; XrSpaceUserFB* users; } XrSpaceShareInfoFB; typedef struct XrEventDataSpaceShareCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSpaceShareCompleteFB; typedef XrResult (XRAPI_PTR *PFN_xrShareSpacesFB)(XrSession session, const XrSpaceShareInfoFB* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesFB( XrSession session, const XrSpaceShareInfoFB* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_space_warp is a preprocessor guard. Do not pass it to API calls. #define XR_FB_space_warp 1 #define XR_FB_space_warp_SPEC_VERSION 2 #define XR_FB_SPACE_WARP_EXTENSION_NAME "XR_FB_space_warp" typedef XrFlags64 XrCompositionLayerSpaceWarpInfoFlagsFB; // Flag bits for XrCompositionLayerSpaceWarpInfoFlagsFB static const XrCompositionLayerSpaceWarpInfoFlagsFB XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB = 0x00000001; // XrCompositionLayerSpaceWarpInfoFB extends XrCompositionLayerProjectionView typedef struct XrCompositionLayerSpaceWarpInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerSpaceWarpInfoFlagsFB layerFlags; XrSwapchainSubImage motionVectorSubImage; XrPosef appSpaceDeltaPose; XrSwapchainSubImage depthSubImage; float minDepth; float maxDepth; float nearZ; float farZ; } XrCompositionLayerSpaceWarpInfoFB; // XrSystemSpaceWarpPropertiesFB extends XrSystemProperties typedef struct XrSystemSpaceWarpPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t recommendedMotionVectorImageRectWidth; uint32_t recommendedMotionVectorImageRectHeight; } XrSystemSpaceWarpPropertiesFB; // XR_FB_haptic_amplitude_envelope is a preprocessor guard. Do not pass it to API calls. #define XR_FB_haptic_amplitude_envelope 1 #define XR_MAX_HAPTIC_AMPLITUDE_ENVELOPE_SAMPLES_FB 4000u #define XR_FB_haptic_amplitude_envelope_SPEC_VERSION 1 #define XR_FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME "XR_FB_haptic_amplitude_envelope" typedef struct XrHapticAmplitudeEnvelopeVibrationFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrDuration duration; uint32_t amplitudeCount; const float* amplitudes; } XrHapticAmplitudeEnvelopeVibrationFB; // XR_FB_scene is a preprocessor guard. Do not pass it to API calls. #define XR_FB_scene 1 #define XR_FB_scene_SPEC_VERSION 4 #define XR_FB_SCENE_EXTENSION_NAME "XR_FB_scene" typedef XrFlags64 XrSemanticLabelsSupportFlagsFB; // Flag bits for XrSemanticLabelsSupportFlagsFB static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_MULTIPLE_SEMANTIC_LABELS_BIT_FB = 0x00000001; static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_DESK_TO_TABLE_MIGRATION_BIT_FB = 0x00000002; static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_INVISIBLE_WALL_FACE_BIT_FB = 0x00000004; typedef XrExtent3Df XrExtent3DfFB; typedef struct XrOffset3DfFB { float x; float y; float z; } XrOffset3DfFB; typedef struct XrRect3DfFB { XrOffset3DfFB offset; XrExtent3DfFB extent; } XrRect3DfFB; typedef struct XrSemanticLabelsFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t bufferCapacityInput; uint32_t bufferCountOutput; char* buffer; } XrSemanticLabelsFB; typedef struct XrRoomLayoutFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidEXT floorUuid; XrUuidEXT ceilingUuid; uint32_t wallUuidCapacityInput; uint32_t wallUuidCountOutput; XrUuidEXT* wallUuids; } XrRoomLayoutFB; typedef struct XrBoundary2DFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector2f* vertices; } XrBoundary2DFB; // XrSemanticLabelsSupportInfoFB extends XrSemanticLabelsFB typedef struct XrSemanticLabelsSupportInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSemanticLabelsSupportFlagsFB flags; const char* recognizedLabels; } XrSemanticLabelsSupportInfoFB; typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundingBox2DFB)(XrSession session, XrSpace space, XrRect2Df* boundingBox2DOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundingBox3DFB)(XrSession session, XrSpace space, XrRect3DfFB* boundingBox3DOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceSemanticLabelsFB)(XrSession session, XrSpace space, XrSemanticLabelsFB* semanticLabelsOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundary2DFB)(XrSession session, XrSpace space, XrBoundary2DFB* boundary2DOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceRoomLayoutFB)(XrSession session, XrSpace space, XrRoomLayoutFB* roomLayoutOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox2DFB( XrSession session, XrSpace space, XrRect2Df* boundingBox2DOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox3DFB( XrSession session, XrSpace space, XrRect3DfFB* boundingBox3DOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceSemanticLabelsFB( XrSession session, XrSpace space, XrSemanticLabelsFB* semanticLabelsOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundary2DFB( XrSession session, XrSpace space, XrBoundary2DFB* boundary2DOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceRoomLayoutFB( XrSession session, XrSpace space, XrRoomLayoutFB* roomLayoutOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_palm_pose is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_palm_pose 1 #define XR_EXT_palm_pose_SPEC_VERSION 3 #define XR_EXT_PALM_POSE_EXTENSION_NAME "XR_EXT_palm_pose" // XR_ALMALENCE_digital_lens_control is a preprocessor guard. Do not pass it to API calls. #define XR_ALMALENCE_digital_lens_control 1 #define XR_ALMALENCE_digital_lens_control_SPEC_VERSION 1 #define XR_ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME "XR_ALMALENCE_digital_lens_control" typedef XrFlags64 XrDigitalLensControlFlagsALMALENCE; // Flag bits for XrDigitalLensControlFlagsALMALENCE static const XrDigitalLensControlFlagsALMALENCE XR_DIGITAL_LENS_CONTROL_PROCESSING_DISABLE_BIT_ALMALENCE = 0x00000001; typedef struct XrDigitalLensControlALMALENCE { XrStructureType type; const void* XR_MAY_ALIAS next; XrDigitalLensControlFlagsALMALENCE flags; } XrDigitalLensControlALMALENCE; typedef XrResult (XRAPI_PTR *PFN_xrSetDigitalLensControlALMALENCE)(XrSession session, const XrDigitalLensControlALMALENCE* digitalLensControl); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetDigitalLensControlALMALENCE( XrSession session, const XrDigitalLensControlALMALENCE* digitalLensControl); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_scene_capture is a preprocessor guard. Do not pass it to API calls. #define XR_FB_scene_capture 1 #define XR_FB_scene_capture_SPEC_VERSION 1 #define XR_FB_SCENE_CAPTURE_EXTENSION_NAME "XR_FB_scene_capture" typedef struct XrEventDataSceneCaptureCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSceneCaptureCompleteFB; typedef struct XrSceneCaptureRequestInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t requestByteCount; const char* request; } XrSceneCaptureRequestInfoFB; typedef XrResult (XRAPI_PTR *PFN_xrRequestSceneCaptureFB)(XrSession session, const XrSceneCaptureRequestInfoFB* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrRequestSceneCaptureFB( XrSession session, const XrSceneCaptureRequestInfoFB* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_spatial_entity_container is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity_container 1 #define XR_FB_spatial_entity_container_SPEC_VERSION 2 #define XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME "XR_FB_spatial_entity_container" typedef struct XrSpaceContainerFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t uuidCapacityInput; uint32_t uuidCountOutput; XrUuidEXT* uuids; } XrSpaceContainerFB; typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceContainerFB)(XrSession session, XrSpace space, XrSpaceContainerFB* spaceContainerOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceContainerFB( XrSession session, XrSpace space, XrSpaceContainerFB* spaceContainerOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_foveation_eye_tracked is a preprocessor guard. Do not pass it to API calls. #define XR_META_foveation_eye_tracked 1 #define XR_FOVEATION_CENTER_SIZE_META 2 #define XR_META_foveation_eye_tracked_SPEC_VERSION 1 #define XR_META_FOVEATION_EYE_TRACKED_EXTENSION_NAME "XR_META_foveation_eye_tracked" typedef XrFlags64 XrFoveationEyeTrackedProfileCreateFlagsMETA; // Flag bits for XrFoveationEyeTrackedProfileCreateFlagsMETA typedef XrFlags64 XrFoveationEyeTrackedStateFlagsMETA; // Flag bits for XrFoveationEyeTrackedStateFlagsMETA static const XrFoveationEyeTrackedStateFlagsMETA XR_FOVEATION_EYE_TRACKED_STATE_VALID_BIT_META = 0x00000001; // XrFoveationEyeTrackedProfileCreateInfoMETA extends XrFoveationLevelProfileCreateInfoFB typedef struct XrFoveationEyeTrackedProfileCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrFoveationEyeTrackedProfileCreateFlagsMETA flags; } XrFoveationEyeTrackedProfileCreateInfoMETA; typedef struct XrFoveationEyeTrackedStateMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrVector2f foveationCenter[XR_FOVEATION_CENTER_SIZE_META]; XrFoveationEyeTrackedStateFlagsMETA flags; } XrFoveationEyeTrackedStateMETA; // XrSystemFoveationEyeTrackedPropertiesMETA extends XrSystemProperties typedef struct XrSystemFoveationEyeTrackedPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFoveationEyeTracked; } XrSystemFoveationEyeTrackedPropertiesMETA; typedef XrResult (XRAPI_PTR *PFN_xrGetFoveationEyeTrackedStateMETA)(XrSession session, XrFoveationEyeTrackedStateMETA* foveationState); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetFoveationEyeTrackedStateMETA( XrSession session, XrFoveationEyeTrackedStateMETA* foveationState); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_face_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_FB_face_tracking 1 #define XR_FACE_EXPRESSSION_SET_DEFAULT_FB XR_FACE_EXPRESSION_SET_DEFAULT_FB XR_DEFINE_HANDLE(XrFaceTrackerFB) #define XR_FB_face_tracking_SPEC_VERSION 1 #define XR_FB_FACE_TRACKING_EXTENSION_NAME "XR_FB_face_tracking" typedef enum XrFaceExpressionFB { XR_FACE_EXPRESSION_BROW_LOWERER_L_FB = 0, XR_FACE_EXPRESSION_BROW_LOWERER_R_FB = 1, XR_FACE_EXPRESSION_CHEEK_PUFF_L_FB = 2, XR_FACE_EXPRESSION_CHEEK_PUFF_R_FB = 3, XR_FACE_EXPRESSION_CHEEK_RAISER_L_FB = 4, XR_FACE_EXPRESSION_CHEEK_RAISER_R_FB = 5, XR_FACE_EXPRESSION_CHEEK_SUCK_L_FB = 6, XR_FACE_EXPRESSION_CHEEK_SUCK_R_FB = 7, XR_FACE_EXPRESSION_CHIN_RAISER_B_FB = 8, XR_FACE_EXPRESSION_CHIN_RAISER_T_FB = 9, XR_FACE_EXPRESSION_DIMPLER_L_FB = 10, XR_FACE_EXPRESSION_DIMPLER_R_FB = 11, XR_FACE_EXPRESSION_EYES_CLOSED_L_FB = 12, XR_FACE_EXPRESSION_EYES_CLOSED_R_FB = 13, XR_FACE_EXPRESSION_EYES_LOOK_DOWN_L_FB = 14, XR_FACE_EXPRESSION_EYES_LOOK_DOWN_R_FB = 15, XR_FACE_EXPRESSION_EYES_LOOK_LEFT_L_FB = 16, XR_FACE_EXPRESSION_EYES_LOOK_LEFT_R_FB = 17, XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_L_FB = 18, XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_R_FB = 19, XR_FACE_EXPRESSION_EYES_LOOK_UP_L_FB = 20, XR_FACE_EXPRESSION_EYES_LOOK_UP_R_FB = 21, XR_FACE_EXPRESSION_INNER_BROW_RAISER_L_FB = 22, XR_FACE_EXPRESSION_INNER_BROW_RAISER_R_FB = 23, XR_FACE_EXPRESSION_JAW_DROP_FB = 24, XR_FACE_EXPRESSION_JAW_SIDEWAYS_LEFT_FB = 25, XR_FACE_EXPRESSION_JAW_SIDEWAYS_RIGHT_FB = 26, XR_FACE_EXPRESSION_JAW_THRUST_FB = 27, XR_FACE_EXPRESSION_LID_TIGHTENER_L_FB = 28, XR_FACE_EXPRESSION_LID_TIGHTENER_R_FB = 29, XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_L_FB = 30, XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_R_FB = 31, XR_FACE_EXPRESSION_LIP_CORNER_PULLER_L_FB = 32, XR_FACE_EXPRESSION_LIP_CORNER_PULLER_R_FB = 33, XR_FACE_EXPRESSION_LIP_FUNNELER_LB_FB = 34, XR_FACE_EXPRESSION_LIP_FUNNELER_LT_FB = 35, XR_FACE_EXPRESSION_LIP_FUNNELER_RB_FB = 36, XR_FACE_EXPRESSION_LIP_FUNNELER_RT_FB = 37, XR_FACE_EXPRESSION_LIP_PRESSOR_L_FB = 38, XR_FACE_EXPRESSION_LIP_PRESSOR_R_FB = 39, XR_FACE_EXPRESSION_LIP_PUCKER_L_FB = 40, XR_FACE_EXPRESSION_LIP_PUCKER_R_FB = 41, XR_FACE_EXPRESSION_LIP_STRETCHER_L_FB = 42, XR_FACE_EXPRESSION_LIP_STRETCHER_R_FB = 43, XR_FACE_EXPRESSION_LIP_SUCK_LB_FB = 44, XR_FACE_EXPRESSION_LIP_SUCK_LT_FB = 45, XR_FACE_EXPRESSION_LIP_SUCK_RB_FB = 46, XR_FACE_EXPRESSION_LIP_SUCK_RT_FB = 47, XR_FACE_EXPRESSION_LIP_TIGHTENER_L_FB = 48, XR_FACE_EXPRESSION_LIP_TIGHTENER_R_FB = 49, XR_FACE_EXPRESSION_LIPS_TOWARD_FB = 50, XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_L_FB = 51, XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_R_FB = 52, XR_FACE_EXPRESSION_MOUTH_LEFT_FB = 53, XR_FACE_EXPRESSION_MOUTH_RIGHT_FB = 54, XR_FACE_EXPRESSION_NOSE_WRINKLER_L_FB = 55, XR_FACE_EXPRESSION_NOSE_WRINKLER_R_FB = 56, XR_FACE_EXPRESSION_OUTER_BROW_RAISER_L_FB = 57, XR_FACE_EXPRESSION_OUTER_BROW_RAISER_R_FB = 58, XR_FACE_EXPRESSION_UPPER_LID_RAISER_L_FB = 59, XR_FACE_EXPRESSION_UPPER_LID_RAISER_R_FB = 60, XR_FACE_EXPRESSION_UPPER_LIP_RAISER_L_FB = 61, XR_FACE_EXPRESSION_UPPER_LIP_RAISER_R_FB = 62, XR_FACE_EXPRESSION_COUNT_FB = 63, XR_FACE_EXPRESSION_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceExpressionFB; typedef enum XrFaceExpressionSetFB { XR_FACE_EXPRESSION_SET_DEFAULT_FB = 0, XR_FACE_EXPRESSION_SET_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceExpressionSetFB; typedef enum XrFaceConfidenceFB { XR_FACE_CONFIDENCE_LOWER_FACE_FB = 0, XR_FACE_CONFIDENCE_UPPER_FACE_FB = 1, XR_FACE_CONFIDENCE_COUNT_FB = 2, XR_FACE_CONFIDENCE_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceConfidenceFB; // XrSystemFaceTrackingPropertiesFB extends XrSystemProperties typedef struct XrSystemFaceTrackingPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFaceTracking; } XrSystemFaceTrackingPropertiesFB; typedef struct XrFaceTrackerCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrFaceExpressionSetFB faceExpressionSet; } XrFaceTrackerCreateInfoFB; typedef struct XrFaceExpressionInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; } XrFaceExpressionInfoFB; typedef struct XrFaceExpressionStatusFB { XrBool32 isValid; XrBool32 isEyeFollowingBlendshapesValid; } XrFaceExpressionStatusFB; typedef struct XrFaceExpressionWeightsFB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t weightCount; float* weights; uint32_t confidenceCount; float* confidences; XrFaceExpressionStatusFB status; XrTime time; } XrFaceExpressionWeightsFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTrackerFB)(XrSession session, const XrFaceTrackerCreateInfoFB* createInfo, XrFaceTrackerFB* faceTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTrackerFB)(XrFaceTrackerFB faceTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetFaceExpressionWeightsFB)(XrFaceTrackerFB faceTracker, const XrFaceExpressionInfoFB* expressionInfo, XrFaceExpressionWeightsFB* expressionWeights); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTrackerFB( XrSession session, const XrFaceTrackerCreateInfoFB* createInfo, XrFaceTrackerFB* faceTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTrackerFB( XrFaceTrackerFB faceTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeightsFB( XrFaceTrackerFB faceTracker, const XrFaceExpressionInfoFB* expressionInfo, XrFaceExpressionWeightsFB* expressionWeights); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_eye_tracking_social is a preprocessor guard. Do not pass it to API calls. #define XR_FB_eye_tracking_social 1 XR_DEFINE_HANDLE(XrEyeTrackerFB) #define XR_FB_eye_tracking_social_SPEC_VERSION 1 #define XR_FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME "XR_FB_eye_tracking_social" typedef enum XrEyePositionFB { XR_EYE_POSITION_LEFT_FB = 0, XR_EYE_POSITION_RIGHT_FB = 1, XR_EYE_POSITION_COUNT_FB = 2, XR_EYE_POSITION_MAX_ENUM_FB = 0x7FFFFFFF } XrEyePositionFB; typedef struct XrEyeGazeFB { XrBool32 isValid; XrPosef gazePose; float gazeConfidence; } XrEyeGazeFB; typedef struct XrEyeTrackerCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEyeTrackerCreateInfoFB; typedef struct XrEyeGazesInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; } XrEyeGazesInfoFB; // XrSystemEyeTrackingPropertiesFB extends XrSystemProperties typedef struct XrSystemEyeTrackingPropertiesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsEyeTracking; } XrSystemEyeTrackingPropertiesFB; typedef struct XrEyeGazesFB { XrStructureType type; void* XR_MAY_ALIAS next; XrEyeGazeFB gaze[XR_EYE_POSITION_COUNT_FB]; XrTime time; } XrEyeGazesFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateEyeTrackerFB)(XrSession session, const XrEyeTrackerCreateInfoFB* createInfo, XrEyeTrackerFB* eyeTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyEyeTrackerFB)(XrEyeTrackerFB eyeTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetEyeGazesFB)(XrEyeTrackerFB eyeTracker, const XrEyeGazesInfoFB* gazeInfo, XrEyeGazesFB* eyeGazes); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateEyeTrackerFB( XrSession session, const XrEyeTrackerCreateInfoFB* createInfo, XrEyeTrackerFB* eyeTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEyeTrackerFB( XrEyeTrackerFB eyeTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetEyeGazesFB( XrEyeTrackerFB eyeTracker, const XrEyeGazesInfoFB* gazeInfo, XrEyeGazesFB* eyeGazes); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_passthrough_keyboard_hands is a preprocessor guard. Do not pass it to API calls. #define XR_FB_passthrough_keyboard_hands 1 #define XR_FB_passthrough_keyboard_hands_SPEC_VERSION 2 #define XR_FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME "XR_FB_passthrough_keyboard_hands" typedef struct XrPassthroughKeyboardHandsIntensityFB { XrStructureType type; const void* XR_MAY_ALIAS next; float leftHandIntensity; float rightHandIntensity; } XrPassthroughKeyboardHandsIntensityFB; typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerSetKeyboardHandsIntensityFB)(XrPassthroughLayerFB layer, const XrPassthroughKeyboardHandsIntensityFB* intensity); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetKeyboardHandsIntensityFB( XrPassthroughLayerFB layer, const XrPassthroughKeyboardHandsIntensityFB* intensity); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_composition_layer_settings is a preprocessor guard. Do not pass it to API calls. #define XR_FB_composition_layer_settings 1 #define XR_FB_composition_layer_settings_SPEC_VERSION 1 #define XR_FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME "XR_FB_composition_layer_settings" typedef XrFlags64 XrCompositionLayerSettingsFlagsFB; // Flag bits for XrCompositionLayerSettingsFlagsFB static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB = 0x00000001; static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB = 0x00000002; static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB = 0x00000004; static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB = 0x00000008; static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_AUTO_LAYER_FILTER_BIT_META = 0x00000020; // XrCompositionLayerSettingsFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerSettingsFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerSettingsFlagsFB layerFlags; } XrCompositionLayerSettingsFB; // XR_FB_touch_controller_proximity is a preprocessor guard. Do not pass it to API calls. #define XR_FB_touch_controller_proximity 1 #define XR_FB_touch_controller_proximity_SPEC_VERSION 1 #define XR_FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME "XR_FB_touch_controller_proximity" // XR_FB_haptic_pcm is a preprocessor guard. Do not pass it to API calls. #define XR_FB_haptic_pcm 1 #define XR_MAX_HAPTIC_PCM_BUFFER_SIZE_FB 4000 #define XR_FB_haptic_pcm_SPEC_VERSION 1 #define XR_FB_HAPTIC_PCM_EXTENSION_NAME "XR_FB_haptic_pcm" typedef struct XrHapticPcmVibrationFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t bufferSize; const float* buffer; float sampleRate; XrBool32 append; uint32_t* samplesConsumed; } XrHapticPcmVibrationFB; typedef struct XrDevicePcmSampleRateStateFB { XrStructureType type; void* XR_MAY_ALIAS next; float sampleRate; } XrDevicePcmSampleRateStateFB; typedef XrDevicePcmSampleRateStateFB XrDevicePcmSampleRateGetInfoFB; typedef XrResult (XRAPI_PTR *PFN_xrGetDeviceSampleRateFB)(XrSession session, const XrHapticActionInfo* hapticActionInfo, XrDevicePcmSampleRateGetInfoFB* deviceSampleRate); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetDeviceSampleRateFB( XrSession session, const XrHapticActionInfo* hapticActionInfo, XrDevicePcmSampleRateGetInfoFB* deviceSampleRate); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_frame_synthesis is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_frame_synthesis 1 #define XR_EXT_frame_synthesis_SPEC_VERSION 1 #define XR_EXT_FRAME_SYNTHESIS_EXTENSION_NAME "XR_EXT_frame_synthesis" typedef XrFlags64 XrFrameSynthesisInfoFlagsEXT; // Flag bits for XrFrameSynthesisInfoFlagsEXT static const XrFrameSynthesisInfoFlagsEXT XR_FRAME_SYNTHESIS_INFO_USE_2D_MOTION_VECTOR_BIT_EXT = 0x00000001; static const XrFrameSynthesisInfoFlagsEXT XR_FRAME_SYNTHESIS_INFO_REQUEST_RELAXED_FRAME_INTERVAL_BIT_EXT = 0x00000002; // XrFrameSynthesisInfoEXT extends XrCompositionLayerProjectionView typedef struct XrFrameSynthesisInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrFrameSynthesisInfoFlagsEXT layerFlags; XrSwapchainSubImage motionVectorSubImage; XrVector4f motionVectorScale; XrVector4f motionVectorOffset; XrPosef appSpaceDeltaPose; XrSwapchainSubImage depthSubImage; float minDepth; float maxDepth; float nearZ; float farZ; } XrFrameSynthesisInfoEXT; // XrFrameSynthesisConfigViewEXT extends XrViewConfigurationView typedef struct XrFrameSynthesisConfigViewEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t recommendedMotionVectorImageRectWidth; uint32_t recommendedMotionVectorImageRectHeight; } XrFrameSynthesisConfigViewEXT; // XR_FB_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls. #define XR_FB_composition_layer_depth_test 1 #define XR_FB_composition_layer_depth_test_SPEC_VERSION 1 #define XR_FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_FB_composition_layer_depth_test" typedef enum XrCompareOpFB { XR_COMPARE_OP_NEVER_FB = 0, XR_COMPARE_OP_LESS_FB = 1, XR_COMPARE_OP_EQUAL_FB = 2, XR_COMPARE_OP_LESS_OR_EQUAL_FB = 3, XR_COMPARE_OP_GREATER_FB = 4, XR_COMPARE_OP_NOT_EQUAL_FB = 5, XR_COMPARE_OP_GREATER_OR_EQUAL_FB = 6, XR_COMPARE_OP_ALWAYS_FB = 7, XR_COMPARE_OP_MAX_ENUM_FB = 0x7FFFFFFF } XrCompareOpFB; // XrCompositionLayerDepthTestFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerDepthTestFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 depthMask; XrCompareOpFB compareOp; } XrCompositionLayerDepthTestFB; // XR_META_local_dimming is a preprocessor guard. Do not pass it to API calls. #define XR_META_local_dimming 1 #define XR_META_local_dimming_SPEC_VERSION 1 #define XR_META_LOCAL_DIMMING_EXTENSION_NAME "XR_META_local_dimming" typedef enum XrLocalDimmingModeMETA { XR_LOCAL_DIMMING_MODE_OFF_META = 0, XR_LOCAL_DIMMING_MODE_ON_META = 1, XR_LOCAL_DIMMING_MODE_MAX_ENUM_META = 0x7FFFFFFF } XrLocalDimmingModeMETA; // XrLocalDimmingFrameEndInfoMETA extends XrFrameEndInfo typedef struct XrLocalDimmingFrameEndInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrLocalDimmingModeMETA localDimmingMode; } XrLocalDimmingFrameEndInfoMETA; // XR_META_passthrough_preferences is a preprocessor guard. Do not pass it to API calls. #define XR_META_passthrough_preferences 1 #define XR_META_passthrough_preferences_SPEC_VERSION 1 #define XR_META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME "XR_META_passthrough_preferences" typedef XrFlags64 XrPassthroughPreferenceFlagsMETA; // Flag bits for XrPassthroughPreferenceFlagsMETA static const XrPassthroughPreferenceFlagsMETA XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META = 0x00000001; typedef struct XrPassthroughPreferencesMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughPreferenceFlagsMETA flags; } XrPassthroughPreferencesMETA; typedef XrResult (XRAPI_PTR *PFN_xrGetPassthroughPreferencesMETA)(XrSession session, XrPassthroughPreferencesMETA* preferences); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetPassthroughPreferencesMETA( XrSession session, XrPassthroughPreferencesMETA* preferences); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_virtual_keyboard is a preprocessor guard. Do not pass it to API calls. #define XR_META_virtual_keyboard 1 XR_DEFINE_HANDLE(XrVirtualKeyboardMETA) #define XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META 3992 #define XR_META_virtual_keyboard_SPEC_VERSION 1 #define XR_META_VIRTUAL_KEYBOARD_EXTENSION_NAME "XR_META_virtual_keyboard" typedef enum XrVirtualKeyboardLocationTypeMETA { XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_CUSTOM_META = 0, XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_FAR_META = 1, XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_DIRECT_META = 2, XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_MAX_ENUM_META = 0x7FFFFFFF } XrVirtualKeyboardLocationTypeMETA; typedef enum XrVirtualKeyboardInputSourceMETA { XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_LEFT_META = 1, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_RIGHT_META = 2, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_LEFT_META = 3, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_RIGHT_META = 4, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_LEFT_META = 5, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_RIGHT_META = 6, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_LEFT_META = 7, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_RIGHT_META = 8, XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_MAX_ENUM_META = 0x7FFFFFFF } XrVirtualKeyboardInputSourceMETA; typedef XrFlags64 XrVirtualKeyboardInputStateFlagsMETA; // Flag bits for XrVirtualKeyboardInputStateFlagsMETA static const XrVirtualKeyboardInputStateFlagsMETA XR_VIRTUAL_KEYBOARD_INPUT_STATE_PRESSED_BIT_META = 0x00000001; // XrSystemVirtualKeyboardPropertiesMETA extends XrSystemProperties typedef struct XrSystemVirtualKeyboardPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsVirtualKeyboard; } XrSystemVirtualKeyboardPropertiesMETA; typedef struct XrVirtualKeyboardCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrVirtualKeyboardCreateInfoMETA; typedef struct XrVirtualKeyboardSpaceCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardLocationTypeMETA locationType; XrSpace space; XrPosef poseInSpace; } XrVirtualKeyboardSpaceCreateInfoMETA; typedef struct XrVirtualKeyboardLocationInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardLocationTypeMETA locationType; XrSpace space; XrPosef poseInSpace; float scale; } XrVirtualKeyboardLocationInfoMETA; typedef struct XrVirtualKeyboardModelVisibilitySetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 visible; } XrVirtualKeyboardModelVisibilitySetInfoMETA; typedef struct XrVirtualKeyboardAnimationStateMETA { XrStructureType type; void* XR_MAY_ALIAS next; int32_t animationIndex; float fraction; } XrVirtualKeyboardAnimationStateMETA; typedef struct XrVirtualKeyboardModelAnimationStatesMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t stateCapacityInput; uint32_t stateCountOutput; XrVirtualKeyboardAnimationStateMETA* states; } XrVirtualKeyboardModelAnimationStatesMETA; typedef struct XrVirtualKeyboardTextureDataMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t textureWidth; uint32_t textureHeight; uint32_t bufferCapacityInput; uint32_t bufferCountOutput; uint8_t* buffer; } XrVirtualKeyboardTextureDataMETA; typedef struct XrVirtualKeyboardInputInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardInputSourceMETA inputSource; XrSpace inputSpace; XrPosef inputPoseInSpace; XrVirtualKeyboardInputStateFlagsMETA inputState; } XrVirtualKeyboardInputInfoMETA; typedef struct XrVirtualKeyboardTextContextChangeInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; const char* textContext; } XrVirtualKeyboardTextContextChangeInfoMETA; typedef struct XrEventDataVirtualKeyboardCommitTextMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardMETA keyboard; char text[XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META]; } XrEventDataVirtualKeyboardCommitTextMETA; typedef struct XrEventDataVirtualKeyboardBackspaceMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardMETA keyboard; } XrEventDataVirtualKeyboardBackspaceMETA; typedef struct XrEventDataVirtualKeyboardEnterMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardMETA keyboard; } XrEventDataVirtualKeyboardEnterMETA; typedef struct XrEventDataVirtualKeyboardShownMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardMETA keyboard; } XrEventDataVirtualKeyboardShownMETA; typedef struct XrEventDataVirtualKeyboardHiddenMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrVirtualKeyboardMETA keyboard; } XrEventDataVirtualKeyboardHiddenMETA; typedef XrResult (XRAPI_PTR *PFN_xrCreateVirtualKeyboardMETA)(XrSession session, const XrVirtualKeyboardCreateInfoMETA* createInfo, XrVirtualKeyboardMETA* keyboard); typedef XrResult (XRAPI_PTR *PFN_xrDestroyVirtualKeyboardMETA)(XrVirtualKeyboardMETA keyboard); typedef XrResult (XRAPI_PTR *PFN_xrCreateVirtualKeyboardSpaceMETA)(XrSession session, XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo, XrSpace* keyboardSpace); typedef XrResult (XRAPI_PTR *PFN_xrSuggestVirtualKeyboardLocationMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardLocationInfoMETA* locationInfo); typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardScaleMETA)(XrVirtualKeyboardMETA keyboard, float* scale); typedef XrResult (XRAPI_PTR *PFN_xrSetVirtualKeyboardModelVisibilityMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility); typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardModelAnimationStatesMETA)(XrVirtualKeyboardMETA keyboard, XrVirtualKeyboardModelAnimationStatesMETA* animationStates); typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardDirtyTexturesMETA)(XrVirtualKeyboardMETA keyboard, uint32_t textureIdCapacityInput, uint32_t* textureIdCountOutput, uint64_t* textureIds); typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardTextureDataMETA)(XrVirtualKeyboardMETA keyboard, uint64_t textureId, XrVirtualKeyboardTextureDataMETA* textureData); typedef XrResult (XRAPI_PTR *PFN_xrSendVirtualKeyboardInputMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardInputInfoMETA* info, XrPosef* interactorRootPose); typedef XrResult (XRAPI_PTR *PFN_xrChangeVirtualKeyboardTextContextMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardMETA( XrSession session, const XrVirtualKeyboardCreateInfoMETA* createInfo, XrVirtualKeyboardMETA* keyboard); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyVirtualKeyboardMETA( XrVirtualKeyboardMETA keyboard); XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardSpaceMETA( XrSession session, XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo, XrSpace* keyboardSpace); XRAPI_ATTR XrResult XRAPI_CALL xrSuggestVirtualKeyboardLocationMETA( XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardLocationInfoMETA* locationInfo); XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardScaleMETA( XrVirtualKeyboardMETA keyboard, float* scale); XRAPI_ATTR XrResult XRAPI_CALL xrSetVirtualKeyboardModelVisibilityMETA( XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility); XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardModelAnimationStatesMETA( XrVirtualKeyboardMETA keyboard, XrVirtualKeyboardModelAnimationStatesMETA* animationStates); XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardDirtyTexturesMETA( XrVirtualKeyboardMETA keyboard, uint32_t textureIdCapacityInput, uint32_t* textureIdCountOutput, uint64_t* textureIds); XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardTextureDataMETA( XrVirtualKeyboardMETA keyboard, uint64_t textureId, XrVirtualKeyboardTextureDataMETA* textureData); XRAPI_ATTR XrResult XRAPI_CALL xrSendVirtualKeyboardInputMETA( XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardInputInfoMETA* info, XrPosef* interactorRootPose); XRAPI_ATTR XrResult XRAPI_CALL xrChangeVirtualKeyboardTextContextMETA( XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_OCULUS_external_camera is a preprocessor guard. Do not pass it to API calls. #define XR_OCULUS_external_camera 1 #define XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS 32 #define XR_OCULUS_external_camera_SPEC_VERSION 1 #define XR_OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME "XR_OCULUS_external_camera" typedef enum XrExternalCameraAttachedToDeviceOCULUS { XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_NONE_OCULUS = 0, XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_HMD_OCULUS = 1, XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_LTOUCH_OCULUS = 2, XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_RTOUCH_OCULUS = 3, XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_MAX_ENUM_OCULUS = 0x7FFFFFFF } XrExternalCameraAttachedToDeviceOCULUS; typedef XrFlags64 XrExternalCameraStatusFlagsOCULUS; // Flag bits for XrExternalCameraStatusFlagsOCULUS static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CONNECTED_BIT_OCULUS = 0x00000001; static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATING_BIT_OCULUS = 0x00000002; static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATION_FAILED_BIT_OCULUS = 0x00000004; static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATED_BIT_OCULUS = 0x00000008; static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CAPTURING_BIT_OCULUS = 0x00000010; typedef struct XrExternalCameraIntrinsicsOCULUS { XrTime lastChangeTime; XrFovf fov; float virtualNearPlaneDistance; float virtualFarPlaneDistance; XrExtent2Di imageSensorPixelResolution; } XrExternalCameraIntrinsicsOCULUS; typedef struct XrExternalCameraExtrinsicsOCULUS { XrTime lastChangeTime; XrExternalCameraStatusFlagsOCULUS cameraStatusFlags; XrExternalCameraAttachedToDeviceOCULUS attachedToDevice; XrPosef relativePose; } XrExternalCameraExtrinsicsOCULUS; typedef struct XrExternalCameraOCULUS { XrStructureType type; const void* XR_MAY_ALIAS next; char name[XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS]; XrExternalCameraIntrinsicsOCULUS intrinsics; XrExternalCameraExtrinsicsOCULUS extrinsics; } XrExternalCameraOCULUS; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateExternalCamerasOCULUS)(XrSession session, uint32_t cameraCapacityInput, uint32_t* cameraCountOutput, XrExternalCameraOCULUS* cameras); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateExternalCamerasOCULUS( XrSession session, uint32_t cameraCapacityInput, uint32_t* cameraCountOutput, XrExternalCameraOCULUS* cameras); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_performance_metrics is a preprocessor guard. Do not pass it to API calls. #define XR_META_performance_metrics 1 #define XR_META_performance_metrics_SPEC_VERSION 2 #define XR_META_PERFORMANCE_METRICS_EXTENSION_NAME "XR_META_performance_metrics" typedef enum XrPerformanceMetricsCounterUnitMETA { XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_META = 0, XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_META = 1, XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_META = 2, XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_META = 3, XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META = 4, XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_META = 0x7FFFFFFF } XrPerformanceMetricsCounterUnitMETA; typedef XrFlags64 XrPerformanceMetricsCounterFlagsMETA; // Flag bits for XrPerformanceMetricsCounterFlagsMETA static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META = 0x00000001; static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META = 0x00000002; static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META = 0x00000004; typedef struct XrPerformanceMetricsStateMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; } XrPerformanceMetricsStateMETA; typedef struct XrPerformanceMetricsCounterMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPerformanceMetricsCounterFlagsMETA counterFlags; XrPerformanceMetricsCounterUnitMETA counterUnit; uint32_t uintValue; float floatValue; } XrPerformanceMetricsCounterMETA; typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePerformanceMetricsCounterPathsMETA)(XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths); typedef XrResult (XRAPI_PTR *PFN_xrSetPerformanceMetricsStateMETA)(XrSession session, const XrPerformanceMetricsStateMETA* state); typedef XrResult (XRAPI_PTR *PFN_xrGetPerformanceMetricsStateMETA)(XrSession session, XrPerformanceMetricsStateMETA* state); typedef XrResult (XRAPI_PTR *PFN_xrQueryPerformanceMetricsCounterMETA)(XrSession session, XrPath counterPath, XrPerformanceMetricsCounterMETA* counter); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePerformanceMetricsCounterPathsMETA( XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths); XRAPI_ATTR XrResult XRAPI_CALL xrSetPerformanceMetricsStateMETA( XrSession session, const XrPerformanceMetricsStateMETA* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetPerformanceMetricsStateMETA( XrSession session, XrPerformanceMetricsStateMETA* state); XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterMETA( XrSession session, XrPath counterPath, XrPerformanceMetricsCounterMETA* counter); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_spatial_entity_storage_batch is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity_storage_batch 1 #define XR_FB_spatial_entity_storage_batch_SPEC_VERSION 1 #define XR_FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME "XR_FB_spatial_entity_storage_batch" typedef struct XrSpaceListSaveInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t spaceCount; XrSpace* spaces; XrSpaceStorageLocationFB location; } XrSpaceListSaveInfoFB; typedef struct XrEventDataSpaceListSaveCompleteFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSpaceListSaveCompleteFB; typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceListFB)(XrSession session, const XrSpaceListSaveInfoFB* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceListFB( XrSession session, const XrSpaceListSaveInfoFB* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_detached_controllers is a preprocessor guard. Do not pass it to API calls. #define XR_META_detached_controllers 1 #define XR_META_detached_controllers_SPEC_VERSION 1 #define XR_META_DETACHED_CONTROLLERS_EXTENSION_NAME "XR_META_detached_controllers" // XR_FB_spatial_entity_user is a preprocessor guard. Do not pass it to API calls. #define XR_FB_spatial_entity_user 1 typedef uint64_t XrSpaceUserIdFB; #define XR_FB_spatial_entity_user_SPEC_VERSION 1 #define XR_FB_SPATIAL_ENTITY_USER_EXTENSION_NAME "XR_FB_spatial_entity_user" typedef struct XrSpaceUserCreateInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpaceUserIdFB userId; } XrSpaceUserCreateInfoFB; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpaceUserFB)(XrSession session, const XrSpaceUserCreateInfoFB* info, XrSpaceUserFB* user); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUserIdFB)(XrSpaceUserFB user, XrSpaceUserIdFB* userId); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpaceUserFB)(XrSpaceUserFB user); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpaceUserFB( XrSession session, const XrSpaceUserCreateInfoFB* info, XrSpaceUserFB* user); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUserIdFB( XrSpaceUserFB user, XrSpaceUserIdFB* userId); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpaceUserFB( XrSpaceUserFB user); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_headset_id is a preprocessor guard. Do not pass it to API calls. #define XR_META_headset_id 1 #define XR_META_headset_id_SPEC_VERSION 2 #define XR_META_HEADSET_ID_EXTENSION_NAME "XR_META_headset_id" // XrSystemHeadsetIdPropertiesMETA extends XrSystemProperties typedef struct XrSystemHeadsetIdPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrUuidEXT id; } XrSystemHeadsetIdPropertiesMETA; // XR_META_spatial_entity_discovery is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_discovery 1 #define XR_META_spatial_entity_discovery_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_DISCOVERY_EXTENSION_NAME "XR_META_spatial_entity_discovery" // XrSystemSpaceDiscoveryPropertiesMETA extends XrSystemProperties typedef struct XrSystemSpaceDiscoveryPropertiesMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 supportsSpaceDiscovery; } XrSystemSpaceDiscoveryPropertiesMETA; typedef struct XR_MAY_ALIAS XrSpaceFilterBaseHeaderMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpaceFilterBaseHeaderMETA; typedef struct XrSpaceDiscoveryInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t filterCount; const XrSpaceFilterBaseHeaderMETA* const * filters; } XrSpaceDiscoveryInfoMETA; typedef struct XrSpaceFilterUuidMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t uuidCount; const XrUuidEXT* uuids; } XrSpaceFilterUuidMETA; typedef struct XrSpaceFilterComponentMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpaceComponentTypeFB componentType; } XrSpaceFilterComponentMETA; typedef struct XrSpaceDiscoveryResultMETA { XrSpace space; XrUuidEXT uuid; } XrSpaceDiscoveryResultMETA; typedef struct XrSpaceDiscoveryResultsMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t resultCapacityInput; uint32_t resultCountOutput; XrSpaceDiscoveryResultMETA* results; } XrSpaceDiscoveryResultsMETA; typedef struct XrEventDataSpaceDiscoveryResultsAvailableMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; } XrEventDataSpaceDiscoveryResultsAvailableMETA; typedef struct XrEventDataSpaceDiscoveryCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSpaceDiscoveryCompleteMETA; typedef XrResult (XRAPI_PTR *PFN_xrDiscoverSpacesMETA)(XrSession session, const XrSpaceDiscoveryInfoMETA* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceDiscoveryResultsMETA)(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceDiscoveryResultsMETA* results); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrDiscoverSpacesMETA( XrSession session, const XrSpaceDiscoveryInfoMETA* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrRetrieveSpaceDiscoveryResultsMETA( XrSession session, XrAsyncRequestIdFB requestId, XrSpaceDiscoveryResultsMETA* results); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_hand_tracking_microgestures is a preprocessor guard. Do not pass it to API calls. #define XR_META_hand_tracking_microgestures 1 #define XR_META_hand_tracking_microgestures_SPEC_VERSION 1 #define XR_META_HAND_TRACKING_MICROGESTURES_EXTENSION_NAME "XR_META_hand_tracking_microgestures" // XR_META_recommended_layer_resolution is a preprocessor guard. Do not pass it to API calls. #define XR_META_recommended_layer_resolution 1 #define XR_META_recommended_layer_resolution_SPEC_VERSION 1 #define XR_META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME "XR_META_recommended_layer_resolution" typedef struct XrRecommendedLayerResolutionMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrExtent2Di recommendedImageDimensions; XrBool32 isValid; } XrRecommendedLayerResolutionMETA; typedef struct XrRecommendedLayerResolutionGetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; const XrCompositionLayerBaseHeader* layer; XrTime predictedDisplayTime; } XrRecommendedLayerResolutionGetInfoMETA; typedef XrResult (XRAPI_PTR *PFN_xrGetRecommendedLayerResolutionMETA)(XrSession session, const XrRecommendedLayerResolutionGetInfoMETA* info, XrRecommendedLayerResolutionMETA* resolution); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetRecommendedLayerResolutionMETA( XrSession session, const XrRecommendedLayerResolutionGetInfoMETA* info, XrRecommendedLayerResolutionMETA* resolution); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_spatial_entity_persistence is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_persistence 1 #define XR_META_spatial_entity_persistence_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_PERSISTENCE_EXTENSION_NAME "XR_META_spatial_entity_persistence" // XrSystemSpacePersistencePropertiesMETA extends XrSystemProperties typedef struct XrSystemSpacePersistencePropertiesMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 supportsSpacePersistence; } XrSystemSpacePersistencePropertiesMETA; typedef struct XrSpacesSaveInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t spaceCount; XrSpace* spaces; } XrSpacesSaveInfoMETA; typedef struct XrEventDataSpacesSaveResultMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSpacesSaveResultMETA; typedef struct XrSpacesEraseInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t spaceCount; XrSpace* spaces; uint32_t uuidCount; XrUuidEXT* uuids; } XrSpacesEraseInfoMETA; typedef struct XrEventDataSpacesEraseResultMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataSpacesEraseResultMETA; typedef XrResult (XRAPI_PTR *PFN_xrSaveSpacesMETA)(XrSession session, const XrSpacesSaveInfoMETA* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrEraseSpacesMETA)(XrSession session, const XrSpacesEraseInfoMETA* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpacesMETA( XrSession session, const XrSpacesSaveInfoMETA* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrEraseSpacesMETA( XrSession session, const XrSpacesEraseInfoMETA* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_passthrough_color_lut is a preprocessor guard. Do not pass it to API calls. #define XR_META_passthrough_color_lut 1 XR_DEFINE_HANDLE(XrPassthroughColorLutMETA) #define XR_META_passthrough_color_lut_SPEC_VERSION 1 #define XR_META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME "XR_META_passthrough_color_lut" typedef enum XrPassthroughColorLutChannelsMETA { XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGB_META = 1, XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGBA_META = 2, XR_PASSTHROUGH_COLOR_LUT_CHANNELS_MAX_ENUM_META = 0x7FFFFFFF } XrPassthroughColorLutChannelsMETA; typedef struct XrPassthroughColorLutDataMETA { uint32_t bufferSize; const uint8_t* buffer; } XrPassthroughColorLutDataMETA; typedef struct XrPassthroughColorLutCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughColorLutChannelsMETA channels; uint32_t resolution; XrPassthroughColorLutDataMETA data; } XrPassthroughColorLutCreateInfoMETA; typedef struct XrPassthroughColorLutUpdateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughColorLutDataMETA data; } XrPassthroughColorLutUpdateInfoMETA; // XrPassthroughColorMapLutMETA extends XrPassthroughStyleFB typedef struct XrPassthroughColorMapLutMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughColorLutMETA colorLut; float weight; } XrPassthroughColorMapLutMETA; // XrPassthroughColorMapInterpolatedLutMETA extends XrPassthroughStyleFB typedef struct XrPassthroughColorMapInterpolatedLutMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughColorLutMETA sourceColorLut; XrPassthroughColorLutMETA targetColorLut; float weight; } XrPassthroughColorMapInterpolatedLutMETA; // XrSystemPassthroughColorLutPropertiesMETA extends XrSystemProperties typedef struct XrSystemPassthroughColorLutPropertiesMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t maxColorLutResolution; } XrSystemPassthroughColorLutPropertiesMETA; typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughColorLutMETA)(XrPassthroughFB passthrough, const XrPassthroughColorLutCreateInfoMETA* createInfo, XrPassthroughColorLutMETA* colorLut); typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughColorLutMETA)(XrPassthroughColorLutMETA colorLut); typedef XrResult (XRAPI_PTR *PFN_xrUpdatePassthroughColorLutMETA)(XrPassthroughColorLutMETA colorLut, const XrPassthroughColorLutUpdateInfoMETA* updateInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughColorLutMETA( XrPassthroughFB passthrough, const XrPassthroughColorLutCreateInfoMETA* createInfo, XrPassthroughColorLutMETA* colorLut); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughColorLutMETA( XrPassthroughColorLutMETA colorLut); XRAPI_ATTR XrResult XRAPI_CALL xrUpdatePassthroughColorLutMETA( XrPassthroughColorLutMETA colorLut, const XrPassthroughColorLutUpdateInfoMETA* updateInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_spatial_entity_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_mesh 1 #define XR_META_spatial_entity_mesh_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_MESH_EXTENSION_NAME "XR_META_spatial_entity_mesh" typedef struct XrSpaceTriangleMeshGetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpaceTriangleMeshGetInfoMETA; typedef struct XrSpaceTriangleMeshMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertices; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrSpaceTriangleMeshMETA; typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceTriangleMeshMETA)(XrSpace space, const XrSpaceTriangleMeshGetInfoMETA* getInfo, XrSpaceTriangleMeshMETA* triangleMeshOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceTriangleMeshMETA( XrSpace space, const XrSpaceTriangleMeshGetInfoMETA* getInfo, XrSpaceTriangleMeshMETA* triangleMeshOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_automatic_layer_filter is a preprocessor guard. Do not pass it to API calls. #define XR_META_automatic_layer_filter 1 #define XR_META_automatic_layer_filter_SPEC_VERSION 1 #define XR_META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME "XR_META_automatic_layer_filter" // XR_META_body_tracking_full_body is a preprocessor guard. Do not pass it to API calls. #define XR_META_body_tracking_full_body 1 #define XR_META_body_tracking_full_body_SPEC_VERSION 1 #define XR_META_BODY_TRACKING_FULL_BODY_EXTENSION_NAME "XR_META_body_tracking_full_body" typedef enum XrFullBodyJointMETA { XR_FULL_BODY_JOINT_ROOT_META = 0, XR_FULL_BODY_JOINT_HIPS_META = 1, XR_FULL_BODY_JOINT_SPINE_LOWER_META = 2, XR_FULL_BODY_JOINT_SPINE_MIDDLE_META = 3, XR_FULL_BODY_JOINT_SPINE_UPPER_META = 4, XR_FULL_BODY_JOINT_CHEST_META = 5, XR_FULL_BODY_JOINT_NECK_META = 6, XR_FULL_BODY_JOINT_HEAD_META = 7, XR_FULL_BODY_JOINT_LEFT_SHOULDER_META = 8, XR_FULL_BODY_JOINT_LEFT_SCAPULA_META = 9, XR_FULL_BODY_JOINT_LEFT_ARM_UPPER_META = 10, XR_FULL_BODY_JOINT_LEFT_ARM_LOWER_META = 11, XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_TWIST_META = 12, XR_FULL_BODY_JOINT_RIGHT_SHOULDER_META = 13, XR_FULL_BODY_JOINT_RIGHT_SCAPULA_META = 14, XR_FULL_BODY_JOINT_RIGHT_ARM_UPPER_META = 15, XR_FULL_BODY_JOINT_RIGHT_ARM_LOWER_META = 16, XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_META = 17, XR_FULL_BODY_JOINT_LEFT_HAND_PALM_META = 18, XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_META = 19, XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_META = 20, XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_META = 21, XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_META = 22, XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_TIP_META = 23, XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_META = 24, XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_META = 25, XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_META = 26, XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_META = 27, XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_TIP_META = 28, XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_META = 29, XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_META = 30, XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_META = 31, XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_META = 32, XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_META = 33, XR_FULL_BODY_JOINT_LEFT_HAND_RING_METACARPAL_META = 34, XR_FULL_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_META = 35, XR_FULL_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_META = 36, XR_FULL_BODY_JOINT_LEFT_HAND_RING_DISTAL_META = 37, XR_FULL_BODY_JOINT_LEFT_HAND_RING_TIP_META = 38, XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_META = 39, XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_META = 40, XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_META = 41, XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_META = 42, XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_TIP_META = 43, XR_FULL_BODY_JOINT_RIGHT_HAND_PALM_META = 44, XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_META = 45, XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_META = 46, XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_META = 47, XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_META = 48, XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_TIP_META = 49, XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_META = 50, XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_META = 51, XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_META = 52, XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_META = 53, XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_TIP_META = 54, XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_META = 55, XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_META = 56, XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_META = 57, XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_META = 58, XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_META = 59, XR_FULL_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_META = 60, XR_FULL_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_META = 61, XR_FULL_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_META = 62, XR_FULL_BODY_JOINT_RIGHT_HAND_RING_DISTAL_META = 63, XR_FULL_BODY_JOINT_RIGHT_HAND_RING_TIP_META = 64, XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_META = 65, XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_META = 66, XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_META = 67, XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_META = 68, XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_META = 69, XR_FULL_BODY_JOINT_LEFT_UPPER_LEG_META = 70, XR_FULL_BODY_JOINT_LEFT_LOWER_LEG_META = 71, XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_TWIST_META = 72, XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_META = 73, XR_FULL_BODY_JOINT_LEFT_FOOT_SUBTALAR_META = 74, XR_FULL_BODY_JOINT_LEFT_FOOT_TRANSVERSE_META = 75, XR_FULL_BODY_JOINT_LEFT_FOOT_BALL_META = 76, XR_FULL_BODY_JOINT_RIGHT_UPPER_LEG_META = 77, XR_FULL_BODY_JOINT_RIGHT_LOWER_LEG_META = 78, XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_TWIST_META = 79, XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_META = 80, XR_FULL_BODY_JOINT_RIGHT_FOOT_SUBTALAR_META = 81, XR_FULL_BODY_JOINT_RIGHT_FOOT_TRANSVERSE_META = 82, XR_FULL_BODY_JOINT_RIGHT_FOOT_BALL_META = 83, XR_FULL_BODY_JOINT_COUNT_META = 84, XR_FULL_BODY_JOINT_NONE_META = 85, XR_FULL_BODY_JOINT_MAX_ENUM_META = 0x7FFFFFFF } XrFullBodyJointMETA; // XrSystemPropertiesBodyTrackingFullBodyMETA extends XrSystemProperties typedef struct XrSystemPropertiesBodyTrackingFullBodyMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFullBodyTracking; } XrSystemPropertiesBodyTrackingFullBodyMETA; // XR_META_touch_controller_plus is a preprocessor guard. Do not pass it to API calls. #define XR_META_touch_controller_plus 1 #define XR_META_touch_controller_plus_SPEC_VERSION 1 #define XR_META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME "XR_META_touch_controller_plus" // XR_META_passthrough_layer_resumed_event is a preprocessor guard. Do not pass it to API calls. #define XR_META_passthrough_layer_resumed_event 1 #define XR_META_passthrough_layer_resumed_event_SPEC_VERSION 1 #define XR_META_PASSTHROUGH_LAYER_RESUMED_EVENT_EXTENSION_NAME "XR_META_passthrough_layer_resumed_event" typedef struct XrEventDataPassthroughLayerResumedMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughLayerFB layer; } XrEventDataPassthroughLayerResumedMETA; // XR_META_body_tracking_calibration is a preprocessor guard. Do not pass it to API calls. #define XR_META_body_tracking_calibration 1 #define XR_META_body_tracking_calibration_SPEC_VERSION 1 #define XR_META_BODY_TRACKING_CALIBRATION_EXTENSION_NAME "XR_META_body_tracking_calibration" typedef enum XrBodyTrackingCalibrationStateMETA { XR_BODY_TRACKING_CALIBRATION_STATE_VALID_META = 1, XR_BODY_TRACKING_CALIBRATION_STATE_CALIBRATING_META = 2, XR_BODY_TRACKING_CALIBRATION_STATE_INVALID_META = 3, XR_BODY_TRACKING_CALIBRATION_STATE_MAX_ENUM_META = 0x7FFFFFFF } XrBodyTrackingCalibrationStateMETA; // XrBodyTrackingCalibrationStatusMETA extends XrBodyJointLocationsFB typedef struct XrBodyTrackingCalibrationStatusMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBodyTrackingCalibrationStateMETA status; } XrBodyTrackingCalibrationStatusMETA; typedef struct XrBodyTrackingCalibrationInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; float bodyHeight; } XrBodyTrackingCalibrationInfoMETA; // XrSystemPropertiesBodyTrackingCalibrationMETA extends XrSystemProperties typedef struct XrSystemPropertiesBodyTrackingCalibrationMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsHeightOverride; } XrSystemPropertiesBodyTrackingCalibrationMETA; typedef XrResult (XRAPI_PTR *PFN_xrSuggestBodyTrackingCalibrationOverrideMETA)(XrBodyTrackerFB bodyTracker, const XrBodyTrackingCalibrationInfoMETA* calibrationInfo); typedef XrResult (XRAPI_PTR *PFN_xrResetBodyTrackingCalibrationMETA)(XrBodyTrackerFB bodyTracker); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSuggestBodyTrackingCalibrationOverrideMETA( XrBodyTrackerFB bodyTracker, const XrBodyTrackingCalibrationInfoMETA* calibrationInfo); XRAPI_ATTR XrResult XRAPI_CALL xrResetBodyTrackingCalibrationMETA( XrBodyTrackerFB bodyTracker); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_body_tracking_fidelity is a preprocessor guard. Do not pass it to API calls. #define XR_META_body_tracking_fidelity 1 #define XR_META_body_tracking_fidelity_SPEC_VERSION 1 #define XR_META_BODY_TRACKING_FIDELITY_EXTENSION_NAME "XR_META_body_tracking_fidelity" typedef enum XrBodyTrackingFidelityMETA { XR_BODY_TRACKING_FIDELITY_LOW_META = 1, XR_BODY_TRACKING_FIDELITY_HIGH_META = 2, XR_BODY_TRACKING_FIDELITY_MAX_ENUM_META = 0x7FFFFFFF } XrBodyTrackingFidelityMETA; // XrSystemPropertiesBodyTrackingFidelityMETA extends XrSystemProperties typedef struct XrSystemPropertiesBodyTrackingFidelityMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsBodyTrackingFidelity; } XrSystemPropertiesBodyTrackingFidelityMETA; // XrBodyTrackingFidelityStatusMETA extends XrBodyJointLocationsFB typedef struct XrBodyTrackingFidelityStatusMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBodyTrackingFidelityMETA fidelity; } XrBodyTrackingFidelityStatusMETA; typedef XrResult (XRAPI_PTR *PFN_xrRequestBodyTrackingFidelityMETA)(XrBodyTrackerFB bodyTracker, const XrBodyTrackingFidelityMETA fidelity); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrRequestBodyTrackingFidelityMETA( XrBodyTrackerFB bodyTracker, const XrBodyTrackingFidelityMETA fidelity); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_FB_face_tracking2 is a preprocessor guard. Do not pass it to API calls. #define XR_FB_face_tracking2 1 XR_DEFINE_HANDLE(XrFaceTracker2FB) #define XR_FB_face_tracking2_SPEC_VERSION 1 #define XR_FB_FACE_TRACKING2_EXTENSION_NAME "XR_FB_face_tracking2" typedef enum XrFaceExpression2FB { XR_FACE_EXPRESSION2_BROW_LOWERER_L_FB = 0, XR_FACE_EXPRESSION2_BROW_LOWERER_R_FB = 1, XR_FACE_EXPRESSION2_CHEEK_PUFF_L_FB = 2, XR_FACE_EXPRESSION2_CHEEK_PUFF_R_FB = 3, XR_FACE_EXPRESSION2_CHEEK_RAISER_L_FB = 4, XR_FACE_EXPRESSION2_CHEEK_RAISER_R_FB = 5, XR_FACE_EXPRESSION2_CHEEK_SUCK_L_FB = 6, XR_FACE_EXPRESSION2_CHEEK_SUCK_R_FB = 7, XR_FACE_EXPRESSION2_CHIN_RAISER_B_FB = 8, XR_FACE_EXPRESSION2_CHIN_RAISER_T_FB = 9, XR_FACE_EXPRESSION2_DIMPLER_L_FB = 10, XR_FACE_EXPRESSION2_DIMPLER_R_FB = 11, XR_FACE_EXPRESSION2_EYES_CLOSED_L_FB = 12, XR_FACE_EXPRESSION2_EYES_CLOSED_R_FB = 13, XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_L_FB = 14, XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_R_FB = 15, XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_L_FB = 16, XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_R_FB = 17, XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_L_FB = 18, XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_R_FB = 19, XR_FACE_EXPRESSION2_EYES_LOOK_UP_L_FB = 20, XR_FACE_EXPRESSION2_EYES_LOOK_UP_R_FB = 21, XR_FACE_EXPRESSION2_INNER_BROW_RAISER_L_FB = 22, XR_FACE_EXPRESSION2_INNER_BROW_RAISER_R_FB = 23, XR_FACE_EXPRESSION2_JAW_DROP_FB = 24, XR_FACE_EXPRESSION2_JAW_SIDEWAYS_LEFT_FB = 25, XR_FACE_EXPRESSION2_JAW_SIDEWAYS_RIGHT_FB = 26, XR_FACE_EXPRESSION2_JAW_THRUST_FB = 27, XR_FACE_EXPRESSION2_LID_TIGHTENER_L_FB = 28, XR_FACE_EXPRESSION2_LID_TIGHTENER_R_FB = 29, XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_L_FB = 30, XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_R_FB = 31, XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_L_FB = 32, XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_R_FB = 33, XR_FACE_EXPRESSION2_LIP_FUNNELER_LB_FB = 34, XR_FACE_EXPRESSION2_LIP_FUNNELER_LT_FB = 35, XR_FACE_EXPRESSION2_LIP_FUNNELER_RB_FB = 36, XR_FACE_EXPRESSION2_LIP_FUNNELER_RT_FB = 37, XR_FACE_EXPRESSION2_LIP_PRESSOR_L_FB = 38, XR_FACE_EXPRESSION2_LIP_PRESSOR_R_FB = 39, XR_FACE_EXPRESSION2_LIP_PUCKER_L_FB = 40, XR_FACE_EXPRESSION2_LIP_PUCKER_R_FB = 41, XR_FACE_EXPRESSION2_LIP_STRETCHER_L_FB = 42, XR_FACE_EXPRESSION2_LIP_STRETCHER_R_FB = 43, XR_FACE_EXPRESSION2_LIP_SUCK_LB_FB = 44, XR_FACE_EXPRESSION2_LIP_SUCK_LT_FB = 45, XR_FACE_EXPRESSION2_LIP_SUCK_RB_FB = 46, XR_FACE_EXPRESSION2_LIP_SUCK_RT_FB = 47, XR_FACE_EXPRESSION2_LIP_TIGHTENER_L_FB = 48, XR_FACE_EXPRESSION2_LIP_TIGHTENER_R_FB = 49, XR_FACE_EXPRESSION2_LIPS_TOWARD_FB = 50, XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_L_FB = 51, XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_R_FB = 52, XR_FACE_EXPRESSION2_MOUTH_LEFT_FB = 53, XR_FACE_EXPRESSION2_MOUTH_RIGHT_FB = 54, XR_FACE_EXPRESSION2_NOSE_WRINKLER_L_FB = 55, XR_FACE_EXPRESSION2_NOSE_WRINKLER_R_FB = 56, XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_L_FB = 57, XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_R_FB = 58, XR_FACE_EXPRESSION2_UPPER_LID_RAISER_L_FB = 59, XR_FACE_EXPRESSION2_UPPER_LID_RAISER_R_FB = 60, XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_L_FB = 61, XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_R_FB = 62, XR_FACE_EXPRESSION2_TONGUE_TIP_INTERDENTAL_FB = 63, XR_FACE_EXPRESSION2_TONGUE_TIP_ALVEOLAR_FB = 64, XR_FACE_EXPRESSION2_TONGUE_FRONT_DORSAL_PALATE_FB = 65, XR_FACE_EXPRESSION2_TONGUE_MID_DORSAL_PALATE_FB = 66, XR_FACE_EXPRESSION2_TONGUE_BACK_DORSAL_VELAR_FB = 67, XR_FACE_EXPRESSION2_TONGUE_OUT_FB = 68, XR_FACE_EXPRESSION2_TONGUE_RETREAT_FB = 69, XR_FACE_EXPRESSION2_COUNT_FB = 70, XR_FACE_EXPRESSION_2FB_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceExpression2FB; typedef enum XrFaceExpressionSet2FB { XR_FACE_EXPRESSION_SET2_DEFAULT_FB = 0, XR_FACE_EXPRESSION_SET_2FB_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceExpressionSet2FB; typedef enum XrFaceTrackingDataSource2FB { XR_FACE_TRACKING_DATA_SOURCE2_VISUAL_FB = 0, XR_FACE_TRACKING_DATA_SOURCE2_AUDIO_FB = 1, XR_FACE_TRACKING_DATA_SOURCE_2FB_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceTrackingDataSource2FB; typedef enum XrFaceConfidence2FB { XR_FACE_CONFIDENCE2_LOWER_FACE_FB = 0, XR_FACE_CONFIDENCE2_UPPER_FACE_FB = 1, XR_FACE_CONFIDENCE2_COUNT_FB = 2, XR_FACE_CONFIDENCE_2FB_MAX_ENUM_FB = 0x7FFFFFFF } XrFaceConfidence2FB; // XrSystemFaceTrackingProperties2FB extends XrSystemProperties typedef struct XrSystemFaceTrackingProperties2FB { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsVisualFaceTracking; XrBool32 supportsAudioFaceTracking; } XrSystemFaceTrackingProperties2FB; typedef struct XrFaceTrackerCreateInfo2FB { XrStructureType type; const void* XR_MAY_ALIAS next; XrFaceExpressionSet2FB faceExpressionSet; uint32_t requestedDataSourceCount; XrFaceTrackingDataSource2FB* requestedDataSources; } XrFaceTrackerCreateInfo2FB; typedef struct XrFaceExpressionInfo2FB { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; } XrFaceExpressionInfo2FB; typedef struct XrFaceExpressionWeights2FB { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t weightCount; float* weights; uint32_t confidenceCount; float* confidences; XrBool32 isValid; XrBool32 isEyeFollowingBlendshapesValid; XrFaceTrackingDataSource2FB dataSource; XrTime time; } XrFaceExpressionWeights2FB; typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTracker2FB)(XrSession session, const XrFaceTrackerCreateInfo2FB* createInfo, XrFaceTracker2FB* faceTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTracker2FB)(XrFaceTracker2FB faceTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetFaceExpressionWeights2FB)(XrFaceTracker2FB faceTracker, const XrFaceExpressionInfo2FB* expressionInfo, XrFaceExpressionWeights2FB* expressionWeights); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTracker2FB( XrSession session, const XrFaceTrackerCreateInfo2FB* createInfo, XrFaceTracker2FB* faceTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTracker2FB( XrFaceTracker2FB faceTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeights2FB( XrFaceTracker2FB faceTracker, const XrFaceExpressionInfo2FB* expressionInfo, XrFaceExpressionWeights2FB* expressionWeights); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_spatial_entity_sharing is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_sharing 1 #define XR_META_spatial_entity_sharing_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_SHARING_EXTENSION_NAME "XR_META_spatial_entity_sharing" #define XR_MAX_SPACES_PER_SHARE_REQUEST_META 32 // XrSystemSpatialEntitySharingPropertiesMETA extends XrSystemProperties typedef struct XrSystemSpatialEntitySharingPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialEntitySharing; } XrSystemSpatialEntitySharingPropertiesMETA; typedef struct XR_MAY_ALIAS XrShareSpacesRecipientBaseHeaderMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrShareSpacesRecipientBaseHeaderMETA; typedef struct XrShareSpacesInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t spaceCount; XrSpace* spaces; const XrShareSpacesRecipientBaseHeaderMETA* recipientInfo; } XrShareSpacesInfoMETA; typedef struct XrEventDataShareSpacesCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataShareSpacesCompleteMETA; typedef XrResult (XRAPI_PTR *PFN_xrShareSpacesMETA)(XrSession session, const XrShareSpacesInfoMETA* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesMETA( XrSession session, const XrShareSpacesInfoMETA* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_environment_depth is a preprocessor guard. Do not pass it to API calls. #define XR_META_environment_depth 1 XR_DEFINE_HANDLE(XrEnvironmentDepthProviderMETA) XR_DEFINE_HANDLE(XrEnvironmentDepthSwapchainMETA) #define XR_META_environment_depth_SPEC_VERSION 2 #define XR_META_ENVIRONMENT_DEPTH_EXTENSION_NAME "XR_META_environment_depth" typedef XrFlags64 XrEnvironmentDepthProviderCreateFlagsMETA; // Flag bits for XrEnvironmentDepthProviderCreateFlagsMETA typedef XrFlags64 XrEnvironmentDepthSwapchainCreateFlagsMETA; // Flag bits for XrEnvironmentDepthSwapchainCreateFlagsMETA typedef struct XrEnvironmentDepthProviderCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrEnvironmentDepthProviderCreateFlagsMETA createFlags; } XrEnvironmentDepthProviderCreateInfoMETA; typedef struct XrEnvironmentDepthSwapchainCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrEnvironmentDepthSwapchainCreateFlagsMETA createFlags; } XrEnvironmentDepthSwapchainCreateInfoMETA; typedef struct XrEnvironmentDepthSwapchainStateMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t width; uint32_t height; } XrEnvironmentDepthSwapchainStateMETA; typedef struct XrEnvironmentDepthImageAcquireInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime displayTime; } XrEnvironmentDepthImageAcquireInfoMETA; typedef struct XrEnvironmentDepthImageViewMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrFovf fov; XrPosef pose; } XrEnvironmentDepthImageViewMETA; typedef struct XrEnvironmentDepthImageMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t swapchainIndex; float nearZ; float farZ; XrEnvironmentDepthImageViewMETA views[2]; } XrEnvironmentDepthImageMETA; // XrEnvironmentDepthImageTimestampMETA extends XrEnvironmentDepthImageMETA typedef struct XrEnvironmentDepthImageTimestampMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime captureTime; } XrEnvironmentDepthImageTimestampMETA; typedef struct XrEnvironmentDepthHandRemovalSetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; } XrEnvironmentDepthHandRemovalSetInfoMETA; // XrSystemEnvironmentDepthPropertiesMETA extends XrSystemProperties typedef struct XrSystemEnvironmentDepthPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsEnvironmentDepth; XrBool32 supportsHandRemoval; } XrSystemEnvironmentDepthPropertiesMETA; typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentDepthProviderMETA)(XrSession session, const XrEnvironmentDepthProviderCreateInfoMETA* createInfo, XrEnvironmentDepthProviderMETA* environmentDepthProvider); typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider); typedef XrResult (XRAPI_PTR *PFN_xrStartEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider); typedef XrResult (XRAPI_PTR *PFN_xrStopEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider); typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentDepthSwapchainMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo, XrEnvironmentDepthSwapchainMETA* swapchain); typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentDepthSwapchainMETA)(XrEnvironmentDepthSwapchainMETA swapchain); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentDepthSwapchainImagesMETA)(XrEnvironmentDepthSwapchainMETA swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images); typedef XrResult (XRAPI_PTR *PFN_xrGetEnvironmentDepthSwapchainStateMETA)(XrEnvironmentDepthSwapchainMETA swapchain, XrEnvironmentDepthSwapchainStateMETA* state); typedef XrResult (XRAPI_PTR *PFN_xrAcquireEnvironmentDepthImageMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo, XrEnvironmentDepthImageMETA* environmentDepthImage); typedef XrResult (XRAPI_PTR *PFN_xrSetEnvironmentDepthHandRemovalMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthProviderMETA( XrSession session, const XrEnvironmentDepthProviderCreateInfoMETA* createInfo, XrEnvironmentDepthProviderMETA* environmentDepthProvider); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthProviderMETA( XrEnvironmentDepthProviderMETA environmentDepthProvider); XRAPI_ATTR XrResult XRAPI_CALL xrStartEnvironmentDepthProviderMETA( XrEnvironmentDepthProviderMETA environmentDepthProvider); XRAPI_ATTR XrResult XRAPI_CALL xrStopEnvironmentDepthProviderMETA( XrEnvironmentDepthProviderMETA environmentDepthProvider); XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthSwapchainMETA( XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo, XrEnvironmentDepthSwapchainMETA* swapchain); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthSwapchainMETA( XrEnvironmentDepthSwapchainMETA swapchain); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentDepthSwapchainImagesMETA( XrEnvironmentDepthSwapchainMETA swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images); XRAPI_ATTR XrResult XRAPI_CALL xrGetEnvironmentDepthSwapchainStateMETA( XrEnvironmentDepthSwapchainMETA swapchain, XrEnvironmentDepthSwapchainStateMETA* state); XRAPI_ATTR XrResult XRAPI_CALL xrAcquireEnvironmentDepthImageMETA( XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo, XrEnvironmentDepthImageMETA* environmentDepthImage); XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthHandRemovalMETA( XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_uuid is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_uuid 1 #define XR_EXT_uuid_SPEC_VERSION 1 #define XR_EXT_UUID_EXTENSION_NAME "XR_EXT_uuid" #define XR_UUID_SIZE_EXT 16 // XR_EXT_render_model is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_render_model 1 XR_DEFINE_ATOM(XrRenderModelIdEXT) XR_DEFINE_HANDLE(XrRenderModelEXT) XR_DEFINE_HANDLE(XrRenderModelAssetEXT) #define XR_MAX_RENDER_MODEL_ASSET_NODE_NAME_SIZE_EXT 64 #define XR_EXT_render_model_SPEC_VERSION 1 #define XR_EXT_RENDER_MODEL_EXTENSION_NAME "XR_EXT_render_model" #define XR_NULL_RENDER_MODEL_ID_EXT 0 typedef struct XrRenderModelCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrRenderModelIdEXT renderModelId; uint32_t gltfExtensionCount; const char* const* gltfExtensions; } XrRenderModelCreateInfoEXT; typedef struct XrRenderModelPropertiesGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrRenderModelPropertiesGetInfoEXT; typedef struct XrRenderModelPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrUuidEXT cacheId; uint32_t animatableNodeCount; } XrRenderModelPropertiesEXT; typedef struct XrRenderModelSpaceCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrRenderModelEXT renderModel; } XrRenderModelSpaceCreateInfoEXT; typedef struct XrRenderModelStateGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime displayTime; } XrRenderModelStateGetInfoEXT; typedef struct XrRenderModelNodeStateEXT { XrPosef nodePose; XrBool32 isVisible; } XrRenderModelNodeStateEXT; typedef struct XrRenderModelStateEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t nodeStateCount; XrRenderModelNodeStateEXT* nodeStates; } XrRenderModelStateEXT; typedef struct XrRenderModelAssetCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidEXT cacheId; } XrRenderModelAssetCreateInfoEXT; typedef struct XrRenderModelAssetDataGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrRenderModelAssetDataGetInfoEXT; typedef struct XrRenderModelAssetDataEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t bufferCapacityInput; uint32_t bufferCountOutput; uint8_t* buffer; } XrRenderModelAssetDataEXT; typedef struct XrRenderModelAssetPropertiesGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrRenderModelAssetPropertiesGetInfoEXT; typedef struct XrRenderModelAssetNodePropertiesEXT { char uniqueName[XR_MAX_RENDER_MODEL_ASSET_NODE_NAME_SIZE_EXT]; } XrRenderModelAssetNodePropertiesEXT; typedef struct XrRenderModelAssetPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t nodePropertyCount; XrRenderModelAssetNodePropertiesEXT* nodeProperties; } XrRenderModelAssetPropertiesEXT; typedef XrResult (XRAPI_PTR *PFN_xrCreateRenderModelEXT)(XrSession session, const XrRenderModelCreateInfoEXT* createInfo, XrRenderModelEXT* renderModel); typedef XrResult (XRAPI_PTR *PFN_xrDestroyRenderModelEXT)(XrRenderModelEXT renderModel); typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPropertiesEXT)(XrRenderModelEXT renderModel, const XrRenderModelPropertiesGetInfoEXT* getInfo, XrRenderModelPropertiesEXT* properties); typedef XrResult (XRAPI_PTR *PFN_xrCreateRenderModelSpaceEXT)(XrSession session, const XrRenderModelSpaceCreateInfoEXT* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrCreateRenderModelAssetEXT)(XrSession session, const XrRenderModelAssetCreateInfoEXT* createInfo, XrRenderModelAssetEXT* asset); typedef XrResult (XRAPI_PTR *PFN_xrDestroyRenderModelAssetEXT)(XrRenderModelAssetEXT asset); typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelAssetDataEXT)(XrRenderModelAssetEXT asset, const XrRenderModelAssetDataGetInfoEXT* getInfo, XrRenderModelAssetDataEXT* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelAssetPropertiesEXT)(XrRenderModelAssetEXT asset, const XrRenderModelAssetPropertiesGetInfoEXT* getInfo, XrRenderModelAssetPropertiesEXT* properties); typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelStateEXT)(XrRenderModelEXT renderModel, const XrRenderModelStateGetInfoEXT* getInfo, XrRenderModelStateEXT* state); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateRenderModelEXT( XrSession session, const XrRenderModelCreateInfoEXT* createInfo, XrRenderModelEXT* renderModel); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyRenderModelEXT( XrRenderModelEXT renderModel); XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPropertiesEXT( XrRenderModelEXT renderModel, const XrRenderModelPropertiesGetInfoEXT* getInfo, XrRenderModelPropertiesEXT* properties); XRAPI_ATTR XrResult XRAPI_CALL xrCreateRenderModelSpaceEXT( XrSession session, const XrRenderModelSpaceCreateInfoEXT* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrCreateRenderModelAssetEXT( XrSession session, const XrRenderModelAssetCreateInfoEXT* createInfo, XrRenderModelAssetEXT* asset); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyRenderModelAssetEXT( XrRenderModelAssetEXT asset); XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelAssetDataEXT( XrRenderModelAssetEXT asset, const XrRenderModelAssetDataGetInfoEXT* getInfo, XrRenderModelAssetDataEXT* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelAssetPropertiesEXT( XrRenderModelAssetEXT asset, const XrRenderModelAssetPropertiesGetInfoEXT* getInfo, XrRenderModelAssetPropertiesEXT* properties); XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelStateEXT( XrRenderModelEXT renderModel, const XrRenderModelStateGetInfoEXT* getInfo, XrRenderModelStateEXT* state); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_interaction_render_model is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_interaction_render_model 1 #define XR_EXT_interaction_render_model_SPEC_VERSION 1 #define XR_EXT_INTERACTION_RENDER_MODEL_EXTENSION_NAME "XR_EXT_interaction_render_model" typedef struct XrInteractionRenderModelIdsEnumerateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrInteractionRenderModelIdsEnumerateInfoEXT; typedef struct XrInteractionRenderModelSubactionPathInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrInteractionRenderModelSubactionPathInfoEXT; typedef struct XrInteractionRenderModelTopLevelUserPathGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t topLevelUserPathCount; const XrPath* topLevelUserPaths; } XrInteractionRenderModelTopLevelUserPathGetInfoEXT; typedef struct XrEventDataInteractionRenderModelsChangedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEventDataInteractionRenderModelsChangedEXT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInteractionRenderModelIdsEXT)(XrSession session, const XrInteractionRenderModelIdsEnumerateInfoEXT* getInfo, uint32_t renderModelIdCapacityInput, uint32_t* renderModelIdCountOutput, XrRenderModelIdEXT* renderModelIds); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRenderModelSubactionPathsEXT)(XrRenderModelEXT renderModel, const XrInteractionRenderModelSubactionPathInfoEXT* info, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrPath* paths); typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPoseTopLevelUserPathEXT)(XrRenderModelEXT renderModel, const XrInteractionRenderModelTopLevelUserPathGetInfoEXT* info, XrPath* topLevelUserPath); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInteractionRenderModelIdsEXT( XrSession session, const XrInteractionRenderModelIdsEnumerateInfoEXT* getInfo, uint32_t renderModelIdCapacityInput, uint32_t* renderModelIdCountOutput, XrRenderModelIdEXT* renderModelIds); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRenderModelSubactionPathsEXT( XrRenderModelEXT renderModel, const XrInteractionRenderModelSubactionPathInfoEXT* info, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrPath* paths); XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPoseTopLevelUserPathEXT( XrRenderModelEXT renderModel, const XrInteractionRenderModelTopLevelUserPathGetInfoEXT* info, XrPath* topLevelUserPath); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_hand_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_hand_interaction 1 #define XR_EXT_hand_interaction_SPEC_VERSION 2 #define XR_EXT_HAND_INTERACTION_EXTENSION_NAME "XR_EXT_hand_interaction" // XR_QCOM_tracking_optimization_settings is a preprocessor guard. Do not pass it to API calls. #define XR_QCOM_tracking_optimization_settings 1 #define XR_QCOM_tracking_optimization_settings_SPEC_VERSION 2 #define XR_QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME "XR_QCOM_tracking_optimization_settings" typedef enum XrTrackingOptimizationSettingsDomainQCOM { XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_ALL_QCOM = 1, XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_MAX_ENUM_QCOM = 0x7FFFFFFF } XrTrackingOptimizationSettingsDomainQCOM; typedef enum XrTrackingOptimizationSettingsHintQCOM { XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_NONE_QCOM = 0, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LONG_RANGE_PRIORITIZATION_QCOM = 1, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_CLOSE_RANGE_PRIORITIZATION_QCOM = 2, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LOW_POWER_PRIORITIZATION_QCOM = 3, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_HIGH_POWER_PRIORITIZATION_QCOM = 4, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LONG_RANGE_PRIORIZATION_QCOM = XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LONG_RANGE_PRIORITIZATION_QCOM, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_CLOSE_RANGE_PRIORIZATION_QCOM = XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_CLOSE_RANGE_PRIORITIZATION_QCOM, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LOW_POWER_PRIORIZATION_QCOM = XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LOW_POWER_PRIORITIZATION_QCOM, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_HIGH_POWER_PRIORIZATION_QCOM = XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_HIGH_POWER_PRIORITIZATION_QCOM, XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_MAX_ENUM_QCOM = 0x7FFFFFFF } XrTrackingOptimizationSettingsHintQCOM; typedef XrResult (XRAPI_PTR *PFN_xrSetTrackingOptimizationSettingsHintQCOM)(XrSession session, XrTrackingOptimizationSettingsDomainQCOM domain, XrTrackingOptimizationSettingsHintQCOM hint); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetTrackingOptimizationSettingsHintQCOM( XrSession session, XrTrackingOptimizationSettingsDomainQCOM domain, XrTrackingOptimizationSettingsHintQCOM hint); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_QCOM_hand_tracking_gesture is a preprocessor guard. Do not pass it to API calls. #define XR_QCOM_hand_tracking_gesture 1 #define XR_QCOM_hand_tracking_gesture_SPEC_VERSION 1 #define XR_QCOM_HAND_TRACKING_GESTURE_EXTENSION_NAME "XR_QCOM_hand_tracking_gesture" typedef enum XrHandGestureTypeQCOM { XR_HAND_GESTURE_TYPE_UNKNOWN_QCOM = -1, XR_HAND_GESTURE_TYPE_OPEN_HAND_QCOM = 0, XR_HAND_GESTURE_TYPE_GRAB_QCOM = 2, XR_HAND_GESTURE_TYPE_PINCH_QCOM = 7, XR_HAND_GESTURE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF } XrHandGestureTypeQCOM; typedef struct XrHandGestureQCOM { XrHandGestureTypeQCOM gesture; float gestureRatio; float flipRatio; } XrHandGestureQCOM; typedef XrResult (XRAPI_PTR *PFN_xrGetHandGestureQCOM)(XrHandTrackerEXT handTracker, XrTime time, XrHandGestureQCOM* handGesture); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetHandGestureQCOM( XrHandTrackerEXT handTracker, XrTime time, XrHandGestureQCOM* handGesture); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_passthrough is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_passthrough 1 XR_DEFINE_HANDLE(XrPassthroughHTC) #define XR_HTC_passthrough_SPEC_VERSION 1 #define XR_HTC_PASSTHROUGH_EXTENSION_NAME "XR_HTC_passthrough" typedef enum XrPassthroughFormHTC { XR_PASSTHROUGH_FORM_PLANAR_HTC = 0, XR_PASSTHROUGH_FORM_PROJECTED_HTC = 1, XR_PASSTHROUGH_FORM_MAX_ENUM_HTC = 0x7FFFFFFF } XrPassthroughFormHTC; typedef struct XrPassthroughCreateInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrPassthroughFormHTC form; } XrPassthroughCreateInfoHTC; typedef struct XrPassthroughColorHTC { XrStructureType type; const void* XR_MAY_ALIAS next; float alpha; } XrPassthroughColorHTC; // XrPassthroughMeshTransformInfoHTC extends XrCompositionLayerPassthroughHTC typedef struct XrPassthroughMeshTransformInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t vertexCount; const XrVector3f* vertices; uint32_t indexCount; const uint32_t* indices; XrSpace baseSpace; XrTime time; XrPosef pose; XrVector3f scale; } XrPassthroughMeshTransformInfoHTC; typedef struct XrCompositionLayerPassthroughHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrPassthroughHTC passthrough; XrPassthroughColorHTC color; } XrCompositionLayerPassthroughHTC; typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughHTC)(XrSession session, const XrPassthroughCreateInfoHTC* createInfo, XrPassthroughHTC* passthrough); typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughHTC)(XrPassthroughHTC passthrough); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughHTC( XrSession session, const XrPassthroughCreateInfoHTC* createInfo, XrPassthroughHTC* passthrough); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughHTC( XrPassthroughHTC passthrough); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_foveation is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_foveation 1 #define XR_HTC_foveation_SPEC_VERSION 1 #define XR_HTC_FOVEATION_EXTENSION_NAME "XR_HTC_foveation" typedef enum XrFoveationModeHTC { XR_FOVEATION_MODE_DISABLE_HTC = 0, XR_FOVEATION_MODE_FIXED_HTC = 1, XR_FOVEATION_MODE_DYNAMIC_HTC = 2, XR_FOVEATION_MODE_CUSTOM_HTC = 3, XR_FOVEATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF } XrFoveationModeHTC; typedef enum XrFoveationLevelHTC { XR_FOVEATION_LEVEL_NONE_HTC = 0, XR_FOVEATION_LEVEL_LOW_HTC = 1, XR_FOVEATION_LEVEL_MEDIUM_HTC = 2, XR_FOVEATION_LEVEL_HIGH_HTC = 3, XR_FOVEATION_LEVEL_MAX_ENUM_HTC = 0x7FFFFFFF } XrFoveationLevelHTC; typedef XrFlags64 XrFoveationDynamicFlagsHTC; // Flag bits for XrFoveationDynamicFlagsHTC static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC = 0x00000001; static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC = 0x00000002; static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC = 0x00000004; typedef struct XrFoveationApplyInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrFoveationModeHTC mode; uint32_t subImageCount; XrSwapchainSubImage* subImages; } XrFoveationApplyInfoHTC; typedef struct XrFoveationConfigurationHTC { XrFoveationLevelHTC level; float clearFovDegree; XrVector2f focalCenterOffset; } XrFoveationConfigurationHTC; // XrFoveationDynamicModeInfoHTC extends XrFoveationApplyInfoHTC typedef struct XrFoveationDynamicModeInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrFoveationDynamicFlagsHTC dynamicFlags; } XrFoveationDynamicModeInfoHTC; // XrFoveationCustomModeInfoHTC extends XrFoveationApplyInfoHTC typedef struct XrFoveationCustomModeInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t configCount; const XrFoveationConfigurationHTC* configs; } XrFoveationCustomModeInfoHTC; typedef XrResult (XRAPI_PTR *PFN_xrApplyFoveationHTC)(XrSession session, const XrFoveationApplyInfoHTC* applyInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrApplyFoveationHTC( XrSession session, const XrFoveationApplyInfoHTC* applyInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_anchor is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_anchor 1 #define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC 256 #define XR_HTC_anchor_SPEC_VERSION 1 #define XR_HTC_ANCHOR_EXTENSION_NAME "XR_HTC_anchor" // XrSystemAnchorPropertiesHTC extends XrSystemProperties typedef struct XrSystemAnchorPropertiesHTC { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsAnchor; } XrSystemAnchorPropertiesHTC; typedef struct XrSpatialAnchorNameHTC { char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC]; } XrSpatialAnchorNameHTC; typedef struct XrSpatialAnchorCreateInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrPosef poseInSpace; XrSpatialAnchorNameHTC name; } XrSpatialAnchorCreateInfoHTC; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorHTC)(XrSession session, const XrSpatialAnchorCreateInfoHTC* createInfo, XrSpace* anchor); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorNameHTC)(XrSpace anchor, XrSpatialAnchorNameHTC* name); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorHTC( XrSession session, const XrSpatialAnchorCreateInfoHTC* createInfo, XrSpace* anchor); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorNameHTC( XrSpace anchor, XrSpatialAnchorNameHTC* name); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_HTC_body_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_HTC_body_tracking 1 #define XR_BODY_JOINT_COUNT_HTC 26 XR_DEFINE_HANDLE(XrBodyTrackerHTC) #define XR_HTC_body_tracking_SPEC_VERSION 1 #define XR_HTC_BODY_TRACKING_EXTENSION_NAME "XR_HTC_body_tracking" typedef enum XrBodyJointHTC { XR_BODY_JOINT_PELVIS_HTC = 0, XR_BODY_JOINT_LEFT_HIP_HTC = 1, XR_BODY_JOINT_LEFT_KNEE_HTC = 2, XR_BODY_JOINT_LEFT_ANKLE_HTC = 3, XR_BODY_JOINT_LEFT_FEET_HTC = 4, XR_BODY_JOINT_RIGHT_HIP_HTC = 5, XR_BODY_JOINT_RIGHT_KNEE_HTC = 6, XR_BODY_JOINT_RIGHT_ANKLE_HTC = 7, XR_BODY_JOINT_RIGHT_FEET_HTC = 8, XR_BODY_JOINT_WAIST_HTC = 9, XR_BODY_JOINT_SPINE_LOWER_HTC = 10, XR_BODY_JOINT_SPINE_MIDDLE_HTC = 11, XR_BODY_JOINT_SPINE_HIGH_HTC = 12, XR_BODY_JOINT_CHEST_HTC = 13, XR_BODY_JOINT_NECK_HTC = 14, XR_BODY_JOINT_HEAD_HTC = 15, XR_BODY_JOINT_LEFT_CLAVICLE_HTC = 16, XR_BODY_JOINT_LEFT_SCAPULA_HTC = 17, XR_BODY_JOINT_LEFT_ARM_HTC = 18, XR_BODY_JOINT_LEFT_ELBOW_HTC = 19, XR_BODY_JOINT_LEFT_WRIST_HTC = 20, XR_BODY_JOINT_RIGHT_CLAVICLE_HTC = 21, XR_BODY_JOINT_RIGHT_SCAPULA_HTC = 22, XR_BODY_JOINT_RIGHT_ARM_HTC = 23, XR_BODY_JOINT_RIGHT_ELBOW_HTC = 24, XR_BODY_JOINT_RIGHT_WRIST_HTC = 25, XR_BODY_JOINT_MAX_ENUM_HTC = 0x7FFFFFFF } XrBodyJointHTC; typedef enum XrBodyJointSetHTC { XR_BODY_JOINT_SET_FULL_HTC = 0, XR_BODY_JOINT_SET_MAX_ENUM_HTC = 0x7FFFFFFF } XrBodyJointSetHTC; typedef enum XrBodyJointConfidenceHTC { XR_BODY_JOINT_CONFIDENCE_NONE_HTC = 0, XR_BODY_JOINT_CONFIDENCE_LOW_HTC = 1, XR_BODY_JOINT_CONFIDENCE_HIGH_HTC = 2, XR_BODY_JOINT_CONFIDENCE_MAX_ENUM_HTC = 0x7FFFFFFF } XrBodyJointConfidenceHTC; // XrSystemBodyTrackingPropertiesHTC extends XrSystemProperties typedef struct XrSystemBodyTrackingPropertiesHTC { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsBodyTracking; } XrSystemBodyTrackingPropertiesHTC; typedef struct XrBodyTrackerCreateInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrBodyJointSetHTC bodyJointSet; } XrBodyTrackerCreateInfoHTC; typedef struct XrBodyJointsLocateInfoHTC { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; } XrBodyJointsLocateInfoHTC; typedef struct XrBodyJointLocationHTC { XrSpaceLocationFlags locationFlags; XrPosef pose; } XrBodyJointLocationHTC; typedef struct XrBodyJointLocationsHTC { XrStructureType type; void* XR_MAY_ALIAS next; XrSpaceLocationFlags combinedLocationFlags; XrBodyJointConfidenceHTC confidenceLevel; uint32_t jointLocationCount; XrBodyJointLocationHTC* jointLocations; uint32_t skeletonGenerationId; } XrBodyJointLocationsHTC; typedef struct XrBodySkeletonJointHTC { XrPosef pose; } XrBodySkeletonJointHTC; typedef struct XrBodySkeletonHTC { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t jointCount; XrBodySkeletonJointHTC* joints; } XrBodySkeletonHTC; typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerHTC)(XrSession session, const XrBodyTrackerCreateInfoHTC* createInfo, XrBodyTrackerHTC* bodyTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerHTC)(XrBodyTrackerHTC bodyTracker); typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsHTC)(XrBodyTrackerHTC bodyTracker, const XrBodyJointsLocateInfoHTC* locateInfo, XrBodyJointLocationsHTC* locations); typedef XrResult (XRAPI_PTR *PFN_xrGetBodySkeletonHTC)(XrBodyTrackerHTC bodyTracker, XrSpace baseSpace, uint32_t skeletonGenerationId, XrBodySkeletonHTC* skeleton); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerHTC( XrSession session, const XrBodyTrackerCreateInfoHTC* createInfo, XrBodyTrackerHTC* bodyTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerHTC( XrBodyTrackerHTC bodyTracker); XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsHTC( XrBodyTrackerHTC bodyTracker, const XrBodyJointsLocateInfoHTC* locateInfo, XrBodyJointLocationsHTC* locations); XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonHTC( XrBodyTrackerHTC bodyTracker, XrSpace baseSpace, uint32_t skeletonGenerationId, XrBodySkeletonHTC* skeleton); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_active_action_set_priority is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_active_action_set_priority 1 #define XR_EXT_active_action_set_priority_SPEC_VERSION 1 #define XR_EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME "XR_EXT_active_action_set_priority" typedef struct XrActiveActionSetPriorityEXT { XrActionSet actionSet; uint32_t priorityOverride; } XrActiveActionSetPriorityEXT; // XrActiveActionSetPrioritiesEXT extends XrActionsSyncInfo typedef struct XrActiveActionSetPrioritiesEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t actionSetPriorityCount; const XrActiveActionSetPriorityEXT* actionSetPriorities; } XrActiveActionSetPrioritiesEXT; // XR_MNDX_force_feedback_curl is a preprocessor guard. Do not pass it to API calls. #define XR_MNDX_force_feedback_curl 1 #define XR_MNDX_force_feedback_curl_SPEC_VERSION 1 #define XR_MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME "XR_MNDX_force_feedback_curl" typedef enum XrForceFeedbackCurlLocationMNDX { XR_FORCE_FEEDBACK_CURL_LOCATION_THUMB_CURL_MNDX = 0, XR_FORCE_FEEDBACK_CURL_LOCATION_INDEX_CURL_MNDX = 1, XR_FORCE_FEEDBACK_CURL_LOCATION_MIDDLE_CURL_MNDX = 2, XR_FORCE_FEEDBACK_CURL_LOCATION_RING_CURL_MNDX = 3, XR_FORCE_FEEDBACK_CURL_LOCATION_LITTLE_CURL_MNDX = 4, XR_FORCE_FEEDBACK_CURL_LOCATION_MAX_ENUM_MNDX = 0x7FFFFFFF } XrForceFeedbackCurlLocationMNDX; // XrSystemForceFeedbackCurlPropertiesMNDX extends XrSystemProperties typedef struct XrSystemForceFeedbackCurlPropertiesMNDX { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsForceFeedbackCurl; } XrSystemForceFeedbackCurlPropertiesMNDX; typedef struct XrForceFeedbackCurlApplyLocationMNDX { XrForceFeedbackCurlLocationMNDX location; float value; } XrForceFeedbackCurlApplyLocationMNDX; typedef struct XrForceFeedbackCurlApplyLocationsMNDX { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t locationCount; XrForceFeedbackCurlApplyLocationMNDX* locations; } XrForceFeedbackCurlApplyLocationsMNDX; typedef XrResult (XRAPI_PTR *PFN_xrApplyForceFeedbackCurlMNDX)(XrHandTrackerEXT handTracker, const XrForceFeedbackCurlApplyLocationsMNDX* locations); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrApplyForceFeedbackCurlMNDX( XrHandTrackerEXT handTracker, const XrForceFeedbackCurlApplyLocationsMNDX* locations); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_BD_controller_interaction 1 #define XR_BD_controller_interaction_SPEC_VERSION 2 #define XR_BD_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_BD_controller_interaction" // XR_BD_body_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_BD_body_tracking 1 #define XR_BODY_JOINT_COUNT_BD 24 #define XR_BODY_JOINT_WITHOUT_ARM_COUNT_BD 16 XR_DEFINE_HANDLE(XrBodyTrackerBD) #define XR_BD_body_tracking_SPEC_VERSION 1 #define XR_BD_BODY_TRACKING_EXTENSION_NAME "XR_BD_body_tracking" typedef enum XrBodyJointBD { XR_BODY_JOINT_PELVIS_BD = 0, XR_BODY_JOINT_LEFT_HIP_BD = 1, XR_BODY_JOINT_RIGHT_HIP_BD = 2, XR_BODY_JOINT_SPINE1_BD = 3, XR_BODY_JOINT_LEFT_KNEE_BD = 4, XR_BODY_JOINT_RIGHT_KNEE_BD = 5, XR_BODY_JOINT_SPINE2_BD = 6, XR_BODY_JOINT_LEFT_ANKLE_BD = 7, XR_BODY_JOINT_RIGHT_ANKLE_BD = 8, XR_BODY_JOINT_SPINE3_BD = 9, XR_BODY_JOINT_LEFT_FOOT_BD = 10, XR_BODY_JOINT_RIGHT_FOOT_BD = 11, XR_BODY_JOINT_NECK_BD = 12, XR_BODY_JOINT_LEFT_COLLAR_BD = 13, XR_BODY_JOINT_RIGHT_COLLAR_BD = 14, XR_BODY_JOINT_HEAD_BD = 15, XR_BODY_JOINT_LEFT_SHOULDER_BD = 16, XR_BODY_JOINT_RIGHT_SHOULDER_BD = 17, XR_BODY_JOINT_LEFT_ELBOW_BD = 18, XR_BODY_JOINT_RIGHT_ELBOW_BD = 19, XR_BODY_JOINT_LEFT_WRIST_BD = 20, XR_BODY_JOINT_RIGHT_WRIST_BD = 21, XR_BODY_JOINT_LEFT_HAND_BD = 22, XR_BODY_JOINT_RIGHT_HAND_BD = 23, XR_BODY_JOINT_MAX_ENUM_BD = 0x7FFFFFFF } XrBodyJointBD; typedef enum XrBodyJointSetBD { XR_BODY_JOINT_SET_BODY_WITHOUT_ARM_BD = 1, XR_BODY_JOINT_SET_FULL_BODY_JOINTS_BD = 2, XR_BODY_JOINT_SET_MAX_ENUM_BD = 0x7FFFFFFF } XrBodyJointSetBD; // XrSystemBodyTrackingPropertiesBD extends XrSystemProperties typedef struct XrSystemBodyTrackingPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsBodyTracking; } XrSystemBodyTrackingPropertiesBD; typedef struct XrBodyTrackerCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrBodyJointSetBD jointSet; } XrBodyTrackerCreateInfoBD; typedef struct XrBodyJointsLocateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; } XrBodyJointsLocateInfoBD; typedef struct XrBodyJointLocationBD { XrSpaceLocationFlags locationFlags; XrPosef pose; } XrBodyJointLocationBD; typedef struct XrBodyJointLocationsBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 allJointPosesTracked; uint32_t jointLocationCount; XrBodyJointLocationBD* jointLocations; } XrBodyJointLocationsBD; typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerBD)(XrSession session, const XrBodyTrackerCreateInfoBD* createInfo, XrBodyTrackerBD* bodyTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerBD)(XrBodyTrackerBD bodyTracker); typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsBD)(XrBodyTrackerBD bodyTracker, const XrBodyJointsLocateInfoBD* locateInfo, XrBodyJointLocationsBD* locations); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerBD( XrSession session, const XrBodyTrackerCreateInfoBD* createInfo, XrBodyTrackerBD* bodyTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerBD( XrBodyTrackerBD bodyTracker); XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsBD( XrBodyTrackerBD bodyTracker, const XrBodyJointsLocateInfoBD* locateInfo, XrBodyJointLocationsBD* locations); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_facial_simulation is a preprocessor guard. Do not pass it to API calls. #define XR_BD_facial_simulation 1 #define XR_FACE_EXPRESSION_COUNT_BD 52 #define XR_LIP_EXPRESSION_COUNT_BD 20 XR_DEFINE_HANDLE(XrFaceTrackerBD) #define XR_BD_facial_simulation_SPEC_VERSION 1 #define XR_BD_FACIAL_SIMULATION_EXTENSION_NAME "XR_BD_facial_simulation" typedef enum XrFacialSimulationModeBD { XR_FACIAL_SIMULATION_MODE_DEFAULT_BD = 0, XR_FACIAL_SIMULATION_MODE_COMBINED_AUDIO_BD = 1, XR_FACIAL_SIMULATION_MODE_COMBINED_AUDIO_WITH_LIP_BD = 2, XR_FACIAL_SIMULATION_MODE_ONLY_AUDIO_WITH_LIP_BD = 3, XR_FACIAL_SIMULATION_MODE_MAX_ENUM_BD = 0x7FFFFFFF } XrFacialSimulationModeBD; typedef enum XrFaceExpressionBD { XR_FACE_EXPRESSION_BROW_DROP_L_BD = 0, XR_FACE_EXPRESSION_BROW_DROP_R_BD = 1, XR_FACE_EXPRESSION_BROW_INNER_UPWARDS_BD = 2, XR_FACE_EXPRESSION_BROW_OUTER_UPWARDS_L_BD = 3, XR_FACE_EXPRESSION_BROW_OUTER_UPWARDS_R_BD = 4, XR_FACE_EXPRESSION_EYE_BLINK_L_BD = 5, XR_FACE_EXPRESSION_EYE_LOOK_DROP_L_BD = 6, XR_FACE_EXPRESSION_EYE_LOOK_IN_L_BD = 7, XR_FACE_EXPRESSION_EYE_LOOK_OUT_L_BD = 8, XR_FACE_EXPRESSION_EYE_LOOK_UPWARDS_L_BD = 9, XR_FACE_EXPRESSION_EYE_LOOK_SQUINT_L_BD = 10, XR_FACE_EXPRESSION_EYE_LOOK_WIDE_L_BD = 11, XR_FACE_EXPRESSION_EYE_BLINK_R_BD = 12, XR_FACE_EXPRESSION_EYE_LOOK_DROP_R_BD = 13, XR_FACE_EXPRESSION_EYE_LOOK_IN_R_BD = 14, XR_FACE_EXPRESSION_EYE_LOOK_OUT_R_BD = 15, XR_FACE_EXPRESSION_EYE_LOOK_UPWARDS_R_BD = 16, XR_FACE_EXPRESSION_EYE_LOOK_SQUINT_R_BD = 17, XR_FACE_EXPRESSION_EYE_LOOK_WIDE_R_BD = 18, XR_FACE_EXPRESSION_NOSE_SNEER_L_BD = 19, XR_FACE_EXPRESSION_NOSE_SNEER_R_BD = 20, XR_FACE_EXPRESSION_CHEEK_PUFF_BD = 21, XR_FACE_EXPRESSION_CHEEK_SQUINT_L_BD = 22, XR_FACE_EXPRESSION_CHEEK_SQUINT_R_BD = 23, XR_FACE_EXPRESSION_MOUTH_CLOSE_BD = 24, XR_FACE_EXPRESSION_MOUTH_FUNNEL_BD = 25, XR_FACE_EXPRESSION_MOUTH_PUCKER_BD = 26, XR_FACE_EXPRESSION_MOUTH_L_BD = 27, XR_FACE_EXPRESSION_MOUTH_R_BD = 28, XR_FACE_EXPRESSION_MOUTH_SMILE_L_BD = 29, XR_FACE_EXPRESSION_MOUTH_SMILE_R_BD = 30, XR_FACE_EXPRESSION_MOUTH_FROWN_L_BD = 31, XR_FACE_EXPRESSION_MOUTH_FROWN_R_BD = 32, XR_FACE_EXPRESSION_MOUTH_DIMPLE_L_BD = 33, XR_FACE_EXPRESSION_MOUTH_DIMPLE_R_BD = 34, XR_FACE_EXPRESSION_MOUTH_STRETCH_L_BD = 35, XR_FACE_EXPRESSION_MOUTH_STRETCH_R_BD = 36, XR_FACE_EXPRESSION_MOUTH_ROLL_LOWER_BD = 37, XR_FACE_EXPRESSION_MOUTH_ROLL_UPPER_BD = 38, XR_FACE_EXPRESSION_MOUTH_SHRUG_LOWER_BD = 39, XR_FACE_EXPRESSION_MOUTH_SHRUG_UPPER_BD = 40, XR_FACE_EXPRESSION_MOUTH_PRESS_L_BD = 41, XR_FACE_EXPRESSION_MOUTH_PRESS_R_BD = 42, XR_FACE_EXPRESSION_MOUTH_LOWER_DROP_L_BD = 43, XR_FACE_EXPRESSION_MOUTH_LOWER_DROP_R_BD = 44, XR_FACE_EXPRESSION_MOUTH_UPPER_UPWARDS_L_BD = 45, XR_FACE_EXPRESSION_MOUTH_UPPER_UPWARDS_R_BD = 46, XR_FACE_EXPRESSION_JAW_FORWARD_BD = 47, XR_FACE_EXPRESSION_JAW_L_BD = 48, XR_FACE_EXPRESSION_JAW_R_BD = 49, XR_FACE_EXPRESSION_JAW_OPEN_BD = 50, XR_FACE_EXPRESSION_TONGUE_OUT_BD = 51, XR_FACE_EXPRESSION_MAX_ENUM_BD = 0x7FFFFFFF } XrFaceExpressionBD; typedef enum XrLipExpressionBD { XR_LIP_EXPRESSION_PP_BD = 0, XR_LIP_EXPRESSION_CH_BD = 1, XR_LIP_EXPRESSION_LO_BD = 2, XR_LIP_EXPRESSION_O_BD = 3, XR_LIP_EXPRESSION_I_BD = 4, XR_LIP_EXPRESSION_LU_BD = 5, XR_LIP_EXPRESSION_RR_BD = 6, XR_LIP_EXPRESSION_XX_BD = 7, XR_LIP_EXPRESSION_LAA_BD = 8, XR_LIP_EXPRESSION_LI_BD = 9, XR_LIP_EXPRESSION_FF_BD = 10, XR_LIP_EXPRESSION_U_BD = 11, XR_LIP_EXPRESSION_TH_BD = 12, XR_LIP_EXPRESSION_LKK_BD = 13, XR_LIP_EXPRESSION_SS_BD = 14, XR_LIP_EXPRESSION_LE_BD = 15, XR_LIP_EXPRESSION_DD_BD = 16, XR_LIP_EXPRESSION_E_BD = 17, XR_LIP_EXPRESSION_LNN_BD = 18, XR_LIP_EXPRESSION_SIL_BD = 19, XR_LIP_EXPRESSION_MAX_ENUM_BD = 0x7FFFFFFF } XrLipExpressionBD; // XrSystemFacialSimulationPropertiesBD extends XrSystemProperties typedef struct XrSystemFacialSimulationPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFaceTracking; } XrSystemFacialSimulationPropertiesBD; typedef struct XrFaceTrackerCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrFacialSimulationModeBD mode; } XrFaceTrackerCreateInfoBD; typedef struct XrFacialSimulationDataGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; } XrFacialSimulationDataGetInfoBD; typedef struct XrFacialSimulationDataBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t faceExpressionWeightCount; float* faceExpressionWeights; XrBool32 isUpperFaceDataValid; XrBool32 isLowerFaceDataValid; XrTime time; } XrFacialSimulationDataBD; // XrLipExpressionDataBD extends XrFacialSimulationDataBD typedef struct XrLipExpressionDataBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t lipsyncExpressionWeightCount; float* lipsyncExpressionWeights; } XrLipExpressionDataBD; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateFacialSimulationModesBD)(XrSession session, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrFacialSimulationModeBD* modes); typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTrackerBD)(XrSession session, const XrFaceTrackerCreateInfoBD* createInfo, XrFaceTrackerBD* tracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTrackerBD)(XrFaceTrackerBD tracker); typedef XrResult (XRAPI_PTR *PFN_xrGetFacialSimulationDataBD)(XrFaceTrackerBD tracker, const XrFacialSimulationDataGetInfoBD*info, XrFacialSimulationDataBD* facialData); typedef XrResult (XRAPI_PTR *PFN_xrSetFacialSimulationModeBD)(XrFaceTrackerBD tracker, XrFacialSimulationModeBD mode); typedef XrResult (XRAPI_PTR *PFN_xrGetFacialSimulationModeBD)(XrFaceTrackerBD tracker, XrFacialSimulationModeBD*mode); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateFacialSimulationModesBD( XrSession session, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrFacialSimulationModeBD* modes); XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTrackerBD( XrSession session, const XrFaceTrackerCreateInfoBD* createInfo, XrFaceTrackerBD* tracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTrackerBD( XrFaceTrackerBD tracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialSimulationDataBD( XrFaceTrackerBD tracker, const XrFacialSimulationDataGetInfoBD* info, XrFacialSimulationDataBD* facialData); XRAPI_ATTR XrResult XRAPI_CALL xrSetFacialSimulationModeBD( XrFaceTrackerBD tracker, XrFacialSimulationModeBD mode); XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialSimulationModeBD( XrFaceTrackerBD tracker, XrFacialSimulationModeBD* mode); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_spatial_sensing is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_sensing 1 XR_DEFINE_ATOM(XrSpatialEntityIdBD) XR_DEFINE_HANDLE(XrSenseDataProviderBD) XR_DEFINE_HANDLE(XrSenseDataSnapshotBD) XR_DEFINE_HANDLE(XrAnchorBD) #define XR_BD_spatial_sensing_SPEC_VERSION 3 #define XR_BD_SPATIAL_SENSING_EXTENSION_NAME "XR_BD_spatial_sensing" typedef enum XrSpatialEntityComponentTypeBD { XR_SPATIAL_ENTITY_COMPONENT_TYPE_LOCATION_BD = 0, XR_SPATIAL_ENTITY_COMPONENT_TYPE_SEMANTIC_BD = 1, XR_SPATIAL_ENTITY_COMPONENT_TYPE_BOUNDING_BOX_2D_BD = 2, XR_SPATIAL_ENTITY_COMPONENT_TYPE_POLYGON_BD = 3, XR_SPATIAL_ENTITY_COMPONENT_TYPE_BOUNDING_BOX_3D_BD = 4, XR_SPATIAL_ENTITY_COMPONENT_TYPE_TRIANGLE_MESH_BD = 5, XR_SPATIAL_ENTITY_COMPONENT_TYPE_SPHERE_BD = 6, XR_SPATIAL_ENTITY_COMPONENT_TYPE_PLANE_ORIENTATION_BD = 1000396000, XR_SPATIAL_ENTITY_COMPONENT_TYPE_LIGHT_ESTIMATION_BD = 1000397000, XR_SPATIAL_ENTITY_COMPONENT_TYPE_DYNAMIC_OBJECT_BD = 1000746000, XR_SPATIAL_ENTITY_COMPONENT_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrSpatialEntityComponentTypeBD; typedef enum XrSemanticLabelBD { XR_SEMANTIC_LABEL_UNKNOWN_BD = 0, XR_SEMANTIC_LABEL_FLOOR_BD = 1, XR_SEMANTIC_LABEL_CEILING_BD = 2, XR_SEMANTIC_LABEL_WALL_BD = 3, XR_SEMANTIC_LABEL_DOOR_BD = 4, XR_SEMANTIC_LABEL_WINDOW_BD = 5, XR_SEMANTIC_LABEL_OPENING_BD = 6, XR_SEMANTIC_LABEL_TABLE_BD = 7, XR_SEMANTIC_LABEL_SOFA_BD = 8, XR_SEMANTIC_LABEL_CHAIR_BD = 9, XR_SEMANTIC_LABEL_HUMAN_BD = 10, XR_SEMANTIC_LABEL_BEAM_BD = 11, XR_SEMANTIC_LABEL_COLUMN_BD = 12, XR_SEMANTIC_LABEL_CURTAIN_BD = 13, XR_SEMANTIC_LABEL_CABINET_BD = 14, XR_SEMANTIC_LABEL_BED_BD = 15, XR_SEMANTIC_LABEL_PLANT_BD = 16, XR_SEMANTIC_LABEL_SCREEN_BD = 17, XR_SEMANTIC_LABEL_VIRTUAL_WALL_BD = 18, XR_SEMANTIC_LABEL_REFRIGERATOR_BD = 19, XR_SEMANTIC_LABEL_WASHING_MACHINE_BD = 20, XR_SEMANTIC_LABEL_AIR_CONDITIONER_BD = 21, XR_SEMANTIC_LABEL_LAMP_BD = 22, XR_SEMANTIC_LABEL_WALL_ART_BD = 23, XR_SEMANTIC_LABEL_STAIRWAY_BD = 24, XR_SEMANTIC_LABEL_KEYBOARD_BD = 25, XR_SEMANTIC_LABEL_MOUSE_BD = 26, XR_SEMANTIC_LABEL_LAPTOP_BD = 27, XR_SEMANTIC_LABEL_MAX_ENUM_BD = 0x7FFFFFFF } XrSemanticLabelBD; typedef enum XrSenseDataProviderTypeBD { XR_SENSE_DATA_PROVIDER_TYPE_ANCHOR_BD = 1000390000, XR_SENSE_DATA_PROVIDER_TYPE_SCENE_BD = 1000392000, XR_SENSE_DATA_PROVIDER_TYPE_MESH_BD = 1000393000, XR_SENSE_DATA_PROVIDER_TYPE_PLANE_BD = 1000396000, XR_SENSE_DATA_PROVIDER_TYPE_LIGHT_ESTIMATION_BD = 1000397000, XR_SENSE_DATA_PROVIDER_TYPE_DYNAMIC_OBJECT_BD = 1000746000, XR_SENSE_DATA_PROVIDER_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrSenseDataProviderTypeBD; typedef enum XrSenseDataProviderStateBD { XR_SENSE_DATA_PROVIDER_STATE_INITIALIZED_BD = 0, XR_SENSE_DATA_PROVIDER_STATE_RUNNING_BD = 1, XR_SENSE_DATA_PROVIDER_STATE_STOPPED_BD = 2, XR_SENSE_DATA_PROVIDER_STATE_MAX_ENUM_BD = 0x7FFFFFFF } XrSenseDataProviderStateBD; // XrSystemSpatialSensingPropertiesBD extends XrSystemProperties typedef struct XrSystemSpatialSensingPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialSensing; } XrSystemSpatialSensingPropertiesBD; typedef struct XrSpatialEntityComponentGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialEntityIdBD entityId; XrSpatialEntityComponentTypeBD componentType; } XrSpatialEntityComponentGetInfoBD; typedef struct XrSpatialEntityComponentDataBaseHeaderBD { XrStructureType type; void* XR_MAY_ALIAS next; } XrSpatialEntityComponentDataBaseHeaderBD; // XrSpatialEntityLocationGetInfoBD extends XrSpatialEntityComponentGetInfoBD typedef struct XrSpatialEntityLocationGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; } XrSpatialEntityLocationGetInfoBD; // XrSpatialEntityComponentDataLocationBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataLocationBD { XrStructureType type; void* XR_MAY_ALIAS next; XrSpaceLocation location; } XrSpatialEntityComponentDataLocationBD; // XrSpatialEntityComponentDataSemanticBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataSemanticBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t labelCapacityInput; uint32_t labelCountOutput; XrSemanticLabelBD* labels; } XrSpatialEntityComponentDataSemanticBD; // XrSpatialEntityComponentDataBoundingBox2DBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataBoundingBox2DBD { XrStructureType type; void* XR_MAY_ALIAS next; XrRect2Df boundingBox2D; } XrSpatialEntityComponentDataBoundingBox2DBD; // XrSpatialEntityComponentDataPolygonBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataPolygonBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector2f* vertices; } XrSpatialEntityComponentDataPolygonBD; // XrSpatialEntityComponentDataBoundingBox3DBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataBoundingBox3DBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBoxf boundingBox3D; } XrSpatialEntityComponentDataBoundingBox3DBD; // XrSpatialEntityComponentDataTriangleMeshBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataTriangleMeshBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertices; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint16_t* indices; } XrSpatialEntityComponentDataTriangleMeshBD; // XrSpatialEntityComponentDataSphereBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataSphereBD { XrStructureType type; void* XR_MAY_ALIAS next; XrSpheref sphere; } XrSpatialEntityComponentDataSphereBD; typedef struct XrSenseDataProviderCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSenseDataProviderTypeBD providerType; } XrSenseDataProviderCreateInfoBD; typedef struct XrSenseDataProviderStartInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSenseDataProviderStartInfoBD; typedef struct XrEventDataSenseDataProviderStateChangedBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSenseDataProviderBD provider; XrSenseDataProviderStateBD newState; } XrEventDataSenseDataProviderStateChangedBD; typedef struct XrEventDataSenseDataUpdatedBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSenseDataProviderBD provider; } XrEventDataSenseDataUpdatedBD; typedef struct XrSenseDataQueryInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSenseDataQueryInfoBD; typedef struct XrSenseDataQueryCompletionBD { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSenseDataSnapshotBD snapshot; } XrSenseDataQueryCompletionBD; typedef struct XrQueriedSenseDataGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrQueriedSenseDataGetInfoBD; typedef struct XrSpatialEntityStateBD { XrStructureType type; void* XR_MAY_ALIAS next; XrSpatialEntityIdBD entityId; XrTime lastUpdateTime; XrUuidEXT uuid; } XrSpatialEntityStateBD; typedef struct XrQueriedSenseDataBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t stateCapacityInput; uint32_t stateCountOutput; XrSpatialEntityStateBD* states; } XrQueriedSenseDataBD; // XrSenseDataFilterUuidBD extends XrSenseDataQueryInfoBD typedef struct XrSenseDataFilterUuidBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t uuidCount; const XrUuidEXT* uuids; } XrSenseDataFilterUuidBD; // XrSenseDataFilterSemanticBD extends XrSenseDataQueryInfoBD typedef struct XrSenseDataFilterSemanticBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t labelCount; const XrSemanticLabelBD* labels; } XrSenseDataFilterSemanticBD; typedef struct XrSpatialEntityAnchorCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSenseDataSnapshotBD snapshot; XrSpatialEntityIdBD entityId; } XrSpatialEntityAnchorCreateInfoBD; typedef struct XrAnchorSpaceCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrAnchorBD anchor; XrPosef poseInAnchorSpace; } XrAnchorSpaceCreateInfoBD; typedef struct XrFutureCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; } XrFutureCompletionEXT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialEntityComponentTypesBD)(XrSenseDataSnapshotBD snapshot, XrSpatialEntityIdBD entityId, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpatialEntityComponentTypeBD* componentTypes); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialEntityUuidBD)(XrSenseDataSnapshotBD snapshot, XrSpatialEntityIdBD entityId, XrUuidEXT* uuid); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialEntityComponentDataBD)(XrSenseDataSnapshotBD snapshot, const XrSpatialEntityComponentGetInfoBD* getInfo, XrSpatialEntityComponentDataBaseHeaderBD* componentData); typedef XrResult (XRAPI_PTR *PFN_xrCreateSenseDataProviderBD)(XrSession session, const XrSenseDataProviderCreateInfoBD* createInfo, XrSenseDataProviderBD* provider); typedef XrResult (XRAPI_PTR *PFN_xrStartSenseDataProviderAsyncBD)(XrSenseDataProviderBD provider, const XrSenseDataProviderStartInfoBD* startInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrStartSenseDataProviderCompleteBD)(XrSession session, XrFutureEXT future, XrFutureCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrGetSenseDataProviderStateBD)(XrSenseDataProviderBD provider, XrSenseDataProviderStateBD* state); typedef XrResult (XRAPI_PTR *PFN_xrQuerySenseDataAsyncBD)(XrSenseDataProviderBD provider, const XrSenseDataQueryInfoBD* queryInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrQuerySenseDataCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrSenseDataQueryCompletionBD* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroySenseDataSnapshotBD)(XrSenseDataSnapshotBD snapshot); typedef XrResult (XRAPI_PTR *PFN_xrGetQueriedSenseDataBD)(XrSenseDataSnapshotBD snapshot, XrQueriedSenseDataGetInfoBD* getInfo, XrQueriedSenseDataBD* queriedSenseData); typedef XrResult (XRAPI_PTR *PFN_xrStopSenseDataProviderBD)(XrSenseDataProviderBD provider); typedef XrResult (XRAPI_PTR *PFN_xrDestroySenseDataProviderBD)(XrSenseDataProviderBD provider); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialEntityAnchorBD)(XrSenseDataProviderBD provider, const XrSpatialEntityAnchorCreateInfoBD* createInfo, XrAnchorBD* anchor); typedef XrResult (XRAPI_PTR *PFN_xrDestroyAnchorBD)(XrAnchorBD anchor); typedef XrResult (XRAPI_PTR *PFN_xrGetAnchorUuidBD)(XrAnchorBD anchor, XrUuidEXT* uuid); typedef XrResult (XRAPI_PTR *PFN_xrCreateAnchorSpaceBD)(XrSession session, const XrAnchorSpaceCreateInfoBD* createInfo, XrSpace* space); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialEntityComponentTypesBD( XrSenseDataSnapshotBD snapshot, XrSpatialEntityIdBD entityId, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpatialEntityComponentTypeBD* componentTypes); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialEntityUuidBD( XrSenseDataSnapshotBD snapshot, XrSpatialEntityIdBD entityId, XrUuidEXT* uuid); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialEntityComponentDataBD( XrSenseDataSnapshotBD snapshot, const XrSpatialEntityComponentGetInfoBD* getInfo, XrSpatialEntityComponentDataBaseHeaderBD* componentData); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSenseDataProviderBD( XrSession session, const XrSenseDataProviderCreateInfoBD* createInfo, XrSenseDataProviderBD* provider); XRAPI_ATTR XrResult XRAPI_CALL xrStartSenseDataProviderAsyncBD( XrSenseDataProviderBD provider, const XrSenseDataProviderStartInfoBD* startInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrStartSenseDataProviderCompleteBD( XrSession session, XrFutureEXT future, XrFutureCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrGetSenseDataProviderStateBD( XrSenseDataProviderBD provider, XrSenseDataProviderStateBD* state); XRAPI_ATTR XrResult XRAPI_CALL xrQuerySenseDataAsyncBD( XrSenseDataProviderBD provider, const XrSenseDataQueryInfoBD* queryInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrQuerySenseDataCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrSenseDataQueryCompletionBD* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySenseDataSnapshotBD( XrSenseDataSnapshotBD snapshot); XRAPI_ATTR XrResult XRAPI_CALL xrGetQueriedSenseDataBD( XrSenseDataSnapshotBD snapshot, XrQueriedSenseDataGetInfoBD* getInfo, XrQueriedSenseDataBD* queriedSenseData); XRAPI_ATTR XrResult XRAPI_CALL xrStopSenseDataProviderBD( XrSenseDataProviderBD provider); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySenseDataProviderBD( XrSenseDataProviderBD provider); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialEntityAnchorBD( XrSenseDataProviderBD provider, const XrSpatialEntityAnchorCreateInfoBD* createInfo, XrAnchorBD* anchor); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAnchorBD( XrAnchorBD anchor); XRAPI_ATTR XrResult XRAPI_CALL xrGetAnchorUuidBD( XrAnchorBD anchor, XrUuidEXT* uuid); XRAPI_ATTR XrResult XRAPI_CALL xrCreateAnchorSpaceBD( XrSession session, const XrAnchorSpaceCreateInfoBD* createInfo, XrSpace* space); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_spatial_anchor is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_anchor 1 #define XR_BD_spatial_anchor_SPEC_VERSION 2 #define XR_BD_SPATIAL_ANCHOR_EXTENSION_NAME "XR_BD_spatial_anchor" typedef enum XrPersistenceLocationBD { XR_PERSISTENCE_LOCATION_LOCAL_BD = 0, XR_PERSISTENCE_LOCATION_MAX_ENUM_BD = 0x7FFFFFFF } XrPersistenceLocationBD; // XrSystemSpatialAnchorPropertiesBD extends XrSystemProperties typedef struct XrSystemSpatialAnchorPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialAnchor; } XrSystemSpatialAnchorPropertiesBD; typedef struct XrSpatialAnchorCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrPosef pose; XrTime time; } XrSpatialAnchorCreateInfoBD; typedef struct XrSpatialAnchorCreateCompletionBD { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrUuidEXT uuid; XrAnchorBD anchor; } XrSpatialAnchorCreateCompletionBD; typedef struct XrSpatialAnchorPersistInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrPersistenceLocationBD location; XrAnchorBD anchor; } XrSpatialAnchorPersistInfoBD; typedef struct XrSpatialAnchorUnpersistInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrPersistenceLocationBD location; XrAnchorBD anchor; } XrSpatialAnchorUnpersistInfoBD; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorCreateInfoBD* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrSpatialAnchorCreateCompletionBD* completion); typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorPersistInfoBD* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorUnpersistInfoBD* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorAsyncBD( XrSenseDataProviderBD provider, const XrSpatialAnchorCreateInfoBD* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrSpatialAnchorCreateCompletionBD* completion); XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorAsyncBD( XrSenseDataProviderBD provider, const XrSpatialAnchorPersistInfoBD* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorAsyncBD( XrSenseDataProviderBD provider, const XrSpatialAnchorUnpersistInfoBD* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_spatial_anchor_sharing is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_anchor_sharing 1 #define XR_BD_spatial_anchor_sharing_SPEC_VERSION 2 #define XR_BD_SPATIAL_ANCHOR_SHARING_EXTENSION_NAME "XR_BD_spatial_anchor_sharing" // XrSystemSpatialAnchorSharingPropertiesBD extends XrSystemProperties typedef struct XrSystemSpatialAnchorSharingPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialAnchorSharing; } XrSystemSpatialAnchorSharingPropertiesBD; typedef struct XrSpatialAnchorShareInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrAnchorBD anchor; } XrSpatialAnchorShareInfoBD; typedef struct XrSharedSpatialAnchorDownloadInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidEXT uuid; } XrSharedSpatialAnchorDownloadInfoBD; typedef XrResult (XRAPI_PTR *PFN_xrShareSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSpatialAnchorShareInfoBD* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrShareSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrDownloadSharedSpatialAnchorAsyncBD)(XrSenseDataProviderBD provider, const XrSharedSpatialAnchorDownloadInfoBD* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrDownloadSharedSpatialAnchorCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrShareSpatialAnchorAsyncBD( XrSenseDataProviderBD provider, const XrSpatialAnchorShareInfoBD* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrShareSpatialAnchorCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDownloadSharedSpatialAnchorAsyncBD( XrSenseDataProviderBD provider, const XrSharedSpatialAnchorDownloadInfoBD* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrDownloadSharedSpatialAnchorCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_spatial_scene is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_scene 1 #define XR_BD_spatial_scene_SPEC_VERSION 1 #define XR_BD_SPATIAL_SCENE_EXTENSION_NAME "XR_BD_spatial_scene" // XrSystemSpatialScenePropertiesBD extends XrSystemProperties typedef struct XrSystemSpatialScenePropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialScene; } XrSystemSpatialScenePropertiesBD; typedef struct XrSceneCaptureInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSceneCaptureInfoBD; typedef XrResult (XRAPI_PTR *PFN_xrCaptureSceneAsyncBD)(XrSenseDataProviderBD provider, const XrSceneCaptureInfoBD* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCaptureSceneCompleteBD)(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCaptureSceneAsyncBD( XrSenseDataProviderBD provider, const XrSceneCaptureInfoBD* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCaptureSceneCompleteBD( XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_spatial_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_mesh 1 #define XR_BD_spatial_mesh_SPEC_VERSION 1 #define XR_BD_SPATIAL_MESH_EXTENSION_NAME "XR_BD_spatial_mesh" typedef enum XrSpatialMeshLodBD { XR_SPATIAL_MESH_LOD_COARSE_BD = 0, XR_SPATIAL_MESH_LOD_MEDIUM_BD = 1, XR_SPATIAL_MESH_LOD_FINE_BD = 2, XR_SPATIAL_MESH_LOD_MAX_ENUM_BD = 0x7FFFFFFF } XrSpatialMeshLodBD; typedef XrFlags64 XrSpatialMeshConfigFlagsBD; // Flag bits for XrSpatialMeshConfigFlagsBD static const XrSpatialMeshConfigFlagsBD XR_SPATIAL_MESH_CONFIG_SEMANTIC_BIT_BD = 0x00000001; static const XrSpatialMeshConfigFlagsBD XR_SPATIAL_MESH_CONFIG_ALIGN_SEMANTIC_WITH_VERTEX_BIT_BD = 0x00000002; // XrSystemSpatialMeshPropertiesBD extends XrSystemProperties typedef struct XrSystemSpatialMeshPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialMesh; } XrSystemSpatialMeshPropertiesBD; // XrSenseDataProviderCreateInfoSpatialMeshBD extends XrSenseDataProviderCreateInfoBD typedef struct XrSenseDataProviderCreateInfoSpatialMeshBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialMeshConfigFlagsBD configFlags; XrSpatialMeshLodBD lod; } XrSenseDataProviderCreateInfoSpatialMeshBD; // XR_BD_future_progress is a preprocessor guard. Do not pass it to API calls. #define XR_BD_future_progress 1 #define XR_BD_future_progress_SPEC_VERSION 1 #define XR_BD_FUTURE_PROGRESS_EXTENSION_NAME "XR_BD_future_progress" // XrFuturePollResultProgressBD extends XrFuturePollResultEXT typedef struct XrFuturePollResultProgressBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isSupported; uint32_t progressPercentage; } XrFuturePollResultProgressBD; // XR_BD_body_tracking_auxiliary_metrics is a preprocessor guard. Do not pass it to API calls. #define XR_BD_body_tracking_auxiliary_metrics 1 #define XR_BD_body_tracking_auxiliary_metrics_SPEC_VERSION 1 #define XR_BD_BODY_TRACKING_AUXILIARY_METRICS_EXTENSION_NAME "XR_BD_body_tracking_auxiliary_metrics" typedef enum XrBodyTrackingPostureBD { XR_BODY_TRACKING_POSTURE_STOMP_BD = 1, XR_BODY_TRACKING_POSTURE_STATIC_BD = 2, XR_BODY_TRACKING_POSTURE_MAX_ENUM_BD = 0x7FFFFFFF } XrBodyTrackingPostureBD; typedef enum XrBodyTrackingStatusBD { XR_BODY_TRACKING_STATUS_INVALID_BD = 0, XR_BODY_TRACKING_STATUS_VALID_BD = 1, XR_BODY_TRACKING_STATUS_LIMITED_BD = 2, XR_BODY_TRACKING_STATUS_MAX_ENUM_BD = 0x7FFFFFFF } XrBodyTrackingStatusBD; typedef enum XrBodyTrackingMessageBD { XR_BODY_TRACKING_MESSAGE_NO_ERROR_BD = 0, XR_BODY_TRACKING_MESSAGE_TRACKER_NOT_CALIBRATED_BD = 1, XR_BODY_TRACKING_MESSAGE_TRACKER_NUM_NOT_ENOUGH_BD = 2, XR_BODY_TRACKING_MESSAGE_TRACKER_STATE_NOT_SATISFIED_BD = 3, XR_BODY_TRACKING_MESSAGE_TRACKER_PERSISTENT_INVISIBILITY_BD = 4, XR_BODY_TRACKING_MESSAGE_TRACKER_DATA_ERROR_BD = 5, XR_BODY_TRACKING_MESSAGE_USER_CHANGE_BD = 6, XR_BODY_TRACKING_MESSAGE_TRACKING_POSE_ERROR_BD = 7, XR_BODY_TRACKING_MESSAGE_MAX_ENUM_BD = 0x7FFFFFFF } XrBodyTrackingMessageBD; typedef XrFlags64 XrSpaceAccelerationFlagsBD; // Flag bits for XrSpaceAccelerationFlagsBD static const XrSpaceAccelerationFlagsBD XR_SPACE_ACCELERATION_LINEAR_VALID_BIT_BD = 0x00000001; static const XrSpaceAccelerationFlagsBD XR_SPACE_ACCELERATION_ANGULAR_VALID_BIT_BD = 0x00000002; // XrBodyTrackingPostureDataBD extends XrBodyJointLocationsBD typedef struct XrBodyTrackingPostureDataBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t postureCount; XrBodyTrackingPostureBD* postureData; } XrBodyTrackingPostureDataBD; typedef struct XrBodyJointVelocityBD { XrSpaceVelocityFlags velocityFlags; XrVector3f linearVelocity; XrVector3f angularVelocity; } XrBodyJointVelocityBD; // XrBodyJointVelocitiesBD extends XrBodyJointLocationsBD typedef struct XrBodyJointVelocitiesBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t velocityCount; XrBodyJointVelocityBD* velocities; } XrBodyJointVelocitiesBD; typedef struct XrBodyJointAccelerationBD { XrSpaceAccelerationFlagsBD accelerationFlags; XrVector3f linearAcceleration; XrVector3f angularAcceleration; } XrBodyJointAccelerationBD; // XrBodyJointAccelerationsBD extends XrBodyJointLocationsBD typedef struct XrBodyJointAccelerationsBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t accelerationCount; XrBodyJointAccelerationBD* accelerations; } XrBodyJointAccelerationsBD; typedef struct XrBodyTrackingStateBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBodyTrackingStatusBD status; XrBodyTrackingMessageBD message; } XrBodyTrackingStateBD; typedef XrResult (XRAPI_PTR *PFN_xrStartBodyTrackingCalibrationAppBD)(XrSession session); typedef XrResult (XRAPI_PTR *PFN_xrGetBodyTrackingStateBD)(XrSession session, XrBodyTrackingStateBD* state); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrStartBodyTrackingCalibrationAppBD( XrSession session); XRAPI_ATTR XrResult XRAPI_CALL xrGetBodyTrackingStateBD( XrSession session, XrBodyTrackingStateBD* state); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_spatial_plane is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_plane 1 #define XR_BD_spatial_plane_SPEC_VERSION 1 #define XR_BD_SPATIAL_PLANE_EXTENSION_NAME "XR_BD_spatial_plane" typedef enum XrPlaneOrientationBD { XR_PLANE_ORIENTATION_HORIZONTAL_UPWARD_BD = 0, XR_PLANE_ORIENTATION_HORIZONTAL_DOWNWARD_BD = 1, XR_PLANE_ORIENTATION_VERTICAL_BD = 2, XR_PLANE_ORIENTATION_ARBITRARY_BD = 3, XR_PLANE_ORIENTATION_MAX_ENUM_BD = 0x7FFFFFFF } XrPlaneOrientationBD; // XrSystemSpatialPlanePropertiesBD extends XrSystemProperties typedef struct XrSystemSpatialPlanePropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialPlane; } XrSystemSpatialPlanePropertiesBD; // XrSpatialEntityComponentDataPlaneOrientationBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataPlaneOrientationBD { XrStructureType type; void* XR_MAY_ALIAS next; XrPlaneOrientationBD orientation; } XrSpatialEntityComponentDataPlaneOrientationBD; // XrSenseDataFilterPlaneOrientationBD extends XrSenseDataQueryInfoBD typedef struct XrSenseDataFilterPlaneOrientationBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t orientationCount; XrPlaneOrientationBD* orientations; } XrSenseDataFilterPlaneOrientationBD; // XR_BD_spatial_light_estimation is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_light_estimation 1 #define XR_BD_spatial_light_estimation_SPEC_VERSION 1 #define XR_BD_SPATIAL_LIGHT_ESTIMATION_EXTENSION_NAME "XR_BD_spatial_light_estimation" typedef enum XrEnvironmentTexturePixelFormatBD { XR_ENVIRONMENT_TEXTURE_PIXEL_FORMAT_RGB_16FLOAT_BD = 0, XR_ENVIRONMENT_TEXTURE_PIXEL_FORMAT_RGBA_16FLOAT_BD = 1, XR_ENVIRONMENT_TEXTURE_PIXEL_FORMAT_MAX_ENUM_BD = 0x7FFFFFFF } XrEnvironmentTexturePixelFormatBD; typedef enum XrEnvironmentTextureResolutionBD { XR_ENVIRONMENT_TEXTURE_RESOLUTION_8_8_BD = 0, XR_ENVIRONMENT_TEXTURE_RESOLUTION_16_16_BD = 1, XR_ENVIRONMENT_TEXTURE_RESOLUTION_32_32_BD = 2, XR_ENVIRONMENT_TEXTURE_RESOLUTION_64_64_BD = 3, XR_ENVIRONMENT_TEXTURE_RESOLUTION_128_128_BD = 4, XR_ENVIRONMENT_TEXTURE_RESOLUTION_MAX_ENUM_BD = 0x7FFFFFFF } XrEnvironmentTextureResolutionBD; typedef enum XrEnvironmentTextureTransferTypeBD { XR_ENVIRONMENT_TEXTURE_TRANSFER_TYPE_RAW_BD = 0, XR_ENVIRONMENT_TEXTURE_TRANSFER_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrEnvironmentTextureTransferTypeBD; typedef enum XrSphericalHarmonicsKindBD { XR_SPHERICAL_HARMONICS_KIND_TOTAL_BD = 0, XR_SPHERICAL_HARMONICS_KIND_MAX_ENUM_BD = 0x7FFFFFFF } XrSphericalHarmonicsKindBD; typedef XrFlags64 XrLightEstimationCreateFlagsBD; // Flag bits for XrLightEstimationCreateFlagsBD static const XrLightEstimationCreateFlagsBD XR_LIGHT_ESTIMATION_CREATE_SPHERICAL_HARMONICS_BIT_BD = 0x00000001; static const XrLightEstimationCreateFlagsBD XR_LIGHT_ESTIMATION_CREATE_ENVIRONMENT_TEXTURE_BIT_BD = 0x00000002; // XrSystemLightEstimationPropertiesBD extends XrSystemProperties typedef struct XrSystemLightEstimationPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsLightEstimation; XrBool32 supportsEnvironmentTexture; XrBool32 supportsSphericalHarmonics; } XrSystemLightEstimationPropertiesBD; // XrSenseDataProviderCreateInfoLightEstimationBD extends XrSenseDataProviderCreateInfoBD typedef struct XrSenseDataProviderCreateInfoLightEstimationBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrLightEstimationCreateFlagsBD createFlags; } XrSenseDataProviderCreateInfoLightEstimationBD; // XrEnvironmentTextureCreateConfigInfoBD extends XrSenseDataProviderCreateInfoBD typedef struct XrEnvironmentTextureCreateConfigInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrEnvironmentTexturePixelFormatBD pixelFormat; XrEnvironmentTextureResolutionBD resolution; XrEnvironmentTextureTransferTypeBD transferType; } XrEnvironmentTextureCreateConfigInfoBD; // XrLightEstimationDataEnvironmentTextureRawBD extends XrSpatialEntityComponentDataLightEstimationBD typedef struct XrLightEstimationDataEnvironmentTextureRawBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrEnvironmentTexturePixelFormatBD pixelFormat; uint32_t cubemapFaceBufferSize; uint8_t* rightCubemapFaceBuffer; uint8_t* leftCubemapFaceBuffer; uint8_t* topCubemapFaceBuffer; uint8_t* bottomCubemapFaceBuffer; uint8_t* frontCubemapFaceBuffer; uint8_t* backCubemapFaceBuffer; } XrLightEstimationDataEnvironmentTextureRawBD; // XrLightEstimationDataSphericalHarmonicsBD extends XrSpatialEntityComponentDataLightEstimationBD typedef struct XrLightEstimationDataSphericalHarmonicsBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSphericalHarmonicsKindBD kind; uint32_t coefficientCapacityInput; uint32_t coefficientCountOutput; float* coefficients; } XrLightEstimationDataSphericalHarmonicsBD; // XrSpatialEntityComponentDataLightEstimationBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataLightEstimationBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isValid; } XrSpatialEntityComponentDataLightEstimationBD; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentTextureResolutionsBD)(XrSession session, uint32_t resolutionCapacityInput, uint32_t* resolutionCountOutput, XrEnvironmentTextureResolutionBD* resolutions); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentTexturePixelFormatsBD)(XrSession session, uint32_t pixelFormatCapacityInput, uint32_t* pixelFormatCountOutput, XrEnvironmentTexturePixelFormatBD* pixelFormats); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentTextureTransferTypesBD)(XrSession session, uint32_t transferTypeCapacityInput, uint32_t* transferTypeCountOutput, XrEnvironmentTextureTransferTypeBD* transferTypes); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentTextureResolutionsBD( XrSession session, uint32_t resolutionCapacityInput, uint32_t* resolutionCountOutput, XrEnvironmentTextureResolutionBD* resolutions); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentTexturePixelFormatsBD( XrSession session, uint32_t pixelFormatCapacityInput, uint32_t* pixelFormatCountOutput, XrEnvironmentTexturePixelFormatBD* pixelFormats); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentTextureTransferTypesBD( XrSession session, uint32_t transferTypeCapacityInput, uint32_t* transferTypeCountOutput, XrEnvironmentTextureTransferTypeBD* transferTypes); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_BD_ultra_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_BD_ultra_controller_interaction 1 #define XR_BD_ultra_controller_interaction_SPEC_VERSION 1 #define XR_BD_ULTRA_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_BD_ultra_controller_interaction" // XR_BD_spatial_audio_rendering is a preprocessor guard. Do not pass it to API calls. #define XR_BD_spatial_audio_rendering 1 XR_DEFINE_HANDLE(XrSpatialAudioRendererBD) XR_DEFINE_HANDLE(XrSoundFieldBD) XR_DEFINE_HANDLE(XrSoundObjectBD) XR_DEFINE_HANDLE(XrSoundObstacleBD) XR_DEFINE_HANDLE(XrSoundObstacleMaterialBD) #define XR_BD_spatial_audio_rendering_SPEC_VERSION 1 #define XR_BD_SPATIAL_AUDIO_RENDERING_EXTENSION_NAME "XR_BD_spatial_audio_rendering" typedef enum XrAudioSampleRateBD { XR_AUDIO_SAMPLE_RATE_192000_HZ_BD = 1, XR_AUDIO_SAMPLE_RATE_96000_HZ_BD = 2, XR_AUDIO_SAMPLE_RATE_48000_HZ_BD = 3, XR_AUDIO_SAMPLE_RATE_44100_HZ_BD = 4, XR_AUDIO_SAMPLE_RATE_32000_HZ_BD = 5, XR_AUDIO_SAMPLE_RATE_24000_HZ_BD = 6, XR_AUDIO_SAMPLE_RATE_22050_HZ_BD = 7, XR_AUDIO_SAMPLE_RATE_16000_HZ_BD = 8, XR_AUDIO_SAMPLE_RATE_12000_HZ_BD = 9, XR_AUDIO_SAMPLE_RATE_11025_HZ_BD = 10, XR_AUDIO_SAMPLE_RATE_8000_HZ_BD = 11, XR_AUDIO_SAMPLE_RATE_MAX_ENUM_BD = 0x7FFFFFFF } XrAudioSampleRateBD; typedef enum XrAudioBufferChannelLayoutBD { XR_AUDIO_BUFFER_CHANNEL_LAYOUT_INTERLEAVED_BD = 0, XR_AUDIO_BUFFER_CHANNEL_LAYOUT_PLANAR_BD = 1, XR_AUDIO_BUFFER_CHANNEL_LAYOUT_MAX_ENUM_BD = 0x7FFFFFFF } XrAudioBufferChannelLayoutBD; typedef enum XrSoundObjectDistanceAttenuationTypeBD { XR_SOUND_OBJECT_DISTANCE_ATTENUATION_TYPE_NONE_BD = 0, XR_SOUND_OBJECT_DISTANCE_ATTENUATION_TYPE_INVERSE_SQUARE_BD = 1, XR_SOUND_OBJECT_DISTANCE_ATTENUATION_TYPE_ROLLOFF_BD = 2, XR_SOUND_OBJECT_DISTANCE_ATTENUATION_TYPE_CUSTOMIZED_BD = 100, XR_SOUND_OBJECT_DISTANCE_ATTENUATION_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrSoundObjectDistanceAttenuationTypeBD; typedef enum XrSoundFieldChannelMaskSurroundBD { XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_FRONT_LEFT_BD = 1, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_FRONT_RIGHT_BD = 2, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_FRONT_CENTER_BD = 4, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_LOW_FREQUENCY_BD = 8, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_BACK_LEFT_BD = 16, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_BACK_RIGHT_BD = 32, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SIDE_LEFT_BD = 64, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SIDE_RIGHT_BD = 128, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_TOP_FRONT_LEFT_BD = 256, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_TOP_FRONT_RIGHT_BD = 512, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_TOP_BACK_LEFT_BD = 1024, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_TOP_BACK_RIGHT_BD = 2048, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_BACK_CENTER_BD = 4096, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_TOP_SIDE_LEFT_BD = 8192, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_TOP_SIDE_RIGHT_BD = 16384, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_STEREO_BD = 3, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_2_1_BD = 11, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_3_0_BD = 7, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_4_0_BD = 4099, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_BACK_SURROUND_BD = 48, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_QUAD_BD = 51, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_3_1_BD = 15, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_5_0_BD = 55, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_SIDE_SURROUND_BD = 192, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_5_0_SIDE_BD = 199, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_5_1_BD = 63, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_5_1_SIDE_BD = 207, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_7_0_BD = 247, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_7_1_BD = 255, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_5_1_2_BD = 831, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_5_1_4_BD = 3903, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_7_1_2_BD = 24831, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_SETUP_7_1_4_BD = 4095, XR_SOUND_FIELD_CHANNEL_MASK_SURROUND_MAX_ENUM_BD = 0x7FFFFFFF } XrSoundFieldChannelMaskSurroundBD; typedef enum XrSoundFieldChannelMaskAmbixBD { XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_1ST_ORDER_BD = 1, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_2ND_ORDER_BD = 2, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_3RD_ORDER_BD = 3, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_4TH_ORDER_BD = 4, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_5TH_ORDER_BD = 5, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_6TH_ORDER_BD = 6, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_7TH_ORDER_BD = 7, XR_SOUND_FIELD_CHANNEL_MASK_AMBIX_MAX_ENUM_BD = 0x7FFFFFFF } XrSoundFieldChannelMaskAmbixBD; typedef enum XrSoundFieldChannelMaskFumaBD { XR_SOUND_FIELD_CHANNEL_MASK_FUMA_1ST_ORDER_BD = 1, XR_SOUND_FIELD_CHANNEL_MASK_FUMA_MAX_ENUM_BD = 0x7FFFFFFF } XrSoundFieldChannelMaskFumaBD; typedef enum XrSoundObstacleMaterialTypeBD { XR_SOUND_OBSTACLE_MATERIAL_TYPE_ACOUSTIC_TILE_BD = 0, XR_SOUND_OBSTACLE_MATERIAL_TYPE_BRICK_BD = 1, XR_SOUND_OBSTACLE_MATERIAL_TYPE_BRICK_PAINTED_BD = 2, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CARPET_BD = 3, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CARPET_HEAVY_BD = 4, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CARPET_HEAVY_PADDED_BD = 5, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CERAMIC_TILE_BD = 6, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CONCRETE_BD = 7, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CONCRETE_ROUGH_BD = 8, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CONCRETE_BLOCK_BD = 9, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CONCRETE_BLOCK_PAINTED_BD = 10, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CURTAIN_BD = 11, XR_SOUND_OBSTACLE_MATERIAL_TYPE_FOLIAGE_BD = 12, XR_SOUND_OBSTACLE_MATERIAL_TYPE_GLASS_BD = 13, XR_SOUND_OBSTACLE_MATERIAL_TYPE_GLASS_HEAVY_BD = 14, XR_SOUND_OBSTACLE_MATERIAL_TYPE_GRASS_BD = 15, XR_SOUND_OBSTACLE_MATERIAL_TYPE_GRAVEL_BD = 16, XR_SOUND_OBSTACLE_MATERIAL_TYPE_GYPSUM_BOARD_BD = 17, XR_SOUND_OBSTACLE_MATERIAL_TYPE_PLASTER_ON_BRICK_BD = 18, XR_SOUND_OBSTACLE_MATERIAL_TYPE_PLASTER_ON_CONCRETE_BLOCK_BD = 19, XR_SOUND_OBSTACLE_MATERIAL_TYPE_SOIL_BD = 20, XR_SOUND_OBSTACLE_MATERIAL_TYPE_SOUND_PROOF_BD = 21, XR_SOUND_OBSTACLE_MATERIAL_TYPE_SNOW_BD = 22, XR_SOUND_OBSTACLE_MATERIAL_TYPE_STEEL_BD = 23, XR_SOUND_OBSTACLE_MATERIAL_TYPE_WATER_BD = 24, XR_SOUND_OBSTACLE_MATERIAL_TYPE_WOOD_THIN_BD = 25, XR_SOUND_OBSTACLE_MATERIAL_TYPE_WOOD_THICK_BD = 26, XR_SOUND_OBSTACLE_MATERIAL_TYPE_WOOD_FLOOR_BD = 27, XR_SOUND_OBSTACLE_MATERIAL_TYPE_WOOD_ON_CONCRETE_BD = 28, XR_SOUND_OBSTACLE_MATERIAL_TYPE_CUSTOM_BD = 29, XR_SOUND_OBSTACLE_MATERIAL_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrSoundObstacleMaterialTypeBD; typedef XrFlags64 XrSoundObstacleFlagsBD; // Flag bits for XrSoundObstacleFlagsBD static const XrSoundObstacleFlagsBD XR_SOUND_OBSTACLE_ENABLED_BIT_BD = 0x00000001; static const XrSoundObstacleFlagsBD XR_SOUND_OBSTACLE_POSE_BIT_BD = 0x00000002; static const XrSoundObstacleFlagsBD XR_SOUND_OBSTACLE_MESH_BIT_BD = 0x00000004; static const XrSoundObstacleFlagsBD XR_SOUND_OBSTACLE_MATERIALS_BIT_BD = 0x00000008; typedef XrFlags64 XrSoundObjectFlagsBD; // Flag bits for XrSoundObjectFlagsBD static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_ENABLED_BIT_BD = 0x00000001; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_POSE_BIT_BD = 0x00000002; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_DIRECTIVITY_BIT_BD = 0x00000004; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_SHAPE_BIT_BD = 0x00000008; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_MAIN_VOLUME_BIT_BD = 0x00000010; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_REFLECTION_GAIN_BIT_BD = 0x00000020; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_ENABLE_DOPPLER_BIT_BD = 0x00000040; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_DIRECT_SOUND_ATTENUATION_BIT_BD = 0x00000080; static const XrSoundObjectFlagsBD XR_SOUND_OBJECT_INDIRECT_SOUND_ATTENUATION_BIT_BD = 0x00000100; typedef XrFlags64 XrSoundFieldFlagsBD; // Flag bits for XrSoundFieldFlagsBD static const XrSoundFieldFlagsBD XR_SOUND_FIELD_ENABLED_BIT_BD = 0x00000001; static const XrSoundFieldFlagsBD XR_SOUND_FIELD_ORIENTATION_BIT_BD = 0x00000002; static const XrSoundFieldFlagsBD XR_SOUND_FIELD_MAIN_VOLUME_BIT_BD = 0x00000004; static const XrSoundFieldFlagsBD XR_SOUND_FIELD_LFE_GAIN_BIT_BD = 0x00000008; typedef struct XrSpatialAudioRendererCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t framesPerBuffer; XrAudioSampleRateBD sampleRate; } XrSpatialAudioRendererCreateInfoBD; typedef struct XrAudioBufferBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrAudioBufferChannelLayoutBD channelLayout; uint32_t bufferChannels; uint32_t bufferLength; float* buffer; } XrAudioBufferBD; // XrSoundObjectDirectivityCardioidBD extends XrSoundObjectConfigBD typedef struct XrSoundObjectDirectivityCardioidBD { XrStructureType type; const void* XR_MAY_ALIAS next; float alpha; float order; } XrSoundObjectDirectivityCardioidBD; // XrSoundObjectShapeSphereBD extends XrSoundObjectConfigBD typedef struct XrSoundObjectShapeSphereBD { XrStructureType type; const void* XR_MAY_ALIAS next; float radius; } XrSoundObjectShapeSphereBD; typedef struct XrAttenuationCurvePointBD { float distance; float gain; } XrAttenuationCurvePointBD; typedef struct XrSoundObjectDistanceAttenuationCurveBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t curvePointCount; XrAttenuationCurvePointBD* curvePoints; } XrSoundObjectDistanceAttenuationCurveBD; typedef struct XrSoundObjectDistanceAttenuationBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSoundObjectDistanceAttenuationTypeBD distanceAttenuationType; float minAttenuationRange; float maxAttenuationRange; float referenceDistance; float rolloffFactor; XrSoundObjectDistanceAttenuationCurveBD* customDistanceAttenuationCurve; } XrSoundObjectDistanceAttenuationBD; typedef struct XrSoundObjectConfigBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; XrPosef pose; XrSpace baseSpace; float mainVolume; float reflectionGain; XrBool32 enableDoppler; const XrSoundObjectDistanceAttenuationBD* directSoundAttenuation; const XrSoundObjectDistanceAttenuationBD* indirectSoundAttenuation; } XrSoundObjectConfigBD; typedef struct XrSoundFieldConfigBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; XrQuaternionf orientation; XrSpace baseSpace; float mainVolume; float lfeGain; } XrSoundFieldConfigBD; // XrSoundFieldChannelDefinitionSurroundBD extends XrSoundFieldConfigBD typedef struct XrSoundFieldChannelDefinitionSurroundBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSoundFieldChannelMaskSurroundBD channelMask; } XrSoundFieldChannelDefinitionSurroundBD; // XrSoundFieldChannelDefinitionAmbixBD extends XrSoundFieldConfigBD typedef struct XrSoundFieldChannelDefinitionAmbixBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSoundFieldChannelMaskAmbixBD channelMask; } XrSoundFieldChannelDefinitionAmbixBD; // XrSoundFieldChannelDefinitionFumaBD extends XrSoundFieldConfigBD typedef struct XrSoundFieldChannelDefinitionFumaBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSoundFieldChannelMaskFumaBD channelMask; } XrSoundFieldChannelDefinitionFumaBD; typedef struct XrSoundTriangleMeshBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t vertexCount; XrVector3f* vertices; uint32_t indexCount; uint32_t* indices; } XrSoundTriangleMeshBD; typedef struct XrSoundObstacleConfigBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; XrPosef pose; XrSpace baseSpace; uint32_t materialCount; XrSoundObstacleMaterialBD* materials; } XrSoundObstacleConfigBD; typedef struct XrSoundObstacleMaterialConfigBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrSoundObstacleMaterialTypeBD materialType; uint32_t bandCount; float* bandFrequencies; float* bandAbsorptions; float* bandScatterings; float* bandTransmissions; } XrSoundObstacleMaterialConfigBD; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSupportedAudioSampleRateBD)(XrSession session, uint32_t sampleRateCapacityInput, uint32_t* sampleRateCountOutput, XrAudioSampleRateBD* sampleRates); typedef XrResult (XRAPI_PTR *PFN_xrQueryFramesPerBufferRangeBD)(XrSession session, XrAudioSampleRateBD sampleRate, uint32_t* min, uint32_t* max); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAudioRendererBD)(XrSession session, const XrSpatialAudioRendererCreateInfoBD* createInfo, XrSpatialAudioRendererBD* renderer); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAudioRendererBD)(XrSpatialAudioRendererBD renderer); typedef XrResult (XRAPI_PTR *PFN_xrCreateSoundObstacleMaterialBD)(XrSpatialAudioRendererBD renderer, const XrSoundObstacleMaterialConfigBD* config, XrSoundObstacleMaterialBD* material); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSoundObstacleMaterialConfigBD)(XrSoundObstacleMaterialBD material, const XrSoundObstacleMaterialConfigBD* config); typedef XrResult (XRAPI_PTR *PFN_xrDestroySoundObstacleMaterialBD)(XrSoundObstacleMaterialBD material); typedef XrResult (XRAPI_PTR *PFN_xrCreateSoundObstacleBD)(XrSpatialAudioRendererBD renderer, const XrSoundObstacleConfigBD* config, const XrSoundTriangleMeshBD* mesh, XrSoundObstacleBD* soundObstacle); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSoundObstacleConfigBD)(XrSoundObstacleBD soundObstacle, const XrSoundObstacleConfigBD* config, const XrSoundTriangleMeshBD* mesh, XrSoundObstacleFlagsBD flags); typedef XrResult (XRAPI_PTR *PFN_xrDestroySoundObstacleBD)(XrSoundObstacleBD soundObstacle); typedef XrResult (XRAPI_PTR *PFN_xrCreateSoundObjectBD)(XrSpatialAudioRendererBD renderer, const XrSoundObjectConfigBD* config, XrSoundObjectBD* soundObject); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSoundObjectConfigBD)(XrSoundObjectBD soundObject, const XrSoundObjectConfigBD* config, XrSoundObjectFlagsBD flags); typedef XrResult (XRAPI_PTR *PFN_xrSubmitSoundObjectBufferBD)(XrSoundObjectBD soundObject, const XrAudioBufferBD* buffer); typedef XrResult (XRAPI_PTR *PFN_xrDestroySoundObjectBD)(XrSoundObjectBD soundObject); typedef XrResult (XRAPI_PTR *PFN_xrCreateSoundFieldBD)(XrSpatialAudioRendererBD renderer, const XrSoundFieldConfigBD* config, XrSoundFieldBD* soundField); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSoundFieldConfigBD)(XrSoundFieldBD soundField, const XrSoundFieldConfigBD* config, XrSoundFieldFlagsBD flags); typedef XrResult (XRAPI_PTR *PFN_xrSubmitSoundFieldBufferBD)(XrSoundFieldBD soundField, const XrAudioBufferBD* buffer); typedef XrResult (XRAPI_PTR *PFN_xrDestroySoundFieldBD)(XrSoundFieldBD soundField); typedef XrResult (XRAPI_PTR *PFN_xrWaitAudioPeriodBD)(XrSpatialAudioRendererBD renderer, XrDuration timeout); typedef XrResult (XRAPI_PTR *PFN_xrEndAudioPeriodBD)(XrSpatialAudioRendererBD renderer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSupportedAudioSampleRateBD( XrSession session, uint32_t sampleRateCapacityInput, uint32_t* sampleRateCountOutput, XrAudioSampleRateBD* sampleRates); XRAPI_ATTR XrResult XRAPI_CALL xrQueryFramesPerBufferRangeBD( XrSession session, XrAudioSampleRateBD sampleRate, uint32_t* min, uint32_t* max); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAudioRendererBD( XrSession session, const XrSpatialAudioRendererCreateInfoBD* createInfo, XrSpatialAudioRendererBD* renderer); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAudioRendererBD( XrSpatialAudioRendererBD renderer); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSoundObstacleMaterialBD( XrSpatialAudioRendererBD renderer, const XrSoundObstacleMaterialConfigBD* config, XrSoundObstacleMaterialBD* material); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSoundObstacleMaterialConfigBD( XrSoundObstacleMaterialBD material, const XrSoundObstacleMaterialConfigBD* config); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySoundObstacleMaterialBD( XrSoundObstacleMaterialBD material); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSoundObstacleBD( XrSpatialAudioRendererBD renderer, const XrSoundObstacleConfigBD* config, const XrSoundTriangleMeshBD* mesh, XrSoundObstacleBD* soundObstacle); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSoundObstacleConfigBD( XrSoundObstacleBD soundObstacle, const XrSoundObstacleConfigBD* config, const XrSoundTriangleMeshBD* mesh, XrSoundObstacleFlagsBD flags); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySoundObstacleBD( XrSoundObstacleBD soundObstacle); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSoundObjectBD( XrSpatialAudioRendererBD renderer, const XrSoundObjectConfigBD* config, XrSoundObjectBD* soundObject); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSoundObjectConfigBD( XrSoundObjectBD soundObject, const XrSoundObjectConfigBD* config, XrSoundObjectFlagsBD flags); XRAPI_ATTR XrResult XRAPI_CALL xrSubmitSoundObjectBufferBD( XrSoundObjectBD soundObject, const XrAudioBufferBD* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySoundObjectBD( XrSoundObjectBD soundObject); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSoundFieldBD( XrSpatialAudioRendererBD renderer, const XrSoundFieldConfigBD* config, XrSoundFieldBD* soundField); XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSoundFieldConfigBD( XrSoundFieldBD soundField, const XrSoundFieldConfigBD* config, XrSoundFieldFlagsBD flags); XRAPI_ATTR XrResult XRAPI_CALL xrSubmitSoundFieldBufferBD( XrSoundFieldBD soundField, const XrAudioBufferBD* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySoundFieldBD( XrSoundFieldBD soundField); XRAPI_ATTR XrResult XRAPI_CALL xrWaitAudioPeriodBD( XrSpatialAudioRendererBD renderer, XrDuration timeout); XRAPI_ATTR XrResult XRAPI_CALL xrEndAudioPeriodBD( XrSpatialAudioRendererBD renderer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_local_floor is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_local_floor 1 #define XR_EXT_local_floor_SPEC_VERSION 1 #define XR_EXT_LOCAL_FLOOR_EXTENSION_NAME "XR_EXT_local_floor" // XR_EXT_hand_tracking_data_source is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_hand_tracking_data_source 1 #define XR_EXT_hand_tracking_data_source_SPEC_VERSION 1 #define XR_EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME "XR_EXT_hand_tracking_data_source" typedef enum XrHandTrackingDataSourceEXT { XR_HAND_TRACKING_DATA_SOURCE_UNOBSTRUCTED_EXT = 1, XR_HAND_TRACKING_DATA_SOURCE_CONTROLLER_EXT = 2, XR_HAND_TRACKING_DATA_SOURCE_UNOBSTRUCTED_WIDE_MOTION_META = 1000695000, XR_HAND_TRACKING_DATA_SOURCE_MAX_ENUM_EXT = 0x7FFFFFFF } XrHandTrackingDataSourceEXT; // XrHandTrackingDataSourceInfoEXT extends XrHandTrackerCreateInfoEXT typedef struct XrHandTrackingDataSourceInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t requestedDataSourceCount; XrHandTrackingDataSourceEXT* requestedDataSources; } XrHandTrackingDataSourceInfoEXT; // XrHandTrackingDataSourceStateEXT extends XrHandJointLocationsEXT typedef struct XrHandTrackingDataSourceStateEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 isActive; XrHandTrackingDataSourceEXT dataSource; } XrHandTrackingDataSourceStateEXT; // XR_EXT_plane_detection is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_plane_detection 1 XR_DEFINE_HANDLE(XrPlaneDetectorEXT) #define XR_EXT_plane_detection_SPEC_VERSION 2 #define XR_EXT_PLANE_DETECTION_EXTENSION_NAME "XR_EXT_plane_detection" typedef enum XrPlaneDetectorOrientationEXT { XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_UPWARD_EXT = 0, XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_DOWNWARD_EXT = 1, XR_PLANE_DETECTOR_ORIENTATION_VERTICAL_EXT = 2, XR_PLANE_DETECTOR_ORIENTATION_ARBITRARY_EXT = 3, XR_PLANE_DETECTOR_ORIENTATION_MAX_ENUM_EXT = 0x7FFFFFFF } XrPlaneDetectorOrientationEXT; typedef enum XrPlaneDetectorSemanticTypeEXT { XR_PLANE_DETECTOR_SEMANTIC_TYPE_UNDEFINED_EXT = 0, XR_PLANE_DETECTOR_SEMANTIC_TYPE_CEILING_EXT = 1, XR_PLANE_DETECTOR_SEMANTIC_TYPE_FLOOR_EXT = 2, XR_PLANE_DETECTOR_SEMANTIC_TYPE_WALL_EXT = 3, XR_PLANE_DETECTOR_SEMANTIC_TYPE_PLATFORM_EXT = 4, XR_PLANE_DETECTOR_SEMANTIC_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } XrPlaneDetectorSemanticTypeEXT; typedef enum XrPlaneDetectionStateEXT { XR_PLANE_DETECTION_STATE_NONE_EXT = 0, XR_PLANE_DETECTION_STATE_PENDING_EXT = 1, XR_PLANE_DETECTION_STATE_DONE_EXT = 2, XR_PLANE_DETECTION_STATE_ERROR_EXT = 3, XR_PLANE_DETECTION_STATE_FATAL_EXT = 4, XR_PLANE_DETECTION_STATE_MAX_ENUM_EXT = 0x7FFFFFFF } XrPlaneDetectionStateEXT; typedef XrFlags64 XrPlaneDetectionCapabilityFlagsEXT; // Flag bits for XrPlaneDetectionCapabilityFlagsEXT static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_DETECTION_BIT_EXT = 0x00000001; static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_HOLES_BIT_EXT = 0x00000002; static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_CEILING_BIT_EXT = 0x00000004; static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_FLOOR_BIT_EXT = 0x00000008; static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_WALL_BIT_EXT = 0x00000010; static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_PLATFORM_BIT_EXT = 0x00000020; static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_ORIENTATION_BIT_EXT = 0x00000040; typedef XrFlags64 XrPlaneDetectorFlagsEXT; // Flag bits for XrPlaneDetectorFlagsEXT static const XrPlaneDetectorFlagsEXT XR_PLANE_DETECTOR_ENABLE_CONTOUR_BIT_EXT = 0x00000001; // XrSystemPlaneDetectionPropertiesEXT extends XrSystemProperties typedef struct XrSystemPlaneDetectionPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrPlaneDetectionCapabilityFlagsEXT supportedFeatures; } XrSystemPlaneDetectionPropertiesEXT; typedef struct XrPlaneDetectorCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrPlaneDetectorFlagsEXT flags; } XrPlaneDetectorCreateInfoEXT; typedef XrExtent3Df XrExtent3DfEXT; typedef struct XrPlaneDetectorBeginInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; uint32_t orientationCount; const XrPlaneDetectorOrientationEXT* orientations; uint32_t semanticTypeCount; const XrPlaneDetectorSemanticTypeEXT* semanticTypes; uint32_t maxPlanes; float minArea; XrPosef boundingBoxPose; XrExtent3DfEXT boundingBoxExtent; } XrPlaneDetectorBeginInfoEXT; typedef struct XrPlaneDetectorGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; } XrPlaneDetectorGetInfoEXT; typedef struct XrPlaneDetectorLocationEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint64_t planeId; XrSpaceLocationFlags locationFlags; XrPosef pose; XrExtent2Df extents; XrPlaneDetectorOrientationEXT orientation; XrPlaneDetectorSemanticTypeEXT semanticType; uint32_t polygonBufferCount; } XrPlaneDetectorLocationEXT; typedef struct XrPlaneDetectorLocationsEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t planeLocationCapacityInput; uint32_t planeLocationCountOutput; XrPlaneDetectorLocationEXT* planeLocations; } XrPlaneDetectorLocationsEXT; typedef struct XrPlaneDetectorPolygonBufferEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector2f* vertices; } XrPlaneDetectorPolygonBufferEXT; typedef XrResult (XRAPI_PTR *PFN_xrCreatePlaneDetectorEXT)(XrSession session, const XrPlaneDetectorCreateInfoEXT* createInfo, XrPlaneDetectorEXT* planeDetector); typedef XrResult (XRAPI_PTR *PFN_xrDestroyPlaneDetectorEXT)(XrPlaneDetectorEXT planeDetector); typedef XrResult (XRAPI_PTR *PFN_xrBeginPlaneDetectionEXT)(XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorBeginInfoEXT* beginInfo); typedef XrResult (XRAPI_PTR *PFN_xrGetPlaneDetectionStateEXT)(XrPlaneDetectorEXT planeDetector, XrPlaneDetectionStateEXT* state); typedef XrResult (XRAPI_PTR *PFN_xrGetPlaneDetectionsEXT)(XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorGetInfoEXT* info, XrPlaneDetectorLocationsEXT* locations); typedef XrResult (XRAPI_PTR *PFN_xrGetPlanePolygonBufferEXT)(XrPlaneDetectorEXT planeDetector, uint64_t planeId, uint32_t polygonBufferIndex, XrPlaneDetectorPolygonBufferEXT* polygonBuffer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreatePlaneDetectorEXT( XrSession session, const XrPlaneDetectorCreateInfoEXT* createInfo, XrPlaneDetectorEXT* planeDetector); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPlaneDetectorEXT( XrPlaneDetectorEXT planeDetector); XRAPI_ATTR XrResult XRAPI_CALL xrBeginPlaneDetectionEXT( XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorBeginInfoEXT* beginInfo); XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionStateEXT( XrPlaneDetectorEXT planeDetector, XrPlaneDetectionStateEXT* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionsEXT( XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorGetInfoEXT* info, XrPlaneDetectorLocationsEXT* locations); XRAPI_ATTR XrResult XRAPI_CALL xrGetPlanePolygonBufferEXT( XrPlaneDetectorEXT planeDetector, uint64_t planeId, uint32_t polygonBufferIndex, XrPlaneDetectorPolygonBufferEXT* polygonBuffer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_OPPO_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_OPPO_controller_interaction 1 #define XR_OPPO_controller_interaction_SPEC_VERSION 1 #define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_OPPO_controller_interaction" // XR_ANDROID_trackables is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_trackables 1 #define XR_NULL_TRACKABLE_ANDROID 0 XR_DEFINE_ATOM(XrTrackableANDROID) XR_DEFINE_HANDLE(XrTrackableTrackerANDROID) #define XR_ANDROID_trackables_SPEC_VERSION 2 #define XR_ANDROID_TRACKABLES_EXTENSION_NAME "XR_ANDROID_trackables" typedef enum XrTrackingStateANDROID { XR_TRACKING_STATE_PAUSED_ANDROID = 0, XR_TRACKING_STATE_STOPPED_ANDROID = 1, XR_TRACKING_STATE_TRACKING_ANDROID = 2, XR_TRACKING_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrTrackingStateANDROID; typedef enum XrTrackableTypeANDROID { XR_TRACKABLE_TYPE_NOT_VALID_ANDROID = 0, XR_TRACKABLE_TYPE_PLANE_ANDROID = 1, XR_TRACKABLE_TYPE_DEPTH_ANDROID = 1000463000, XR_TRACKABLE_TYPE_OBJECT_ANDROID = 1000466000, XR_TRACKABLE_TYPE_MARKER_ANDROID = 1000707000, XR_TRACKABLE_TYPE_QR_CODE_ANDROID = 1000708000, XR_TRACKABLE_TYPE_IMAGE_ANDROID = 1000709000, XR_TRACKABLE_TYPE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrTrackableTypeANDROID; typedef enum XrPlaneTypeANDROID { XR_PLANE_TYPE_HORIZONTAL_DOWNWARD_FACING_ANDROID = 0, XR_PLANE_TYPE_HORIZONTAL_UPWARD_FACING_ANDROID = 1, XR_PLANE_TYPE_VERTICAL_ANDROID = 2, XR_PLANE_TYPE_ARBITRARY_ANDROID = 3, XR_PLANE_TYPE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrPlaneTypeANDROID; typedef enum XrPlaneLabelANDROID { XR_PLANE_LABEL_UNKNOWN_ANDROID = 0, XR_PLANE_LABEL_WALL_ANDROID = 1, XR_PLANE_LABEL_FLOOR_ANDROID = 2, XR_PLANE_LABEL_CEILING_ANDROID = 3, XR_PLANE_LABEL_TABLE_ANDROID = 4, XR_PLANE_LABEL_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrPlaneLabelANDROID; typedef struct XrTrackableTrackerCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTrackableTypeANDROID trackableType; } XrTrackableTrackerCreateInfoANDROID; typedef struct XrTrackableGetInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTrackableANDROID trackable; XrSpace baseSpace; XrTime time; } XrTrackableGetInfoANDROID; typedef struct XrTrackablePlaneANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrTrackingStateANDROID trackingState; XrPosef centerPose; XrExtent2Df extents; XrPlaneTypeANDROID planeType; XrPlaneLabelANDROID planeLabel; XrTrackableANDROID subsumedByPlane; XrTime lastUpdatedTime; uint32_t vertexCapacityInput; uint32_t* vertexCountOutput; XrVector2f* vertices; } XrTrackablePlaneANDROID; typedef struct XrAnchorSpaceCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrPosef pose; XrTrackableANDROID trackable; } XrAnchorSpaceCreateInfoANDROID; // XrSystemTrackablesPropertiesANDROID extends XrSystemProperties typedef struct XrSystemTrackablesPropertiesANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 supportsAnchor; uint32_t maxAnchors; } XrSystemTrackablesPropertiesANDROID; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSupportedTrackableTypesANDROID)(XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSupportedAnchorTrackableTypesANDROID)(XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); typedef XrResult (XRAPI_PTR *PFN_xrCreateTrackableTrackerANDROID)(XrSession session, const XrTrackableTrackerCreateInfoANDROID* createInfo, XrTrackableTrackerANDROID* trackableTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyTrackableTrackerANDROID)(XrTrackableTrackerANDROID trackableTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetAllTrackablesANDROID)(XrTrackableTrackerANDROID trackableTracker, uint32_t trackableCapacityInput, uint32_t* trackableCountOutput, XrTrackableANDROID* trackables); typedef XrResult (XRAPI_PTR *PFN_xrGetTrackablePlaneANDROID)(XrTrackableTrackerANDROID trackableTracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackablePlaneANDROID* planeOutput); typedef XrResult (XRAPI_PTR *PFN_xrCreateAnchorSpaceANDROID)(XrSession session, const XrAnchorSpaceCreateInfoANDROID* createInfo, XrSpace* anchorOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSupportedTrackableTypesANDROID( XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSupportedAnchorTrackableTypesANDROID( XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); XRAPI_ATTR XrResult XRAPI_CALL xrCreateTrackableTrackerANDROID( XrSession session, const XrTrackableTrackerCreateInfoANDROID* createInfo, XrTrackableTrackerANDROID* trackableTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyTrackableTrackerANDROID( XrTrackableTrackerANDROID trackableTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetAllTrackablesANDROID( XrTrackableTrackerANDROID trackableTracker, uint32_t trackableCapacityInput, uint32_t* trackableCountOutput, XrTrackableANDROID* trackables); XRAPI_ATTR XrResult XRAPI_CALL xrGetTrackablePlaneANDROID( XrTrackableTrackerANDROID trackableTracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackablePlaneANDROID* planeOutput); XRAPI_ATTR XrResult XRAPI_CALL xrCreateAnchorSpaceANDROID( XrSession session, const XrAnchorSpaceCreateInfoANDROID* createInfo, XrSpace* anchorOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_eye_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_eye_tracking 1 XR_DEFINE_HANDLE(XrEyeTrackerANDROID) #define XR_EYE_MAX_ANDROID 2 #define XR_ANDROID_eye_tracking_SPEC_VERSION 1 #define XR_ANDROID_EYE_TRACKING_EXTENSION_NAME "XR_ANDROID_eye_tracking" typedef enum XrEyeIndexANDROID { XR_EYE_INDEX_LEFT_ANDROID = 0, XR_EYE_INDEX_RIGHT_ANDROID = 1, XR_EYE_INDEX_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrEyeIndexANDROID; typedef enum XrEyeStateANDROID { XR_EYE_STATE_INVALID_ANDROID = 0, XR_EYE_STATE_GAZING_ANDROID = 1, XR_EYE_STATE_SHUT_ANDROID = 2, XR_EYE_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrEyeStateANDROID; typedef enum XrEyeTrackingModeANDROID { XR_EYE_TRACKING_MODE_NOT_TRACKING_ANDROID = 0, XR_EYE_TRACKING_MODE_RIGHT_ANDROID = 1, XR_EYE_TRACKING_MODE_LEFT_ANDROID = 2, XR_EYE_TRACKING_MODE_BOTH_ANDROID = 3, XR_EYE_TRACKING_MODE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrEyeTrackingModeANDROID; // XrSystemEyeTrackingPropertiesANDROID extends XrSystemProperties typedef struct XrSystemEyeTrackingPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsEyeTracking; } XrSystemEyeTrackingPropertiesANDROID; typedef struct XrEyeANDROID { XrEyeStateANDROID eyeState; XrPosef eyePose; } XrEyeANDROID; typedef struct XrEyesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrEyeANDROID eyes[XR_EYE_MAX_ANDROID]; XrEyeTrackingModeANDROID mode; } XrEyesANDROID; typedef struct XrEyesGetInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; XrSpace baseSpace; } XrEyesGetInfoANDROID; typedef struct XrEyeTrackerCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEyeTrackerCreateInfoANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateEyeTrackerANDROID)(XrSession session, const XrEyeTrackerCreateInfoANDROID* createInfo, XrEyeTrackerANDROID* eyeTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyEyeTrackerANDROID)(XrEyeTrackerANDROID eyeTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetFineTrackingEyesInfoANDROID)(XrEyeTrackerANDROID eyeTracker, const XrEyesGetInfoANDROID* getInfo, XrEyesANDROID* eyesOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetCoarseTrackingEyesInfoANDROID)(XrEyeTrackerANDROID eyeTracker, const XrEyesGetInfoANDROID* getInfo, XrEyesANDROID* eyesOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateEyeTrackerANDROID( XrSession session, const XrEyeTrackerCreateInfoANDROID* createInfo, XrEyeTrackerANDROID* eyeTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEyeTrackerANDROID( XrEyeTrackerANDROID eyeTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetFineTrackingEyesInfoANDROID( XrEyeTrackerANDROID eyeTracker, const XrEyesGetInfoANDROID* getInfo, XrEyesANDROID* eyesOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetCoarseTrackingEyesInfoANDROID( XrEyeTrackerANDROID eyeTracker, const XrEyesGetInfoANDROID* getInfo, XrEyesANDROID* eyesOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_device_anchor_persistence is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_device_anchor_persistence 1 XR_DEFINE_HANDLE(XrDeviceAnchorPersistenceANDROID) #define XR_ANDROID_device_anchor_persistence_SPEC_VERSION 1 #define XR_ANDROID_DEVICE_ANCHOR_PERSISTENCE_EXTENSION_NAME "XR_ANDROID_device_anchor_persistence" typedef enum XrAnchorPersistStateANDROID { XR_ANCHOR_PERSIST_STATE_PERSIST_NOT_REQUESTED_ANDROID = 0, XR_ANCHOR_PERSIST_STATE_PERSIST_PENDING_ANDROID = 1, XR_ANCHOR_PERSIST_STATE_PERSISTED_ANDROID = 2, XR_ANCHOR_PERSIST_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrAnchorPersistStateANDROID; typedef struct XrDeviceAnchorPersistenceCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrDeviceAnchorPersistenceCreateInfoANDROID; typedef struct XrPersistedAnchorSpaceCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuidEXT anchorId; } XrPersistedAnchorSpaceCreateInfoANDROID; typedef struct XrPersistedAnchorSpaceInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace anchor; } XrPersistedAnchorSpaceInfoANDROID; // XrSystemDeviceAnchorPersistencePropertiesANDROID extends XrSystemProperties typedef struct XrSystemDeviceAnchorPersistencePropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsAnchorPersistence; } XrSystemDeviceAnchorPersistencePropertiesANDROID; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSupportedPersistenceAnchorTypesANDROID)(XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); typedef XrResult (XRAPI_PTR *PFN_xrCreateDeviceAnchorPersistenceANDROID)(XrSession session, const XrDeviceAnchorPersistenceCreateInfoANDROID* createInfo, XrDeviceAnchorPersistenceANDROID* outHandle); typedef XrResult (XRAPI_PTR *PFN_xrDestroyDeviceAnchorPersistenceANDROID)(XrDeviceAnchorPersistenceANDROID handle); typedef XrResult (XRAPI_PTR *PFN_xrPersistAnchorANDROID)(XrDeviceAnchorPersistenceANDROID handle, const XrPersistedAnchorSpaceInfoANDROID* persistedInfo, XrUuidEXT* anchorIdOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetAnchorPersistStateANDROID)(XrDeviceAnchorPersistenceANDROID handle, const XrUuidEXT* anchorId, XrAnchorPersistStateANDROID* persistState); typedef XrResult (XRAPI_PTR *PFN_xrCreatePersistedAnchorSpaceANDROID)(XrDeviceAnchorPersistenceANDROID handle, const XrPersistedAnchorSpaceCreateInfoANDROID* createInfo, XrSpace* anchorOutput); typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedAnchorsANDROID)(XrDeviceAnchorPersistenceANDROID handle, uint32_t anchorIdCapacityInput, uint32_t* anchorIdCountOutput, XrUuidEXT* anchorIds); typedef XrResult (XRAPI_PTR *PFN_xrUnpersistAnchorANDROID)(XrDeviceAnchorPersistenceANDROID handle, const XrUuidEXT* anchorId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSupportedPersistenceAnchorTypesANDROID( XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); XRAPI_ATTR XrResult XRAPI_CALL xrCreateDeviceAnchorPersistenceANDROID( XrSession session, const XrDeviceAnchorPersistenceCreateInfoANDROID* createInfo, XrDeviceAnchorPersistenceANDROID* outHandle); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDeviceAnchorPersistenceANDROID( XrDeviceAnchorPersistenceANDROID handle); XRAPI_ATTR XrResult XRAPI_CALL xrPersistAnchorANDROID( XrDeviceAnchorPersistenceANDROID handle, const XrPersistedAnchorSpaceInfoANDROID* persistedInfo, XrUuidEXT* anchorIdOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetAnchorPersistStateANDROID( XrDeviceAnchorPersistenceANDROID handle, const XrUuidEXT* anchorId, XrAnchorPersistStateANDROID* persistState); XRAPI_ATTR XrResult XRAPI_CALL xrCreatePersistedAnchorSpaceANDROID( XrDeviceAnchorPersistenceANDROID handle, const XrPersistedAnchorSpaceCreateInfoANDROID* createInfo, XrSpace* anchorOutput); XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePersistedAnchorsANDROID( XrDeviceAnchorPersistenceANDROID handle, uint32_t anchorIdCapacityInput, uint32_t* anchorIdCountOutput, XrUuidEXT* anchorIds); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistAnchorANDROID( XrDeviceAnchorPersistenceANDROID handle, const XrUuidEXT* anchorId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_face_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_face_tracking 1 XR_DEFINE_HANDLE(XrFaceTrackerANDROID) #define XR_ANDROID_face_tracking_SPEC_VERSION 1 #define XR_ANDROID_FACE_TRACKING_EXTENSION_NAME "XR_ANDROID_face_tracking" #define XR_FACE_PARAMETER_COUNT_ANDROID 68 #define XR_FACE_REGION_CONFIDENCE_COUNT_ANDROID 3 typedef enum XrFaceParameterIndicesANDROID { XR_FACE_PARAMETER_INDICES_BROW_LOWERER_L_ANDROID = 0, XR_FACE_PARAMETER_INDICES_BROW_LOWERER_R_ANDROID = 1, XR_FACE_PARAMETER_INDICES_CHEEK_PUFF_L_ANDROID = 2, XR_FACE_PARAMETER_INDICES_CHEEK_PUFF_R_ANDROID = 3, XR_FACE_PARAMETER_INDICES_CHEEK_RAISER_L_ANDROID = 4, XR_FACE_PARAMETER_INDICES_CHEEK_RAISER_R_ANDROID = 5, XR_FACE_PARAMETER_INDICES_CHEEK_SUCK_L_ANDROID = 6, XR_FACE_PARAMETER_INDICES_CHEEK_SUCK_R_ANDROID = 7, XR_FACE_PARAMETER_INDICES_CHIN_RAISER_B_ANDROID = 8, XR_FACE_PARAMETER_INDICES_CHIN_RAISER_T_ANDROID = 9, XR_FACE_PARAMETER_INDICES_DIMPLER_L_ANDROID = 10, XR_FACE_PARAMETER_INDICES_DIMPLER_R_ANDROID = 11, XR_FACE_PARAMETER_INDICES_EYES_CLOSED_L_ANDROID = 12, XR_FACE_PARAMETER_INDICES_EYES_CLOSED_R_ANDROID = 13, XR_FACE_PARAMETER_INDICES_EYES_LOOK_DOWN_L_ANDROID = 14, XR_FACE_PARAMETER_INDICES_EYES_LOOK_DOWN_R_ANDROID = 15, XR_FACE_PARAMETER_INDICES_EYES_LOOK_LEFT_L_ANDROID = 16, XR_FACE_PARAMETER_INDICES_EYES_LOOK_LEFT_R_ANDROID = 17, XR_FACE_PARAMETER_INDICES_EYES_LOOK_RIGHT_L_ANDROID = 18, XR_FACE_PARAMETER_INDICES_EYES_LOOK_RIGHT_R_ANDROID = 19, XR_FACE_PARAMETER_INDICES_EYES_LOOK_UP_L_ANDROID = 20, XR_FACE_PARAMETER_INDICES_EYES_LOOK_UP_R_ANDROID = 21, XR_FACE_PARAMETER_INDICES_INNER_BROW_RAISER_L_ANDROID = 22, XR_FACE_PARAMETER_INDICES_INNER_BROW_RAISER_R_ANDROID = 23, XR_FACE_PARAMETER_INDICES_JAW_DROP_ANDROID = 24, XR_FACE_PARAMETER_INDICES_JAW_SIDEWAYS_LEFT_ANDROID = 25, XR_FACE_PARAMETER_INDICES_JAW_SIDEWAYS_RIGHT_ANDROID = 26, XR_FACE_PARAMETER_INDICES_JAW_THRUST_ANDROID = 27, XR_FACE_PARAMETER_INDICES_LID_TIGHTENER_L_ANDROID = 28, XR_FACE_PARAMETER_INDICES_LID_TIGHTENER_R_ANDROID = 29, XR_FACE_PARAMETER_INDICES_LIP_CORNER_DEPRESSOR_L_ANDROID = 30, XR_FACE_PARAMETER_INDICES_LIP_CORNER_DEPRESSOR_R_ANDROID = 31, XR_FACE_PARAMETER_INDICES_LIP_CORNER_PULLER_L_ANDROID = 32, XR_FACE_PARAMETER_INDICES_LIP_CORNER_PULLER_R_ANDROID = 33, XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_LB_ANDROID = 34, XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_LT_ANDROID = 35, XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_RB_ANDROID = 36, XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_RT_ANDROID = 37, XR_FACE_PARAMETER_INDICES_LIP_PRESSOR_L_ANDROID = 38, XR_FACE_PARAMETER_INDICES_LIP_PRESSOR_R_ANDROID = 39, XR_FACE_PARAMETER_INDICES_LIP_PUCKER_L_ANDROID = 40, XR_FACE_PARAMETER_INDICES_LIP_PUCKER_R_ANDROID = 41, XR_FACE_PARAMETER_INDICES_LIP_STRETCHER_L_ANDROID = 42, XR_FACE_PARAMETER_INDICES_LIP_STRETCHER_R_ANDROID = 43, XR_FACE_PARAMETER_INDICES_LIP_SUCK_LB_ANDROID = 44, XR_FACE_PARAMETER_INDICES_LIP_SUCK_LT_ANDROID = 45, XR_FACE_PARAMETER_INDICES_LIP_SUCK_RB_ANDROID = 46, XR_FACE_PARAMETER_INDICES_LIP_SUCK_RT_ANDROID = 47, XR_FACE_PARAMETER_INDICES_LIP_TIGHTENER_L_ANDROID = 48, XR_FACE_PARAMETER_INDICES_LIP_TIGHTENER_R_ANDROID = 49, XR_FACE_PARAMETER_INDICES_LIPS_TOWARD_ANDROID = 50, XR_FACE_PARAMETER_INDICES_LOWER_LIP_DEPRESSOR_L_ANDROID = 51, XR_FACE_PARAMETER_INDICES_LOWER_LIP_DEPRESSOR_R_ANDROID = 52, XR_FACE_PARAMETER_INDICES_MOUTH_LEFT_ANDROID = 53, XR_FACE_PARAMETER_INDICES_MOUTH_RIGHT_ANDROID = 54, XR_FACE_PARAMETER_INDICES_NOSE_WRINKLER_L_ANDROID = 55, XR_FACE_PARAMETER_INDICES_NOSE_WRINKLER_R_ANDROID = 56, XR_FACE_PARAMETER_INDICES_OUTER_BROW_RAISER_L_ANDROID = 57, XR_FACE_PARAMETER_INDICES_OUTER_BROW_RAISER_R_ANDROID = 58, XR_FACE_PARAMETER_INDICES_UPPER_LID_RAISER_L_ANDROID = 59, XR_FACE_PARAMETER_INDICES_UPPER_LID_RAISER_R_ANDROID = 60, XR_FACE_PARAMETER_INDICES_UPPER_LIP_RAISER_L_ANDROID = 61, XR_FACE_PARAMETER_INDICES_UPPER_LIP_RAISER_R_ANDROID = 62, XR_FACE_PARAMETER_INDICES_TONGUE_OUT_ANDROID = 63, XR_FACE_PARAMETER_INDICES_TONGUE_LEFT_ANDROID = 64, XR_FACE_PARAMETER_INDICES_TONGUE_RIGHT_ANDROID = 65, XR_FACE_PARAMETER_INDICES_TONGUE_UP_ANDROID = 66, XR_FACE_PARAMETER_INDICES_TONGUE_DOWN_ANDROID = 67, XR_FACE_PARAMETER_INDICES_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrFaceParameterIndicesANDROID; typedef enum XrFaceTrackingStateANDROID { XR_FACE_TRACKING_STATE_PAUSED_ANDROID = 0, XR_FACE_TRACKING_STATE_STOPPED_ANDROID = 1, XR_FACE_TRACKING_STATE_TRACKING_ANDROID = 2, XR_FACE_TRACKING_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrFaceTrackingStateANDROID; typedef enum XrFaceConfidenceRegionsANDROID { XR_FACE_CONFIDENCE_REGIONS_LOWER_ANDROID = 0, XR_FACE_CONFIDENCE_REGIONS_LEFT_UPPER_ANDROID = 1, XR_FACE_CONFIDENCE_REGIONS_RIGHT_UPPER_ANDROID = 2, XR_FACE_CONFIDENCE_REGIONS_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrFaceConfidenceRegionsANDROID; typedef struct XrFaceTrackerCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrFaceTrackerCreateInfoANDROID; typedef struct XrFaceStateGetInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; } XrFaceStateGetInfoANDROID; typedef struct XrFaceStateANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t parametersCapacityInput; uint32_t parametersCountOutput; float* parameters; XrFaceTrackingStateANDROID faceTrackingState; XrTime sampleTime; XrBool32 isValid; uint32_t regionConfidencesCapacityInput; uint32_t regionConfidencesCountOutput; float* regionConfidences; } XrFaceStateANDROID; // XrSystemFaceTrackingPropertiesANDROID extends XrSystemProperties typedef struct XrSystemFaceTrackingPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFaceTracking; } XrSystemFaceTrackingPropertiesANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTrackerANDROID)(XrSession session, const XrFaceTrackerCreateInfoANDROID* createInfo, XrFaceTrackerANDROID* faceTracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTrackerANDROID)(XrFaceTrackerANDROID faceTracker); typedef XrResult (XRAPI_PTR *PFN_xrGetFaceStateANDROID)(XrFaceTrackerANDROID faceTracker, const XrFaceStateGetInfoANDROID* getInfo, XrFaceStateANDROID* faceStateOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetFaceCalibrationStateANDROID)(XrFaceTrackerANDROID faceTracker, XrBool32* faceIsCalibratedOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTrackerANDROID( XrSession session, const XrFaceTrackerCreateInfoANDROID* createInfo, XrFaceTrackerANDROID* faceTracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTrackerANDROID( XrFaceTrackerANDROID faceTracker); XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceStateANDROID( XrFaceTrackerANDROID faceTracker, const XrFaceStateGetInfoANDROID* getInfo, XrFaceStateANDROID* faceStateOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceCalibrationStateANDROID( XrFaceTrackerANDROID faceTracker, XrBool32* faceIsCalibratedOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_passthrough_camera_state is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_passthrough_camera_state 1 #define XR_ANDROID_passthrough_camera_state_SPEC_VERSION 1 #define XR_ANDROID_PASSTHROUGH_CAMERA_STATE_EXTENSION_NAME "XR_ANDROID_passthrough_camera_state" typedef enum XrPassthroughCameraStateANDROID { XR_PASSTHROUGH_CAMERA_STATE_DISABLED_ANDROID = 0, XR_PASSTHROUGH_CAMERA_STATE_INITIALIZING_ANDROID = 1, XR_PASSTHROUGH_CAMERA_STATE_READY_ANDROID = 2, XR_PASSTHROUGH_CAMERA_STATE_ERROR_ANDROID = 3, XR_PASSTHROUGH_CAMERA_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrPassthroughCameraStateANDROID; // XrSystemPassthroughCameraStatePropertiesANDROID extends XrSystemProperties typedef struct XrSystemPassthroughCameraStatePropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsPassthroughCameraState; } XrSystemPassthroughCameraStatePropertiesANDROID; typedef struct XrPassthroughCameraStateGetInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrPassthroughCameraStateGetInfoANDROID; typedef XrResult (XRAPI_PTR *PFN_xrGetPassthroughCameraStateANDROID)(XrSession session, const XrPassthroughCameraStateGetInfoANDROID* getInfo, XrPassthroughCameraStateANDROID* cameraStateOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetPassthroughCameraStateANDROID( XrSession session, const XrPassthroughCameraStateGetInfoANDROID* getInfo, XrPassthroughCameraStateANDROID* cameraStateOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_recommended_resolution is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_recommended_resolution 1 #define XR_ANDROID_recommended_resolution_SPEC_VERSION 1 #define XR_ANDROID_RECOMMENDED_RESOLUTION_EXTENSION_NAME "XR_ANDROID_recommended_resolution" typedef struct XrEventDataRecommendedResolutionChangedANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEventDataRecommendedResolutionChangedANDROID; // XR_ANDROID_composition_layer_passthrough_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_composition_layer_passthrough_mesh 1 XR_DEFINE_HANDLE(XrPassthroughLayerANDROID) #define XR_ANDROID_composition_layer_passthrough_mesh_SPEC_VERSION 1 #define XR_ANDROID_COMPOSITION_LAYER_PASSTHROUGH_MESH_EXTENSION_NAME "XR_ANDROID_composition_layer_passthrough_mesh" typedef enum XrWindingOrderANDROID { XR_WINDING_ORDER_UNKNOWN_ANDROID = 0, XR_WINDING_ORDER_CW_ANDROID = 1, XR_WINDING_ORDER_CCW_ANDROID = 2, XR_WINDING_ORDER_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrWindingOrderANDROID; typedef struct XrPassthroughLayerCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t vertexCapacity; uint32_t indexCapacity; } XrPassthroughLayerCreateInfoANDROID; // XrPassthroughLayerMeshANDROID extends XrPassthroughLayerCreateInfoANDROID typedef struct XrPassthroughLayerMeshANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrWindingOrderANDROID windingOrder; uint32_t vertexCount; const XrVector3f* vertices; uint32_t indexCount; const uint16_t* indices; } XrPassthroughLayerMeshANDROID; typedef struct XrCompositionLayerPassthroughANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerFlags layerFlags; XrSpace space; XrPosef pose; XrVector3f scale; float opacity; XrPassthroughLayerANDROID layer; } XrCompositionLayerPassthroughANDROID; // XrSystemPassthroughLayerPropertiesANDROID extends XrSystemProperties typedef struct XrSystemPassthroughLayerPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsPassthroughLayer; uint32_t maxMeshIndexCount; uint32_t maxMeshVertexCount; } XrSystemPassthroughLayerPropertiesANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughLayerANDROID)(XrSession session, const XrPassthroughLayerCreateInfoANDROID* createInfo, XrPassthroughLayerANDROID* layer); typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughLayerANDROID)(XrPassthroughLayerANDROID layer); typedef XrResult (XRAPI_PTR *PFN_xrSetPassthroughLayerMeshANDROID)(XrPassthroughLayerANDROID layer, const XrPassthroughLayerMeshANDROID* mesh); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughLayerANDROID( XrSession session, const XrPassthroughLayerCreateInfoANDROID* createInfo, XrPassthroughLayerANDROID* layer); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughLayerANDROID( XrPassthroughLayerANDROID layer); XRAPI_ATTR XrResult XRAPI_CALL xrSetPassthroughLayerMeshANDROID( XrPassthroughLayerANDROID layer, const XrPassthroughLayerMeshANDROID* mesh); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_raycast is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_raycast 1 #define XR_ANDROID_raycast_SPEC_VERSION 1 #define XR_ANDROID_RAYCAST_EXTENSION_NAME "XR_ANDROID_raycast" typedef struct XrRaycastInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t maxResults; uint32_t trackerCount; const XrTrackableTrackerANDROID* trackers; XrVector3f origin; XrVector3f trajectory; XrSpace space; XrTime time; } XrRaycastInfoANDROID; typedef struct XrRaycastHitResultANDROID { XrTrackableTypeANDROID type; XrTrackableANDROID trackable; XrPosef pose; } XrRaycastHitResultANDROID; typedef struct XrRaycastHitResultsANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t resultsCapacityInput; uint32_t resultsCountOutput; XrRaycastHitResultANDROID* results; } XrRaycastHitResultsANDROID; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRaycastSupportedTrackableTypesANDROID)(XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); typedef XrResult (XRAPI_PTR *PFN_xrRaycastANDROID)(XrSession session, const XrRaycastInfoANDROID* rayInfo, XrRaycastHitResultsANDROID* results); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRaycastSupportedTrackableTypesANDROID( XrInstance instance, XrSystemId systemId, uint32_t trackableTypeCapacityInput, uint32_t* trackableTypeCountOutput, XrTrackableTypeANDROID* trackableTypes); XRAPI_ATTR XrResult XRAPI_CALL xrRaycastANDROID( XrSession session, const XrRaycastInfoANDROID* rayInfo, XrRaycastHitResultsANDROID* results); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_performance_metrics is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_performance_metrics 1 #define XR_ANDROID_performance_metrics_SPEC_VERSION 1 #define XR_ANDROID_PERFORMANCE_METRICS_EXTENSION_NAME "XR_ANDROID_performance_metrics" typedef enum XrPerformanceMetricsCounterUnitANDROID { XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_ANDROID = 0, XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_ANDROID = 1, XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_ANDROID = 2, XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_ANDROID = 3, XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_ANDROID = 4, XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrPerformanceMetricsCounterUnitANDROID; typedef XrFlags64 XrPerformanceMetricsCounterFlagsANDROID; // Flag bits for XrPerformanceMetricsCounterFlagsANDROID static const XrPerformanceMetricsCounterFlagsANDROID XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_ANDROID = 0x00000001; static const XrPerformanceMetricsCounterFlagsANDROID XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_ANDROID = 0x00000002; static const XrPerformanceMetricsCounterFlagsANDROID XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_ANDROID = 0x00000004; typedef struct XrPerformanceMetricsStateANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 enabled; } XrPerformanceMetricsStateANDROID; typedef struct XrPerformanceMetricsCounterANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrPerformanceMetricsCounterFlagsANDROID counterFlags; XrPerformanceMetricsCounterUnitANDROID counterUnit; uint32_t uintValue; float floatValue; } XrPerformanceMetricsCounterANDROID; typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePerformanceMetricsCounterPathsANDROID)(XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths); typedef XrResult (XRAPI_PTR *PFN_xrSetPerformanceMetricsStateANDROID)(XrSession session, const XrPerformanceMetricsStateANDROID* state); typedef XrResult (XRAPI_PTR *PFN_xrGetPerformanceMetricsStateANDROID)(XrSession session, XrPerformanceMetricsStateANDROID* state); typedef XrResult (XRAPI_PTR *PFN_xrQueryPerformanceMetricsCounterANDROID)(XrSession session, XrPath counterPath, XrPerformanceMetricsCounterANDROID* counter); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePerformanceMetricsCounterPathsANDROID( XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths); XRAPI_ATTR XrResult XRAPI_CALL xrSetPerformanceMetricsStateANDROID( XrSession session, const XrPerformanceMetricsStateANDROID* state); XRAPI_ATTR XrResult XRAPI_CALL xrGetPerformanceMetricsStateANDROID( XrSession session, XrPerformanceMetricsStateANDROID* state); XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterANDROID( XrSession session, XrPath counterPath, XrPerformanceMetricsCounterANDROID* counter); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_trackables_object is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_trackables_object 1 #define XR_ANDROID_trackables_object_SPEC_VERSION 2 #define XR_ANDROID_TRACKABLES_OBJECT_EXTENSION_NAME "XR_ANDROID_trackables_object" typedef enum XrObjectLabelANDROID { XR_OBJECT_LABEL_UNKNOWN_ANDROID = 0, XR_OBJECT_LABEL_KEYBOARD_ANDROID = 1, XR_OBJECT_LABEL_MOUSE_ANDROID = 2, XR_OBJECT_LABEL_LAPTOP_ANDROID = 3, XR_OBJECT_LABEL_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrObjectLabelANDROID; typedef struct XrTrackableObjectANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrTrackingStateANDROID trackingState; XrPosef centerPose; XrExtent3DfEXT extents; XrObjectLabelANDROID objectLabel; XrTime lastUpdatedTime; } XrTrackableObjectANDROID; // XrTrackableObjectConfigurationANDROID extends XrTrackableTrackerCreateInfoANDROID typedef struct XrTrackableObjectConfigurationANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t labelCount; const XrObjectLabelANDROID* activeLabels; } XrTrackableObjectConfigurationANDROID; typedef XrResult (XRAPI_PTR *PFN_xrGetTrackableObjectANDROID)(XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableObjectANDROID* objectOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetTrackableObjectANDROID( XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableObjectANDROID* objectOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_unbounded_reference_space is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_unbounded_reference_space 1 #define XR_ANDROID_unbounded_reference_space_SPEC_VERSION 1 #define XR_ANDROID_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_ANDROID_unbounded_reference_space" // XR_EXT_future is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_future 1 #define XR_EXT_future_SPEC_VERSION 2 #define XR_EXT_FUTURE_EXTENSION_NAME "XR_EXT_future" #define XR_NULL_FUTURE_EXT 0 typedef enum XrFutureStateEXT { XR_FUTURE_STATE_PENDING_EXT = 1, XR_FUTURE_STATE_READY_EXT = 2, XR_FUTURE_STATE_MAX_ENUM_EXT = 0x7FFFFFFF } XrFutureStateEXT; typedef struct XrFutureCancelInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrFutureEXT future; } XrFutureCancelInfoEXT; typedef struct XrFuturePollInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrFutureEXT future; } XrFuturePollInfoEXT; typedef struct XR_MAY_ALIAS XrFutureCompletionBaseHeaderEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; } XrFutureCompletionBaseHeaderEXT; typedef struct XrFuturePollResultEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrFutureStateEXT state; } XrFuturePollResultEXT; typedef XrResult (XRAPI_PTR *PFN_xrPollFutureEXT)(XrInstance instance, const XrFuturePollInfoEXT* pollInfo, XrFuturePollResultEXT* pollResult); typedef XrResult (XRAPI_PTR *PFN_xrCancelFutureEXT)(XrInstance instance, const XrFutureCancelInfoEXT* cancelInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrPollFutureEXT( XrInstance instance, const XrFuturePollInfoEXT* pollInfo, XrFuturePollResultEXT* pollResult); XRAPI_ATTR XrResult XRAPI_CALL xrCancelFutureEXT( XrInstance instance, const XrFutureCancelInfoEXT* cancelInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_user_presence is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_user_presence 1 #define XR_EXT_user_presence_SPEC_VERSION 1 #define XR_EXT_USER_PRESENCE_EXTENSION_NAME "XR_EXT_user_presence" typedef struct XrEventDataUserPresenceChangedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSession session; XrBool32 isUserPresent; } XrEventDataUserPresenceChangedEXT; // XrSystemUserPresencePropertiesEXT extends XrSystemProperties typedef struct XrSystemUserPresencePropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsUserPresence; } XrSystemUserPresencePropertiesEXT; // XR_ML_user_calibration is a preprocessor guard. Do not pass it to API calls. #define XR_ML_user_calibration 1 #define XR_ML_user_calibration_SPEC_VERSION 1 #define XR_ML_USER_CALIBRATION_EXTENSION_NAME "XR_ML_user_calibration" typedef enum XrHeadsetFitStatusML { XR_HEADSET_FIT_STATUS_UNKNOWN_ML = 0, XR_HEADSET_FIT_STATUS_NOT_WORN_ML = 1, XR_HEADSET_FIT_STATUS_GOOD_FIT_ML = 2, XR_HEADSET_FIT_STATUS_BAD_FIT_ML = 3, XR_HEADSET_FIT_STATUS_MAX_ENUM_ML = 0x7FFFFFFF } XrHeadsetFitStatusML; typedef enum XrEyeCalibrationStatusML { XR_EYE_CALIBRATION_STATUS_UNKNOWN_ML = 0, XR_EYE_CALIBRATION_STATUS_NONE_ML = 1, XR_EYE_CALIBRATION_STATUS_COARSE_ML = 2, XR_EYE_CALIBRATION_STATUS_FINE_ML = 3, XR_EYE_CALIBRATION_STATUS_MAX_ENUM_ML = 0x7FFFFFFF } XrEyeCalibrationStatusML; typedef struct XrEventDataHeadsetFitChangedML { XrStructureType type; const void* XR_MAY_ALIAS next; XrHeadsetFitStatusML status; XrTime time; } XrEventDataHeadsetFitChangedML; typedef struct XrEventDataEyeCalibrationChangedML { XrStructureType type; const void* XR_MAY_ALIAS next; XrEyeCalibrationStatusML status; } XrEventDataEyeCalibrationChangedML; typedef struct XrUserCalibrationEnableEventsInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 enabled; } XrUserCalibrationEnableEventsInfoML; typedef XrResult (XRAPI_PTR *PFN_xrEnableUserCalibrationEventsML)(XrInstance instance, const XrUserCalibrationEnableEventsInfoML* enableInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnableUserCalibrationEventsML( XrInstance instance, const XrUserCalibrationEnableEventsInfoML* enableInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_system_notifications is a preprocessor guard. Do not pass it to API calls. #define XR_ML_system_notifications 1 #define XR_ML_system_notifications_SPEC_VERSION 1 #define XR_ML_SYSTEM_NOTIFICATIONS_EXTENSION_NAME "XR_ML_system_notifications" typedef struct XrSystemNotificationsSetInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 suppressNotifications; } XrSystemNotificationsSetInfoML; typedef XrResult (XRAPI_PTR *PFN_xrSetSystemNotificationsML)(XrInstance instance, const XrSystemNotificationsSetInfoML* info); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetSystemNotificationsML( XrInstance instance, const XrSystemNotificationsSetInfoML* info); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_world_mesh_detection is a preprocessor guard. Do not pass it to API calls. #define XR_ML_world_mesh_detection 1 XR_DEFINE_HANDLE(XrWorldMeshDetectorML) #define XR_ML_world_mesh_detection_SPEC_VERSION 1 #define XR_ML_WORLD_MESH_DETECTION_EXTENSION_NAME "XR_ML_world_mesh_detection" typedef enum XrWorldMeshDetectorLodML { XR_WORLD_MESH_DETECTOR_LOD_MINIMUM_ML = 0, XR_WORLD_MESH_DETECTOR_LOD_MEDIUM_ML = 1, XR_WORLD_MESH_DETECTOR_LOD_MAXIMUM_ML = 2, XR_WORLD_MESH_DETECTOR_LOD_MAX_ENUM_ML = 0x7FFFFFFF } XrWorldMeshDetectorLodML; typedef enum XrWorldMeshBlockStatusML { XR_WORLD_MESH_BLOCK_STATUS_NEW_ML = 0, XR_WORLD_MESH_BLOCK_STATUS_UPDATED_ML = 1, XR_WORLD_MESH_BLOCK_STATUS_DELETED_ML = 2, XR_WORLD_MESH_BLOCK_STATUS_UNCHANGED_ML = 3, XR_WORLD_MESH_BLOCK_STATUS_MAX_ENUM_ML = 0x7FFFFFFF } XrWorldMeshBlockStatusML; typedef enum XrWorldMeshBlockResultML { XR_WORLD_MESH_BLOCK_RESULT_SUCCESS_ML = 0, XR_WORLD_MESH_BLOCK_RESULT_FAILED_ML = 1, XR_WORLD_MESH_BLOCK_RESULT_PENDING_ML = 2, XR_WORLD_MESH_BLOCK_RESULT_PARTIAL_UPDATE_ML = 3, XR_WORLD_MESH_BLOCK_RESULT_MAX_ENUM_ML = 0x7FFFFFFF } XrWorldMeshBlockResultML; typedef XrFlags64 XrWorldMeshDetectorFlagsML; // Flag bits for XrWorldMeshDetectorFlagsML static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_POINT_CLOUD_BIT_ML = 0x00000001; static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_COMPUTE_NORMALS_BIT_ML = 0x00000002; static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_COMPUTE_CONFIDENCE_BIT_ML = 0x00000004; static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_PLANARIZE_BIT_ML = 0x00000008; static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_REMOVE_MESH_SKIRT_BIT_ML = 0x00000010; static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_INDEX_ORDER_CW_BIT_ML = 0x00000020; typedef struct XrWorldMeshDetectorCreateInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrWorldMeshDetectorCreateInfoML; typedef struct XrWorldMeshBlockStateML { XrStructureType type; void* XR_MAY_ALIAS next; XrUuidEXT uuid; XrPosef meshBoundingBoxCenter; XrExtent3DfEXT meshBoundingBoxExtents; XrTime lastUpdateTime; XrWorldMeshBlockStatusML status; } XrWorldMeshBlockStateML; typedef struct XrWorldMeshStateRequestInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; XrPosef boundingBoxCenter; XrExtent3DfEXT boundingBoxExtents; } XrWorldMeshStateRequestInfoML; typedef struct XrWorldMeshStateRequestCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrTime timestamp; uint32_t meshBlockStateCapacityInput; uint32_t meshBlockStateCountOutput; XrWorldMeshBlockStateML* meshBlockStates; } XrWorldMeshStateRequestCompletionML; typedef struct XrWorldMeshBufferRecommendedSizeInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t maxBlockCount; } XrWorldMeshBufferRecommendedSizeInfoML; typedef struct XrWorldMeshBufferSizeML { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t size; } XrWorldMeshBufferSizeML; typedef struct XrWorldMeshBufferML { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t bufferSize; void* XR_MAY_ALIAS buffer; } XrWorldMeshBufferML; typedef struct XrWorldMeshBlockRequestML { XrStructureType type; void* XR_MAY_ALIAS next; XrUuidEXT uuid; XrWorldMeshDetectorLodML lod; } XrWorldMeshBlockRequestML; typedef struct XrWorldMeshGetInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrWorldMeshDetectorFlagsML flags; float fillHoleLength; float disconnectedComponentArea; uint32_t blockCount; XrWorldMeshBlockRequestML* blocks; } XrWorldMeshGetInfoML; typedef struct XrWorldMeshBlockML { XrStructureType type; void* XR_MAY_ALIAS next; XrUuidEXT uuid; XrWorldMeshBlockResultML blockResult; XrWorldMeshDetectorLodML lod; XrWorldMeshDetectorFlagsML flags; uint32_t indexCount; uint16_t* indexBuffer; uint32_t vertexCount; XrVector3f* vertexBuffer; uint32_t normalCount; XrVector3f* normalBuffer; uint32_t confidenceCount; float* confidenceBuffer; } XrWorldMeshBlockML; typedef struct XrWorldMeshRequestCompletionInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace meshSpace; XrTime meshSpaceLocateTime; } XrWorldMeshRequestCompletionInfoML; typedef struct XrWorldMeshRequestCompletionML { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; uint32_t blockCount; XrWorldMeshBlockML* blocks; } XrWorldMeshRequestCompletionML; typedef XrResult (XRAPI_PTR *PFN_xrCreateWorldMeshDetectorML)(XrSession session, const XrWorldMeshDetectorCreateInfoML* createInfo, XrWorldMeshDetectorML* detector); typedef XrResult (XRAPI_PTR *PFN_xrDestroyWorldMeshDetectorML)(XrWorldMeshDetectorML detector); typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateAsyncML)(XrWorldMeshDetectorML detector, const XrWorldMeshStateRequestInfoML* stateRequest, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateCompleteML)(XrWorldMeshDetectorML detector, XrFutureEXT future, XrWorldMeshStateRequestCompletionML* completion); typedef XrResult (XRAPI_PTR *PFN_xrGetWorldMeshBufferRecommendSizeML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferRecommendedSizeInfoML* sizeInfo, XrWorldMeshBufferSizeML* size); typedef XrResult (XRAPI_PTR *PFN_xrAllocateWorldMeshBufferML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferSizeML* size, XrWorldMeshBufferML* buffer); typedef XrResult (XRAPI_PTR *PFN_xrFreeWorldMeshBufferML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferML* buffer); typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshAsyncML)(XrWorldMeshDetectorML detector, const XrWorldMeshGetInfoML* getInfo, XrWorldMeshBufferML* buffer, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshCompleteML)(XrWorldMeshDetectorML detector, const XrWorldMeshRequestCompletionInfoML* completionInfo, XrFutureEXT future, XrWorldMeshRequestCompletionML* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateWorldMeshDetectorML( XrSession session, const XrWorldMeshDetectorCreateInfoML* createInfo, XrWorldMeshDetectorML* detector); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyWorldMeshDetectorML( XrWorldMeshDetectorML detector); XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshStateAsyncML( XrWorldMeshDetectorML detector, const XrWorldMeshStateRequestInfoML* stateRequest, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshStateCompleteML( XrWorldMeshDetectorML detector, XrFutureEXT future, XrWorldMeshStateRequestCompletionML* completion); XRAPI_ATTR XrResult XRAPI_CALL xrGetWorldMeshBufferRecommendSizeML( XrWorldMeshDetectorML detector, const XrWorldMeshBufferRecommendedSizeInfoML* sizeInfo, XrWorldMeshBufferSizeML* size); XRAPI_ATTR XrResult XRAPI_CALL xrAllocateWorldMeshBufferML( XrWorldMeshDetectorML detector, const XrWorldMeshBufferSizeML* size, XrWorldMeshBufferML* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrFreeWorldMeshBufferML( XrWorldMeshDetectorML detector, const XrWorldMeshBufferML* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshAsyncML( XrWorldMeshDetectorML detector, const XrWorldMeshGetInfoML* getInfo, XrWorldMeshBufferML* buffer, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshCompleteML( XrWorldMeshDetectorML detector, const XrWorldMeshRequestCompletionInfoML* completionInfo, XrFutureEXT future, XrWorldMeshRequestCompletionML* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_facial_expression is a preprocessor guard. Do not pass it to API calls. #define XR_ML_facial_expression 1 XR_DEFINE_HANDLE(XrFacialExpressionClientML) #define XR_ML_facial_expression_SPEC_VERSION 1 #define XR_ML_FACIAL_EXPRESSION_EXTENSION_NAME "XR_ML_facial_expression" typedef enum XrFacialBlendShapeML { XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_L_ML = 0, XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_R_ML = 1, XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_L_ML = 2, XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_R_ML = 3, XR_FACIAL_BLEND_SHAPE_CHIN_RAISER_ML = 4, XR_FACIAL_BLEND_SHAPE_DIMPLER_L_ML = 5, XR_FACIAL_BLEND_SHAPE_DIMPLER_R_ML = 6, XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_L_ML = 7, XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_R_ML = 8, XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_L_ML = 9, XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_R_ML = 10, XR_FACIAL_BLEND_SHAPE_JAW_DROP_ML = 11, XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_L_ML = 12, XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_R_ML = 13, XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_L_ML = 14, XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_R_ML = 15, XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_L_ML = 16, XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_R_ML = 17, XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LB_ML = 18, XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LT_ML = 19, XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RB_ML = 20, XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RT_ML = 21, XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_L_ML = 22, XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_R_ML = 23, XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_L_ML = 24, XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_R_ML = 25, XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_L_ML = 26, XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_R_ML = 27, XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LB_ML = 28, XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LT_ML = 29, XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RB_ML = 30, XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RT_ML = 31, XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_L_ML = 32, XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_R_ML = 33, XR_FACIAL_BLEND_SHAPE_LIPS_TOWARD_ML = 34, XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_L_ML = 35, XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_R_ML = 36, XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_L_ML = 37, XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_R_ML = 38, XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_L_ML = 39, XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_R_ML = 40, XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_L_ML = 41, XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_R_ML = 42, XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_L_ML = 43, XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_R_ML = 44, XR_FACIAL_BLEND_SHAPE_TONGUE_OUT_ML = 45, XR_FACIAL_BLEND_SHAPE_MAX_ENUM_ML = 0x7FFFFFFF } XrFacialBlendShapeML; typedef XrFlags64 XrFacialExpressionBlendShapePropertiesFlagsML; // Flag bits for XrFacialExpressionBlendShapePropertiesFlagsML static const XrFacialExpressionBlendShapePropertiesFlagsML XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_VALID_BIT_ML = 0x00000001; static const XrFacialExpressionBlendShapePropertiesFlagsML XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_TRACKED_BIT_ML = 0x00000002; // XrSystemFacialExpressionPropertiesML extends XrSystemProperties typedef struct XrSystemFacialExpressionPropertiesML { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsFacialExpression; } XrSystemFacialExpressionPropertiesML; typedef struct XrFacialExpressionClientCreateInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t requestedCount; const XrFacialBlendShapeML* requestedFacialBlendShapes; } XrFacialExpressionClientCreateInfoML; typedef struct XrFacialExpressionBlendShapeGetInfoML { XrStructureType type; const void* XR_MAY_ALIAS next; } XrFacialExpressionBlendShapeGetInfoML; typedef struct XrFacialExpressionBlendShapePropertiesML { XrStructureType type; void* XR_MAY_ALIAS next; XrFacialBlendShapeML requestedFacialBlendShape; float weight; XrFacialExpressionBlendShapePropertiesFlagsML flags; XrTime time; } XrFacialExpressionBlendShapePropertiesML; typedef XrResult (XRAPI_PTR *PFN_xrCreateFacialExpressionClientML)(XrSession session, const XrFacialExpressionClientCreateInfoML* createInfo, XrFacialExpressionClientML* facialExpressionClient); typedef XrResult (XRAPI_PTR *PFN_xrDestroyFacialExpressionClientML)(XrFacialExpressionClientML facialExpressionClient); typedef XrResult (XRAPI_PTR *PFN_xrGetFacialExpressionBlendShapePropertiesML)(XrFacialExpressionClientML facialExpressionClient, const XrFacialExpressionBlendShapeGetInfoML* blendShapeGetInfo, uint32_t blendShapeCount, XrFacialExpressionBlendShapePropertiesML* blendShapes); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateFacialExpressionClientML( XrSession session, const XrFacialExpressionClientCreateInfoML* createInfo, XrFacialExpressionClientML* facialExpressionClient); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFacialExpressionClientML( XrFacialExpressionClientML facialExpressionClient); XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionBlendShapePropertiesML( XrFacialExpressionClientML facialExpressionClient, const XrFacialExpressionBlendShapeGetInfoML* blendShapeGetInfo, uint32_t blendShapeCount, XrFacialExpressionBlendShapePropertiesML* blendShapes); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ML_view_configuration_depth_range_change is a preprocessor guard. Do not pass it to API calls. #define XR_ML_view_configuration_depth_range_change 1 #define XR_ML_view_configuration_depth_range_change_SPEC_VERSION 1 #define XR_ML_VIEW_CONFIGURATION_DEPTH_RANGE_CHANGE_EXTENSION_NAME "XR_ML_view_configuration_depth_range_change" // XR_YVR_controller_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_YVR_controller_interaction 1 #define XR_YVR_controller_interaction_SPEC_VERSION 1 #define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction" // XR_META_boundary_visibility is a preprocessor guard. Do not pass it to API calls. #define XR_META_boundary_visibility 1 #define XR_META_boundary_visibility_SPEC_VERSION 1 #define XR_META_BOUNDARY_VISIBILITY_EXTENSION_NAME "XR_META_boundary_visibility" typedef enum XrBoundaryVisibilityMETA { XR_BOUNDARY_VISIBILITY_NOT_SUPPRESSED_META = 1, XR_BOUNDARY_VISIBILITY_SUPPRESSED_META = 2, XR_BOUNDARY_VISIBILITY_MAX_ENUM_META = 0x7FFFFFFF } XrBoundaryVisibilityMETA; // XrSystemBoundaryVisibilityPropertiesMETA extends XrSystemProperties typedef struct XrSystemBoundaryVisibilityPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsBoundaryVisibility; } XrSystemBoundaryVisibilityPropertiesMETA; typedef struct XrEventDataBoundaryVisibilityChangedMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBoundaryVisibilityMETA boundaryVisibility; } XrEventDataBoundaryVisibilityChangedMETA; typedef XrResult (XRAPI_PTR *PFN_xrRequestBoundaryVisibilityMETA)(XrSession session, XrBoundaryVisibilityMETA boundaryVisibility); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrRequestBoundaryVisibilityMETA( XrSession session, XrBoundaryVisibilityMETA boundaryVisibility); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_simultaneous_hands_and_controllers is a preprocessor guard. Do not pass it to API calls. #define XR_META_simultaneous_hands_and_controllers 1 #define XR_META_simultaneous_hands_and_controllers_SPEC_VERSION 1 #define XR_META_SIMULTANEOUS_HANDS_AND_CONTROLLERS_EXTENSION_NAME "XR_META_simultaneous_hands_and_controllers" // XrSystemSimultaneousHandsAndControllersPropertiesMETA extends XrSystemProperties typedef struct XrSystemSimultaneousHandsAndControllersPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSimultaneousHandsAndControllers; } XrSystemSimultaneousHandsAndControllersPropertiesMETA; typedef struct XrSimultaneousHandsAndControllersTrackingResumeInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSimultaneousHandsAndControllersTrackingResumeInfoMETA; typedef struct XrSimultaneousHandsAndControllersTrackingPauseInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSimultaneousHandsAndControllersTrackingPauseInfoMETA; typedef XrResult (XRAPI_PTR *PFN_xrResumeSimultaneousHandsAndControllersTrackingMETA)(XrSession session, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo); typedef XrResult (XRAPI_PTR *PFN_xrPauseSimultaneousHandsAndControllersTrackingMETA)(XrSession session, const XrSimultaneousHandsAndControllersTrackingPauseInfoMETA* pauseInfo); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrResumeSimultaneousHandsAndControllersTrackingMETA( XrSession session, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo); XRAPI_ATTR XrResult XRAPI_CALL xrPauseSimultaneousHandsAndControllersTrackingMETA( XrSession session, const XrSimultaneousHandsAndControllersTrackingPauseInfoMETA* pauseInfo); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_face_tracking_visemes is a preprocessor guard. Do not pass it to API calls. #define XR_META_face_tracking_visemes 1 #define XR_FACE_TRACKING_VISEME_COUNT_META 15 #define XR_META_face_tracking_visemes_SPEC_VERSION 1 #define XR_META_FACE_TRACKING_VISEMES_EXTENSION_NAME "XR_META_face_tracking_visemes" typedef enum XrFaceTrackingVisemeMETA { XR_FACE_TRACKING_VISEME_SIL_META = 0, XR_FACE_TRACKING_VISEME_PP_META = 1, XR_FACE_TRACKING_VISEME_FF_META = 2, XR_FACE_TRACKING_VISEME_TH_META = 3, XR_FACE_TRACKING_VISEME_DD_META = 4, XR_FACE_TRACKING_VISEME_KK_META = 5, XR_FACE_TRACKING_VISEME_CH_META = 6, XR_FACE_TRACKING_VISEME_SS_META = 7, XR_FACE_TRACKING_VISEME_NN_META = 8, XR_FACE_TRACKING_VISEME_RR_META = 9, XR_FACE_TRACKING_VISEME_AA_META = 10, XR_FACE_TRACKING_VISEME_E_META = 11, XR_FACE_TRACKING_VISEME_IH_META = 12, XR_FACE_TRACKING_VISEME_OH_META = 13, XR_FACE_TRACKING_VISEME_OU_META = 14, XR_FACE_TRACKING_VISEME_MAX_ENUM_META = 0x7FFFFFFF } XrFaceTrackingVisemeMETA; // XrFaceTrackingVisemesMETA extends XrFaceExpressionWeights2FB typedef struct XrFaceTrackingVisemesMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 isValid; float visemes[XR_FACE_TRACKING_VISEME_COUNT_META]; } XrFaceTrackingVisemesMETA; // XrSystemFaceTrackingVisemesPropertiesMETA extends XrSystemProperties typedef struct XrSystemFaceTrackingVisemesPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsVisemes; } XrSystemFaceTrackingVisemesPropertiesMETA; // XR_META_spatial_entity_semantic_label is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_semantic_label 1 #define XR_META_spatial_entity_semantic_label_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_SEMANTIC_LABEL_EXTENSION_NAME "XR_META_spatial_entity_semantic_label" typedef enum XrSemanticLabelMETA { XR_SEMANTIC_LABEL_UNKNOWN_META = 0, XR_SEMANTIC_LABEL_FLOOR_META = 1, XR_SEMANTIC_LABEL_CEILING_META = 2, XR_SEMANTIC_LABEL_WALL_FACE_META = 3, XR_SEMANTIC_LABEL_INNER_WALL_FACE_META = 4, XR_SEMANTIC_LABEL_INVISIBLE_WALL_FACE_META = 5, XR_SEMANTIC_LABEL_DOOR_FRAME_META = 6, XR_SEMANTIC_LABEL_WINDOW_FRAME_META = 7, XR_SEMANTIC_LABEL_MAX_ENUM_META = 0x7FFFFFFF } XrSemanticLabelMETA; // XR_META_spatial_entity_room_mesh is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_room_mesh 1 #define XR_META_spatial_entity_room_mesh_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_ROOM_MESH_EXTENSION_NAME "XR_META_spatial_entity_room_mesh" typedef struct XrRoomMeshFaceMETA { XrUuid uuid; XrUuid parentUuid; XrSemanticLabelMETA semanticLabel; } XrRoomMeshFaceMETA; typedef struct XrRoomMeshFaceIndicesMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrRoomMeshFaceIndicesMETA; typedef struct XrSpaceRoomMeshGetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t recognizedSemanticLabelCount; const XrSemanticLabelMETA* recognizedSemanticLabels; } XrSpaceRoomMeshGetInfoMETA; typedef struct XrRoomMeshMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertices; uint32_t faceCapacityInput; uint32_t faceCountOutput; XrRoomMeshFaceMETA* faces; } XrRoomMeshMETA; typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceRoomMeshMETA)(XrSpace space, const XrSpaceRoomMeshGetInfoMETA* getInfo, XrRoomMeshMETA* roomMeshOutput); typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceRoomMeshFaceIndicesMETA)(XrSpace space, const XrUuid* faceUuid, XrRoomMeshFaceIndicesMETA* roomMeshFaceIndicesOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceRoomMeshMETA( XrSpace space, const XrSpaceRoomMeshGetInfoMETA* getInfo, XrRoomMeshMETA* roomMeshOutput); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceRoomMeshFaceIndicesMETA( XrSpace space, const XrUuid* faceUuid, XrRoomMeshFaceIndicesMETA* roomMeshFaceIndicesOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_composition_layer_inverted_alpha is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_composition_layer_inverted_alpha 1 #define XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION 1 #define XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME "XR_EXT_composition_layer_inverted_alpha" // XR_META_colocation_discovery is a preprocessor guard. Do not pass it to API calls. #define XR_META_colocation_discovery 1 #define XR_MAX_COLOCATION_DISCOVERY_BUFFER_SIZE_META 1024 #define XR_META_colocation_discovery_SPEC_VERSION 1 #define XR_META_COLOCATION_DISCOVERY_EXTENSION_NAME "XR_META_colocation_discovery" typedef struct XrColocationDiscoveryStartInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrColocationDiscoveryStartInfoMETA; typedef struct XrColocationDiscoveryStopInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrColocationDiscoveryStopInfoMETA; typedef struct XrColocationAdvertisementStartInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t bufferSize; uint8_t* buffer; } XrColocationAdvertisementStartInfoMETA; typedef struct XrColocationAdvertisementStopInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrColocationAdvertisementStopInfoMETA; typedef struct XrEventDataStartColocationAdvertisementCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB advertisementRequestId; XrResult result; XrUuid advertisementUuid; } XrEventDataStartColocationAdvertisementCompleteMETA; typedef struct XrEventDataStopColocationAdvertisementCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataStopColocationAdvertisementCompleteMETA; typedef struct XrEventDataColocationAdvertisementCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB advertisementRequestId; XrResult result; } XrEventDataColocationAdvertisementCompleteMETA; typedef struct XrEventDataStartColocationDiscoveryCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB discoveryRequestId; XrResult result; } XrEventDataStartColocationDiscoveryCompleteMETA; typedef struct XrEventDataColocationDiscoveryResultMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB discoveryRequestId; XrUuid advertisementUuid; uint32_t bufferSize; uint8_t buffer[XR_MAX_COLOCATION_DISCOVERY_BUFFER_SIZE_META]; } XrEventDataColocationDiscoveryResultMETA; typedef struct XrEventDataColocationDiscoveryCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB discoveryRequestId; XrResult result; } XrEventDataColocationDiscoveryCompleteMETA; typedef struct XrEventDataStopColocationDiscoveryCompleteMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrAsyncRequestIdFB requestId; XrResult result; } XrEventDataStopColocationDiscoveryCompleteMETA; // XrSystemColocationDiscoveryPropertiesMETA extends XrSystemProperties typedef struct XrSystemColocationDiscoveryPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsColocationDiscovery; } XrSystemColocationDiscoveryPropertiesMETA; typedef XrResult (XRAPI_PTR *PFN_xrStartColocationDiscoveryMETA)(XrSession session, const XrColocationDiscoveryStartInfoMETA* info, XrAsyncRequestIdFB* discoveryRequestId); typedef XrResult (XRAPI_PTR *PFN_xrStopColocationDiscoveryMETA)(XrSession session, const XrColocationDiscoveryStopInfoMETA* info, XrAsyncRequestIdFB* requestId); typedef XrResult (XRAPI_PTR *PFN_xrStartColocationAdvertisementMETA)(XrSession session, const XrColocationAdvertisementStartInfoMETA* info, XrAsyncRequestIdFB* advertisementRequestId); typedef XrResult (XRAPI_PTR *PFN_xrStopColocationAdvertisementMETA)(XrSession session, const XrColocationAdvertisementStopInfoMETA* info, XrAsyncRequestIdFB* requestId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrStartColocationDiscoveryMETA( XrSession session, const XrColocationDiscoveryStartInfoMETA* info, XrAsyncRequestIdFB* discoveryRequestId); XRAPI_ATTR XrResult XRAPI_CALL xrStopColocationDiscoveryMETA( XrSession session, const XrColocationDiscoveryStopInfoMETA* info, XrAsyncRequestIdFB* requestId); XRAPI_ATTR XrResult XRAPI_CALL xrStartColocationAdvertisementMETA( XrSession session, const XrColocationAdvertisementStartInfoMETA* info, XrAsyncRequestIdFB* advertisementRequestId); XRAPI_ATTR XrResult XRAPI_CALL xrStopColocationAdvertisementMETA( XrSession session, const XrColocationAdvertisementStopInfoMETA* info, XrAsyncRequestIdFB* requestId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_spatial_entity_group_sharing is a preprocessor guard. Do not pass it to API calls. #define XR_META_spatial_entity_group_sharing 1 #define XR_META_spatial_entity_group_sharing_SPEC_VERSION 1 #define XR_META_SPATIAL_ENTITY_GROUP_SHARING_EXTENSION_NAME "XR_META_spatial_entity_group_sharing" // XrSystemSpatialEntityGroupSharingPropertiesMETA extends XrSystemProperties typedef struct XrSystemSpatialEntityGroupSharingPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSpatialEntityGroupSharing; } XrSystemSpatialEntityGroupSharingPropertiesMETA; typedef struct XrShareSpacesRecipientGroupsMETA { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t groupCount; XrUuid* groups; } XrShareSpacesRecipientGroupsMETA; // XrSpaceGroupUuidFilterInfoMETA extends XrSpaceQueryInfoBaseHeaderFB typedef struct XrSpaceGroupUuidFilterInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuid groupUuid; } XrSpaceGroupUuidFilterInfoMETA; // XR_META_environment_raycast is a preprocessor guard. Do not pass it to API calls. #define XR_META_environment_raycast 1 XR_DEFINE_HANDLE(XrEnvironmentRaycasterMETA) #define XR_META_environment_raycast_SPEC_VERSION 1 #define XR_META_ENVIRONMENT_RAYCAST_EXTENSION_NAME "XR_META_environment_raycast" typedef enum XrEnvironmentRaycastHitStatusMETA { XR_ENVIRONMENT_RAYCAST_HIT_STATUS_HIT_META = 1, XR_ENVIRONMENT_RAYCAST_HIT_STATUS_NO_HIT_META = 2, XR_ENVIRONMENT_RAYCAST_HIT_STATUS_HIT_POINT_OCCLUDED_META = 3, XR_ENVIRONMENT_RAYCAST_HIT_STATUS_HIT_POINT_OUTSIDE_OF_FOV_META = 4, XR_ENVIRONMENT_RAYCAST_HIT_STATUS_RAY_OCCLUDED_META = 5, XR_ENVIRONMENT_RAYCAST_HIT_STATUS_HIT_INVALID_ORIENTATION_META = 6, XR_ENVIRONMENT_RAYCAST_HIT_STATUS_MAX_ENUM_META = 0x7FFFFFFF } XrEnvironmentRaycastHitStatusMETA; // XrSystemEnvironmentRaycastPropertiesMETA extends XrSystemProperties typedef struct XrSystemEnvironmentRaycastPropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsEnvironmentRaycast; } XrSystemEnvironmentRaycastPropertiesMETA; typedef struct XrEnvironmentRaycasterCreateInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEnvironmentRaycasterCreateInfoMETA; typedef struct XrEnvironmentRaycasterCreateCompletionMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrEnvironmentRaycasterMETA environmentRaycaster; } XrEnvironmentRaycasterCreateCompletionMETA; typedef struct XR_MAY_ALIAS XrEnvironmentRaycastFilterBaseHeaderMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrEnvironmentRaycastFilterBaseHeaderMETA; typedef struct XrEnvironmentRaycastHitGetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; XrVector3f origin; XrVector3f direction; uint32_t filterCount; const XrEnvironmentRaycastFilterBaseHeaderMETA* const * filters; } XrEnvironmentRaycastHitGetInfoMETA; typedef struct XrEnvironmentRaycastHitMETA { XrStructureType type; const void* XR_MAY_ALIAS next; XrEnvironmentRaycastHitStatusMETA status; XrPosef pose; } XrEnvironmentRaycastHitMETA; typedef struct XrEnvironmentRaycastFilterDistanceMETA { XrStructureType type; const void* XR_MAY_ALIAS next; float maxDistance; } XrEnvironmentRaycastFilterDistanceMETA; typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentRaycasterAsyncMETA)(XrSession session, const XrEnvironmentRaycasterCreateInfoMETA* info, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentRaycasterCompleteMETA)(XrSession session, XrFutureEXT future, XrEnvironmentRaycasterCreateCompletionMETA* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentRaycasterMETA)(XrEnvironmentRaycasterMETA environmentRaycaster); typedef XrResult (XRAPI_PTR *PFN_xrPerformEnvironmentRaycastMETA)(XrEnvironmentRaycasterMETA environmentRaycaster, const XrEnvironmentRaycastHitGetInfoMETA* info, XrEnvironmentRaycastHitMETA* hitPoint); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentRaycasterAsyncMETA( XrSession session, const XrEnvironmentRaycasterCreateInfoMETA* info, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentRaycasterCompleteMETA( XrSession session, XrFutureEXT future, XrEnvironmentRaycasterCreateCompletionMETA* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentRaycasterMETA( XrEnvironmentRaycasterMETA environmentRaycaster); XRAPI_ATTR XrResult XRAPI_CALL xrPerformEnvironmentRaycastMETA( XrEnvironmentRaycasterMETA environmentRaycaster, const XrEnvironmentRaycastHitGetInfoMETA* info, XrEnvironmentRaycastHitMETA* hitPoint); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_tile_properties_hint is a preprocessor guard. Do not pass it to API calls. #define XR_META_tile_properties_hint 1 #define XR_META_tile_properties_hint_SPEC_VERSION 1 #define XR_META_TILE_PROPERTIES_HINT_EXTENSION_NAME "XR_META_tile_properties_hint" typedef struct XrExtent3DiMETA { int32_t width; int32_t height; int32_t depth; } XrExtent3DiMETA; typedef struct XrTilePropertiesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrExtent3DiMETA tileDimensions; XrExtent2Di apronDimensions; XrOffset2Di origin; } XrTilePropertiesMETA; typedef struct XrTilePropertiesHintMETA { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t propertiesCount; const XrTilePropertiesMETA* properties; } XrTilePropertiesHintMETA; typedef XrResult (XRAPI_PTR *PFN_xrSetTilePropertiesHintMETA)(XrSession session, const XrTilePropertiesHintMETA* properties); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetTilePropertiesHintMETA( XrSession session, const XrTilePropertiesHintMETA* properties); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_hand_tracking_unextrapolated_poses is a preprocessor guard. Do not pass it to API calls. #define XR_META_hand_tracking_unextrapolated_poses 1 #define XR_META_hand_tracking_unextrapolated_poses_SPEC_VERSION 1 #define XR_META_HAND_TRACKING_UNEXTRAPOLATED_POSES_EXTENSION_NAME "XR_META_hand_tracking_unextrapolated_poses" // XrHandTrackingUnextrapolatedPosesRequestMETA extends XrHandJointsLocateInfoEXT typedef struct XrHandTrackingUnextrapolatedPosesRequestMETA { XrStructureType type; const void* XR_MAY_ALIAS next; } XrHandTrackingUnextrapolatedPosesRequestMETA; // XrHandTrackingUnextrapolatedPosesMETA extends XrHandJointLocationsEXT typedef struct XrHandTrackingUnextrapolatedPosesMETA { XrStructureType type; void* XR_MAY_ALIAS next; XrTime captureTime; } XrHandTrackingUnextrapolatedPosesMETA; // XR_META_hand_tracking_frequency_hint is a preprocessor guard. Do not pass it to API calls. #define XR_META_hand_tracking_frequency_hint 1 #define XR_META_hand_tracking_frequency_hint_SPEC_VERSION 1 #define XR_META_HAND_TRACKING_FREQUENCY_HINT_EXTENSION_NAME "XR_META_hand_tracking_frequency_hint" typedef enum XrHandTrackingFrequencyHintMETA { XR_HAND_TRACKING_FREQUENCY_HINT_DEFAULT_META = 1, XR_HAND_TRACKING_FREQUENCY_HINT_HIGH_META = 2, XR_HAND_TRACKING_FREQUENCY_HINT_MAX_ENUM_META = 0x7FFFFFFF } XrHandTrackingFrequencyHintMETA; typedef XrResult (XRAPI_PTR *PFN_xrSetHandTrackingFrequencyHintMETA)(XrSession session, XrHandTrackingFrequencyHintMETA frequencyHint); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetHandTrackingFrequencyHintMETA( XrSession session, XrHandTrackingFrequencyHintMETA frequencyHint); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_META_hand_tracking_wide_motion_mode2 is a preprocessor guard. Do not pass it to API calls. #define XR_META_hand_tracking_wide_motion_mode2 1 #define XR_META_hand_tracking_wide_motion_mode2_SPEC_VERSION 1 #define XR_META_HAND_TRACKING_WIDE_MOTION_MODE2_EXTENSION_NAME "XR_META_hand_tracking_wide_motion_mode2" // XR_ANDROID_light_estimation is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_light_estimation 1 XR_DEFINE_HANDLE(XrLightEstimatorANDROID) #define XR_ANDROID_light_estimation_SPEC_VERSION 1 #define XR_ANDROID_LIGHT_ESTIMATION_EXTENSION_NAME "XR_ANDROID_light_estimation" typedef enum XrLightEstimateStateANDROID { XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID = 0, XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID = 1, XR_LIGHT_ESTIMATE_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrLightEstimateStateANDROID; typedef enum XrSphericalHarmonicsKindANDROID { XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID = 0, XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID = 1, XR_SPHERICAL_HARMONICS_KIND_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrSphericalHarmonicsKindANDROID; // XrSystemLightEstimationPropertiesANDROID extends XrSystemProperties typedef struct XrSystemLightEstimationPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsLightEstimation; } XrSystemLightEstimationPropertiesANDROID; typedef struct XrLightEstimatorCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrLightEstimatorCreateInfoANDROID; typedef struct XrLightEstimateGetInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; } XrLightEstimateGetInfoANDROID; typedef struct XrLightEstimateANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrLightEstimateStateANDROID state; XrTime lastUpdatedTime; } XrLightEstimateANDROID; // XrDirectionalLightANDROID extends XrLightEstimateANDROID typedef struct XrDirectionalLightANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrLightEstimateStateANDROID state; XrVector3f intensity; XrVector3f direction; } XrDirectionalLightANDROID; // XrAmbientLightANDROID extends XrLightEstimateANDROID typedef struct XrAmbientLightANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrLightEstimateStateANDROID state; XrVector3f intensity; XrVector3f colorCorrection; } XrAmbientLightANDROID; // XrSphericalHarmonicsANDROID extends XrLightEstimateANDROID typedef struct XrSphericalHarmonicsANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrLightEstimateStateANDROID state; XrSphericalHarmonicsKindANDROID kind; float coefficients[9][3]; } XrSphericalHarmonicsANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateLightEstimatorANDROID)(XrSession session, XrLightEstimatorCreateInfoANDROID* createInfo, XrLightEstimatorANDROID* outHandle); typedef XrResult (XRAPI_PTR *PFN_xrDestroyLightEstimatorANDROID)(XrLightEstimatorANDROID estimator); typedef XrResult (XRAPI_PTR *PFN_xrGetLightEstimateANDROID)(XrLightEstimatorANDROID estimator, const XrLightEstimateGetInfoANDROID* input, XrLightEstimateANDROID* output); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateLightEstimatorANDROID( XrSession session, XrLightEstimatorCreateInfoANDROID* createInfo, XrLightEstimatorANDROID* outHandle); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyLightEstimatorANDROID( XrLightEstimatorANDROID estimator); XRAPI_ATTR XrResult XRAPI_CALL xrGetLightEstimateANDROID( XrLightEstimatorANDROID estimator, const XrLightEstimateGetInfoANDROID* input, XrLightEstimateANDROID* output); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_mouse_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_mouse_interaction 1 #define XR_ANDROID_mouse_interaction_SPEC_VERSION 1 #define XR_ANDROID_MOUSE_INTERACTION_EXTENSION_NAME "XR_ANDROID_mouse_interaction" // XR_ANDROID_trackables_marker is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_trackables_marker 1 #define XR_ANDROID_trackables_marker_SPEC_VERSION 1 #define XR_ANDROID_TRACKABLES_MARKER_EXTENSION_NAME "XR_ANDROID_trackables_marker" typedef enum XrTrackableMarkerTrackingModeANDROID { XR_TRACKABLE_MARKER_TRACKING_MODE_DYNAMIC_ANDROID = 0, XR_TRACKABLE_MARKER_TRACKING_MODE_STATIC_ANDROID = 1, XR_TRACKABLE_MARKER_TRACKING_MODE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrTrackableMarkerTrackingModeANDROID; typedef enum XrTrackableMarkerDictionaryANDROID { XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_4X4_50_ANDROID = 0, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_4X4_100_ANDROID = 1, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_4X4_250_ANDROID = 2, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_4X4_1000_ANDROID = 3, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_5X5_50_ANDROID = 4, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_5X5_100_ANDROID = 5, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_5X5_250_ANDROID = 6, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_5X5_1000_ANDROID = 7, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_6X6_50_ANDROID = 8, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_6X6_100_ANDROID = 9, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_6X6_250_ANDROID = 10, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_6X6_1000_ANDROID = 11, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_7X7_50_ANDROID = 12, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_7X7_100_ANDROID = 13, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_7X7_250_ANDROID = 14, XR_TRACKABLE_MARKER_DICTIONARY_ARUCO_7X7_1000_ANDROID = 15, XR_TRACKABLE_MARKER_DICTIONARY_APRILTAG_16H5_ANDROID = 16, XR_TRACKABLE_MARKER_DICTIONARY_APRILTAG_25H9_ANDROID = 17, XR_TRACKABLE_MARKER_DICTIONARY_APRILTAG_36H10_ANDROID = 18, XR_TRACKABLE_MARKER_DICTIONARY_APRILTAG_36H11_ANDROID = 19, XR_TRACKABLE_MARKER_DICTIONARY_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrTrackableMarkerDictionaryANDROID; // XrSystemMarkerTrackingPropertiesANDROID extends XrSystemProperties typedef struct XrSystemMarkerTrackingPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsMarkerTracking; XrBool32 supportsMarkerSizeEstimation; uint16_t maxMarkerCount; } XrSystemMarkerTrackingPropertiesANDROID; typedef struct XrTrackableMarkerDatabaseEntryANDROID { int32_t id; float edgeSize; } XrTrackableMarkerDatabaseEntryANDROID; typedef struct XrTrackableMarkerDatabaseANDROID { XrTrackableMarkerDictionaryANDROID dictionary; uint32_t entryCount; const XrTrackableMarkerDatabaseEntryANDROID* entries; } XrTrackableMarkerDatabaseANDROID; // XrTrackableMarkerConfigurationANDROID extends XrTrackableTrackerCreateInfoANDROID typedef struct XrTrackableMarkerConfigurationANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrTrackableMarkerTrackingModeANDROID trackingMode; uint32_t databaseCount; const XrTrackableMarkerDatabaseANDROID* databases; } XrTrackableMarkerConfigurationANDROID; typedef struct XrTrackableMarkerANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrTrackingStateANDROID trackingState; XrTime lastUpdatedTime; XrTrackableMarkerDictionaryANDROID dictionary; int32_t markerId; XrPosef centerPose; XrExtent2Df extents; } XrTrackableMarkerANDROID; typedef XrResult (XRAPI_PTR *PFN_xrGetTrackableMarkerANDROID)(XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableMarkerANDROID* markerOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetTrackableMarkerANDROID( XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableMarkerANDROID* markerOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_trackables_qr_code is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_trackables_qr_code 1 #define XR_ANDROID_trackables_qr_code_SPEC_VERSION 1 #define XR_ANDROID_TRACKABLES_QR_CODE_EXTENSION_NAME "XR_ANDROID_trackables_qr_code" typedef enum XrQrCodeTrackingModeANDROID { XR_QR_CODE_TRACKING_MODE_DYNAMIC_ANDROID = 0, XR_QR_CODE_TRACKING_MODE_STATIC_ANDROID = 1, XR_QR_CODE_TRACKING_MODE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrQrCodeTrackingModeANDROID; // XrSystemQrCodeTrackingPropertiesANDROID extends XrSystemProperties typedef struct XrSystemQrCodeTrackingPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsQrCodeTracking; XrBool32 supportsQrCodeSizeEstimation; uint16_t maxQrCodeCount; } XrSystemQrCodeTrackingPropertiesANDROID; // XrTrackableQrCodeConfigurationANDROID extends XrTrackableTrackerCreateInfoANDROID typedef struct XrTrackableQrCodeConfigurationANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrQrCodeTrackingModeANDROID trackingMode; float qrCodeEdgeSize; } XrTrackableQrCodeConfigurationANDROID; typedef struct XrTrackableQrCodeANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrTrackingStateANDROID trackingState; XrTime lastUpdatedTime; XrPosef centerPose; XrExtent2Df extents; uint32_t bufferCapacityInput; uint32_t bufferCountOutput; char* buffer; } XrTrackableQrCodeANDROID; typedef XrResult (XRAPI_PTR *PFN_xrGetTrackableQrCodeANDROID)(XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableQrCodeANDROID* qrCodeOutput); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetTrackableQrCodeANDROID( XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableQrCodeANDROID* qrCodeOutput); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_trackables_image is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_trackables_image 1 XR_DEFINE_HANDLE(XrTrackableImageDatabaseANDROID) #define XR_ANDROID_trackables_image_SPEC_VERSION 1 #define XR_ANDROID_TRACKABLES_IMAGE_EXTENSION_NAME "XR_ANDROID_trackables_image" typedef enum XrTrackableImageTrackingModeANDROID { XR_TRACKABLE_IMAGE_TRACKING_MODE_DYNAMIC_ANDROID = 1, XR_TRACKABLE_IMAGE_TRACKING_MODE_STATIC_ANDROID = 2, XR_TRACKABLE_IMAGE_TRACKING_MODE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrTrackableImageTrackingModeANDROID; typedef enum XrTrackableImageFormatANDROID { XR_TRACKABLE_IMAGE_FORMAT_R8G8B8A8_ANDROID = 1, XR_TRACKABLE_IMAGE_FORMAT_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrTrackableImageFormatANDROID; // XrSystemImageTrackingPropertiesANDROID extends XrSystemProperties typedef struct XrSystemImageTrackingPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsImageTracking; XrBool32 supportsPhysicalSizeEstimation; uint32_t maxTrackedImageCount; uint32_t maxLoadedImageCount; } XrSystemImageTrackingPropertiesANDROID; typedef struct XrTrackableImageDatabaseEntryANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTrackableImageTrackingModeANDROID trackingMode; float physicalWidth; uint32_t imageWidth; uint32_t imageHeight; XrTrackableImageFormatANDROID format; uint32_t bufferSize; const uint8_t* buffer; } XrTrackableImageDatabaseEntryANDROID; typedef struct XrTrackableImageDatabaseCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t entryCount; const XrTrackableImageDatabaseEntryANDROID* entries; } XrTrackableImageDatabaseCreateInfoANDROID; typedef struct XrCreateTrackableImageDatabaseCompletionANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrTrackableImageDatabaseANDROID database; } XrCreateTrackableImageDatabaseCompletionANDROID; typedef struct XrTrackableImageConfigurationANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t databaseCount; const XrTrackableImageDatabaseANDROID* databases; } XrTrackableImageConfigurationANDROID; typedef struct XrTrackableImageANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTrackingStateANDROID trackingState; XrTime lastUpdatedTime; XrTrackableImageDatabaseANDROID database; uint32_t databaseEntryIndex; XrPosef centerPose; XrExtent2Df extents; } XrTrackableImageANDROID; typedef struct XrEventDataImageTrackingLostANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime time; } XrEventDataImageTrackingLostANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateTrackableImageDatabaseAsyncANDROID)(XrSession session, const XrTrackableImageDatabaseCreateInfoANDROID* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateTrackableImageDatabaseCompleteANDROID)(XrSession session, XrFutureEXT future, XrCreateTrackableImageDatabaseCompletionANDROID* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroyTrackableImageDatabaseANDROID)(XrTrackableImageDatabaseANDROID database); typedef XrResult (XRAPI_PTR *PFN_xrAddTrackableImageDatabaseANDROID)(XrTrackableTrackerANDROID tracker, XrTrackableImageDatabaseANDROID database); typedef XrResult (XRAPI_PTR *PFN_xrRemoveTrackableImageDatabaseANDROID)(XrTrackableTrackerANDROID tracker, XrTrackableImageDatabaseANDROID database); typedef XrResult (XRAPI_PTR *PFN_xrGetTrackableImageANDROID)(XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableImageANDROID* trackable); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateTrackableImageDatabaseAsyncANDROID( XrSession session, const XrTrackableImageDatabaseCreateInfoANDROID* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateTrackableImageDatabaseCompleteANDROID( XrSession session, XrFutureEXT future, XrCreateTrackableImageDatabaseCompletionANDROID* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyTrackableImageDatabaseANDROID( XrTrackableImageDatabaseANDROID database); XRAPI_ATTR XrResult XRAPI_CALL xrAddTrackableImageDatabaseANDROID( XrTrackableTrackerANDROID tracker, XrTrackableImageDatabaseANDROID database); XRAPI_ATTR XrResult XRAPI_CALL xrRemoveTrackableImageDatabaseANDROID( XrTrackableTrackerANDROID tracker, XrTrackableImageDatabaseANDROID database); XRAPI_ATTR XrResult XRAPI_CALL xrGetTrackableImageANDROID( XrTrackableTrackerANDROID tracker, const XrTrackableGetInfoANDROID* getInfo, XrTrackableImageANDROID* trackable); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_scene_meshing is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_scene_meshing 1 XR_DEFINE_HANDLE(XrSceneMeshingTrackerANDROID) XR_DEFINE_HANDLE(XrSceneMeshSnapshotANDROID) #define XR_ANDROID_scene_meshing_SPEC_VERSION 3 #define XR_ANDROID_SCENE_MESHING_EXTENSION_NAME "XR_ANDROID_scene_meshing" typedef enum XrSceneMeshSemanticLabelSetANDROID { XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROID = 0, XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID = 1, XR_SCENE_MESH_SEMANTIC_LABEL_SET_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrSceneMeshSemanticLabelSetANDROID; typedef enum XrSceneMeshTrackingStateANDROID { XR_SCENE_MESH_TRACKING_STATE_INITIALIZING_ANDROID = 0, XR_SCENE_MESH_TRACKING_STATE_TRACKING_ANDROID = 1, XR_SCENE_MESH_TRACKING_STATE_WAITING_ANDROID = 2, XR_SCENE_MESH_TRACKING_STATE_ERROR_ANDROID = 3, XR_SCENE_MESH_TRACKING_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrSceneMeshTrackingStateANDROID; typedef enum XrSceneMeshSemanticLabelANDROID { XR_SCENE_MESH_SEMANTIC_LABEL_OTHER_ANDROID = 0, XR_SCENE_MESH_SEMANTIC_LABEL_FLOOR_ANDROID = 1, XR_SCENE_MESH_SEMANTIC_LABEL_CEILING_ANDROID = 2, XR_SCENE_MESH_SEMANTIC_LABEL_WALL_ANDROID = 3, XR_SCENE_MESH_SEMANTIC_LABEL_TABLE_ANDROID = 4, XR_SCENE_MESH_SEMANTIC_LABEL_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrSceneMeshSemanticLabelANDROID; // XrSystemSceneMeshingPropertiesANDROID extends XrSystemProperties typedef struct XrSystemSceneMeshingPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsSceneMeshing; } XrSystemSceneMeshingPropertiesANDROID; typedef struct XrSceneMeshingTrackerCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSceneMeshSemanticLabelSetANDROID semanticLabelSet; XrBool32 enableNormals; } XrSceneMeshingTrackerCreateInfoANDROID; typedef struct XrSceneMeshSnapshotCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; XrBoxf boundingBox; } XrSceneMeshSnapshotCreateInfoANDROID; typedef struct XrSceneMeshSnapshotCreationResultANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSceneMeshSnapshotANDROID snapshot; XrSceneMeshTrackingStateANDROID trackingState; } XrSceneMeshSnapshotCreationResultANDROID; typedef struct XrSceneSubmeshStateANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrUuid submeshId; XrTime lastUpdatedTime; XrPosef submeshPoseInBaseSpace; XrExtent3Df bounds; } XrSceneSubmeshStateANDROID; typedef struct XrSceneSubmeshDataANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuid submeshId; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertexPositions; XrVector3f* vertexNormals; uint8_t* vertexSemantics; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrSceneSubmeshDataANDROID; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSupportedSemanticLabelSetsANDROID)(XrInstance instance, XrSystemId systemId, uint32_t supportedSemanticLabelSetsInputCapacity, uint32_t* supportedSemanticLabelSetsOutputCount, XrSceneMeshSemanticLabelSetANDROID* supportedSemanticLabelSets); typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneMeshingTrackerANDROID)(XrSession session, const XrSceneMeshingTrackerCreateInfoANDROID* createInfo, XrSceneMeshingTrackerANDROID* tracker); typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneMeshingTrackerANDROID)(XrSceneMeshingTrackerANDROID tracker); typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneMeshSnapshotANDROID)(XrSceneMeshingTrackerANDROID tracker, const XrSceneMeshSnapshotCreateInfoANDROID* createInfo, XrSceneMeshSnapshotCreationResultANDROID* outSnapshotCreationResult); typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneMeshSnapshotANDROID)(XrSceneMeshSnapshotANDROID snapshot); typedef XrResult (XRAPI_PTR *PFN_xrGetAllSubmeshStatesANDROID)(XrSceneMeshSnapshotANDROID snapshot, uint32_t submeshStateCapacityInput, uint32_t* submeshStateCountOutput, XrSceneSubmeshStateANDROID* submeshStates); typedef XrResult (XRAPI_PTR *PFN_xrGetSubmeshDataANDROID)(XrSceneMeshSnapshotANDROID snapshot, uint32_t submeshDataCount, XrSceneSubmeshDataANDROID* inoutSubmeshData); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSupportedSemanticLabelSetsANDROID( XrInstance instance, XrSystemId systemId, uint32_t supportedSemanticLabelSetsInputCapacity, uint32_t* supportedSemanticLabelSetsOutputCount, XrSceneMeshSemanticLabelSetANDROID* supportedSemanticLabelSets); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneMeshingTrackerANDROID( XrSession session, const XrSceneMeshingTrackerCreateInfoANDROID* createInfo, XrSceneMeshingTrackerANDROID* tracker); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneMeshingTrackerANDROID( XrSceneMeshingTrackerANDROID tracker); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneMeshSnapshotANDROID( XrSceneMeshingTrackerANDROID tracker, const XrSceneMeshSnapshotCreateInfoANDROID* createInfo, XrSceneMeshSnapshotCreationResultANDROID* outSnapshotCreationResult); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneMeshSnapshotANDROID( XrSceneMeshSnapshotANDROID snapshot); XRAPI_ATTR XrResult XRAPI_CALL xrGetAllSubmeshStatesANDROID( XrSceneMeshSnapshotANDROID snapshot, uint32_t submeshStateCapacityInput, uint32_t* submeshStateCountOutput, XrSceneSubmeshStateANDROID* submeshStates); XRAPI_ATTR XrResult XRAPI_CALL xrGetSubmeshDataANDROID( XrSceneMeshSnapshotANDROID snapshot, uint32_t submeshDataCount, XrSceneSubmeshDataANDROID* inoutSubmeshData); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_entity is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_entity 1 #define XR_NULL_SPATIAL_ENTITY_ID_EXT 0 #define XR_NULL_SPATIAL_BUFFER_ID_EXT 0 XR_DEFINE_ATOM(XrSpatialEntityIdEXT) XR_DEFINE_ATOM(XrSpatialBufferIdEXT) XR_DEFINE_HANDLE(XrSpatialEntityEXT) XR_DEFINE_HANDLE(XrSpatialContextEXT) XR_DEFINE_HANDLE(XrSpatialSnapshotEXT) #define XR_EXT_spatial_entity_SPEC_VERSION 1 #define XR_EXT_SPATIAL_ENTITY_EXTENSION_NAME "XR_EXT_spatial_entity" typedef enum XrSpatialCapabilityEXT { XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT = 1000741000, XR_SPATIAL_CAPABILITY_MARKER_TRACKING_QR_CODE_EXT = 1000743000, XR_SPATIAL_CAPABILITY_MARKER_TRACKING_MICRO_QR_CODE_EXT = 1000743001, XR_SPATIAL_CAPABILITY_MARKER_TRACKING_ARUCO_MARKER_EXT = 1000743002, XR_SPATIAL_CAPABILITY_MARKER_TRACKING_APRIL_TAG_EXT = 1000743003, XR_SPATIAL_CAPABILITY_ANCHOR_EXT = 1000762000, XR_SPATIAL_CAPABILITY_IMAGE_TRACKING_EXT = 1000782000, XR_SPATIAL_CAPABILITY_OBJECT_TRACKING_ANDROID = 1000785000, XR_SPATIAL_CAPABILITY_DEPTH_RAYCAST_ANDROID = 1000786000, XR_SPATIAL_CAPABILITY_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialCapabilityEXT; typedef enum XrSpatialCapabilityFeatureEXT { XR_SPATIAL_CAPABILITY_FEATURE_MARKER_TRACKING_FIXED_SIZE_MARKERS_EXT = 1000743000, XR_SPATIAL_CAPABILITY_FEATURE_MARKER_TRACKING_STATIC_MARKERS_EXT = 1000743001, XR_SPATIAL_CAPABILITY_FEATURE_SPHERE_BOUNDS_FILTER_ANDROID = 1000761000, XR_SPATIAL_CAPABILITY_FEATURE_BOX_BOUNDS_FILTER_ANDROID = 1000761001, XR_SPATIAL_CAPABILITY_FEATURE_FRUSTUM_BOUNDS_FILTER_ANDROID = 1000761002, XR_SPATIAL_CAPABILITY_FEATURE_IMAGE_TRACKING_AUTOMATIC_SIZE_IMAGES_EXT = 1000782000, XR_SPATIAL_CAPABILITY_FEATURE_IMAGE_TRACKING_STATIC_IMAGES_EXT = 1000782001, XR_SPATIAL_CAPABILITY_FEATURE_IMAGE_TRACKING_FIXED_SIZE_IMAGES_EXT = 1000782002, XR_SPATIAL_CAPABILITY_FEATURE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialCapabilityFeatureEXT; typedef enum XrSpatialComponentTypeEXT { XR_SPATIAL_COMPONENT_TYPE_BOUNDED_2D_EXT = 1, XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT = 2, XR_SPATIAL_COMPONENT_TYPE_PARENT_EXT = 3, XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT = 4, XR_SPATIAL_COMPONENT_TYPE_PLANE_ALIGNMENT_EXT = 1000741000, XR_SPATIAL_COMPONENT_TYPE_MESH_2D_EXT = 1000741001, XR_SPATIAL_COMPONENT_TYPE_POLYGON_2D_EXT = 1000741002, XR_SPATIAL_COMPONENT_TYPE_PLANE_SEMANTIC_LABEL_EXT = 1000741003, XR_SPATIAL_COMPONENT_TYPE_MARKER_EXT = 1000743000, XR_SPATIAL_COMPONENT_TYPE_ANCHOR_EXT = 1000762000, XR_SPATIAL_COMPONENT_TYPE_PERSISTENCE_EXT = 1000763000, XR_SPATIAL_COMPONENT_TYPE_IMAGE_2D_EXT = 1000782000, XR_SPATIAL_COMPONENT_TYPE_OBJECT_SEMANTIC_LABEL_ANDROID = 1000785000, XR_SPATIAL_COMPONENT_TYPE_RAYCAST_RESULT_ANDROID = 1000786000, XR_SPATIAL_COMPONENT_TYPE_SUBSUMED_BY_ANDROID = 1000791000, XR_SPATIAL_COMPONENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialComponentTypeEXT; typedef enum XrSpatialEntityTrackingStateEXT { XR_SPATIAL_ENTITY_TRACKING_STATE_STOPPED_EXT = 1, XR_SPATIAL_ENTITY_TRACKING_STATE_PAUSED_EXT = 2, XR_SPATIAL_ENTITY_TRACKING_STATE_TRACKING_EXT = 3, XR_SPATIAL_ENTITY_TRACKING_STATE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialEntityTrackingStateEXT; typedef enum XrSpatialBufferTypeEXT { XR_SPATIAL_BUFFER_TYPE_UNKNOWN_EXT = 0, XR_SPATIAL_BUFFER_TYPE_STRING_EXT = 1, XR_SPATIAL_BUFFER_TYPE_UINT8_EXT = 2, XR_SPATIAL_BUFFER_TYPE_UINT16_EXT = 3, XR_SPATIAL_BUFFER_TYPE_UINT32_EXT = 4, XR_SPATIAL_BUFFER_TYPE_FLOAT_EXT = 5, XR_SPATIAL_BUFFER_TYPE_VECTOR2F_EXT = 6, XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT = 7, XR_SPATIAL_BUFFER_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialBufferTypeEXT; typedef struct XrSpatialCapabilityComponentTypesEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t componentTypeCapacityInput; uint32_t componentTypeCountOutput; XrSpatialComponentTypeEXT* componentTypes; } XrSpatialCapabilityComponentTypesEXT; typedef struct XR_MAY_ALIAS XrSpatialCapabilityConfigurationBaseHeaderEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; } XrSpatialCapabilityConfigurationBaseHeaderEXT; typedef struct XrSpatialContextCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t capabilityConfigCount; const XrSpatialCapabilityConfigurationBaseHeaderEXT* const* capabilityConfigs; } XrSpatialContextCreateInfoEXT; typedef struct XrCreateSpatialContextCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialContextEXT spatialContext; } XrCreateSpatialContextCompletionEXT; typedef struct XrSpatialDiscoverySnapshotCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t componentTypeCount; const XrSpatialComponentTypeEXT* componentTypes; } XrSpatialDiscoverySnapshotCreateInfoEXT; typedef struct XrCreateSpatialDiscoverySnapshotCompletionInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; XrFutureEXT future; } XrCreateSpatialDiscoverySnapshotCompletionInfoEXT; typedef struct XrCreateSpatialDiscoverySnapshotCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialSnapshotEXT snapshot; } XrCreateSpatialDiscoverySnapshotCompletionEXT; typedef struct XrSpatialComponentDataQueryConditionEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t componentTypeCount; const XrSpatialComponentTypeEXT* componentTypes; } XrSpatialComponentDataQueryConditionEXT; typedef struct XrSpatialComponentDataQueryResultEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t entityIdCapacityInput; uint32_t entityIdCountOutput; XrSpatialEntityIdEXT* entityIds; uint32_t entityStateCapacityInput; uint32_t entityStateCountOutput; XrSpatialEntityTrackingStateEXT* entityStates; } XrSpatialComponentDataQueryResultEXT; typedef struct XrSpatialBufferEXT { XrSpatialBufferIdEXT bufferId; XrSpatialBufferTypeEXT bufferType; } XrSpatialBufferEXT; typedef struct XrSpatialBufferGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialBufferIdEXT bufferId; } XrSpatialBufferGetInfoEXT; typedef struct XrSpatialBounded2DDataEXT { XrPosef center; XrExtent2Df extents; } XrSpatialBounded2DDataEXT; // XrSpatialComponentBounded2DListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentBounded2DListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t boundCount; XrSpatialBounded2DDataEXT* bounds; } XrSpatialComponentBounded2DListEXT; // XrSpatialComponentBounded3DListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentBounded3DListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t boundCount; XrBoxf* bounds; } XrSpatialComponentBounded3DListEXT; // XrSpatialComponentParentListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentParentListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t parentCount; XrSpatialEntityIdEXT* parents; } XrSpatialComponentParentListEXT; typedef struct XrSpatialMeshDataEXT { XrPosef origin; XrSpatialBufferEXT vertexBuffer; XrSpatialBufferEXT indexBuffer; } XrSpatialMeshDataEXT; // XrSpatialComponentMesh3DListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentMesh3DListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t meshCount; XrSpatialMeshDataEXT* meshes; } XrSpatialComponentMesh3DListEXT; typedef struct XrSpatialEntityFromIdCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialEntityIdEXT entityId; } XrSpatialEntityFromIdCreateInfoEXT; typedef struct XrSpatialUpdateSnapshotCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t entityCount; const XrSpatialEntityEXT* entities; uint32_t componentTypeCount; const XrSpatialComponentTypeEXT* componentTypes; XrSpace baseSpace; XrTime time; } XrSpatialUpdateSnapshotCreateInfoEXT; typedef struct XrEventDataSpatialDiscoveryRecommendedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContextEXT spatialContext; } XrEventDataSpatialDiscoveryRecommendedEXT; // XrSpatialFilterTrackingStateEXT extends XrSpatialDiscoverySnapshotCreateInfoEXT,XrSpatialComponentDataQueryConditionEXT typedef struct XrSpatialFilterTrackingStateEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialEntityTrackingStateEXT trackingState; } XrSpatialFilterTrackingStateEXT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialCapabilitiesEXT)(XrInstance instance, XrSystemId systemId, uint32_t capabilityCapacityInput, uint32_t* capabilityCountOutput, XrSpatialCapabilityEXT* capabilities); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialCapabilityComponentTypesEXT)(XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, XrSpatialCapabilityComponentTypesEXT* capabilityComponents); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialCapabilityFeaturesEXT)(XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, uint32_t capabilityFeatureCapacityInput, uint32_t* capabilityFeatureCountOutput, XrSpatialCapabilityFeatureEXT* capabilityFeatures); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialContextAsyncEXT)(XrSession session, const XrSpatialContextCreateInfoEXT* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialContextCompleteEXT)(XrSession session, XrFutureEXT future, XrCreateSpatialContextCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialContextEXT)(XrSpatialContextEXT spatialContext); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialDiscoverySnapshotAsyncEXT)(XrSpatialContextEXT spatialContext, const XrSpatialDiscoverySnapshotCreateInfoEXT* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialDiscoverySnapshotCompleteEXT)(XrSpatialContextEXT spatialContext, const XrCreateSpatialDiscoverySnapshotCompletionInfoEXT* createSnapshotCompletionInfo, XrCreateSpatialDiscoverySnapshotCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialComponentDataEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialComponentDataQueryConditionEXT* queryCondition, XrSpatialComponentDataQueryResultEXT* queryResult); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialSnapshotEXT)(XrSpatialSnapshotEXT snapshot); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialEntityFromIdEXT)(XrSpatialContextEXT spatialContext, const XrSpatialEntityFromIdCreateInfoEXT* createInfo, XrSpatialEntityEXT* spatialEntity); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialEntityEXT)(XrSpatialEntityEXT spatialEntity); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialUpdateSnapshotEXT)(XrSpatialContextEXT spatialContext, const XrSpatialUpdateSnapshotCreateInfoEXT* createInfo, XrSpatialSnapshotEXT* snapshot); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferStringEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferUint8EXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferUint16EXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint16_t* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferUint32EXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint32_t* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferFloatEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, float* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferVector2fEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, XrVector2f* buffer); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialBufferVector3fEXT)(XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, XrVector3f* buffer); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialCapabilitiesEXT( XrInstance instance, XrSystemId systemId, uint32_t capabilityCapacityInput, uint32_t* capabilityCountOutput, XrSpatialCapabilityEXT* capabilities); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialCapabilityComponentTypesEXT( XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, XrSpatialCapabilityComponentTypesEXT* capabilityComponents); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialCapabilityFeaturesEXT( XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, uint32_t capabilityFeatureCapacityInput, uint32_t* capabilityFeatureCountOutput, XrSpatialCapabilityFeatureEXT* capabilityFeatures); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialContextAsyncEXT( XrSession session, const XrSpatialContextCreateInfoEXT* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialContextCompleteEXT( XrSession session, XrFutureEXT future, XrCreateSpatialContextCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialContextEXT( XrSpatialContextEXT spatialContext); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialDiscoverySnapshotAsyncEXT( XrSpatialContextEXT spatialContext, const XrSpatialDiscoverySnapshotCreateInfoEXT* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialDiscoverySnapshotCompleteEXT( XrSpatialContextEXT spatialContext, const XrCreateSpatialDiscoverySnapshotCompletionInfoEXT* createSnapshotCompletionInfo, XrCreateSpatialDiscoverySnapshotCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialComponentDataEXT( XrSpatialSnapshotEXT snapshot, const XrSpatialComponentDataQueryConditionEXT* queryCondition, XrSpatialComponentDataQueryResultEXT* queryResult); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialSnapshotEXT( XrSpatialSnapshotEXT snapshot); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialEntityFromIdEXT( XrSpatialContextEXT spatialContext, const XrSpatialEntityFromIdCreateInfoEXT* createInfo, XrSpatialEntityEXT* spatialEntity); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialEntityEXT( XrSpatialEntityEXT spatialEntity); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialUpdateSnapshotEXT( XrSpatialContextEXT spatialContext, const XrSpatialUpdateSnapshotCreateInfoEXT* createInfo, XrSpatialSnapshotEXT* snapshot); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferStringEXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferUint8EXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferUint16EXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint16_t* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferUint32EXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint32_t* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferFloatEXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, float* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferVector2fEXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, XrVector2f* buffer); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialBufferVector3fEXT( XrSpatialSnapshotEXT snapshot, const XrSpatialBufferGetInfoEXT* info, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, XrVector3f* buffer); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_plane_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_plane_tracking 1 #define XR_EXT_spatial_plane_tracking_SPEC_VERSION 1 #define XR_EXT_SPATIAL_PLANE_TRACKING_EXTENSION_NAME "XR_EXT_spatial_plane_tracking" typedef enum XrSpatialPlaneAlignmentEXT { XR_SPATIAL_PLANE_ALIGNMENT_HORIZONTAL_UPWARD_EXT = 0, XR_SPATIAL_PLANE_ALIGNMENT_HORIZONTAL_DOWNWARD_EXT = 1, XR_SPATIAL_PLANE_ALIGNMENT_VERTICAL_EXT = 2, XR_SPATIAL_PLANE_ALIGNMENT_ARBITRARY_EXT = 3, XR_SPATIAL_PLANE_ALIGNMENT_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialPlaneAlignmentEXT; typedef enum XrSpatialPlaneSemanticLabelEXT { XR_SPATIAL_PLANE_SEMANTIC_LABEL_UNCATEGORIZED_EXT = 1, XR_SPATIAL_PLANE_SEMANTIC_LABEL_FLOOR_EXT = 2, XR_SPATIAL_PLANE_SEMANTIC_LABEL_WALL_EXT = 3, XR_SPATIAL_PLANE_SEMANTIC_LABEL_CEILING_EXT = 4, XR_SPATIAL_PLANE_SEMANTIC_LABEL_TABLE_EXT = 5, XR_SPATIAL_PLANE_SEMANTIC_LABEL_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialPlaneSemanticLabelEXT; typedef struct XrSpatialCapabilityConfigurationPlaneTrackingEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; } XrSpatialCapabilityConfigurationPlaneTrackingEXT; // XrSpatialComponentPlaneAlignmentListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentPlaneAlignmentListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t planeAlignmentCount; XrSpatialPlaneAlignmentEXT* planeAlignments; } XrSpatialComponentPlaneAlignmentListEXT; // XrSpatialComponentMesh2DListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentMesh2DListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t meshCount; XrSpatialMeshDataEXT* meshes; } XrSpatialComponentMesh2DListEXT; typedef struct XrSpatialPolygon2DDataEXT { XrPosef origin; XrSpatialBufferEXT vertexBuffer; } XrSpatialPolygon2DDataEXT; // XrSpatialComponentPolygon2DListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentPolygon2DListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t polygonCount; XrSpatialPolygon2DDataEXT* polygons; } XrSpatialComponentPolygon2DListEXT; // XrSpatialComponentPlaneSemanticLabelListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentPlaneSemanticLabelListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t semanticLabelCount; XrSpatialPlaneSemanticLabelEXT* semanticLabels; } XrSpatialComponentPlaneSemanticLabelListEXT; // XR_EXT_stationary_reference_space is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_stationary_reference_space 1 #define XR_EXT_stationary_reference_space_SPEC_VERSION 1 #define XR_EXT_STATIONARY_REFERENCE_SPACE_EXTENSION_NAME "XR_EXT_stationary_reference_space" typedef struct XrStationaryReferenceSpaceGenerationIdGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrStationaryReferenceSpaceGenerationIdGetInfoEXT; typedef struct XrStationaryReferenceSpaceGenerationIdResultEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrUuid generationId; } XrStationaryReferenceSpaceGenerationIdResultEXT; typedef XrResult (XRAPI_PTR *PFN_xrGetStationaryReferenceSpaceGenerationIdEXT)(XrSession session, const XrStationaryReferenceSpaceGenerationIdGetInfoEXT* getInfo, XrStationaryReferenceSpaceGenerationIdResultEXT* generationIdResult); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrGetStationaryReferenceSpaceGenerationIdEXT( XrSession session, const XrStationaryReferenceSpaceGenerationIdGetInfoEXT* getInfo, XrStationaryReferenceSpaceGenerationIdResultEXT* generationIdResult); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_marker_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_marker_tracking 1 #define XR_EXT_spatial_marker_tracking_SPEC_VERSION 1 #define XR_EXT_SPATIAL_MARKER_TRACKING_EXTENSION_NAME "XR_EXT_spatial_marker_tracking" typedef enum XrSpatialMarkerArucoDictEXT { XR_SPATIAL_MARKER_ARUCO_DICT_4X4_50_EXT = 1, XR_SPATIAL_MARKER_ARUCO_DICT_4X4_100_EXT = 2, XR_SPATIAL_MARKER_ARUCO_DICT_4X4_250_EXT = 3, XR_SPATIAL_MARKER_ARUCO_DICT_4X4_1000_EXT = 4, XR_SPATIAL_MARKER_ARUCO_DICT_5X5_50_EXT = 5, XR_SPATIAL_MARKER_ARUCO_DICT_5X5_100_EXT = 6, XR_SPATIAL_MARKER_ARUCO_DICT_5X5_250_EXT = 7, XR_SPATIAL_MARKER_ARUCO_DICT_5X5_1000_EXT = 8, XR_SPATIAL_MARKER_ARUCO_DICT_6X6_50_EXT = 9, XR_SPATIAL_MARKER_ARUCO_DICT_6X6_100_EXT = 10, XR_SPATIAL_MARKER_ARUCO_DICT_6X6_250_EXT = 11, XR_SPATIAL_MARKER_ARUCO_DICT_6X6_1000_EXT = 12, XR_SPATIAL_MARKER_ARUCO_DICT_7X7_50_EXT = 13, XR_SPATIAL_MARKER_ARUCO_DICT_7X7_100_EXT = 14, XR_SPATIAL_MARKER_ARUCO_DICT_7X7_250_EXT = 15, XR_SPATIAL_MARKER_ARUCO_DICT_7X7_1000_EXT = 16, XR_SPATIAL_MARKER_ARUCO_DICT_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialMarkerArucoDictEXT; typedef enum XrSpatialMarkerAprilTagDictEXT { XR_SPATIAL_MARKER_APRIL_TAG_DICT_16H5_EXT = 1, XR_SPATIAL_MARKER_APRIL_TAG_DICT_25H9_EXT = 2, XR_SPATIAL_MARKER_APRIL_TAG_DICT_36H10_EXT = 3, XR_SPATIAL_MARKER_APRIL_TAG_DICT_36H11_EXT = 4, XR_SPATIAL_MARKER_APRIL_TAG_DICT_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialMarkerAprilTagDictEXT; typedef struct XrSpatialCapabilityConfigurationQrCodeEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; } XrSpatialCapabilityConfigurationQrCodeEXT; typedef struct XrSpatialCapabilityConfigurationMicroQrCodeEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; } XrSpatialCapabilityConfigurationMicroQrCodeEXT; typedef struct XrSpatialCapabilityConfigurationArucoMarkerEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; XrSpatialMarkerArucoDictEXT arUcoDict; } XrSpatialCapabilityConfigurationArucoMarkerEXT; typedef struct XrSpatialCapabilityConfigurationAprilTagEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; XrSpatialMarkerAprilTagDictEXT aprilDict; } XrSpatialCapabilityConfigurationAprilTagEXT; // XrSpatialMarkerSizeEXT extends XrSpatialCapabilityConfigurationArucoMarkerEXT,XrSpatialCapabilityConfigurationAprilTagEXT,XrSpatialCapabilityConfigurationQrCodeEXT,XrSpatialCapabilityConfigurationMicroQrCodeEXT typedef struct XrSpatialMarkerSizeEXT { XrStructureType type; const void* XR_MAY_ALIAS next; float markerSideLength; } XrSpatialMarkerSizeEXT; // XrSpatialMarkerStaticOptimizationEXT extends XrSpatialCapabilityConfigurationArucoMarkerEXT,XrSpatialCapabilityConfigurationAprilTagEXT,XrSpatialCapabilityConfigurationQrCodeEXT,XrSpatialCapabilityConfigurationMicroQrCodeEXT typedef struct XrSpatialMarkerStaticOptimizationEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 optimizeForStaticMarker; } XrSpatialMarkerStaticOptimizationEXT; typedef struct XrSpatialMarkerDataEXT { XrSpatialCapabilityEXT capability; uint32_t markerId; XrSpatialBufferEXT data; } XrSpatialMarkerDataEXT; // XrSpatialComponentMarkerListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentMarkerListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t markerCount; XrSpatialMarkerDataEXT* markers; } XrSpatialComponentMarkerListEXT; // XR_LOGITECH_mx_ink_stylus_interaction is a preprocessor guard. Do not pass it to API calls. #define XR_LOGITECH_mx_ink_stylus_interaction 1 #define XR_LOGITECH_mx_ink_stylus_interaction_SPEC_VERSION 1 #define XR_LOGITECH_MX_INK_STYLUS_INTERACTION_EXTENSION_NAME "XR_LOGITECH_mx_ink_stylus_interaction" // XR_BD_dynamic_object_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_BD_dynamic_object_tracking 1 #define XR_BD_dynamic_object_tracking_SPEC_VERSION 1 #define XR_BD_DYNAMIC_OBJECT_TRACKING_EXTENSION_NAME "XR_BD_dynamic_object_tracking" typedef enum XrDynamicObjectTypeBD { XR_DYNAMIC_OBJECT_TYPE_UNKNOWN_BD = 0, XR_DYNAMIC_OBJECT_TYPE_KEYBOARD_BD = 1000747000, XR_DYNAMIC_OBJECT_TYPE_MOUSE_BD = 1000748000, XR_DYNAMIC_OBJECT_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrDynamicObjectTypeBD; // XrSystemDynamicObjectTrackingPropertiesBD extends XrSystemProperties typedef struct XrSystemDynamicObjectTrackingPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsDynamicObjectTracking; } XrSystemDynamicObjectTrackingPropertiesBD; // XrSenseDataProviderCreateInfoDynamicObjectBD extends XrSenseDataProviderCreateInfoBD typedef struct XrSenseDataProviderCreateInfoDynamicObjectBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t trackingTypeCount; const XrDynamicObjectTypeBD* trackingTypes; } XrSenseDataProviderCreateInfoDynamicObjectBD; typedef struct XrDynamicObjectDataBD { XrStructureType type; void* XR_MAY_ALIAS next; XrDynamicObjectTypeBD objectType; } XrDynamicObjectDataBD; // XrSpatialEntityComponentDataDynamicObjectBD extends XrSpatialEntityComponentDataBaseHeaderBD typedef struct XrSpatialEntityComponentDataDynamicObjectBD { XrStructureType type; void* XR_MAY_ALIAS next; XrDynamicObjectDataBD data; } XrSpatialEntityComponentDataDynamicObjectBD; // XrSenseDataFilterDynamicObjectTypeBD extends XrSenseDataQueryInfoBD typedef struct XrSenseDataFilterDynamicObjectTypeBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t typeCount; const XrDynamicObjectTypeBD* types; } XrSenseDataFilterDynamicObjectTypeBD; // XR_BD_dynamic_object_keyboard is a preprocessor guard. Do not pass it to API calls. #define XR_BD_dynamic_object_keyboard 1 #define XR_BD_dynamic_object_keyboard_SPEC_VERSION 1 #define XR_BD_DYNAMIC_OBJECT_KEYBOARD_EXTENSION_NAME "XR_BD_dynamic_object_keyboard" // XrSystemDynamicObjectKeyboardPropertiesBD extends XrSystemProperties typedef struct XrSystemDynamicObjectKeyboardPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsDynamicObjectKeyboard; } XrSystemDynamicObjectKeyboardPropertiesBD; // XR_BD_dynamic_object_mouse is a preprocessor guard. Do not pass it to API calls. #define XR_BD_dynamic_object_mouse 1 #define XR_BD_dynamic_object_mouse_SPEC_VERSION 1 #define XR_BD_DYNAMIC_OBJECT_MOUSE_EXTENSION_NAME "XR_BD_dynamic_object_mouse" // XrSystemDynamicObjectMousePropertiesBD extends XrSystemProperties typedef struct XrSystemDynamicObjectMousePropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsDynamicObjectMouse; } XrSystemDynamicObjectMousePropertiesBD; // XR_BD_camera_image is a preprocessor guard. Do not pass it to API calls. #define XR_BD_camera_image 1 XR_DEFINE_ATOM(XrCameraIdBD) XR_DEFINE_ATOM(XrCameraImageIdBD) XR_DEFINE_HANDLE(XrCameraDeviceBD) XR_DEFINE_HANDLE(XrCameraCaptureSessionBD) #define XR_BD_camera_image_SPEC_VERSION 1 #define XR_BD_CAMERA_IMAGE_EXTENSION_NAME "XR_BD_camera_image" typedef enum XrCameraPropertyTypeBD { XR_CAMERA_PROPERTY_TYPE_FACING_BD = 1, XR_CAMERA_PROPERTY_TYPE_POSITION_BD = 2, XR_CAMERA_PROPERTY_TYPE_CAMERA_TYPE_BD = 3, XR_CAMERA_PROPERTY_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraPropertyTypeBD; typedef enum XrCameraFacingBD { XR_CAMERA_FACING_WORLD_BD = 1, XR_CAMERA_FACING_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraFacingBD; typedef enum XrCameraPositionBD { XR_CAMERA_POSITION_UNSPECIFIED_BD = 1, XR_CAMERA_POSITION_LEFT_BD = 2, XR_CAMERA_POSITION_RIGHT_BD = 3, XR_CAMERA_POSITION_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraPositionBD; typedef enum XrCameraTypeBD { XR_CAMERA_TYPE_PASSTHROUGH_COLOR_BD = 1, XR_CAMERA_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraTypeBD; typedef enum XrCameraCapabilityTypeBD { XR_CAMERA_CAPABILITY_TYPE_IMAGE_RESOLUTION_AND_FRAME_RATE_BD = 1, XR_CAMERA_CAPABILITY_TYPE_IMAGE_FORMAT_BD = 2, XR_CAMERA_CAPABILITY_TYPE_DATA_TRANSFER_TYPE_BD = 3, XR_CAMERA_CAPABILITY_TYPE_CAMERA_MODEL_BD = 4, XR_CAMERA_CAPABILITY_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraCapabilityTypeBD; typedef enum XrCameraDataTransferTypeBD { XR_CAMERA_DATA_TRANSFER_TYPE_RAW_BUFFER_BD = 1, XR_CAMERA_DATA_TRANSFER_TYPE_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraDataTransferTypeBD; typedef enum XrCameraImageFormatBD { XR_CAMERA_IMAGE_FORMAT_RGBA_8888_BD = 1, XR_CAMERA_IMAGE_FORMAT_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraImageFormatBD; typedef enum XrCameraModelBD { XR_CAMERA_MODEL_PINHOLE_BD = 1, XR_CAMERA_MODEL_MAX_ENUM_BD = 0x7FFFFFFF } XrCameraModelBD; typedef struct XR_MAY_ALIAS XrCameraPropertyBaseHeaderBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrCameraPropertyBaseHeaderBD; typedef struct XrCameraPropertiesBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t propertyCount; XrCameraPropertyBaseHeaderBD** properties; } XrCameraPropertiesBD; typedef struct XR_MAY_ALIAS XrCameraCapabilityBaseHeaderBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrCameraCapabilityBaseHeaderBD; typedef struct XrCameraCapabilitiesBD { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t capabilityCount; XrCameraCapabilityBaseHeaderBD** capabilities; } XrCameraCapabilitiesBD; typedef struct XrAvailableCamerasEnumerateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; const XrCameraPropertiesBD* properties; const XrCameraCapabilitiesBD* capabilities; } XrAvailableCamerasEnumerateInfoBD; typedef struct XrAvailableCameraBD { XrStructureType type; void* XR_MAY_ALIAS next; XrCameraIdBD cameraId; } XrAvailableCameraBD; typedef struct XrCameraPropertyTypesEnumerateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraIdBD cameraId; } XrCameraPropertyTypesEnumerateInfoBD; typedef struct XrCameraPropertyTypesBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t propertyTypeCapacityInput; uint32_t propertyTypeCountOutput; XrCameraPropertyTypeBD* propertyTypes; } XrCameraPropertyTypesBD; typedef struct XrCameraPropertiesGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraIdBD cameraId; } XrCameraPropertiesGetInfoBD; typedef struct XrCameraPropertyFacingBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraFacingBD facing; } XrCameraPropertyFacingBD; typedef struct XrCameraPropertyPositionBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraPositionBD position; } XrCameraPropertyPositionBD; typedef struct XrCameraPropertyCameraTypeBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraTypeBD cameraType; } XrCameraPropertyCameraTypeBD; typedef struct XrCameraCapabilityTypesEnumerateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraIdBD cameraId; } XrCameraCapabilityTypesEnumerateInfoBD; typedef struct XrCameraCapabilityTypesBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t capabilityTypeCapacityInput; uint32_t capabilityTypeCountOutput; XrCameraCapabilityTypeBD* capabilityTypes; } XrCameraCapabilityTypesBD; typedef struct XrCameraSupportedCapabilitiesGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraIdBD id; } XrCameraSupportedCapabilitiesGetInfoBD; typedef struct XR_MAY_ALIAS XrCameraSupportedCapabilityBaseHeaderBD { XrStructureType type; void* XR_MAY_ALIAS next; } XrCameraSupportedCapabilityBaseHeaderBD; typedef struct XrCameraSupportedCapabilitiesBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t capabilityCount; XrCameraSupportedCapabilityBaseHeaderBD** capabilities; } XrCameraSupportedCapabilitiesBD; typedef struct XrCameraImageResolutionAndFrameRateBD { XrExtent2Di resolution; uint32_t frameRate; } XrCameraImageResolutionAndFrameRateBD; typedef struct XrCameraSupportedCapabilityImageResolutionAndFrameRateBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t resolutionAndFrameRateCapacityInput; uint32_t resolutionAndFrameRateCountOutput; XrCameraImageResolutionAndFrameRateBD* resolutionAndFrameRates; } XrCameraSupportedCapabilityImageResolutionAndFrameRateBD; typedef struct XrCameraCapabilityImageResolutionAndFrameRateBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrExtent2Di resolution; uint32_t frameRate; } XrCameraCapabilityImageResolutionAndFrameRateBD; typedef struct XrCameraSupportedCapabilityDataTransferTypeBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t transferTypeCapacityInput; uint32_t transferTypeCountOutput; XrCameraDataTransferTypeBD* transferTypes; } XrCameraSupportedCapabilityDataTransferTypeBD; typedef struct XrCameraCapabilityDataTransferTypeBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraDataTransferTypeBD transferType; } XrCameraCapabilityDataTransferTypeBD; typedef struct XrCameraSupportedCapabilityImageFormatBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t formatCapacityInput; uint32_t formatCountOutput; XrCameraImageFormatBD* formats; } XrCameraSupportedCapabilityImageFormatBD; typedef struct XrCameraCapabilityImageFormatBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraImageFormatBD format; } XrCameraCapabilityImageFormatBD; typedef struct XrCameraSupportedCapabilityCameraModelBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t modelCapacityInput; uint32_t modelCountOutput; XrCameraModelBD* models; } XrCameraSupportedCapabilityCameraModelBD; typedef struct XrCameraCapabilityCameraModelBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraModelBD model; } XrCameraCapabilityCameraModelBD; typedef struct XrCameraDeviceCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraIdBD cameraId; } XrCameraDeviceCreateInfoBD; typedef struct XrCreateCameraDeviceCompletionBD { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrCameraDeviceBD device; } XrCreateCameraDeviceCompletionBD; typedef struct XrCameraCaptureSessionCreateInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrCameraDeviceBD camera; uint32_t configCount; const XrCameraCapabilityBaseHeaderBD* const* configs; } XrCameraCaptureSessionCreateInfoBD; typedef struct XrCreateCameraCaptureSessionCompletionBD { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrCameraCaptureSessionBD captureSession; } XrCreateCameraCaptureSessionCompletionBD; // XrCameraIntrinsicsBD extends XrCameraImageDataBaseHeaderBD typedef struct XrCameraIntrinsicsBD { XrStructureType type; void* XR_MAY_ALIAS next; XrVector2f focalLength; XrVector2f principalPoint; XrVector2f fov; } XrCameraIntrinsicsBD; // XrCameraExtrinsicsBD extends XrCameraImageDataBaseHeaderBD typedef struct XrCameraExtrinsicsBD { XrStructureType type; void* XR_MAY_ALIAS next; XrPosef pose; } XrCameraExtrinsicsBD; typedef struct XrCameraCaptureBeginInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; } XrCameraCaptureBeginInfoBD; typedef struct XrCameraImageAcquireInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime lastCaptureTime; } XrCameraImageAcquireInfoBD; typedef struct XrCameraImageBD { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 available; XrTime captureTime; XrCameraImageIdBD imageId; } XrCameraImageBD; typedef struct XR_MAY_ALIAS XrCameraImageDataBaseHeaderBD { XrStructureType type; void* XR_MAY_ALIAS next; } XrCameraImageDataBaseHeaderBD; typedef struct XrCameraImageDataRawBufferBD { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t width; uint32_t height; uint32_t stride; uint32_t bytesPerPixel; uint32_t pixelStride; uint32_t bufferSize; uint8_t* buffer; } XrCameraImageDataRawBufferBD; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateAvailableCamerasBD)(XrInstance instance, const XrAvailableCamerasEnumerateInfoBD* enumerateInfo, uint32_t cameraCapacityInput, uint32_t* cameraCountOutput, XrAvailableCameraBD* cameras); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateCameraPropertyTypesBD)(XrInstance instance, const XrCameraPropertyTypesEnumerateInfoBD* enumerateInfo, XrCameraPropertyTypesBD* propertyTypes); typedef XrResult (XRAPI_PTR *PFN_xrGetCameraPropertiesBD)(XrInstance instance, const XrCameraPropertiesGetInfoBD* getInfo, XrCameraPropertiesBD* properties); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateCameraCapabilityTypesBD)(XrInstance instance, const XrCameraCapabilityTypesEnumerateInfoBD* enumerateInfo, XrCameraCapabilityTypesBD* capabilityTypes); typedef XrResult (XRAPI_PTR *PFN_xrGetCameraSupportedCapabilitiesBD)(XrInstance instance, const XrCameraSupportedCapabilitiesGetInfoBD* getInfo, XrCameraSupportedCapabilitiesBD* capabilities); typedef XrResult (XRAPI_PTR *PFN_xrCreateCameraDeviceAsyncBD)(XrInstance instance, const XrCameraDeviceCreateInfoBD* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateCameraDeviceCompleteBD)(XrInstance instance, XrFutureEXT future, XrCreateCameraDeviceCompletionBD* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroyCameraDeviceBD)(XrCameraDeviceBD device); typedef XrResult (XRAPI_PTR *PFN_xrCreateCameraCaptureSessionAsyncBD)(XrSession session, const XrCameraCaptureSessionCreateInfoBD* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateCameraCaptureSessionCompleteBD)(XrSession session, XrFutureEXT future, XrCreateCameraCaptureSessionCompletionBD* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroyCameraCaptureSessionBD)(XrCameraCaptureSessionBD captureSession); typedef XrResult (XRAPI_PTR *PFN_xrBeginCameraCaptureBD)(XrCameraCaptureSessionBD captureSession, const XrCameraCaptureBeginInfoBD* beginInfo); typedef XrResult (XRAPI_PTR *PFN_xrEndCameraCaptureBD)(XrCameraCaptureSessionBD captureSession); typedef XrResult (XRAPI_PTR *PFN_xrAcquireCameraImageBD)(XrCameraCaptureSessionBD captureSession, const XrCameraImageAcquireInfoBD* acquireInfo, XrCameraImageBD* image); typedef XrResult (XRAPI_PTR *PFN_xrGetCameraImageDataBD)(XrCameraCaptureSessionBD captureSession, XrCameraImageIdBD imageId, XrCameraImageDataBaseHeaderBD* imageData); typedef XrResult (XRAPI_PTR *PFN_xrReleaseCameraImageBD)(XrCameraCaptureSessionBD captureSession, XrCameraImageIdBD imageId); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateAvailableCamerasBD( XrInstance instance, const XrAvailableCamerasEnumerateInfoBD* enumerateInfo, uint32_t cameraCapacityInput, uint32_t* cameraCountOutput, XrAvailableCameraBD* cameras); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateCameraPropertyTypesBD( XrInstance instance, const XrCameraPropertyTypesEnumerateInfoBD* enumerateInfo, XrCameraPropertyTypesBD* propertyTypes); XRAPI_ATTR XrResult XRAPI_CALL xrGetCameraPropertiesBD( XrInstance instance, const XrCameraPropertiesGetInfoBD* getInfo, XrCameraPropertiesBD* properties); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateCameraCapabilityTypesBD( XrInstance instance, const XrCameraCapabilityTypesEnumerateInfoBD* enumerateInfo, XrCameraCapabilityTypesBD* capabilityTypes); XRAPI_ATTR XrResult XRAPI_CALL xrGetCameraSupportedCapabilitiesBD( XrInstance instance, const XrCameraSupportedCapabilitiesGetInfoBD* getInfo, XrCameraSupportedCapabilitiesBD* capabilities); XRAPI_ATTR XrResult XRAPI_CALL xrCreateCameraDeviceAsyncBD( XrInstance instance, const XrCameraDeviceCreateInfoBD* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateCameraDeviceCompleteBD( XrInstance instance, XrFutureEXT future, XrCreateCameraDeviceCompletionBD* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyCameraDeviceBD( XrCameraDeviceBD device); XRAPI_ATTR XrResult XRAPI_CALL xrCreateCameraCaptureSessionAsyncBD( XrSession session, const XrCameraCaptureSessionCreateInfoBD* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateCameraCaptureSessionCompleteBD( XrSession session, XrFutureEXT future, XrCreateCameraCaptureSessionCompletionBD* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyCameraCaptureSessionBD( XrCameraCaptureSessionBD captureSession); XRAPI_ATTR XrResult XRAPI_CALL xrBeginCameraCaptureBD( XrCameraCaptureSessionBD captureSession, const XrCameraCaptureBeginInfoBD* beginInfo); XRAPI_ATTR XrResult XRAPI_CALL xrEndCameraCaptureBD( XrCameraCaptureSessionBD captureSession); XRAPI_ATTR XrResult XRAPI_CALL xrAcquireCameraImageBD( XrCameraCaptureSessionBD captureSession, const XrCameraImageAcquireInfoBD* acquireInfo, XrCameraImageBD* image); XRAPI_ATTR XrResult XRAPI_CALL xrGetCameraImageDataBD( XrCameraCaptureSessionBD captureSession, XrCameraImageIdBD imageId, XrCameraImageDataBaseHeaderBD* imageData); XRAPI_ATTR XrResult XRAPI_CALL xrReleaseCameraImageBD( XrCameraCaptureSessionBD captureSession, XrCameraImageIdBD imageId); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_spatial_discovery_bounds is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_spatial_discovery_bounds 1 #define XR_ANDROID_spatial_discovery_bounds_SPEC_VERSION 1 #define XR_ANDROID_SPATIAL_DISCOVERY_BOUNDS_EXTENSION_NAME "XR_ANDROID_spatial_discovery_bounds" // XrSpatialBoundsSpherefANDROID extends XrSpatialDiscoverySnapshotCreateInfoEXT typedef struct XrSpatialBoundsSpherefANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrSpheref sphere; } XrSpatialBoundsSpherefANDROID; // XrSpatialBoundsBoxfANDROID extends XrSpatialDiscoverySnapshotCreateInfoEXT typedef struct XrSpatialBoundsBoxfANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrBoxf box; } XrSpatialBoundsBoxfANDROID; // XrSpatialBoundsFrustumfANDROID extends XrSpatialDiscoverySnapshotCreateInfoEXT typedef struct XrSpatialBoundsFrustumfANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrFrustumf frustum; } XrSpatialBoundsFrustumfANDROID; // XR_EXT_spatial_anchor is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_anchor 1 #define XR_EXT_spatial_anchor_SPEC_VERSION 1 #define XR_EXT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_EXT_spatial_anchor" typedef struct XrSpatialCapabilityConfigurationAnchorEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; } XrSpatialCapabilityConfigurationAnchorEXT; // XrSpatialComponentAnchorListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentAnchorListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t locationCount; XrPosef* locations; } XrSpatialComponentAnchorListEXT; typedef struct XrSpatialAnchorCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace baseSpace; XrTime time; XrPosef pose; } XrSpatialAnchorCreateInfoEXT; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorEXT)(XrSpatialContextEXT spatialContext, const XrSpatialAnchorCreateInfoEXT* createInfo, XrSpatialEntityIdEXT* anchorEntityId, XrSpatialEntityEXT* anchorEntity); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorEXT( XrSpatialContextEXT spatialContext, const XrSpatialAnchorCreateInfoEXT* createInfo, XrSpatialEntityIdEXT* anchorEntityId, XrSpatialEntityEXT* anchorEntity); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_persistence is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_persistence 1 XR_DEFINE_HANDLE(XrSpatialPersistenceContextEXT) #define XR_EXT_spatial_persistence_SPEC_VERSION 1 #define XR_EXT_SPATIAL_PERSISTENCE_EXTENSION_NAME "XR_EXT_spatial_persistence" typedef enum XrSpatialPersistenceScopeEXT { XR_SPATIAL_PERSISTENCE_SCOPE_SYSTEM_MANAGED_EXT = 1, XR_SPATIAL_PERSISTENCE_SCOPE_LOCAL_ANCHORS_EXT = 1000781000, XR_SPATIAL_PERSISTENCE_SCOPE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialPersistenceScopeEXT; typedef enum XrSpatialPersistenceContextResultEXT { XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_SUCCESS_EXT = 0, XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_ENTITY_NOT_TRACKING_EXT = -1000781001, XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_PERSIST_UUID_NOT_FOUND_EXT = -1000781002, XR_SPATIAL_PERSISTENCE_CONTEXT_RESULT_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialPersistenceContextResultEXT; typedef enum XrSpatialPersistenceStateEXT { XR_SPATIAL_PERSISTENCE_STATE_LOADED_EXT = 1, XR_SPATIAL_PERSISTENCE_STATE_NOT_FOUND_EXT = 2, XR_SPATIAL_PERSISTENCE_STATE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialPersistenceStateEXT; typedef struct XrSpatialPersistenceContextCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialPersistenceScopeEXT scope; } XrSpatialPersistenceContextCreateInfoEXT; typedef struct XrCreateSpatialPersistenceContextCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialPersistenceContextResultEXT createResult; XrSpatialPersistenceContextEXT persistenceContext; } XrCreateSpatialPersistenceContextCompletionEXT; // XrSpatialContextPersistenceConfigEXT extends XrSpatialContextCreateInfoEXT typedef struct XrSpatialContextPersistenceConfigEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t persistenceContextCount; const XrSpatialPersistenceContextEXT* persistenceContexts; } XrSpatialContextPersistenceConfigEXT; // XrSpatialDiscoveryPersistenceUuidFilterEXT extends XrSpatialDiscoverySnapshotCreateInfoEXT,XrSpatialComponentDataQueryConditionEXT typedef struct XrSpatialDiscoveryPersistenceUuidFilterEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t persistedUuidCount; const XrUuid* persistedUuids; } XrSpatialDiscoveryPersistenceUuidFilterEXT; typedef struct XrSpatialPersistenceDataEXT { XrUuid persistUuid; XrSpatialPersistenceStateEXT persistState; } XrSpatialPersistenceDataEXT; // XrSpatialComponentPersistenceListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentPersistenceListEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t persistDataCount; XrSpatialPersistenceDataEXT* persistData; } XrSpatialComponentPersistenceListEXT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialPersistenceScopesEXT)(XrInstance instance, XrSystemId systemId, uint32_t persistenceScopeCapacityInput, uint32_t* persistenceScopeCountOutput, XrSpatialPersistenceScopeEXT* persistenceScopes); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialPersistenceContextAsyncEXT)(XrSession session, const XrSpatialPersistenceContextCreateInfoEXT* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialPersistenceContextCompleteEXT)(XrSession session, XrFutureEXT future, XrCreateSpatialPersistenceContextCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialPersistenceContextEXT)(XrSpatialPersistenceContextEXT persistenceContext); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialPersistenceScopesEXT( XrInstance instance, XrSystemId systemId, uint32_t persistenceScopeCapacityInput, uint32_t* persistenceScopeCountOutput, XrSpatialPersistenceScopeEXT* persistenceScopes); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialPersistenceContextAsyncEXT( XrSession session, const XrSpatialPersistenceContextCreateInfoEXT* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialPersistenceContextCompleteEXT( XrSession session, XrFutureEXT future, XrCreateSpatialPersistenceContextCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialPersistenceContextEXT( XrSpatialPersistenceContextEXT persistenceContext); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_haptic_parametric is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_haptic_parametric 1 #define XR_HAPTIC_PARAMETRIC_MAX_POINTS_TRANSIENTS_EXT 500 #define XR_HAPTIC_PARAMETRIC_VIBRATION_EXTEND_DURATION_EXT 50000000 #define XR_HAPTIC_PARAMETRIC_FREQUENCY_MIN_HZ_EXT 1 #define XR_HAPTIC_PARAMETRIC_FREQUENCY_MAX_HZ_EXT 1000 #define XR_EXT_haptic_parametric_SPEC_VERSION 1 #define XR_EXT_HAPTIC_PARAMETRIC_EXTENSION_NAME "XR_EXT_haptic_parametric" typedef enum XrHapticParametricStreamFrameTypeEXT { XR_HAPTIC_PARAMETRIC_STREAM_FRAME_TYPE_NONE_EXT = 0, XR_HAPTIC_PARAMETRIC_STREAM_FRAME_TYPE_FIRST_FRAME_EXT = 1, XR_HAPTIC_PARAMETRIC_STREAM_FRAME_TYPE_INTERMEDIATE_FRAME_EXT = 2, XR_HAPTIC_PARAMETRIC_STREAM_FRAME_TYPE_LAST_FRAME_EXT = 3, XR_HAPTIC_PARAMETRIC_STREAM_FRAME_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } XrHapticParametricStreamFrameTypeEXT; typedef struct XrHapticParametricPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrDuration idealFrameSubmissionRate; XrDuration minimumFirstFrameDuration; float minFrequencyHz; float maxFrequencyHz; } XrHapticParametricPropertiesEXT; typedef struct XrHapticParametricPointEXT { XrDuration time; float value; } XrHapticParametricPointEXT; typedef struct XrHapticParametricTransientEXT { XrDuration time; float amplitude; float frequency; } XrHapticParametricTransientEXT; typedef struct XrHapticParametricVibrationEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t amplitudePointCount; const XrHapticParametricPointEXT* amplitudePoints; uint32_t frequencyPointCount; const XrHapticParametricPointEXT* frequencyPoints; uint32_t transientCount; const XrHapticParametricTransientEXT* transients; float minFrequencyHz; float maxFrequencyHz; XrHapticParametricStreamFrameTypeEXT streamFrameType; } XrHapticParametricVibrationEXT; // XrSystemHapticParametricPropertiesEXT extends XrSystemProperties typedef struct XrSystemHapticParametricPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsParametricHaptics; } XrSystemHapticParametricPropertiesEXT; typedef XrResult (XRAPI_PTR *PFN_xrHapticParametricGetPropertiesEXT)(XrSession session, const XrHapticActionInfo* hapticActionInfo, XrHapticParametricPropertiesEXT* parametricProperties); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrHapticParametricGetPropertiesEXT( XrSession session, const XrHapticActionInfo* hapticActionInfo, XrHapticParametricPropertiesEXT* parametricProperties); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_SONY_swapchain_color_space is a preprocessor guard. Do not pass it to API calls. #define XR_SONY_swapchain_color_space 1 #define XR_SONY_swapchain_color_space_SPEC_VERSION 1 #define XR_SONY_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "XR_SONY_swapchain_color_space" typedef enum XrColorSpaceSONY { XR_COLOR_SPACE_SRGB_NONLINEAR_SONY = 0, XR_COLOR_SPACE_DISPLAY_P3_LINEAR_SONY = 1, XR_COLOR_SPACE_DISPLAY_P3_NONLINEAR_SONY = 2, XR_COLOR_SPACE_DCI_P3_LINEAR_SONY = 3, XR_COLOR_SPACE_DCI_P3_NONLINEAR_SONY = 4, XR_COLOR_SPACE_EXTENDED_SRGB_LINEAR_SONY = 5, XR_COLOR_SPACE_BT709_LINEAR_SONY = 6, XR_COLOR_SPACE_BT709_NONLINEAR_SONY = 7, XR_COLOR_SPACE_BT2020_LINEAR_SONY = 8, XR_COLOR_SPACE_BT2020_PQ_SONY = 9, XR_COLOR_SPACE_BT2020_HLG_SONY = 10, XR_COLOR_SPACE_MAX_ENUM_SONY = 0x7FFFFFFF } XrColorSpaceSONY; typedef struct XrColorSpacesEnumerateInfoSONY { XrStructureType type; const void* XR_MAY_ALIAS next; int64_t format; } XrColorSpacesEnumerateInfoSONY; // XrSwapchainCreateInfoColorSpaceSONY extends XrSwapchainCreateInfo typedef struct XrSwapchainCreateInfoColorSpaceSONY { XrStructureType type; const void* XR_MAY_ALIAS next; XrColorSpaceSONY colorSpace; } XrSwapchainCreateInfoColorSpaceSONY; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesSONY)(XrSession session, const XrColorSpacesEnumerateInfoSONY* enumerateInfo, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceSONY* colorSpaces); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateColorSpacesSONY( XrSession session, const XrColorSpacesEnumerateInfoSONY* enumerateInfo, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceSONY* colorSpaces); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_SONY_hdr_metadata is a preprocessor guard. Do not pass it to API calls. #define XR_SONY_hdr_metadata 1 #define XR_SONY_hdr_metadata_SPEC_VERSION 1 #define XR_SONY_HDR_METADATA_EXTENSION_NAME "XR_SONY_hdr_metadata" typedef struct XrXYColorSONY { float x; float y; } XrXYColorSONY; typedef struct XrHdrMetadataSONY { XrStructureType type; const void* XR_MAY_ALIAS next; XrXYColorSONY displayPrimaryRed; XrXYColorSONY displayPrimaryGreen; XrXYColorSONY displayPrimaryBlue; XrXYColorSONY whitePoint; float maxLuminance; float minLuminance; float maxContentLightLevel; float maxFrameAverageLightLevel; } XrHdrMetadataSONY; typedef XrResult (XRAPI_PTR *PFN_xrSetHdrMetadataSONY)(XrSwapchain swapchain, const XrHdrMetadataSONY* hdrMetadata); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetHdrMetadataSONY( XrSwapchain swapchain, const XrHdrMetadataSONY* hdrMetadata); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_persistence_operations is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_persistence_operations 1 #define XR_EXT_spatial_persistence_operations_SPEC_VERSION 1 #define XR_EXT_SPATIAL_PERSISTENCE_OPERATIONS_EXTENSION_NAME "XR_EXT_spatial_persistence_operations" typedef struct XrSpatialEntityPersistInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContextEXT spatialContext; XrSpatialEntityIdEXT spatialEntityId; } XrSpatialEntityPersistInfoEXT; typedef struct XrPersistSpatialEntityCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialPersistenceContextResultEXT persistResult; XrUuid persistUuid; } XrPersistSpatialEntityCompletionEXT; typedef struct XrSpatialEntityUnpersistInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrUuid persistUuid; } XrSpatialEntityUnpersistInfoEXT; typedef struct XrUnpersistSpatialEntityCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialPersistenceContextResultEXT unpersistResult; } XrUnpersistSpatialEntityCompletionEXT; typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialEntityAsyncEXT)(XrSpatialPersistenceContextEXT persistenceContext, const XrSpatialEntityPersistInfoEXT* persistInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialEntityCompleteEXT)(XrSpatialPersistenceContextEXT persistenceContext, XrFutureEXT future, XrPersistSpatialEntityCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialEntityAsyncEXT)(XrSpatialPersistenceContextEXT persistenceContext, const XrSpatialEntityUnpersistInfoEXT* unpersistInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialEntityCompleteEXT)(XrSpatialPersistenceContextEXT persistenceContext, XrFutureEXT future, XrUnpersistSpatialEntityCompletionEXT* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialEntityAsyncEXT( XrSpatialPersistenceContextEXT persistenceContext, const XrSpatialEntityPersistInfoEXT* persistInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialEntityCompleteEXT( XrSpatialPersistenceContextEXT persistenceContext, XrFutureEXT future, XrPersistSpatialEntityCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialEntityAsyncEXT( XrSpatialPersistenceContextEXT persistenceContext, const XrSpatialEntityUnpersistInfoEXT* unpersistInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialEntityCompleteEXT( XrSpatialPersistenceContextEXT persistenceContext, XrFutureEXT future, XrUnpersistSpatialEntityCompletionEXT* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_image_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_image_tracking 1 XR_DEFINE_HANDLE(XrSpatialImageTrackingDatabaseEXT) #define XR_EXT_spatial_image_tracking_SPEC_VERSION 1 #define XR_EXT_SPATIAL_IMAGE_TRACKING_EXTENSION_NAME "XR_EXT_spatial_image_tracking" typedef enum XrSpatialReferenceImageFormatEXT { XR_SPATIAL_REFERENCE_IMAGE_FORMAT_RGBA_8888_EXT = 1, XR_SPATIAL_REFERENCE_IMAGE_FORMAT_RGB_888_EXT = 2, XR_SPATIAL_REFERENCE_IMAGE_FORMAT_YUV_420_888_EXT = 3, XR_SPATIAL_REFERENCE_IMAGE_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialReferenceImageFormatEXT; typedef struct XrSpatialReferenceImagePlaneEXT { uint32_t bufferSize; const uint8_t* buffer; uint32_t rowStride; uint32_t pixelStride; } XrSpatialReferenceImagePlaneEXT; typedef struct XrSpatialReferenceImageEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t width; uint32_t height; XrSpatialReferenceImageFormatEXT format; uint32_t planeCount; const XrSpatialReferenceImagePlaneEXT* planes; } XrSpatialReferenceImageEXT; // XrSpatialImageStaticOptimizationEXT extends XrSpatialReferenceImageEXT,XrSpatialImageTrackingDatabaseCreateInfoEXT typedef struct XrSpatialImageStaticOptimizationEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 optimizeForStaticImage; } XrSpatialImageStaticOptimizationEXT; // XrSpatialImageSizeEXT extends XrSpatialReferenceImageEXT,XrSpatialImageTrackingDatabaseCreateInfoEXT typedef struct XrSpatialImageSizeEXT { XrStructureType type; const void* XR_MAY_ALIAS next; float physicalWidth; } XrSpatialImageSizeEXT; typedef struct XrSpatialCapabilityConfigurationImageTrackingEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; uint32_t imageTrackingDatabaseCount; const XrSpatialImageTrackingDatabaseEXT* imageTrackingDatabases; } XrSpatialCapabilityConfigurationImageTrackingEXT; typedef struct XrSpatialImageTrackingDatabaseCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t spatialReferenceImageCount; const XrSpatialReferenceImageEXT* spatialReferenceImages; } XrSpatialImageTrackingDatabaseCreateInfoEXT; typedef struct XrSpatialImage2DDataEXT { XrSpatialImageTrackingDatabaseEXT imageTrackingDatabase; uint32_t referenceImageIndex; } XrSpatialImage2DDataEXT; // XrSpatialComponentImage2DListEXT extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentImage2DListEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t imageCount; XrSpatialImage2DDataEXT* images; } XrSpatialComponentImage2DListEXT; typedef struct XrCreateSpatialImageTrackingDatabaseCompletionEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialImageTrackingDatabaseEXT database; } XrCreateSpatialImageTrackingDatabaseCompletionEXT; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialReferenceImageFormatsEXT)(XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, uint32_t formatCapacityInput, uint32_t* formatCountOutput, XrSpatialReferenceImageFormatEXT* formats); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialImageTrackingDatabaseAsyncEXT)(XrSession session, const XrSpatialImageTrackingDatabaseCreateInfoEXT* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialImageTrackingDatabaseCompleteEXT)(XrSession session, XrFutureEXT future, XrCreateSpatialImageTrackingDatabaseCompletionEXT* completion); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialImageTrackingDatabaseEXT)(XrSpatialImageTrackingDatabaseEXT database); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialReferenceImageFormatsEXT( XrInstance instance, XrSystemId systemId, XrSpatialCapabilityEXT capability, uint32_t formatCapacityInput, uint32_t* formatCountOutput, XrSpatialReferenceImageFormatEXT* formats); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialImageTrackingDatabaseAsyncEXT( XrSession session, const XrSpatialImageTrackingDatabaseCreateInfoEXT* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialImageTrackingDatabaseCompleteEXT( XrSession session, XrFutureEXT future, XrCreateSpatialImageTrackingDatabaseCompletionEXT* completion); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialImageTrackingDatabaseEXT( XrSpatialImageTrackingDatabaseEXT database); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_spatial_object_tracking is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_spatial_object_tracking 1 #define XR_ANDROID_spatial_object_tracking_SPEC_VERSION 2 #define XR_ANDROID_SPATIAL_OBJECT_TRACKING_EXTENSION_NAME "XR_ANDROID_spatial_object_tracking" typedef enum XrSpatialObjectSemanticLabelANDROID { XR_SPATIAL_OBJECT_SEMANTIC_LABEL_UNCATEGORIZED_ANDROID = 0, XR_SPATIAL_OBJECT_SEMANTIC_LABEL_KEYBOARD_ANDROID = 1, XR_SPATIAL_OBJECT_SEMANTIC_LABEL_MOUSE_ANDROID = 2, XR_SPATIAL_OBJECT_SEMANTIC_LABEL_LAPTOP_BASE_ANDROID = 3, XR_SPATIAL_OBJECT_SEMANTIC_LABEL_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrSpatialObjectSemanticLabelANDROID; typedef struct XrSpatialCapabilityConfigurationObjectTrackingANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; uint32_t activeSemanticLabelCount; const XrSpatialObjectSemanticLabelANDROID* activeSemanticLabels; } XrSpatialCapabilityConfigurationObjectTrackingANDROID; // XrSpatialComponentObjectSemanticLabelListANDROID extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentObjectSemanticLabelListANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t semanticLabelCount; XrSpatialObjectSemanticLabelANDROID* semanticLabels; } XrSpatialComponentObjectSemanticLabelListANDROID; // XR_ANDROID_spatial_discovery_raycast is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_spatial_discovery_raycast 1 #define XR_ANDROID_spatial_discovery_raycast_SPEC_VERSION 1 #define XR_ANDROID_SPATIAL_DISCOVERY_RAYCAST_EXTENSION_NAME "XR_ANDROID_spatial_discovery_raycast" typedef struct XrSpatialRaycastResultDataANDROID { XrPosef hitPose; float distanceSquared; } XrSpatialRaycastResultDataANDROID; typedef struct XrSpatialCapabilityConfigurationDepthRaycastANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialCapabilityEXT capability; uint32_t enabledComponentCount; const XrSpatialComponentTypeEXT* enabledComponents; } XrSpatialCapabilityConfigurationDepthRaycastANDROID; // XrSpatialRaycastInfoANDROID extends XrSpatialDiscoverySnapshotCreateInfoEXT typedef struct XrSpatialRaycastInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrVector3f origin; XrVector3f direction; float maxDistance; } XrSpatialRaycastInfoANDROID; // XrSpatialComponentRaycastResultListANDROID extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentRaycastResultListANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t raycastResultCount; XrSpatialRaycastResultDataANDROID* raycastResults; } XrSpatialComponentRaycastResultListANDROID; typedef struct XrSpatialRaycastSnapshotCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t componentTypeCount; const XrSpatialComponentTypeEXT* componentTypes; const XrSpatialRaycastInfoANDROID* raycastInfo; } XrSpatialRaycastSnapshotCreateInfoANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialRaycastSnapshotANDROID)(XrSpatialContextEXT spatialContext, const XrSpatialRaycastSnapshotCreateInfoANDROID* createInfo, XrSpatialSnapshotEXT* snapshot); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialRaycastSnapshotANDROID( XrSpatialContextEXT spatialContext, const XrSpatialRaycastSnapshotCreateInfoANDROID* createInfo, XrSpatialSnapshotEXT* snapshot); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_google_cloud_auth is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_google_cloud_auth 1 #define XR_ANDROID_google_cloud_auth_SPEC_VERSION 1 #define XR_ANDROID_GOOGLE_CLOUD_AUTH_EXTENSION_NAME "XR_ANDROID_google_cloud_auth" typedef enum XrGoogleCloudAuthErrorANDROID { XR_GOOGLE_CLOUD_AUTH_ERROR_NONE_ANDROID = 0, XR_GOOGLE_CLOUD_AUTH_ERROR_QUOTA_EXCEEDED_ANDROID = -1, XR_GOOGLE_CLOUD_AUTH_ERROR_UNREACHABLE_ANDROID = -2, XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID = -3, XR_GOOGLE_CLOUD_AUTH_ERROR_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrGoogleCloudAuthErrorANDROID; typedef struct XR_MAY_ALIAS XrGoogleCloudAuthInfoBaseHeaderANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrGoogleCloudAuthInfoBaseHeaderANDROID; typedef struct XrGoogleCloudAuthInfoApiKeyANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; const char* apiKey; } XrGoogleCloudAuthInfoApiKeyANDROID; typedef struct XrGoogleCloudAuthInfoTokenANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; const char* authToken; } XrGoogleCloudAuthInfoTokenANDROID; typedef struct XrGoogleCloudAuthInfoKeylessANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrGoogleCloudAuthInfoKeylessANDROID; // XrGoogleCloudAuthErrorResultANDROID extends XrGoogleCloudAuthInfoBaseHeaderANDROID typedef struct XrGoogleCloudAuthErrorResultANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrGoogleCloudAuthErrorANDROID error; } XrGoogleCloudAuthErrorResultANDROID; typedef XrResult (XRAPI_PTR *PFN_xrSetGoogleCloudAuthAsyncANDROID)(XrSession session, const XrGoogleCloudAuthInfoBaseHeaderANDROID* authInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrSetGoogleCloudAuthCompleteANDROID)(XrSession session, XrFutureEXT future, XrFutureCompletionEXT* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrSetGoogleCloudAuthAsyncANDROID( XrSession session, const XrGoogleCloudAuthInfoBaseHeaderANDROID* authInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrSetGoogleCloudAuthCompleteANDROID( XrSession session, XrFutureEXT future, XrFutureCompletionEXT* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_geospatial is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_geospatial 1 XR_DEFINE_HANDLE(XrGeospatialTrackerANDROID) #define XR_ANDROID_geospatial_SPEC_VERSION 1 #define XR_ANDROID_GEOSPATIAL_EXTENSION_NAME "XR_ANDROID_geospatial" typedef enum XrGeospatialTrackerStateANDROID { XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID = 0, XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID = 1, XR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROID = 2, XR_GEOSPATIAL_TRACKER_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrGeospatialTrackerStateANDROID; typedef enum XrVPSAvailabilityANDROID { XR_VPS_AVAILABILITY_UNAVAILABLE_ANDROID = 1, XR_VPS_AVAILABILITY_AVAILABLE_ANDROID = 2, XR_VPSAVAILABILITY_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrVPSAvailabilityANDROID; typedef XrFlags64 XrGeospatialPoseFlagsANDROID; // Flag bits for XrGeospatialPoseFlagsANDROID static const XrGeospatialPoseFlagsANDROID XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID = 0x00000001; static const XrGeospatialPoseFlagsANDROID XR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID = 0x00000002; typedef struct XrGeospatialPoseANDROID { XrQuaternionf eastUpSouthOrientation; double latitude; double longitude; double altitude; } XrGeospatialPoseANDROID; // XrSystemGeospatialPropertiesANDROID extends XrSystemProperties typedef struct XrSystemGeospatialPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 supportsGeospatial; } XrSystemGeospatialPropertiesANDROID; typedef struct XrGeospatialTrackerCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrGeospatialTrackerCreateInfoANDROID; typedef struct XrEventDataGeospatialTrackerStateChangedANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrGeospatialTrackerANDROID geospatialTracker; XrGeospatialTrackerStateANDROID state; XrResult initializationResult; XrTime time; } XrEventDataGeospatialTrackerStateChangedANDROID; typedef struct XrGeospatialPoseFromPoseLocateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrPosef pose; } XrGeospatialPoseFromPoseLocateInfoANDROID; typedef struct XrGeospatialPoseResultANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrGeospatialPoseFlagsANDROID poseFlags; XrGeospatialPoseANDROID geospatialPose; double horizontalAccuracy; double verticalAccuracy; double orientationYawAccuracy; } XrGeospatialPoseResultANDROID; typedef struct XrGeospatialPoseLocateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpace space; XrTime time; XrGeospatialPoseANDROID geospatialPose; } XrGeospatialPoseLocateInfoANDROID; typedef struct XrVPSAvailabilityCheckCompletionANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrVPSAvailabilityANDROID availability; } XrVPSAvailabilityCheckCompletionANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateGeospatialTrackerANDROID)(XrSession session, const XrGeospatialTrackerCreateInfoANDROID* createInfo, XrGeospatialTrackerANDROID* geospatialTrackerOutput); typedef XrResult (XRAPI_PTR *PFN_xrDestroyGeospatialTrackerANDROID)(XrGeospatialTrackerANDROID geospatialTracker); typedef XrResult (XRAPI_PTR *PFN_xrLocateGeospatialPoseFromPoseANDROID)(XrGeospatialTrackerANDROID geospatialTracker, const XrGeospatialPoseFromPoseLocateInfoANDROID* locateInfo, XrGeospatialPoseResultANDROID* geospatialPoseResult); typedef XrResult (XRAPI_PTR *PFN_xrLocateGeospatialPoseANDROID)(XrGeospatialTrackerANDROID geospatialTracker, const XrGeospatialPoseLocateInfoANDROID* locateInfo, XrSpaceLocation* location); typedef XrResult (XRAPI_PTR *PFN_xrCheckVpsAvailabilityAsyncANDROID)(XrSession session, double latitude, double longitude, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCheckVpsAvailabilityCompleteANDROID)(XrSession session, XrFutureEXT future, XrVPSAvailabilityCheckCompletionANDROID* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateGeospatialTrackerANDROID( XrSession session, const XrGeospatialTrackerCreateInfoANDROID* createInfo, XrGeospatialTrackerANDROID* geospatialTrackerOutput); XRAPI_ATTR XrResult XRAPI_CALL xrDestroyGeospatialTrackerANDROID( XrGeospatialTrackerANDROID geospatialTracker); XRAPI_ATTR XrResult XRAPI_CALL xrLocateGeospatialPoseFromPoseANDROID( XrGeospatialTrackerANDROID geospatialTracker, const XrGeospatialPoseFromPoseLocateInfoANDROID* locateInfo, XrGeospatialPoseResultANDROID* geospatialPoseResult); XRAPI_ATTR XrResult XRAPI_CALL xrLocateGeospatialPoseANDROID( XrGeospatialTrackerANDROID geospatialTracker, const XrGeospatialPoseLocateInfoANDROID* locateInfo, XrSpaceLocation* location); XRAPI_ATTR XrResult XRAPI_CALL xrCheckVpsAvailabilityAsyncANDROID( XrSession session, double latitude, double longitude, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCheckVpsAvailabilityCompleteANDROID( XrSession session, XrFutureEXT future, XrVPSAvailabilityCheckCompletionANDROID* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_spatial_entity_bound_anchor is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_spatial_entity_bound_anchor 1 #define XR_ANDROID_spatial_entity_bound_anchor_SPEC_VERSION 2 #define XR_ANDROID_SPATIAL_ENTITY_BOUND_ANCHOR_EXTENSION_NAME "XR_ANDROID_spatial_entity_bound_anchor" // XrSpatialAnchorParentANDROID extends XrSpatialAnchorCreateInfoEXT typedef struct XrSpatialAnchorParentANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialEntityIdEXT parentId; } XrSpatialAnchorParentANDROID; typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpatialAnchorAttachableComponentsANDROID)(XrInstance instance, XrSystemId systemId, uint32_t attachableComponentCapacityInput, uint32_t* attachableComponentCountOutput, XrSpatialComponentTypeEXT* attachableComponents); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpatialAnchorAttachableComponentsANDROID( XrInstance instance, XrSystemId systemId, uint32_t attachableComponentCapacityInput, uint32_t* attachableComponentCountOutput, XrSpatialComponentTypeEXT* attachableComponents); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_spatial_component_subsumed_by is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_spatial_component_subsumed_by 1 #define XR_ANDROID_spatial_component_subsumed_by_SPEC_VERSION 1 #define XR_ANDROID_SPATIAL_COMPONENT_SUBSUMED_BY_EXTENSION_NAME "XR_ANDROID_spatial_component_subsumed_by" // XrSpatialDiscoveryUniqueEntitiesFilterANDROID extends XrSpatialDiscoverySnapshotCreateInfoEXT typedef struct XrSpatialDiscoveryUniqueEntitiesFilterANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialDiscoveryUniqueEntitiesFilterANDROID; // XrSpatialComponentSubsumedByListANDROID extends XrSpatialComponentDataQueryResultEXT typedef struct XrSpatialComponentSubsumedByListANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t subsumedUniqueIdCount; XrSpatialEntityIdEXT* subsumedUniqueIds; } XrSpatialComponentSubsumedByListANDROID; // XR_ANDROID_spatial_anchor_space is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_spatial_anchor_space 1 #define XR_ANDROID_spatial_anchor_space_SPEC_VERSION 1 #define XR_ANDROID_SPATIAL_ANCHOR_SPACE_EXTENSION_NAME "XR_ANDROID_spatial_anchor_space" typedef struct XrSpatialAnchorSpaceFromIdCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialEntityIdEXT anchorEntityId; } XrSpatialAnchorSpaceFromIdCreateInfoANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceANDROID)(XrSession session, XrSpatialContextEXT spatialContext, const XrSpatialAnchorCreateInfoEXT* createInfo, XrSpatialEntityIdEXT* anchorEntityId, XrSpace* anchorSpace); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceFromIdANDROID)(XrSession session, XrSpatialContextEXT spatialContext, const XrSpatialAnchorSpaceFromIdCreateInfoANDROID* createInfo, XrSpace* anchorSpace); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceANDROID( XrSession session, XrSpatialContextEXT spatialContext, const XrSpatialAnchorCreateInfoEXT* createInfo, XrSpatialEntityIdEXT* anchorEntityId, XrSpace* anchorSpace); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceFromIdANDROID( XrSession session, XrSpatialContextEXT spatialContext, const XrSpatialAnchorSpaceFromIdCreateInfoANDROID* createInfo, XrSpace* anchorSpace); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_ANDROID_geospatial_anchor is a preprocessor guard. Do not pass it to API calls. #define XR_ANDROID_geospatial_anchor 1 #define XR_ANDROID_geospatial_anchor_SPEC_VERSION 1 #define XR_ANDROID_GEOSPATIAL_ANCHOR_EXTENSION_NAME "XR_ANDROID_geospatial_anchor" typedef enum XrSurfaceAnchorTypeANDROID { XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID = 1, XR_SURFACE_ANCHOR_TYPE_ROOFTOP_ANDROID = 2, XR_SURFACE_ANCHOR_TYPE_MAX_ENUM_ANDROID = 0x7FFFFFFF } XrSurfaceAnchorTypeANDROID; // XrSystemGeospatialAnchorPropertiesANDROID extends XrSystemProperties typedef struct XrSystemGeospatialAnchorPropertiesANDROID { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t maxSurfaceAnchorCount; } XrSystemGeospatialAnchorPropertiesANDROID; // XrGeospatialTrackerAnchorTrackingInfoANDROID extends XrGeospatialTrackerCreateInfoANDROID typedef struct XrGeospatialTrackerAnchorTrackingInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 shouldTrackPlanes; } XrGeospatialTrackerAnchorTrackingInfoANDROID; typedef struct XrGeospatialAnchorCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrGeospatialTrackerANDROID geospatialTracker; XrGeospatialPoseANDROID geospatialPose; } XrGeospatialAnchorCreateInfoANDROID; typedef struct XrSurfaceAnchorCreateInfoANDROID { XrStructureType type; const void* XR_MAY_ALIAS next; XrGeospatialTrackerANDROID geospatialTracker; XrSurfaceAnchorTypeANDROID surfaceAnchorType; XrQuaternionf eastUpSouthOrientation; double latitude; double longitude; double altitudeRelativeToSurface; } XrSurfaceAnchorCreateInfoANDROID; typedef struct XrSurfaceAnchorCreateCompletionANDROID { XrStructureType type; void* XR_MAY_ALIAS next; XrResult futureResult; XrSpatialEntityIdEXT anchorEntityId; } XrSurfaceAnchorCreateCompletionANDROID; typedef XrResult (XRAPI_PTR *PFN_xrCreateGeospatialAnchorANDROID)(XrSpatialContextEXT spatialContext, const XrGeospatialAnchorCreateInfoANDROID* createInfo, XrSpatialEntityIdEXT* anchorEntityId); typedef XrResult (XRAPI_PTR *PFN_xrCreateSurfaceAnchorAsyncANDROID)(XrSpatialContextEXT spatialContext, const XrSurfaceAnchorCreateInfoANDROID* createInfo, XrFutureEXT* future); typedef XrResult (XRAPI_PTR *PFN_xrCreateSurfaceAnchorCompleteANDROID)(XrSpatialContextEXT spatialContext, XrFutureEXT future, XrSurfaceAnchorCreateCompletionANDROID* completion); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateGeospatialAnchorANDROID( XrSpatialContextEXT spatialContext, const XrGeospatialAnchorCreateInfoANDROID* createInfo, XrSpatialEntityIdEXT* anchorEntityId); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSurfaceAnchorAsyncANDROID( XrSpatialContextEXT spatialContext, const XrSurfaceAnchorCreateInfoANDROID* createInfo, XrFutureEXT* future); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSurfaceAnchorCompleteANDROID( XrSpatialContextEXT spatialContext, XrFutureEXT future, XrSurfaceAnchorCreateCompletionANDROID* completion); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_container is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_container 1 XR_DEFINE_HANDLE(XrSpatialContainerEXT) #define XR_EXT_spatial_container_SPEC_VERSION 1 #define XR_EXT_SPATIAL_CONTAINER_EXTENSION_NAME "XR_EXT_spatial_container" typedef enum XrSpatialContainerGraphicsPresentationEXT { XR_SPATIAL_CONTAINER_GRAPHICS_PRESENTATION_SELF_RENDERING_EXT = 1000813000, XR_SPATIAL_CONTAINER_GRAPHICS_PRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialContainerGraphicsPresentationEXT; typedef enum XrSpatialContainerBoundsModeEXT { XR_SPATIAL_CONTAINER_BOUNDS_MODE_BOUNDED_EXT = 1, XR_SPATIAL_CONTAINER_BOUNDS_MODE_IMMERSIVE_EXT = 2, XR_SPATIAL_CONTAINER_BOUNDS_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialContainerBoundsModeEXT; typedef enum XrSpatialContainerVolumeClippingEXT { XR_SPATIAL_CONTAINER_VOLUME_CLIPPING_NONE_EXT = 0, XR_SPATIAL_CONTAINER_VOLUME_CLIPPING_STRICT_EXT = 1, XR_SPATIAL_CONTAINER_VOLUME_CLIPPING_MAX_ENUM_EXT = 0x7FFFFFFF } XrSpatialContainerVolumeClippingEXT; // XrSessionCreateInfoSpatialContainersEXT extends XrSessionCreateInfo typedef struct XrSessionCreateInfoSpatialContainersEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSessionCreateInfoSpatialContainersEXT; typedef struct XrSpatialContainerCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerGraphicsPresentationEXT graphicsPresentation; XrExtent3Df suggestedBounds; } XrSpatialContainerCreateInfoEXT; typedef struct XrSpatialContainerSpaceCreateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; } XrSpatialContainerSpaceCreateInfoEXT; typedef struct XrEventDataSpatialContainerClosedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; } XrEventDataSpatialContainerClosedEXT; // XrSystemSpatialContainerPropertiesEXT extends XrSystemProperties typedef struct XrSystemSpatialContainerPropertiesEXT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t maxSpatialContainerCount; XrBool32 supportsBounded; XrBool32 supportsImmersive; } XrSystemSpatialContainerPropertiesEXT; typedef struct XrSpatialContainerBoundsEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrExtent3Df bounds; XrBool32 infiniteBounds; } XrSpatialContainerBoundsEXT; typedef struct XrEventDataSpatialContainerBoundsChangedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; XrExtent3Df bounds; XrBool32 infiniteBounds; XrSpatialContainerBoundsModeEXT boundsMode; } XrEventDataSpatialContainerBoundsChangedEXT; typedef struct XrSpatialContainerBoundsGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialContainerBoundsGetInfoEXT; typedef struct XrSpatialContainerStateGetInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; } XrSpatialContainerStateGetInfoEXT; typedef struct XrSpatialContainerVisibleRequestInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrBool32 visible; } XrSpatialContainerVisibleRequestInfoEXT; typedef struct XrEventDataSpatialContainerVisibleChangedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; XrBool32 visible; } XrEventDataSpatialContainerVisibleChangedEXT; typedef struct XrEventDataSpatialContainerVisibleRequestDeniedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; } XrEventDataSpatialContainerVisibleRequestDeniedEXT; typedef struct XrEventDataSpatialContainerInteractableChangedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; XrBool32 interactable; } XrEventDataSpatialContainerInteractableChangedEXT; typedef struct XrSpatialContainerBoundsModeRequestInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerBoundsModeEXT boundsMode; } XrSpatialContainerBoundsModeRequestInfoEXT; typedef struct XrEventDataSpatialContainerBoundsModeRequestDeniedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; } XrEventDataSpatialContainerBoundsModeRequestDeniedEXT; typedef struct XrSpatialContainerStateEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBool32 visible; XrBool32 interactable; XrSpatialContainerBoundsModeEXT boundsMode; } XrSpatialContainerStateEXT; typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialContainerEXT)(XrSession session, const XrSpatialContainerCreateInfoEXT* createInfo, XrSpatialContainerEXT* spatialContainer); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialContainerEXT)(XrSpatialContainerEXT spatialContainer); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialContainerSpaceEXT)(XrSession session, const XrSpatialContainerSpaceCreateInfoEXT* createInfo, XrSpace* space); typedef XrResult (XRAPI_PTR *PFN_xrRequestSpatialContainerVisibleEXT)(XrSpatialContainerEXT spatialContainer, const XrSpatialContainerVisibleRequestInfoEXT* info); typedef XrResult (XRAPI_PTR *PFN_xrRequestSpatialContainerBoundsModeEXT)(XrSpatialContainerEXT spatialContainer, const XrSpatialContainerBoundsModeRequestInfoEXT* info); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialContainerBoundsEXT)(XrSpatialContainerEXT spatialContainer, const XrSpatialContainerBoundsGetInfoEXT* getInfo, XrSpatialContainerBoundsEXT* bounds); typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialContainerStateEXT)(XrSpatialContainerEXT spatialContainer, const XrSpatialContainerStateGetInfoEXT* getInfo, XrSpatialContainerStateEXT* state); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSupportedSpatialContainerGraphicsPresentationsEXT)(XrInstance instance, XrSystemId systemId, uint32_t graphicsPresentationCapacityInput, uint32_t* graphicsPresentationCountOutput, XrSpatialContainerGraphicsPresentationEXT* graphicsPresentations); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialContainerEXT( XrSession session, const XrSpatialContainerCreateInfoEXT* createInfo, XrSpatialContainerEXT* spatialContainer); XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialContainerEXT( XrSpatialContainerEXT spatialContainer); XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialContainerSpaceEXT( XrSession session, const XrSpatialContainerSpaceCreateInfoEXT* createInfo, XrSpace* space); XRAPI_ATTR XrResult XRAPI_CALL xrRequestSpatialContainerVisibleEXT( XrSpatialContainerEXT spatialContainer, const XrSpatialContainerVisibleRequestInfoEXT* info); XRAPI_ATTR XrResult XRAPI_CALL xrRequestSpatialContainerBoundsModeEXT( XrSpatialContainerEXT spatialContainer, const XrSpatialContainerBoundsModeRequestInfoEXT* info); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialContainerBoundsEXT( XrSpatialContainerEXT spatialContainer, const XrSpatialContainerBoundsGetInfoEXT* getInfo, XrSpatialContainerBoundsEXT* bounds); XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialContainerStateEXT( XrSpatialContainerEXT spatialContainer, const XrSpatialContainerStateGetInfoEXT* getInfo, XrSpatialContainerStateEXT* state); XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSupportedSpatialContainerGraphicsPresentationsEXT( XrInstance instance, XrSystemId systemId, uint32_t graphicsPresentationCapacityInput, uint32_t* graphicsPresentationCountOutput, XrSpatialContainerGraphicsPresentationEXT* graphicsPresentations); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_spatial_container_self_rendering is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_spatial_container_self_rendering 1 #define XR_EXT_spatial_container_self_rendering_SPEC_VERSION 1 #define XR_EXT_SPATIAL_CONTAINER_SELF_RENDERING_EXTENSION_NAME "XR_EXT_spatial_container_self_rendering" typedef struct XrSpatialContainerViewLocateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; XrSpace space; XrSpatialContainerEXT spatialContainer; } XrSpatialContainerViewLocateInfoEXT; typedef struct XrSpatialContainerViewsLocateInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrTime displayTime; uint32_t viewLocateInfoCount; const XrSpatialContainerViewLocateInfoEXT* viewLocateInfos; } XrSpatialContainerViewsLocateInfoEXT; typedef struct XrSpatialContainerViewStateEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrViewStateFlags viewStateFlags; XrViewConfigurationType viewConfigurationType; XrBool32 shouldSubmitLayers; XrExtent2Di recommendedImageExtent; } XrSpatialContainerViewStateEXT; typedef struct XrSpatialContainerLayerEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; XrBool32 retainPreviousSubmission; uint32_t layerCount; const XrCompositionLayerBaseHeader* const* layers; } XrSpatialContainerLayerEXT; // XrSpatialContainerLayerFrameEndInfoEXT extends XrFrameEndInfo typedef struct XrSpatialContainerLayerFrameEndInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t containerLayerCount; const XrSpatialContainerLayerEXT* containerLayers; } XrSpatialContainerLayerFrameEndInfoEXT; typedef struct XrSpatialContainerBeginInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; XrViewConfigurationType primaryViewConfigurationType; } XrSpatialContainerBeginInfoEXT; typedef struct XrSpatialContainerEndInfoEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerEXT spatialContainer; } XrSpatialContainerEndInfoEXT; // XrSpatialContainerCompositionLayerViewConfigurationEXT extends XrCompositionLayerProjection typedef struct XrSpatialContainerCompositionLayerViewConfigurationEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; } XrSpatialContainerCompositionLayerViewConfigurationEXT; // XrSpatialContainerLayerVolumeClippingEXT extends XrSpatialContainerLayerEXT typedef struct XrSpatialContainerLayerVolumeClippingEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSpatialContainerVolumeClippingEXT volumeClipping; } XrSpatialContainerLayerVolumeClippingEXT; typedef XrResult (XRAPI_PTR *PFN_xrBeginSpatialContainerRenderingEXT)(XrSession session, const XrSpatialContainerBeginInfoEXT* beginInfo); typedef XrResult (XRAPI_PTR *PFN_xrEndSpatialContainerRenderingEXT)(XrSession session, const XrSpatialContainerEndInfoEXT* endInfo); typedef XrResult (XRAPI_PTR *PFN_xrLocateSpatialContainerViewsEXT)(XrSession session, const XrSpatialContainerViewsLocateInfoEXT* locateInfo, uint32_t viewStateCount, XrSpatialContainerViewStateEXT* viewStates, uint32_t viewCount, XrView* views); #ifndef XR_NO_PROTOTYPES #ifdef XR_EXTENSION_PROTOTYPES XRAPI_ATTR XrResult XRAPI_CALL xrBeginSpatialContainerRenderingEXT( XrSession session, const XrSpatialContainerBeginInfoEXT* beginInfo); XRAPI_ATTR XrResult XRAPI_CALL xrEndSpatialContainerRenderingEXT( XrSession session, const XrSpatialContainerEndInfoEXT* endInfo); XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpatialContainerViewsEXT( XrSession session, const XrSpatialContainerViewsLocateInfoEXT* locateInfo, uint32_t viewStateCount, XrSpatialContainerViewStateEXT* viewStates, uint32_t viewCount, XrView* views); #endif /* XR_EXTENSION_PROTOTYPES */ #endif /* !XR_NO_PROTOTYPES */ // XR_EXT_interaction_profile_battery_state_display is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_interaction_profile_battery_state_display 1 #define XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION 1 #define XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME "XR_EXT_interaction_profile_battery_state_display" typedef XrFlags64 XrBatteryStateDisplayStateFlagsEXT; // Flag bits for XrBatteryStateDisplayStateFlagsEXT static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT = 0x00000001; static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT = 0x00000002; static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT = 0x00000004; static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT = 0x00000008; // XrBatteryStateDisplayEXT extends XrInteractionProfileState typedef struct XrBatteryStateDisplayEXT { XrStructureType type; void* XR_MAY_ALIAS next; XrBatteryStateDisplayStateFlagsEXT stateFlags; float batteryLevel; } XrBatteryStateDisplayEXT; // XR_EXT_loader_init_properties is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_loader_init_properties 1 #define XR_EXT_loader_init_properties_SPEC_VERSION 1 #define XR_EXT_LOADER_INIT_PROPERTIES_EXTENSION_NAME "XR_EXT_loader_init_properties" typedef struct XrLoaderInitPropertyValueEXT { const char* name; const char* value; } XrLoaderInitPropertyValueEXT; // XrLoaderInitInfoPropertiesEXT extends XrLoaderInitInfoBaseHeaderKHR typedef struct XrLoaderInitInfoPropertiesEXT { XrStructureType type; const void* XR_MAY_ALIAS next; uint32_t propertyValueCount; const XrLoaderInitPropertyValueEXT* propertyValues; } XrLoaderInitInfoPropertiesEXT; // XR_EXT_view_configuration_views_change is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_view_configuration_views_change 1 #define XR_EXT_view_configuration_views_change_SPEC_VERSION 1 #define XR_EXT_VIEW_CONFIGURATION_VIEWS_CHANGE_EXTENSION_NAME "XR_EXT_view_configuration_views_change" typedef struct XrEventDataViewConfigurationViewsChangedEXT { XrStructureType type; const void* XR_MAY_ALIAS next; XrSystemId systemId; XrViewConfigurationType viewConfigurationType; } XrEventDataViewConfigurationViewsChangedEXT; #ifdef __cplusplus } #endif #endif