diff --git a/src/external/openxr_includes/openxr/openxr.h b/src/external/openxr_includes/openxr/openxr.h index 6f9b71aa6..22ed40237 100644 --- a/src/external/openxr_includes/openxr/openxr.h +++ b/src/external/openxr_includes/openxr/openxr.h @@ -450,6 +450,8 @@ typedef enum XrStructureType { XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000, XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001, XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002, + XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX = 1000375002, + XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX = 1000375003, 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, @@ -4574,6 +4576,48 @@ XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterMETA( #define XR_EXT_uuid_SPEC_VERSION 1 #define XR_EXT_UUID_EXTENSION_NAME "XR_EXT_uuid" + +#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_FINGER_THUMB_CURL_MNDX = 0, + XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_INDEX_CURL_MNDX = 1, + XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_MIDDLE_CURL_MNDX = 2, + XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_RING_CURL_MNDX = 3, + XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_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 XrApplyForceFeedbackCurlLocationMNDX { + XrForceFeedbackCurlLocationMNDX location; + float value; +} XrApplyForceFeedbackCurlLocationMNDX; + +typedef struct XrApplyForceFeedbackCurlLocationsMNDX { + XrStructureType type; + const void* XR_MAY_ALIAS next; + XrApplyForceFeedbackCurlLocationMNDX* locations; + uint32_t locationCount; +} XrApplyForceFeedbackCurlLocationsMNDX; + +typedef XrResult (XRAPI_PTR *PFN_xrApplyForceFeedbackCurlMNDX)(XrHandTrackerEXT handTracker, const XrApplyForceFeedbackCurlLocationsMNDX* locations); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult XRAPI_CALL xrApplyForceFeedbackCurlMNDX( + XrHandTrackerEXT handTracker, + const XrApplyForceFeedbackCurlLocationsMNDX* locations); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/src/external/openxr_includes/openxr/openxr_reflection.h b/src/external/openxr_includes/openxr/openxr_reflection.h index ac6f45237..1471edb0d 100644 --- a/src/external/openxr_includes/openxr/openxr_reflection.h +++ b/src/external/openxr_includes/openxr/openxr_reflection.h @@ -351,6 +351,8 @@ XR_ENUM_STR(XrResult); _(XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META, 1000227000) \ _(XR_TYPE_PERFORMANCE_METRICS_STATE_META, 1000232001) \ _(XR_TYPE_PERFORMANCE_METRICS_COUNTER_META, 1000232002) \ + _(XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX, 1000375002) \ + _(XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX, 1000375003) \ _(XR_STRUCTURE_TYPE_MAX_ENUM, 0x7FFFFFFF) #define XR_LIST_ENUM_XrFormFactor(_) \ @@ -748,6 +750,14 @@ XR_ENUM_STR(XrResult); _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META, 4) \ _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_META, 0x7FFFFFFF) +#define XR_LIST_ENUM_XrForceFeedbackCurlLocationMNDX(_) \ + _(XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_THUMB_CURL_MNDX, 0) \ + _(XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_INDEX_CURL_MNDX, 1) \ + _(XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_MIDDLE_CURL_MNDX, 2) \ + _(XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_RING_CURL_MNDX, 3) \ + _(XR_FORCE_FEEDBACK_CURL_LOCATION_FINGER_LITTLE_CURL_MNDX, 4) \ + _(XR_FORCE_FEEDBACK_CURL_LOCATION_MAX_ENUM_MNDX, 0x7FFFFFFF) + #define XR_LIST_BITS_XrInstanceCreateFlags(_) #define XR_LIST_BITS_XrSessionCreateFlags(_) @@ -2687,6 +2697,21 @@ XR_ENUM_STR(XrResult); _(uintValue) \ _(floatValue) \ +#define XR_LIST_STRUCT_XrSystemForceFeedbackCurlPropertiesMNDX(_) \ + _(type) \ + _(next) \ + _(supportsForceFeedbackCurl) \ + +#define XR_LIST_STRUCT_XrApplyForceFeedbackCurlLocationMNDX(_) \ + _(location) \ + _(value) \ + +#define XR_LIST_STRUCT_XrApplyForceFeedbackCurlLocationsMNDX(_) \ + _(type) \ + _(next) \ + _(locations) \ + _(locationCount) \ + #define XR_LIST_STRUCTURE_TYPES_CORE(_) \ @@ -2889,6 +2914,8 @@ XR_ENUM_STR(XrResult); _(XrCompositionLayerSettingsFB, XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB) \ _(XrPerformanceMetricsStateMETA, XR_TYPE_PERFORMANCE_METRICS_STATE_META) \ _(XrPerformanceMetricsCounterMETA, XR_TYPE_PERFORMANCE_METRICS_COUNTER_META) \ + _(XrSystemForceFeedbackCurlPropertiesMNDX, XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX) \ + _(XrApplyForceFeedbackCurlLocationsMNDX, XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX) \ @@ -3152,6 +3179,7 @@ XR_ENUM_STR(XrResult); _(XR_META_vulkan_swapchain_create_info, 228) \ _(XR_META_performance_metrics, 233) \ _(XR_EXT_uuid, 300) \ + _(XR_MNDX_force_feedback_curl, 376) \ #endif