8096 lines
354 KiB
C++
8096 lines
354 KiB
C++
#ifndef OPENXR_H_
|
|
#define OPENXR_H_ 1
|
|
|
|
/*
|
|
** Copyright 2017-2024, The Khronos Group Inc.
|
|
**
|
|
** SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
*/
|
|
|
|
/*
|
|
** This header is generated from the Khronos OpenXR XML API Registry.
|
|
**
|
|
*/
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
|
|
// XR_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VERSION_1_0 1
|
|
#include "openxr_platform_defines.h"
|
|
#define XR_MAKE_VERSION(major, minor, patch) \
|
|
((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))
|
|
|
|
// OpenXR current version number.
|
|
#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 41)
|
|
|
|
// OpenXR 1.0 version number
|
|
#define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
|
|
|
|
#define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL)
|
|
#define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL)
|
|
#define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL)
|
|
|
|
#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16
|
|
|
|
|
|
#if !defined(XR_NULL_HANDLE)
|
|
#if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED
|
|
#define XR_NULL_HANDLE nullptr
|
|
#else
|
|
#define XR_NULL_HANDLE 0
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#define XR_NULL_SYSTEM_ID 0
|
|
|
|
|
|
#define XR_NULL_PATH 0
|
|
|
|
|
|
#define XR_SUCCEEDED(result) ((result) >= 0)
|
|
|
|
|
|
#define XR_FAILED(result) ((result) < 0)
|
|
|
|
|
|
#define XR_UNQUALIFIED_SUCCESS(result) ((result) == 0)
|
|
|
|
|
|
#define XR_NO_DURATION 0
|
|
|
|
|
|
#define XR_INFINITE_DURATION 0x7fffffffffffffffLL
|
|
|
|
|
|
#define XR_MIN_HAPTIC_DURATION -1
|
|
|
|
|
|
#define XR_FREQUENCY_UNSPECIFIED 0
|
|
|
|
|
|
#define XR_MAX_EVENT_DATA_SIZE sizeof(XrEventDataBuffer)
|
|
|
|
|
|
#define XR_EXTENSION_ENUM_BASE 1000000000
|
|
|
|
|
|
#define XR_EXTENSION_ENUM_STRIDE 1000
|
|
|
|
|
|
#if !defined(XR_MAY_ALIAS)
|
|
#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4))
|
|
#define XR_MAY_ALIAS __attribute__((__may_alias__))
|
|
#else
|
|
#define XR_MAY_ALIAS
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#if !defined(XR_DEFINE_HANDLE)
|
|
#if (XR_PTR_SIZE == 8)
|
|
#define XR_DEFINE_HANDLE(object) typedef struct object##_T* object;
|
|
#else
|
|
#define XR_DEFINE_HANDLE(object) typedef uint64_t object;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#if !defined(XR_DEFINE_OPAQUE_64)
|
|
#if (XR_PTR_SIZE == 8)
|
|
#define XR_DEFINE_OPAQUE_64(object) typedef struct object##_T* object;
|
|
#else
|
|
#define XR_DEFINE_OPAQUE_64(object) typedef uint64_t object;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#if !defined(XR_DEFINE_ATOM)
|
|
#define XR_DEFINE_ATOM(object) typedef uint64_t object;
|
|
#endif
|
|
|
|
typedef uint64_t XrVersion;
|
|
typedef uint64_t XrFlags64;
|
|
XR_DEFINE_ATOM(XrSystemId)
|
|
typedef uint32_t XrBool32;
|
|
XR_DEFINE_ATOM(XrPath)
|
|
typedef int64_t XrTime;
|
|
typedef int64_t XrDuration;
|
|
XR_DEFINE_HANDLE(XrInstance)
|
|
XR_DEFINE_HANDLE(XrSession)
|
|
XR_DEFINE_HANDLE(XrSpace)
|
|
XR_DEFINE_HANDLE(XrAction)
|
|
XR_DEFINE_HANDLE(XrSwapchain)
|
|
XR_DEFINE_HANDLE(XrActionSet)
|
|
#define XR_TRUE 1
|
|
#define XR_FALSE 0
|
|
#define XR_MAX_EXTENSION_NAME_SIZE 128
|
|
#define XR_MAX_API_LAYER_NAME_SIZE 256
|
|
#define XR_MAX_API_LAYER_DESCRIPTION_SIZE 256
|
|
#define XR_MAX_SYSTEM_NAME_SIZE 256
|
|
#define XR_MAX_APPLICATION_NAME_SIZE 128
|
|
#define XR_MAX_ENGINE_NAME_SIZE 128
|
|
#define XR_MAX_RUNTIME_NAME_SIZE 128
|
|
#define XR_MAX_PATH_LENGTH 256
|
|
#define XR_MAX_STRUCTURE_NAME_SIZE 64
|
|
#define XR_MAX_RESULT_STRING_SIZE 64
|
|
#define XR_MAX_ACTION_SET_NAME_SIZE 64
|
|
#define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE 128
|
|
#define XR_MAX_ACTION_NAME_SIZE 64
|
|
#define XR_MAX_LOCALIZED_ACTION_NAME_SIZE 128
|
|
|
|
typedef enum XrResult {
|
|
XR_SUCCESS = 0,
|
|
XR_TIMEOUT_EXPIRED = 1,
|
|
XR_SESSION_LOSS_PENDING = 3,
|
|
XR_EVENT_UNAVAILABLE = 4,
|
|
XR_SPACE_BOUNDS_UNAVAILABLE = 7,
|
|
XR_SESSION_NOT_FOCUSED = 8,
|
|
XR_FRAME_DISCARDED = 9,
|
|
XR_ERROR_VALIDATION_FAILURE = -1,
|
|
XR_ERROR_RUNTIME_FAILURE = -2,
|
|
XR_ERROR_OUT_OF_MEMORY = -3,
|
|
XR_ERROR_API_VERSION_UNSUPPORTED = -4,
|
|
XR_ERROR_INITIALIZATION_FAILED = -6,
|
|
XR_ERROR_FUNCTION_UNSUPPORTED = -7,
|
|
XR_ERROR_FEATURE_UNSUPPORTED = -8,
|
|
XR_ERROR_EXTENSION_NOT_PRESENT = -9,
|
|
XR_ERROR_LIMIT_REACHED = -10,
|
|
XR_ERROR_SIZE_INSUFFICIENT = -11,
|
|
XR_ERROR_HANDLE_INVALID = -12,
|
|
XR_ERROR_INSTANCE_LOST = -13,
|
|
XR_ERROR_SESSION_RUNNING = -14,
|
|
XR_ERROR_SESSION_NOT_RUNNING = -16,
|
|
XR_ERROR_SESSION_LOST = -17,
|
|
XR_ERROR_SYSTEM_INVALID = -18,
|
|
XR_ERROR_PATH_INVALID = -19,
|
|
XR_ERROR_PATH_COUNT_EXCEEDED = -20,
|
|
XR_ERROR_PATH_FORMAT_INVALID = -21,
|
|
XR_ERROR_PATH_UNSUPPORTED = -22,
|
|
XR_ERROR_LAYER_INVALID = -23,
|
|
XR_ERROR_LAYER_LIMIT_EXCEEDED = -24,
|
|
XR_ERROR_SWAPCHAIN_RECT_INVALID = -25,
|
|
XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26,
|
|
XR_ERROR_ACTION_TYPE_MISMATCH = -27,
|
|
XR_ERROR_SESSION_NOT_READY = -28,
|
|
XR_ERROR_SESSION_NOT_STOPPING = -29,
|
|
XR_ERROR_TIME_INVALID = -30,
|
|
XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31,
|
|
XR_ERROR_FILE_ACCESS_ERROR = -32,
|
|
XR_ERROR_FILE_CONTENTS_INVALID = -33,
|
|
XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34,
|
|
XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35,
|
|
XR_ERROR_API_LAYER_NOT_PRESENT = -36,
|
|
XR_ERROR_CALL_ORDER_INVALID = -37,
|
|
XR_ERROR_GRAPHICS_DEVICE_INVALID = -38,
|
|
XR_ERROR_POSE_INVALID = -39,
|
|
XR_ERROR_INDEX_OUT_OF_RANGE = -40,
|
|
XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41,
|
|
XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42,
|
|
XR_ERROR_NAME_DUPLICATED = -44,
|
|
XR_ERROR_NAME_INVALID = -45,
|
|
XR_ERROR_ACTIONSET_NOT_ATTACHED = -46,
|
|
XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47,
|
|
XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48,
|
|
XR_ERROR_LOCALIZED_NAME_INVALID = -49,
|
|
XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50,
|
|
XR_ERROR_RUNTIME_UNAVAILABLE = -51,
|
|
XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED = -1000710001,
|
|
XR_ERROR_PERMISSION_INSUFFICIENT = -1000710000,
|
|
XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000,
|
|
XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001,
|
|
XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001,
|
|
XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000,
|
|
XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000,
|
|
XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000,
|
|
XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000,
|
|
XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001,
|
|
XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002,
|
|
XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003,
|
|
XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004,
|
|
XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005,
|
|
XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000,
|
|
XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000,
|
|
XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB = -1000113000,
|
|
XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB = -1000113001,
|
|
XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB = -1000113002,
|
|
XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB = -1000113003,
|
|
XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB = -1000118000,
|
|
XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB = -1000118001,
|
|
XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB = -1000118002,
|
|
XR_ERROR_NOT_PERMITTED_PASSTHROUGH_FB = -1000118003,
|
|
XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB = -1000118004,
|
|
XR_ERROR_UNKNOWN_PASSTHROUGH_FB = -1000118050,
|
|
XR_ERROR_RENDER_MODEL_KEY_INVALID_FB = -1000119000,
|
|
XR_RENDER_MODEL_UNAVAILABLE_FB = 1000119020,
|
|
XR_ERROR_MARKER_NOT_TRACKED_VARJO = -1000124000,
|
|
XR_ERROR_MARKER_ID_INVALID_VARJO = -1000124001,
|
|
XR_ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML = -1000138000,
|
|
XR_ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML = -1000138001,
|
|
XR_ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML = -1000138002,
|
|
XR_ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML = -1000138003,
|
|
XR_ERROR_MARKER_INVALID_ML = -1000138004,
|
|
XR_ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML = -1000139000,
|
|
XR_ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML = -1000139001,
|
|
XR_ERROR_LOCALIZATION_MAP_FAIL_ML = -1000139002,
|
|
XR_ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML = -1000139003,
|
|
XR_ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML = -1000139004,
|
|
XR_ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML = -1000139005,
|
|
XR_ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML = -1000139006,
|
|
XR_ERROR_SPATIAL_ANCHORS_PERMISSION_DENIED_ML = -1000140000,
|
|
XR_ERROR_SPATIAL_ANCHORS_NOT_LOCALIZED_ML = -1000140001,
|
|
XR_ERROR_SPATIAL_ANCHORS_OUT_OF_MAP_BOUNDS_ML = -1000140002,
|
|
XR_ERROR_SPATIAL_ANCHORS_SPACE_NOT_LOCATABLE_ML = -1000140003,
|
|
XR_ERROR_SPATIAL_ANCHORS_ANCHOR_NOT_FOUND_ML = -1000141000,
|
|
XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001,
|
|
XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002,
|
|
XR_SCENE_MARKER_DATA_NOT_STRING_MSFT = 1000147000,
|
|
XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB = -1000169000,
|
|
XR_ERROR_SPACE_LOCALIZATION_FAILED_FB = -1000169001,
|
|
XR_ERROR_SPACE_NETWORK_TIMEOUT_FB = -1000169002,
|
|
XR_ERROR_SPACE_NETWORK_REQUEST_FAILED_FB = -1000169003,
|
|
XR_ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB = -1000169004,
|
|
XR_ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META = -1000266000,
|
|
XR_ENVIRONMENT_DEPTH_NOT_AVAILABLE_META = 1000291000,
|
|
XR_ERROR_HINT_ALREADY_SET_QCOM = -1000306000,
|
|
XR_ERROR_NOT_AN_ANCHOR_HTC = -1000319000,
|
|
XR_ERROR_SPACE_NOT_LOCATABLE_EXT = -1000429000,
|
|
XR_ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT = -1000429001,
|
|
XR_ERROR_FUTURE_PENDING_EXT = -1000469001,
|
|
XR_ERROR_FUTURE_INVALID_EXT = -1000469002,
|
|
XR_ERROR_SYSTEM_NOTIFICATION_PERMISSION_DENIED_ML = -1000473000,
|
|
XR_ERROR_SYSTEM_NOTIFICATION_INCOMPATIBLE_SKU_ML = -1000473001,
|
|
XR_ERROR_WORLD_MESH_DETECTOR_PERMISSION_DENIED_ML = -1000474000,
|
|
XR_ERROR_WORLD_MESH_DETECTOR_SPACE_NOT_LOCATABLE_ML = -1000474001,
|
|
XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR = XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED,
|
|
XR_ERROR_PERMISSION_INSUFFICIENT_KHR = XR_ERROR_PERMISSION_INSUFFICIENT,
|
|
XR_RESULT_MAX_ENUM = 0x7FFFFFFF
|
|
} XrResult;
|
|
|
|
typedef enum XrStructureType {
|
|
XR_TYPE_UNKNOWN = 0,
|
|
XR_TYPE_API_LAYER_PROPERTIES = 1,
|
|
XR_TYPE_EXTENSION_PROPERTIES = 2,
|
|
XR_TYPE_INSTANCE_CREATE_INFO = 3,
|
|
XR_TYPE_SYSTEM_GET_INFO = 4,
|
|
XR_TYPE_SYSTEM_PROPERTIES = 5,
|
|
XR_TYPE_VIEW_LOCATE_INFO = 6,
|
|
XR_TYPE_VIEW = 7,
|
|
XR_TYPE_SESSION_CREATE_INFO = 8,
|
|
XR_TYPE_SWAPCHAIN_CREATE_INFO = 9,
|
|
XR_TYPE_SESSION_BEGIN_INFO = 10,
|
|
XR_TYPE_VIEW_STATE = 11,
|
|
XR_TYPE_FRAME_END_INFO = 12,
|
|
XR_TYPE_HAPTIC_VIBRATION = 13,
|
|
XR_TYPE_EVENT_DATA_BUFFER = 16,
|
|
XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17,
|
|
XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18,
|
|
XR_TYPE_ACTION_STATE_BOOLEAN = 23,
|
|
XR_TYPE_ACTION_STATE_FLOAT = 24,
|
|
XR_TYPE_ACTION_STATE_VECTOR2F = 25,
|
|
XR_TYPE_ACTION_STATE_POSE = 27,
|
|
XR_TYPE_ACTION_SET_CREATE_INFO = 28,
|
|
XR_TYPE_ACTION_CREATE_INFO = 29,
|
|
XR_TYPE_INSTANCE_PROPERTIES = 32,
|
|
XR_TYPE_FRAME_WAIT_INFO = 33,
|
|
XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35,
|
|
XR_TYPE_COMPOSITION_LAYER_QUAD = 36,
|
|
XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37,
|
|
XR_TYPE_ACTION_SPACE_CREATE_INFO = 38,
|
|
XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40,
|
|
XR_TYPE_VIEW_CONFIGURATION_VIEW = 41,
|
|
XR_TYPE_SPACE_LOCATION = 42,
|
|
XR_TYPE_SPACE_VELOCITY = 43,
|
|
XR_TYPE_FRAME_STATE = 44,
|
|
XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45,
|
|
XR_TYPE_FRAME_BEGIN_INFO = 46,
|
|
XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48,
|
|
XR_TYPE_EVENT_DATA_EVENTS_LOST = 49,
|
|
XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51,
|
|
XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52,
|
|
XR_TYPE_INTERACTION_PROFILE_STATE = 53,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57,
|
|
XR_TYPE_ACTION_STATE_GET_INFO = 58,
|
|
XR_TYPE_HAPTIC_ACTION_INFO = 59,
|
|
XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO = 60,
|
|
XR_TYPE_ACTIONS_SYNC_INFO = 61,
|
|
XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO = 62,
|
|
XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO = 63,
|
|
XR_TYPE_SPACES_LOCATE_INFO = 1000471000,
|
|
XR_TYPE_SPACE_LOCATIONS = 1000471001,
|
|
XR_TYPE_SPACE_VELOCITIES = 1000471002,
|
|
XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000,
|
|
XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000,
|
|
XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000,
|
|
XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000,
|
|
XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000,
|
|
XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000,
|
|
XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000,
|
|
XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000,
|
|
XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001,
|
|
XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002,
|
|
XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003,
|
|
XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000,
|
|
XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001,
|
|
XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002,
|
|
XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005,
|
|
XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003,
|
|
XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002,
|
|
XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002,
|
|
XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002,
|
|
XR_TYPE_GRAPHICS_BINDING_METAL_KHR = 1000029000,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_METAL_KHR = 1000029001,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_METAL_KHR = 1000029002,
|
|
XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT = 1000030000,
|
|
XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT = 1000030001,
|
|
XR_TYPE_VISIBILITY_MASK_KHR = 1000031000,
|
|
XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001,
|
|
XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX = 1000033000,
|
|
XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX = 1000033003,
|
|
XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR = 1000034000,
|
|
XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000,
|
|
XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001,
|
|
XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB = 1000040000,
|
|
XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB = 1000041001,
|
|
XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000,
|
|
XR_TYPE_GRAPHICS_BINDING_EGL_MNDX = 1000048004,
|
|
XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000,
|
|
XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT = 1000049001,
|
|
XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT = 1000049002,
|
|
XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT = 1000049003,
|
|
XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000,
|
|
XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT = 1000051001,
|
|
XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT = 1000051002,
|
|
XR_TYPE_HAND_JOINT_LOCATIONS_EXT = 1000051003,
|
|
XR_TYPE_HAND_JOINT_VELOCITIES_EXT = 1000051004,
|
|
XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT = 1000052000,
|
|
XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT = 1000052001,
|
|
XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT = 1000052002,
|
|
XR_TYPE_HAND_MESH_MSFT = 1000052003,
|
|
XR_TYPE_HAND_POSE_TYPE_INFO_MSFT = 1000052004,
|
|
XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT = 1000053000,
|
|
XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT = 1000053001,
|
|
XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT = 1000053002,
|
|
XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT = 1000053003,
|
|
XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT = 1000053004,
|
|
XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT = 1000053005,
|
|
XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT = 1000055000,
|
|
XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT = 1000055001,
|
|
XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT = 1000055002,
|
|
XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT = 1000055003,
|
|
XR_TYPE_CONTROLLER_MODEL_STATE_MSFT = 1000055004,
|
|
XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC = 1000059000,
|
|
XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT = 1000063000,
|
|
XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT = 1000066000,
|
|
XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001,
|
|
XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB = 1000070000,
|
|
XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB = 1000072000,
|
|
XR_TYPE_BODY_TRACKER_CREATE_INFO_FB = 1000076001,
|
|
XR_TYPE_BODY_JOINTS_LOCATE_INFO_FB = 1000076002,
|
|
XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_FB = 1000076004,
|
|
XR_TYPE_BODY_JOINT_LOCATIONS_FB = 1000076005,
|
|
XR_TYPE_BODY_SKELETON_FB = 1000076006,
|
|
XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT = 1000078000,
|
|
XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000,
|
|
XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000,
|
|
XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR = 1000089000,
|
|
XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000,
|
|
XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR = 1000090001,
|
|
XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR = 1000090003,
|
|
XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR = 1000091000,
|
|
XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT = 1000097000,
|
|
XR_TYPE_SCENE_CREATE_INFO_MSFT = 1000097001,
|
|
XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT = 1000097002,
|
|
XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT = 1000097003,
|
|
XR_TYPE_SCENE_COMPONENTS_MSFT = 1000097004,
|
|
XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT = 1000097005,
|
|
XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT = 1000097006,
|
|
XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT = 1000097007,
|
|
XR_TYPE_SCENE_OBJECTS_MSFT = 1000097008,
|
|
XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT = 1000097009,
|
|
XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT = 1000097010,
|
|
XR_TYPE_SCENE_PLANES_MSFT = 1000097011,
|
|
XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT = 1000097012,
|
|
XR_TYPE_SCENE_MESHES_MSFT = 1000097013,
|
|
XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT = 1000097014,
|
|
XR_TYPE_SCENE_MESH_BUFFERS_MSFT = 1000097015,
|
|
XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT = 1000097016,
|
|
XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT = 1000097017,
|
|
XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT = 1000097018,
|
|
XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT = 1000098000,
|
|
XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT = 1000098001,
|
|
XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB = 1000101000,
|
|
XR_TYPE_VIVE_TRACKER_PATHS_HTCX = 1000103000,
|
|
XR_TYPE_EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX = 1000103001,
|
|
XR_TYPE_SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC = 1000104000,
|
|
XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC = 1000104001,
|
|
XR_TYPE_FACIAL_EXPRESSIONS_HTC = 1000104002,
|
|
XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB = 1000108000,
|
|
XR_TYPE_HAND_TRACKING_MESH_FB = 1000110001,
|
|
XR_TYPE_HAND_TRACKING_SCALE_FB = 1000110003,
|
|
XR_TYPE_HAND_TRACKING_AIM_STATE_FB = 1000111001,
|
|
XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB = 1000112000,
|
|
XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB = 1000113004,
|
|
XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB = 1000113003,
|
|
XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB = 1000113007,
|
|
XR_TYPE_SPACE_COMPONENT_STATUS_FB = 1000113001,
|
|
XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB = 1000113005,
|
|
XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB = 1000113006,
|
|
XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB = 1000114000,
|
|
XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB = 1000114001,
|
|
XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB = 1000114002,
|
|
XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB = 1000115000,
|
|
XR_TYPE_KEYBOARD_SPACE_CREATE_INFO_FB = 1000116009,
|
|
XR_TYPE_KEYBOARD_TRACKING_QUERY_FB = 1000116004,
|
|
XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB = 1000116002,
|
|
XR_TYPE_TRIANGLE_MESH_CREATE_INFO_FB = 1000117001,
|
|
XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB = 1000118000,
|
|
XR_TYPE_PASSTHROUGH_CREATE_INFO_FB = 1000118001,
|
|
XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_FB = 1000118002,
|
|
XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB = 1000118003,
|
|
XR_TYPE_GEOMETRY_INSTANCE_CREATE_INFO_FB = 1000118004,
|
|
XR_TYPE_GEOMETRY_INSTANCE_TRANSFORM_FB = 1000118005,
|
|
XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES2_FB = 1000118006,
|
|
XR_TYPE_PASSTHROUGH_STYLE_FB = 1000118020,
|
|
XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB = 1000118021,
|
|
XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB = 1000118022,
|
|
XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB = 1000118023,
|
|
XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB = 1000118030,
|
|
XR_TYPE_RENDER_MODEL_PATH_INFO_FB = 1000119000,
|
|
XR_TYPE_RENDER_MODEL_PROPERTIES_FB = 1000119001,
|
|
XR_TYPE_RENDER_MODEL_BUFFER_FB = 1000119002,
|
|
XR_TYPE_RENDER_MODEL_LOAD_INFO_FB = 1000119003,
|
|
XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB = 1000119004,
|
|
XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB = 1000119005,
|
|
XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000,
|
|
XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO = 1000121000,
|
|
XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO = 1000121001,
|
|
XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO = 1000121002,
|
|
XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO = 1000122000,
|
|
XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO = 1000124000,
|
|
XR_TYPE_EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO = 1000124001,
|
|
XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO = 1000124002,
|
|
XR_TYPE_FRAME_END_INFO_ML = 1000135000,
|
|
XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML = 1000136000,
|
|
XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML = 1000137000,
|
|
XR_TYPE_SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML = 1000138000,
|
|
XR_TYPE_MARKER_DETECTOR_CREATE_INFO_ML = 1000138001,
|
|
XR_TYPE_MARKER_DETECTOR_ARUCO_INFO_ML = 1000138002,
|
|
XR_TYPE_MARKER_DETECTOR_SIZE_INFO_ML = 1000138003,
|
|
XR_TYPE_MARKER_DETECTOR_APRIL_TAG_INFO_ML = 1000138004,
|
|
XR_TYPE_MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML = 1000138005,
|
|
XR_TYPE_MARKER_DETECTOR_SNAPSHOT_INFO_ML = 1000138006,
|
|
XR_TYPE_MARKER_DETECTOR_STATE_ML = 1000138007,
|
|
XR_TYPE_MARKER_SPACE_CREATE_INFO_ML = 1000138008,
|
|
XR_TYPE_LOCALIZATION_MAP_ML = 1000139000,
|
|
XR_TYPE_EVENT_DATA_LOCALIZATION_CHANGED_ML = 1000139001,
|
|
XR_TYPE_MAP_LOCALIZATION_REQUEST_INFO_ML = 1000139002,
|
|
XR_TYPE_LOCALIZATION_MAP_IMPORT_INFO_ML = 1000139003,
|
|
XR_TYPE_LOCALIZATION_ENABLE_EVENTS_INFO_ML = 1000139004,
|
|
XR_TYPE_SPATIAL_ANCHORS_CREATE_INFO_FROM_POSE_ML = 1000140000,
|
|
XR_TYPE_CREATE_SPATIAL_ANCHORS_COMPLETION_ML = 1000140001,
|
|
XR_TYPE_SPATIAL_ANCHOR_STATE_ML = 1000140002,
|
|
XR_TYPE_SPATIAL_ANCHORS_CREATE_STORAGE_INFO_ML = 1000141000,
|
|
XR_TYPE_SPATIAL_ANCHORS_QUERY_INFO_RADIUS_ML = 1000141001,
|
|
XR_TYPE_SPATIAL_ANCHORS_QUERY_COMPLETION_ML = 1000141002,
|
|
XR_TYPE_SPATIAL_ANCHORS_CREATE_INFO_FROM_UUIDS_ML = 1000141003,
|
|
XR_TYPE_SPATIAL_ANCHORS_PUBLISH_INFO_ML = 1000141004,
|
|
XR_TYPE_SPATIAL_ANCHORS_PUBLISH_COMPLETION_ML = 1000141005,
|
|
XR_TYPE_SPATIAL_ANCHORS_DELETE_INFO_ML = 1000141006,
|
|
XR_TYPE_SPATIAL_ANCHORS_DELETE_COMPLETION_ML = 1000141007,
|
|
XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_INFO_ML = 1000141008,
|
|
XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_COMPLETION_ML = 1000141009,
|
|
XR_TYPE_SPATIAL_ANCHORS_PUBLISH_COMPLETION_DETAILS_ML = 1000141010,
|
|
XR_TYPE_SPATIAL_ANCHORS_DELETE_COMPLETION_DETAILS_ML = 1000141011,
|
|
XR_TYPE_SPATIAL_ANCHORS_UPDATE_EXPIRATION_COMPLETION_DETAILS_ML = 1000141012,
|
|
XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML = 1000472000,
|
|
XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML = 1000472001,
|
|
XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML = 1000472002,
|
|
XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000,
|
|
XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001,
|
|
XR_TYPE_SCENE_MARKERS_MSFT = 1000147000,
|
|
XR_TYPE_SCENE_MARKER_TYPE_FILTER_MSFT = 1000147001,
|
|
XR_TYPE_SCENE_MARKER_QR_CODES_MSFT = 1000147002,
|
|
XR_TYPE_SPACE_QUERY_INFO_FB = 1000156001,
|
|
XR_TYPE_SPACE_QUERY_RESULTS_FB = 1000156002,
|
|
XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB = 1000156003,
|
|
XR_TYPE_SPACE_UUID_FILTER_INFO_FB = 1000156054,
|
|
XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB = 1000156052,
|
|
XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB = 1000156103,
|
|
XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB = 1000156104,
|
|
XR_TYPE_SPACE_SAVE_INFO_FB = 1000158000,
|
|
XR_TYPE_SPACE_ERASE_INFO_FB = 1000158001,
|
|
XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB = 1000158106,
|
|
XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB = 1000158107,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB = 1000160000,
|
|
XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB = 1000161000,
|
|
XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB = 1000162000,
|
|
XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB = 1000163000,
|
|
XR_TYPE_SPACE_SHARE_INFO_FB = 1000169001,
|
|
XR_TYPE_EVENT_DATA_SPACE_SHARE_COMPLETE_FB = 1000169002,
|
|
XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000,
|
|
XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001,
|
|
XR_TYPE_HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB = 1000173001,
|
|
XR_TYPE_SEMANTIC_LABELS_FB = 1000175000,
|
|
XR_TYPE_ROOM_LAYOUT_FB = 1000175001,
|
|
XR_TYPE_BOUNDARY_2D_FB = 1000175002,
|
|
XR_TYPE_SEMANTIC_LABELS_SUPPORT_INFO_FB = 1000175010,
|
|
XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE = 1000196000,
|
|
XR_TYPE_EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB = 1000198001,
|
|
XR_TYPE_SCENE_CAPTURE_REQUEST_INFO_FB = 1000198050,
|
|
XR_TYPE_SPACE_CONTAINER_FB = 1000199000,
|
|
XR_TYPE_FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META = 1000200000,
|
|
XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META = 1000200001,
|
|
XR_TYPE_SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META = 1000200002,
|
|
XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_FB = 1000201004,
|
|
XR_TYPE_FACE_TRACKER_CREATE_INFO_FB = 1000201005,
|
|
XR_TYPE_FACE_EXPRESSION_INFO_FB = 1000201002,
|
|
XR_TYPE_FACE_EXPRESSION_WEIGHTS_FB = 1000201006,
|
|
XR_TYPE_EYE_TRACKER_CREATE_INFO_FB = 1000202001,
|
|
XR_TYPE_EYE_GAZES_INFO_FB = 1000202002,
|
|
XR_TYPE_EYE_GAZES_FB = 1000202003,
|
|
XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_FB = 1000202004,
|
|
XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB = 1000203002,
|
|
XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB = 1000204000,
|
|
XR_TYPE_HAPTIC_PCM_VIBRATION_FB = 1000209001,
|
|
XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB = 1000209002,
|
|
XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB = 1000212000,
|
|
XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META = 1000216000,
|
|
XR_TYPE_PASSTHROUGH_PREFERENCES_META = 1000217000,
|
|
XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META = 1000219001,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META = 1000219002,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META = 1000219003,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_LOCATION_INFO_META = 1000219004,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META = 1000219005,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_ANIMATION_STATE_META = 1000219006,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META = 1000219007,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_TEXTURE_DATA_META = 1000219009,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_INPUT_INFO_META = 1000219010,
|
|
XR_TYPE_VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META = 1000219011,
|
|
XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META = 1000219014,
|
|
XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META = 1000219015,
|
|
XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META = 1000219016,
|
|
XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META = 1000219017,
|
|
XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META = 1000219018,
|
|
XR_TYPE_EXTERNAL_CAMERA_OCULUS = 1000226000,
|
|
XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000,
|
|
XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001,
|
|
XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002,
|
|
XR_TYPE_SPACE_LIST_SAVE_INFO_FB = 1000238000,
|
|
XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB = 1000238001,
|
|
XR_TYPE_SPACE_USER_CREATE_INFO_FB = 1000241001,
|
|
XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META = 1000245000,
|
|
XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META = 1000254000,
|
|
XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META = 1000254001,
|
|
XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META = 1000266000,
|
|
XR_TYPE_PASSTHROUGH_COLOR_LUT_CREATE_INFO_META = 1000266001,
|
|
XR_TYPE_PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META = 1000266002,
|
|
XR_TYPE_PASSTHROUGH_COLOR_MAP_LUT_META = 1000266100,
|
|
XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META = 1000266101,
|
|
XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META = 1000269001,
|
|
XR_TYPE_SPACE_TRIANGLE_MESH_META = 1000269002,
|
|
XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB = 1000287013,
|
|
XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB = 1000287014,
|
|
XR_TYPE_FACE_EXPRESSION_INFO2_FB = 1000287015,
|
|
XR_TYPE_FACE_EXPRESSION_WEIGHTS2_FB = 1000287016,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META = 1000291000,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META = 1000291001,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META = 1000291002,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META = 1000291003,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META = 1000291004,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META = 1000291005,
|
|
XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META = 1000291006,
|
|
XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META = 1000291007,
|
|
XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC = 1000317001,
|
|
XR_TYPE_PASSTHROUGH_COLOR_HTC = 1000317002,
|
|
XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC = 1000317003,
|
|
XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004,
|
|
XR_TYPE_FOVEATION_APPLY_INFO_HTC = 1000318000,
|
|
XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC = 1000318001,
|
|
XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC = 1000318002,
|
|
XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC = 1000319000,
|
|
XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC = 1000319001,
|
|
XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_HTC = 1000320000,
|
|
XR_TYPE_BODY_TRACKER_CREATE_INFO_HTC = 1000320001,
|
|
XR_TYPE_BODY_JOINTS_LOCATE_INFO_HTC = 1000320002,
|
|
XR_TYPE_BODY_JOINT_LOCATIONS_HTC = 1000320003,
|
|
XR_TYPE_BODY_SKELETON_HTC = 1000320004,
|
|
XR_TYPE_ACTIVE_ACTION_SET_PRIORITIES_EXT = 1000373000,
|
|
XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX = 1000375000,
|
|
XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX = 1000375001,
|
|
XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT = 1000428000,
|
|
XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT = 1000428001,
|
|
XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001,
|
|
XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT = 1000429002,
|
|
XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT = 1000429003,
|
|
XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT = 1000429004,
|
|
XR_TYPE_PLANE_DETECTOR_LOCATION_EXT = 1000429005,
|
|
XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT = 1000429006,
|
|
XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT = 1000429007,
|
|
XR_TYPE_FUTURE_CANCEL_INFO_EXT = 1000469000,
|
|
XR_TYPE_FUTURE_POLL_INFO_EXT = 1000469001,
|
|
XR_TYPE_FUTURE_COMPLETION_EXT = 1000469002,
|
|
XR_TYPE_FUTURE_POLL_RESULT_EXT = 1000469003,
|
|
XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT = 1000470000,
|
|
XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT = 1000470001,
|
|
XR_TYPE_SYSTEM_NOTIFICATIONS_SET_INFO_ML = 1000473000,
|
|
XR_TYPE_WORLD_MESH_DETECTOR_CREATE_INFO_ML = 1000474001,
|
|
XR_TYPE_WORLD_MESH_STATE_REQUEST_INFO_ML = 1000474002,
|
|
XR_TYPE_WORLD_MESH_BLOCK_STATE_ML = 1000474003,
|
|
XR_TYPE_WORLD_MESH_STATE_REQUEST_COMPLETION_ML = 1000474004,
|
|
XR_TYPE_WORLD_MESH_BUFFER_RECOMMENDED_SIZE_INFO_ML = 1000474005,
|
|
XR_TYPE_WORLD_MESH_BUFFER_SIZE_ML = 1000474006,
|
|
XR_TYPE_WORLD_MESH_BUFFER_ML = 1000474007,
|
|
XR_TYPE_WORLD_MESH_BLOCK_REQUEST_ML = 1000474008,
|
|
XR_TYPE_WORLD_MESH_GET_INFO_ML = 1000474009,
|
|
XR_TYPE_WORLD_MESH_BLOCK_ML = 1000474010,
|
|
XR_TYPE_WORLD_MESH_REQUEST_COMPLETION_ML = 1000474011,
|
|
XR_TYPE_WORLD_MESH_REQUEST_COMPLETION_INFO_ML = 1000474012,
|
|
XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR,
|
|
XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR,
|
|
XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR,
|
|
XR_TYPE_DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB = XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB,
|
|
XR_TYPE_SPACES_LOCATE_INFO_KHR = XR_TYPE_SPACES_LOCATE_INFO,
|
|
XR_TYPE_SPACE_LOCATIONS_KHR = XR_TYPE_SPACE_LOCATIONS,
|
|
XR_TYPE_SPACE_VELOCITIES_KHR = XR_TYPE_SPACE_VELOCITIES,
|
|
XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
} XrStructureType;
|
|
|
|
typedef enum XrFormFactor {
|
|
XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY = 1,
|
|
XR_FORM_FACTOR_HANDHELD_DISPLAY = 2,
|
|
XR_FORM_FACTOR_MAX_ENUM = 0x7FFFFFFF
|
|
} XrFormFactor;
|
|
|
|
typedef enum XrViewConfigurationType {
|
|
XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1,
|
|
XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2,
|
|
XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET = 1000037000,
|
|
XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT = 1000054000,
|
|
XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET,
|
|
XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
} XrViewConfigurationType;
|
|
|
|
typedef enum 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_LOCAL_FLOOR = 1000426000,
|
|
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000,
|
|
XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO = 1000121000,
|
|
XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML = 1000139000,
|
|
XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR_EXT = XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR,
|
|
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_BODY_TRACKER_FB = 1000076000,
|
|
XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000,
|
|
XR_OBJECT_TYPE_SCENE_MSFT = 1000097001,
|
|
XR_OBJECT_TYPE_FACIAL_TRACKER_HTC = 1000104000,
|
|
XR_OBJECT_TYPE_FOVEATION_PROFILE_FB = 1000114000,
|
|
XR_OBJECT_TYPE_TRIANGLE_MESH_FB = 1000117000,
|
|
XR_OBJECT_TYPE_PASSTHROUGH_FB = 1000118000,
|
|
XR_OBJECT_TYPE_PASSTHROUGH_LAYER_FB = 1000118002,
|
|
XR_OBJECT_TYPE_GEOMETRY_INSTANCE_FB = 1000118004,
|
|
XR_OBJECT_TYPE_MARKER_DETECTOR_ML = 1000138000,
|
|
XR_OBJECT_TYPE_EXPORTED_LOCALIZATION_MAP_ML = 1000139000,
|
|
XR_OBJECT_TYPE_SPATIAL_ANCHORS_STORAGE_ML = 1000141000,
|
|
XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT = 1000142000,
|
|
XR_OBJECT_TYPE_FACE_TRACKER_FB = 1000201000,
|
|
XR_OBJECT_TYPE_EYE_TRACKER_FB = 1000202000,
|
|
XR_OBJECT_TYPE_VIRTUAL_KEYBOARD_META = 1000219000,
|
|
XR_OBJECT_TYPE_SPACE_USER_FB = 1000241000,
|
|
XR_OBJECT_TYPE_PASSTHROUGH_COLOR_LUT_META = 1000266000,
|
|
XR_OBJECT_TYPE_FACE_TRACKER2_FB = 1000287012,
|
|
XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_PROVIDER_META = 1000291000,
|
|
XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_META = 1000291001,
|
|
XR_OBJECT_TYPE_PASSTHROUGH_HTC = 1000317000,
|
|
XR_OBJECT_TYPE_BODY_TRACKER_HTC = 1000320000,
|
|
XR_OBJECT_TYPE_PLANE_DETECTOR_EXT = 1000429000,
|
|
XR_OBJECT_TYPE_WORLD_MESH_DETECTOR_ML = 1000474000,
|
|
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;
|
|
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT = 0x00000008;
|
|
|
|
typedef XrFlags64 XrViewStateFlags;
|
|
|
|
// Flag bits for XrViewStateFlags
|
|
static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT = 0x00000001;
|
|
static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT = 0x00000002;
|
|
static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT = 0x00000004;
|
|
static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT = 0x00000008;
|
|
|
|
typedef XrFlags64 XrInputSourceLocalizedNameFlags;
|
|
|
|
// Flag bits for XrInputSourceLocalizedNameFlags
|
|
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001;
|
|
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002;
|
|
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004;
|
|
|
|
typedef void (XRAPI_PTR *PFN_xrVoidFunction)(void);
|
|
typedef struct XrApiLayerProperties {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
char layerName[XR_MAX_API_LAYER_NAME_SIZE];
|
|
XrVersion specVersion;
|
|
uint32_t layerVersion;
|
|
char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE];
|
|
} XrApiLayerProperties;
|
|
|
|
typedef struct XrExtensionProperties {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
char extensionName[XR_MAX_EXTENSION_NAME_SIZE];
|
|
uint32_t extensionVersion;
|
|
} XrExtensionProperties;
|
|
|
|
typedef struct XrApplicationInfo {
|
|
char applicationName[XR_MAX_APPLICATION_NAME_SIZE];
|
|
uint32_t applicationVersion;
|
|
char engineName[XR_MAX_ENGINE_NAME_SIZE];
|
|
uint32_t engineVersion;
|
|
XrVersion apiVersion;
|
|
} XrApplicationInfo;
|
|
|
|
typedef struct XrInstanceCreateInfo {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrInstanceCreateFlags createFlags;
|
|
XrApplicationInfo applicationInfo;
|
|
uint32_t enabledApiLayerCount;
|
|
const char* const* enabledApiLayerNames;
|
|
uint32_t enabledExtensionCount;
|
|
const char* const* enabledExtensionNames;
|
|
} XrInstanceCreateInfo;
|
|
|
|
typedef struct XrInstanceProperties {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrVersion runtimeVersion;
|
|
char runtimeName[XR_MAX_RUNTIME_NAME_SIZE];
|
|
} XrInstanceProperties;
|
|
|
|
typedef struct XrEventDataBuffer {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint8_t varying[4000];
|
|
} XrEventDataBuffer;
|
|
|
|
typedef struct XrSystemGetInfo {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFormFactor formFactor;
|
|
} XrSystemGetInfo;
|
|
|
|
typedef struct XrSystemGraphicsProperties {
|
|
uint32_t maxSwapchainImageHeight;
|
|
uint32_t maxSwapchainImageWidth;
|
|
uint32_t maxLayerCount;
|
|
} XrSystemGraphicsProperties;
|
|
|
|
typedef struct XrSystemTrackingProperties {
|
|
XrBool32 orientationTracking;
|
|
XrBool32 positionTracking;
|
|
} XrSystemTrackingProperties;
|
|
|
|
typedef struct XrSystemProperties {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrSystemId systemId;
|
|
uint32_t vendorId;
|
|
char systemName[XR_MAX_SYSTEM_NAME_SIZE];
|
|
XrSystemGraphicsProperties graphicsProperties;
|
|
XrSystemTrackingProperties trackingProperties;
|
|
} XrSystemProperties;
|
|
|
|
typedef struct XrSessionCreateInfo {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSessionCreateFlags createFlags;
|
|
XrSystemId systemId;
|
|
} XrSessionCreateInfo;
|
|
|
|
typedef struct 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 */
|
|
|
|
|
|
// XR_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VERSION_1_1 1
|
|
// OpenXR 1.1 version number
|
|
#define XR_API_VERSION_1_1 XR_MAKE_VERSION(1, 1, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
|
|
|
|
#define XR_UUID_SIZE 16
|
|
typedef struct XrColor3f {
|
|
float r;
|
|
float g;
|
|
float b;
|
|
} XrColor3f;
|
|
|
|
typedef struct XrExtent3Df {
|
|
float width;
|
|
float height;
|
|
float depth;
|
|
} XrExtent3Df;
|
|
|
|
typedef struct XrSpheref {
|
|
XrPosef center;
|
|
float radius;
|
|
} XrSpheref;
|
|
|
|
typedef struct XrBoxf {
|
|
XrPosef center;
|
|
XrExtent3Df extents;
|
|
} XrBoxf;
|
|
|
|
typedef struct XrFrustumf {
|
|
XrPosef pose;
|
|
XrFovf fov;
|
|
float nearZ;
|
|
float farZ;
|
|
} XrFrustumf;
|
|
|
|
typedef struct XrUuid {
|
|
uint8_t data[XR_UUID_SIZE];
|
|
} XrUuid;
|
|
|
|
typedef struct XrSpacesLocateInfo {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
uint32_t spaceCount;
|
|
const XrSpace* spaces;
|
|
} XrSpacesLocateInfo;
|
|
|
|
typedef struct XrSpaceLocationData {
|
|
XrSpaceLocationFlags locationFlags;
|
|
XrPosef pose;
|
|
} XrSpaceLocationData;
|
|
|
|
typedef struct XrSpaceLocations {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t locationCount;
|
|
XrSpaceLocationData* locations;
|
|
} XrSpaceLocations;
|
|
|
|
typedef struct XrSpaceVelocityData {
|
|
XrSpaceVelocityFlags velocityFlags;
|
|
XrVector3f linearVelocity;
|
|
XrVector3f angularVelocity;
|
|
} XrSpaceVelocityData;
|
|
|
|
// XrSpaceVelocities extends XrSpaceLocations
|
|
typedef struct XrSpaceVelocities {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t velocityCount;
|
|
XrSpaceVelocityData* velocities;
|
|
} XrSpaceVelocities;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLocateSpaces)(XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpaces(
|
|
XrSession session,
|
|
const XrSpacesLocateInfo* locateInfo,
|
|
XrSpaceLocations* spaceLocations);
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_KHR_composition_layer_cube is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_composition_layer_cube 1
|
|
#define XR_KHR_composition_layer_cube_SPEC_VERSION 8
|
|
#define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME "XR_KHR_composition_layer_cube"
|
|
typedef struct XrCompositionLayerCubeKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerFlags layerFlags;
|
|
XrSpace space;
|
|
XrEyeVisibility eyeVisibility;
|
|
XrSwapchain swapchain;
|
|
uint32_t imageArrayIndex;
|
|
XrQuaternionf orientation;
|
|
} XrCompositionLayerCubeKHR;
|
|
|
|
|
|
|
|
// XR_KHR_composition_layer_depth is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_composition_layer_depth 1
|
|
#define XR_KHR_composition_layer_depth_SPEC_VERSION 6
|
|
#define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth"
|
|
// XrCompositionLayerDepthInfoKHR extends XrCompositionLayerProjectionView
|
|
typedef struct XrCompositionLayerDepthInfoKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSwapchainSubImage subImage;
|
|
float minDepth;
|
|
float maxDepth;
|
|
float nearZ;
|
|
float farZ;
|
|
} XrCompositionLayerDepthInfoKHR;
|
|
|
|
|
|
|
|
// XR_KHR_composition_layer_cylinder is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_composition_layer_cylinder 1
|
|
#define XR_KHR_composition_layer_cylinder_SPEC_VERSION 4
|
|
#define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME "XR_KHR_composition_layer_cylinder"
|
|
typedef struct XrCompositionLayerCylinderKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerFlags layerFlags;
|
|
XrSpace space;
|
|
XrEyeVisibility eyeVisibility;
|
|
XrSwapchainSubImage subImage;
|
|
XrPosef pose;
|
|
float radius;
|
|
float centralAngle;
|
|
float aspectRatio;
|
|
} XrCompositionLayerCylinderKHR;
|
|
|
|
|
|
|
|
// XR_KHR_composition_layer_equirect is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_composition_layer_equirect 1
|
|
#define XR_KHR_composition_layer_equirect_SPEC_VERSION 3
|
|
#define XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME "XR_KHR_composition_layer_equirect"
|
|
typedef struct XrCompositionLayerEquirectKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerFlags layerFlags;
|
|
XrSpace space;
|
|
XrEyeVisibility eyeVisibility;
|
|
XrSwapchainSubImage subImage;
|
|
XrPosef pose;
|
|
float radius;
|
|
XrVector2f scale;
|
|
XrVector2f bias;
|
|
} XrCompositionLayerEquirectKHR;
|
|
|
|
|
|
|
|
// XR_KHR_visibility_mask is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_visibility_mask 1
|
|
#define XR_KHR_visibility_mask_SPEC_VERSION 2
|
|
#define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME "XR_KHR_visibility_mask"
|
|
|
|
typedef enum XrVisibilityMaskTypeKHR {
|
|
XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR = 1,
|
|
XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR = 2,
|
|
XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR = 3,
|
|
XR_VISIBILITY_MASK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
} XrVisibilityMaskTypeKHR;
|
|
typedef struct XrVisibilityMaskKHR {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t vertexCapacityInput;
|
|
uint32_t vertexCountOutput;
|
|
XrVector2f* vertices;
|
|
uint32_t indexCapacityInput;
|
|
uint32_t indexCountOutput;
|
|
uint32_t* indices;
|
|
} XrVisibilityMaskKHR;
|
|
|
|
typedef struct XrEventDataVisibilityMaskChangedKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSession session;
|
|
XrViewConfigurationType viewConfigurationType;
|
|
uint32_t viewIndex;
|
|
} XrEventDataVisibilityMaskChangedKHR;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetVisibilityMaskKHR)(XrSession session, XrViewConfigurationType viewConfigurationType, uint32_t viewIndex, XrVisibilityMaskTypeKHR visibilityMaskType, XrVisibilityMaskKHR* visibilityMask);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetVisibilityMaskKHR(
|
|
XrSession session,
|
|
XrViewConfigurationType viewConfigurationType,
|
|
uint32_t viewIndex,
|
|
XrVisibilityMaskTypeKHR visibilityMaskType,
|
|
XrVisibilityMaskKHR* visibilityMask);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_KHR_composition_layer_color_scale_bias is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_composition_layer_color_scale_bias 1
|
|
#define XR_KHR_composition_layer_color_scale_bias_SPEC_VERSION 5
|
|
#define XR_KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME "XR_KHR_composition_layer_color_scale_bias"
|
|
// XrCompositionLayerColorScaleBiasKHR extends XrCompositionLayerBaseHeader
|
|
typedef struct XrCompositionLayerColorScaleBiasKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrColor4f colorScale;
|
|
XrColor4f colorBias;
|
|
} XrCompositionLayerColorScaleBiasKHR;
|
|
|
|
|
|
|
|
// XR_KHR_loader_init is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_loader_init 1
|
|
#define XR_KHR_loader_init_SPEC_VERSION 2
|
|
#define XR_KHR_LOADER_INIT_EXTENSION_NAME "XR_KHR_loader_init"
|
|
typedef struct XR_MAY_ALIAS XrLoaderInitInfoBaseHeaderKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrLoaderInitInfoBaseHeaderKHR;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrInitializeLoaderKHR)(const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrInitializeLoaderKHR(
|
|
const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_KHR_composition_layer_equirect2 is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_composition_layer_equirect2 1
|
|
#define XR_KHR_composition_layer_equirect2_SPEC_VERSION 1
|
|
#define XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME "XR_KHR_composition_layer_equirect2"
|
|
typedef struct XrCompositionLayerEquirect2KHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerFlags layerFlags;
|
|
XrSpace space;
|
|
XrEyeVisibility eyeVisibility;
|
|
XrSwapchainSubImage subImage;
|
|
XrPosef pose;
|
|
float radius;
|
|
float centralHorizontalAngle;
|
|
float upperVerticalAngle;
|
|
float lowerVerticalAngle;
|
|
} XrCompositionLayerEquirect2KHR;
|
|
|
|
|
|
|
|
// XR_KHR_binding_modification is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_binding_modification 1
|
|
#define XR_KHR_binding_modification_SPEC_VERSION 1
|
|
#define XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME "XR_KHR_binding_modification"
|
|
typedef struct XR_MAY_ALIAS XrBindingModificationBaseHeaderKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrBindingModificationBaseHeaderKHR;
|
|
|
|
// XrBindingModificationsKHR extends XrInteractionProfileSuggestedBinding
|
|
typedef struct XrBindingModificationsKHR {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t bindingModificationCount;
|
|
const XrBindingModificationBaseHeaderKHR* const* bindingModifications;
|
|
} XrBindingModificationsKHR;
|
|
|
|
|
|
|
|
// XR_KHR_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_swapchain_usage_input_attachment_bit 1
|
|
#define XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION 3
|
|
#define XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_KHR_swapchain_usage_input_attachment_bit"
|
|
|
|
|
|
// XR_KHR_locate_spaces is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_locate_spaces 1
|
|
#define XR_KHR_locate_spaces_SPEC_VERSION 1
|
|
#define XR_KHR_LOCATE_SPACES_EXTENSION_NAME "XR_KHR_locate_spaces"
|
|
typedef XrSpacesLocateInfo XrSpacesLocateInfoKHR;
|
|
|
|
typedef XrSpaceLocationData XrSpaceLocationDataKHR;
|
|
|
|
typedef XrSpaceLocations XrSpaceLocationsKHR;
|
|
|
|
typedef XrSpaceVelocityData XrSpaceVelocityDataKHR;
|
|
|
|
typedef XrSpaceVelocities XrSpaceVelocitiesKHR;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLocateSpacesKHR)(XrSession session, const XrSpacesLocateInfo* locateInfo, XrSpaceLocations* spaceLocations);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpacesKHR(
|
|
XrSession session,
|
|
const XrSpacesLocateInfo* locateInfo,
|
|
XrSpaceLocations* spaceLocations);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_KHR_maintenance1 1
|
|
#define XR_KHR_maintenance1_SPEC_VERSION 1
|
|
#define XR_KHR_MAINTENANCE1_EXTENSION_NAME "XR_KHR_maintenance1"
|
|
typedef XrColor3f XrColor3fKHR;
|
|
|
|
typedef XrExtent3Df XrExtent3DfKHR;
|
|
|
|
typedef XrSpheref XrSpherefKHR;
|
|
|
|
typedef XrBoxf XrBoxfKHR;
|
|
|
|
typedef XrFrustumf XrFrustumfKHR;
|
|
|
|
|
|
|
|
// XR_EXT_performance_settings is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_performance_settings 1
|
|
#define XR_EXT_performance_settings_SPEC_VERSION 4
|
|
#define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings"
|
|
|
|
typedef enum XrPerfSettingsDomainEXT {
|
|
XR_PERF_SETTINGS_DOMAIN_CPU_EXT = 1,
|
|
XR_PERF_SETTINGS_DOMAIN_GPU_EXT = 2,
|
|
XR_PERF_SETTINGS_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPerfSettingsDomainEXT;
|
|
|
|
typedef enum XrPerfSettingsSubDomainEXT {
|
|
XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT = 1,
|
|
XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT = 2,
|
|
XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT = 3,
|
|
XR_PERF_SETTINGS_SUB_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPerfSettingsSubDomainEXT;
|
|
|
|
typedef enum XrPerfSettingsLevelEXT {
|
|
XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT = 0,
|
|
XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT = 25,
|
|
XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT = 50,
|
|
XR_PERF_SETTINGS_LEVEL_BOOST_EXT = 75,
|
|
XR_PERF_SETTINGS_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPerfSettingsLevelEXT;
|
|
|
|
typedef enum XrPerfSettingsNotificationLevelEXT {
|
|
XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT = 0,
|
|
XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT = 25,
|
|
XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT = 75,
|
|
XR_PERF_SETTINGS_NOTIFICATION_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPerfSettingsNotificationLevelEXT;
|
|
typedef struct XrEventDataPerfSettingsEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPerfSettingsDomainEXT domain;
|
|
XrPerfSettingsSubDomainEXT subDomain;
|
|
XrPerfSettingsNotificationLevelEXT fromLevel;
|
|
XrPerfSettingsNotificationLevelEXT toLevel;
|
|
} XrEventDataPerfSettingsEXT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT(
|
|
XrSession session,
|
|
XrPerfSettingsDomainEXT domain,
|
|
XrPerfSettingsLevelEXT level);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_thermal_query is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_thermal_query 1
|
|
#define XR_EXT_thermal_query_SPEC_VERSION 2
|
|
#define XR_EXT_THERMAL_QUERY_EXTENSION_NAME "XR_EXT_thermal_query"
|
|
typedef XrResult (XRAPI_PTR *PFN_xrThermalGetTemperatureTrendEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT* notificationLevel, float* tempHeadroom, float* tempSlope);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT(
|
|
XrSession session,
|
|
XrPerfSettingsDomainEXT domain,
|
|
XrPerfSettingsNotificationLevelEXT* notificationLevel,
|
|
float* tempHeadroom,
|
|
float* tempSlope);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_debug_utils 1
|
|
XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT)
|
|
#define XR_EXT_debug_utils_SPEC_VERSION 5
|
|
#define XR_EXT_DEBUG_UTILS_EXTENSION_NAME "XR_EXT_debug_utils"
|
|
typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT;
|
|
|
|
// Flag bits for XrDebugUtilsMessageSeverityFlagsEXT
|
|
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001;
|
|
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010;
|
|
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100;
|
|
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000;
|
|
|
|
typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT;
|
|
|
|
// Flag bits for XrDebugUtilsMessageTypeFlagsEXT
|
|
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001;
|
|
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002;
|
|
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004;
|
|
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT = 0x00000008;
|
|
|
|
typedef struct XrDebugUtilsObjectNameInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrObjectType objectType;
|
|
uint64_t objectHandle;
|
|
const char* objectName;
|
|
} XrDebugUtilsObjectNameInfoEXT;
|
|
|
|
typedef struct XrDebugUtilsLabelEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
const char* labelName;
|
|
} XrDebugUtilsLabelEXT;
|
|
|
|
typedef struct XrDebugUtilsMessengerCallbackDataEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
const char* messageId;
|
|
const char* functionName;
|
|
const char* message;
|
|
uint32_t objectCount;
|
|
XrDebugUtilsObjectNameInfoEXT* objects;
|
|
uint32_t sessionLabelCount;
|
|
XrDebugUtilsLabelEXT* sessionLabels;
|
|
} XrDebugUtilsMessengerCallbackDataEXT;
|
|
|
|
typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)(
|
|
XrDebugUtilsMessageSeverityFlagsEXT messageSeverity,
|
|
XrDebugUtilsMessageTypeFlagsEXT messageTypes,
|
|
const XrDebugUtilsMessengerCallbackDataEXT* callbackData,
|
|
void* userData);
|
|
|
|
|
|
// XrDebugUtilsMessengerCreateInfoEXT extends XrInstanceCreateInfo
|
|
typedef struct XrDebugUtilsMessengerCreateInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrDebugUtilsMessageSeverityFlagsEXT messageSeverities;
|
|
XrDebugUtilsMessageTypeFlagsEXT messageTypes;
|
|
PFN_xrDebugUtilsMessengerCallbackEXT userCallback;
|
|
void* XR_MAY_ALIAS userData;
|
|
} XrDebugUtilsMessengerCreateInfoEXT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetDebugUtilsObjectNameEXT)(XrInstance instance, const XrDebugUtilsObjectNameInfoEXT* nameInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateDebugUtilsMessengerEXT)(XrInstance instance, const XrDebugUtilsMessengerCreateInfoEXT* createInfo, XrDebugUtilsMessengerEXT* messenger);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyDebugUtilsMessengerEXT)(XrDebugUtilsMessengerEXT messenger);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSubmitDebugUtilsMessageEXT)(XrInstance instance, XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSessionBeginDebugUtilsLabelRegionEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSessionEndDebugUtilsLabelRegionEXT)(XrSession session);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSessionInsertDebugUtilsLabelEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetDebugUtilsObjectNameEXT(
|
|
XrInstance instance,
|
|
const XrDebugUtilsObjectNameInfoEXT* nameInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateDebugUtilsMessengerEXT(
|
|
XrInstance instance,
|
|
const XrDebugUtilsMessengerCreateInfoEXT* createInfo,
|
|
XrDebugUtilsMessengerEXT* messenger);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDebugUtilsMessengerEXT(
|
|
XrDebugUtilsMessengerEXT messenger);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSubmitDebugUtilsMessageEXT(
|
|
XrInstance instance,
|
|
XrDebugUtilsMessageSeverityFlagsEXT messageSeverity,
|
|
XrDebugUtilsMessageTypeFlagsEXT messageTypes,
|
|
const XrDebugUtilsMessengerCallbackDataEXT* callbackData);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSessionBeginDebugUtilsLabelRegionEXT(
|
|
XrSession session,
|
|
const XrDebugUtilsLabelEXT* labelInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSessionEndDebugUtilsLabelRegionEXT(
|
|
XrSession session);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT(
|
|
XrSession session,
|
|
const XrDebugUtilsLabelEXT* labelInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_eye_gaze_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_eye_gaze_interaction 1
|
|
#define XR_EXT_eye_gaze_interaction_SPEC_VERSION 2
|
|
#define XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME "XR_EXT_eye_gaze_interaction"
|
|
// XrSystemEyeGazeInteractionPropertiesEXT extends XrSystemProperties
|
|
typedef struct XrSystemEyeGazeInteractionPropertiesEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsEyeGazeInteraction;
|
|
} XrSystemEyeGazeInteractionPropertiesEXT;
|
|
|
|
// XrEyeGazeSampleTimeEXT extends XrSpaceLocation
|
|
typedef struct XrEyeGazeSampleTimeEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrTime time;
|
|
} XrEyeGazeSampleTimeEXT;
|
|
|
|
|
|
|
|
// XR_EXTX_overlay is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXTX_overlay 1
|
|
#define XR_EXTX_overlay_SPEC_VERSION 5
|
|
#define XR_EXTX_OVERLAY_EXTENSION_NAME "XR_EXTX_overlay"
|
|
typedef XrFlags64 XrOverlaySessionCreateFlagsEXTX;
|
|
|
|
// Flag bits for XrOverlaySessionCreateFlagsEXTX
|
|
|
|
typedef XrFlags64 XrOverlayMainSessionFlagsEXTX;
|
|
|
|
// Flag bits for XrOverlayMainSessionFlagsEXTX
|
|
static const XrOverlayMainSessionFlagsEXTX XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX = 0x00000001;
|
|
|
|
// XrSessionCreateInfoOverlayEXTX extends XrSessionCreateInfo
|
|
typedef struct XrSessionCreateInfoOverlayEXTX {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrOverlaySessionCreateFlagsEXTX createFlags;
|
|
uint32_t sessionLayersPlacement;
|
|
} XrSessionCreateInfoOverlayEXTX;
|
|
|
|
typedef struct XrEventDataMainSessionVisibilityChangedEXTX {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 visible;
|
|
XrOverlayMainSessionFlagsEXTX flags;
|
|
} XrEventDataMainSessionVisibilityChangedEXTX;
|
|
|
|
|
|
|
|
// XR_VARJO_quad_views is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_quad_views 1
|
|
#define XR_VARJO_quad_views_SPEC_VERSION 2
|
|
#define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views"
|
|
|
|
|
|
// XR_MSFT_unbounded_reference_space is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_unbounded_reference_space 1
|
|
#define XR_MSFT_unbounded_reference_space_SPEC_VERSION 1
|
|
#define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_MSFT_unbounded_reference_space"
|
|
|
|
|
|
// XR_MSFT_spatial_anchor is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_spatial_anchor 1
|
|
XR_DEFINE_HANDLE(XrSpatialAnchorMSFT)
|
|
#define XR_MSFT_spatial_anchor_SPEC_VERSION 2
|
|
#define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_MSFT_spatial_anchor"
|
|
typedef struct XrSpatialAnchorCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrPosef pose;
|
|
XrTime time;
|
|
} XrSpatialAnchorCreateInfoMSFT;
|
|
|
|
typedef struct XrSpatialAnchorSpaceCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpatialAnchorMSFT anchor;
|
|
XrPosef poseInAnchorSpace;
|
|
} XrSpatialAnchorSpaceCreateInfoMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorMSFT)(XrSession session, const XrSpatialAnchorCreateInfoMSFT* createInfo, XrSpatialAnchorMSFT* anchor);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, XrSpace* space);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT anchor);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT(
|
|
XrSession session,
|
|
const XrSpatialAnchorCreateInfoMSFT* createInfo,
|
|
XrSpatialAnchorMSFT* anchor);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT(
|
|
XrSession session,
|
|
const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo,
|
|
XrSpace* space);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT(
|
|
XrSpatialAnchorMSFT anchor);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_composition_layer_image_layout is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_composition_layer_image_layout 1
|
|
#define XR_FB_composition_layer_image_layout_SPEC_VERSION 1
|
|
#define XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME "XR_FB_composition_layer_image_layout"
|
|
typedef XrFlags64 XrCompositionLayerImageLayoutFlagsFB;
|
|
|
|
// Flag bits for XrCompositionLayerImageLayoutFlagsFB
|
|
static const XrCompositionLayerImageLayoutFlagsFB XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB = 0x00000001;
|
|
|
|
// XrCompositionLayerImageLayoutFB extends XrCompositionLayerBaseHeader
|
|
typedef struct XrCompositionLayerImageLayoutFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerImageLayoutFlagsFB flags;
|
|
} XrCompositionLayerImageLayoutFB;
|
|
|
|
|
|
|
|
// XR_FB_composition_layer_alpha_blend is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_composition_layer_alpha_blend 1
|
|
#define XR_FB_composition_layer_alpha_blend_SPEC_VERSION 3
|
|
#define XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME "XR_FB_composition_layer_alpha_blend"
|
|
|
|
typedef enum XrBlendFactorFB {
|
|
XR_BLEND_FACTOR_ZERO_FB = 0,
|
|
XR_BLEND_FACTOR_ONE_FB = 1,
|
|
XR_BLEND_FACTOR_SRC_ALPHA_FB = 2,
|
|
XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB = 3,
|
|
XR_BLEND_FACTOR_DST_ALPHA_FB = 4,
|
|
XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB = 5,
|
|
XR_BLEND_FACTOR_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrBlendFactorFB;
|
|
// XrCompositionLayerAlphaBlendFB extends XrCompositionLayerBaseHeader
|
|
typedef struct XrCompositionLayerAlphaBlendFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBlendFactorFB srcFactorColor;
|
|
XrBlendFactorFB dstFactorColor;
|
|
XrBlendFactorFB srcFactorAlpha;
|
|
XrBlendFactorFB dstFactorAlpha;
|
|
} XrCompositionLayerAlphaBlendFB;
|
|
|
|
|
|
|
|
// XR_MND_headless is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MND_headless 1
|
|
#define XR_MND_headless_SPEC_VERSION 2
|
|
#define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless"
|
|
|
|
|
|
// XR_OCULUS_android_session_state_enable is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_OCULUS_android_session_state_enable 1
|
|
#define XR_OCULUS_android_session_state_enable_SPEC_VERSION 1
|
|
#define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME "XR_OCULUS_android_session_state_enable"
|
|
|
|
|
|
// XR_EXT_view_configuration_depth_range is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_view_configuration_depth_range 1
|
|
#define XR_EXT_view_configuration_depth_range_SPEC_VERSION 1
|
|
#define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME "XR_EXT_view_configuration_depth_range"
|
|
// XrViewConfigurationDepthRangeEXT extends XrViewConfigurationView
|
|
typedef struct XrViewConfigurationDepthRangeEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
float recommendedNearZ;
|
|
float minNearZ;
|
|
float recommendedFarZ;
|
|
float maxFarZ;
|
|
} XrViewConfigurationDepthRangeEXT;
|
|
|
|
|
|
|
|
// XR_EXT_conformance_automation is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_conformance_automation 1
|
|
#define XR_EXT_conformance_automation_SPEC_VERSION 3
|
|
#define XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME "XR_EXT_conformance_automation"
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceActiveEXT)(XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateBoolEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrBool32 state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateFloatEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, float state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateVector2fEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrVector2f state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceLocationEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrSpace space, XrPosef pose);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceActiveEXT(
|
|
XrSession session,
|
|
XrPath interactionProfile,
|
|
XrPath topLevelPath,
|
|
XrBool32 isActive);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateBoolEXT(
|
|
XrSession session,
|
|
XrPath topLevelPath,
|
|
XrPath inputSourcePath,
|
|
XrBool32 state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateFloatEXT(
|
|
XrSession session,
|
|
XrPath topLevelPath,
|
|
XrPath inputSourcePath,
|
|
float state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateVector2fEXT(
|
|
XrSession session,
|
|
XrPath topLevelPath,
|
|
XrPath inputSourcePath,
|
|
XrVector2f state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(
|
|
XrSession session,
|
|
XrPath topLevelPath,
|
|
XrPath inputSourcePath,
|
|
XrSpace space,
|
|
XrPosef pose);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_MSFT_spatial_graph_bridge is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_spatial_graph_bridge 1
|
|
XR_DEFINE_HANDLE(XrSpatialGraphNodeBindingMSFT)
|
|
#define XR_GUID_SIZE_MSFT 16
|
|
#define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 2
|
|
#define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge"
|
|
|
|
typedef enum XrSpatialGraphNodeTypeMSFT {
|
|
XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT = 1,
|
|
XR_SPATIAL_GRAPH_NODE_TYPE_DYNAMIC_MSFT = 2,
|
|
XR_SPATIAL_GRAPH_NODE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSpatialGraphNodeTypeMSFT;
|
|
typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpatialGraphNodeTypeMSFT nodeType;
|
|
uint8_t nodeId[XR_GUID_SIZE_MSFT];
|
|
XrPosef pose;
|
|
} XrSpatialGraphNodeSpaceCreateInfoMSFT;
|
|
|
|
typedef struct XrSpatialGraphStaticNodeBindingCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrPosef poseInSpace;
|
|
XrTime time;
|
|
} XrSpatialGraphStaticNodeBindingCreateInfoMSFT;
|
|
|
|
typedef struct XrSpatialGraphNodeBindingPropertiesGetInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpatialGraphNodeBindingPropertiesGetInfoMSFT;
|
|
|
|
typedef struct XrSpatialGraphNodeBindingPropertiesMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint8_t nodeId[XR_GUID_SIZE_MSFT];
|
|
XrPosef poseInNodeSpace;
|
|
} XrSpatialGraphNodeBindingPropertiesMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession session, const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo, XrSpace* space);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT)(XrSession session, const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo, XrSpatialGraphNodeBindingMSFT* nodeBinding);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialGraphNodeBindingMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding, const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo, XrSpatialGraphNodeBindingPropertiesMSFT* properties);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT(
|
|
XrSession session,
|
|
const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo,
|
|
XrSpace* space);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTryCreateSpatialGraphStaticNodeBindingMSFT(
|
|
XrSession session,
|
|
const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo,
|
|
XrSpatialGraphNodeBindingMSFT* nodeBinding);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialGraphNodeBindingMSFT(
|
|
XrSpatialGraphNodeBindingMSFT nodeBinding);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialGraphNodeBindingPropertiesMSFT(
|
|
XrSpatialGraphNodeBindingMSFT nodeBinding,
|
|
const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo,
|
|
XrSpatialGraphNodeBindingPropertiesMSFT* properties);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_MSFT_hand_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_hand_interaction 1
|
|
#define XR_MSFT_hand_interaction_SPEC_VERSION 1
|
|
#define XR_MSFT_HAND_INTERACTION_EXTENSION_NAME "XR_MSFT_hand_interaction"
|
|
|
|
|
|
// XR_EXT_hand_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_hand_tracking 1
|
|
|
|
#define XR_HAND_JOINT_COUNT_EXT 26
|
|
|
|
XR_DEFINE_HANDLE(XrHandTrackerEXT)
|
|
#define XR_EXT_hand_tracking_SPEC_VERSION 4
|
|
#define XR_EXT_HAND_TRACKING_EXTENSION_NAME "XR_EXT_hand_tracking"
|
|
|
|
typedef enum XrHandEXT {
|
|
XR_HAND_LEFT_EXT = 1,
|
|
XR_HAND_RIGHT_EXT = 2,
|
|
XR_HAND_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrHandEXT;
|
|
|
|
typedef enum XrHandJointEXT {
|
|
XR_HAND_JOINT_PALM_EXT = 0,
|
|
XR_HAND_JOINT_WRIST_EXT = 1,
|
|
XR_HAND_JOINT_THUMB_METACARPAL_EXT = 2,
|
|
XR_HAND_JOINT_THUMB_PROXIMAL_EXT = 3,
|
|
XR_HAND_JOINT_THUMB_DISTAL_EXT = 4,
|
|
XR_HAND_JOINT_THUMB_TIP_EXT = 5,
|
|
XR_HAND_JOINT_INDEX_METACARPAL_EXT = 6,
|
|
XR_HAND_JOINT_INDEX_PROXIMAL_EXT = 7,
|
|
XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT = 8,
|
|
XR_HAND_JOINT_INDEX_DISTAL_EXT = 9,
|
|
XR_HAND_JOINT_INDEX_TIP_EXT = 10,
|
|
XR_HAND_JOINT_MIDDLE_METACARPAL_EXT = 11,
|
|
XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT = 12,
|
|
XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT = 13,
|
|
XR_HAND_JOINT_MIDDLE_DISTAL_EXT = 14,
|
|
XR_HAND_JOINT_MIDDLE_TIP_EXT = 15,
|
|
XR_HAND_JOINT_RING_METACARPAL_EXT = 16,
|
|
XR_HAND_JOINT_RING_PROXIMAL_EXT = 17,
|
|
XR_HAND_JOINT_RING_INTERMEDIATE_EXT = 18,
|
|
XR_HAND_JOINT_RING_DISTAL_EXT = 19,
|
|
XR_HAND_JOINT_RING_TIP_EXT = 20,
|
|
XR_HAND_JOINT_LITTLE_METACARPAL_EXT = 21,
|
|
XR_HAND_JOINT_LITTLE_PROXIMAL_EXT = 22,
|
|
XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT = 23,
|
|
XR_HAND_JOINT_LITTLE_DISTAL_EXT = 24,
|
|
XR_HAND_JOINT_LITTLE_TIP_EXT = 25,
|
|
XR_HAND_JOINT_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrHandJointEXT;
|
|
|
|
typedef enum XrHandJointSetEXT {
|
|
XR_HAND_JOINT_SET_DEFAULT_EXT = 0,
|
|
XR_HAND_JOINT_SET_HAND_WITH_FOREARM_ULTRALEAP = 1000149000,
|
|
XR_HAND_JOINT_SET_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrHandJointSetEXT;
|
|
// XrSystemHandTrackingPropertiesEXT extends XrSystemProperties
|
|
typedef struct XrSystemHandTrackingPropertiesEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsHandTracking;
|
|
} XrSystemHandTrackingPropertiesEXT;
|
|
|
|
typedef struct XrHandTrackerCreateInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrHandEXT hand;
|
|
XrHandJointSetEXT handJointSet;
|
|
} XrHandTrackerCreateInfoEXT;
|
|
|
|
typedef struct XrHandJointsLocateInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
} XrHandJointsLocateInfoEXT;
|
|
|
|
typedef struct XrHandJointLocationEXT {
|
|
XrSpaceLocationFlags locationFlags;
|
|
XrPosef pose;
|
|
float radius;
|
|
} XrHandJointLocationEXT;
|
|
|
|
typedef struct XrHandJointVelocityEXT {
|
|
XrSpaceVelocityFlags velocityFlags;
|
|
XrVector3f linearVelocity;
|
|
XrVector3f angularVelocity;
|
|
} XrHandJointVelocityEXT;
|
|
|
|
typedef struct XrHandJointLocationsEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 isActive;
|
|
uint32_t jointCount;
|
|
XrHandJointLocationEXT* jointLocations;
|
|
} XrHandJointLocationsEXT;
|
|
|
|
// XrHandJointVelocitiesEXT extends XrHandJointLocationsEXT
|
|
typedef struct XrHandJointVelocitiesEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t jointCount;
|
|
XrHandJointVelocityEXT* jointVelocities;
|
|
} XrHandJointVelocitiesEXT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateHandTrackerEXT)(XrSession session, const XrHandTrackerCreateInfoEXT* createInfo, XrHandTrackerEXT* handTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyHandTrackerEXT)(XrHandTrackerEXT handTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLocateHandJointsEXT)(XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT* locateInfo, XrHandJointLocationsEXT* locations);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandTrackerEXT(
|
|
XrSession session,
|
|
const XrHandTrackerCreateInfoEXT* createInfo,
|
|
XrHandTrackerEXT* handTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyHandTrackerEXT(
|
|
XrHandTrackerEXT handTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLocateHandJointsEXT(
|
|
XrHandTrackerEXT handTracker,
|
|
const XrHandJointsLocateInfoEXT* locateInfo,
|
|
XrHandJointLocationsEXT* locations);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_MSFT_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_hand_tracking_mesh 1
|
|
#define XR_MSFT_hand_tracking_mesh_SPEC_VERSION 4
|
|
#define XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME "XR_MSFT_hand_tracking_mesh"
|
|
|
|
typedef enum XrHandPoseTypeMSFT {
|
|
XR_HAND_POSE_TYPE_TRACKED_MSFT = 0,
|
|
XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT = 1,
|
|
XR_HAND_POSE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrHandPoseTypeMSFT;
|
|
// XrSystemHandTrackingMeshPropertiesMSFT extends XrSystemProperties
|
|
typedef struct XrSystemHandTrackingMeshPropertiesMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsHandTrackingMesh;
|
|
uint32_t maxHandMeshIndexCount;
|
|
uint32_t maxHandMeshVertexCount;
|
|
} XrSystemHandTrackingMeshPropertiesMSFT;
|
|
|
|
typedef struct XrHandMeshSpaceCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrHandPoseTypeMSFT handPoseType;
|
|
XrPosef poseInHandMeshSpace;
|
|
} XrHandMeshSpaceCreateInfoMSFT;
|
|
|
|
typedef struct XrHandMeshUpdateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrTime time;
|
|
XrHandPoseTypeMSFT handPoseType;
|
|
} XrHandMeshUpdateInfoMSFT;
|
|
|
|
typedef struct XrHandMeshIndexBufferMSFT {
|
|
uint32_t indexBufferKey;
|
|
uint32_t indexCapacityInput;
|
|
uint32_t indexCountOutput;
|
|
uint32_t* indices;
|
|
} XrHandMeshIndexBufferMSFT;
|
|
|
|
typedef struct XrHandMeshVertexMSFT {
|
|
XrVector3f position;
|
|
XrVector3f normal;
|
|
} XrHandMeshVertexMSFT;
|
|
|
|
typedef struct XrHandMeshVertexBufferMSFT {
|
|
XrTime vertexUpdateTime;
|
|
uint32_t vertexCapacityInput;
|
|
uint32_t vertexCountOutput;
|
|
XrHandMeshVertexMSFT* vertices;
|
|
} XrHandMeshVertexBufferMSFT;
|
|
|
|
typedef struct XrHandMeshMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 isActive;
|
|
XrBool32 indexBufferChanged;
|
|
XrBool32 vertexBufferChanged;
|
|
XrHandMeshIndexBufferMSFT indexBuffer;
|
|
XrHandMeshVertexBufferMSFT vertexBuffer;
|
|
} XrHandMeshMSFT;
|
|
|
|
// XrHandPoseTypeInfoMSFT extends XrHandTrackerCreateInfoEXT
|
|
typedef struct XrHandPoseTypeInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrHandPoseTypeMSFT handPoseType;
|
|
} XrHandPoseTypeInfoMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT handTracker, const XrHandMeshSpaceCreateInfoMSFT* createInfo, XrSpace* space);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUpdateHandMeshMSFT)(XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT* updateInfo, XrHandMeshMSFT* handMesh);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandMeshSpaceMSFT(
|
|
XrHandTrackerEXT handTracker,
|
|
const XrHandMeshSpaceCreateInfoMSFT* createInfo,
|
|
XrSpace* space);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUpdateHandMeshMSFT(
|
|
XrHandTrackerEXT handTracker,
|
|
const XrHandMeshUpdateInfoMSFT* updateInfo,
|
|
XrHandMeshMSFT* handMesh);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_MSFT_secondary_view_configuration is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_secondary_view_configuration 1
|
|
#define XR_MSFT_secondary_view_configuration_SPEC_VERSION 1
|
|
#define XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME "XR_MSFT_secondary_view_configuration"
|
|
// XrSecondaryViewConfigurationSessionBeginInfoMSFT extends XrSessionBeginInfo
|
|
typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t viewConfigurationCount;
|
|
const XrViewConfigurationType* enabledViewConfigurationTypes;
|
|
} XrSecondaryViewConfigurationSessionBeginInfoMSFT;
|
|
|
|
typedef struct XrSecondaryViewConfigurationStateMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrViewConfigurationType viewConfigurationType;
|
|
XrBool32 active;
|
|
} XrSecondaryViewConfigurationStateMSFT;
|
|
|
|
// XrSecondaryViewConfigurationFrameStateMSFT extends XrFrameState
|
|
typedef struct XrSecondaryViewConfigurationFrameStateMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t viewConfigurationCount;
|
|
XrSecondaryViewConfigurationStateMSFT* viewConfigurationStates;
|
|
} XrSecondaryViewConfigurationFrameStateMSFT;
|
|
|
|
typedef struct XrSecondaryViewConfigurationLayerInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrViewConfigurationType viewConfigurationType;
|
|
XrEnvironmentBlendMode environmentBlendMode;
|
|
uint32_t layerCount;
|
|
const XrCompositionLayerBaseHeader* const* layers;
|
|
} XrSecondaryViewConfigurationLayerInfoMSFT;
|
|
|
|
// XrSecondaryViewConfigurationFrameEndInfoMSFT extends XrFrameEndInfo
|
|
typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t viewConfigurationCount;
|
|
const XrSecondaryViewConfigurationLayerInfoMSFT* viewConfigurationLayersInfo;
|
|
} XrSecondaryViewConfigurationFrameEndInfoMSFT;
|
|
|
|
// XrSecondaryViewConfigurationSwapchainCreateInfoMSFT extends XrSwapchainCreateInfo
|
|
typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrViewConfigurationType viewConfigurationType;
|
|
} XrSecondaryViewConfigurationSwapchainCreateInfoMSFT;
|
|
|
|
|
|
|
|
// XR_MSFT_first_person_observer is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_first_person_observer 1
|
|
#define XR_MSFT_first_person_observer_SPEC_VERSION 1
|
|
#define XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME "XR_MSFT_first_person_observer"
|
|
|
|
|
|
// XR_MSFT_controller_model is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_controller_model 1
|
|
|
|
#define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0
|
|
|
|
XR_DEFINE_ATOM(XrControllerModelKeyMSFT)
|
|
#define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64
|
|
#define XR_MSFT_controller_model_SPEC_VERSION 2
|
|
#define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME "XR_MSFT_controller_model"
|
|
typedef struct XrControllerModelKeyStateMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrControllerModelKeyMSFT modelKey;
|
|
} XrControllerModelKeyStateMSFT;
|
|
|
|
typedef struct XrControllerModelNodePropertiesMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
char parentNodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT];
|
|
char nodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT];
|
|
} XrControllerModelNodePropertiesMSFT;
|
|
|
|
typedef struct XrControllerModelPropertiesMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t nodeCapacityInput;
|
|
uint32_t nodeCountOutput;
|
|
XrControllerModelNodePropertiesMSFT* nodeProperties;
|
|
} XrControllerModelPropertiesMSFT;
|
|
|
|
typedef struct XrControllerModelNodeStateMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrPosef nodePose;
|
|
} XrControllerModelNodeStateMSFT;
|
|
|
|
typedef struct XrControllerModelStateMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t nodeCapacityInput;
|
|
uint32_t nodeCountOutput;
|
|
XrControllerModelNodeStateMSFT* nodeStates;
|
|
} XrControllerModelStateMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelKeyMSFT)(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT* controllerModelKeyState);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLoadControllerModelMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelPropertiesMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT* properties);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelStateMSFT)(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT* state);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelKeyMSFT(
|
|
XrSession session,
|
|
XrPath topLevelUserPath,
|
|
XrControllerModelKeyStateMSFT* controllerModelKeyState);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLoadControllerModelMSFT(
|
|
XrSession session,
|
|
XrControllerModelKeyMSFT modelKey,
|
|
uint32_t bufferCapacityInput,
|
|
uint32_t* bufferCountOutput,
|
|
uint8_t* buffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelPropertiesMSFT(
|
|
XrSession session,
|
|
XrControllerModelKeyMSFT modelKey,
|
|
XrControllerModelPropertiesMSFT* properties);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelStateMSFT(
|
|
XrSession session,
|
|
XrControllerModelKeyMSFT modelKey,
|
|
XrControllerModelStateMSFT* state);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_win32_appcontainer_compatible is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_win32_appcontainer_compatible 1
|
|
#define XR_EXT_win32_appcontainer_compatible_SPEC_VERSION 1
|
|
#define XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME "XR_EXT_win32_appcontainer_compatible"
|
|
|
|
|
|
// XR_EPIC_view_configuration_fov is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EPIC_view_configuration_fov 1
|
|
#define XR_EPIC_view_configuration_fov_SPEC_VERSION 2
|
|
#define XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME "XR_EPIC_view_configuration_fov"
|
|
// XrViewConfigurationViewFovEPIC extends XrViewConfigurationView
|
|
typedef struct XrViewConfigurationViewFovEPIC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFovf recommendedFov;
|
|
XrFovf maxMutableFov;
|
|
} XrViewConfigurationViewFovEPIC;
|
|
|
|
|
|
|
|
// XR_MSFT_composition_layer_reprojection is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_composition_layer_reprojection 1
|
|
#define XR_MSFT_composition_layer_reprojection_SPEC_VERSION 1
|
|
#define XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME "XR_MSFT_composition_layer_reprojection"
|
|
|
|
typedef enum XrReprojectionModeMSFT {
|
|
XR_REPROJECTION_MODE_DEPTH_MSFT = 1,
|
|
XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT = 2,
|
|
XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT = 3,
|
|
XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT = 4,
|
|
XR_REPROJECTION_MODE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrReprojectionModeMSFT;
|
|
// XrCompositionLayerReprojectionInfoMSFT extends XrCompositionLayerProjection
|
|
typedef struct XrCompositionLayerReprojectionInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrReprojectionModeMSFT reprojectionMode;
|
|
} XrCompositionLayerReprojectionInfoMSFT;
|
|
|
|
// XrCompositionLayerReprojectionPlaneOverrideMSFT extends XrCompositionLayerProjection
|
|
typedef struct XrCompositionLayerReprojectionPlaneOverrideMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVector3f position;
|
|
XrVector3f normal;
|
|
XrVector3f velocity;
|
|
} XrCompositionLayerReprojectionPlaneOverrideMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReprojectionModesMSFT)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrReprojectionModeMSFT* modes);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReprojectionModesMSFT(
|
|
XrInstance instance,
|
|
XrSystemId systemId,
|
|
XrViewConfigurationType viewConfigurationType,
|
|
uint32_t modeCapacityInput,
|
|
uint32_t* modeCountOutput,
|
|
XrReprojectionModeMSFT* modes);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HUAWEI_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HUAWEI_controller_interaction 1
|
|
#define XR_HUAWEI_controller_interaction_SPEC_VERSION 1
|
|
#define XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HUAWEI_controller_interaction"
|
|
|
|
|
|
// XR_FB_swapchain_update_state is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_swapchain_update_state 1
|
|
#define XR_FB_swapchain_update_state_SPEC_VERSION 3
|
|
#define XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME "XR_FB_swapchain_update_state"
|
|
typedef struct XR_MAY_ALIAS XrSwapchainStateBaseHeaderFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
} XrSwapchainStateBaseHeaderFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUpdateSwapchainFB)(XrSwapchain swapchain, const XrSwapchainStateBaseHeaderFB* state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSwapchainStateFB)(XrSwapchain swapchain, XrSwapchainStateBaseHeaderFB* state);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSwapchainFB(
|
|
XrSwapchain swapchain,
|
|
const XrSwapchainStateBaseHeaderFB* state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSwapchainStateFB(
|
|
XrSwapchain swapchain,
|
|
XrSwapchainStateBaseHeaderFB* state);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_composition_layer_secure_content is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_composition_layer_secure_content 1
|
|
#define XR_FB_composition_layer_secure_content_SPEC_VERSION 1
|
|
#define XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME "XR_FB_composition_layer_secure_content"
|
|
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;
|
|
|
|
|
|
|
|
// XR_FB_body_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_body_tracking 1
|
|
XR_DEFINE_HANDLE(XrBodyTrackerFB)
|
|
#define XR_FB_body_tracking_SPEC_VERSION 1
|
|
#define XR_FB_BODY_TRACKING_EXTENSION_NAME "XR_FB_body_tracking"
|
|
|
|
typedef enum XrBodyJointFB {
|
|
XR_BODY_JOINT_ROOT_FB = 0,
|
|
XR_BODY_JOINT_HIPS_FB = 1,
|
|
XR_BODY_JOINT_SPINE_LOWER_FB = 2,
|
|
XR_BODY_JOINT_SPINE_MIDDLE_FB = 3,
|
|
XR_BODY_JOINT_SPINE_UPPER_FB = 4,
|
|
XR_BODY_JOINT_CHEST_FB = 5,
|
|
XR_BODY_JOINT_NECK_FB = 6,
|
|
XR_BODY_JOINT_HEAD_FB = 7,
|
|
XR_BODY_JOINT_LEFT_SHOULDER_FB = 8,
|
|
XR_BODY_JOINT_LEFT_SCAPULA_FB = 9,
|
|
XR_BODY_JOINT_LEFT_ARM_UPPER_FB = 10,
|
|
XR_BODY_JOINT_LEFT_ARM_LOWER_FB = 11,
|
|
XR_BODY_JOINT_LEFT_HAND_WRIST_TWIST_FB = 12,
|
|
XR_BODY_JOINT_RIGHT_SHOULDER_FB = 13,
|
|
XR_BODY_JOINT_RIGHT_SCAPULA_FB = 14,
|
|
XR_BODY_JOINT_RIGHT_ARM_UPPER_FB = 15,
|
|
XR_BODY_JOINT_RIGHT_ARM_LOWER_FB = 16,
|
|
XR_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_FB = 17,
|
|
XR_BODY_JOINT_LEFT_HAND_PALM_FB = 18,
|
|
XR_BODY_JOINT_LEFT_HAND_WRIST_FB = 19,
|
|
XR_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_FB = 20,
|
|
XR_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_FB = 21,
|
|
XR_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_FB = 22,
|
|
XR_BODY_JOINT_LEFT_HAND_THUMB_TIP_FB = 23,
|
|
XR_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_FB = 24,
|
|
XR_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_FB = 25,
|
|
XR_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_FB = 26,
|
|
XR_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_FB = 27,
|
|
XR_BODY_JOINT_LEFT_HAND_INDEX_TIP_FB = 28,
|
|
XR_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_FB = 29,
|
|
XR_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_FB = 30,
|
|
XR_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_FB = 31,
|
|
XR_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_FB = 32,
|
|
XR_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_FB = 33,
|
|
XR_BODY_JOINT_LEFT_HAND_RING_METACARPAL_FB = 34,
|
|
XR_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_FB = 35,
|
|
XR_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_FB = 36,
|
|
XR_BODY_JOINT_LEFT_HAND_RING_DISTAL_FB = 37,
|
|
XR_BODY_JOINT_LEFT_HAND_RING_TIP_FB = 38,
|
|
XR_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_FB = 39,
|
|
XR_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_FB = 40,
|
|
XR_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_FB = 41,
|
|
XR_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_FB = 42,
|
|
XR_BODY_JOINT_LEFT_HAND_LITTLE_TIP_FB = 43,
|
|
XR_BODY_JOINT_RIGHT_HAND_PALM_FB = 44,
|
|
XR_BODY_JOINT_RIGHT_HAND_WRIST_FB = 45,
|
|
XR_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_FB = 46,
|
|
XR_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_FB = 47,
|
|
XR_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_FB = 48,
|
|
XR_BODY_JOINT_RIGHT_HAND_THUMB_TIP_FB = 49,
|
|
XR_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_FB = 50,
|
|
XR_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_FB = 51,
|
|
XR_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_FB = 52,
|
|
XR_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_FB = 53,
|
|
XR_BODY_JOINT_RIGHT_HAND_INDEX_TIP_FB = 54,
|
|
XR_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_FB = 55,
|
|
XR_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_FB = 56,
|
|
XR_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_FB = 57,
|
|
XR_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_FB = 58,
|
|
XR_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_FB = 59,
|
|
XR_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_FB = 60,
|
|
XR_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_FB = 61,
|
|
XR_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_FB = 62,
|
|
XR_BODY_JOINT_RIGHT_HAND_RING_DISTAL_FB = 63,
|
|
XR_BODY_JOINT_RIGHT_HAND_RING_TIP_FB = 64,
|
|
XR_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_FB = 65,
|
|
XR_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_FB = 66,
|
|
XR_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_FB = 67,
|
|
XR_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_FB = 68,
|
|
XR_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_FB = 69,
|
|
XR_BODY_JOINT_COUNT_FB = 70,
|
|
XR_BODY_JOINT_NONE_FB = -1,
|
|
XR_BODY_JOINT_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrBodyJointFB;
|
|
|
|
typedef enum XrBodyJointSetFB {
|
|
XR_BODY_JOINT_SET_DEFAULT_FB = 0,
|
|
XR_BODY_JOINT_SET_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrBodyJointSetFB;
|
|
typedef struct XrBodyJointLocationFB {
|
|
XrSpaceLocationFlags locationFlags;
|
|
XrPosef pose;
|
|
} XrBodyJointLocationFB;
|
|
|
|
// XrSystemBodyTrackingPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemBodyTrackingPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsBodyTracking;
|
|
} XrSystemBodyTrackingPropertiesFB;
|
|
|
|
typedef struct XrBodyTrackerCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBodyJointSetFB bodyJointSet;
|
|
} XrBodyTrackerCreateInfoFB;
|
|
|
|
typedef struct XrBodySkeletonJointFB {
|
|
int32_t joint;
|
|
int32_t parentJoint;
|
|
XrPosef pose;
|
|
} XrBodySkeletonJointFB;
|
|
|
|
typedef struct XrBodySkeletonFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t jointCount;
|
|
XrBodySkeletonJointFB* joints;
|
|
} XrBodySkeletonFB;
|
|
|
|
typedef struct XrBodyJointsLocateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
} XrBodyJointsLocateInfoFB;
|
|
|
|
typedef struct XrBodyJointLocationsFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 isActive;
|
|
float confidence;
|
|
uint32_t jointCount;
|
|
XrBodyJointLocationFB* jointLocations;
|
|
uint32_t skeletonChangedCount;
|
|
XrTime time;
|
|
} XrBodyJointLocationsFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerFB)(XrSession session, const XrBodyTrackerCreateInfoFB* createInfo, XrBodyTrackerFB* bodyTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerFB)(XrBodyTrackerFB bodyTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsFB)(XrBodyTrackerFB bodyTracker, const XrBodyJointsLocateInfoFB* locateInfo, XrBodyJointLocationsFB* locations);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetBodySkeletonFB)(XrBodyTrackerFB bodyTracker, XrBodySkeletonFB* skeleton);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerFB(
|
|
XrSession session,
|
|
const XrBodyTrackerCreateInfoFB* createInfo,
|
|
XrBodyTrackerFB* bodyTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerFB(
|
|
XrBodyTrackerFB bodyTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsFB(
|
|
XrBodyTrackerFB bodyTracker,
|
|
const XrBodyJointsLocateInfoFB* locateInfo,
|
|
XrBodyJointLocationsFB* locations);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonFB(
|
|
XrBodyTrackerFB bodyTracker,
|
|
XrBodySkeletonFB* skeleton);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_dpad_binding is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_dpad_binding 1
|
|
#define XR_EXT_dpad_binding_SPEC_VERSION 1
|
|
#define XR_EXT_DPAD_BINDING_EXTENSION_NAME "XR_EXT_dpad_binding"
|
|
typedef struct XrInteractionProfileDpadBindingEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPath binding;
|
|
XrActionSet actionSet;
|
|
float forceThreshold;
|
|
float forceThresholdReleased;
|
|
float centerRegion;
|
|
float wedgeAngle;
|
|
XrBool32 isSticky;
|
|
const XrHapticBaseHeader* onHaptic;
|
|
const XrHapticBaseHeader* offHaptic;
|
|
} XrInteractionProfileDpadBindingEXT;
|
|
|
|
|
|
|
|
// XR_VALVE_analog_threshold is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VALVE_analog_threshold 1
|
|
#define XR_VALVE_analog_threshold_SPEC_VERSION 2
|
|
#define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME "XR_VALVE_analog_threshold"
|
|
typedef struct XrInteractionProfileAnalogThresholdVALVE {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAction action;
|
|
XrPath binding;
|
|
float onThreshold;
|
|
float offThreshold;
|
|
const XrHapticBaseHeader* onHaptic;
|
|
const XrHapticBaseHeader* offHaptic;
|
|
} XrInteractionProfileAnalogThresholdVALVE;
|
|
|
|
|
|
|
|
// XR_EXT_hand_joints_motion_range is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_hand_joints_motion_range 1
|
|
#define XR_EXT_hand_joints_motion_range_SPEC_VERSION 1
|
|
#define XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME "XR_EXT_hand_joints_motion_range"
|
|
|
|
typedef enum XrHandJointsMotionRangeEXT {
|
|
XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT = 1,
|
|
XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_EXT = 2,
|
|
XR_HAND_JOINTS_MOTION_RANGE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrHandJointsMotionRangeEXT;
|
|
// XrHandJointsMotionRangeInfoEXT extends XrHandJointsLocateInfoEXT
|
|
typedef struct XrHandJointsMotionRangeInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrHandJointsMotionRangeEXT handJointsMotionRange;
|
|
} XrHandJointsMotionRangeInfoEXT;
|
|
|
|
|
|
|
|
// XR_EXT_samsung_odyssey_controller is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_samsung_odyssey_controller 1
|
|
#define XR_EXT_samsung_odyssey_controller_SPEC_VERSION 1
|
|
#define XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME "XR_EXT_samsung_odyssey_controller"
|
|
|
|
|
|
// XR_EXT_hp_mixed_reality_controller is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_hp_mixed_reality_controller 1
|
|
#define XR_EXT_hp_mixed_reality_controller_SPEC_VERSION 1
|
|
#define XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME "XR_EXT_hp_mixed_reality_controller"
|
|
|
|
|
|
// XR_MND_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MND_swapchain_usage_input_attachment_bit 1
|
|
#define XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION 2
|
|
#define XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_MND_swapchain_usage_input_attachment_bit"
|
|
|
|
|
|
// XR_MSFT_scene_understanding is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_scene_understanding 1
|
|
|
|
XR_DEFINE_HANDLE(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_MARKER_MSFT = 1000147000,
|
|
XR_SCENE_COMPUTE_FEATURE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneComputeFeatureMSFT;
|
|
|
|
typedef enum XrSceneComputeConsistencyMSFT {
|
|
XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_COMPLETE_MSFT = 1,
|
|
XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_INCOMPLETE_FAST_MSFT = 2,
|
|
XR_SCENE_COMPUTE_CONSISTENCY_OCCLUSION_OPTIMIZED_MSFT = 3,
|
|
XR_SCENE_COMPUTE_CONSISTENCY_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneComputeConsistencyMSFT;
|
|
|
|
typedef enum XrMeshComputeLodMSFT {
|
|
XR_MESH_COMPUTE_LOD_COARSE_MSFT = 1,
|
|
XR_MESH_COMPUTE_LOD_MEDIUM_MSFT = 2,
|
|
XR_MESH_COMPUTE_LOD_FINE_MSFT = 3,
|
|
XR_MESH_COMPUTE_LOD_UNLIMITED_MSFT = 4,
|
|
XR_MESH_COMPUTE_LOD_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrMeshComputeLodMSFT;
|
|
|
|
typedef enum XrSceneComponentTypeMSFT {
|
|
XR_SCENE_COMPONENT_TYPE_INVALID_MSFT = -1,
|
|
XR_SCENE_COMPONENT_TYPE_OBJECT_MSFT = 1,
|
|
XR_SCENE_COMPONENT_TYPE_PLANE_MSFT = 2,
|
|
XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT = 3,
|
|
XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT = 4,
|
|
XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT = 1000098000,
|
|
XR_SCENE_COMPONENT_TYPE_MARKER_MSFT = 1000147000,
|
|
XR_SCENE_COMPONENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneComponentTypeMSFT;
|
|
|
|
typedef enum XrSceneObjectTypeMSFT {
|
|
XR_SCENE_OBJECT_TYPE_UNCATEGORIZED_MSFT = -1,
|
|
XR_SCENE_OBJECT_TYPE_BACKGROUND_MSFT = 1,
|
|
XR_SCENE_OBJECT_TYPE_WALL_MSFT = 2,
|
|
XR_SCENE_OBJECT_TYPE_FLOOR_MSFT = 3,
|
|
XR_SCENE_OBJECT_TYPE_CEILING_MSFT = 4,
|
|
XR_SCENE_OBJECT_TYPE_PLATFORM_MSFT = 5,
|
|
XR_SCENE_OBJECT_TYPE_INFERRED_MSFT = 6,
|
|
XR_SCENE_OBJECT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneObjectTypeMSFT;
|
|
|
|
typedef enum XrScenePlaneAlignmentTypeMSFT {
|
|
XR_SCENE_PLANE_ALIGNMENT_TYPE_NON_ORTHOGONAL_MSFT = 0,
|
|
XR_SCENE_PLANE_ALIGNMENT_TYPE_HORIZONTAL_MSFT = 1,
|
|
XR_SCENE_PLANE_ALIGNMENT_TYPE_VERTICAL_MSFT = 2,
|
|
XR_SCENE_PLANE_ALIGNMENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrScenePlaneAlignmentTypeMSFT;
|
|
|
|
typedef enum XrSceneComputeStateMSFT {
|
|
XR_SCENE_COMPUTE_STATE_NONE_MSFT = 0,
|
|
XR_SCENE_COMPUTE_STATE_UPDATING_MSFT = 1,
|
|
XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT = 2,
|
|
XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT = 3,
|
|
XR_SCENE_COMPUTE_STATE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneComputeStateMSFT;
|
|
typedef struct XrUuidMSFT {
|
|
uint8_t bytes[16];
|
|
} XrUuidMSFT;
|
|
|
|
typedef struct XrSceneObserverCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSceneObserverCreateInfoMSFT;
|
|
|
|
typedef struct XrSceneCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSceneCreateInfoMSFT;
|
|
|
|
typedef struct XrSceneSphereBoundMSFT {
|
|
XrVector3f center;
|
|
float radius;
|
|
} XrSceneSphereBoundMSFT;
|
|
|
|
typedef struct XrSceneOrientedBoxBoundMSFT {
|
|
XrPosef pose;
|
|
XrVector3f extents;
|
|
} XrSceneOrientedBoxBoundMSFT;
|
|
|
|
typedef struct XrSceneFrustumBoundMSFT {
|
|
XrPosef pose;
|
|
XrFovf fov;
|
|
float farDistance;
|
|
} XrSceneFrustumBoundMSFT;
|
|
|
|
typedef struct XrSceneBoundsMSFT {
|
|
XrSpace space;
|
|
XrTime time;
|
|
uint32_t sphereCount;
|
|
const XrSceneSphereBoundMSFT* spheres;
|
|
uint32_t boxCount;
|
|
const XrSceneOrientedBoxBoundMSFT* boxes;
|
|
uint32_t frustumCount;
|
|
const XrSceneFrustumBoundMSFT* frustums;
|
|
} XrSceneBoundsMSFT;
|
|
|
|
typedef struct XrNewSceneComputeInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t requestedFeatureCount;
|
|
const XrSceneComputeFeatureMSFT* requestedFeatures;
|
|
XrSceneComputeConsistencyMSFT consistency;
|
|
XrSceneBoundsMSFT bounds;
|
|
} XrNewSceneComputeInfoMSFT;
|
|
|
|
// XrVisualMeshComputeLodInfoMSFT extends XrNewSceneComputeInfoMSFT
|
|
typedef struct XrVisualMeshComputeLodInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrMeshComputeLodMSFT lod;
|
|
} XrVisualMeshComputeLodInfoMSFT;
|
|
|
|
typedef struct XrSceneComponentMSFT {
|
|
XrSceneComponentTypeMSFT componentType;
|
|
XrUuidMSFT id;
|
|
XrUuidMSFT parentId;
|
|
XrTime updateTime;
|
|
} XrSceneComponentMSFT;
|
|
|
|
typedef struct XrSceneComponentsMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t componentCapacityInput;
|
|
uint32_t componentCountOutput;
|
|
XrSceneComponentMSFT* components;
|
|
} XrSceneComponentsMSFT;
|
|
|
|
typedef struct XrSceneComponentsGetInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSceneComponentTypeMSFT componentType;
|
|
} XrSceneComponentsGetInfoMSFT;
|
|
|
|
typedef struct XrSceneComponentLocationMSFT {
|
|
XrSpaceLocationFlags flags;
|
|
XrPosef pose;
|
|
} XrSceneComponentLocationMSFT;
|
|
|
|
typedef struct XrSceneComponentLocationsMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t locationCount;
|
|
XrSceneComponentLocationMSFT* locations;
|
|
} XrSceneComponentLocationsMSFT;
|
|
|
|
typedef struct XrSceneComponentsLocateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
uint32_t componentIdCount;
|
|
const XrUuidMSFT* componentIds;
|
|
} XrSceneComponentsLocateInfoMSFT;
|
|
|
|
typedef struct XrSceneObjectMSFT {
|
|
XrSceneObjectTypeMSFT objectType;
|
|
} XrSceneObjectMSFT;
|
|
|
|
// XrSceneObjectsMSFT extends XrSceneComponentsMSFT
|
|
typedef struct XrSceneObjectsMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t sceneObjectCount;
|
|
XrSceneObjectMSFT* sceneObjects;
|
|
} XrSceneObjectsMSFT;
|
|
|
|
// XrSceneComponentParentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
|
|
typedef struct XrSceneComponentParentFilterInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrUuidMSFT parentId;
|
|
} XrSceneComponentParentFilterInfoMSFT;
|
|
|
|
// XrSceneObjectTypesFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
|
|
typedef struct XrSceneObjectTypesFilterInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t objectTypeCount;
|
|
const XrSceneObjectTypeMSFT* objectTypes;
|
|
} XrSceneObjectTypesFilterInfoMSFT;
|
|
|
|
typedef struct XrScenePlaneMSFT {
|
|
XrScenePlaneAlignmentTypeMSFT alignment;
|
|
XrExtent2Df size;
|
|
uint64_t meshBufferId;
|
|
XrBool32 supportsIndicesUint16;
|
|
} XrScenePlaneMSFT;
|
|
|
|
// XrScenePlanesMSFT extends XrSceneComponentsMSFT
|
|
typedef struct XrScenePlanesMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t scenePlaneCount;
|
|
XrScenePlaneMSFT* scenePlanes;
|
|
} XrScenePlanesMSFT;
|
|
|
|
// XrScenePlaneAlignmentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
|
|
typedef struct XrScenePlaneAlignmentFilterInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t alignmentCount;
|
|
const XrScenePlaneAlignmentTypeMSFT* alignments;
|
|
} XrScenePlaneAlignmentFilterInfoMSFT;
|
|
|
|
typedef struct XrSceneMeshMSFT {
|
|
uint64_t meshBufferId;
|
|
XrBool32 supportsIndicesUint16;
|
|
} XrSceneMeshMSFT;
|
|
|
|
// XrSceneMeshesMSFT extends XrSceneComponentsMSFT
|
|
typedef struct XrSceneMeshesMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t sceneMeshCount;
|
|
XrSceneMeshMSFT* sceneMeshes;
|
|
} XrSceneMeshesMSFT;
|
|
|
|
typedef struct XrSceneMeshBuffersGetInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint64_t meshBufferId;
|
|
} XrSceneMeshBuffersGetInfoMSFT;
|
|
|
|
typedef struct XrSceneMeshBuffersMSFT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
} XrSceneMeshBuffersMSFT;
|
|
|
|
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 */
|
|
|
|
|
|
// XR_MSFT_scene_understanding_serialization is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_scene_understanding_serialization 1
|
|
#define XR_MSFT_scene_understanding_serialization_SPEC_VERSION 2
|
|
#define XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME "XR_MSFT_scene_understanding_serialization"
|
|
typedef struct XrSerializedSceneFragmentDataGetInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrUuidMSFT sceneFragmentId;
|
|
} XrSerializedSceneFragmentDataGetInfoMSFT;
|
|
|
|
typedef struct XrDeserializeSceneFragmentMSFT {
|
|
uint32_t bufferSize;
|
|
const uint8_t* buffer;
|
|
} XrDeserializeSceneFragmentMSFT;
|
|
|
|
typedef struct XrSceneDeserializeInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t fragmentCount;
|
|
const XrDeserializeSceneFragmentMSFT* fragments;
|
|
} XrSceneDeserializeInfoMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDeserializeSceneMSFT)(XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT* deserializeInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSerializedSceneFragmentDataMSFT)(XrSceneMSFT scene, const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo, uint32_t countInput, uint32_t* readOutput, uint8_t* buffer);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDeserializeSceneMSFT(
|
|
XrSceneObserverMSFT sceneObserver,
|
|
const XrSceneDeserializeInfoMSFT* deserializeInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSerializedSceneFragmentDataMSFT(
|
|
XrSceneMSFT scene,
|
|
const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo,
|
|
uint32_t countInput,
|
|
uint32_t* readOutput,
|
|
uint8_t* buffer);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_display_refresh_rate is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_display_refresh_rate 1
|
|
#define XR_FB_display_refresh_rate_SPEC_VERSION 1
|
|
#define XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME "XR_FB_display_refresh_rate"
|
|
typedef struct XrEventDataDisplayRefreshRateChangedFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float fromDisplayRefreshRate;
|
|
float toDisplayRefreshRate;
|
|
} XrEventDataDisplayRefreshRateChangedFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateDisplayRefreshRatesFB)(XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t* displayRefreshRateCountOutput, float* displayRefreshRates);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetDisplayRefreshRateFB)(XrSession session, float* displayRefreshRate);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestDisplayRefreshRateFB)(XrSession session, float displayRefreshRate);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB(
|
|
XrSession session,
|
|
uint32_t displayRefreshRateCapacityInput,
|
|
uint32_t* displayRefreshRateCountOutput,
|
|
float* displayRefreshRates);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetDisplayRefreshRateFB(
|
|
XrSession session,
|
|
float* displayRefreshRate);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB(
|
|
XrSession session,
|
|
float displayRefreshRate);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HTC_vive_cosmos_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_vive_cosmos_controller_interaction 1
|
|
#define XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION 1
|
|
#define XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_cosmos_controller_interaction"
|
|
|
|
|
|
// XR_HTCX_vive_tracker_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTCX_vive_tracker_interaction 1
|
|
#define XR_HTCX_vive_tracker_interaction_SPEC_VERSION 3
|
|
#define XR_HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTCX_vive_tracker_interaction"
|
|
typedef struct XrViveTrackerPathsHTCX {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrPath persistentPath;
|
|
XrPath rolePath;
|
|
} XrViveTrackerPathsHTCX;
|
|
|
|
typedef struct XrEventDataViveTrackerConnectedHTCX {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrViveTrackerPathsHTCX* paths;
|
|
} XrEventDataViveTrackerConnectedHTCX;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViveTrackerPathsHTCX)(XrInstance instance, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrViveTrackerPathsHTCX* paths);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViveTrackerPathsHTCX(
|
|
XrInstance instance,
|
|
uint32_t pathCapacityInput,
|
|
uint32_t* pathCountOutput,
|
|
XrViveTrackerPathsHTCX* paths);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HTC_facial_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_facial_tracking 1
|
|
|
|
#define XR_FACIAL_EXPRESSION_EYE_COUNT_HTC 14
|
|
|
|
|
|
#define XR_FACIAL_EXPRESSION_LIP_COUNT_HTC 37
|
|
|
|
XR_DEFINE_HANDLE(XrFacialTrackerHTC)
|
|
#define XR_HTC_facial_tracking_SPEC_VERSION 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 */
|
|
|
|
|
|
// XR_HTC_vive_focus3_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_vive_focus3_controller_interaction 1
|
|
#define XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION 2
|
|
#define XR_HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_focus3_controller_interaction"
|
|
|
|
|
|
// XR_HTC_hand_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_hand_interaction 1
|
|
#define XR_HTC_hand_interaction_SPEC_VERSION 1
|
|
#define XR_HTC_HAND_INTERACTION_EXTENSION_NAME "XR_HTC_hand_interaction"
|
|
|
|
|
|
// XR_HTC_vive_wrist_tracker_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_vive_wrist_tracker_interaction 1
|
|
#define XR_HTC_vive_wrist_tracker_interaction_SPEC_VERSION 1
|
|
#define XR_HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_wrist_tracker_interaction"
|
|
|
|
|
|
// XR_FB_color_space is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_color_space 1
|
|
#define XR_FB_color_space_SPEC_VERSION 3
|
|
#define XR_FB_COLOR_SPACE_EXTENSION_NAME "XR_FB_color_space"
|
|
|
|
typedef enum XrColorSpaceFB {
|
|
XR_COLOR_SPACE_UNMANAGED_FB = 0,
|
|
XR_COLOR_SPACE_REC2020_FB = 1,
|
|
XR_COLOR_SPACE_REC709_FB = 2,
|
|
XR_COLOR_SPACE_RIFT_CV1_FB = 3,
|
|
XR_COLOR_SPACE_RIFT_S_FB = 4,
|
|
XR_COLOR_SPACE_QUEST_FB = 5,
|
|
XR_COLOR_SPACE_P3_FB = 6,
|
|
XR_COLOR_SPACE_ADOBE_RGB_FB = 7,
|
|
XR_COLOR_SPACE_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrColorSpaceFB;
|
|
// XrSystemColorSpacePropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemColorSpacePropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrColorSpaceFB colorSpace;
|
|
} XrSystemColorSpacePropertiesFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesFB)(XrSession session, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceFB* colorSpaces);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetColorSpaceFB)(XrSession session, const XrColorSpaceFB colorSpace);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateColorSpacesFB(
|
|
XrSession session,
|
|
uint32_t colorSpaceCapacityInput,
|
|
uint32_t* colorSpaceCountOutput,
|
|
XrColorSpaceFB* colorSpaces);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetColorSpaceFB(
|
|
XrSession session,
|
|
const XrColorSpaceFB colorSpace);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_hand_tracking_mesh 1
|
|
#define XR_FB_hand_tracking_mesh_SPEC_VERSION 3
|
|
#define XR_FB_HAND_TRACKING_MESH_EXTENSION_NAME "XR_FB_hand_tracking_mesh"
|
|
typedef struct XrVector4sFB {
|
|
int16_t x;
|
|
int16_t y;
|
|
int16_t z;
|
|
int16_t w;
|
|
} XrVector4sFB;
|
|
|
|
typedef struct XrHandTrackingMeshFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t jointCapacityInput;
|
|
uint32_t jointCountOutput;
|
|
XrPosef* jointBindPoses;
|
|
float* jointRadii;
|
|
XrHandJointEXT* jointParents;
|
|
uint32_t vertexCapacityInput;
|
|
uint32_t vertexCountOutput;
|
|
XrVector3f* vertexPositions;
|
|
XrVector3f* vertexNormals;
|
|
XrVector2f* vertexUVs;
|
|
XrVector4sFB* vertexBlendIndices;
|
|
XrVector4f* vertexBlendWeights;
|
|
uint32_t indexCapacityInput;
|
|
uint32_t indexCountOutput;
|
|
int16_t* indices;
|
|
} XrHandTrackingMeshFB;
|
|
|
|
// XrHandTrackingScaleFB extends XrHandJointLocationsEXT
|
|
typedef struct XrHandTrackingScaleFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
float sensorOutput;
|
|
float currentOutput;
|
|
XrBool32 overrideHandScale;
|
|
float overrideValueInput;
|
|
} XrHandTrackingScaleFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetHandMeshFB)(XrHandTrackerEXT handTracker, XrHandTrackingMeshFB* mesh);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetHandMeshFB(
|
|
XrHandTrackerEXT handTracker,
|
|
XrHandTrackingMeshFB* mesh);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_hand_tracking_aim is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_hand_tracking_aim 1
|
|
#define XR_FB_hand_tracking_aim_SPEC_VERSION 2
|
|
#define XR_FB_HAND_TRACKING_AIM_EXTENSION_NAME "XR_FB_hand_tracking_aim"
|
|
typedef XrFlags64 XrHandTrackingAimFlagsFB;
|
|
|
|
// Flag bits for XrHandTrackingAimFlagsFB
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_COMPUTED_BIT_FB = 0x00000001;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_VALID_BIT_FB = 0x00000002;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_INDEX_PINCHING_BIT_FB = 0x00000004;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MIDDLE_PINCHING_BIT_FB = 0x00000008;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_RING_PINCHING_BIT_FB = 0x00000010;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_LITTLE_PINCHING_BIT_FB = 0x00000020;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_SYSTEM_GESTURE_BIT_FB = 0x00000040;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_DOMINANT_HAND_BIT_FB = 0x00000080;
|
|
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MENU_PRESSED_BIT_FB = 0x00000100;
|
|
|
|
// XrHandTrackingAimStateFB extends XrHandJointLocationsEXT
|
|
typedef struct XrHandTrackingAimStateFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrHandTrackingAimFlagsFB status;
|
|
XrPosef aimPose;
|
|
float pinchStrengthIndex;
|
|
float pinchStrengthMiddle;
|
|
float pinchStrengthRing;
|
|
float pinchStrengthLittle;
|
|
} XrHandTrackingAimStateFB;
|
|
|
|
|
|
|
|
// XR_FB_hand_tracking_capsules is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_hand_tracking_capsules 1
|
|
#define XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB 2
|
|
#define XR_HAND_TRACKING_CAPSULE_COUNT_FB 19
|
|
#define XR_FB_hand_tracking_capsules_SPEC_VERSION 3
|
|
#define XR_FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME "XR_FB_hand_tracking_capsules"
|
|
#define XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB
|
|
#define XR_FB_HAND_TRACKING_CAPSULE_COUNT XR_HAND_TRACKING_CAPSULE_COUNT_FB
|
|
typedef struct XrHandCapsuleFB {
|
|
XrVector3f points[XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB];
|
|
float radius;
|
|
XrHandJointEXT joint;
|
|
} XrHandCapsuleFB;
|
|
|
|
// XrHandTrackingCapsulesStateFB extends XrHandJointLocationsEXT
|
|
typedef struct XrHandTrackingCapsulesStateFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrHandCapsuleFB capsules[XR_HAND_TRACKING_CAPSULE_COUNT_FB];
|
|
} XrHandTrackingCapsulesStateFB;
|
|
|
|
|
|
|
|
// XR_FB_spatial_entity is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity 1
|
|
XR_DEFINE_ATOM(XrAsyncRequestIdFB)
|
|
#define XR_FB_spatial_entity_SPEC_VERSION 3
|
|
#define XR_FB_SPATIAL_ENTITY_EXTENSION_NAME "XR_FB_spatial_entity"
|
|
|
|
typedef enum XrSpaceComponentTypeFB {
|
|
XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB = 0,
|
|
XR_SPACE_COMPONENT_TYPE_STORABLE_FB = 1,
|
|
XR_SPACE_COMPONENT_TYPE_SHARABLE_FB = 2,
|
|
XR_SPACE_COMPONENT_TYPE_BOUNDED_2D_FB = 3,
|
|
XR_SPACE_COMPONENT_TYPE_BOUNDED_3D_FB = 4,
|
|
XR_SPACE_COMPONENT_TYPE_SEMANTIC_LABELS_FB = 5,
|
|
XR_SPACE_COMPONENT_TYPE_ROOM_LAYOUT_FB = 6,
|
|
XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB = 7,
|
|
XR_SPACE_COMPONENT_TYPE_TRIANGLE_MESH_META = 1000269000,
|
|
XR_SPACE_COMPONENT_TYPE_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrSpaceComponentTypeFB;
|
|
// XrSystemSpatialEntityPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemSpatialEntityPropertiesFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsSpatialEntity;
|
|
} XrSystemSpatialEntityPropertiesFB;
|
|
|
|
typedef struct XrSpatialAnchorCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrPosef poseInSpace;
|
|
XrTime time;
|
|
} XrSpatialAnchorCreateInfoFB;
|
|
|
|
typedef struct XrSpaceComponentStatusSetInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpaceComponentTypeFB componentType;
|
|
XrBool32 enabled;
|
|
XrDuration timeout;
|
|
} XrSpaceComponentStatusSetInfoFB;
|
|
|
|
typedef struct XrSpaceComponentStatusFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 enabled;
|
|
XrBool32 changePending;
|
|
} XrSpaceComponentStatusFB;
|
|
|
|
typedef XrUuid XrUuidEXT;
|
|
|
|
typedef struct XrEventDataSpatialAnchorCreateCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
XrSpace space;
|
|
XrUuidEXT uuid;
|
|
} XrEventDataSpatialAnchorCreateCompleteFB;
|
|
|
|
typedef struct XrEventDataSpaceSetStatusCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
XrSpace space;
|
|
XrUuidEXT uuid;
|
|
XrSpaceComponentTypeFB componentType;
|
|
XrBool32 enabled;
|
|
} XrEventDataSpaceSetStatusCompleteFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFB)(XrSession session, const XrSpatialAnchorCreateInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUuidFB)(XrSpace space, XrUuidEXT* uuid);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpaceSupportedComponentsFB)(XrSpace space, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpaceComponentTypeFB* componentTypes);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetSpaceComponentStatusFB)(XrSpace space, const XrSpaceComponentStatusSetInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceComponentStatusFB)(XrSpace space, XrSpaceComponentTypeFB componentType, XrSpaceComponentStatusFB* status);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFB(
|
|
XrSession session,
|
|
const XrSpatialAnchorCreateInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUuidFB(
|
|
XrSpace space,
|
|
XrUuidEXT* uuid);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpaceSupportedComponentsFB(
|
|
XrSpace space,
|
|
uint32_t componentTypeCapacityInput,
|
|
uint32_t* componentTypeCountOutput,
|
|
XrSpaceComponentTypeFB* componentTypes);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetSpaceComponentStatusFB(
|
|
XrSpace space,
|
|
const XrSpaceComponentStatusSetInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceComponentStatusFB(
|
|
XrSpace space,
|
|
XrSpaceComponentTypeFB componentType,
|
|
XrSpaceComponentStatusFB* status);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_foveation is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_foveation 1
|
|
XR_DEFINE_HANDLE(XrFoveationProfileFB)
|
|
#define XR_FB_foveation_SPEC_VERSION 1
|
|
#define XR_FB_FOVEATION_EXTENSION_NAME "XR_FB_foveation"
|
|
typedef XrFlags64 XrSwapchainCreateFoveationFlagsFB;
|
|
|
|
// Flag bits for XrSwapchainCreateFoveationFlagsFB
|
|
static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB = 0x00000001;
|
|
static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB = 0x00000002;
|
|
|
|
typedef XrFlags64 XrSwapchainStateFoveationFlagsFB;
|
|
|
|
// Flag bits for XrSwapchainStateFoveationFlagsFB
|
|
|
|
typedef struct XrFoveationProfileCreateInfoFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
} XrFoveationProfileCreateInfoFB;
|
|
|
|
// XrSwapchainCreateInfoFoveationFB extends XrSwapchainCreateInfo
|
|
typedef struct XrSwapchainCreateInfoFoveationFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrSwapchainCreateFoveationFlagsFB flags;
|
|
} XrSwapchainCreateInfoFoveationFB;
|
|
|
|
typedef struct XrSwapchainStateFoveationFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrSwapchainStateFoveationFlagsFB flags;
|
|
XrFoveationProfileFB profile;
|
|
} XrSwapchainStateFoveationFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateFoveationProfileFB)(XrSession session, const XrFoveationProfileCreateInfoFB* createInfo, XrFoveationProfileFB* profile);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyFoveationProfileFB)(XrFoveationProfileFB profile);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFoveationProfileFB(
|
|
XrSession session,
|
|
const XrFoveationProfileCreateInfoFB* createInfo,
|
|
XrFoveationProfileFB* profile);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFoveationProfileFB(
|
|
XrFoveationProfileFB profile);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_foveation_configuration is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_foveation_configuration 1
|
|
#define XR_FB_foveation_configuration_SPEC_VERSION 1
|
|
#define XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME "XR_FB_foveation_configuration"
|
|
|
|
typedef enum XrFoveationLevelFB {
|
|
XR_FOVEATION_LEVEL_NONE_FB = 0,
|
|
XR_FOVEATION_LEVEL_LOW_FB = 1,
|
|
XR_FOVEATION_LEVEL_MEDIUM_FB = 2,
|
|
XR_FOVEATION_LEVEL_HIGH_FB = 3,
|
|
XR_FOVEATION_LEVEL_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFoveationLevelFB;
|
|
|
|
typedef enum XrFoveationDynamicFB {
|
|
XR_FOVEATION_DYNAMIC_DISABLED_FB = 0,
|
|
XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB = 1,
|
|
XR_FOVEATION_DYNAMIC_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFoveationDynamicFB;
|
|
// XrFoveationLevelProfileCreateInfoFB extends XrFoveationProfileCreateInfoFB
|
|
typedef struct XrFoveationLevelProfileCreateInfoFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrFoveationLevelFB level;
|
|
float verticalOffset;
|
|
XrFoveationDynamicFB dynamic;
|
|
} XrFoveationLevelProfileCreateInfoFB;
|
|
|
|
|
|
|
|
// XR_FB_keyboard_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_keyboard_tracking 1
|
|
#define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB 128
|
|
#define XR_FB_keyboard_tracking_SPEC_VERSION 1
|
|
#define XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME "XR_FB_keyboard_tracking"
|
|
typedef XrFlags64 XrKeyboardTrackingFlagsFB;
|
|
|
|
// Flag bits for XrKeyboardTrackingFlagsFB
|
|
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_EXISTS_BIT_FB = 0x00000001;
|
|
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_LOCAL_BIT_FB = 0x00000002;
|
|
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_REMOTE_BIT_FB = 0x00000004;
|
|
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_CONNECTED_BIT_FB = 0x00000008;
|
|
|
|
typedef XrFlags64 XrKeyboardTrackingQueryFlagsFB;
|
|
|
|
// Flag bits for XrKeyboardTrackingQueryFlagsFB
|
|
static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB = 0x00000002;
|
|
static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB = 0x00000004;
|
|
|
|
// XrSystemKeyboardTrackingPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemKeyboardTrackingPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsKeyboardTracking;
|
|
} XrSystemKeyboardTrackingPropertiesFB;
|
|
|
|
typedef struct XrKeyboardTrackingDescriptionFB {
|
|
uint64_t trackedKeyboardId;
|
|
XrVector3f size;
|
|
XrKeyboardTrackingFlagsFB flags;
|
|
char name[XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB];
|
|
} XrKeyboardTrackingDescriptionFB;
|
|
|
|
typedef struct XrKeyboardSpaceCreateInfoFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint64_t trackedKeyboardId;
|
|
} XrKeyboardSpaceCreateInfoFB;
|
|
|
|
typedef struct XrKeyboardTrackingQueryFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrKeyboardTrackingQueryFlagsFB flags;
|
|
} XrKeyboardTrackingQueryFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrQuerySystemTrackedKeyboardFB)(XrSession session, const XrKeyboardTrackingQueryFB* queryInfo, XrKeyboardTrackingDescriptionFB* keyboard);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateKeyboardSpaceFB)(XrSession session, const XrKeyboardSpaceCreateInfoFB* createInfo, XrSpace* keyboardSpace);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrQuerySystemTrackedKeyboardFB(
|
|
XrSession session,
|
|
const XrKeyboardTrackingQueryFB* queryInfo,
|
|
XrKeyboardTrackingDescriptionFB* keyboard);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateKeyboardSpaceFB(
|
|
XrSession session,
|
|
const XrKeyboardSpaceCreateInfoFB* createInfo,
|
|
XrSpace* keyboardSpace);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_triangle_mesh is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_triangle_mesh 1
|
|
XR_DEFINE_HANDLE(XrTriangleMeshFB)
|
|
#define XR_FB_triangle_mesh_SPEC_VERSION 2
|
|
#define XR_FB_TRIANGLE_MESH_EXTENSION_NAME "XR_FB_triangle_mesh"
|
|
|
|
typedef enum XrWindingOrderFB {
|
|
XR_WINDING_ORDER_UNKNOWN_FB = 0,
|
|
XR_WINDING_ORDER_CW_FB = 1,
|
|
XR_WINDING_ORDER_CCW_FB = 2,
|
|
XR_WINDING_ORDER_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrWindingOrderFB;
|
|
typedef XrFlags64 XrTriangleMeshFlagsFB;
|
|
|
|
// Flag bits for XrTriangleMeshFlagsFB
|
|
static const XrTriangleMeshFlagsFB XR_TRIANGLE_MESH_MUTABLE_BIT_FB = 0x00000001;
|
|
|
|
typedef struct XrTriangleMeshCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrTriangleMeshFlagsFB flags;
|
|
XrWindingOrderFB windingOrder;
|
|
uint32_t vertexCount;
|
|
const XrVector3f* vertexBuffer;
|
|
uint32_t triangleCount;
|
|
const uint32_t* indexBuffer;
|
|
} XrTriangleMeshCreateInfoFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateTriangleMeshFB)(XrSession session, const XrTriangleMeshCreateInfoFB* createInfo, XrTriangleMeshFB* outTriangleMesh);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyTriangleMeshFB)(XrTriangleMeshFB mesh);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshGetVertexBufferFB)(XrTriangleMeshFB mesh, XrVector3f** outVertexBuffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshGetIndexBufferFB)(XrTriangleMeshFB mesh, uint32_t** outIndexBuffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshBeginUpdateFB)(XrTriangleMeshFB mesh);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshEndUpdateFB)(XrTriangleMeshFB mesh, uint32_t vertexCount, uint32_t triangleCount);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshBeginVertexBufferUpdateFB)(XrTriangleMeshFB mesh, uint32_t* outVertexCount);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrTriangleMeshEndVertexBufferUpdateFB)(XrTriangleMeshFB mesh);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateTriangleMeshFB(
|
|
XrSession session,
|
|
const XrTriangleMeshCreateInfoFB* createInfo,
|
|
XrTriangleMeshFB* outTriangleMesh);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyTriangleMeshFB(
|
|
XrTriangleMeshFB mesh);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetVertexBufferFB(
|
|
XrTriangleMeshFB mesh,
|
|
XrVector3f** outVertexBuffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetIndexBufferFB(
|
|
XrTriangleMeshFB mesh,
|
|
uint32_t** outIndexBuffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginUpdateFB(
|
|
XrTriangleMeshFB mesh);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndUpdateFB(
|
|
XrTriangleMeshFB mesh,
|
|
uint32_t vertexCount,
|
|
uint32_t triangleCount);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginVertexBufferUpdateFB(
|
|
XrTriangleMeshFB mesh,
|
|
uint32_t* outVertexCount);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndVertexBufferUpdateFB(
|
|
XrTriangleMeshFB mesh);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_passthrough is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_passthrough 1
|
|
XR_DEFINE_HANDLE(XrPassthroughFB)
|
|
XR_DEFINE_HANDLE(XrPassthroughLayerFB)
|
|
XR_DEFINE_HANDLE(XrGeometryInstanceFB)
|
|
#define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256
|
|
#define XR_FB_passthrough_SPEC_VERSION 4
|
|
#define XR_FB_PASSTHROUGH_EXTENSION_NAME "XR_FB_passthrough"
|
|
|
|
typedef enum XrPassthroughLayerPurposeFB {
|
|
XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB = 0,
|
|
XR_PASSTHROUGH_LAYER_PURPOSE_PROJECTED_FB = 1,
|
|
XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_HANDS_FB = 1000203001,
|
|
XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_MASKED_HANDS_FB = 1000203002,
|
|
XR_PASSTHROUGH_LAYER_PURPOSE_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrPassthroughLayerPurposeFB;
|
|
typedef XrFlags64 XrPassthroughCapabilityFlagsFB;
|
|
|
|
// Flag bits for XrPassthroughCapabilityFlagsFB
|
|
static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_BIT_FB = 0x00000001;
|
|
static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB = 0x00000002;
|
|
static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB = 0x00000004;
|
|
|
|
typedef XrFlags64 XrPassthroughFlagsFB;
|
|
|
|
// Flag bits for XrPassthroughFlagsFB
|
|
static const XrPassthroughFlagsFB XR_PASSTHROUGH_IS_RUNNING_AT_CREATION_BIT_FB = 0x00000001;
|
|
static const XrPassthroughFlagsFB XR_PASSTHROUGH_LAYER_DEPTH_BIT_FB = 0x00000002;
|
|
|
|
typedef XrFlags64 XrPassthroughStateChangedFlagsFB;
|
|
|
|
// Flag bits for XrPassthroughStateChangedFlagsFB
|
|
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_REINIT_REQUIRED_BIT_FB = 0x00000001;
|
|
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_NON_RECOVERABLE_ERROR_BIT_FB = 0x00000002;
|
|
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RECOVERABLE_ERROR_BIT_FB = 0x00000004;
|
|
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RESTORED_ERROR_BIT_FB = 0x00000008;
|
|
|
|
// XrSystemPassthroughPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemPassthroughPropertiesFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsPassthrough;
|
|
} XrSystemPassthroughPropertiesFB;
|
|
|
|
// XrSystemPassthroughProperties2FB extends XrSystemProperties
|
|
typedef struct XrSystemPassthroughProperties2FB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughCapabilityFlagsFB capabilities;
|
|
} XrSystemPassthroughProperties2FB;
|
|
|
|
typedef struct XrPassthroughCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughFlagsFB flags;
|
|
} XrPassthroughCreateInfoFB;
|
|
|
|
typedef struct XrPassthroughLayerCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughFB passthrough;
|
|
XrPassthroughFlagsFB flags;
|
|
XrPassthroughLayerPurposeFB purpose;
|
|
} XrPassthroughLayerCreateInfoFB;
|
|
|
|
typedef struct XrCompositionLayerPassthroughFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerFlags flags;
|
|
XrSpace space;
|
|
XrPassthroughLayerFB layerHandle;
|
|
} XrCompositionLayerPassthroughFB;
|
|
|
|
typedef struct XrGeometryInstanceCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughLayerFB layer;
|
|
XrTriangleMeshFB mesh;
|
|
XrSpace baseSpace;
|
|
XrPosef pose;
|
|
XrVector3f scale;
|
|
} XrGeometryInstanceCreateInfoFB;
|
|
|
|
typedef struct XrGeometryInstanceTransformFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
XrPosef pose;
|
|
XrVector3f scale;
|
|
} XrGeometryInstanceTransformFB;
|
|
|
|
typedef struct XrPassthroughStyleFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float textureOpacityFactor;
|
|
XrColor4f edgeColor;
|
|
} XrPassthroughStyleFB;
|
|
|
|
// XrPassthroughColorMapMonoToRgbaFB extends XrPassthroughStyleFB
|
|
typedef struct XrPassthroughColorMapMonoToRgbaFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrColor4f textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB];
|
|
} XrPassthroughColorMapMonoToRgbaFB;
|
|
|
|
// XrPassthroughColorMapMonoToMonoFB extends XrPassthroughStyleFB
|
|
typedef struct XrPassthroughColorMapMonoToMonoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint8_t textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB];
|
|
} XrPassthroughColorMapMonoToMonoFB;
|
|
|
|
// XrPassthroughBrightnessContrastSaturationFB extends XrPassthroughStyleFB
|
|
typedef struct XrPassthroughBrightnessContrastSaturationFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float brightness;
|
|
float contrast;
|
|
float saturation;
|
|
} XrPassthroughBrightnessContrastSaturationFB;
|
|
|
|
typedef struct XrEventDataPassthroughStateChangedFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughStateChangedFlagsFB flags;
|
|
} XrEventDataPassthroughStateChangedFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughFB)(XrSession session, const XrPassthroughCreateInfoFB* createInfo, XrPassthroughFB* outPassthrough);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughFB)(XrPassthroughFB passthrough);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPassthroughStartFB)(XrPassthroughFB passthrough);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPassthroughPauseFB)(XrPassthroughFB passthrough);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughLayerFB)(XrSession session, const XrPassthroughLayerCreateInfoFB* createInfo, XrPassthroughLayerFB* outLayer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughLayerFB)(XrPassthroughLayerFB layer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerPauseFB)(XrPassthroughLayerFB layer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerResumeFB)(XrPassthroughLayerFB layer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerSetStyleFB)(XrPassthroughLayerFB layer, const XrPassthroughStyleFB* style);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateGeometryInstanceFB)(XrSession session, const XrGeometryInstanceCreateInfoFB* createInfo, XrGeometryInstanceFB* outGeometryInstance);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyGeometryInstanceFB)(XrGeometryInstanceFB instance);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGeometryInstanceSetTransformFB)(XrGeometryInstanceFB instance, const XrGeometryInstanceTransformFB* transformation);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughFB(
|
|
XrSession session,
|
|
const XrPassthroughCreateInfoFB* createInfo,
|
|
XrPassthroughFB* outPassthrough);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughFB(
|
|
XrPassthroughFB passthrough);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughStartFB(
|
|
XrPassthroughFB passthrough);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughPauseFB(
|
|
XrPassthroughFB passthrough);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughLayerFB(
|
|
XrSession session,
|
|
const XrPassthroughLayerCreateInfoFB* createInfo,
|
|
XrPassthroughLayerFB* outLayer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughLayerFB(
|
|
XrPassthroughLayerFB layer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerPauseFB(
|
|
XrPassthroughLayerFB layer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerResumeFB(
|
|
XrPassthroughLayerFB layer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetStyleFB(
|
|
XrPassthroughLayerFB layer,
|
|
const XrPassthroughStyleFB* style);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateGeometryInstanceFB(
|
|
XrSession session,
|
|
const XrGeometryInstanceCreateInfoFB* createInfo,
|
|
XrGeometryInstanceFB* outGeometryInstance);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyGeometryInstanceFB(
|
|
XrGeometryInstanceFB instance);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGeometryInstanceSetTransformFB(
|
|
XrGeometryInstanceFB instance,
|
|
const XrGeometryInstanceTransformFB* transformation);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_render_model is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_render_model 1
|
|
|
|
#define XR_NULL_RENDER_MODEL_KEY_FB 0
|
|
|
|
XR_DEFINE_ATOM(XrRenderModelKeyFB)
|
|
#define XR_MAX_RENDER_MODEL_NAME_SIZE_FB 64
|
|
#define XR_FB_render_model_SPEC_VERSION 4
|
|
#define XR_FB_RENDER_MODEL_EXTENSION_NAME "XR_FB_render_model"
|
|
typedef XrFlags64 XrRenderModelFlagsFB;
|
|
|
|
// Flag bits for XrRenderModelFlagsFB
|
|
static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB = 0x00000001;
|
|
static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB = 0x00000002;
|
|
|
|
typedef struct XrRenderModelPathInfoFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrPath path;
|
|
} XrRenderModelPathInfoFB;
|
|
|
|
typedef struct XrRenderModelPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t vendorId;
|
|
char modelName[XR_MAX_RENDER_MODEL_NAME_SIZE_FB];
|
|
XrRenderModelKeyFB modelKey;
|
|
uint32_t modelVersion;
|
|
XrRenderModelFlagsFB flags;
|
|
} XrRenderModelPropertiesFB;
|
|
|
|
typedef struct XrRenderModelBufferFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t bufferCapacityInput;
|
|
uint32_t bufferCountOutput;
|
|
uint8_t* buffer;
|
|
} XrRenderModelBufferFB;
|
|
|
|
typedef struct XrRenderModelLoadInfoFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrRenderModelKeyFB modelKey;
|
|
} XrRenderModelLoadInfoFB;
|
|
|
|
// XrSystemRenderModelPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemRenderModelPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsRenderModelLoading;
|
|
} XrSystemRenderModelPropertiesFB;
|
|
|
|
// XrRenderModelCapabilitiesRequestFB extends XrRenderModelPropertiesFB
|
|
typedef struct XrRenderModelCapabilitiesRequestFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrRenderModelFlagsFB flags;
|
|
} XrRenderModelCapabilitiesRequestFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRenderModelPathsFB)(XrSession session, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrRenderModelPathInfoFB* paths);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPropertiesFB)(XrSession session, XrPath path, XrRenderModelPropertiesFB* properties);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLoadRenderModelFB)(XrSession session, const XrRenderModelLoadInfoFB* info, XrRenderModelBufferFB* buffer);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRenderModelPathsFB(
|
|
XrSession session,
|
|
uint32_t pathCapacityInput,
|
|
uint32_t* pathCountOutput,
|
|
XrRenderModelPathInfoFB* paths);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPropertiesFB(
|
|
XrSession session,
|
|
XrPath path,
|
|
XrRenderModelPropertiesFB* properties);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLoadRenderModelFB(
|
|
XrSession session,
|
|
const XrRenderModelLoadInfoFB* info,
|
|
XrRenderModelBufferFB* buffer);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_VARJO_foveated_rendering is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_foveated_rendering 1
|
|
#define XR_VARJO_foveated_rendering_SPEC_VERSION 3
|
|
#define XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME "XR_VARJO_foveated_rendering"
|
|
// XrViewLocateFoveatedRenderingVARJO extends XrViewLocateInfo
|
|
typedef struct XrViewLocateFoveatedRenderingVARJO {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 foveatedRenderingActive;
|
|
} XrViewLocateFoveatedRenderingVARJO;
|
|
|
|
// XrFoveatedViewConfigurationViewVARJO extends XrViewConfigurationView
|
|
typedef struct XrFoveatedViewConfigurationViewVARJO {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 foveatedRenderingActive;
|
|
} XrFoveatedViewConfigurationViewVARJO;
|
|
|
|
// XrSystemFoveatedRenderingPropertiesVARJO extends XrSystemProperties
|
|
typedef struct XrSystemFoveatedRenderingPropertiesVARJO {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsFoveatedRendering;
|
|
} XrSystemFoveatedRenderingPropertiesVARJO;
|
|
|
|
|
|
|
|
// XR_VARJO_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_composition_layer_depth_test 1
|
|
#define XR_VARJO_composition_layer_depth_test_SPEC_VERSION 2
|
|
#define XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_VARJO_composition_layer_depth_test"
|
|
// XrCompositionLayerDepthTestVARJO extends XrCompositionLayerProjection
|
|
typedef struct XrCompositionLayerDepthTestVARJO {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float depthTestRangeNearZ;
|
|
float depthTestRangeFarZ;
|
|
} XrCompositionLayerDepthTestVARJO;
|
|
|
|
|
|
|
|
// XR_VARJO_environment_depth_estimation is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_environment_depth_estimation 1
|
|
#define XR_VARJO_environment_depth_estimation_SPEC_VERSION 1
|
|
#define XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME "XR_VARJO_environment_depth_estimation"
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetEnvironmentDepthEstimationVARJO)(XrSession session, XrBool32 enabled);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthEstimationVARJO(
|
|
XrSession session,
|
|
XrBool32 enabled);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_VARJO_marker_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_marker_tracking 1
|
|
#define XR_VARJO_marker_tracking_SPEC_VERSION 1
|
|
#define XR_VARJO_MARKER_TRACKING_EXTENSION_NAME "XR_VARJO_marker_tracking"
|
|
// XrSystemMarkerTrackingPropertiesVARJO extends XrSystemProperties
|
|
typedef struct XrSystemMarkerTrackingPropertiesVARJO {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsMarkerTracking;
|
|
} XrSystemMarkerTrackingPropertiesVARJO;
|
|
|
|
typedef struct XrEventDataMarkerTrackingUpdateVARJO {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint64_t markerId;
|
|
XrBool32 isActive;
|
|
XrBool32 isPredicted;
|
|
XrTime time;
|
|
} XrEventDataMarkerTrackingUpdateVARJO;
|
|
|
|
typedef struct XrMarkerSpaceCreateInfoVARJO {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint64_t markerId;
|
|
XrPosef poseInMarkerSpace;
|
|
} XrMarkerSpaceCreateInfoVARJO;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingVARJO)(XrSession session, XrBool32 enabled);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingTimeoutVARJO)(XrSession session, uint64_t markerId, XrDuration timeout);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingPredictionVARJO)(XrSession session, uint64_t markerId, XrBool32 enable);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerSizeVARJO)(XrSession session, uint64_t markerId, XrExtent2Df* size);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceVARJO)(XrSession session, const XrMarkerSpaceCreateInfoVARJO* createInfo, XrSpace* space);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingVARJO(
|
|
XrSession session,
|
|
XrBool32 enabled);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingTimeoutVARJO(
|
|
XrSession session,
|
|
uint64_t markerId,
|
|
XrDuration timeout);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingPredictionVARJO(
|
|
XrSession session,
|
|
uint64_t markerId,
|
|
XrBool32 enable);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerSizeVARJO(
|
|
XrSession session,
|
|
uint64_t markerId,
|
|
XrExtent2Df* size);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceVARJO(
|
|
XrSession session,
|
|
const XrMarkerSpaceCreateInfoVARJO* createInfo,
|
|
XrSpace* space);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_VARJO_view_offset is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_view_offset 1
|
|
#define XR_VARJO_view_offset_SPEC_VERSION 1
|
|
#define XR_VARJO_VIEW_OFFSET_EXTENSION_NAME "XR_VARJO_view_offset"
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetViewOffsetVARJO)(XrSession session, float offset);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetViewOffsetVARJO(
|
|
XrSession session,
|
|
float offset);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_VARJO_xr4_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_VARJO_xr4_controller_interaction 1
|
|
#define XR_VARJO_xr4_controller_interaction_SPEC_VERSION 1
|
|
#define XR_VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_VARJO_xr4_controller_interaction"
|
|
|
|
|
|
// XR_ML_ml2_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_ml2_controller_interaction 1
|
|
#define XR_ML_ml2_controller_interaction_SPEC_VERSION 1
|
|
#define XR_ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_ML_ml2_controller_interaction"
|
|
|
|
|
|
// XR_ML_frame_end_info is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_frame_end_info 1
|
|
#define XR_ML_frame_end_info_SPEC_VERSION 1
|
|
#define XR_ML_FRAME_END_INFO_EXTENSION_NAME "XR_ML_frame_end_info"
|
|
typedef XrFlags64 XrFrameEndInfoFlagsML;
|
|
|
|
// Flag bits for XrFrameEndInfoFlagsML
|
|
static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_PROTECTED_BIT_ML = 0x00000001;
|
|
static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_VIGNETTE_BIT_ML = 0x00000002;
|
|
|
|
// XrFrameEndInfoML extends XrFrameEndInfo
|
|
typedef struct XrFrameEndInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float focusDistance;
|
|
XrFrameEndInfoFlagsML flags;
|
|
} XrFrameEndInfoML;
|
|
|
|
|
|
|
|
// XR_ML_global_dimmer is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_global_dimmer 1
|
|
#define XR_ML_global_dimmer_SPEC_VERSION 1
|
|
#define XR_ML_GLOBAL_DIMMER_EXTENSION_NAME "XR_ML_global_dimmer"
|
|
typedef XrFlags64 XrGlobalDimmerFrameEndInfoFlagsML;
|
|
|
|
// Flag bits for XrGlobalDimmerFrameEndInfoFlagsML
|
|
static const XrGlobalDimmerFrameEndInfoFlagsML XR_GLOBAL_DIMMER_FRAME_END_INFO_ENABLED_BIT_ML = 0x00000001;
|
|
|
|
// XrGlobalDimmerFrameEndInfoML extends XrFrameEndInfo
|
|
typedef struct XrGlobalDimmerFrameEndInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float dimmerValue;
|
|
XrGlobalDimmerFrameEndInfoFlagsML flags;
|
|
} XrGlobalDimmerFrameEndInfoML;
|
|
|
|
|
|
|
|
// XR_ML_marker_understanding is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_marker_understanding 1
|
|
XR_DEFINE_ATOM(XrMarkerML)
|
|
XR_DEFINE_HANDLE(XrMarkerDetectorML)
|
|
#define XR_ML_marker_understanding_SPEC_VERSION 1
|
|
#define XR_ML_MARKER_UNDERSTANDING_EXTENSION_NAME "XR_ML_marker_understanding"
|
|
|
|
typedef enum XrMarkerDetectorProfileML {
|
|
XR_MARKER_DETECTOR_PROFILE_DEFAULT_ML = 0,
|
|
XR_MARKER_DETECTOR_PROFILE_SPEED_ML = 1,
|
|
XR_MARKER_DETECTOR_PROFILE_ACCURACY_ML = 2,
|
|
XR_MARKER_DETECTOR_PROFILE_SMALL_TARGETS_ML = 3,
|
|
XR_MARKER_DETECTOR_PROFILE_LARGE_FOV_ML = 4,
|
|
XR_MARKER_DETECTOR_PROFILE_CUSTOM_ML = 5,
|
|
XR_MARKER_DETECTOR_PROFILE_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorProfileML;
|
|
|
|
typedef enum XrMarkerTypeML {
|
|
XR_MARKER_TYPE_ARUCO_ML = 0,
|
|
XR_MARKER_TYPE_APRIL_TAG_ML = 1,
|
|
XR_MARKER_TYPE_QR_ML = 2,
|
|
XR_MARKER_TYPE_EAN_13_ML = 3,
|
|
XR_MARKER_TYPE_UPC_A_ML = 4,
|
|
XR_MARKER_TYPE_CODE_128_ML = 5,
|
|
XR_MARKER_TYPE_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerTypeML;
|
|
|
|
typedef enum XrMarkerArucoDictML {
|
|
XR_MARKER_ARUCO_DICT_4X4_50_ML = 0,
|
|
XR_MARKER_ARUCO_DICT_4X4_100_ML = 1,
|
|
XR_MARKER_ARUCO_DICT_4X4_250_ML = 2,
|
|
XR_MARKER_ARUCO_DICT_4X4_1000_ML = 3,
|
|
XR_MARKER_ARUCO_DICT_5X5_50_ML = 4,
|
|
XR_MARKER_ARUCO_DICT_5X5_100_ML = 5,
|
|
XR_MARKER_ARUCO_DICT_5X5_250_ML = 6,
|
|
XR_MARKER_ARUCO_DICT_5X5_1000_ML = 7,
|
|
XR_MARKER_ARUCO_DICT_6X6_50_ML = 8,
|
|
XR_MARKER_ARUCO_DICT_6X6_100_ML = 9,
|
|
XR_MARKER_ARUCO_DICT_6X6_250_ML = 10,
|
|
XR_MARKER_ARUCO_DICT_6X6_1000_ML = 11,
|
|
XR_MARKER_ARUCO_DICT_7X7_50_ML = 12,
|
|
XR_MARKER_ARUCO_DICT_7X7_100_ML = 13,
|
|
XR_MARKER_ARUCO_DICT_7X7_250_ML = 14,
|
|
XR_MARKER_ARUCO_DICT_7X7_1000_ML = 15,
|
|
XR_MARKER_ARUCO_DICT_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerArucoDictML;
|
|
|
|
typedef enum XrMarkerAprilTagDictML {
|
|
XR_MARKER_APRIL_TAG_DICT_16H5_ML = 0,
|
|
XR_MARKER_APRIL_TAG_DICT_25H9_ML = 1,
|
|
XR_MARKER_APRIL_TAG_DICT_36H10_ML = 2,
|
|
XR_MARKER_APRIL_TAG_DICT_36H11_ML = 3,
|
|
XR_MARKER_APRIL_TAG_DICT_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerAprilTagDictML;
|
|
|
|
typedef enum XrMarkerDetectorFpsML {
|
|
XR_MARKER_DETECTOR_FPS_LOW_ML = 0,
|
|
XR_MARKER_DETECTOR_FPS_MEDIUM_ML = 1,
|
|
XR_MARKER_DETECTOR_FPS_HIGH_ML = 2,
|
|
XR_MARKER_DETECTOR_FPS_MAX_ML = 3,
|
|
XR_MARKER_DETECTOR_FPS_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorFpsML;
|
|
|
|
typedef enum XrMarkerDetectorResolutionML {
|
|
XR_MARKER_DETECTOR_RESOLUTION_LOW_ML = 0,
|
|
XR_MARKER_DETECTOR_RESOLUTION_MEDIUM_ML = 1,
|
|
XR_MARKER_DETECTOR_RESOLUTION_HIGH_ML = 2,
|
|
XR_MARKER_DETECTOR_RESOLUTION_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorResolutionML;
|
|
|
|
typedef enum XrMarkerDetectorCameraML {
|
|
XR_MARKER_DETECTOR_CAMERA_RGB_CAMERA_ML = 0,
|
|
XR_MARKER_DETECTOR_CAMERA_WORLD_CAMERAS_ML = 1,
|
|
XR_MARKER_DETECTOR_CAMERA_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorCameraML;
|
|
|
|
typedef enum XrMarkerDetectorCornerRefineMethodML {
|
|
XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_NONE_ML = 0,
|
|
XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_SUBPIX_ML = 1,
|
|
XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_CONTOUR_ML = 2,
|
|
XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML = 3,
|
|
XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorCornerRefineMethodML;
|
|
|
|
typedef enum XrMarkerDetectorFullAnalysisIntervalML {
|
|
XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ML = 0,
|
|
XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_FAST_ML = 1,
|
|
XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MEDIUM_ML = 2,
|
|
XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_SLOW_ML = 3,
|
|
XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorFullAnalysisIntervalML;
|
|
|
|
typedef enum XrMarkerDetectorStatusML {
|
|
XR_MARKER_DETECTOR_STATUS_PENDING_ML = 0,
|
|
XR_MARKER_DETECTOR_STATUS_READY_ML = 1,
|
|
XR_MARKER_DETECTOR_STATUS_ERROR_ML = 2,
|
|
XR_MARKER_DETECTOR_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrMarkerDetectorStatusML;
|
|
// XrSystemMarkerUnderstandingPropertiesML extends XrSystemProperties
|
|
typedef struct XrSystemMarkerUnderstandingPropertiesML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsMarkerUnderstanding;
|
|
} XrSystemMarkerUnderstandingPropertiesML;
|
|
|
|
typedef struct XrMarkerDetectorCreateInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrMarkerDetectorProfileML profile;
|
|
XrMarkerTypeML markerType;
|
|
} XrMarkerDetectorCreateInfoML;
|
|
|
|
// XrMarkerDetectorArucoInfoML extends XrMarkerDetectorCreateInfoML
|
|
typedef struct XrMarkerDetectorArucoInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrMarkerArucoDictML arucoDict;
|
|
} XrMarkerDetectorArucoInfoML;
|
|
|
|
// XrMarkerDetectorSizeInfoML extends XrMarkerDetectorCreateInfoML
|
|
typedef struct XrMarkerDetectorSizeInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float markerLength;
|
|
} XrMarkerDetectorSizeInfoML;
|
|
|
|
// XrMarkerDetectorAprilTagInfoML extends XrMarkerDetectorCreateInfoML
|
|
typedef struct XrMarkerDetectorAprilTagInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrMarkerAprilTagDictML aprilTagDict;
|
|
} XrMarkerDetectorAprilTagInfoML;
|
|
|
|
// XrMarkerDetectorCustomProfileInfoML extends XrMarkerDetectorCreateInfoML
|
|
typedef struct XrMarkerDetectorCustomProfileInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrMarkerDetectorFpsML fpsHint;
|
|
XrMarkerDetectorResolutionML resolutionHint;
|
|
XrMarkerDetectorCameraML cameraHint;
|
|
XrMarkerDetectorCornerRefineMethodML cornerRefineMethod;
|
|
XrBool32 useEdgeRefinement;
|
|
XrMarkerDetectorFullAnalysisIntervalML fullAnalysisIntervalHint;
|
|
} XrMarkerDetectorCustomProfileInfoML;
|
|
|
|
typedef struct XrMarkerDetectorSnapshotInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrMarkerDetectorSnapshotInfoML;
|
|
|
|
typedef struct XrMarkerDetectorStateML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrMarkerDetectorStatusML state;
|
|
} XrMarkerDetectorStateML;
|
|
|
|
typedef struct XrMarkerSpaceCreateInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrMarkerDetectorML markerDetector;
|
|
XrMarkerML marker;
|
|
XrPosef poseInMarkerSpace;
|
|
} XrMarkerSpaceCreateInfoML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerDetectorML)(XrSession session, const XrMarkerDetectorCreateInfoML* createInfo, XrMarkerDetectorML* markerDetector);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyMarkerDetectorML)(XrMarkerDetectorML markerDetector);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSnapshotMarkerDetectorML)(XrMarkerDetectorML markerDetector, XrMarkerDetectorSnapshotInfoML* snapshotInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerDetectorStateML)(XrMarkerDetectorML markerDetector, XrMarkerDetectorStateML* state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkersML)(XrMarkerDetectorML markerDetector, uint32_t markerCapacityInput, uint32_t* markerCountOutput, XrMarkerML* markers);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerReprojectionErrorML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, float* reprojectionErrorMeters);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerLengthML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, float* meters);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerNumberML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, uint64_t* number);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerStringML)(XrMarkerDetectorML markerDetector, XrMarkerML marker, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceML)(XrSession session, const XrMarkerSpaceCreateInfoML* createInfo, XrSpace* space);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerDetectorML(
|
|
XrSession session,
|
|
const XrMarkerDetectorCreateInfoML* createInfo,
|
|
XrMarkerDetectorML* markerDetector);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyMarkerDetectorML(
|
|
XrMarkerDetectorML markerDetector);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSnapshotMarkerDetectorML(
|
|
XrMarkerDetectorML markerDetector,
|
|
XrMarkerDetectorSnapshotInfoML* snapshotInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerDetectorStateML(
|
|
XrMarkerDetectorML markerDetector,
|
|
XrMarkerDetectorStateML* state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkersML(
|
|
XrMarkerDetectorML markerDetector,
|
|
uint32_t markerCapacityInput,
|
|
uint32_t* markerCountOutput,
|
|
XrMarkerML* markers);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerReprojectionErrorML(
|
|
XrMarkerDetectorML markerDetector,
|
|
XrMarkerML marker,
|
|
float* reprojectionErrorMeters);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerLengthML(
|
|
XrMarkerDetectorML markerDetector,
|
|
XrMarkerML marker,
|
|
float* meters);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerNumberML(
|
|
XrMarkerDetectorML markerDetector,
|
|
XrMarkerML marker,
|
|
uint64_t* number);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerStringML(
|
|
XrMarkerDetectorML markerDetector,
|
|
XrMarkerML marker,
|
|
uint32_t bufferCapacityInput,
|
|
uint32_t* bufferCountOutput,
|
|
char* buffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceML(
|
|
XrSession session,
|
|
const XrMarkerSpaceCreateInfoML* createInfo,
|
|
XrSpace* space);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ML_localization_map is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_localization_map 1
|
|
XR_DEFINE_HANDLE(XrExportedLocalizationMapML)
|
|
#define XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML 64
|
|
#define XR_ML_localization_map_SPEC_VERSION 1
|
|
#define XR_ML_LOCALIZATION_MAP_EXTENSION_NAME "XR_ML_localization_map"
|
|
|
|
typedef enum XrLocalizationMapStateML {
|
|
XR_LOCALIZATION_MAP_STATE_NOT_LOCALIZED_ML = 0,
|
|
XR_LOCALIZATION_MAP_STATE_LOCALIZED_ML = 1,
|
|
XR_LOCALIZATION_MAP_STATE_LOCALIZATION_PENDING_ML = 2,
|
|
XR_LOCALIZATION_MAP_STATE_LOCALIZATION_SLEEPING_BEFORE_RETRY_ML = 3,
|
|
XR_LOCALIZATION_MAP_STATE_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrLocalizationMapStateML;
|
|
|
|
typedef enum XrLocalizationMapTypeML {
|
|
XR_LOCALIZATION_MAP_TYPE_ON_DEVICE_ML = 0,
|
|
XR_LOCALIZATION_MAP_TYPE_CLOUD_ML = 1,
|
|
XR_LOCALIZATION_MAP_TYPE_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrLocalizationMapTypeML;
|
|
|
|
typedef enum XrLocalizationMapConfidenceML {
|
|
XR_LOCALIZATION_MAP_CONFIDENCE_POOR_ML = 0,
|
|
XR_LOCALIZATION_MAP_CONFIDENCE_FAIR_ML = 1,
|
|
XR_LOCALIZATION_MAP_CONFIDENCE_GOOD_ML = 2,
|
|
XR_LOCALIZATION_MAP_CONFIDENCE_EXCELLENT_ML = 3,
|
|
XR_LOCALIZATION_MAP_CONFIDENCE_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrLocalizationMapConfidenceML;
|
|
typedef XrFlags64 XrLocalizationMapErrorFlagsML;
|
|
|
|
// Flag bits for XrLocalizationMapErrorFlagsML
|
|
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_UNKNOWN_BIT_ML = 0x00000001;
|
|
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_OUT_OF_MAPPED_AREA_BIT_ML = 0x00000002;
|
|
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_FEATURE_COUNT_BIT_ML = 0x00000004;
|
|
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_EXCESSIVE_MOTION_BIT_ML = 0x00000008;
|
|
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_LIGHT_BIT_ML = 0x00000010;
|
|
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_HEADPOSE_BIT_ML = 0x00000020;
|
|
|
|
typedef struct XrLocalizationMapML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
char name[XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML];
|
|
XrUuidEXT mapUuid;
|
|
XrLocalizationMapTypeML mapType;
|
|
} XrLocalizationMapML;
|
|
|
|
typedef struct XrEventDataLocalizationChangedML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSession session;
|
|
XrLocalizationMapStateML state;
|
|
XrLocalizationMapML map;
|
|
XrLocalizationMapConfidenceML confidence;
|
|
XrLocalizationMapErrorFlagsML errorFlags;
|
|
} XrEventDataLocalizationChangedML;
|
|
|
|
typedef struct XrLocalizationMapQueryInfoBaseHeaderML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrLocalizationMapQueryInfoBaseHeaderML;
|
|
|
|
typedef struct XrMapLocalizationRequestInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrUuidEXT mapUuid;
|
|
} XrMapLocalizationRequestInfoML;
|
|
|
|
typedef struct XrLocalizationMapImportInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t size;
|
|
char* data;
|
|
} XrLocalizationMapImportInfoML;
|
|
|
|
typedef struct XrLocalizationEnableEventsInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 enabled;
|
|
} XrLocalizationEnableEventsInfoML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnableLocalizationEventsML)(XrSession session, const XrLocalizationEnableEventsInfoML * info);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrQueryLocalizationMapsML)(XrSession session, const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo, uint32_t mapCapacityInput, uint32_t * mapCountOutput, XrLocalizationMapML* maps);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestMapLocalizationML)(XrSession session, const XrMapLocalizationRequestInfoML* requestInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrImportLocalizationMapML)(XrSession session, const XrLocalizationMapImportInfoML* importInfo, XrUuidEXT* mapUuid);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateExportedLocalizationMapML)(XrSession session, const XrUuidEXT* mapUuid, XrExportedLocalizationMapML* map);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyExportedLocalizationMapML)(XrExportedLocalizationMapML map);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetExportedLocalizationMapDataML)(XrExportedLocalizationMapML map, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnableLocalizationEventsML(
|
|
XrSession session,
|
|
const XrLocalizationEnableEventsInfoML * info);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrQueryLocalizationMapsML(
|
|
XrSession session,
|
|
const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo,
|
|
uint32_t mapCapacityInput,
|
|
uint32_t * mapCountOutput,
|
|
XrLocalizationMapML* maps);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestMapLocalizationML(
|
|
XrSession session,
|
|
const XrMapLocalizationRequestInfoML* requestInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrImportLocalizationMapML(
|
|
XrSession session,
|
|
const XrLocalizationMapImportInfoML* importInfo,
|
|
XrUuidEXT* mapUuid);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateExportedLocalizationMapML(
|
|
XrSession session,
|
|
const XrUuidEXT* mapUuid,
|
|
XrExportedLocalizationMapML* map);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyExportedLocalizationMapML(
|
|
XrExportedLocalizationMapML map);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetExportedLocalizationMapDataML(
|
|
XrExportedLocalizationMapML map,
|
|
uint32_t bufferCapacityInput,
|
|
uint32_t* bufferCountOutput,
|
|
char* buffer);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ML_spatial_anchors is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_spatial_anchors 1
|
|
XR_DEFINE_OPAQUE_64(XrFutureEXT)
|
|
#define XR_ML_spatial_anchors_SPEC_VERSION 1
|
|
#define XR_ML_SPATIAL_ANCHORS_EXTENSION_NAME "XR_ML_spatial_anchors"
|
|
|
|
typedef enum XrSpatialAnchorConfidenceML {
|
|
XR_SPATIAL_ANCHOR_CONFIDENCE_LOW_ML = 0,
|
|
XR_SPATIAL_ANCHOR_CONFIDENCE_MEDIUM_ML = 1,
|
|
XR_SPATIAL_ANCHOR_CONFIDENCE_HIGH_ML = 2,
|
|
XR_SPATIAL_ANCHOR_CONFIDENCE_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrSpatialAnchorConfidenceML;
|
|
typedef struct XR_MAY_ALIAS XrSpatialAnchorsCreateInfoBaseHeaderML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpatialAnchorsCreateInfoBaseHeaderML;
|
|
|
|
typedef struct XrSpatialAnchorsCreateInfoFromPoseML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrPosef poseInBaseSpace;
|
|
XrTime time;
|
|
} XrSpatialAnchorsCreateInfoFromPoseML;
|
|
|
|
typedef struct XrCreateSpatialAnchorsCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
uint32_t spaceCount;
|
|
XrSpace* spaces;
|
|
} XrCreateSpatialAnchorsCompletionML;
|
|
|
|
typedef struct XrSpatialAnchorStateML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrSpatialAnchorConfidenceML confidence;
|
|
} XrSpatialAnchorStateML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsAsyncML)(XrSession session, const XrSpatialAnchorsCreateInfoBaseHeaderML* createInfo, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsCompleteML)(XrSession session, XrFutureEXT future, XrCreateSpatialAnchorsCompletionML* completion);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorStateML)(XrSpace anchor, XrSpatialAnchorStateML* state);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsAsyncML(
|
|
XrSession session,
|
|
const XrSpatialAnchorsCreateInfoBaseHeaderML* createInfo,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsCompleteML(
|
|
XrSession session,
|
|
XrFutureEXT future,
|
|
XrCreateSpatialAnchorsCompletionML* completion);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorStateML(
|
|
XrSpace anchor,
|
|
XrSpatialAnchorStateML* state);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ML_spatial_anchors_storage is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_spatial_anchors_storage 1
|
|
XR_DEFINE_HANDLE(XrSpatialAnchorsStorageML)
|
|
#define XR_ML_spatial_anchors_storage_SPEC_VERSION 1
|
|
#define XR_ML_SPATIAL_ANCHORS_STORAGE_EXTENSION_NAME "XR_ML_spatial_anchors_storage"
|
|
typedef struct XrSpatialAnchorsCreateStorageInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpatialAnchorsCreateStorageInfoML;
|
|
|
|
typedef struct XR_MAY_ALIAS XrSpatialAnchorsQueryInfoBaseHeaderML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpatialAnchorsQueryInfoBaseHeaderML;
|
|
|
|
typedef struct XrSpatialAnchorsQueryInfoRadiusML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrVector3f center;
|
|
XrTime time;
|
|
float radius;
|
|
} XrSpatialAnchorsQueryInfoRadiusML;
|
|
|
|
typedef struct XrSpatialAnchorsQueryCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
uint32_t uuidCapacityInput;
|
|
uint32_t uuidCountOutput;
|
|
XrUuidEXT* uuids;
|
|
} XrSpatialAnchorsQueryCompletionML;
|
|
|
|
typedef struct XrSpatialAnchorsCreateInfoFromUuidsML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpatialAnchorsStorageML storage;
|
|
uint32_t uuidCount;
|
|
const XrUuidEXT* uuids;
|
|
} XrSpatialAnchorsCreateInfoFromUuidsML;
|
|
|
|
typedef struct XrSpatialAnchorsPublishInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t anchorCount;
|
|
const XrSpace* anchors;
|
|
uint64_t expiration;
|
|
} XrSpatialAnchorsPublishInfoML;
|
|
|
|
typedef struct XrSpatialAnchorsPublishCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
uint32_t uuidCount;
|
|
XrUuidEXT* uuids;
|
|
} XrSpatialAnchorsPublishCompletionML;
|
|
|
|
typedef struct XrSpatialAnchorsDeleteInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t uuidCount;
|
|
const XrUuidEXT* uuids;
|
|
} XrSpatialAnchorsDeleteInfoML;
|
|
|
|
typedef struct XrSpatialAnchorsDeleteCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
} XrSpatialAnchorsDeleteCompletionML;
|
|
|
|
typedef struct XrSpatialAnchorsUpdateExpirationInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t uuidCount;
|
|
const XrUuidEXT* uuids;
|
|
uint64_t expiration;
|
|
} XrSpatialAnchorsUpdateExpirationInfoML;
|
|
|
|
typedef struct XrSpatialAnchorsUpdateExpirationCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
} XrSpatialAnchorsUpdateExpirationCompletionML;
|
|
|
|
typedef struct XrSpatialAnchorCompletionResultML {
|
|
XrUuidEXT uuid;
|
|
XrResult result;
|
|
} XrSpatialAnchorCompletionResultML;
|
|
|
|
// XrSpatialAnchorsPublishCompletionDetailsML extends XrSpatialAnchorsPublishCompletionML
|
|
typedef struct XrSpatialAnchorsPublishCompletionDetailsML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t resultCount;
|
|
XrSpatialAnchorCompletionResultML* results;
|
|
} XrSpatialAnchorsPublishCompletionDetailsML;
|
|
|
|
// XrSpatialAnchorsDeleteCompletionDetailsML extends XrSpatialAnchorsDeleteCompletionML
|
|
typedef struct XrSpatialAnchorsDeleteCompletionDetailsML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t resultCount;
|
|
XrSpatialAnchorCompletionResultML* results;
|
|
} XrSpatialAnchorsDeleteCompletionDetailsML;
|
|
|
|
// XrSpatialAnchorsUpdateExpirationCompletionDetailsML extends XrSpatialAnchorsUpdateExpirationCompletionML
|
|
typedef struct XrSpatialAnchorsUpdateExpirationCompletionDetailsML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t resultCount;
|
|
XrSpatialAnchorCompletionResultML* results;
|
|
} XrSpatialAnchorsUpdateExpirationCompletionDetailsML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorsStorageML)(XrSession session, const XrSpatialAnchorsCreateStorageInfoML* createInfo, XrSpatialAnchorsStorageML* storage);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorsStorageML)(XrSpatialAnchorsStorageML storage);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsQueryInfoBaseHeaderML* queryInfo, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrQuerySpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsQueryCompletionML* completion);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPublishSpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsPublishInfoML* publishInfo, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPublishSpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsPublishCompletionML* completion);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDeleteSpatialAnchorsAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsDeleteInfoML* deleteInfo, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDeleteSpatialAnchorsCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsDeleteCompletionML* completion);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUpdateSpatialAnchorsExpirationAsyncML)(XrSpatialAnchorsStorageML storage, const XrSpatialAnchorsUpdateExpirationInfoML* updateInfo, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUpdateSpatialAnchorsExpirationCompleteML)(XrSpatialAnchorsStorageML storage, XrFutureEXT future, XrSpatialAnchorsUpdateExpirationCompletionML* completion);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorsStorageML(
|
|
XrSession session,
|
|
const XrSpatialAnchorsCreateStorageInfoML* createInfo,
|
|
XrSpatialAnchorsStorageML* storage);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorsStorageML(
|
|
XrSpatialAnchorsStorageML storage);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialAnchorsAsyncML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
const XrSpatialAnchorsQueryInfoBaseHeaderML* queryInfo,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpatialAnchorsCompleteML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorsQueryCompletionML* completion);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPublishSpatialAnchorsAsyncML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
const XrSpatialAnchorsPublishInfoML* publishInfo,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPublishSpatialAnchorsCompleteML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorsPublishCompletionML* completion);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDeleteSpatialAnchorsAsyncML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
const XrSpatialAnchorsDeleteInfoML* deleteInfo,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDeleteSpatialAnchorsCompleteML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorsDeleteCompletionML* completion);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSpatialAnchorsExpirationAsyncML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
const XrSpatialAnchorsUpdateExpirationInfoML* updateInfo,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSpatialAnchorsExpirationCompleteML(
|
|
XrSpatialAnchorsStorageML storage,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorsUpdateExpirationCompletionML* completion);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_MSFT_spatial_anchor_persistence is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_spatial_anchor_persistence 1
|
|
XR_DEFINE_HANDLE(XrSpatialAnchorStoreConnectionMSFT)
|
|
#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT 256
|
|
#define XR_MSFT_spatial_anchor_persistence_SPEC_VERSION 2
|
|
#define XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME "XR_MSFT_spatial_anchor_persistence"
|
|
typedef struct XrSpatialAnchorPersistenceNameMSFT {
|
|
char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT];
|
|
} XrSpatialAnchorPersistenceNameMSFT;
|
|
|
|
typedef struct XrSpatialAnchorPersistenceInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName;
|
|
XrSpatialAnchorMSFT spatialAnchor;
|
|
} XrSpatialAnchorPersistenceInfoMSFT;
|
|
|
|
typedef struct XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore;
|
|
XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName;
|
|
} XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession session, XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNameCapacityInput, uint32_t* spatialAnchorNameCountOutput, XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo, XrSpatialAnchorMSFT* spatialAnchor);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorStoreConnectionMSFT(
|
|
XrSession session,
|
|
XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorStoreConnectionMSFT(
|
|
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorMSFT(
|
|
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
|
|
const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePersistedSpatialAnchorNamesMSFT(
|
|
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
|
|
uint32_t spatialAnchorNameCapacityInput,
|
|
uint32_t* spatialAnchorNameCountOutput,
|
|
XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPersistedNameMSFT(
|
|
XrSession session,
|
|
const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo,
|
|
XrSpatialAnchorMSFT* spatialAnchor);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorMSFT(
|
|
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
|
|
const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT(
|
|
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_MSFT_scene_marker is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MSFT_scene_marker 1
|
|
#define XR_MSFT_scene_marker_SPEC_VERSION 1
|
|
#define XR_MSFT_SCENE_MARKER_EXTENSION_NAME "XR_MSFT_scene_marker"
|
|
|
|
typedef enum XrSceneMarkerTypeMSFT {
|
|
XR_SCENE_MARKER_TYPE_QR_CODE_MSFT = 1,
|
|
XR_SCENE_MARKER_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneMarkerTypeMSFT;
|
|
|
|
typedef enum XrSceneMarkerQRCodeSymbolTypeMSFT {
|
|
XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_QR_CODE_MSFT = 1,
|
|
XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_MICRO_QR_CODE_MSFT = 2,
|
|
XR_SCENE_MARKER_QRCODE_SYMBOL_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
|
|
} XrSceneMarkerQRCodeSymbolTypeMSFT;
|
|
typedef struct XrSceneMarkerMSFT {
|
|
XrSceneMarkerTypeMSFT markerType;
|
|
XrTime lastSeenTime;
|
|
XrOffset2Df center;
|
|
XrExtent2Df size;
|
|
} XrSceneMarkerMSFT;
|
|
|
|
// XrSceneMarkersMSFT extends XrSceneComponentsMSFT
|
|
typedef struct XrSceneMarkersMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t sceneMarkerCapacityInput;
|
|
XrSceneMarkerMSFT* sceneMarkers;
|
|
} XrSceneMarkersMSFT;
|
|
|
|
// XrSceneMarkerTypeFilterMSFT extends XrSceneComponentsGetInfoMSFT
|
|
typedef struct XrSceneMarkerTypeFilterMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t markerTypeCount;
|
|
XrSceneMarkerTypeMSFT* markerTypes;
|
|
} XrSceneMarkerTypeFilterMSFT;
|
|
|
|
typedef struct XrSceneMarkerQRCodeMSFT {
|
|
XrSceneMarkerQRCodeSymbolTypeMSFT symbolType;
|
|
uint8_t version;
|
|
} XrSceneMarkerQRCodeMSFT;
|
|
|
|
// XrSceneMarkerQRCodesMSFT extends XrSceneComponentsMSFT
|
|
typedef struct XrSceneMarkerQRCodesMSFT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t qrCodeCapacityInput;
|
|
XrSceneMarkerQRCodeMSFT* qrCodes;
|
|
} XrSceneMarkerQRCodesMSFT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerRawDataMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerDecodedStringMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerRawDataMSFT(
|
|
XrSceneMSFT scene,
|
|
const XrUuidMSFT* markerId,
|
|
uint32_t bufferCapacityInput,
|
|
uint32_t* bufferCountOutput,
|
|
uint8_t* buffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerDecodedStringMSFT(
|
|
XrSceneMSFT scene,
|
|
const XrUuidMSFT* markerId,
|
|
uint32_t bufferCapacityInput,
|
|
uint32_t* bufferCountOutput,
|
|
char* buffer);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ULTRALEAP_hand_tracking_forearm is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ULTRALEAP_hand_tracking_forearm 1
|
|
|
|
#define XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP 27
|
|
|
|
#define XR_ULTRALEAP_hand_tracking_forearm_SPEC_VERSION 1
|
|
#define XR_ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME "XR_ULTRALEAP_hand_tracking_forearm"
|
|
|
|
typedef enum XrHandForearmJointULTRALEAP {
|
|
XR_HAND_FOREARM_JOINT_PALM_ULTRALEAP = 0,
|
|
XR_HAND_FOREARM_JOINT_WRIST_ULTRALEAP = 1,
|
|
XR_HAND_FOREARM_JOINT_THUMB_METACARPAL_ULTRALEAP = 2,
|
|
XR_HAND_FOREARM_JOINT_THUMB_PROXIMAL_ULTRALEAP = 3,
|
|
XR_HAND_FOREARM_JOINT_THUMB_DISTAL_ULTRALEAP = 4,
|
|
XR_HAND_FOREARM_JOINT_THUMB_TIP_ULTRALEAP = 5,
|
|
XR_HAND_FOREARM_JOINT_INDEX_METACARPAL_ULTRALEAP = 6,
|
|
XR_HAND_FOREARM_JOINT_INDEX_PROXIMAL_ULTRALEAP = 7,
|
|
XR_HAND_FOREARM_JOINT_INDEX_INTERMEDIATE_ULTRALEAP = 8,
|
|
XR_HAND_FOREARM_JOINT_INDEX_DISTAL_ULTRALEAP = 9,
|
|
XR_HAND_FOREARM_JOINT_INDEX_TIP_ULTRALEAP = 10,
|
|
XR_HAND_FOREARM_JOINT_MIDDLE_METACARPAL_ULTRALEAP = 11,
|
|
XR_HAND_FOREARM_JOINT_MIDDLE_PROXIMAL_ULTRALEAP = 12,
|
|
XR_HAND_FOREARM_JOINT_MIDDLE_INTERMEDIATE_ULTRALEAP = 13,
|
|
XR_HAND_FOREARM_JOINT_MIDDLE_DISTAL_ULTRALEAP = 14,
|
|
XR_HAND_FOREARM_JOINT_MIDDLE_TIP_ULTRALEAP = 15,
|
|
XR_HAND_FOREARM_JOINT_RING_METACARPAL_ULTRALEAP = 16,
|
|
XR_HAND_FOREARM_JOINT_RING_PROXIMAL_ULTRALEAP = 17,
|
|
XR_HAND_FOREARM_JOINT_RING_INTERMEDIATE_ULTRALEAP = 18,
|
|
XR_HAND_FOREARM_JOINT_RING_DISTAL_ULTRALEAP = 19,
|
|
XR_HAND_FOREARM_JOINT_RING_TIP_ULTRALEAP = 20,
|
|
XR_HAND_FOREARM_JOINT_LITTLE_METACARPAL_ULTRALEAP = 21,
|
|
XR_HAND_FOREARM_JOINT_LITTLE_PROXIMAL_ULTRALEAP = 22,
|
|
XR_HAND_FOREARM_JOINT_LITTLE_INTERMEDIATE_ULTRALEAP = 23,
|
|
XR_HAND_FOREARM_JOINT_LITTLE_DISTAL_ULTRALEAP = 24,
|
|
XR_HAND_FOREARM_JOINT_LITTLE_TIP_ULTRALEAP = 25,
|
|
XR_HAND_FOREARM_JOINT_ELBOW_ULTRALEAP = 26,
|
|
XR_HAND_FOREARM_JOINT_MAX_ENUM_ULTRALEAP = 0x7FFFFFFF
|
|
} XrHandForearmJointULTRALEAP;
|
|
|
|
|
|
// XR_FB_spatial_entity_query is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity_query 1
|
|
#define XR_FB_spatial_entity_query_SPEC_VERSION 1
|
|
#define XR_FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME "XR_FB_spatial_entity_query"
|
|
|
|
typedef enum XrSpaceQueryActionFB {
|
|
XR_SPACE_QUERY_ACTION_LOAD_FB = 0,
|
|
XR_SPACE_QUERY_ACTION_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrSpaceQueryActionFB;
|
|
|
|
typedef enum XrSpaceStorageLocationFB {
|
|
XR_SPACE_STORAGE_LOCATION_INVALID_FB = 0,
|
|
XR_SPACE_STORAGE_LOCATION_LOCAL_FB = 1,
|
|
XR_SPACE_STORAGE_LOCATION_CLOUD_FB = 2,
|
|
XR_SPACE_STORAGE_LOCATION_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrSpaceStorageLocationFB;
|
|
typedef struct XR_MAY_ALIAS XrSpaceQueryInfoBaseHeaderFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpaceQueryInfoBaseHeaderFB;
|
|
|
|
typedef struct XR_MAY_ALIAS XrSpaceFilterInfoBaseHeaderFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpaceFilterInfoBaseHeaderFB;
|
|
|
|
typedef struct XrSpaceQueryInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpaceQueryActionFB queryAction;
|
|
uint32_t maxResultCount;
|
|
XrDuration timeout;
|
|
const XrSpaceFilterInfoBaseHeaderFB* filter;
|
|
const XrSpaceFilterInfoBaseHeaderFB* excludeFilter;
|
|
} XrSpaceQueryInfoFB;
|
|
|
|
// XrSpaceStorageLocationFilterInfoFB extends XrSpaceFilterInfoBaseHeaderFB
|
|
typedef struct XrSpaceStorageLocationFilterInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpaceStorageLocationFB location;
|
|
} XrSpaceStorageLocationFilterInfoFB;
|
|
|
|
typedef struct XrSpaceUuidFilterInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t uuidCount;
|
|
XrUuidEXT* uuids;
|
|
} XrSpaceUuidFilterInfoFB;
|
|
|
|
typedef struct XrSpaceComponentFilterInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpaceComponentTypeFB componentType;
|
|
} XrSpaceComponentFilterInfoFB;
|
|
|
|
typedef struct XrSpaceQueryResultFB {
|
|
XrSpace space;
|
|
XrUuidEXT uuid;
|
|
} XrSpaceQueryResultFB;
|
|
|
|
typedef struct XrSpaceQueryResultsFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t resultCapacityInput;
|
|
uint32_t resultCountOutput;
|
|
XrSpaceQueryResultFB* results;
|
|
} XrSpaceQueryResultsFB;
|
|
|
|
typedef struct XrEventDataSpaceQueryResultsAvailableFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
} XrEventDataSpaceQueryResultsAvailableFB;
|
|
|
|
typedef struct XrEventDataSpaceQueryCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
} XrEventDataSpaceQueryCompleteFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrQuerySpacesFB)(XrSession session, const XrSpaceQueryInfoBaseHeaderFB* info, XrAsyncRequestIdFB* requestId);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceQueryResultsFB)(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB* results);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpacesFB(
|
|
XrSession session,
|
|
const XrSpaceQueryInfoBaseHeaderFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRetrieveSpaceQueryResultsFB(
|
|
XrSession session,
|
|
XrAsyncRequestIdFB requestId,
|
|
XrSpaceQueryResultsFB* results);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_spatial_entity_storage is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity_storage 1
|
|
#define XR_FB_spatial_entity_storage_SPEC_VERSION 1
|
|
#define XR_FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME "XR_FB_spatial_entity_storage"
|
|
|
|
typedef enum XrSpacePersistenceModeFB {
|
|
XR_SPACE_PERSISTENCE_MODE_INVALID_FB = 0,
|
|
XR_SPACE_PERSISTENCE_MODE_INDEFINITE_FB = 1,
|
|
XR_SPACE_PERSISTENCE_MODE_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrSpacePersistenceModeFB;
|
|
typedef struct XrSpaceSaveInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrSpaceStorageLocationFB location;
|
|
XrSpacePersistenceModeFB persistenceMode;
|
|
} XrSpaceSaveInfoFB;
|
|
|
|
typedef struct XrSpaceEraseInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrSpaceStorageLocationFB location;
|
|
} XrSpaceEraseInfoFB;
|
|
|
|
typedef struct XrEventDataSpaceSaveCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
XrSpace space;
|
|
XrUuidEXT uuid;
|
|
XrSpaceStorageLocationFB location;
|
|
} XrEventDataSpaceSaveCompleteFB;
|
|
|
|
typedef struct XrEventDataSpaceEraseCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
XrSpace space;
|
|
XrUuidEXT uuid;
|
|
XrSpaceStorageLocationFB location;
|
|
} XrEventDataSpaceEraseCompleteFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceFB)(XrSession session, const XrSpaceSaveInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEraseSpaceFB)(XrSession session, const XrSpaceEraseInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceFB(
|
|
XrSession session,
|
|
const XrSpaceSaveInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEraseSpaceFB(
|
|
XrSession session,
|
|
const XrSpaceEraseInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_touch_controller_pro is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_touch_controller_pro 1
|
|
#define XR_FB_touch_controller_pro_SPEC_VERSION 1
|
|
#define XR_FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME "XR_FB_touch_controller_pro"
|
|
|
|
|
|
// XR_FB_spatial_entity_sharing is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity_sharing 1
|
|
XR_DEFINE_HANDLE(XrSpaceUserFB)
|
|
#define XR_FB_spatial_entity_sharing_SPEC_VERSION 1
|
|
#define XR_FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME "XR_FB_spatial_entity_sharing"
|
|
typedef struct XrSpaceShareInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t spaceCount;
|
|
XrSpace* spaces;
|
|
uint32_t userCount;
|
|
XrSpaceUserFB* users;
|
|
} XrSpaceShareInfoFB;
|
|
|
|
typedef struct XrEventDataSpaceShareCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
} XrEventDataSpaceShareCompleteFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrShareSpacesFB)(XrSession session, const XrSpaceShareInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesFB(
|
|
XrSession session,
|
|
const XrSpaceShareInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_space_warp is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_space_warp 1
|
|
#define XR_FB_space_warp_SPEC_VERSION 2
|
|
#define XR_FB_SPACE_WARP_EXTENSION_NAME "XR_FB_space_warp"
|
|
typedef XrFlags64 XrCompositionLayerSpaceWarpInfoFlagsFB;
|
|
|
|
// Flag bits for XrCompositionLayerSpaceWarpInfoFlagsFB
|
|
static const XrCompositionLayerSpaceWarpInfoFlagsFB XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB = 0x00000001;
|
|
|
|
// XrCompositionLayerSpaceWarpInfoFB extends XrCompositionLayerProjectionView
|
|
typedef struct XrCompositionLayerSpaceWarpInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerSpaceWarpInfoFlagsFB layerFlags;
|
|
XrSwapchainSubImage motionVectorSubImage;
|
|
XrPosef appSpaceDeltaPose;
|
|
XrSwapchainSubImage depthSubImage;
|
|
float minDepth;
|
|
float maxDepth;
|
|
float nearZ;
|
|
float farZ;
|
|
} XrCompositionLayerSpaceWarpInfoFB;
|
|
|
|
// XrSystemSpaceWarpPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemSpaceWarpPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t recommendedMotionVectorImageRectWidth;
|
|
uint32_t recommendedMotionVectorImageRectHeight;
|
|
} XrSystemSpaceWarpPropertiesFB;
|
|
|
|
|
|
|
|
// XR_FB_haptic_amplitude_envelope is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_haptic_amplitude_envelope 1
|
|
|
|
#define XR_MAX_HAPTIC_AMPLITUDE_ENVELOPE_SAMPLES_FB 4000u
|
|
|
|
#define XR_FB_haptic_amplitude_envelope_SPEC_VERSION 1
|
|
#define XR_FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME "XR_FB_haptic_amplitude_envelope"
|
|
typedef struct XrHapticAmplitudeEnvelopeVibrationFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrDuration duration;
|
|
uint32_t amplitudeCount;
|
|
const float* amplitudes;
|
|
} XrHapticAmplitudeEnvelopeVibrationFB;
|
|
|
|
|
|
|
|
// XR_FB_scene is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_scene 1
|
|
#define XR_FB_scene_SPEC_VERSION 4
|
|
#define XR_FB_SCENE_EXTENSION_NAME "XR_FB_scene"
|
|
typedef XrFlags64 XrSemanticLabelsSupportFlagsFB;
|
|
|
|
// Flag bits for XrSemanticLabelsSupportFlagsFB
|
|
static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_MULTIPLE_SEMANTIC_LABELS_BIT_FB = 0x00000001;
|
|
static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_DESK_TO_TABLE_MIGRATION_BIT_FB = 0x00000002;
|
|
static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_INVISIBLE_WALL_FACE_BIT_FB = 0x00000004;
|
|
|
|
typedef XrExtent3Df XrExtent3DfFB;
|
|
|
|
typedef struct XrOffset3DfFB {
|
|
float x;
|
|
float y;
|
|
float z;
|
|
} XrOffset3DfFB;
|
|
|
|
typedef struct XrRect3DfFB {
|
|
XrOffset3DfFB offset;
|
|
XrExtent3DfFB extent;
|
|
} XrRect3DfFB;
|
|
|
|
typedef struct XrSemanticLabelsFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t bufferCapacityInput;
|
|
uint32_t bufferCountOutput;
|
|
char* buffer;
|
|
} XrSemanticLabelsFB;
|
|
|
|
typedef struct XrRoomLayoutFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrUuidEXT floorUuid;
|
|
XrUuidEXT ceilingUuid;
|
|
uint32_t wallUuidCapacityInput;
|
|
uint32_t wallUuidCountOutput;
|
|
XrUuidEXT* wallUuids;
|
|
} XrRoomLayoutFB;
|
|
|
|
typedef struct XrBoundary2DFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t vertexCapacityInput;
|
|
uint32_t vertexCountOutput;
|
|
XrVector2f* vertices;
|
|
} XrBoundary2DFB;
|
|
|
|
typedef struct XrSemanticLabelsSupportInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSemanticLabelsSupportFlagsFB flags;
|
|
const char* recognizedLabels;
|
|
} XrSemanticLabelsSupportInfoFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundingBox2DFB)(XrSession session, XrSpace space, XrRect2Df* boundingBox2DOutput);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundingBox3DFB)(XrSession session, XrSpace space, XrRect3DfFB* boundingBox3DOutput);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceSemanticLabelsFB)(XrSession session, XrSpace space, XrSemanticLabelsFB* semanticLabelsOutput);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceBoundary2DFB)(XrSession session, XrSpace space, XrBoundary2DFB* boundary2DOutput);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceRoomLayoutFB)(XrSession session, XrSpace space, XrRoomLayoutFB* roomLayoutOutput);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox2DFB(
|
|
XrSession session,
|
|
XrSpace space,
|
|
XrRect2Df* boundingBox2DOutput);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox3DFB(
|
|
XrSession session,
|
|
XrSpace space,
|
|
XrRect3DfFB* boundingBox3DOutput);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceSemanticLabelsFB(
|
|
XrSession session,
|
|
XrSpace space,
|
|
XrSemanticLabelsFB* semanticLabelsOutput);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundary2DFB(
|
|
XrSession session,
|
|
XrSpace space,
|
|
XrBoundary2DFB* boundary2DOutput);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceRoomLayoutFB(
|
|
XrSession session,
|
|
XrSpace space,
|
|
XrRoomLayoutFB* roomLayoutOutput);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_palm_pose is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_palm_pose 1
|
|
#define XR_EXT_palm_pose_SPEC_VERSION 3
|
|
#define XR_EXT_PALM_POSE_EXTENSION_NAME "XR_EXT_palm_pose"
|
|
|
|
|
|
// XR_ALMALENCE_digital_lens_control is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ALMALENCE_digital_lens_control 1
|
|
#define XR_ALMALENCE_digital_lens_control_SPEC_VERSION 1
|
|
#define XR_ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME "XR_ALMALENCE_digital_lens_control"
|
|
typedef XrFlags64 XrDigitalLensControlFlagsALMALENCE;
|
|
|
|
// Flag bits for XrDigitalLensControlFlagsALMALENCE
|
|
static const XrDigitalLensControlFlagsALMALENCE XR_DIGITAL_LENS_CONTROL_PROCESSING_DISABLE_BIT_ALMALENCE = 0x00000001;
|
|
|
|
typedef struct XrDigitalLensControlALMALENCE {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrDigitalLensControlFlagsALMALENCE flags;
|
|
} XrDigitalLensControlALMALENCE;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetDigitalLensControlALMALENCE)(XrSession session, const XrDigitalLensControlALMALENCE* digitalLensControl);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetDigitalLensControlALMALENCE(
|
|
XrSession session,
|
|
const XrDigitalLensControlALMALENCE* digitalLensControl);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_scene_capture is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_scene_capture 1
|
|
#define XR_FB_scene_capture_SPEC_VERSION 1
|
|
#define XR_FB_SCENE_CAPTURE_EXTENSION_NAME "XR_FB_scene_capture"
|
|
typedef struct XrEventDataSceneCaptureCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
} XrEventDataSceneCaptureCompleteFB;
|
|
|
|
typedef struct XrSceneCaptureRequestInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t requestByteCount;
|
|
const char* request;
|
|
} XrSceneCaptureRequestInfoFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestSceneCaptureFB)(XrSession session, const XrSceneCaptureRequestInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestSceneCaptureFB(
|
|
XrSession session,
|
|
const XrSceneCaptureRequestInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_spatial_entity_container is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity_container 1
|
|
#define XR_FB_spatial_entity_container_SPEC_VERSION 2
|
|
#define XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME "XR_FB_spatial_entity_container"
|
|
typedef struct XrSpaceContainerFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t uuidCapacityInput;
|
|
uint32_t uuidCountOutput;
|
|
XrUuidEXT* uuids;
|
|
} XrSpaceContainerFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceContainerFB)(XrSession session, XrSpace space, XrSpaceContainerFB* spaceContainerOutput);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceContainerFB(
|
|
XrSession session,
|
|
XrSpace space,
|
|
XrSpaceContainerFB* spaceContainerOutput);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_foveation_eye_tracked is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_foveation_eye_tracked 1
|
|
#define XR_FOVEATION_CENTER_SIZE_META 2
|
|
#define XR_META_foveation_eye_tracked_SPEC_VERSION 1
|
|
#define XR_META_FOVEATION_EYE_TRACKED_EXTENSION_NAME "XR_META_foveation_eye_tracked"
|
|
typedef XrFlags64 XrFoveationEyeTrackedProfileCreateFlagsMETA;
|
|
|
|
// Flag bits for XrFoveationEyeTrackedProfileCreateFlagsMETA
|
|
|
|
typedef XrFlags64 XrFoveationEyeTrackedStateFlagsMETA;
|
|
|
|
// Flag bits for XrFoveationEyeTrackedStateFlagsMETA
|
|
static const XrFoveationEyeTrackedStateFlagsMETA XR_FOVEATION_EYE_TRACKED_STATE_VALID_BIT_META = 0x00000001;
|
|
|
|
// XrFoveationEyeTrackedProfileCreateInfoMETA extends XrFoveationLevelProfileCreateInfoFB
|
|
typedef struct XrFoveationEyeTrackedProfileCreateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFoveationEyeTrackedProfileCreateFlagsMETA flags;
|
|
} XrFoveationEyeTrackedProfileCreateInfoMETA;
|
|
|
|
typedef struct XrFoveationEyeTrackedStateMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrVector2f foveationCenter[XR_FOVEATION_CENTER_SIZE_META];
|
|
XrFoveationEyeTrackedStateFlagsMETA flags;
|
|
} XrFoveationEyeTrackedStateMETA;
|
|
|
|
// XrSystemFoveationEyeTrackedPropertiesMETA extends XrSystemProperties
|
|
typedef struct XrSystemFoveationEyeTrackedPropertiesMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsFoveationEyeTracked;
|
|
} XrSystemFoveationEyeTrackedPropertiesMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetFoveationEyeTrackedStateMETA)(XrSession session, XrFoveationEyeTrackedStateMETA* foveationState);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetFoveationEyeTrackedStateMETA(
|
|
XrSession session,
|
|
XrFoveationEyeTrackedStateMETA* foveationState);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_face_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_face_tracking 1
|
|
|
|
#define XR_FACE_EXPRESSSION_SET_DEFAULT_FB XR_FACE_EXPRESSION_SET_DEFAULT_FB
|
|
|
|
XR_DEFINE_HANDLE(XrFaceTrackerFB)
|
|
#define XR_FB_face_tracking_SPEC_VERSION 1
|
|
#define XR_FB_FACE_TRACKING_EXTENSION_NAME "XR_FB_face_tracking"
|
|
|
|
typedef enum XrFaceExpressionFB {
|
|
XR_FACE_EXPRESSION_BROW_LOWERER_L_FB = 0,
|
|
XR_FACE_EXPRESSION_BROW_LOWERER_R_FB = 1,
|
|
XR_FACE_EXPRESSION_CHEEK_PUFF_L_FB = 2,
|
|
XR_FACE_EXPRESSION_CHEEK_PUFF_R_FB = 3,
|
|
XR_FACE_EXPRESSION_CHEEK_RAISER_L_FB = 4,
|
|
XR_FACE_EXPRESSION_CHEEK_RAISER_R_FB = 5,
|
|
XR_FACE_EXPRESSION_CHEEK_SUCK_L_FB = 6,
|
|
XR_FACE_EXPRESSION_CHEEK_SUCK_R_FB = 7,
|
|
XR_FACE_EXPRESSION_CHIN_RAISER_B_FB = 8,
|
|
XR_FACE_EXPRESSION_CHIN_RAISER_T_FB = 9,
|
|
XR_FACE_EXPRESSION_DIMPLER_L_FB = 10,
|
|
XR_FACE_EXPRESSION_DIMPLER_R_FB = 11,
|
|
XR_FACE_EXPRESSION_EYES_CLOSED_L_FB = 12,
|
|
XR_FACE_EXPRESSION_EYES_CLOSED_R_FB = 13,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_DOWN_L_FB = 14,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_DOWN_R_FB = 15,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_LEFT_L_FB = 16,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_LEFT_R_FB = 17,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_L_FB = 18,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_R_FB = 19,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_UP_L_FB = 20,
|
|
XR_FACE_EXPRESSION_EYES_LOOK_UP_R_FB = 21,
|
|
XR_FACE_EXPRESSION_INNER_BROW_RAISER_L_FB = 22,
|
|
XR_FACE_EXPRESSION_INNER_BROW_RAISER_R_FB = 23,
|
|
XR_FACE_EXPRESSION_JAW_DROP_FB = 24,
|
|
XR_FACE_EXPRESSION_JAW_SIDEWAYS_LEFT_FB = 25,
|
|
XR_FACE_EXPRESSION_JAW_SIDEWAYS_RIGHT_FB = 26,
|
|
XR_FACE_EXPRESSION_JAW_THRUST_FB = 27,
|
|
XR_FACE_EXPRESSION_LID_TIGHTENER_L_FB = 28,
|
|
XR_FACE_EXPRESSION_LID_TIGHTENER_R_FB = 29,
|
|
XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_L_FB = 30,
|
|
XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_R_FB = 31,
|
|
XR_FACE_EXPRESSION_LIP_CORNER_PULLER_L_FB = 32,
|
|
XR_FACE_EXPRESSION_LIP_CORNER_PULLER_R_FB = 33,
|
|
XR_FACE_EXPRESSION_LIP_FUNNELER_LB_FB = 34,
|
|
XR_FACE_EXPRESSION_LIP_FUNNELER_LT_FB = 35,
|
|
XR_FACE_EXPRESSION_LIP_FUNNELER_RB_FB = 36,
|
|
XR_FACE_EXPRESSION_LIP_FUNNELER_RT_FB = 37,
|
|
XR_FACE_EXPRESSION_LIP_PRESSOR_L_FB = 38,
|
|
XR_FACE_EXPRESSION_LIP_PRESSOR_R_FB = 39,
|
|
XR_FACE_EXPRESSION_LIP_PUCKER_L_FB = 40,
|
|
XR_FACE_EXPRESSION_LIP_PUCKER_R_FB = 41,
|
|
XR_FACE_EXPRESSION_LIP_STRETCHER_L_FB = 42,
|
|
XR_FACE_EXPRESSION_LIP_STRETCHER_R_FB = 43,
|
|
XR_FACE_EXPRESSION_LIP_SUCK_LB_FB = 44,
|
|
XR_FACE_EXPRESSION_LIP_SUCK_LT_FB = 45,
|
|
XR_FACE_EXPRESSION_LIP_SUCK_RB_FB = 46,
|
|
XR_FACE_EXPRESSION_LIP_SUCK_RT_FB = 47,
|
|
XR_FACE_EXPRESSION_LIP_TIGHTENER_L_FB = 48,
|
|
XR_FACE_EXPRESSION_LIP_TIGHTENER_R_FB = 49,
|
|
XR_FACE_EXPRESSION_LIPS_TOWARD_FB = 50,
|
|
XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_L_FB = 51,
|
|
XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_R_FB = 52,
|
|
XR_FACE_EXPRESSION_MOUTH_LEFT_FB = 53,
|
|
XR_FACE_EXPRESSION_MOUTH_RIGHT_FB = 54,
|
|
XR_FACE_EXPRESSION_NOSE_WRINKLER_L_FB = 55,
|
|
XR_FACE_EXPRESSION_NOSE_WRINKLER_R_FB = 56,
|
|
XR_FACE_EXPRESSION_OUTER_BROW_RAISER_L_FB = 57,
|
|
XR_FACE_EXPRESSION_OUTER_BROW_RAISER_R_FB = 58,
|
|
XR_FACE_EXPRESSION_UPPER_LID_RAISER_L_FB = 59,
|
|
XR_FACE_EXPRESSION_UPPER_LID_RAISER_R_FB = 60,
|
|
XR_FACE_EXPRESSION_UPPER_LIP_RAISER_L_FB = 61,
|
|
XR_FACE_EXPRESSION_UPPER_LIP_RAISER_R_FB = 62,
|
|
XR_FACE_EXPRESSION_COUNT_FB = 63,
|
|
XR_FACE_EXPRESSION_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceExpressionFB;
|
|
|
|
typedef enum XrFaceExpressionSetFB {
|
|
XR_FACE_EXPRESSION_SET_DEFAULT_FB = 0,
|
|
XR_FACE_EXPRESSION_SET_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceExpressionSetFB;
|
|
|
|
typedef enum XrFaceConfidenceFB {
|
|
XR_FACE_CONFIDENCE_LOWER_FACE_FB = 0,
|
|
XR_FACE_CONFIDENCE_UPPER_FACE_FB = 1,
|
|
XR_FACE_CONFIDENCE_COUNT_FB = 2,
|
|
XR_FACE_CONFIDENCE_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceConfidenceFB;
|
|
// XrSystemFaceTrackingPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemFaceTrackingPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsFaceTracking;
|
|
} XrSystemFaceTrackingPropertiesFB;
|
|
|
|
typedef struct XrFaceTrackerCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFaceExpressionSetFB faceExpressionSet;
|
|
} XrFaceTrackerCreateInfoFB;
|
|
|
|
typedef struct XrFaceExpressionInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrTime time;
|
|
} XrFaceExpressionInfoFB;
|
|
|
|
typedef struct XrFaceExpressionStatusFB {
|
|
XrBool32 isValid;
|
|
XrBool32 isEyeFollowingBlendshapesValid;
|
|
} XrFaceExpressionStatusFB;
|
|
|
|
typedef struct XrFaceExpressionWeightsFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t weightCount;
|
|
float* weights;
|
|
uint32_t confidenceCount;
|
|
float* confidences;
|
|
XrFaceExpressionStatusFB status;
|
|
XrTime time;
|
|
} XrFaceExpressionWeightsFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTrackerFB)(XrSession session, const XrFaceTrackerCreateInfoFB* createInfo, XrFaceTrackerFB* faceTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTrackerFB)(XrFaceTrackerFB faceTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetFaceExpressionWeightsFB)(XrFaceTrackerFB faceTracker, const XrFaceExpressionInfoFB* expressionInfo, XrFaceExpressionWeightsFB* expressionWeights);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTrackerFB(
|
|
XrSession session,
|
|
const XrFaceTrackerCreateInfoFB* createInfo,
|
|
XrFaceTrackerFB* faceTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTrackerFB(
|
|
XrFaceTrackerFB faceTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeightsFB(
|
|
XrFaceTrackerFB faceTracker,
|
|
const XrFaceExpressionInfoFB* expressionInfo,
|
|
XrFaceExpressionWeightsFB* expressionWeights);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_eye_tracking_social is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_eye_tracking_social 1
|
|
XR_DEFINE_HANDLE(XrEyeTrackerFB)
|
|
#define XR_FB_eye_tracking_social_SPEC_VERSION 1
|
|
#define XR_FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME "XR_FB_eye_tracking_social"
|
|
|
|
typedef enum XrEyePositionFB {
|
|
XR_EYE_POSITION_LEFT_FB = 0,
|
|
XR_EYE_POSITION_RIGHT_FB = 1,
|
|
XR_EYE_POSITION_COUNT_FB = 2,
|
|
XR_EYE_POSITION_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrEyePositionFB;
|
|
typedef struct XrEyeGazeFB {
|
|
XrBool32 isValid;
|
|
XrPosef gazePose;
|
|
float gazeConfidence;
|
|
} XrEyeGazeFB;
|
|
|
|
typedef struct XrEyeTrackerCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrEyeTrackerCreateInfoFB;
|
|
|
|
typedef struct XrEyeGazesInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
} XrEyeGazesInfoFB;
|
|
|
|
// XrSystemEyeTrackingPropertiesFB extends XrSystemProperties
|
|
typedef struct XrSystemEyeTrackingPropertiesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsEyeTracking;
|
|
} XrSystemEyeTrackingPropertiesFB;
|
|
|
|
typedef struct XrEyeGazesFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrEyeGazeFB gaze[XR_EYE_POSITION_COUNT_FB];
|
|
XrTime time;
|
|
} XrEyeGazesFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateEyeTrackerFB)(XrSession session, const XrEyeTrackerCreateInfoFB* createInfo, XrEyeTrackerFB* eyeTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyEyeTrackerFB)(XrEyeTrackerFB eyeTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetEyeGazesFB)(XrEyeTrackerFB eyeTracker, const XrEyeGazesInfoFB* gazeInfo, XrEyeGazesFB* eyeGazes);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateEyeTrackerFB(
|
|
XrSession session,
|
|
const XrEyeTrackerCreateInfoFB* createInfo,
|
|
XrEyeTrackerFB* eyeTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEyeTrackerFB(
|
|
XrEyeTrackerFB eyeTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetEyeGazesFB(
|
|
XrEyeTrackerFB eyeTracker,
|
|
const XrEyeGazesInfoFB* gazeInfo,
|
|
XrEyeGazesFB* eyeGazes);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_passthrough_keyboard_hands is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_passthrough_keyboard_hands 1
|
|
#define XR_FB_passthrough_keyboard_hands_SPEC_VERSION 2
|
|
#define XR_FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME "XR_FB_passthrough_keyboard_hands"
|
|
typedef struct XrPassthroughKeyboardHandsIntensityFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float leftHandIntensity;
|
|
float rightHandIntensity;
|
|
} XrPassthroughKeyboardHandsIntensityFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPassthroughLayerSetKeyboardHandsIntensityFB)(XrPassthroughLayerFB layer, const XrPassthroughKeyboardHandsIntensityFB* intensity);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetKeyboardHandsIntensityFB(
|
|
XrPassthroughLayerFB layer,
|
|
const XrPassthroughKeyboardHandsIntensityFB* intensity);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_composition_layer_settings is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_composition_layer_settings 1
|
|
#define XR_FB_composition_layer_settings_SPEC_VERSION 1
|
|
#define XR_FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME "XR_FB_composition_layer_settings"
|
|
typedef XrFlags64 XrCompositionLayerSettingsFlagsFB;
|
|
|
|
// Flag bits for XrCompositionLayerSettingsFlagsFB
|
|
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB = 0x00000001;
|
|
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB = 0x00000002;
|
|
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB = 0x00000004;
|
|
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB = 0x00000008;
|
|
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_AUTO_LAYER_FILTER_BIT_META = 0x00000020;
|
|
|
|
// XrCompositionLayerSettingsFB extends XrCompositionLayerBaseHeader
|
|
typedef struct XrCompositionLayerSettingsFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerSettingsFlagsFB layerFlags;
|
|
} XrCompositionLayerSettingsFB;
|
|
|
|
|
|
|
|
// XR_FB_touch_controller_proximity is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_touch_controller_proximity 1
|
|
#define XR_FB_touch_controller_proximity_SPEC_VERSION 1
|
|
#define XR_FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME "XR_FB_touch_controller_proximity"
|
|
|
|
|
|
// XR_FB_haptic_pcm is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_haptic_pcm 1
|
|
|
|
#define XR_MAX_HAPTIC_PCM_BUFFER_SIZE_FB 4000
|
|
|
|
#define XR_FB_haptic_pcm_SPEC_VERSION 1
|
|
#define XR_FB_HAPTIC_PCM_EXTENSION_NAME "XR_FB_haptic_pcm"
|
|
typedef struct XrHapticPcmVibrationFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t bufferSize;
|
|
const float* buffer;
|
|
float sampleRate;
|
|
XrBool32 append;
|
|
uint32_t* samplesConsumed;
|
|
} XrHapticPcmVibrationFB;
|
|
|
|
typedef struct XrDevicePcmSampleRateStateFB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
float sampleRate;
|
|
} XrDevicePcmSampleRateStateFB;
|
|
|
|
typedef XrDevicePcmSampleRateStateFB XrDevicePcmSampleRateGetInfoFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetDeviceSampleRateFB)(XrSession session, const XrHapticActionInfo* hapticActionInfo, XrDevicePcmSampleRateGetInfoFB* deviceSampleRate);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetDeviceSampleRateFB(
|
|
XrSession session,
|
|
const XrHapticActionInfo* hapticActionInfo,
|
|
XrDevicePcmSampleRateGetInfoFB* deviceSampleRate);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_composition_layer_depth_test 1
|
|
#define XR_FB_composition_layer_depth_test_SPEC_VERSION 1
|
|
#define XR_FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_FB_composition_layer_depth_test"
|
|
|
|
typedef enum XrCompareOpFB {
|
|
XR_COMPARE_OP_NEVER_FB = 0,
|
|
XR_COMPARE_OP_LESS_FB = 1,
|
|
XR_COMPARE_OP_EQUAL_FB = 2,
|
|
XR_COMPARE_OP_LESS_OR_EQUAL_FB = 3,
|
|
XR_COMPARE_OP_GREATER_FB = 4,
|
|
XR_COMPARE_OP_NOT_EQUAL_FB = 5,
|
|
XR_COMPARE_OP_GREATER_OR_EQUAL_FB = 6,
|
|
XR_COMPARE_OP_ALWAYS_FB = 7,
|
|
XR_COMPARE_OP_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrCompareOpFB;
|
|
// XrCompositionLayerDepthTestFB extends XrCompositionLayerBaseHeader
|
|
typedef struct XrCompositionLayerDepthTestFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 depthMask;
|
|
XrCompareOpFB compareOp;
|
|
} XrCompositionLayerDepthTestFB;
|
|
|
|
|
|
|
|
// XR_META_local_dimming is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_local_dimming 1
|
|
#define XR_META_local_dimming_SPEC_VERSION 1
|
|
#define XR_META_LOCAL_DIMMING_EXTENSION_NAME "XR_META_local_dimming"
|
|
|
|
typedef enum XrLocalDimmingModeMETA {
|
|
XR_LOCAL_DIMMING_MODE_OFF_META = 0,
|
|
XR_LOCAL_DIMMING_MODE_ON_META = 1,
|
|
XR_LOCAL_DIMMING_MODE_MAX_ENUM_META = 0x7FFFFFFF
|
|
} XrLocalDimmingModeMETA;
|
|
// XrLocalDimmingFrameEndInfoMETA extends XrFrameEndInfo
|
|
typedef struct XrLocalDimmingFrameEndInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrLocalDimmingModeMETA localDimmingMode;
|
|
} XrLocalDimmingFrameEndInfoMETA;
|
|
|
|
|
|
|
|
// XR_META_passthrough_preferences is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_passthrough_preferences 1
|
|
#define XR_META_passthrough_preferences_SPEC_VERSION 1
|
|
#define XR_META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME "XR_META_passthrough_preferences"
|
|
typedef XrFlags64 XrPassthroughPreferenceFlagsMETA;
|
|
|
|
// Flag bits for XrPassthroughPreferenceFlagsMETA
|
|
static const XrPassthroughPreferenceFlagsMETA XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META = 0x00000001;
|
|
|
|
typedef struct XrPassthroughPreferencesMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughPreferenceFlagsMETA flags;
|
|
} XrPassthroughPreferencesMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetPassthroughPreferencesMETA)(XrSession session, XrPassthroughPreferencesMETA* preferences);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetPassthroughPreferencesMETA(
|
|
XrSession session,
|
|
XrPassthroughPreferencesMETA* preferences);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_virtual_keyboard is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_virtual_keyboard 1
|
|
XR_DEFINE_HANDLE(XrVirtualKeyboardMETA)
|
|
#define XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META 3992
|
|
#define XR_META_virtual_keyboard_SPEC_VERSION 1
|
|
#define XR_META_VIRTUAL_KEYBOARD_EXTENSION_NAME "XR_META_virtual_keyboard"
|
|
|
|
typedef enum XrVirtualKeyboardLocationTypeMETA {
|
|
XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_CUSTOM_META = 0,
|
|
XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_FAR_META = 1,
|
|
XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_DIRECT_META = 2,
|
|
XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_MAX_ENUM_META = 0x7FFFFFFF
|
|
} XrVirtualKeyboardLocationTypeMETA;
|
|
|
|
typedef enum XrVirtualKeyboardInputSourceMETA {
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_LEFT_META = 1,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_RIGHT_META = 2,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_LEFT_META = 3,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_RIGHT_META = 4,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_LEFT_META = 5,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_RIGHT_META = 6,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_LEFT_META = 7,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_RIGHT_META = 8,
|
|
XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_MAX_ENUM_META = 0x7FFFFFFF
|
|
} XrVirtualKeyboardInputSourceMETA;
|
|
typedef XrFlags64 XrVirtualKeyboardInputStateFlagsMETA;
|
|
|
|
// Flag bits for XrVirtualKeyboardInputStateFlagsMETA
|
|
static const XrVirtualKeyboardInputStateFlagsMETA XR_VIRTUAL_KEYBOARD_INPUT_STATE_PRESSED_BIT_META = 0x00000001;
|
|
|
|
// XrSystemVirtualKeyboardPropertiesMETA extends XrSystemProperties
|
|
typedef struct XrSystemVirtualKeyboardPropertiesMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsVirtualKeyboard;
|
|
} XrSystemVirtualKeyboardPropertiesMETA;
|
|
|
|
typedef struct XrVirtualKeyboardCreateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrVirtualKeyboardCreateInfoMETA;
|
|
|
|
typedef struct XrVirtualKeyboardSpaceCreateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardLocationTypeMETA locationType;
|
|
XrSpace space;
|
|
XrPosef poseInSpace;
|
|
} XrVirtualKeyboardSpaceCreateInfoMETA;
|
|
|
|
typedef struct XrVirtualKeyboardLocationInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardLocationTypeMETA locationType;
|
|
XrSpace space;
|
|
XrPosef poseInSpace;
|
|
float scale;
|
|
} XrVirtualKeyboardLocationInfoMETA;
|
|
|
|
typedef struct XrVirtualKeyboardModelVisibilitySetInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 visible;
|
|
} XrVirtualKeyboardModelVisibilitySetInfoMETA;
|
|
|
|
typedef struct XrVirtualKeyboardAnimationStateMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
int32_t animationIndex;
|
|
float fraction;
|
|
} XrVirtualKeyboardAnimationStateMETA;
|
|
|
|
typedef struct XrVirtualKeyboardModelAnimationStatesMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t stateCapacityInput;
|
|
uint32_t stateCountOutput;
|
|
XrVirtualKeyboardAnimationStateMETA* states;
|
|
} XrVirtualKeyboardModelAnimationStatesMETA;
|
|
|
|
typedef struct XrVirtualKeyboardTextureDataMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t textureWidth;
|
|
uint32_t textureHeight;
|
|
uint32_t bufferCapacityInput;
|
|
uint32_t bufferCountOutput;
|
|
uint8_t* buffer;
|
|
} XrVirtualKeyboardTextureDataMETA;
|
|
|
|
typedef struct XrVirtualKeyboardInputInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardInputSourceMETA inputSource;
|
|
XrSpace inputSpace;
|
|
XrPosef inputPoseInSpace;
|
|
XrVirtualKeyboardInputStateFlagsMETA inputState;
|
|
} XrVirtualKeyboardInputInfoMETA;
|
|
|
|
typedef struct XrVirtualKeyboardTextContextChangeInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
const char* textContext;
|
|
} XrVirtualKeyboardTextContextChangeInfoMETA;
|
|
|
|
typedef struct XrEventDataVirtualKeyboardCommitTextMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardMETA keyboard;
|
|
char text[XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META];
|
|
} XrEventDataVirtualKeyboardCommitTextMETA;
|
|
|
|
typedef struct XrEventDataVirtualKeyboardBackspaceMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardMETA keyboard;
|
|
} XrEventDataVirtualKeyboardBackspaceMETA;
|
|
|
|
typedef struct XrEventDataVirtualKeyboardEnterMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardMETA keyboard;
|
|
} XrEventDataVirtualKeyboardEnterMETA;
|
|
|
|
typedef struct XrEventDataVirtualKeyboardShownMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardMETA keyboard;
|
|
} XrEventDataVirtualKeyboardShownMETA;
|
|
|
|
typedef struct XrEventDataVirtualKeyboardHiddenMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrVirtualKeyboardMETA keyboard;
|
|
} XrEventDataVirtualKeyboardHiddenMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateVirtualKeyboardMETA)(XrSession session, const XrVirtualKeyboardCreateInfoMETA* createInfo, XrVirtualKeyboardMETA* keyboard);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyVirtualKeyboardMETA)(XrVirtualKeyboardMETA keyboard);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateVirtualKeyboardSpaceMETA)(XrSession session, XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo, XrSpace* keyboardSpace);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSuggestVirtualKeyboardLocationMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardLocationInfoMETA* locationInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardScaleMETA)(XrVirtualKeyboardMETA keyboard, float* scale);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetVirtualKeyboardModelVisibilityMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardModelAnimationStatesMETA)(XrVirtualKeyboardMETA keyboard, XrVirtualKeyboardModelAnimationStatesMETA* animationStates);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardDirtyTexturesMETA)(XrVirtualKeyboardMETA keyboard, uint32_t textureIdCapacityInput, uint32_t* textureIdCountOutput, uint64_t* textureIds);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetVirtualKeyboardTextureDataMETA)(XrVirtualKeyboardMETA keyboard, uint64_t textureId, XrVirtualKeyboardTextureDataMETA* textureData);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSendVirtualKeyboardInputMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardInputInfoMETA* info, XrPosef* interactorRootPose);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrChangeVirtualKeyboardTextContextMETA)(XrVirtualKeyboardMETA keyboard, const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardMETA(
|
|
XrSession session,
|
|
const XrVirtualKeyboardCreateInfoMETA* createInfo,
|
|
XrVirtualKeyboardMETA* keyboard);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyVirtualKeyboardMETA(
|
|
XrVirtualKeyboardMETA keyboard);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardSpaceMETA(
|
|
XrSession session,
|
|
XrVirtualKeyboardMETA keyboard,
|
|
const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo,
|
|
XrSpace* keyboardSpace);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSuggestVirtualKeyboardLocationMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
const XrVirtualKeyboardLocationInfoMETA* locationInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardScaleMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
float* scale);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetVirtualKeyboardModelVisibilityMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardModelAnimationStatesMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
XrVirtualKeyboardModelAnimationStatesMETA* animationStates);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardDirtyTexturesMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
uint32_t textureIdCapacityInput,
|
|
uint32_t* textureIdCountOutput,
|
|
uint64_t* textureIds);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardTextureDataMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
uint64_t textureId,
|
|
XrVirtualKeyboardTextureDataMETA* textureData);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSendVirtualKeyboardInputMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
const XrVirtualKeyboardInputInfoMETA* info,
|
|
XrPosef* interactorRootPose);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrChangeVirtualKeyboardTextContextMETA(
|
|
XrVirtualKeyboardMETA keyboard,
|
|
const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_OCULUS_external_camera is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_OCULUS_external_camera 1
|
|
#define XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS 32
|
|
#define XR_OCULUS_external_camera_SPEC_VERSION 1
|
|
#define XR_OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME "XR_OCULUS_external_camera"
|
|
|
|
typedef enum XrExternalCameraAttachedToDeviceOCULUS {
|
|
XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_NONE_OCULUS = 0,
|
|
XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_HMD_OCULUS = 1,
|
|
XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_LTOUCH_OCULUS = 2,
|
|
XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_RTOUCH_OCULUS = 3,
|
|
XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_MAX_ENUM_OCULUS = 0x7FFFFFFF
|
|
} XrExternalCameraAttachedToDeviceOCULUS;
|
|
typedef XrFlags64 XrExternalCameraStatusFlagsOCULUS;
|
|
|
|
// Flag bits for XrExternalCameraStatusFlagsOCULUS
|
|
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CONNECTED_BIT_OCULUS = 0x00000001;
|
|
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATING_BIT_OCULUS = 0x00000002;
|
|
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATION_FAILED_BIT_OCULUS = 0x00000004;
|
|
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATED_BIT_OCULUS = 0x00000008;
|
|
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CAPTURING_BIT_OCULUS = 0x00000010;
|
|
|
|
typedef struct XrExternalCameraIntrinsicsOCULUS {
|
|
XrTime lastChangeTime;
|
|
XrFovf fov;
|
|
float virtualNearPlaneDistance;
|
|
float virtualFarPlaneDistance;
|
|
XrExtent2Di imageSensorPixelResolution;
|
|
} XrExternalCameraIntrinsicsOCULUS;
|
|
|
|
typedef struct XrExternalCameraExtrinsicsOCULUS {
|
|
XrTime lastChangeTime;
|
|
XrExternalCameraStatusFlagsOCULUS cameraStatusFlags;
|
|
XrExternalCameraAttachedToDeviceOCULUS attachedToDevice;
|
|
XrPosef relativePose;
|
|
} XrExternalCameraExtrinsicsOCULUS;
|
|
|
|
typedef struct XrExternalCameraOCULUS {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
char name[XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS];
|
|
XrExternalCameraIntrinsicsOCULUS intrinsics;
|
|
XrExternalCameraExtrinsicsOCULUS extrinsics;
|
|
} XrExternalCameraOCULUS;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateExternalCamerasOCULUS)(XrSession session, uint32_t cameraCapacityInput, uint32_t* cameraCountOutput, XrExternalCameraOCULUS* cameras);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateExternalCamerasOCULUS(
|
|
XrSession session,
|
|
uint32_t cameraCapacityInput,
|
|
uint32_t* cameraCountOutput,
|
|
XrExternalCameraOCULUS* cameras);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_performance_metrics is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_performance_metrics 1
|
|
#define XR_META_performance_metrics_SPEC_VERSION 2
|
|
#define XR_META_PERFORMANCE_METRICS_EXTENSION_NAME "XR_META_performance_metrics"
|
|
|
|
typedef enum XrPerformanceMetricsCounterUnitMETA {
|
|
XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_META = 0,
|
|
XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_META = 1,
|
|
XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_META = 2,
|
|
XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_META = 3,
|
|
XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META = 4,
|
|
XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_META = 0x7FFFFFFF
|
|
} XrPerformanceMetricsCounterUnitMETA;
|
|
typedef XrFlags64 XrPerformanceMetricsCounterFlagsMETA;
|
|
|
|
// Flag bits for XrPerformanceMetricsCounterFlagsMETA
|
|
static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META = 0x00000001;
|
|
static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META = 0x00000002;
|
|
static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META = 0x00000004;
|
|
|
|
typedef struct XrPerformanceMetricsStateMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 enabled;
|
|
} XrPerformanceMetricsStateMETA;
|
|
|
|
typedef struct XrPerformanceMetricsCounterMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPerformanceMetricsCounterFlagsMETA counterFlags;
|
|
XrPerformanceMetricsCounterUnitMETA counterUnit;
|
|
uint32_t uintValue;
|
|
float floatValue;
|
|
} XrPerformanceMetricsCounterMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePerformanceMetricsCounterPathsMETA)(XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetPerformanceMetricsStateMETA)(XrSession session, const XrPerformanceMetricsStateMETA* state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetPerformanceMetricsStateMETA)(XrSession session, XrPerformanceMetricsStateMETA* state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrQueryPerformanceMetricsCounterMETA)(XrSession session, XrPath counterPath, XrPerformanceMetricsCounterMETA* counter);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePerformanceMetricsCounterPathsMETA(
|
|
XrInstance instance,
|
|
uint32_t counterPathCapacityInput,
|
|
uint32_t* counterPathCountOutput,
|
|
XrPath* counterPaths);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetPerformanceMetricsStateMETA(
|
|
XrSession session,
|
|
const XrPerformanceMetricsStateMETA* state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetPerformanceMetricsStateMETA(
|
|
XrSession session,
|
|
XrPerformanceMetricsStateMETA* state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterMETA(
|
|
XrSession session,
|
|
XrPath counterPath,
|
|
XrPerformanceMetricsCounterMETA* counter);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_spatial_entity_storage_batch is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity_storage_batch 1
|
|
#define XR_FB_spatial_entity_storage_batch_SPEC_VERSION 1
|
|
#define XR_FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME "XR_FB_spatial_entity_storage_batch"
|
|
typedef struct XrSpaceListSaveInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t spaceCount;
|
|
XrSpace* spaces;
|
|
XrSpaceStorageLocationFB location;
|
|
} XrSpaceListSaveInfoFB;
|
|
|
|
typedef struct XrEventDataSpaceListSaveCompleteFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrAsyncRequestIdFB requestId;
|
|
XrResult result;
|
|
} XrEventDataSpaceListSaveCompleteFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceListFB)(XrSession session, const XrSpaceListSaveInfoFB* info, XrAsyncRequestIdFB* requestId);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceListFB(
|
|
XrSession session,
|
|
const XrSpaceListSaveInfoFB* info,
|
|
XrAsyncRequestIdFB* requestId);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_FB_spatial_entity_user is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_spatial_entity_user 1
|
|
typedef uint64_t XrSpaceUserIdFB;
|
|
#define XR_FB_spatial_entity_user_SPEC_VERSION 1
|
|
#define XR_FB_SPATIAL_ENTITY_USER_EXTENSION_NAME "XR_FB_spatial_entity_user"
|
|
typedef struct XrSpaceUserCreateInfoFB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpaceUserIdFB userId;
|
|
} XrSpaceUserCreateInfoFB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpaceUserFB)(XrSession session, const XrSpaceUserCreateInfoFB* info, XrSpaceUserFB* user);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUserIdFB)(XrSpaceUserFB user, XrSpaceUserIdFB* userId);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpaceUserFB)(XrSpaceUserFB user);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpaceUserFB(
|
|
XrSession session,
|
|
const XrSpaceUserCreateInfoFB* info,
|
|
XrSpaceUserFB* user);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUserIdFB(
|
|
XrSpaceUserFB user,
|
|
XrSpaceUserIdFB* userId);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpaceUserFB(
|
|
XrSpaceUserFB user);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_headset_id is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_headset_id 1
|
|
#define XR_META_headset_id_SPEC_VERSION 2
|
|
#define XR_META_HEADSET_ID_EXTENSION_NAME "XR_META_headset_id"
|
|
// XrSystemHeadsetIdPropertiesMETA extends XrSystemProperties
|
|
typedef struct XrSystemHeadsetIdPropertiesMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrUuidEXT id;
|
|
} XrSystemHeadsetIdPropertiesMETA;
|
|
|
|
|
|
|
|
// XR_META_recommended_layer_resolution is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_recommended_layer_resolution 1
|
|
#define XR_META_recommended_layer_resolution_SPEC_VERSION 1
|
|
#define XR_META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME "XR_META_recommended_layer_resolution"
|
|
typedef struct XrRecommendedLayerResolutionMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrExtent2Di recommendedImageDimensions;
|
|
XrBool32 isValid;
|
|
} XrRecommendedLayerResolutionMETA;
|
|
|
|
typedef struct XrRecommendedLayerResolutionGetInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
const XrCompositionLayerBaseHeader* layer;
|
|
XrTime predictedDisplayTime;
|
|
} XrRecommendedLayerResolutionGetInfoMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetRecommendedLayerResolutionMETA)(XrSession session, const XrRecommendedLayerResolutionGetInfoMETA* info, XrRecommendedLayerResolutionMETA* resolution);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetRecommendedLayerResolutionMETA(
|
|
XrSession session,
|
|
const XrRecommendedLayerResolutionGetInfoMETA* info,
|
|
XrRecommendedLayerResolutionMETA* resolution);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_passthrough_color_lut is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_passthrough_color_lut 1
|
|
XR_DEFINE_HANDLE(XrPassthroughColorLutMETA)
|
|
#define XR_META_passthrough_color_lut_SPEC_VERSION 1
|
|
#define XR_META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME "XR_META_passthrough_color_lut"
|
|
|
|
typedef enum XrPassthroughColorLutChannelsMETA {
|
|
XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGB_META = 1,
|
|
XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGBA_META = 2,
|
|
XR_PASSTHROUGH_COLOR_LUT_CHANNELS_MAX_ENUM_META = 0x7FFFFFFF
|
|
} XrPassthroughColorLutChannelsMETA;
|
|
typedef struct XrPassthroughColorLutDataMETA {
|
|
uint32_t bufferSize;
|
|
const uint8_t* buffer;
|
|
} XrPassthroughColorLutDataMETA;
|
|
|
|
typedef struct XrPassthroughColorLutCreateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughColorLutChannelsMETA channels;
|
|
uint32_t resolution;
|
|
XrPassthroughColorLutDataMETA data;
|
|
} XrPassthroughColorLutCreateInfoMETA;
|
|
|
|
typedef struct XrPassthroughColorLutUpdateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughColorLutDataMETA data;
|
|
} XrPassthroughColorLutUpdateInfoMETA;
|
|
|
|
// XrPassthroughColorMapLutMETA extends XrPassthroughStyleFB
|
|
typedef struct XrPassthroughColorMapLutMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughColorLutMETA colorLut;
|
|
float weight;
|
|
} XrPassthroughColorMapLutMETA;
|
|
|
|
// XrPassthroughColorMapInterpolatedLutMETA extends XrPassthroughStyleFB
|
|
typedef struct XrPassthroughColorMapInterpolatedLutMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughColorLutMETA sourceColorLut;
|
|
XrPassthroughColorLutMETA targetColorLut;
|
|
float weight;
|
|
} XrPassthroughColorMapInterpolatedLutMETA;
|
|
|
|
// XrSystemPassthroughColorLutPropertiesMETA extends XrSystemProperties
|
|
typedef struct XrSystemPassthroughColorLutPropertiesMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t maxColorLutResolution;
|
|
} XrSystemPassthroughColorLutPropertiesMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughColorLutMETA)(XrPassthroughFB passthrough, const XrPassthroughColorLutCreateInfoMETA* createInfo, XrPassthroughColorLutMETA* colorLut);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughColorLutMETA)(XrPassthroughColorLutMETA colorLut);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUpdatePassthroughColorLutMETA)(XrPassthroughColorLutMETA colorLut, const XrPassthroughColorLutUpdateInfoMETA* updateInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughColorLutMETA(
|
|
XrPassthroughFB passthrough,
|
|
const XrPassthroughColorLutCreateInfoMETA* createInfo,
|
|
XrPassthroughColorLutMETA* colorLut);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughColorLutMETA(
|
|
XrPassthroughColorLutMETA colorLut);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUpdatePassthroughColorLutMETA(
|
|
XrPassthroughColorLutMETA colorLut,
|
|
const XrPassthroughColorLutUpdateInfoMETA* updateInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_spatial_entity_mesh is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_spatial_entity_mesh 1
|
|
#define XR_META_spatial_entity_mesh_SPEC_VERSION 1
|
|
#define XR_META_SPATIAL_ENTITY_MESH_EXTENSION_NAME "XR_META_spatial_entity_mesh"
|
|
typedef struct XrSpaceTriangleMeshGetInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrSpaceTriangleMeshGetInfoMETA;
|
|
|
|
typedef struct XrSpaceTriangleMeshMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t vertexCapacityInput;
|
|
uint32_t vertexCountOutput;
|
|
XrVector3f* vertices;
|
|
uint32_t indexCapacityInput;
|
|
uint32_t indexCountOutput;
|
|
uint32_t* indices;
|
|
} XrSpaceTriangleMeshMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceTriangleMeshMETA)(XrSpace space, const XrSpaceTriangleMeshGetInfoMETA* getInfo, XrSpaceTriangleMeshMETA* triangleMeshOutput);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceTriangleMeshMETA(
|
|
XrSpace space,
|
|
const XrSpaceTriangleMeshGetInfoMETA* getInfo,
|
|
XrSpaceTriangleMeshMETA* triangleMeshOutput);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_automatic_layer_filter is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_automatic_layer_filter 1
|
|
#define XR_META_automatic_layer_filter_SPEC_VERSION 1
|
|
#define XR_META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME "XR_META_automatic_layer_filter"
|
|
|
|
|
|
// XR_META_touch_controller_plus is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_touch_controller_plus 1
|
|
#define XR_META_touch_controller_plus_SPEC_VERSION 1
|
|
#define XR_META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME "XR_META_touch_controller_plus"
|
|
|
|
|
|
// XR_FB_face_tracking2 is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_FB_face_tracking2 1
|
|
XR_DEFINE_HANDLE(XrFaceTracker2FB)
|
|
#define XR_FB_face_tracking2_SPEC_VERSION 1
|
|
#define XR_FB_FACE_TRACKING2_EXTENSION_NAME "XR_FB_face_tracking2"
|
|
|
|
typedef enum XrFaceExpression2FB {
|
|
XR_FACE_EXPRESSION2_BROW_LOWERER_L_FB = 0,
|
|
XR_FACE_EXPRESSION2_BROW_LOWERER_R_FB = 1,
|
|
XR_FACE_EXPRESSION2_CHEEK_PUFF_L_FB = 2,
|
|
XR_FACE_EXPRESSION2_CHEEK_PUFF_R_FB = 3,
|
|
XR_FACE_EXPRESSION2_CHEEK_RAISER_L_FB = 4,
|
|
XR_FACE_EXPRESSION2_CHEEK_RAISER_R_FB = 5,
|
|
XR_FACE_EXPRESSION2_CHEEK_SUCK_L_FB = 6,
|
|
XR_FACE_EXPRESSION2_CHEEK_SUCK_R_FB = 7,
|
|
XR_FACE_EXPRESSION2_CHIN_RAISER_B_FB = 8,
|
|
XR_FACE_EXPRESSION2_CHIN_RAISER_T_FB = 9,
|
|
XR_FACE_EXPRESSION2_DIMPLER_L_FB = 10,
|
|
XR_FACE_EXPRESSION2_DIMPLER_R_FB = 11,
|
|
XR_FACE_EXPRESSION2_EYES_CLOSED_L_FB = 12,
|
|
XR_FACE_EXPRESSION2_EYES_CLOSED_R_FB = 13,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_L_FB = 14,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_R_FB = 15,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_L_FB = 16,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_R_FB = 17,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_L_FB = 18,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_R_FB = 19,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_UP_L_FB = 20,
|
|
XR_FACE_EXPRESSION2_EYES_LOOK_UP_R_FB = 21,
|
|
XR_FACE_EXPRESSION2_INNER_BROW_RAISER_L_FB = 22,
|
|
XR_FACE_EXPRESSION2_INNER_BROW_RAISER_R_FB = 23,
|
|
XR_FACE_EXPRESSION2_JAW_DROP_FB = 24,
|
|
XR_FACE_EXPRESSION2_JAW_SIDEWAYS_LEFT_FB = 25,
|
|
XR_FACE_EXPRESSION2_JAW_SIDEWAYS_RIGHT_FB = 26,
|
|
XR_FACE_EXPRESSION2_JAW_THRUST_FB = 27,
|
|
XR_FACE_EXPRESSION2_LID_TIGHTENER_L_FB = 28,
|
|
XR_FACE_EXPRESSION2_LID_TIGHTENER_R_FB = 29,
|
|
XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_L_FB = 30,
|
|
XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_R_FB = 31,
|
|
XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_L_FB = 32,
|
|
XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_R_FB = 33,
|
|
XR_FACE_EXPRESSION2_LIP_FUNNELER_LB_FB = 34,
|
|
XR_FACE_EXPRESSION2_LIP_FUNNELER_LT_FB = 35,
|
|
XR_FACE_EXPRESSION2_LIP_FUNNELER_RB_FB = 36,
|
|
XR_FACE_EXPRESSION2_LIP_FUNNELER_RT_FB = 37,
|
|
XR_FACE_EXPRESSION2_LIP_PRESSOR_L_FB = 38,
|
|
XR_FACE_EXPRESSION2_LIP_PRESSOR_R_FB = 39,
|
|
XR_FACE_EXPRESSION2_LIP_PUCKER_L_FB = 40,
|
|
XR_FACE_EXPRESSION2_LIP_PUCKER_R_FB = 41,
|
|
XR_FACE_EXPRESSION2_LIP_STRETCHER_L_FB = 42,
|
|
XR_FACE_EXPRESSION2_LIP_STRETCHER_R_FB = 43,
|
|
XR_FACE_EXPRESSION2_LIP_SUCK_LB_FB = 44,
|
|
XR_FACE_EXPRESSION2_LIP_SUCK_LT_FB = 45,
|
|
XR_FACE_EXPRESSION2_LIP_SUCK_RB_FB = 46,
|
|
XR_FACE_EXPRESSION2_LIP_SUCK_RT_FB = 47,
|
|
XR_FACE_EXPRESSION2_LIP_TIGHTENER_L_FB = 48,
|
|
XR_FACE_EXPRESSION2_LIP_TIGHTENER_R_FB = 49,
|
|
XR_FACE_EXPRESSION2_LIPS_TOWARD_FB = 50,
|
|
XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_L_FB = 51,
|
|
XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_R_FB = 52,
|
|
XR_FACE_EXPRESSION2_MOUTH_LEFT_FB = 53,
|
|
XR_FACE_EXPRESSION2_MOUTH_RIGHT_FB = 54,
|
|
XR_FACE_EXPRESSION2_NOSE_WRINKLER_L_FB = 55,
|
|
XR_FACE_EXPRESSION2_NOSE_WRINKLER_R_FB = 56,
|
|
XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_L_FB = 57,
|
|
XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_R_FB = 58,
|
|
XR_FACE_EXPRESSION2_UPPER_LID_RAISER_L_FB = 59,
|
|
XR_FACE_EXPRESSION2_UPPER_LID_RAISER_R_FB = 60,
|
|
XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_L_FB = 61,
|
|
XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_R_FB = 62,
|
|
XR_FACE_EXPRESSION2_TONGUE_TIP_INTERDENTAL_FB = 63,
|
|
XR_FACE_EXPRESSION2_TONGUE_TIP_ALVEOLAR_FB = 64,
|
|
XR_FACE_EXPRESSION2_TONGUE_FRONT_DORSAL_PALATE_FB = 65,
|
|
XR_FACE_EXPRESSION2_TONGUE_MID_DORSAL_PALATE_FB = 66,
|
|
XR_FACE_EXPRESSION2_TONGUE_BACK_DORSAL_VELAR_FB = 67,
|
|
XR_FACE_EXPRESSION2_TONGUE_OUT_FB = 68,
|
|
XR_FACE_EXPRESSION2_TONGUE_RETREAT_FB = 69,
|
|
XR_FACE_EXPRESSION2_COUNT_FB = 70,
|
|
XR_FACE_EXPRESSION_2FB_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceExpression2FB;
|
|
|
|
typedef enum XrFaceExpressionSet2FB {
|
|
XR_FACE_EXPRESSION_SET2_DEFAULT_FB = 0,
|
|
XR_FACE_EXPRESSION_SET_2FB_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceExpressionSet2FB;
|
|
|
|
typedef enum XrFaceTrackingDataSource2FB {
|
|
XR_FACE_TRACKING_DATA_SOURCE2_VISUAL_FB = 0,
|
|
XR_FACE_TRACKING_DATA_SOURCE2_AUDIO_FB = 1,
|
|
XR_FACE_TRACKING_DATA_SOURCE_2FB_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceTrackingDataSource2FB;
|
|
|
|
typedef enum XrFaceConfidence2FB {
|
|
XR_FACE_CONFIDENCE2_LOWER_FACE_FB = 0,
|
|
XR_FACE_CONFIDENCE2_UPPER_FACE_FB = 1,
|
|
XR_FACE_CONFIDENCE2_COUNT_FB = 2,
|
|
XR_FACE_CONFIDENCE_2FB_MAX_ENUM_FB = 0x7FFFFFFF
|
|
} XrFaceConfidence2FB;
|
|
// XrSystemFaceTrackingProperties2FB extends XrSystemProperties
|
|
typedef struct XrSystemFaceTrackingProperties2FB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsVisualFaceTracking;
|
|
XrBool32 supportsAudioFaceTracking;
|
|
} XrSystemFaceTrackingProperties2FB;
|
|
|
|
typedef struct XrFaceTrackerCreateInfo2FB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFaceExpressionSet2FB faceExpressionSet;
|
|
uint32_t requestedDataSourceCount;
|
|
XrFaceTrackingDataSource2FB* requestedDataSources;
|
|
} XrFaceTrackerCreateInfo2FB;
|
|
|
|
typedef struct XrFaceExpressionInfo2FB {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrTime time;
|
|
} XrFaceExpressionInfo2FB;
|
|
|
|
typedef struct XrFaceExpressionWeights2FB {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t weightCount;
|
|
float* weights;
|
|
uint32_t confidenceCount;
|
|
float* confidences;
|
|
XrBool32 isValid;
|
|
XrBool32 isEyeFollowingBlendshapesValid;
|
|
XrFaceTrackingDataSource2FB dataSource;
|
|
XrTime time;
|
|
} XrFaceExpressionWeights2FB;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateFaceTracker2FB)(XrSession session, const XrFaceTrackerCreateInfo2FB* createInfo, XrFaceTracker2FB* faceTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyFaceTracker2FB)(XrFaceTracker2FB faceTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetFaceExpressionWeights2FB)(XrFaceTracker2FB faceTracker, const XrFaceExpressionInfo2FB* expressionInfo, XrFaceExpressionWeights2FB* expressionWeights);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTracker2FB(
|
|
XrSession session,
|
|
const XrFaceTrackerCreateInfo2FB* createInfo,
|
|
XrFaceTracker2FB* faceTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTracker2FB(
|
|
XrFaceTracker2FB faceTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeights2FB(
|
|
XrFaceTracker2FB faceTracker,
|
|
const XrFaceExpressionInfo2FB* expressionInfo,
|
|
XrFaceExpressionWeights2FB* expressionWeights);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_META_environment_depth is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_META_environment_depth 1
|
|
XR_DEFINE_HANDLE(XrEnvironmentDepthProviderMETA)
|
|
XR_DEFINE_HANDLE(XrEnvironmentDepthSwapchainMETA)
|
|
#define XR_META_environment_depth_SPEC_VERSION 1
|
|
#define XR_META_ENVIRONMENT_DEPTH_EXTENSION_NAME "XR_META_environment_depth"
|
|
typedef XrFlags64 XrEnvironmentDepthProviderCreateFlagsMETA;
|
|
|
|
// Flag bits for XrEnvironmentDepthProviderCreateFlagsMETA
|
|
|
|
typedef XrFlags64 XrEnvironmentDepthSwapchainCreateFlagsMETA;
|
|
|
|
// Flag bits for XrEnvironmentDepthSwapchainCreateFlagsMETA
|
|
|
|
typedef struct XrEnvironmentDepthProviderCreateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrEnvironmentDepthProviderCreateFlagsMETA createFlags;
|
|
} XrEnvironmentDepthProviderCreateInfoMETA;
|
|
|
|
typedef struct XrEnvironmentDepthSwapchainCreateInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrEnvironmentDepthSwapchainCreateFlagsMETA createFlags;
|
|
} XrEnvironmentDepthSwapchainCreateInfoMETA;
|
|
|
|
typedef struct XrEnvironmentDepthSwapchainStateMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t width;
|
|
uint32_t height;
|
|
} XrEnvironmentDepthSwapchainStateMETA;
|
|
|
|
typedef struct XrEnvironmentDepthImageAcquireInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrTime displayTime;
|
|
} XrEnvironmentDepthImageAcquireInfoMETA;
|
|
|
|
typedef struct XrEnvironmentDepthImageViewMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFovf fov;
|
|
XrPosef pose;
|
|
} XrEnvironmentDepthImageViewMETA;
|
|
|
|
typedef struct XrEnvironmentDepthImageMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t swapchainIndex;
|
|
float nearZ;
|
|
float farZ;
|
|
XrEnvironmentDepthImageViewMETA views[2];
|
|
} XrEnvironmentDepthImageMETA;
|
|
|
|
typedef struct XrEnvironmentDepthHandRemovalSetInfoMETA {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 enabled;
|
|
} XrEnvironmentDepthHandRemovalSetInfoMETA;
|
|
|
|
// XrSystemEnvironmentDepthPropertiesMETA extends XrSystemProperties
|
|
typedef struct XrSystemEnvironmentDepthPropertiesMETA {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsEnvironmentDepth;
|
|
XrBool32 supportsHandRemoval;
|
|
} XrSystemEnvironmentDepthPropertiesMETA;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentDepthProviderMETA)(XrSession session, const XrEnvironmentDepthProviderCreateInfoMETA* createInfo, XrEnvironmentDepthProviderMETA* environmentDepthProvider);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrStartEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrStopEnvironmentDepthProviderMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateEnvironmentDepthSwapchainMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo, XrEnvironmentDepthSwapchainMETA* swapchain);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyEnvironmentDepthSwapchainMETA)(XrEnvironmentDepthSwapchainMETA swapchain);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentDepthSwapchainImagesMETA)(XrEnvironmentDepthSwapchainMETA swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetEnvironmentDepthSwapchainStateMETA)(XrEnvironmentDepthSwapchainMETA swapchain, XrEnvironmentDepthSwapchainStateMETA* state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrAcquireEnvironmentDepthImageMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo, XrEnvironmentDepthImageMETA* environmentDepthImage);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetEnvironmentDepthHandRemovalMETA)(XrEnvironmentDepthProviderMETA environmentDepthProvider, const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthProviderMETA(
|
|
XrSession session,
|
|
const XrEnvironmentDepthProviderCreateInfoMETA* createInfo,
|
|
XrEnvironmentDepthProviderMETA* environmentDepthProvider);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthProviderMETA(
|
|
XrEnvironmentDepthProviderMETA environmentDepthProvider);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrStartEnvironmentDepthProviderMETA(
|
|
XrEnvironmentDepthProviderMETA environmentDepthProvider);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrStopEnvironmentDepthProviderMETA(
|
|
XrEnvironmentDepthProviderMETA environmentDepthProvider);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthSwapchainMETA(
|
|
XrEnvironmentDepthProviderMETA environmentDepthProvider,
|
|
const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo,
|
|
XrEnvironmentDepthSwapchainMETA* swapchain);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthSwapchainMETA(
|
|
XrEnvironmentDepthSwapchainMETA swapchain);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentDepthSwapchainImagesMETA(
|
|
XrEnvironmentDepthSwapchainMETA swapchain,
|
|
uint32_t imageCapacityInput,
|
|
uint32_t* imageCountOutput,
|
|
XrSwapchainImageBaseHeader* images);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetEnvironmentDepthSwapchainStateMETA(
|
|
XrEnvironmentDepthSwapchainMETA swapchain,
|
|
XrEnvironmentDepthSwapchainStateMETA* state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrAcquireEnvironmentDepthImageMETA(
|
|
XrEnvironmentDepthProviderMETA environmentDepthProvider,
|
|
const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo,
|
|
XrEnvironmentDepthImageMETA* environmentDepthImage);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthHandRemovalMETA(
|
|
XrEnvironmentDepthProviderMETA environmentDepthProvider,
|
|
const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_uuid is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_uuid 1
|
|
#define XR_EXT_uuid_SPEC_VERSION 1
|
|
#define XR_EXT_UUID_EXTENSION_NAME "XR_EXT_uuid"
|
|
#define XR_UUID_SIZE_EXT 16
|
|
|
|
|
|
// XR_EXT_hand_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_hand_interaction 1
|
|
#define XR_EXT_hand_interaction_SPEC_VERSION 1
|
|
#define XR_EXT_HAND_INTERACTION_EXTENSION_NAME "XR_EXT_hand_interaction"
|
|
|
|
|
|
// XR_QCOM_tracking_optimization_settings is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_QCOM_tracking_optimization_settings 1
|
|
#define XR_QCOM_tracking_optimization_settings_SPEC_VERSION 1
|
|
#define XR_QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME "XR_QCOM_tracking_optimization_settings"
|
|
|
|
typedef enum XrTrackingOptimizationSettingsDomainQCOM {
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_ALL_QCOM = 1,
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_MAX_ENUM_QCOM = 0x7FFFFFFF
|
|
} XrTrackingOptimizationSettingsDomainQCOM;
|
|
|
|
typedef enum XrTrackingOptimizationSettingsHintQCOM {
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_NONE_QCOM = 0,
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LONG_RANGE_PRIORIZATION_QCOM = 1,
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_CLOSE_RANGE_PRIORIZATION_QCOM = 2,
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LOW_POWER_PRIORIZATION_QCOM = 3,
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_HIGH_POWER_PRIORIZATION_QCOM = 4,
|
|
XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_MAX_ENUM_QCOM = 0x7FFFFFFF
|
|
} XrTrackingOptimizationSettingsHintQCOM;
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetTrackingOptimizationSettingsHintQCOM)(XrSession session, XrTrackingOptimizationSettingsDomainQCOM domain, XrTrackingOptimizationSettingsHintQCOM hint);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetTrackingOptimizationSettingsHintQCOM(
|
|
XrSession session,
|
|
XrTrackingOptimizationSettingsDomainQCOM domain,
|
|
XrTrackingOptimizationSettingsHintQCOM hint);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HTC_passthrough is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_passthrough 1
|
|
XR_DEFINE_HANDLE(XrPassthroughHTC)
|
|
#define XR_HTC_passthrough_SPEC_VERSION 1
|
|
#define XR_HTC_PASSTHROUGH_EXTENSION_NAME "XR_HTC_passthrough"
|
|
|
|
typedef enum XrPassthroughFormHTC {
|
|
XR_PASSTHROUGH_FORM_PLANAR_HTC = 0,
|
|
XR_PASSTHROUGH_FORM_PROJECTED_HTC = 1,
|
|
XR_PASSTHROUGH_FORM_MAX_ENUM_HTC = 0x7FFFFFFF
|
|
} XrPassthroughFormHTC;
|
|
typedef struct XrPassthroughCreateInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPassthroughFormHTC form;
|
|
} XrPassthroughCreateInfoHTC;
|
|
|
|
typedef struct XrPassthroughColorHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
float alpha;
|
|
} XrPassthroughColorHTC;
|
|
|
|
// XrPassthroughMeshTransformInfoHTC extends XrCompositionLayerPassthroughHTC
|
|
typedef struct XrPassthroughMeshTransformInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t vertexCount;
|
|
const XrVector3f* vertices;
|
|
uint32_t indexCount;
|
|
const uint32_t* indices;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
XrPosef pose;
|
|
XrVector3f scale;
|
|
} XrPassthroughMeshTransformInfoHTC;
|
|
|
|
typedef struct XrCompositionLayerPassthroughHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrCompositionLayerFlags layerFlags;
|
|
XrSpace space;
|
|
XrPassthroughHTC passthrough;
|
|
XrPassthroughColorHTC color;
|
|
} XrCompositionLayerPassthroughHTC;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreatePassthroughHTC)(XrSession session, const XrPassthroughCreateInfoHTC* createInfo, XrPassthroughHTC* passthrough);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyPassthroughHTC)(XrPassthroughHTC passthrough);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughHTC(
|
|
XrSession session,
|
|
const XrPassthroughCreateInfoHTC* createInfo,
|
|
XrPassthroughHTC* passthrough);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughHTC(
|
|
XrPassthroughHTC passthrough);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HTC_foveation is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_foveation 1
|
|
#define XR_HTC_foveation_SPEC_VERSION 1
|
|
#define XR_HTC_FOVEATION_EXTENSION_NAME "XR_HTC_foveation"
|
|
|
|
typedef enum XrFoveationModeHTC {
|
|
XR_FOVEATION_MODE_DISABLE_HTC = 0,
|
|
XR_FOVEATION_MODE_FIXED_HTC = 1,
|
|
XR_FOVEATION_MODE_DYNAMIC_HTC = 2,
|
|
XR_FOVEATION_MODE_CUSTOM_HTC = 3,
|
|
XR_FOVEATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF
|
|
} XrFoveationModeHTC;
|
|
|
|
typedef enum XrFoveationLevelHTC {
|
|
XR_FOVEATION_LEVEL_NONE_HTC = 0,
|
|
XR_FOVEATION_LEVEL_LOW_HTC = 1,
|
|
XR_FOVEATION_LEVEL_MEDIUM_HTC = 2,
|
|
XR_FOVEATION_LEVEL_HIGH_HTC = 3,
|
|
XR_FOVEATION_LEVEL_MAX_ENUM_HTC = 0x7FFFFFFF
|
|
} XrFoveationLevelHTC;
|
|
typedef XrFlags64 XrFoveationDynamicFlagsHTC;
|
|
|
|
// Flag bits for XrFoveationDynamicFlagsHTC
|
|
static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC = 0x00000001;
|
|
static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC = 0x00000002;
|
|
static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC = 0x00000004;
|
|
|
|
typedef struct XrFoveationApplyInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFoveationModeHTC mode;
|
|
uint32_t subImageCount;
|
|
XrSwapchainSubImage* subImages;
|
|
} XrFoveationApplyInfoHTC;
|
|
|
|
typedef struct XrFoveationConfigurationHTC {
|
|
XrFoveationLevelHTC level;
|
|
float clearFovDegree;
|
|
XrVector2f focalCenterOffset;
|
|
} XrFoveationConfigurationHTC;
|
|
|
|
// XrFoveationDynamicModeInfoHTC extends XrFoveationApplyInfoHTC
|
|
typedef struct XrFoveationDynamicModeInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFoveationDynamicFlagsHTC dynamicFlags;
|
|
} XrFoveationDynamicModeInfoHTC;
|
|
|
|
// XrFoveationCustomModeInfoHTC extends XrFoveationApplyInfoHTC
|
|
typedef struct XrFoveationCustomModeInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t configCount;
|
|
const XrFoveationConfigurationHTC* configs;
|
|
} XrFoveationCustomModeInfoHTC;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrApplyFoveationHTC)(XrSession session, const XrFoveationApplyInfoHTC* applyInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrApplyFoveationHTC(
|
|
XrSession session,
|
|
const XrFoveationApplyInfoHTC* applyInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HTC_anchor is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_anchor 1
|
|
#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC 256
|
|
#define XR_HTC_anchor_SPEC_VERSION 1
|
|
#define XR_HTC_ANCHOR_EXTENSION_NAME "XR_HTC_anchor"
|
|
// XrSystemAnchorPropertiesHTC extends XrSystemProperties
|
|
typedef struct XrSystemAnchorPropertiesHTC {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsAnchor;
|
|
} XrSystemAnchorPropertiesHTC;
|
|
|
|
typedef struct XrSpatialAnchorNameHTC {
|
|
char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC];
|
|
} XrSpatialAnchorNameHTC;
|
|
|
|
typedef struct XrSpatialAnchorCreateInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace space;
|
|
XrPosef poseInSpace;
|
|
XrSpatialAnchorNameHTC name;
|
|
} XrSpatialAnchorCreateInfoHTC;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorHTC)(XrSession session, const XrSpatialAnchorCreateInfoHTC* createInfo, XrSpace* anchor);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialAnchorNameHTC)(XrSpace anchor, XrSpatialAnchorNameHTC* name);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorHTC(
|
|
XrSession session,
|
|
const XrSpatialAnchorCreateInfoHTC* createInfo,
|
|
XrSpace* anchor);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorNameHTC(
|
|
XrSpace anchor,
|
|
XrSpatialAnchorNameHTC* name);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_HTC_body_tracking is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_HTC_body_tracking 1
|
|
|
|
#define XR_BODY_JOINT_COUNT_HTC 26
|
|
|
|
XR_DEFINE_HANDLE(XrBodyTrackerHTC)
|
|
#define XR_HTC_body_tracking_SPEC_VERSION 1
|
|
#define XR_HTC_BODY_TRACKING_EXTENSION_NAME "XR_HTC_body_tracking"
|
|
|
|
typedef enum XrBodyJointHTC {
|
|
XR_BODY_JOINT_PELVIS_HTC = 0,
|
|
XR_BODY_JOINT_LEFT_HIP_HTC = 1,
|
|
XR_BODY_JOINT_LEFT_KNEE_HTC = 2,
|
|
XR_BODY_JOINT_LEFT_ANKLE_HTC = 3,
|
|
XR_BODY_JOINT_LEFT_FEET_HTC = 4,
|
|
XR_BODY_JOINT_RIGHT_HIP_HTC = 5,
|
|
XR_BODY_JOINT_RIGHT_KNEE_HTC = 6,
|
|
XR_BODY_JOINT_RIGHT_ANKLE_HTC = 7,
|
|
XR_BODY_JOINT_RIGHT_FEET_HTC = 8,
|
|
XR_BODY_JOINT_WAIST_HTC = 9,
|
|
XR_BODY_JOINT_SPINE_LOWER_HTC = 10,
|
|
XR_BODY_JOINT_SPINE_MIDDLE_HTC = 11,
|
|
XR_BODY_JOINT_SPINE_HIGH_HTC = 12,
|
|
XR_BODY_JOINT_CHEST_HTC = 13,
|
|
XR_BODY_JOINT_NECK_HTC = 14,
|
|
XR_BODY_JOINT_HEAD_HTC = 15,
|
|
XR_BODY_JOINT_LEFT_CLAVICLE_HTC = 16,
|
|
XR_BODY_JOINT_LEFT_SCAPULA_HTC = 17,
|
|
XR_BODY_JOINT_LEFT_ARM_HTC = 18,
|
|
XR_BODY_JOINT_LEFT_ELBOW_HTC = 19,
|
|
XR_BODY_JOINT_LEFT_WRIST_HTC = 20,
|
|
XR_BODY_JOINT_RIGHT_CLAVICLE_HTC = 21,
|
|
XR_BODY_JOINT_RIGHT_SCAPULA_HTC = 22,
|
|
XR_BODY_JOINT_RIGHT_ARM_HTC = 23,
|
|
XR_BODY_JOINT_RIGHT_ELBOW_HTC = 24,
|
|
XR_BODY_JOINT_RIGHT_WRIST_HTC = 25,
|
|
XR_BODY_JOINT_MAX_ENUM_HTC = 0x7FFFFFFF
|
|
} XrBodyJointHTC;
|
|
|
|
typedef enum XrBodyJointSetHTC {
|
|
XR_BODY_JOINT_SET_FULL_HTC = 0,
|
|
XR_BODY_JOINT_SET_MAX_ENUM_HTC = 0x7FFFFFFF
|
|
} XrBodyJointSetHTC;
|
|
|
|
typedef enum XrBodyJointConfidenceHTC {
|
|
XR_BODY_JOINT_CONFIDENCE_NONE_HTC = 0,
|
|
XR_BODY_JOINT_CONFIDENCE_LOW_HTC = 1,
|
|
XR_BODY_JOINT_CONFIDENCE_HIGH_HTC = 2,
|
|
XR_BODY_JOINT_CONFIDENCE_MAX_ENUM_HTC = 0x7FFFFFFF
|
|
} XrBodyJointConfidenceHTC;
|
|
// XrSystemBodyTrackingPropertiesHTC extends XrSystemProperties
|
|
typedef struct XrSystemBodyTrackingPropertiesHTC {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsBodyTracking;
|
|
} XrSystemBodyTrackingPropertiesHTC;
|
|
|
|
typedef struct XrBodyTrackerCreateInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBodyJointSetHTC bodyJointSet;
|
|
} XrBodyTrackerCreateInfoHTC;
|
|
|
|
typedef struct XrBodyJointsLocateInfoHTC {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
} XrBodyJointsLocateInfoHTC;
|
|
|
|
typedef struct XrBodyJointLocationHTC {
|
|
XrSpaceLocationFlags locationFlags;
|
|
XrPosef pose;
|
|
} XrBodyJointLocationHTC;
|
|
|
|
typedef struct XrBodyJointLocationsHTC {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrSpaceLocationFlags combinedLocationFlags;
|
|
XrBodyJointConfidenceHTC confidenceLevel;
|
|
uint32_t jointLocationCount;
|
|
XrBodyJointLocationHTC* jointLocations;
|
|
uint32_t skeletonGenerationId;
|
|
} XrBodyJointLocationsHTC;
|
|
|
|
typedef struct XrBodySkeletonJointHTC {
|
|
XrPosef pose;
|
|
} XrBodySkeletonJointHTC;
|
|
|
|
typedef struct XrBodySkeletonHTC {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t jointCount;
|
|
XrBodySkeletonJointHTC* joints;
|
|
} XrBodySkeletonHTC;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateBodyTrackerHTC)(XrSession session, const XrBodyTrackerCreateInfoHTC* createInfo, XrBodyTrackerHTC* bodyTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyBodyTrackerHTC)(XrBodyTrackerHTC bodyTracker);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrLocateBodyJointsHTC)(XrBodyTrackerHTC bodyTracker, const XrBodyJointsLocateInfoHTC* locateInfo, XrBodyJointLocationsHTC* locations);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetBodySkeletonHTC)(XrBodyTrackerHTC bodyTracker, XrSpace baseSpace, uint32_t skeletonGenerationId, XrBodySkeletonHTC* skeleton);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerHTC(
|
|
XrSession session,
|
|
const XrBodyTrackerCreateInfoHTC* createInfo,
|
|
XrBodyTrackerHTC* bodyTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerHTC(
|
|
XrBodyTrackerHTC bodyTracker);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsHTC(
|
|
XrBodyTrackerHTC bodyTracker,
|
|
const XrBodyJointsLocateInfoHTC* locateInfo,
|
|
XrBodyJointLocationsHTC* locations);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonHTC(
|
|
XrBodyTrackerHTC bodyTracker,
|
|
XrSpace baseSpace,
|
|
uint32_t skeletonGenerationId,
|
|
XrBodySkeletonHTC* skeleton);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_active_action_set_priority is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_active_action_set_priority 1
|
|
#define XR_EXT_active_action_set_priority_SPEC_VERSION 1
|
|
#define XR_EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME "XR_EXT_active_action_set_priority"
|
|
typedef struct XrActiveActionSetPriorityEXT {
|
|
XrActionSet actionSet;
|
|
uint32_t priorityOverride;
|
|
} XrActiveActionSetPriorityEXT;
|
|
|
|
// XrActiveActionSetPrioritiesEXT extends XrActionsSyncInfo
|
|
typedef struct XrActiveActionSetPrioritiesEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t actionSetPriorityCount;
|
|
const XrActiveActionSetPriorityEXT* actionSetPriorities;
|
|
} XrActiveActionSetPrioritiesEXT;
|
|
|
|
|
|
|
|
// XR_MNDX_force_feedback_curl is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_MNDX_force_feedback_curl 1
|
|
#define XR_MNDX_force_feedback_curl_SPEC_VERSION 1
|
|
#define XR_MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME "XR_MNDX_force_feedback_curl"
|
|
|
|
typedef enum XrForceFeedbackCurlLocationMNDX {
|
|
XR_FORCE_FEEDBACK_CURL_LOCATION_THUMB_CURL_MNDX = 0,
|
|
XR_FORCE_FEEDBACK_CURL_LOCATION_INDEX_CURL_MNDX = 1,
|
|
XR_FORCE_FEEDBACK_CURL_LOCATION_MIDDLE_CURL_MNDX = 2,
|
|
XR_FORCE_FEEDBACK_CURL_LOCATION_RING_CURL_MNDX = 3,
|
|
XR_FORCE_FEEDBACK_CURL_LOCATION_LITTLE_CURL_MNDX = 4,
|
|
XR_FORCE_FEEDBACK_CURL_LOCATION_MAX_ENUM_MNDX = 0x7FFFFFFF
|
|
} XrForceFeedbackCurlLocationMNDX;
|
|
// XrSystemForceFeedbackCurlPropertiesMNDX extends XrSystemProperties
|
|
typedef struct XrSystemForceFeedbackCurlPropertiesMNDX {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsForceFeedbackCurl;
|
|
} XrSystemForceFeedbackCurlPropertiesMNDX;
|
|
|
|
typedef struct XrForceFeedbackCurlApplyLocationMNDX {
|
|
XrForceFeedbackCurlLocationMNDX location;
|
|
float value;
|
|
} XrForceFeedbackCurlApplyLocationMNDX;
|
|
|
|
typedef struct XrForceFeedbackCurlApplyLocationsMNDX {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t locationCount;
|
|
XrForceFeedbackCurlApplyLocationMNDX* locations;
|
|
} XrForceFeedbackCurlApplyLocationsMNDX;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrApplyForceFeedbackCurlMNDX)(XrHandTrackerEXT handTracker, const XrForceFeedbackCurlApplyLocationsMNDX* locations);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrApplyForceFeedbackCurlMNDX(
|
|
XrHandTrackerEXT handTracker,
|
|
const XrForceFeedbackCurlApplyLocationsMNDX* locations);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_BD_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_BD_controller_interaction 1
|
|
#define XR_BD_controller_interaction_SPEC_VERSION 2
|
|
#define XR_BD_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_BD_controller_interaction"
|
|
|
|
|
|
// XR_EXT_local_floor is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_local_floor 1
|
|
#define XR_EXT_local_floor_SPEC_VERSION 1
|
|
#define XR_EXT_LOCAL_FLOOR_EXTENSION_NAME "XR_EXT_local_floor"
|
|
|
|
|
|
// XR_EXT_hand_tracking_data_source is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_hand_tracking_data_source 1
|
|
#define XR_EXT_hand_tracking_data_source_SPEC_VERSION 1
|
|
#define XR_EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME "XR_EXT_hand_tracking_data_source"
|
|
|
|
typedef enum XrHandTrackingDataSourceEXT {
|
|
XR_HAND_TRACKING_DATA_SOURCE_UNOBSTRUCTED_EXT = 1,
|
|
XR_HAND_TRACKING_DATA_SOURCE_CONTROLLER_EXT = 2,
|
|
XR_HAND_TRACKING_DATA_SOURCE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrHandTrackingDataSourceEXT;
|
|
// XrHandTrackingDataSourceInfoEXT extends XrHandTrackerCreateInfoEXT
|
|
typedef struct XrHandTrackingDataSourceInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t requestedDataSourceCount;
|
|
XrHandTrackingDataSourceEXT* requestedDataSources;
|
|
} XrHandTrackingDataSourceInfoEXT;
|
|
|
|
// XrHandTrackingDataSourceStateEXT extends XrHandJointLocationsEXT
|
|
typedef struct XrHandTrackingDataSourceStateEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 isActive;
|
|
XrHandTrackingDataSourceEXT dataSource;
|
|
} XrHandTrackingDataSourceStateEXT;
|
|
|
|
|
|
|
|
// XR_EXT_plane_detection is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_plane_detection 1
|
|
XR_DEFINE_HANDLE(XrPlaneDetectorEXT)
|
|
#define XR_EXT_plane_detection_SPEC_VERSION 2
|
|
#define XR_EXT_PLANE_DETECTION_EXTENSION_NAME "XR_EXT_plane_detection"
|
|
|
|
typedef enum XrPlaneDetectorOrientationEXT {
|
|
XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_UPWARD_EXT = 0,
|
|
XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_DOWNWARD_EXT = 1,
|
|
XR_PLANE_DETECTOR_ORIENTATION_VERTICAL_EXT = 2,
|
|
XR_PLANE_DETECTOR_ORIENTATION_ARBITRARY_EXT = 3,
|
|
XR_PLANE_DETECTOR_ORIENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPlaneDetectorOrientationEXT;
|
|
|
|
typedef enum XrPlaneDetectorSemanticTypeEXT {
|
|
XR_PLANE_DETECTOR_SEMANTIC_TYPE_UNDEFINED_EXT = 0,
|
|
XR_PLANE_DETECTOR_SEMANTIC_TYPE_CEILING_EXT = 1,
|
|
XR_PLANE_DETECTOR_SEMANTIC_TYPE_FLOOR_EXT = 2,
|
|
XR_PLANE_DETECTOR_SEMANTIC_TYPE_WALL_EXT = 3,
|
|
XR_PLANE_DETECTOR_SEMANTIC_TYPE_PLATFORM_EXT = 4,
|
|
XR_PLANE_DETECTOR_SEMANTIC_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPlaneDetectorSemanticTypeEXT;
|
|
|
|
typedef enum XrPlaneDetectionStateEXT {
|
|
XR_PLANE_DETECTION_STATE_NONE_EXT = 0,
|
|
XR_PLANE_DETECTION_STATE_PENDING_EXT = 1,
|
|
XR_PLANE_DETECTION_STATE_DONE_EXT = 2,
|
|
XR_PLANE_DETECTION_STATE_ERROR_EXT = 3,
|
|
XR_PLANE_DETECTION_STATE_FATAL_EXT = 4,
|
|
XR_PLANE_DETECTION_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrPlaneDetectionStateEXT;
|
|
typedef XrFlags64 XrPlaneDetectionCapabilityFlagsEXT;
|
|
|
|
// Flag bits for XrPlaneDetectionCapabilityFlagsEXT
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_DETECTION_BIT_EXT = 0x00000001;
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_HOLES_BIT_EXT = 0x00000002;
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_CEILING_BIT_EXT = 0x00000004;
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_FLOOR_BIT_EXT = 0x00000008;
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_WALL_BIT_EXT = 0x00000010;
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_PLATFORM_BIT_EXT = 0x00000020;
|
|
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_ORIENTATION_BIT_EXT = 0x00000040;
|
|
|
|
typedef XrFlags64 XrPlaneDetectorFlagsEXT;
|
|
|
|
// Flag bits for XrPlaneDetectorFlagsEXT
|
|
static const XrPlaneDetectorFlagsEXT XR_PLANE_DETECTOR_ENABLE_CONTOUR_BIT_EXT = 0x00000001;
|
|
|
|
// XrSystemPlaneDetectionPropertiesEXT extends XrSystemProperties
|
|
typedef struct XrSystemPlaneDetectionPropertiesEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrPlaneDetectionCapabilityFlagsEXT supportedFeatures;
|
|
} XrSystemPlaneDetectionPropertiesEXT;
|
|
|
|
typedef struct XrPlaneDetectorCreateInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrPlaneDetectorFlagsEXT flags;
|
|
} XrPlaneDetectorCreateInfoEXT;
|
|
|
|
typedef XrExtent3Df XrExtent3DfEXT;
|
|
|
|
typedef struct XrPlaneDetectorBeginInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
uint32_t orientationCount;
|
|
const XrPlaneDetectorOrientationEXT* orientations;
|
|
uint32_t semanticTypeCount;
|
|
const XrPlaneDetectorSemanticTypeEXT* semanticTypes;
|
|
uint32_t maxPlanes;
|
|
float minArea;
|
|
XrPosef boundingBoxPose;
|
|
XrExtent3DfEXT boundingBoxExtent;
|
|
} XrPlaneDetectorBeginInfoEXT;
|
|
|
|
typedef struct XrPlaneDetectorGetInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
} XrPlaneDetectorGetInfoEXT;
|
|
|
|
typedef struct XrPlaneDetectorLocationEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint64_t planeId;
|
|
XrSpaceLocationFlags locationFlags;
|
|
XrPosef pose;
|
|
XrExtent2Df extents;
|
|
XrPlaneDetectorOrientationEXT orientation;
|
|
XrPlaneDetectorSemanticTypeEXT semanticType;
|
|
uint32_t polygonBufferCount;
|
|
} XrPlaneDetectorLocationEXT;
|
|
|
|
typedef struct XrPlaneDetectorLocationsEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t planeLocationCapacityInput;
|
|
uint32_t planeLocationCountOutput;
|
|
XrPlaneDetectorLocationEXT* planeLocations;
|
|
} XrPlaneDetectorLocationsEXT;
|
|
|
|
typedef struct XrPlaneDetectorPolygonBufferEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t vertexCapacityInput;
|
|
uint32_t vertexCountOutput;
|
|
XrVector2f* vertices;
|
|
} XrPlaneDetectorPolygonBufferEXT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreatePlaneDetectorEXT)(XrSession session, const XrPlaneDetectorCreateInfoEXT* createInfo, XrPlaneDetectorEXT* planeDetector);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyPlaneDetectorEXT)(XrPlaneDetectorEXT planeDetector);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrBeginPlaneDetectionEXT)(XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorBeginInfoEXT* beginInfo);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetPlaneDetectionStateEXT)(XrPlaneDetectorEXT planeDetector, XrPlaneDetectionStateEXT* state);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetPlaneDetectionsEXT)(XrPlaneDetectorEXT planeDetector, const XrPlaneDetectorGetInfoEXT* info, XrPlaneDetectorLocationsEXT* locations);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetPlanePolygonBufferEXT)(XrPlaneDetectorEXT planeDetector, uint64_t planeId, uint32_t polygonBufferIndex, XrPlaneDetectorPolygonBufferEXT* polygonBuffer);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePlaneDetectorEXT(
|
|
XrSession session,
|
|
const XrPlaneDetectorCreateInfoEXT* createInfo,
|
|
XrPlaneDetectorEXT* planeDetector);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPlaneDetectorEXT(
|
|
XrPlaneDetectorEXT planeDetector);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrBeginPlaneDetectionEXT(
|
|
XrPlaneDetectorEXT planeDetector,
|
|
const XrPlaneDetectorBeginInfoEXT* beginInfo);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionStateEXT(
|
|
XrPlaneDetectorEXT planeDetector,
|
|
XrPlaneDetectionStateEXT* state);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionsEXT(
|
|
XrPlaneDetectorEXT planeDetector,
|
|
const XrPlaneDetectorGetInfoEXT* info,
|
|
XrPlaneDetectorLocationsEXT* locations);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetPlanePolygonBufferEXT(
|
|
XrPlaneDetectorEXT planeDetector,
|
|
uint64_t planeId,
|
|
uint32_t polygonBufferIndex,
|
|
XrPlaneDetectorPolygonBufferEXT* polygonBuffer);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_OPPO_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_OPPO_controller_interaction 1
|
|
#define XR_OPPO_controller_interaction_SPEC_VERSION 1
|
|
#define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_OPPO_controller_interaction"
|
|
|
|
|
|
// XR_EXT_future is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_future 1
|
|
#define XR_EXT_future_SPEC_VERSION 1
|
|
#define XR_EXT_FUTURE_EXTENSION_NAME "XR_EXT_future"
|
|
#define XR_NULL_FUTURE_EXT 0
|
|
|
|
typedef enum XrFutureStateEXT {
|
|
XR_FUTURE_STATE_PENDING_EXT = 1,
|
|
XR_FUTURE_STATE_READY_EXT = 2,
|
|
XR_FUTURE_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
} XrFutureStateEXT;
|
|
typedef struct XrFutureCancelInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFutureEXT future;
|
|
} XrFutureCancelInfoEXT;
|
|
|
|
typedef struct XrFuturePollInfoEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrFutureEXT future;
|
|
} XrFuturePollInfoEXT;
|
|
|
|
typedef struct XR_MAY_ALIAS XrFutureCompletionBaseHeaderEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
} XrFutureCompletionBaseHeaderEXT;
|
|
|
|
typedef struct XrFutureCompletionEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
} XrFutureCompletionEXT;
|
|
|
|
typedef struct XrFuturePollResultEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrFutureStateEXT state;
|
|
} XrFuturePollResultEXT;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPollFutureEXT)(XrInstance instance, const XrFuturePollInfoEXT* pollInfo, XrFuturePollResultEXT* pollResult);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCancelFutureEXT)(XrInstance instance, const XrFutureCancelInfoEXT* cancelInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPollFutureEXT(
|
|
XrInstance instance,
|
|
const XrFuturePollInfoEXT* pollInfo,
|
|
XrFuturePollResultEXT* pollResult);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCancelFutureEXT(
|
|
XrInstance instance,
|
|
const XrFutureCancelInfoEXT* cancelInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_EXT_user_presence is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_user_presence 1
|
|
#define XR_EXT_user_presence_SPEC_VERSION 1
|
|
#define XR_EXT_USER_PRESENCE_EXTENSION_NAME "XR_EXT_user_presence"
|
|
typedef struct XrEventDataUserPresenceChangedEXT {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSession session;
|
|
XrBool32 isUserPresent;
|
|
} XrEventDataUserPresenceChangedEXT;
|
|
|
|
// XrSystemUserPresencePropertiesEXT extends XrSystemProperties
|
|
typedef struct XrSystemUserPresencePropertiesEXT {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrBool32 supportsUserPresence;
|
|
} XrSystemUserPresencePropertiesEXT;
|
|
|
|
|
|
|
|
// XR_ML_user_calibration is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_user_calibration 1
|
|
#define XR_ML_user_calibration_SPEC_VERSION 1
|
|
#define XR_ML_USER_CALIBRATION_EXTENSION_NAME "XR_ML_user_calibration"
|
|
|
|
typedef enum XrHeadsetFitStatusML {
|
|
XR_HEADSET_FIT_STATUS_UNKNOWN_ML = 0,
|
|
XR_HEADSET_FIT_STATUS_NOT_WORN_ML = 1,
|
|
XR_HEADSET_FIT_STATUS_GOOD_FIT_ML = 2,
|
|
XR_HEADSET_FIT_STATUS_BAD_FIT_ML = 3,
|
|
XR_HEADSET_FIT_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrHeadsetFitStatusML;
|
|
|
|
typedef enum XrEyeCalibrationStatusML {
|
|
XR_EYE_CALIBRATION_STATUS_UNKNOWN_ML = 0,
|
|
XR_EYE_CALIBRATION_STATUS_NONE_ML = 1,
|
|
XR_EYE_CALIBRATION_STATUS_COARSE_ML = 2,
|
|
XR_EYE_CALIBRATION_STATUS_FINE_ML = 3,
|
|
XR_EYE_CALIBRATION_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrEyeCalibrationStatusML;
|
|
typedef struct XrEventDataHeadsetFitChangedML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrHeadsetFitStatusML status;
|
|
XrTime time;
|
|
} XrEventDataHeadsetFitChangedML;
|
|
|
|
typedef struct XrEventDataEyeCalibrationChangedML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrEyeCalibrationStatusML status;
|
|
} XrEventDataEyeCalibrationChangedML;
|
|
|
|
typedef struct XrUserCalibrationEnableEventsInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 enabled;
|
|
} XrUserCalibrationEnableEventsInfoML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrEnableUserCalibrationEventsML)(XrInstance instance, const XrUserCalibrationEnableEventsInfoML* enableInfo);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrEnableUserCalibrationEventsML(
|
|
XrInstance instance,
|
|
const XrUserCalibrationEnableEventsInfoML* enableInfo);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ML_system_notifications is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_system_notifications 1
|
|
#define XR_ML_system_notifications_SPEC_VERSION 1
|
|
#define XR_ML_SYSTEM_NOTIFICATIONS_EXTENSION_NAME "XR_ML_system_notifications"
|
|
typedef struct XrSystemNotificationsSetInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrBool32 suppressNotifications;
|
|
} XrSystemNotificationsSetInfoML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrSetSystemNotificationsML)(XrInstance instance, const XrSystemNotificationsSetInfoML* info);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrSetSystemNotificationsML(
|
|
XrInstance instance,
|
|
const XrSystemNotificationsSetInfoML* info);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ML_world_mesh_detection is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_world_mesh_detection 1
|
|
XR_DEFINE_HANDLE(XrWorldMeshDetectorML)
|
|
#define XR_ML_world_mesh_detection_SPEC_VERSION 1
|
|
#define XR_ML_WORLD_MESH_DETECTION_EXTENSION_NAME "XR_ML_world_mesh_detection"
|
|
|
|
typedef enum XrWorldMeshDetectorLodML {
|
|
XR_WORLD_MESH_DETECTOR_LOD_MINIMUM_ML = 0,
|
|
XR_WORLD_MESH_DETECTOR_LOD_MEDIUM_ML = 1,
|
|
XR_WORLD_MESH_DETECTOR_LOD_MAXIMUM_ML = 2,
|
|
XR_WORLD_MESH_DETECTOR_LOD_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrWorldMeshDetectorLodML;
|
|
|
|
typedef enum XrWorldMeshBlockStatusML {
|
|
XR_WORLD_MESH_BLOCK_STATUS_NEW_ML = 0,
|
|
XR_WORLD_MESH_BLOCK_STATUS_UPDATED_ML = 1,
|
|
XR_WORLD_MESH_BLOCK_STATUS_DELETED_ML = 2,
|
|
XR_WORLD_MESH_BLOCK_STATUS_UNCHANGED_ML = 3,
|
|
XR_WORLD_MESH_BLOCK_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrWorldMeshBlockStatusML;
|
|
|
|
typedef enum XrWorldMeshBlockResultML {
|
|
XR_WORLD_MESH_BLOCK_RESULT_SUCCESS_ML = 0,
|
|
XR_WORLD_MESH_BLOCK_RESULT_FAILED_ML = 1,
|
|
XR_WORLD_MESH_BLOCK_RESULT_PENDING_ML = 2,
|
|
XR_WORLD_MESH_BLOCK_RESULT_PARTIAL_UPDATE_ML = 3,
|
|
XR_WORLD_MESH_BLOCK_RESULT_MAX_ENUM_ML = 0x7FFFFFFF
|
|
} XrWorldMeshBlockResultML;
|
|
typedef XrFlags64 XrWorldMeshDetectorFlagsML;
|
|
|
|
// Flag bits for XrWorldMeshDetectorFlagsML
|
|
static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_POINT_CLOUD_BIT_ML = 0x00000001;
|
|
static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_COMPUTE_NORMALS_BIT_ML = 0x00000002;
|
|
static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_COMPUTE_CONFIDENCE_BIT_ML = 0x00000004;
|
|
static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_PLANARIZE_BIT_ML = 0x00000008;
|
|
static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_REMOVE_MESH_SKIRT_BIT_ML = 0x00000010;
|
|
static const XrWorldMeshDetectorFlagsML XR_WORLD_MESH_DETECTOR_INDEX_ORDER_CW_BIT_ML = 0x00000020;
|
|
|
|
typedef struct XrWorldMeshDetectorCreateInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
} XrWorldMeshDetectorCreateInfoML;
|
|
|
|
typedef struct XrWorldMeshBlockStateML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrUuidEXT uuid;
|
|
XrPosef meshBoundingBoxCenter;
|
|
XrExtent3DfEXT meshBoundingBoxExtents;
|
|
XrTime lastUpdateTime;
|
|
XrWorldMeshBlockStatusML status;
|
|
} XrWorldMeshBlockStateML;
|
|
|
|
typedef struct XrWorldMeshStateRequestInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace baseSpace;
|
|
XrTime time;
|
|
XrPosef boundingBoxCenter;
|
|
XrExtent3DfEXT boundingBoxExtents;
|
|
} XrWorldMeshStateRequestInfoML;
|
|
|
|
typedef struct XrWorldMeshStateRequestCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
XrTime timestamp;
|
|
uint32_t meshBlockStateCapacityInput;
|
|
uint32_t meshBlockStateCountOutput;
|
|
XrWorldMeshBlockStateML* meshBlockStates;
|
|
} XrWorldMeshStateRequestCompletionML;
|
|
|
|
typedef struct XrWorldMeshBufferRecommendedSizeInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
uint32_t maxBlockCount;
|
|
} XrWorldMeshBufferRecommendedSizeInfoML;
|
|
|
|
typedef struct XrWorldMeshBufferSizeML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t size;
|
|
} XrWorldMeshBufferSizeML;
|
|
|
|
typedef struct XrWorldMeshBufferML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
uint32_t bufferSize;
|
|
void* XR_MAY_ALIAS buffer;
|
|
} XrWorldMeshBufferML;
|
|
|
|
typedef struct XrWorldMeshBlockRequestML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrUuidEXT uuid;
|
|
XrWorldMeshDetectorLodML lod;
|
|
} XrWorldMeshBlockRequestML;
|
|
|
|
typedef struct XrWorldMeshGetInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrWorldMeshDetectorFlagsML flags;
|
|
float fillHoleLength;
|
|
float disconnectedComponentArea;
|
|
uint32_t blockCount;
|
|
XrWorldMeshBlockRequestML* blocks;
|
|
} XrWorldMeshGetInfoML;
|
|
|
|
typedef struct XrWorldMeshBlockML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrUuidEXT uuid;
|
|
XrWorldMeshBlockResultML blockResult;
|
|
XrWorldMeshDetectorLodML lod;
|
|
XrWorldMeshDetectorFlagsML flags;
|
|
uint32_t indexCount;
|
|
uint16_t* indexBuffer;
|
|
uint32_t vertexCount;
|
|
XrVector3f* vertexBuffer;
|
|
uint32_t normalCount;
|
|
XrVector3f* normalBuffer;
|
|
uint32_t confidenceCount;
|
|
float* confidenceBuffer;
|
|
} XrWorldMeshBlockML;
|
|
|
|
typedef struct XrWorldMeshRequestCompletionInfoML {
|
|
XrStructureType type;
|
|
const void* XR_MAY_ALIAS next;
|
|
XrSpace meshSpace;
|
|
XrTime meshSpaceLocateTime;
|
|
} XrWorldMeshRequestCompletionInfoML;
|
|
|
|
typedef struct XrWorldMeshRequestCompletionML {
|
|
XrStructureType type;
|
|
void* XR_MAY_ALIAS next;
|
|
XrResult futureResult;
|
|
uint32_t blockCount;
|
|
XrWorldMeshBlockML* blocks;
|
|
} XrWorldMeshRequestCompletionML;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateWorldMeshDetectorML)(XrSession session, const XrWorldMeshDetectorCreateInfoML* createInfo, XrWorldMeshDetectorML* detector);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrDestroyWorldMeshDetectorML)(XrWorldMeshDetectorML detector);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateAsyncML)(XrWorldMeshDetectorML detector, const XrWorldMeshStateRequestInfoML* stateRequest, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateCompleteML)(XrWorldMeshDetectorML detector, XrFutureEXT future, XrWorldMeshStateRequestCompletionML* completion);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrGetWorldMeshBufferRecommendSizeML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferRecommendedSizeInfoML* sizeInfo, XrWorldMeshBufferSizeML* size);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrAllocateWorldMeshBufferML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferSizeML* size, XrWorldMeshBufferML* buffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrFreeWorldMeshBufferML)(XrWorldMeshDetectorML detector, const XrWorldMeshBufferML* buffer);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshAsyncML)(XrWorldMeshDetectorML detector, const XrWorldMeshGetInfoML* getInfo, XrWorldMeshBufferML* buffer, XrFutureEXT* future);
|
|
typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshCompleteML)(XrWorldMeshDetectorML detector, const XrWorldMeshRequestCompletionInfoML* completionInfo, XrFutureEXT future, XrWorldMeshRequestCompletionML* completion);
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateWorldMeshDetectorML(
|
|
XrSession session,
|
|
const XrWorldMeshDetectorCreateInfoML* createInfo,
|
|
XrWorldMeshDetectorML* detector);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrDestroyWorldMeshDetectorML(
|
|
XrWorldMeshDetectorML detector);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshStateAsyncML(
|
|
XrWorldMeshDetectorML detector,
|
|
const XrWorldMeshStateRequestInfoML* stateRequest,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshStateCompleteML(
|
|
XrWorldMeshDetectorML detector,
|
|
XrFutureEXT future,
|
|
XrWorldMeshStateRequestCompletionML* completion);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrGetWorldMeshBufferRecommendSizeML(
|
|
XrWorldMeshDetectorML detector,
|
|
const XrWorldMeshBufferRecommendedSizeInfoML* sizeInfo,
|
|
XrWorldMeshBufferSizeML* size);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrAllocateWorldMeshBufferML(
|
|
XrWorldMeshDetectorML detector,
|
|
const XrWorldMeshBufferSizeML* size,
|
|
XrWorldMeshBufferML* buffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrFreeWorldMeshBufferML(
|
|
XrWorldMeshDetectorML detector,
|
|
const XrWorldMeshBufferML* buffer);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshAsyncML(
|
|
XrWorldMeshDetectorML detector,
|
|
const XrWorldMeshGetInfoML* getInfo,
|
|
XrWorldMeshBufferML* buffer,
|
|
XrFutureEXT* future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrRequestWorldMeshCompleteML(
|
|
XrWorldMeshDetectorML detector,
|
|
const XrWorldMeshRequestCompletionInfoML* completionInfo,
|
|
XrFutureEXT future,
|
|
XrWorldMeshRequestCompletionML* completion);
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
|
|
// XR_ML_view_configuration_depth_range_change is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_ML_view_configuration_depth_range_change 1
|
|
#define XR_ML_view_configuration_depth_range_change_SPEC_VERSION 1
|
|
#define XR_ML_VIEW_CONFIGURATION_DEPTH_RANGE_CHANGE_EXTENSION_NAME "XR_ML_view_configuration_depth_range_change"
|
|
|
|
|
|
// XR_YVR_controller_interaction is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_YVR_controller_interaction 1
|
|
#define XR_YVR_controller_interaction_SPEC_VERSION 1
|
|
#define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction"
|
|
|
|
|
|
// XR_EXT_composition_layer_inverted_alpha is a preprocessor guard. Do not pass it to API calls.
|
|
#define XR_EXT_composition_layer_inverted_alpha 1
|
|
#define XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION 1
|
|
#define XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME "XR_EXT_composition_layer_inverted_alpha"
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|