#ifndef OPENXR_H_ #define OPENXR_H_ 1 /* ** Copyright 2017-2022 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 #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, 0, 26) #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) #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_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_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_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001, XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002, 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_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_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_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_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000, XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001, 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_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000, XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001, XR_TYPE_SEMANTIC_LABELS_FB = 1000175000, XR_TYPE_ROOM_LAYOUT_FB = 1000175001, XR_TYPE_BOUNDARY_2D_FB = 1000175002, XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE = 1000196000, XR_TYPE_SPACE_CONTAINER_FB = 1000199000, XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB = 1000203002, XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB = 1000204000, XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000, XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001, XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002, XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META = 1000245000, 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_ACTIVE_ACTION_SET_PRIORITIES_EXT = 1000373000, 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_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 XrViewConfigurationType { XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = 1000037000, XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT = 1000054000, XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF } XrViewConfigurationType; 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 XrReferenceSpaceType { XR_REFERENCE_SPACE_TYPE_VIEW = 1, XR_REFERENCE_SPACE_TYPE_LOCAL = 2, XR_REFERENCE_SPACE_TYPE_STAGE = 3, XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000, XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO = 1000121000, XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF } XrReferenceSpaceType; 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 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 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_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_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT = 1000142000, XR_OBJECT_TYPE_PASSTHROUGH_HTC = 1000317000, XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } XrObjectType; typedef XrFlags64 XrInstanceCreateFlags; // Flag bits for XrInstanceCreateFlags typedef XrFlags64 XrSessionCreateFlags; // Flag bits for XrSessionCreateFlags 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 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 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 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; 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 XrVector3f { float x; float y; float z; } XrVector3f; // XrSpaceVelocity extends XrSpaceLocation typedef struct XrSpaceVelocity { XrStructureType type; void* XR_MAY_ALIAS next; XrSpaceVelocityFlags velocityFlags; XrVector3f linearVelocity; XrVector3f angularVelocity; } XrSpaceVelocity; typedef struct XrQuaternionf { float x; float y; float z; float w; } XrQuaternionf; 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 XrExtent2Df { float width; float height; } XrExtent2Df; 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; 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 XrFrameWaitInfo { XrStructureType type; const void* XR_MAY_ALIAS next; } XrFrameWaitInfo; typedef struct XrFrameState { XrStructureType type; void* XR_MAY_ALIAS next; XrTime predictedDisplayTime; XrDuration predictedDisplayPeriod; XrBool32 shouldRender; } XrFrameState; 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 XrViewLocateInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrViewConfigurationType viewConfigurationType; XrTime displayTime; XrSpace space; } XrViewLocateInfo; typedef struct XrViewState { XrStructureType type; void* XR_MAY_ALIAS next; XrViewStateFlags viewStateFlags; } XrViewState; 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 XrHapticActionInfo { XrStructureType type; const void* XR_MAY_ALIAS next; XrAction action; XrPath subactionPath; } XrHapticActionInfo; typedef struct XR_MAY_ALIAS XrHapticBaseHeader { XrStructureType type; const void* XR_MAY_ALIAS next; } XrHapticBaseHeader; 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 */ #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; #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; #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; #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; #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 */ #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; #define XR_KHR_loader_init 1 #define XR_KHR_loader_init_SPEC_VERSION 1 #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 */ #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; #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; #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" #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 */ #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 */ #define XR_EXT_debug_utils 1 XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT) #define XR_EXT_debug_utils_SPEC_VERSION 4 #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 */ #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; #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; #define XR_VARJO_quad_views 1 #define XR_VARJO_quad_views_SPEC_VERSION 1 #define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views" #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" #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 */ #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; #define XR_FB_composition_layer_alpha_blend 1 #define XR_FB_composition_layer_alpha_blend_SPEC_VERSION 2 #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; // XrCompositionLayerAlphaBlendFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerAlphaBlendFB { XrStructureType type; void* XR_MAY_ALIAS next; XrBlendFactorFB srcFactorColor; XrBlendFactorFB dstFactorColor; XrBlendFactorFB srcFactorAlpha; XrBlendFactorFB dstFactorAlpha; } XrCompositionLayerAlphaBlendFB; #define XR_MND_headless 1 #define XR_MND_headless_SPEC_VERSION 2 #define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless" #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" #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; #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 */ #define XR_MSFT_spatial_graph_bridge 1 XR_DEFINE_HANDLE(XrSpatialGraphNodeBindingMSFT) #define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 2 #define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge" #define XR_GUID_SIZE_MSFT 16 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 */ #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" #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 */ #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 */ #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; #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" #define XR_MSFT_controller_model 1 #define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0 XR_DEFINE_ATOM(XrControllerModelKeyMSFT) #define XR_MSFT_controller_model_SPEC_VERSION 2 #define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME "XR_MSFT_controller_model" #define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64 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 */ #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" #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; #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 */ #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" #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 */ #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" 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; // XrCompositionLayerSecureContentFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerSecureContentFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerSecureContentFlagsFB flags; } XrCompositionLayerSecureContentFB; #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; #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; #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; #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" #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" #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" #define XR_MSFT_scene_understanding 1 XR_DEFINE_HANDLE(XrSceneObserverMSFT) XR_DEFINE_HANDLE(XrSceneMSFT) #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_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_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; typedef struct XrSceneMeshVertexBufferMSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; XrVector3f* vertices; } XrSceneMeshVertexBufferMSFT; typedef struct XrSceneMeshIndicesUint32MSFT { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t indexCapacityInput; uint32_t indexCountOutput; uint32_t* indices; } XrSceneMeshIndicesUint32MSFT; 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 */ #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 */ #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 */ #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" #define XR_HTCX_vive_tracker_interaction 1 #define XR_HTCX_vive_tracker_interaction_SPEC_VERSION 2 #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 */ #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 2 #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_SMILE_RIGHT_HTC = 12, XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = 13, XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = 14, XR_LIP_EXPRESSION_MOUTH_SAD_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_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 */ #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" #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" #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" #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 */ #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 */ #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; #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; #define XR_FB_spatial_entity 1 XR_DEFINE_ATOM(XrAsyncRequestIdFB) #define XR_UUID_SIZE_EXT 16 #define XR_FB_spatial_entity_SPEC_VERSION 1 #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_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_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 struct XrUuidEXT { uint8_t data[XR_UUID_SIZE_EXT]; } 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 */ #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 */ #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; #define XR_FB_keyboard_tracking 1 #define XR_FB_keyboard_tracking_SPEC_VERSION 1 #define XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME "XR_FB_keyboard_tracking" #define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB 128 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 */ #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 */ #define XR_FB_passthrough 1 XR_DEFINE_HANDLE(XrPassthroughFB) XR_DEFINE_HANDLE(XrPassthroughLayerFB) XR_DEFINE_HANDLE(XrGeometryInstanceFB) #define XR_FB_passthrough_SPEC_VERSION 3 #define XR_FB_PASSTHROUGH_EXTENSION_NAME "XR_FB_passthrough" #define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256 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; // XrCompositionLayerPassthroughFB extends XrCompositionLayerBaseHeader 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 */ #define XR_FB_render_model 1 #define XR_NULL_RENDER_MODEL_KEY_FB 0 XR_DEFINE_ATOM(XrRenderModelKeyFB) #define XR_FB_render_model_SPEC_VERSION 3 #define XR_FB_RENDER_MODEL_EXTENSION_NAME "XR_FB_render_model" #define XR_MAX_RENDER_MODEL_NAME_SIZE_FB 64 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 XrSystemProperties 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 */ #define XR_VARJO_foveated_rendering 1 #define XR_VARJO_foveated_rendering_SPEC_VERSION 2 #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; #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; #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 */ #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 enabled); 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 enabled); 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 */ #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 */ #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" #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 spatialAnchorNamesCapacityInput, uint32_t* spatialAnchorNamesCountOutput, XrSpatialAnchorPersistenceNameMSFT* persistedAnchorNames); 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 spatialAnchorNamesCapacityInput, uint32_t* spatialAnchorNamesCountOutput, XrSpatialAnchorPersistenceNameMSFT* persistedAnchorNames); 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 */ #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; #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_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 */ #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 */ #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; #define XR_FB_scene 1 #define XR_FB_scene_SPEC_VERSION 1 #define XR_FB_SCENE_EXTENSION_NAME "XR_FB_scene" typedef struct XrExtent3DfFB { float width; float height; float depth; } 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; 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 */ #define XR_EXT_palm_pose 1 #define XR_EXT_palm_pose_SPEC_VERSION 2 #define XR_EXT_PALM_POSE_EXTENSION_NAME "XR_EXT_palm_pose" #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 */ #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 */ #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 */ #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; // XrCompositionLayerSettingsFB extends XrCompositionLayerBaseHeader typedef struct XrCompositionLayerSettingsFB { XrStructureType type; const void* XR_MAY_ALIAS next; XrCompositionLayerSettingsFlagsFB layerFlags; } XrCompositionLayerSettingsFB; #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 */ #define XR_META_headset_id 1 #define XR_META_headset_id_SPEC_VERSION 1 #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; #define XR_EXT_uuid 1 #define XR_EXT_uuid_SPEC_VERSION 1 #define XR_EXT_UUID_EXTENSION_NAME "XR_EXT_uuid" #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 */ #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 */ #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; #ifdef __cplusplus } #endif #endif