diff options
-rwxr-xr-x | wineopenxr/make_openxr | 5 | ||||
-rw-r--r-- | wineopenxr/openxr_thunks.c | 72 | ||||
-rw-r--r-- | wineopenxr/openxr_thunks.h | 20 | ||||
-rw-r--r-- | wineopenxr/wineopenxr.h | 843 | ||||
-rw-r--r-- | wineopenxr/xr.xml | 3684 |
5 files changed, 4285 insertions, 339 deletions
diff --git a/wineopenxr/make_openxr b/wineopenxr/make_openxr index 4a41d0d9..a3157cec 100755 --- a/wineopenxr/make_openxr +++ b/wineopenxr/make_openxr @@ -92,6 +92,9 @@ UNSUPPORTED_EXTENSIONS = [ "XR_EXT_validation_flags", "XR_KHR_display", # Needs WSI work. "XR_KHR_surface_protected_capabilities", + "XR_KHR_loader_init", + "XR_KHR_vulkan_enable2", + "XR_MSFT_perception_anchor_interop", # Device extensions "XR_AMD_display_native_hdr", @@ -1296,7 +1299,7 @@ class XrParam(object): self.format_conv = "wine_dbgstr_longlong({0})" elif self.type == "HANDLE": self.format_str = "%p" - elif self.type in ["XrSystemId", "XrPath", "XrTime"]: + elif self.type in ["XrSystemId", "XrPath", "XrTime", "XrControllerModelKeyMSFT"]: self.format_str = "0x%s" self.format_conv = "wine_dbgstr_longlong({0})" elif self.type in ["XrVector2f"]: diff --git a/wineopenxr/openxr_thunks.c b/wineopenxr/openxr_thunks.c index d2c2627c..eca4ffb4 100644 --- a/wineopenxr/openxr_thunks.c +++ b/wineopenxr/openxr_thunks.c @@ -15,7 +15,7 @@ * language incorporated into the Specification and reference pages, and other * material which is registered by Khronos, such as tags used by extension and * layer authors. The only authoritative version of xr.xml is the one - * maintained in the master branch of the Khronos OpenXR GitHub project. + * maintained in the default branch of the Khronos OpenXR GitHub project. * */ @@ -176,6 +176,18 @@ XrResult WINAPI wine_xrEnumerateBoundSourcesForAction(XrSession session, const X return xrEnumerateBoundSourcesForAction(((wine_XrSession *)session)->session, enumerateInfo, sourceCapacityInput, sourceCountOutput, sources); } +static XrResult WINAPI wine_xrEnumerateColorSpacesFB(XrSession session, uint32_t colorSpaceCapacityInput, uint32_t *colorSpaceCountOutput, XrColorSpaceFB *colorSpaces) +{ + WINE_TRACE("%p, %u, %p, %p\n", session, colorSpaceCapacityInput, colorSpaceCountOutput, colorSpaces); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrEnumerateColorSpacesFB(((wine_XrSession *)session)->session, colorSpaceCapacityInput, colorSpaceCountOutput, colorSpaces); +} + +static XrResult WINAPI wine_xrEnumerateDisplayRefreshRatesFB(XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t *displayRefreshRateCountOutput, float *displayRefreshRates) +{ + WINE_TRACE("%p, %u, %p, %p\n", session, displayRefreshRateCapacityInput, displayRefreshRateCountOutput, displayRefreshRates); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrEnumerateDisplayRefreshRatesFB(((wine_XrSession *)session)->session, displayRefreshRateCapacityInput, displayRefreshRateCountOutput, displayRefreshRates); +} + XrResult WINAPI wine_xrEnumerateEnvironmentBlendModes(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t *environmentBlendModeCountOutput, XrEnvironmentBlendMode *environmentBlendModes) { WINE_TRACE("%p, 0x%s, %#x, %u, %p, %p\n", instance, wine_dbgstr_longlong(systemId), viewConfigurationType, environmentBlendModeCapacityInput, environmentBlendModeCountOutput, environmentBlendModes); @@ -224,12 +236,36 @@ XrResult WINAPI wine_xrGetActionStateVector2f(XrSession session, const XrActionS return xrGetActionStateVector2f(((wine_XrSession *)session)->session, getInfo, state); } +static XrResult WINAPI wine_xrGetControllerModelKeyMSFT(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT *controllerModelKeyState) +{ + WINE_TRACE("%p, 0x%s, %p\n", session, wine_dbgstr_longlong(topLevelUserPath), controllerModelKeyState); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrGetControllerModelKeyMSFT(((wine_XrSession *)session)->session, topLevelUserPath, controllerModelKeyState); +} + +static XrResult WINAPI wine_xrGetControllerModelPropertiesMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT *properties) +{ + WINE_TRACE("%p, 0x%s, %p\n", session, wine_dbgstr_longlong(modelKey), properties); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrGetControllerModelPropertiesMSFT(((wine_XrSession *)session)->session, modelKey, properties); +} + +static XrResult WINAPI wine_xrGetControllerModelStateMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT *state) +{ + WINE_TRACE("%p, 0x%s, %p\n", session, wine_dbgstr_longlong(modelKey), state); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrGetControllerModelStateMSFT(((wine_XrSession *)session)->session, modelKey, state); +} + XrResult WINAPI wine_xrGetCurrentInteractionProfile(XrSession session, XrPath topLevelUserPath, XrInteractionProfileState *interactionProfile) { WINE_TRACE("%p, 0x%s, %p\n", session, wine_dbgstr_longlong(topLevelUserPath), interactionProfile); return xrGetCurrentInteractionProfile(((wine_XrSession *)session)->session, topLevelUserPath, interactionProfile); } +static XrResult WINAPI wine_xrGetDisplayRefreshRateFB(XrSession session, float *displayRefreshRate) +{ + WINE_TRACE("%p, %p\n", session, displayRefreshRate); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrGetDisplayRefreshRateFB(((wine_XrSession *)session)->session, displayRefreshRate); +} + XrResult WINAPI wine_xrGetInputSourceLocalizedName(XrSession session, const XrInputSourceLocalizedNameGetInfo *getInfo, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, char *buffer) { WINE_TRACE("%p, %p, %u, %p, %p\n", session, getInfo, bufferCapacityInput, bufferCountOutput, buffer); @@ -278,6 +314,12 @@ static XrResult WINAPI wine_xrGetVulkanGraphicsRequirementsKHR(XrInstance instan return ((wine_XrInstance *)instance)->funcs.p_xrGetVulkanGraphicsRequirementsKHR(((wine_XrInstance *)instance)->instance, systemId, graphicsRequirements); } +static XrResult WINAPI wine_xrLoadControllerModelMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, uint8_t *buffer) +{ + WINE_TRACE("%p, 0x%s, %u, %p, %p\n", session, wine_dbgstr_longlong(modelKey), bufferCapacityInput, bufferCountOutput, buffer); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrLoadControllerModelMSFT(((wine_XrSession *)session)->session, modelKey, bufferCapacityInput, bufferCountOutput, buffer); +} + static XrResult WINAPI wine_xrLocateHandJointsEXT(XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT *locateInfo, XrHandJointLocationsEXT *locations) { WINE_TRACE("%p, %p, %p\n", handTracker, locateInfo, locations); @@ -314,6 +356,12 @@ XrResult WINAPI wine_xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwap return xrReleaseSwapchainImage(((wine_XrSwapchain *)swapchain)->swapchain, releaseInfo); } +static XrResult WINAPI wine_xrRequestDisplayRefreshRateFB(XrSession session, float displayRefreshRate) +{ + WINE_TRACE("%p, %f\n", session, displayRefreshRate); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrRequestDisplayRefreshRateFB(((wine_XrSession *)session)->session, displayRefreshRate); +} + XrResult WINAPI wine_xrRequestExitSession(XrSession session) { WINE_TRACE("%p\n", session); @@ -326,6 +374,12 @@ XrResult WINAPI wine_xrResultToString(XrInstance instance, XrResult value, char return xrResultToString(((wine_XrInstance *)instance)->instance, value, buffer); } +static XrResult WINAPI wine_xrSetColorSpaceFB(XrSession session, const XrColorSpaceFB colorspace) +{ + WINE_TRACE("%p, %#x\n", session, colorspace); + return ((wine_XrSession *)session)->wine_instance->funcs.p_xrSetColorSpaceFB(((wine_XrSession *)session)->session, colorspace); +} + static XrResult WINAPI wine_xrSetInputDeviceActiveEXT(XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive) { WINE_TRACE("%p, 0x%s, 0x%s, %u\n", session, wine_dbgstr_longlong(interactionProfile), wine_dbgstr_longlong(topLevelPath), isActive); @@ -443,6 +497,8 @@ static const struct openxr_func xr_dispatch_table[] = {"xrEndSession", &wine_xrEndSession}, {"xrEnumerateApiLayerProperties", &wine_xrEnumerateApiLayerProperties}, {"xrEnumerateBoundSourcesForAction", &wine_xrEnumerateBoundSourcesForAction}, + {"xrEnumerateColorSpacesFB", &wine_xrEnumerateColorSpacesFB}, + {"xrEnumerateDisplayRefreshRatesFB", &wine_xrEnumerateDisplayRefreshRatesFB}, {"xrEnumerateEnvironmentBlendModes", &wine_xrEnumerateEnvironmentBlendModes}, {"xrEnumerateInstanceExtensionProperties", &wine_xrEnumerateInstanceExtensionProperties}, {"xrEnumerateReferenceSpaces", &wine_xrEnumerateReferenceSpaces}, @@ -454,9 +510,13 @@ static const struct openxr_func xr_dispatch_table[] = {"xrGetActionStateFloat", &wine_xrGetActionStateFloat}, {"xrGetActionStatePose", &wine_xrGetActionStatePose}, {"xrGetActionStateVector2f", &wine_xrGetActionStateVector2f}, + {"xrGetControllerModelKeyMSFT", &wine_xrGetControllerModelKeyMSFT}, + {"xrGetControllerModelPropertiesMSFT", &wine_xrGetControllerModelPropertiesMSFT}, + {"xrGetControllerModelStateMSFT", &wine_xrGetControllerModelStateMSFT}, {"xrGetCurrentInteractionProfile", &wine_xrGetCurrentInteractionProfile}, {"xrGetD3D11GraphicsRequirementsKHR", &wine_xrGetD3D11GraphicsRequirementsKHR}, {"xrGetD3D12GraphicsRequirementsKHR", &wine_xrGetD3D12GraphicsRequirementsKHR}, + {"xrGetDisplayRefreshRateFB", &wine_xrGetDisplayRefreshRateFB}, {"xrGetInputSourceLocalizedName", &wine_xrGetInputSourceLocalizedName}, {"xrGetInstanceProcAddr", &wine_xrGetInstanceProcAddr}, {"xrGetInstanceProperties", &wine_xrGetInstanceProperties}, @@ -470,6 +530,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrGetVulkanGraphicsDeviceKHR", &wine_xrGetVulkanGraphicsDeviceKHR}, {"xrGetVulkanGraphicsRequirementsKHR", &wine_xrGetVulkanGraphicsRequirementsKHR}, {"xrGetVulkanInstanceExtensionsKHR", &wine_xrGetVulkanInstanceExtensionsKHR}, + {"xrLoadControllerModelMSFT", &wine_xrLoadControllerModelMSFT}, {"xrLocateHandJointsEXT", &wine_xrLocateHandJointsEXT}, {"xrLocateSpace", &wine_xrLocateSpace}, {"xrLocateViews", &wine_xrLocateViews}, @@ -477,8 +538,10 @@ static const struct openxr_func xr_dispatch_table[] = {"xrPerfSettingsSetPerformanceLevelEXT", &wine_xrPerfSettingsSetPerformanceLevelEXT}, {"xrPollEvent", &wine_xrPollEvent}, {"xrReleaseSwapchainImage", &wine_xrReleaseSwapchainImage}, + {"xrRequestDisplayRefreshRateFB", &wine_xrRequestDisplayRefreshRateFB}, {"xrRequestExitSession", &wine_xrRequestExitSession}, {"xrResultToString", &wine_xrResultToString}, + {"xrSetColorSpaceFB", &wine_xrSetColorSpaceFB}, {"xrSetInputDeviceActiveEXT", &wine_xrSetInputDeviceActiveEXT}, {"xrSetInputDeviceLocationEXT", &wine_xrSetInputDeviceLocationEXT}, {"xrSetInputDeviceStateBoolEXT", &wine_xrSetInputDeviceStateBoolEXT}, @@ -522,13 +585,19 @@ static const char * const xr_extensions[] = "XR_EXT_thermal_query", "XR_EXT_view_configuration_depth_range", "XR_EXT_win32_appcontainer_compatible", + "XR_FB_color_space", + "XR_FB_display_refresh_rate", + "XR_HTC_vive_cosmos_controller_interaction", "XR_HUAWEI_controller_interaction", "XR_KHR_D3D11_enable", "XR_KHR_D3D12_enable", + "XR_KHR_binding_modification", + "XR_KHR_composition_layer_color_scale_bias", "XR_KHR_composition_layer_cube", "XR_KHR_composition_layer_cylinder", "XR_KHR_composition_layer_depth", "XR_KHR_composition_layer_equirect", + "XR_KHR_composition_layer_equirect2", "XR_KHR_opengl_enable", "XR_KHR_visibility_mask", "XR_KHR_vulkan_enable", @@ -536,6 +605,7 @@ static const char * const xr_extensions[] = "XR_KHR_win32_convert_performance_counter_time", "XR_MND_headless", "XR_MND_swapchain_usage_input_attachment_bit", + "XR_MSFT_controller_model", "XR_MSFT_first_person_observer", "XR_MSFT_hand_interaction", "XR_MSFT_hand_tracking_mesh", diff --git a/wineopenxr/openxr_thunks.h b/wineopenxr/openxr_thunks.h index eb3a8340..eb127c2f 100644 --- a/wineopenxr/openxr_thunks.h +++ b/wineopenxr/openxr_thunks.h @@ -15,7 +15,7 @@ * language incorporated into the Specification and reference pages, and other * material which is registered by Khronos, such as tags used by extension and * layer authors. The only authoritative version of xr.xml is the one - * maintained in the master branch of the Khronos OpenXR GitHub project. + * maintained in the default branch of the Khronos OpenXR GitHub project. * */ @@ -86,6 +86,8 @@ struct openxr_instance_funcs XrResult (*p_xrEndSession)(XrSession); XrResult (*p_xrEnumerateApiLayerProperties)(uint32_t, uint32_t *, XrApiLayerProperties *); XrResult (*p_xrEnumerateBoundSourcesForAction)(XrSession, const XrBoundSourcesForActionEnumerateInfo *, uint32_t, uint32_t *, XrPath *); + XrResult (*p_xrEnumerateColorSpacesFB)(XrSession, uint32_t, uint32_t *, XrColorSpaceFB *); + XrResult (*p_xrEnumerateDisplayRefreshRatesFB)(XrSession, uint32_t, uint32_t *, float *); XrResult (*p_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *); XrResult (*p_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *); XrResult (*p_xrEnumerateSwapchainFormats)(XrSession, uint32_t, uint32_t *, int64_t *); @@ -96,7 +98,11 @@ struct openxr_instance_funcs XrResult (*p_xrGetActionStateFloat)(XrSession, const XrActionStateGetInfo *, XrActionStateFloat *); XrResult (*p_xrGetActionStatePose)(XrSession, const XrActionStateGetInfo *, XrActionStatePose *); XrResult (*p_xrGetActionStateVector2f)(XrSession, const XrActionStateGetInfo *, XrActionStateVector2f *); + XrResult (*p_xrGetControllerModelKeyMSFT)(XrSession, XrPath, XrControllerModelKeyStateMSFT *); + XrResult (*p_xrGetControllerModelPropertiesMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelPropertiesMSFT *); + XrResult (*p_xrGetControllerModelStateMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelStateMSFT *); XrResult (*p_xrGetCurrentInteractionProfile)(XrSession, XrPath, XrInteractionProfileState *); + XrResult (*p_xrGetDisplayRefreshRateFB)(XrSession, float *); XrResult (*p_xrGetInputSourceLocalizedName)(XrSession, const XrInputSourceLocalizedNameGetInfo *, uint32_t, uint32_t *, char *); XrResult (*p_xrGetInstanceProperties)(XrInstance, XrInstanceProperties *); XrResult (*p_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsOpenGLKHR *); @@ -109,6 +115,7 @@ struct openxr_instance_funcs XrResult (*p_xrGetVulkanGraphicsDeviceKHR)(XrInstance, XrSystemId, VkInstance, VkPhysicalDevice *); XrResult (*p_xrGetVulkanGraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsVulkanKHR *); XrResult (*p_xrGetVulkanInstanceExtensionsKHR)(XrInstance, XrSystemId, uint32_t, uint32_t *, char *); + XrResult (*p_xrLoadControllerModelMSFT)(XrSession, XrControllerModelKeyMSFT, uint32_t, uint32_t *, uint8_t *); XrResult (*p_xrLocateHandJointsEXT)(XrHandTrackerEXT, const XrHandJointsLocateInfoEXT *, XrHandJointLocationsEXT *); XrResult (*p_xrLocateSpace)(XrSpace, XrSpace, XrTime, XrSpaceLocation *); XrResult (*p_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *); @@ -116,8 +123,10 @@ struct openxr_instance_funcs XrResult (*p_xrPerfSettingsSetPerformanceLevelEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsLevelEXT); XrResult (*p_xrPollEvent)(XrInstance, XrEventDataBuffer *); XrResult (*p_xrReleaseSwapchainImage)(XrSwapchain, const XrSwapchainImageReleaseInfo *); + XrResult (*p_xrRequestDisplayRefreshRateFB)(XrSession, float); XrResult (*p_xrRequestExitSession)(XrSession); XrResult (*p_xrResultToString)(XrInstance, XrResult, char[]); + XrResult (*p_xrSetColorSpaceFB)(XrSession, const XrColorSpaceFB); XrResult (*p_xrSetInputDeviceActiveEXT)(XrSession, XrPath, XrPath, XrBool32); XrResult (*p_xrSetInputDeviceLocationEXT)(XrSession, XrPath, XrPath, XrSpace, XrPosef); XrResult (*p_xrSetInputDeviceStateBoolEXT)(XrSession, XrPath, XrPath, XrBool32); @@ -162,6 +171,8 @@ struct openxr_instance_funcs USE_XR_FUNC(xrEndSession) \ USE_XR_FUNC(xrEnumerateApiLayerProperties) \ USE_XR_FUNC(xrEnumerateBoundSourcesForAction) \ + USE_XR_FUNC(xrEnumerateColorSpacesFB) \ + USE_XR_FUNC(xrEnumerateDisplayRefreshRatesFB) \ USE_XR_FUNC(xrEnumerateEnvironmentBlendModes) \ USE_XR_FUNC(xrEnumerateReferenceSpaces) \ USE_XR_FUNC(xrEnumerateSwapchainFormats) \ @@ -172,7 +183,11 @@ struct openxr_instance_funcs USE_XR_FUNC(xrGetActionStateFloat) \ USE_XR_FUNC(xrGetActionStatePose) \ USE_XR_FUNC(xrGetActionStateVector2f) \ + USE_XR_FUNC(xrGetControllerModelKeyMSFT) \ + USE_XR_FUNC(xrGetControllerModelPropertiesMSFT) \ + USE_XR_FUNC(xrGetControllerModelStateMSFT) \ USE_XR_FUNC(xrGetCurrentInteractionProfile) \ + USE_XR_FUNC(xrGetDisplayRefreshRateFB) \ USE_XR_FUNC(xrGetInputSourceLocalizedName) \ USE_XR_FUNC(xrGetInstanceProperties) \ USE_XR_FUNC(xrGetOpenGLGraphicsRequirementsKHR) \ @@ -185,6 +200,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrGetVulkanGraphicsDeviceKHR) \ USE_XR_FUNC(xrGetVulkanGraphicsRequirementsKHR) \ USE_XR_FUNC(xrGetVulkanInstanceExtensionsKHR) \ + USE_XR_FUNC(xrLoadControllerModelMSFT) \ USE_XR_FUNC(xrLocateHandJointsEXT) \ USE_XR_FUNC(xrLocateSpace) \ USE_XR_FUNC(xrLocateViews) \ @@ -192,8 +208,10 @@ struct openxr_instance_funcs USE_XR_FUNC(xrPerfSettingsSetPerformanceLevelEXT) \ USE_XR_FUNC(xrPollEvent) \ USE_XR_FUNC(xrReleaseSwapchainImage) \ + USE_XR_FUNC(xrRequestDisplayRefreshRateFB) \ USE_XR_FUNC(xrRequestExitSession) \ USE_XR_FUNC(xrResultToString) \ + USE_XR_FUNC(xrSetColorSpaceFB) \ USE_XR_FUNC(xrSetInputDeviceActiveEXT) \ USE_XR_FUNC(xrSetInputDeviceLocationEXT) \ USE_XR_FUNC(xrSetInputDeviceStateBoolEXT) \ diff --git a/wineopenxr/wineopenxr.h b/wineopenxr/wineopenxr.h index 9f11c5ab..5253bcae 100644 --- a/wineopenxr/wineopenxr.h +++ b/wineopenxr/wineopenxr.h @@ -15,7 +15,7 @@ * language incorporated into the Specification and reference pages, and other * material which is registered by Khronos, such as tags used by extension and * layer authors. The only authoritative version of xr.xml is the one - * maintained in the master branch of the Khronos OpenXR GitHub project. + * maintained in the default branch of the Khronos OpenXR GitHub project. * */ @@ -65,7 +65,7 @@ #define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME "XR_KHR_composition_layer_cube" #define XR_KHR_composition_layer_depth_SPEC_VERSION 5 #define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth" -#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 2 +#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 3 #define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list" #define XR_EXT_performance_settings_SPEC_VERSION 1 #define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings" @@ -89,6 +89,8 @@ #define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME "XR_KHR_visibility_mask" #define XR_EXTX_overlay_SPEC_VERSION 4 #define XR_EXTX_OVERLAY_EXTENSION_NAME "XR_EXTX_overlay" +#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" #define XR_KHR_win32_convert_performance_counter_time_SPEC_VERSION 1 #define XR_KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME "XR_KHR_win32_convert_performance_counter_time" #define XR_VARJO_quad_views_SPEC_VERSION 1 @@ -117,6 +119,9 @@ #define XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME "XR_MSFT_secondary_view_configuration" #define XR_MSFT_first_person_observer_SPEC_VERSION 1 #define XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME "XR_MSFT_first_person_observer" +#define XR_MSFT_controller_model_SPEC_VERSION 2 +#define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME "XR_MSFT_controller_model" +#define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64 #define XR_EXT_win32_appcontainer_compatible_SPEC_VERSION 1 #define XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME "XR_EXT_win32_appcontainer_compatible" #define XR_EPIC_view_configuration_fov_SPEC_VERSION 2 @@ -127,12 +132,22 @@ #define XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HUAWEI_controller_interaction" #define XR_VALVE_analog_threshold_SPEC_VERSION 1 #define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME "XR_VALVE_analog_threshold" +#define XR_KHR_composition_layer_equirect2_SPEC_VERSION 1 +#define XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME "XR_KHR_composition_layer_equirect2" #define XR_EXT_samsung_odyssey_controller_SPEC_VERSION 1 #define XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME "XR_EXT_samsung_odyssey_controller" #define XR_EXT_hp_mixed_reality_controller_SPEC_VERSION 1 #define XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME "XR_EXT_hp_mixed_reality_controller" #define XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION 2 #define XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_MND_swapchain_usage_input_attachment_bit" +#define XR_FB_display_refresh_rate_SPEC_VERSION 1 +#define XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME "XR_FB_display_refresh_rate" +#define XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION 1 +#define XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_cosmos_controller_interaction" +#define XR_FB_color_space_SPEC_VERSION 1 +#define XR_FB_COLOR_SPACE_EXTENSION_NAME "XR_FB_color_space" +#define XR_KHR_binding_modification_SPEC_VERSION 1 +#define XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME "XR_KHR_binding_modification" #define XR_MAKE_VERSION(major, minor, patch) \ @@ -145,7 +160,7 @@ #define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 11) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 13) #if !defined(XR_MAY_ALIAS) @@ -214,6 +229,9 @@ #define XR_HAND_JOINT_COUNT_EXT 26 + + +#define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0 XR_DEFINE_HANDLE(XrAction) XR_DEFINE_HANDLE(XrActionSet) XR_DEFINE_HANDLE(XrHandTrackerEXT) @@ -224,6 +242,7 @@ XR_DEFINE_HANDLE(XrSpatialAnchorMSFT) XR_DEFINE_HANDLE(XrSwapchain) typedef uint32_t XrBool32; +XR_DEFINE_ATOM(XrControllerModelKeyMSFT) typedef int64_t XrDuration; typedef uint64_t XrFlags64; XR_DEFINE_ATOM(XrPath) @@ -244,6 +263,8 @@ typedef XrFlags64 XrSpaceVelocityFlags; typedef XrFlags64 XrSwapchainCreateFlags; typedef XrFlags64 XrSwapchainUsageFlags; typedef XrFlags64 XrViewStateFlags; +typedef XrFlags64 XrVulkanDeviceCreateFlagsKHR; +typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR; typedef enum XrActionType { @@ -255,6 +276,19 @@ typedef enum XrActionType XR_ACTION_TYPE_MAX_ENUM = 0x7fffffff, } XrActionType; +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_FB_MAX_ENUM = 0x7fffffff, +} XrColorSpaceFB; + typedef enum XrEnvironmentBlendMode { XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1, @@ -386,6 +420,9 @@ typedef enum XrReferenceSpaceType typedef enum XrResult { + XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, + XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, + XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000, XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000, XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50, @@ -545,6 +582,7 @@ typedef enum XrStructureType 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_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, @@ -565,9 +603,18 @@ typedef enum XrStructureType 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_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000, + XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR = 1000091000, + XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB = 1000101000, + XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB = 1000108000, + XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000, XR_STRUCTURE_TYPE_MAX_ENUM = 0x7fffffff, } XrStructureType; @@ -595,21 +642,28 @@ typedef struct XrActionSuggestedBinding XrActionSuggestedBinding; typedef struct XrActiveActionSet XrActiveActionSet; typedef struct XrApplicationInfo XrApplicationInfo; typedef struct XrBaseOutStructure XrBaseOutStructure; -typedef struct XrColor4f XrColor4f; +typedef struct XrBoundSourcesForActionEnumerateInfo XrBoundSourcesForActionEnumerateInfo; +typedef struct XrCompositionLayerBaseHeader XrCompositionLayerBaseHeader; +typedef struct XrControllerModelKeyStateMSFT XrControllerModelKeyStateMSFT; typedef struct XrDebugUtilsLabelEXT XrDebugUtilsLabelEXT; typedef struct XrEventDataBaseHeader XrEventDataBaseHeader; -typedef struct XrEventDataEventsLost XrEventDataEventsLost; -typedef struct XrEventDataInteractionProfileChanged XrEventDataInteractionProfileChanged; -typedef struct XrEventDataPerfSettingsEXT XrEventDataPerfSettingsEXT; +typedef struct XrEventDataDisplayRefreshRateChangedFB XrEventDataDisplayRefreshRateChangedFB; +typedef struct XrEventDataInstanceLossPending XrEventDataInstanceLossPending; +typedef struct XrEventDataMainSessionVisibilityChangedEXTX XrEventDataMainSessionVisibilityChangedEXTX; typedef struct XrEventDataSessionStateChanged XrEventDataSessionStateChanged; typedef struct XrExtensionProperties XrExtensionProperties; typedef struct XrExtent2Di XrExtent2Di; typedef struct XrFovf XrFovf; -typedef struct XrFrameState XrFrameState; -typedef struct XrGraphicsBindingD3D11KHR XrGraphicsBindingD3D11KHR; +typedef struct XrFrameEndInfo XrFrameEndInfo; +typedef struct XrFrameWaitInfo XrFrameWaitInfo; +typedef struct XrGraphicsBindingD3D12KHR XrGraphicsBindingD3D12KHR; +typedef struct XrGraphicsBindingOpenGLWin32KHR XrGraphicsBindingOpenGLWin32KHR; typedef struct XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkanKHR; +typedef XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkan2KHR; typedef struct XrGraphicsRequirementsD3D12KHR XrGraphicsRequirementsD3D12KHR; typedef struct XrGraphicsRequirementsOpenGLKHR XrGraphicsRequirementsOpenGLKHR; +typedef struct XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkanKHR; +typedef XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkan2KHR; typedef struct XrHandJointsLocateInfoEXT XrHandJointsLocateInfoEXT; typedef struct XrHandMeshUpdateInfoMSFT XrHandMeshUpdateInfoMSFT; typedef struct XrHandPoseTypeInfoMSFT XrHandPoseTypeInfoMSFT; @@ -619,104 +673,111 @@ typedef struct XrInputSourceLocalizedNameGetInfo XrInputSourceLocalizedNameGetIn typedef struct XrInteractionProfileState XrInteractionProfileState; typedef struct XrOffset2Df XrOffset2Df; typedef struct XrQuaternionf XrQuaternionf; -typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT XrSecondaryViewConfigurationSessionBeginInfoMSFT; -typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; -typedef struct XrSessionBeginInfo XrSessionBeginInfo; -typedef struct XrSessionCreateInfoOverlayEXTX XrSessionCreateInfoOverlayEXTX; +typedef struct XrSecondaryViewConfigurationLayerInfoMSFT XrSecondaryViewConfigurationLayerInfoMSFT; +typedef struct XrSecondaryViewConfigurationStateMSFT XrSecondaryViewConfigurationStateMSFT; +typedef struct XrSessionActionSetsAttachInfo XrSessionActionSetsAttachInfo; +typedef struct XrSessionCreateInfo XrSessionCreateInfo; typedef struct XrSwapchainCreateInfo XrSwapchainCreateInfo; typedef struct XrSwapchainImageBaseHeader XrSwapchainImageBaseHeader; typedef struct XrSwapchainImageD3D12KHR XrSwapchainImageD3D12KHR; typedef struct XrSwapchainImageOpenGLKHR XrSwapchainImageOpenGLKHR; -typedef struct XrSwapchainImageVulkanKHR XrSwapchainImageVulkanKHR; -typedef struct XrSystemEyeGazeInteractionPropertiesEXT XrSystemEyeGazeInteractionPropertiesEXT; -typedef struct XrSystemGraphicsProperties XrSystemGraphicsProperties; -typedef struct XrSystemHandTrackingPropertiesEXT XrSystemHandTrackingPropertiesEXT; +typedef struct XrSwapchainImageWaitInfo XrSwapchainImageWaitInfo; +typedef struct XrSystemColorSpacePropertiesFB XrSystemColorSpacePropertiesFB; +typedef struct XrSystemGetInfo XrSystemGetInfo; +typedef struct XrSystemHandTrackingMeshPropertiesMSFT XrSystemHandTrackingMeshPropertiesMSFT; typedef struct XrSystemTrackingProperties XrSystemTrackingProperties; typedef struct XrVector3f XrVector3f; typedef struct XrViewConfigurationDepthRangeEXT XrViewConfigurationDepthRangeEXT; typedef struct XrViewConfigurationView XrViewConfigurationView; typedef struct XrViewLocateInfo XrViewLocateInfo; -typedef struct XrVulkanSwapchainFormatListCreateInfoKHR XrVulkanSwapchainFormatListCreateInfoKHR; typedef struct XrActionSetCreateInfo XrActionSetCreateInfo; typedef struct XrActionStateFloat XrActionStateFloat; typedef struct XrActionsSyncInfo XrActionsSyncInfo; typedef struct XrBaseInStructure XrBaseInStructure; -typedef struct XrCompositionLayerBaseHeader XrCompositionLayerBaseHeader; +typedef struct XrColor4f XrColor4f; +typedef struct XrCompositionLayerCubeKHR XrCompositionLayerCubeKHR; +typedef struct XrControllerModelNodePropertiesMSFT XrControllerModelNodePropertiesMSFT; +typedef struct XrControllerModelPropertiesMSFT XrControllerModelPropertiesMSFT; typedef struct XrDebugUtilsObjectNameInfoEXT XrDebugUtilsObjectNameInfoEXT; -typedef struct XrEventDataInstanceLossPending XrEventDataInstanceLossPending; +typedef struct XrEventDataEventsLost XrEventDataEventsLost; +typedef struct XrEventDataPerfSettingsEXT XrEventDataPerfSettingsEXT; typedef struct XrEventDataVisibilityMaskChangedKHR XrEventDataVisibilityMaskChangedKHR; typedef struct XrEyeGazeSampleTimeEXT XrEyeGazeSampleTimeEXT; -typedef struct XrFrameEndInfo XrFrameEndInfo; -typedef struct XrGraphicsBindingD3D12KHR XrGraphicsBindingD3D12KHR; +typedef struct XrFrameState XrFrameState; typedef struct XrGraphicsRequirementsD3D11KHR XrGraphicsRequirementsD3D11KHR; -typedef struct XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkanKHR; typedef struct XrHandJointVelocityEXT XrHandJointVelocityEXT; typedef struct XrHandMeshVertexMSFT XrHandMeshVertexMSFT; typedef struct XrHapticBaseHeader XrHapticBaseHeader; typedef struct XrInstanceCreateInfo XrInstanceCreateInfo; typedef struct XrInteractionProfileAnalogThresholdVALVE XrInteractionProfileAnalogThresholdVALVE; -typedef struct XrOffset2Di XrOffset2Di; -typedef struct XrRect2Di XrRect2Di; -typedef struct XrSecondaryViewConfigurationLayerInfoMSFT XrSecondaryViewConfigurationLayerInfoMSFT; -typedef struct XrSessionActionSetsAttachInfo XrSessionActionSetsAttachInfo; +typedef struct XrPosef XrPosef; +typedef struct XrReferenceSpaceCreateInfo XrReferenceSpaceCreateInfo; +typedef struct XrSecondaryViewConfigurationFrameStateMSFT XrSecondaryViewConfigurationFrameStateMSFT; +typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; +typedef struct XrSessionCreateInfoOverlayEXTX XrSessionCreateInfoOverlayEXTX; typedef struct XrSpaceVelocity XrSpaceVelocity; +typedef struct XrSpatialAnchorSpaceCreateInfoMSFT XrSpatialAnchorSpaceCreateInfoMSFT; typedef struct XrSwapchainImageAcquireInfo XrSwapchainImageAcquireInfo; -typedef struct XrSwapchainImageWaitInfo XrSwapchainImageWaitInfo; -typedef struct XrSystemGetInfo XrSystemGetInfo; -typedef struct XrSystemProperties XrSystemProperties; -typedef struct XrVector4f XrVector4f; -typedef struct XrViewConfigurationProperties XrViewConfigurationProperties; -typedef struct XrViewState XrViewState; -typedef struct XrActionStatePose XrActionStatePose; -typedef struct XrApiLayerProperties XrApiLayerProperties; -typedef struct XrCompositionLayerCubeKHR XrCompositionLayerCubeKHR; +typedef struct XrSwapchainImageVulkanKHR XrSwapchainImageVulkanKHR; +typedef XrSwapchainImageVulkanKHR XrSwapchainImageVulkan2KHR; +typedef struct XrSystemEyeGazeInteractionPropertiesEXT XrSystemEyeGazeInteractionPropertiesEXT; +typedef struct XrSystemHandTrackingPropertiesEXT XrSystemHandTrackingPropertiesEXT; +typedef struct XrVector2f XrVector2f; +typedef struct XrView XrView; +typedef struct XrViewConfigurationViewFovEPIC XrViewConfigurationViewFovEPIC; +typedef struct XrVisibilityMaskKHR XrVisibilityMaskKHR; +typedef struct XrVulkanSwapchainFormatListCreateInfoKHR XrVulkanSwapchainFormatListCreateInfoKHR; +typedef struct XrActionSpaceCreateInfo XrActionSpaceCreateInfo; +typedef struct XrActionStateVector2f XrActionStateVector2f; +typedef struct XrBindingModificationBaseHeaderKHR XrBindingModificationBaseHeaderKHR; +typedef struct XrCompositionLayerColorScaleBiasKHR XrCompositionLayerColorScaleBiasKHR; +typedef struct XrControllerModelNodeStateMSFT XrControllerModelNodeStateMSFT; typedef struct XrDebugUtilsMessengerCallbackDataEXT XrDebugUtilsMessengerCallbackDataEXT; -typedef struct XrEventDataMainSessionVisibilityChangedEXTX XrEventDataMainSessionVisibilityChangedEXTX; +typedef struct XrEventDataInteractionProfileChanged XrEventDataInteractionProfileChanged; typedef struct XrExtent2Df XrExtent2Df; -typedef struct XrFrameWaitInfo XrFrameWaitInfo; +typedef struct XrGraphicsBindingD3D11KHR XrGraphicsBindingD3D11KHR; typedef struct XrHandJointVelocitiesEXT XrHandJointVelocitiesEXT; +typedef struct XrHandMeshSpaceCreateInfoMSFT XrHandMeshSpaceCreateInfoMSFT; +typedef struct XrHandTrackerCreateInfoEXT XrHandTrackerCreateInfoEXT; +typedef struct XrInstanceProperties XrInstanceProperties; +typedef struct XrOffset2Di XrOffset2Di; +typedef struct XrRect2Di XrRect2Di; +typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT XrSecondaryViewConfigurationSessionBeginInfoMSFT; +typedef struct XrSpaceLocation XrSpaceLocation; +typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT XrSpatialGraphNodeSpaceCreateInfoMSFT; +typedef struct XrSwapchainImageReleaseInfo XrSwapchainImageReleaseInfo; +typedef struct XrSystemGraphicsProperties XrSystemGraphicsProperties; +typedef struct XrVector4f XrVector4f; +typedef struct XrViewState XrViewState; +typedef struct XrActionStatePose XrActionStatePose; +typedef struct XrBindingModificationsKHR XrBindingModificationsKHR; +typedef struct XrControllerModelStateMSFT XrControllerModelStateMSFT; +typedef struct XrEventDataReferenceSpaceChangePending XrEventDataReferenceSpaceChangePending; +typedef struct XrHandMeshIndexBufferMSFT XrHandMeshIndexBufferMSFT; typedef struct XrHandMeshVertexBufferMSFT XrHandMeshVertexBufferMSFT; -typedef struct XrHolographicWindowAttachmentMSFT XrHolographicWindowAttachmentMSFT; typedef struct XrInteractionProfileSuggestedBinding XrInteractionProfileSuggestedBinding; -typedef struct XrRect2Df XrRect2Df; typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT XrSecondaryViewConfigurationFrameEndInfoMSFT; -typedef struct XrSecondaryViewConfigurationStateMSFT XrSecondaryViewConfigurationStateMSFT; -typedef struct XrSwapchainImageD3D11KHR XrSwapchainImageD3D11KHR; +typedef struct XrSpatialAnchorCreateInfoMSFT XrSpatialAnchorCreateInfoMSFT; typedef struct XrSwapchainSubImage XrSwapchainSubImage; -typedef struct XrVector2f XrVector2f; -typedef struct XrViewConfigurationViewFovEPIC XrViewConfigurationViewFovEPIC; -typedef struct XrActionStateVector2f XrActionStateVector2f; +typedef struct XrViewConfigurationProperties XrViewConfigurationProperties; +typedef struct XrApiLayerProperties XrApiLayerProperties; typedef struct XrCompositionLayerDepthInfoKHR XrCompositionLayerDepthInfoKHR; -typedef struct XrEventDataBuffer XrEventDataBuffer; -typedef struct XrFrameBeginInfo XrFrameBeginInfo; -typedef struct XrHandMeshIndexBufferMSFT XrHandMeshIndexBufferMSFT; -typedef struct XrHandTrackerCreateInfoEXT XrHandTrackerCreateInfoEXT; -typedef struct XrPosef XrPosef; -typedef struct XrSecondaryViewConfigurationFrameStateMSFT XrSecondaryViewConfigurationFrameStateMSFT; -typedef struct XrSpaceLocation XrSpaceLocation; -typedef struct XrSpatialAnchorSpaceCreateInfoMSFT XrSpatialAnchorSpaceCreateInfoMSFT; -typedef struct XrSwapchainImageReleaseInfo XrSwapchainImageReleaseInfo; -typedef struct XrView XrView; -typedef struct XrActionSpaceCreateInfo XrActionSpaceCreateInfo; -typedef struct XrCompositionLayerCylinderKHR XrCompositionLayerCylinderKHR; +typedef struct XrCompositionLayerEquirectKHR XrCompositionLayerEquirectKHR; typedef struct XrCompositionLayerProjectionView XrCompositionLayerProjectionView; -typedef struct XrEventDataReferenceSpaceChangePending XrEventDataReferenceSpaceChangePending; +typedef struct XrEventDataBuffer XrEventDataBuffer; typedef struct XrHandJointLocationEXT XrHandJointLocationEXT; typedef struct XrHandMeshMSFT XrHandMeshMSFT; -typedef struct XrInstanceProperties XrInstanceProperties; -typedef struct XrSessionCreateInfo XrSessionCreateInfo; -typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT XrSpatialGraphNodeSpaceCreateInfoMSFT; -typedef struct XrVisibilityMaskKHR XrVisibilityMaskKHR; -typedef struct XrBoundSourcesForActionEnumerateInfo XrBoundSourcesForActionEnumerateInfo; +typedef struct XrRect2Df XrRect2Df; +typedef struct XrSwapchainImageD3D11KHR XrSwapchainImageD3D11KHR; +typedef struct XrCompositionLayerCylinderKHR XrCompositionLayerCylinderKHR; typedef struct XrCompositionLayerProjection XrCompositionLayerProjection; -typedef struct XrGraphicsBindingOpenGLWin32KHR XrGraphicsBindingOpenGLWin32KHR; -typedef struct XrHandMeshSpaceCreateInfoMSFT XrHandMeshSpaceCreateInfoMSFT; -typedef struct XrSpatialAnchorCreateInfoMSFT XrSpatialAnchorCreateInfoMSFT; -typedef struct XrCompositionLayerEquirectKHR XrCompositionLayerEquirectKHR; +typedef struct XrFrameBeginInfo XrFrameBeginInfo; +typedef struct XrHolographicWindowAttachmentMSFT XrHolographicWindowAttachmentMSFT; +typedef struct XrSystemProperties XrSystemProperties; +typedef struct XrCompositionLayerEquirect2KHR XrCompositionLayerEquirect2KHR; typedef struct XrHandJointLocationsEXT XrHandJointLocationsEXT; -typedef struct XrSystemHandTrackingMeshPropertiesMSFT XrSystemHandTrackingMeshPropertiesMSFT; typedef struct XrCompositionLayerQuad XrCompositionLayerQuad; -typedef struct XrReferenceSpaceCreateInfo XrReferenceSpaceCreateInfo; +typedef struct XrSessionBeginInfo XrSessionBeginInfo; typedef XrBool32 (XRAPI_PTR * PFN_xrDebugUtilsMessengerCallbackEXT)( XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, @@ -781,12 +842,26 @@ struct XrBaseOutStructure struct XrBaseOutStructure *next; }; -struct XrColor4f +struct XrBoundSourcesForActionEnumerateInfo { - float r; - float g; - float b; - float a; + XrStructureType type; + const void *next; + XrAction action; +}; + +struct XrCompositionLayerBaseHeader +{ + XrStructureType type; + const void *next; + XrCompositionLayerFlags layerFlags; + XrSpace space; +}; + +struct XrControllerModelKeyStateMSFT +{ + XrStructureType type; + void *next; + XrControllerModelKeyMSFT modelKey; }; struct XrDebugUtilsLabelEXT @@ -802,28 +877,27 @@ struct XrEventDataBaseHeader const void *next; }; -struct XrEventDataEventsLost +struct XrEventDataDisplayRefreshRateChangedFB { XrStructureType type; const void *next; - uint32_t lostEventCount; + float fromDisplayRefreshRate; + float toDisplayRefreshRate; }; -struct XrEventDataInteractionProfileChanged +struct XrEventDataInstanceLossPending { XrStructureType type; const void *next; - XrSession session; + XrTime lossTime; }; -struct XrEventDataPerfSettingsEXT +struct XrEventDataMainSessionVisibilityChangedEXTX { XrStructureType type; const void *next; - XrPerfSettingsDomainEXT domain; - XrPerfSettingsSubDomainEXT subDomain; - XrPerfSettingsNotificationLevelEXT fromLevel; - XrPerfSettingsNotificationLevelEXT toLevel; + XrBool32 visible; + XrOverlayMainSessionFlagsEXTX flags; }; struct XrEventDataSessionStateChanged @@ -857,20 +931,36 @@ struct XrFovf float angleDown; }; -struct XrFrameState +struct XrFrameEndInfo { XrStructureType type; - void *next; - XrTime predictedDisplayTime; - XrDuration predictedDisplayPeriod; - XrBool32 shouldRender; + const void *next; + XrTime displayTime; + XrEnvironmentBlendMode environmentBlendMode; + uint32_t layerCount; + const XrCompositionLayerBaseHeader * const*layers; }; -struct XrGraphicsBindingD3D11KHR +struct XrFrameWaitInfo { XrStructureType type; const void *next; - ID3D11Device *device; +}; + +struct XrGraphicsBindingD3D12KHR +{ + XrStructureType type; + const void *next; + ID3D12Device *device; + ID3D12CommandQueue *queue; +}; + +struct XrGraphicsBindingOpenGLWin32KHR +{ + XrStructureType type; + const void *next; + HDC hDC; + HGLRC hGLRC; }; struct XrGraphicsBindingVulkanKHR @@ -900,6 +990,14 @@ struct XrGraphicsRequirementsOpenGLKHR XrVersion maxApiVersionSupported; }; +struct XrGraphicsRequirementsVulkanKHR +{ + XrStructureType type; + void *next; + XrVersion minApiVersionSupported; + XrVersion maxApiVersionSupported; +}; + struct XrHandJointsLocateInfoEXT { XrStructureType type; @@ -969,34 +1067,38 @@ struct XrQuaternionf float w; }; -struct XrSecondaryViewConfigurationSessionBeginInfoMSFT +struct XrSecondaryViewConfigurationLayerInfoMSFT { XrStructureType type; const void *next; - uint32_t viewConfigurationCount; - const XrViewConfigurationType *enabledViewConfigurationTypes; + XrViewConfigurationType viewConfigurationType; + XrEnvironmentBlendMode environmentBlendMode; + uint32_t layerCount; + const XrCompositionLayerBaseHeader * const*layers; }; -struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT +struct XrSecondaryViewConfigurationStateMSFT { XrStructureType type; - const void *next; + void *next; XrViewConfigurationType viewConfigurationType; + XrBool32 active; }; -struct XrSessionBeginInfo +struct XrSessionActionSetsAttachInfo { XrStructureType type; const void *next; - XrViewConfigurationType primaryViewConfigurationType; + uint32_t countActionSets; + const XrActionSet *actionSets; }; -struct XrSessionCreateInfoOverlayEXTX +struct XrSessionCreateInfo { XrStructureType type; const void *next; - XrOverlaySessionCreateFlagsEXTX createFlags; - uint32_t sessionLayersPlacement; + XrSessionCreateFlags createFlags; + XrSystemId systemId; }; struct XrSwapchainCreateInfo @@ -1034,32 +1136,34 @@ struct XrSwapchainImageOpenGLKHR uint32_t image; }; -struct XrSwapchainImageVulkanKHR +struct XrSwapchainImageWaitInfo { XrStructureType type; - void *next; - VkImage image; + const void *next; + XrDuration timeout; }; -struct XrSystemEyeGazeInteractionPropertiesEXT +struct XrSystemColorSpacePropertiesFB { XrStructureType type; void *next; - XrBool32 supportsEyeGazeInteraction; + XrColorSpaceFB colorSpace; }; -struct XrSystemGraphicsProperties +struct XrSystemGetInfo { - uint32_t maxSwapchainImageHeight; - uint32_t maxSwapchainImageWidth; - uint32_t maxLayerCount; + XrStructureType type; + const void *next; + XrFormFactor formFactor; }; -struct XrSystemHandTrackingPropertiesEXT +struct XrSystemHandTrackingMeshPropertiesMSFT { XrStructureType type; void *next; - XrBool32 supportsHandTracking; + XrBool32 supportsHandTrackingMesh; + uint32_t maxHandMeshIndexCount; + uint32_t maxHandMeshVertexCount; }; struct XrSystemTrackingProperties @@ -1106,14 +1210,6 @@ struct XrViewLocateInfo XrSpace space; }; -struct XrVulkanSwapchainFormatListCreateInfoKHR -{ - XrStructureType type; - const void *next; - uint32_t viewFormatCount; - const VkFormat *viewFormats; -}; - struct XrActionSetCreateInfo { XrStructureType type; @@ -1147,12 +1243,41 @@ struct XrBaseInStructure const struct XrBaseInStructure *next; }; -struct XrCompositionLayerBaseHeader +struct XrColor4f +{ + float r; + float g; + float b; + float a; +}; + +struct XrCompositionLayerCubeKHR { XrStructureType type; const void *next; XrCompositionLayerFlags layerFlags; XrSpace space; + XrEyeVisibility eyeVisibility; + XrSwapchain swapchain; + uint32_t imageArrayIndex; + XrQuaternionf orientation; +}; + +struct XrControllerModelNodePropertiesMSFT +{ + XrStructureType type; + void *next; + char parentNodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; + char nodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; +}; + +struct XrControllerModelPropertiesMSFT +{ + XrStructureType type; + void *next; + uint32_t nodeCapacityInput; + uint32_t nodeCountOutput; + XrControllerModelNodePropertiesMSFT *nodeProperties; }; struct XrDebugUtilsObjectNameInfoEXT @@ -1164,11 +1289,21 @@ struct XrDebugUtilsObjectNameInfoEXT const char *objectName; }; -struct XrEventDataInstanceLossPending +struct XrEventDataEventsLost { XrStructureType type; const void *next; - XrTime lossTime; + uint32_t lostEventCount; +}; + +struct XrEventDataPerfSettingsEXT +{ + XrStructureType type; + const void *next; + XrPerfSettingsDomainEXT domain; + XrPerfSettingsSubDomainEXT subDomain; + XrPerfSettingsNotificationLevelEXT fromLevel; + XrPerfSettingsNotificationLevelEXT toLevel; }; struct XrEventDataVisibilityMaskChangedKHR @@ -1187,22 +1322,13 @@ struct XrEyeGazeSampleTimeEXT XrTime time; }; -struct XrFrameEndInfo -{ - XrStructureType type; - const void *next; - XrTime displayTime; - XrEnvironmentBlendMode environmentBlendMode; - uint32_t layerCount; - const XrCompositionLayerBaseHeader * const*layers; -}; - -struct XrGraphicsBindingD3D12KHR +struct XrFrameState { XrStructureType type; - const void *next; - ID3D12Device *device; - ID3D12CommandQueue *queue; + void *next; + XrTime predictedDisplayTime; + XrDuration predictedDisplayPeriod; + XrBool32 shouldRender; }; struct XrGraphicsRequirementsD3D11KHR @@ -1213,14 +1339,6 @@ struct XrGraphicsRequirementsD3D11KHR D3D_FEATURE_LEVEL minFeatureLevel; }; -struct XrGraphicsRequirementsVulkanKHR -{ - XrStructureType type; - void *next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -}; - struct XrHandJointVelocityEXT { XrSpaceVelocityFlags velocityFlags; @@ -1264,34 +1382,41 @@ struct XrInteractionProfileAnalogThresholdVALVE const XrHapticBaseHeader *offHaptic; }; -struct XrOffset2Di +struct XrPosef { - int32_t x; - int32_t y; + XrQuaternionf orientation; + XrVector3f position; }; -struct XrRect2Di +struct XrReferenceSpaceCreateInfo { - XrOffset2Di offset; - XrExtent2Di extent; + XrStructureType type; + const void *next; + XrReferenceSpaceType referenceSpaceType; + XrPosef poseInReferenceSpace; }; -struct XrSecondaryViewConfigurationLayerInfoMSFT +struct XrSecondaryViewConfigurationFrameStateMSFT +{ + XrStructureType type; + void *next; + uint32_t viewConfigurationCount; + XrSecondaryViewConfigurationStateMSFT *viewConfigurationStates; +}; + +struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT { XrStructureType type; const void *next; XrViewConfigurationType viewConfigurationType; - XrEnvironmentBlendMode environmentBlendMode; - uint32_t layerCount; - const XrCompositionLayerBaseHeader * const*layers; }; -struct XrSessionActionSetsAttachInfo +struct XrSessionCreateInfoOverlayEXTX { XrStructureType type; const void *next; - uint32_t countActionSets; - const XrActionSet *actionSets; + XrOverlaySessionCreateFlagsEXTX createFlags; + uint32_t sessionLayersPlacement; }; struct XrSpaceVelocity @@ -1303,87 +1428,121 @@ struct XrSpaceVelocity XrVector3f angularVelocity; }; -struct XrSwapchainImageAcquireInfo +struct XrSpatialAnchorSpaceCreateInfoMSFT { XrStructureType type; const void *next; + XrSpatialAnchorMSFT anchor; + XrPosef poseInAnchorSpace; }; -struct XrSwapchainImageWaitInfo +struct XrSwapchainImageAcquireInfo { XrStructureType type; const void *next; - XrDuration timeout; }; -struct XrSystemGetInfo +struct XrSwapchainImageVulkanKHR { XrStructureType type; - const void *next; - XrFormFactor formFactor; + void *next; + VkImage image; }; -struct XrSystemProperties +struct XrSystemEyeGazeInteractionPropertiesEXT { XrStructureType type; void *next; - XrSystemId systemId; - uint32_t vendorId; - char systemName[XR_MAX_SYSTEM_NAME_SIZE]; - XrSystemGraphicsProperties graphicsProperties; - XrSystemTrackingProperties trackingProperties; + XrBool32 supportsEyeGazeInteraction; }; -struct XrVector4f +struct XrSystemHandTrackingPropertiesEXT +{ + XrStructureType type; + void *next; + XrBool32 supportsHandTracking; +}; + +struct XrVector2f { float x; float y; - float z; - float w; }; -struct XrViewConfigurationProperties +struct XrView { XrStructureType type; void *next; - XrViewConfigurationType viewConfigurationType; - XrBool32 fovMutable; + XrPosef pose; + XrFovf fov; }; -struct XrViewState +struct XrViewConfigurationViewFovEPIC +{ + XrStructureType type; + const void *next; + XrFovf recommendedFov; + XrFovf maxMutableFov; +}; + +struct XrVisibilityMaskKHR { XrStructureType type; void *next; - XrViewStateFlags viewStateFlags; + uint32_t vertexCapacityInput; + uint32_t vertexCountOutput; + XrVector2f *vertices; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint32_t *indices; }; -struct XrActionStatePose +struct XrVulkanSwapchainFormatListCreateInfoKHR +{ + XrStructureType type; + const void *next; + uint32_t viewFormatCount; + const VkFormat *viewFormats; +}; + +struct XrActionSpaceCreateInfo +{ + XrStructureType type; + const void *next; + XrAction action; + XrPath subactionPath; + XrPosef poseInActionSpace; +}; + +struct XrActionStateVector2f { XrStructureType type; void *next; + XrVector2f currentState; + XrBool32 changedSinceLastSync; + XrTime lastChangeTime; XrBool32 isActive; }; -struct XrApiLayerProperties +struct XrBindingModificationBaseHeaderKHR { XrStructureType type; - void *next; - char layerName[XR_MAX_API_LAYER_NAME_SIZE]; - XrVersion specVersion; - uint32_t layerVersion; - char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; + const void *next; }; -struct XrCompositionLayerCubeKHR +struct XrCompositionLayerColorScaleBiasKHR { XrStructureType type; const void *next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchain swapchain; - uint32_t imageArrayIndex; - XrQuaternionf orientation; + XrColor4f colorScale; + XrColor4f colorBias; +}; + +struct XrControllerModelNodeStateMSFT +{ + XrStructureType type; + void *next; + XrPosef nodePose; }; struct XrDebugUtilsMessengerCallbackDataEXT @@ -1399,12 +1558,11 @@ struct XrDebugUtilsMessengerCallbackDataEXT XrDebugUtilsLabelEXT *sessionLabels; }; -struct XrEventDataMainSessionVisibilityChangedEXTX +struct XrEventDataInteractionProfileChanged { XrStructureType type; const void *next; - XrBool32 visible; - XrOverlayMainSessionFlagsEXTX flags; + XrSession session; }; struct XrExtent2Df @@ -1413,10 +1571,11 @@ struct XrExtent2Df float height; }; -struct XrFrameWaitInfo +struct XrGraphicsBindingD3D11KHR { XrStructureType type; const void *next; + ID3D11Device *device; }; struct XrHandJointVelocitiesEXT @@ -1427,113 +1586,128 @@ struct XrHandJointVelocitiesEXT XrHandJointVelocityEXT *jointVelocities; }; -struct XrHandMeshVertexBufferMSFT +struct XrHandMeshSpaceCreateInfoMSFT { - XrTime vertexUpdateTime; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrHandMeshVertexMSFT *vertices; + XrStructureType type; + const void *next; + XrHandPoseTypeMSFT handPoseType; + XrPosef poseInHandMeshSpace; }; -struct XrHolographicWindowAttachmentMSFT +struct XrHandTrackerCreateInfoEXT { XrStructureType type; const void *next; - IUnknown *holographicSpace; - IUnknown *coreWindow; + XrHandEXT hand; + XrHandJointSetEXT handJointSet; }; -struct XrInteractionProfileSuggestedBinding +struct XrInstanceProperties { XrStructureType type; - const void *next; - XrPath interactionProfile; - uint32_t countSuggestedBindings; - const XrActionSuggestedBinding *suggestedBindings; + void *next; + XrVersion runtimeVersion; + char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; }; -struct XrRect2Df +struct XrOffset2Di { - XrOffset2Df offset; - XrExtent2Df extent; + int32_t x; + int32_t y; }; -struct XrSecondaryViewConfigurationFrameEndInfoMSFT +struct XrRect2Di +{ + XrOffset2Di offset; + XrExtent2Di extent; +}; + +struct XrSecondaryViewConfigurationSessionBeginInfoMSFT { XrStructureType type; const void *next; uint32_t viewConfigurationCount; - const XrSecondaryViewConfigurationLayerInfoMSFT *viewConfigurationLayersInfo; + const XrViewConfigurationType *enabledViewConfigurationTypes; }; -struct XrSecondaryViewConfigurationStateMSFT +struct XrSpaceLocation { XrStructureType type; void *next; - XrViewConfigurationType viewConfigurationType; - XrBool32 active; + XrSpaceLocationFlags locationFlags; + XrPosef pose; }; -struct XrSwapchainImageD3D11KHR +struct XrSpatialGraphNodeSpaceCreateInfoMSFT { XrStructureType type; - void *next; - ID3D11Texture2D *texture; + const void *next; + XrSpatialGraphNodeTypeMSFT nodeType; + uint8_t nodeId[16]; + XrPosef pose; }; -struct XrSwapchainSubImage +struct XrSwapchainImageReleaseInfo { - XrSwapchain swapchain; - XrRect2Di imageRect; - uint32_t imageArrayIndex; + XrStructureType type; + const void *next; }; -struct XrVector2f +struct XrSystemGraphicsProperties +{ + uint32_t maxSwapchainImageHeight; + uint32_t maxSwapchainImageWidth; + uint32_t maxLayerCount; +}; + +struct XrVector4f { float x; float y; + float z; + float w; }; -struct XrViewConfigurationViewFovEPIC +struct XrViewState { XrStructureType type; - const void *next; - XrFovf recommendedFov; - XrFovf maxMutableFov; + void *next; + XrViewStateFlags viewStateFlags; }; -struct XrActionStateVector2f +struct XrActionStatePose { XrStructureType type; void *next; - XrVector2f currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; XrBool32 isActive; }; -struct XrCompositionLayerDepthInfoKHR +struct XrBindingModificationsKHR { XrStructureType type; const void *next; - XrSwapchainSubImage subImage; - float minDepth; - float maxDepth; - float nearZ; - float farZ; + uint32_t bindingModificationCount; + const XrBindingModificationBaseHeaderKHR * const*bindingModifications; }; -struct XrEventDataBuffer +struct XrControllerModelStateMSFT { XrStructureType type; - const void *next; - uint8_t varying[4000]; + void *next; + uint32_t nodeCapacityInput; + uint32_t nodeCountOutput; + XrControllerModelNodeStateMSFT *nodeStates; }; -struct XrFrameBeginInfo +struct XrEventDataReferenceSpaceChangePending { XrStructureType type; const void *next; + XrSession session; + XrReferenceSpaceType referenceSpaceType; + XrTime changeTime; + XrBool32 poseValid; + XrPosef poseInPreviousSpace; }; struct XrHandMeshIndexBufferMSFT @@ -1544,68 +1718,77 @@ struct XrHandMeshIndexBufferMSFT uint32_t *indices; }; -struct XrHandTrackerCreateInfoEXT +struct XrHandMeshVertexBufferMSFT { - XrStructureType type; - const void *next; - XrHandEXT hand; - XrHandJointSetEXT handJointSet; + XrTime vertexUpdateTime; + uint32_t vertexCapacityInput; + uint32_t vertexCountOutput; + XrHandMeshVertexMSFT *vertices; }; -struct XrPosef +struct XrInteractionProfileSuggestedBinding { - XrQuaternionf orientation; - XrVector3f position; + XrStructureType type; + const void *next; + XrPath interactionProfile; + uint32_t countSuggestedBindings; + const XrActionSuggestedBinding *suggestedBindings; }; -struct XrSecondaryViewConfigurationFrameStateMSFT +struct XrSecondaryViewConfigurationFrameEndInfoMSFT { XrStructureType type; - void *next; + const void *next; uint32_t viewConfigurationCount; - XrSecondaryViewConfigurationStateMSFT *viewConfigurationStates; + const XrSecondaryViewConfigurationLayerInfoMSFT *viewConfigurationLayersInfo; }; -struct XrSpaceLocation +struct XrSpatialAnchorCreateInfoMSFT { XrStructureType type; - void *next; - XrSpaceLocationFlags locationFlags; + const void *next; + XrSpace space; XrPosef pose; + XrTime time; }; -struct XrSpatialAnchorSpaceCreateInfoMSFT +struct XrSwapchainSubImage { - XrStructureType type; - const void *next; - XrSpatialAnchorMSFT anchor; - XrPosef poseInAnchorSpace; + XrSwapchain swapchain; + XrRect2Di imageRect; + uint32_t imageArrayIndex; }; -struct XrSwapchainImageReleaseInfo +struct XrViewConfigurationProperties { XrStructureType type; - const void *next; + void *next; + XrViewConfigurationType viewConfigurationType; + XrBool32 fovMutable; }; -struct XrView +struct XrApiLayerProperties { XrStructureType type; void *next; - XrPosef pose; - XrFovf fov; + char layerName[XR_MAX_API_LAYER_NAME_SIZE]; + XrVersion specVersion; + uint32_t layerVersion; + char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; }; -struct XrActionSpaceCreateInfo +struct XrCompositionLayerDepthInfoKHR { XrStructureType type; const void *next; - XrAction action; - XrPath subactionPath; - XrPosef poseInActionSpace; + XrSwapchainSubImage subImage; + float minDepth; + float maxDepth; + float nearZ; + float farZ; }; -struct XrCompositionLayerCylinderKHR +struct XrCompositionLayerEquirectKHR { XrStructureType type; const void *next; @@ -1615,8 +1798,8 @@ struct XrCompositionLayerCylinderKHR XrSwapchainSubImage subImage; XrPosef pose; float radius; - float centralAngle; - float aspectRatio; + XrVector2f scale; + XrVector2f bias; }; struct XrCompositionLayerProjectionView @@ -1628,15 +1811,11 @@ struct XrCompositionLayerProjectionView XrSwapchainSubImage subImage; }; -struct XrEventDataReferenceSpaceChangePending +struct XrEventDataBuffer { XrStructureType type; const void *next; - XrSession session; - XrReferenceSpaceType referenceSpaceType; - XrTime changeTime; - XrBool32 poseValid; - XrPosef poseInPreviousSpace; + uint8_t varying[4000]; }; struct XrHandJointLocationEXT @@ -1657,48 +1836,31 @@ struct XrHandMeshMSFT XrHandMeshVertexBufferMSFT vertexBuffer; }; -struct XrInstanceProperties -{ - XrStructureType type; - void *next; - XrVersion runtimeVersion; - char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; -}; - -struct XrSessionCreateInfo -{ - XrStructureType type; - const void *next; - XrSessionCreateFlags createFlags; - XrSystemId systemId; -}; - -struct XrSpatialGraphNodeSpaceCreateInfoMSFT +struct XrRect2Df { - XrStructureType type; - const void *next; - XrSpatialGraphNodeTypeMSFT nodeType; - uint8_t nodeId[16]; - XrPosef pose; + XrOffset2Df offset; + XrExtent2Df extent; }; -struct XrVisibilityMaskKHR +struct XrSwapchainImageD3D11KHR { XrStructureType type; void *next; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrVector2f *vertices; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t *indices; + ID3D11Texture2D *texture; }; -struct XrBoundSourcesForActionEnumerateInfo +struct XrCompositionLayerCylinderKHR { XrStructureType type; const void *next; - XrAction action; + XrCompositionLayerFlags layerFlags; + XrSpace space; + XrEyeVisibility eyeVisibility; + XrSwapchainSubImage subImage; + XrPosef pose; + float radius; + float centralAngle; + float aspectRatio; }; struct XrCompositionLayerProjection @@ -1711,32 +1873,32 @@ struct XrCompositionLayerProjection const XrCompositionLayerProjectionView *views; }; -struct XrGraphicsBindingOpenGLWin32KHR +struct XrFrameBeginInfo { XrStructureType type; const void *next; - HDC hDC; - HGLRC hGLRC; }; -struct XrHandMeshSpaceCreateInfoMSFT +struct XrHolographicWindowAttachmentMSFT { XrStructureType type; const void *next; - XrHandPoseTypeMSFT handPoseType; - XrPosef poseInHandMeshSpace; + IUnknown *holographicSpace; + IUnknown *coreWindow; }; -struct XrSpatialAnchorCreateInfoMSFT +struct XrSystemProperties { XrStructureType type; - const void *next; - XrSpace space; - XrPosef pose; - XrTime time; + void *next; + XrSystemId systemId; + uint32_t vendorId; + char systemName[XR_MAX_SYSTEM_NAME_SIZE]; + XrSystemGraphicsProperties graphicsProperties; + XrSystemTrackingProperties trackingProperties; }; -struct XrCompositionLayerEquirectKHR +struct XrCompositionLayerEquirect2KHR { XrStructureType type; const void *next; @@ -1746,8 +1908,9 @@ struct XrCompositionLayerEquirectKHR XrSwapchainSubImage subImage; XrPosef pose; float radius; - XrVector2f scale; - XrVector2f bias; + float centralHorizontalAngle; + float upperVerticalAngle; + float lowerVerticalAngle; }; struct XrHandJointLocationsEXT @@ -1759,15 +1922,6 @@ struct XrHandJointLocationsEXT XrHandJointLocationEXT *jointLocations; }; -struct XrSystemHandTrackingMeshPropertiesMSFT -{ - XrStructureType type; - void *next; - XrBool32 supportsHandTrackingMesh; - uint32_t maxHandMeshIndexCount; - uint32_t maxHandMeshVertexCount; -}; - struct XrCompositionLayerQuad { XrStructureType type; @@ -1780,12 +1934,11 @@ struct XrCompositionLayerQuad XrExtent2Df size; }; -struct XrReferenceSpaceCreateInfo +struct XrSessionBeginInfo { XrStructureType type; const void *next; - XrReferenceSpaceType referenceSpaceType; - XrPosef poseInReferenceSpace; + XrViewConfigurationType primaryViewConfigurationType; }; typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain, const XrSwapchainImageAcquireInfo *, uint32_t *); @@ -1819,6 +1972,8 @@ typedef XrResult (XRAPI_PTR *PFN_xrEndFrame)(XrSession, const XrFrameEndInfo *); typedef XrResult (XRAPI_PTR *PFN_xrEndSession)(XrSession); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateApiLayerProperties)(uint32_t, uint32_t *, XrApiLayerProperties *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateBoundSourcesForAction)(XrSession, const XrBoundSourcesForActionEnumerateInfo *, uint32_t, uint32_t *, XrPath *); +typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesFB)(XrSession, uint32_t, uint32_t *, XrColorSpaceFB *); +typedef XrResult (XRAPI_PTR *PFN_xrEnumerateDisplayRefreshRatesFB)(XrSession, uint32_t, uint32_t *, float *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char *, uint32_t, uint32_t *, XrExtensionProperties *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *); @@ -1830,9 +1985,13 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateBoolean)(XrSession, const XrAct typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateFloat)(XrSession, const XrActionStateGetInfo *, XrActionStateFloat *); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStatePose)(XrSession, const XrActionStateGetInfo *, XrActionStatePose *); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateVector2f)(XrSession, const XrActionStateGetInfo *, XrActionStateVector2f *); +typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelKeyMSFT)(XrSession, XrPath, XrControllerModelKeyStateMSFT *); +typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelPropertiesMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelPropertiesMSFT *); +typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelStateMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelStateMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrGetCurrentInteractionProfile)(XrSession, XrPath, XrInteractionProfileState *); typedef XrResult (XRAPI_PTR *PFN_xrGetD3D11GraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsD3D11KHR *); typedef XrResult (XRAPI_PTR *PFN_xrGetD3D12GraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsD3D12KHR *); +typedef XrResult (XRAPI_PTR *PFN_xrGetDisplayRefreshRateFB)(XrSession, float *); typedef XrResult (XRAPI_PTR *PFN_xrGetInputSourceLocalizedName)(XrSession, const XrInputSourceLocalizedNameGetInfo *, uint32_t, uint32_t *, char *); typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance, const char *, PFN_xrVoidFunction *); typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProperties)(XrInstance, XrInstanceProperties *); @@ -1846,6 +2005,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanDeviceExtensionsKHR)(XrInstance, XrS typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDeviceKHR)(XrInstance, XrSystemId, VkInstance, VkPhysicalDevice *); typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsVulkanKHR *); typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanInstanceExtensionsKHR)(XrInstance, XrSystemId, uint32_t, uint32_t *, char *); +typedef XrResult (XRAPI_PTR *PFN_xrLoadControllerModelMSFT)(XrSession, XrControllerModelKeyMSFT, uint32_t, uint32_t *, uint8_t *); typedef XrResult (XRAPI_PTR *PFN_xrLocateHandJointsEXT)(XrHandTrackerEXT, const XrHandJointsLocateInfoEXT *, XrHandJointLocationsEXT *); typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace, XrSpace, XrTime, XrSpaceLocation *); typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *); @@ -1853,8 +2013,10 @@ typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance, XrPath, uint32_t, u typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsLevelEXT); typedef XrResult (XRAPI_PTR *PFN_xrPollEvent)(XrInstance, XrEventDataBuffer *); typedef XrResult (XRAPI_PTR *PFN_xrReleaseSwapchainImage)(XrSwapchain, const XrSwapchainImageReleaseInfo *); +typedef XrResult (XRAPI_PTR *PFN_xrRequestDisplayRefreshRateFB)(XrSession, float); typedef XrResult (XRAPI_PTR *PFN_xrRequestExitSession)(XrSession); typedef XrResult (XRAPI_PTR *PFN_xrResultToString)(XrInstance, XrResult, char[]); +typedef XrResult (XRAPI_PTR *PFN_xrSetColorSpaceFB)(XrSession, const XrColorSpaceFB); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceActiveEXT)(XrSession, XrPath, XrPath, XrBool32); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceLocationEXT)(XrSession, XrPath, XrPath, XrSpace, XrPosef); typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateBoolEXT)(XrSession, XrPath, XrPath, XrBool32); @@ -1902,6 +2064,8 @@ XrResult XRAPI_CALL xrEndFrame(XrSession session, const XrFrameEndInfo *frameEnd XrResult XRAPI_CALL xrEndSession(XrSession session); XrResult XRAPI_CALL xrEnumerateApiLayerProperties(uint32_t propertyCapacityInput, uint32_t *propertyCountOutput, XrApiLayerProperties *properties); XrResult XRAPI_CALL xrEnumerateBoundSourcesForAction(XrSession session, const XrBoundSourcesForActionEnumerateInfo *enumerateInfo, uint32_t sourceCapacityInput, uint32_t *sourceCountOutput, XrPath *sources); +XrResult XRAPI_CALL xrEnumerateColorSpacesFB(XrSession session, uint32_t colorSpaceCapacityInput, uint32_t *colorSpaceCountOutput, XrColorSpaceFB *colorSpaces); +XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB(XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t *displayRefreshRateCountOutput, float *displayRefreshRates); XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t *environmentBlendModeCountOutput, XrEnvironmentBlendMode *environmentBlendModes); XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties(const char *layerName, uint32_t propertyCapacityInput, uint32_t *propertyCountOutput, XrExtensionProperties *properties); XrResult XRAPI_CALL xrEnumerateReferenceSpaces(XrSession session, uint32_t spaceCapacityInput, uint32_t *spaceCountOutput, XrReferenceSpaceType *spaces); @@ -1913,9 +2077,13 @@ XrResult XRAPI_CALL xrGetActionStateBoolean(XrSession session, const XrActionSta XrResult XRAPI_CALL xrGetActionStateFloat(XrSession session, const XrActionStateGetInfo *getInfo, XrActionStateFloat *state); XrResult XRAPI_CALL xrGetActionStatePose(XrSession session, const XrActionStateGetInfo *getInfo, XrActionStatePose *state); XrResult XRAPI_CALL xrGetActionStateVector2f(XrSession session, const XrActionStateGetInfo *getInfo, XrActionStateVector2f *state); +XrResult XRAPI_CALL xrGetControllerModelKeyMSFT(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT *controllerModelKeyState); +XrResult XRAPI_CALL xrGetControllerModelPropertiesMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT *properties); +XrResult XRAPI_CALL xrGetControllerModelStateMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT *state); XrResult XRAPI_CALL xrGetCurrentInteractionProfile(XrSession session, XrPath topLevelUserPath, XrInteractionProfileState *interactionProfile); XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D11KHR *graphicsRequirements); XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D12KHR *graphicsRequirements); +XrResult XRAPI_CALL xrGetDisplayRefreshRateFB(XrSession session, float *displayRefreshRate); XrResult XRAPI_CALL xrGetInputSourceLocalizedName(XrSession session, const XrInputSourceLocalizedNameGetInfo *getInfo, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, char *buffer); XrResult XRAPI_CALL xrGetInstanceProcAddr(XrInstance instance, const char *name, PFN_xrVoidFunction *function); XrResult XRAPI_CALL xrGetInstanceProperties(XrInstance instance, XrInstanceProperties *instanceProperties); @@ -1929,6 +2097,7 @@ XrResult XRAPI_CALL xrGetVulkanDeviceExtensionsKHR(XrInstance instance, XrSystem XrResult XRAPI_CALL xrGetVulkanGraphicsDeviceKHR(XrInstance instance, XrSystemId systemId, VkInstance vkInstance, VkPhysicalDevice *vkPhysicalDevice); XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR *graphicsRequirements); XrResult XRAPI_CALL xrGetVulkanInstanceExtensionsKHR(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, char *buffer); +XrResult XRAPI_CALL xrLoadControllerModelMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, uint8_t *buffer); XrResult XRAPI_CALL xrLocateHandJointsEXT(XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT *locateInfo, XrHandJointLocationsEXT *locations); XrResult XRAPI_CALL xrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation *location); XrResult XRAPI_CALL xrLocateViews(XrSession session, const XrViewLocateInfo *viewLocateInfo, XrViewState *viewState, uint32_t viewCapacityInput, uint32_t *viewCountOutput, XrView *views); @@ -1936,8 +2105,10 @@ XrResult XRAPI_CALL xrPathToString(XrInstance instance, XrPath path, uint32_t bu XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); XrResult XRAPI_CALL xrPollEvent(XrInstance instance, XrEventDataBuffer *eventData); XrResult XRAPI_CALL xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo *releaseInfo); +XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB(XrSession session, float displayRefreshRate); XrResult XRAPI_CALL xrRequestExitSession(XrSession session); XrResult XRAPI_CALL xrResultToString(XrInstance instance, XrResult value, char buffer[]); +XrResult XRAPI_CALL xrSetColorSpaceFB(XrSession session, const XrColorSpaceFB colorspace); XrResult XRAPI_CALL xrSetInputDeviceActiveEXT(XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive); XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrSpace space, XrPosef pose); XrResult XRAPI_CALL xrSetInputDeviceStateBoolEXT(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrBool32 state); diff --git a/wineopenxr/xr.xml b/wineopenxr/xr.xml new file mode 100644 index 00000000..6b4b1bd0 --- /dev/null +++ b/wineopenxr/xr.xml @@ -0,0 +1,3684 @@ +<?xml version="1.0" encoding="UTF-8"?> +<registry> + <comment> +Copyright (c) 2017-2020 The Khronos Group Inc. + +SPDX-License-Identifier: Apache-2.0 OR MIT + +------------------------------------------------------------------------ + +This file, xr.xml, is the OpenXR API Registry. It is a critically important +and normative part of the OpenXR Specification, including a canonical +machine-readable definition of the API, parameter and member validation +language incorporated into the Specification and reference pages, and other +material which is registered by Khronos, such as tags used by extension and +layer authors. The only authoritative version of xr.xml is the one +maintained in the default branch of the Khronos OpenXR GitHub project. + </comment> + + <!-- SECTION: OpenXR vendor IDs for physical devices without PCI vendor IDs --> + <vendorids> + <vendorid name="KHR" id="0x10000" comment="This is the next available Khronos vendor ID"/> + </vendorids> + + <!-- SECTION: OpenXR vendor/author tags for extensions and layers --> + <tags> + <!-- Sorted alphabetically by tag name --> + <tag name="ARM" author="Arm Limited" contact="Andreas Loeve Selvik @selvik, Sam Martin @sammartin"/> + <tag name="COLLABORA" author="Collabora" contact="Ryan Pavlik @rpavlik"/> + <tag name="EPIC" author="Epic" contact="Nick Whiting @whitingn"/> + <tag name="EXT" author="Multivendor" contact="Ryan Pavlik @rpavlik"/> + <tag name="EXTX" author="Multivendor experimental" contact="Brad Grantham @bradgrantham-lunarg"/> + <tag name="FB" author="Facebook" contact="Cass Everitt @casseveritt, Ed Hutchins @eahutchins"/> + <tag name="GOOGLE" author="Google" contact="Kaye Mason @chaleur"/> + <tag name="HTC" author="HTC" contact="Chris Kuo @ggkuo, Kyle Chen @kylechen76"/> + <tag name="HUAWEI" author="Huawei" contact="Yihong Huang @rachelhuang"/> + <tag name="INTEL" author="Intel" contact="Javier Martinez @javier"/> + <tag name="KHR" author="Khronos" contact="Brent Insko @insko"/> + <tag name="LUNARG" author="LunarG" contact="Brad Grantham @bradgrantham-lunarg"/> + <tag name="LIV" author="LIV" contact="Arthur Brainville @Ybalrid, Steffan Donal @liv_ruu"/> + <tag name="MAGICLEAP" author="Magic Leap" contact="Blake Taylor @theblindprogramm3r"/> + <tag name="MND" author="Monado Project" contact="Jakob Bornecrantz @wallbraker, Ryan Pavlik @rpavlik"/> + <tag name="MNDX" author="Monado Project experimental" contact="Jakob Bornecrantz @wallbraker, Ryan Pavlik @rpavlik"/> + <tag name="MSFT" author="Microsoft" contact="Alex Turner @alexturn, Yin Li @yl_msft, Bryce Hutchings @brycehutchings, Lachlan Ford @laford_msft, Minmin Gong @gongminmin "/> + <tag name="NV" author="NVIDIA Corporation" contact="Satish Salian @ssalian, Robert Menzel"/> + <tag name="OCULUS" author="Oculus" contact="Cass Everitt @casseveritt, Ed Hutchins @eahutchins"/> + <tag name="PLUTO" author="Pluto VR" contact="Jared Cheshier @Jared, Sophia Baldonado @sophia"/> + <tag name="QCOM" author="Qualcomm Technologies" contact="Armelle @alaine_qcom, Martin Renschler @martinr"/> + <tag name="STARBREEZE" author="Starbreeze" contact="David Srour @dsrour"/> + <tag name="TOBII" author="Tobii" contact="Denny Rönngren @denron"/> + <tag name="ULTRALEAP" author="Ultraleap" contact="Robert Blenkinsopp @rblenkinsopp"/> + <tag name="VALVE" author="Valve" contact="Joe Ludwig @JoeLudwig"/> + <tag name="VARJO" author="Varjo" contact="Sergiy Dubovik @dubik, Rémi Arnaud @VarjoRemi"/> + </tags> + + <!-- SECTION: OpenXR type definitions --> + <types> + <type name="openxr_platform_defines" category="include">#include "openxr_platform_defines.h"</type> + + <type requires="android/native_window.h" name="ANativeWindow"/> + <type requires="jni.h" name="jobject"/> + <type requires="CL/cl_gl_ext.h" name="CGLContextObj"/> + <type requires="d3dcommon.h" name="D3D_FEATURE_LEVEL"/> + <type requires="D3D11.h" name="ID3D11Device"/> + <type requires="D3D11.h" name="ID3D11Texture2D"/> + <type requires="D3D12.h" name="ID3D12CommandQueue"/> + <type requires="D3D12.h" name="ID3D12Device"/> + <type requires="D3D12.h" name="ID3D12Resource"/> + <type requires="EGL/egl.h" name="EGLDisplay"/> + <type requires="EGL/egl.h" name="EGLConfig"/> + <type requires="EGL/egl.h" name="EGLContext"/> + <type requires="EGL/egl.h" name="PFNEGLGETPROCADDRESSPROC"/> + <type requires="GL/glxext.h" name="GLXFBConfig"/> + <type requires="GL/glxext.h" name="GLXDrawable"/> + <type requires="GL/glxext.h" name="GLXContext"/> + <type requires="GL/wglext.h" name="HGLRC"/> + <type requires="unknwn.h" name="IUnknown"/> + <type requires="wayland-client.h" name="wl_display"/> + <type requires="windows.h" name="HDC"/> + <type requires="windows.h" name="LUID"/> + <type requires="windows.h" name="LARGE_INTEGER"/> + <type requires="X11/Xlib.h" name="Display"/> + <type requires="X11/Xlib.h" name="VisualID"/> + <type requires="X11/Xlib.h" name="Window"/> + <type requires="xcb/glx.h" name="xcb_glx_fbconfig_t"/> + <type requires="xcb/glx.h" name="xcb_glx_drawable_t"/> + <type requires="xcb/glx.h" name="xcb_glx_context_t"/> + <type requires="xcb/xcb.h" name="xcb_connection_t"/> + <type requires="xcb/xcb.h" name="xcb_visualid_t"/> + <type requires="xcb/xcb.h" name="xcb_window_t"/> + <type requires="vulkan/vulkan.h" name="PFN_vkGetInstanceProcAddr"/> + <type requires="vulkan/vulkan.h" name="VkAllocationCallbacks"/> + <type requires="vulkan/vulkan.h" name="VkDevice"/> + <type requires="vulkan/vulkan.h" name="VkDeviceCreateInfo"/> + <type requires="vulkan/vulkan.h" name="VkFormat"/> + <type requires="vulkan/vulkan.h" name="VkImage"/> + <type requires="vulkan/vulkan.h" name="VkInstance"/> + <type requires="vulkan/vulkan.h" name="VkInstanceCreateInfo"/> + <type requires="vulkan/vulkan.h" name="VkPhysicalDevice"/> + <type requires="vulkan/vulkan.h" name="VkResult"/> + <type requires="time.h" name="timespec"/> + + <type category="define">#define <name>XR_MAKE_VERSION</name>(major, minor, patch) \ + ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))</type> + <type category="define">#define <name>XR_VERSION_MAJOR</name>(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL)</type> + <type category="define">#define <name>XR_VERSION_MINOR</name>(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL)</type> + <type category="define">#define <name>XR_VERSION_PATCH</name>(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL)</type> + + <!-- + NOTE: The following group of lines defining the two version constants + must not be re-arranged or re-flowed, since scripts/update_version.py + updates them automatically by processing a line at a time. + --> + <type category="define">// OpenXR current version number. +#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 13)</type> + + <!-- + NOTE: For avoidance of ambiguity, there should only be 1 <name> tag immediately in + each <type>. This is why XR_MAY_ALIAS appears multiple times below, but only once with + the <name> tags wrapping it. It does not particularly matter which of the copies of + names gets marked up, but it seems reasonable that the most meaningful one is marked up. + --> + <type category="define"> +#if !defined(XR_MAY_ALIAS) +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4)) +#define <name>XR_MAY_ALIAS</name> __attribute__((__may_alias__)) +#else +#define XR_MAY_ALIAS +#endif +#endif</type> + + <type category="define"> +#if !defined(XR_DEFINE_HANDLE) +#if (XR_PTR_SIZE == 8) + #define <name>XR_DEFINE_HANDLE</name>(object) typedef struct object##_T* object; +#else + #define XR_DEFINE_HANDLE(object) typedef uint64_t object; +#endif +#endif + </type> + + <type category="define"> +#if !defined(XR_NULL_HANDLE) +#if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED + #define <name>XR_NULL_HANDLE</name> nullptr +#else + #define XR_NULL_HANDLE 0 +#endif +#endif + </type> + + <type category="define"> +#if !defined(XR_DEFINE_ATOM) + #define <name>XR_DEFINE_ATOM</name>(object) typedef uint64_t object; +#endif + </type> + + <type category="define"> +#define <name>XR_NULL_PATH</name> 0</type> + + <type category="define"> +#define <name>XR_NULL_SYSTEM_ID</name> 0</type> + + <type category="define"> +#define <name>XR_SUCCEEDED</name>(result) ((result) >= 0)</type> + + <type category="define"> +#define <name>XR_UNQUALIFIED_SUCCESS</name>(result) ((result) == 0)</type> + + <type category="define"> +#define <name>XR_FAILED</name>(result) ((result) < 0)</type> + + <type category="define"> +#define <name>XR_NO_DURATION</name> 0</type> + + <type category="define"> +#define <name>XR_INFINITE_DURATION</name> 0x7fffffffffffffffLL</type> + + <type category="define"> +#define <name>XR_MIN_HAPTIC_DURATION</name> -1</type> + + <type category="define"> +#define <name>XR_FREQUENCY_UNSPECIFIED</name> 0</type> + + <type category="define"> +#define <name>XR_MAX_EVENT_DATA_SIZE</name> sizeof(XrEventDataBuffer)</type> + + <!-- XR_EXT_hand_tracking --> + <type category="define"> +#define <name>XR_HAND_JOINT_COUNT_EXT</name> 26</type> + + <!-- XR_MSFT_controller_model --> + <type category="define"> +#define <name>XR_NULL_CONTROLLER_MODEL_KEY_MSFT</name> 0</type> + + <!-- Value types --> + <type category="basetype">typedef <type>uint32_t</type> <name>XrBool32</name>;</type> + <type category="basetype">typedef <type>uint64_t</type> <name>XrFlags64</name>;</type> + <type category="basetype">typedef <type>int64_t</type> <name>XrTime</name>;</type> + <type category="basetype">typedef <type>int64_t</type> <name>XrDuration</name>;</type> + <type category="basetype">typedef <type>uint64_t</type> <name>XrVersion</name>;</type> + + <!-- Atoms, allocated by the runtime (if implementation requires) and never freed --> + <type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrPath</name>)</type> + <type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrSystemId</name>)</type> + <!-- XR_MSFT_controller_model --> + <type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrControllerModelKeyMSFT</name>)</type> + + <!-- Basic C types, pulled in via openxr_platform_defines.h --> + <type requires="openxr_platform_defines" name="void"/> + <type requires="openxr_platform_defines" name="char"/> + <type requires="openxr_platform_defines" name="float"/> + <type requires="openxr_platform_defines" name="int8_t"/> + <type requires="openxr_platform_defines" name="uint8_t"/> + <type requires="openxr_platform_defines" name="int32_t"/> + <type requires="openxr_platform_defines" name="uint32_t"/> + <type requires="openxr_platform_defines" name="int64_t"/> + <type requires="openxr_platform_defines" name="uint64_t"/> + <type requires="openxr_platform_defines" name="size_t"/> + <type requires="openxr_platform_defines" name="uintptr_t"/> + + <!-- Bitmask types --> + <type bitvalues="XrInstanceCreateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrInstanceCreateFlags</name>;</type> + <type bitvalues="XrSessionCreateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSessionCreateFlags</name>;</type> + <type bitvalues="XrSwapchainCreateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainCreateFlags</name>;</type> + <type bitvalues="XrSwapchainUsageFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainUsageFlags</name>;</type> + <type bitvalues="XrViewStateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrViewStateFlags</name>;</type> + <type bitvalues="XrCompositionLayerFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerFlags</name>;</type> + <type bitvalues="XrSpaceLocationFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSpaceLocationFlags</name>;</type> + <type bitvalues="XrSpaceVelocityFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSpaceVelocityFlags</name>;</type> + <type bitvalues="XrInputSourceLocalizedNameFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrInputSourceLocalizedNameFlags</name>;</type> + + <!-- Bitmask types for XR_KHR_vulkan_enable2 --> + <type bitvalues="XrVulkanInstanceCreateFlagBitsKHR" category="bitmask">typedef <type>XrFlags64</type> <name>XrVulkanInstanceCreateFlagsKHR</name>;</type> + <type bitvalues="XrVulkanDeviceCreateFlagBitsKHR" category="bitmask">typedef <type>XrFlags64</type> <name>XrVulkanDeviceCreateFlagsKHR</name>;</type> + + <!-- Bitmask types for XR_EXT_debug_utils --> + <type bitvalues="XrDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>XrFlags64</type> <name>XrDebugUtilsMessageSeverityFlagsEXT</name>;</type> + <type bitvalues="XrDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>XrFlags64</type> <name>XrDebugUtilsMessageTypeFlagsEXT</name>;</type> + + <!-- Bitmask types for XR_EXTX_overlay --> + <type bitvalues="XrOverlayMainSessionFlagBitsEXTX" category="bitmask">typedef <type>XrFlags64</type> <name>XrOverlayMainSessionFlagsEXTX</name>;</type> + <type bitvalues="XrOverlaySessionCreateFlagBitsEXTX" category="bitmask">typedef <type>XrFlags64</type> <name>XrOverlaySessionCreateFlagsEXTX</name>;</type> + + <!-- Handles referring to internally-maintained objects. --> + <!-- These types which can be 64-bit integers or opaque pointers, selected at compile time based on pointer size --> + <type category="handle"><type>XR_DEFINE_HANDLE</type>(<name>XrInstance</name>)</type> + <type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrSession</name>)</type> + <type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrActionSet</name>)</type> + <type category="handle" parent="XrActionSet"><type>XR_DEFINE_HANDLE</type>(<name>XrAction</name>)</type> + <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSwapchain</name>)</type> + <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpace</name>)</type> + <type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrDebugUtilsMessengerEXT</name>)</type> + <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialAnchorMSFT</name>)</type> + <!-- XR_EXT_hand_tracking --> + <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrHandTrackerEXT</name>)</type> + + <!-- enums and flag bits generated from corresponding <enums> tags below --> + <type name="XrStructureType" category="enum"/> + <type name="XrResult" category="enum"/> + <type name="XrObjectType" category="enum"/> + <type name="XrInstanceCreateFlagBits" category="enum"/> + <type name="XrSessionCreateFlagBits" category="enum"/> + <type name="XrSwapchainCreateFlagBits" category="enum"/> + <type name="XrSwapchainUsageFlagBits" category="enum"/> + <type name="XrViewStateFlagBits" category="enum"/> + <type name="XrCompositionLayerFlagBits" category="enum"/> + <type name="XrSpaceLocationFlagBits" category="enum"/> + <type name="XrSpaceVelocityFlagBits" category="enum"/> + <type name="XrInputSourceLocalizedNameFlagBits" category="enum"/> + <type name="XrAndroidThreadTypeKHR" category="enum"/> + <type name="XrEyeVisibility" category="enum"/> + <type name="XrActionType" category="enum"/> + <type name="XrReferenceSpaceType" category="enum"/> + <type name="XrFormFactor" category="enum"/> + <type name="XrViewConfigurationType" category="enum"/> + <type name="XrEnvironmentBlendMode" category="enum"/> + <type name="XrSessionState" category="enum"/> + <type name="XrPerfSettingsDomainEXT" category="enum"/> + <type name="XrPerfSettingsSubDomainEXT" category="enum"/> + <type name="XrPerfSettingsLevelEXT" category="enum"/> + <type name="XrPerfSettingsNotificationLevelEXT" category="enum"/> + + <!-- enums and flag bits for XR_KHR_vulkan_enable2 --> + <type name="XrVulkanInstanceCreateFlagBitsKHR" category="enum"/> + <type name="XrVulkanDeviceCreateFlagBitsKHR" category="enum"/> + + <!-- enums and flag bits for XR_EXT_debug_utils --> + <type name="XrDebugUtilsMessageSeverityFlagBitsEXT" category="enum"/> + <type name="XrDebugUtilsMessageTypeFlagBitsEXT" category="enum"/> + + <!-- enums and flag bits for XR_EXTX_overlay --> + <type name="XrOverlayMainSessionFlagBitsEXTX" category="enum"/> + <type name="XrOverlaySessionCreateFlagBitsEXTX" category="enum"/> + + <!-- enums for XR_KHR_visibility_mask --> + <type name="XrVisibilityMaskTypeKHR" category="enum"/> + + <!-- enums for XR_MSFT_spatial_graph_bridge --> + <type name="XrSpatialGraphNodeTypeMSFT" category="enum"/> + + <!-- Struct types --> + <type category="struct" name="XrVector2f"> + <member><type>float</type> <name>x</name></member> + <member><type>float</type> <name>y</name></member> + </type> + <type category="struct" name="XrVector3f"> + <member><type>float</type> <name>x</name></member> + <member><type>float</type> <name>y</name></member> + <member><type>float</type> <name>z</name></member> + </type> + <type category="struct" name="XrVector4f"> + <member><type>float</type> <name>x</name></member> + <member><type>float</type> <name>y</name></member> + <member><type>float</type> <name>z</name></member> + <member><type>float</type> <name>w</name></member> + </type> + <type category="struct" name="XrColor4f"> + <member><type>float</type> <name>r</name></member> + <member><type>float</type> <name>g</name></member> + <member><type>float</type> <name>b</name></member> + <member><type>float</type> <name>a</name></member> + </type> + <type category="struct" name="XrQuaternionf"> + <member><type>float</type> <name>x</name></member> + <member><type>float</type> <name>y</name></member> + <member><type>float</type> <name>z</name></member> + <member><type>float</type> <name>w</name></member> + </type> + <type category="struct" name="XrPosef"> + <member><type>XrQuaternionf</type> <name>orientation</name></member> + <member><type>XrVector3f</type> <name>position</name></member> + </type> + <type category="struct" name="XrOffset2Df"> + <member><type>float</type> <name>x</name></member> + <member><type>float</type> <name>y</name></member> + </type> + <type category="struct" name="XrExtent2Df"> + <member><type>float</type> <name>width</name></member> + <member><type>float</type> <name>height</name></member> + </type> + <type category="struct" name="XrRect2Df"> + <member><type>XrOffset2Df</type> <name>offset</name></member> + <member><type>XrExtent2Df</type> <name>extent</name></member> + </type> + <type category="struct" name="XrOffset2Di"> + <member><type>int32_t</type> <name>x</name></member> + <member><type>int32_t</type> <name>y</name></member> + </type> + <type category="struct" name="XrExtent2Di"> + <member><type>int32_t</type> <name>width</name></member> + <member><type>int32_t</type> <name>height</name></member> + </type> + <type category="struct" name="XrRect2Di"> + <member><type>XrOffset2Di</type> <name>offset</name></member> + <member><type>XrExtent2Di</type> <name>extent</name></member> + </type> + + <comment> + XrBaseInStructure and XrBaseOutStructure use "struct" in their member definitions + because they are recursive structures and this is easier than modifying the tooling + to output forward declarations. + </comment> + <type category="struct" name="XrBaseInStructure" mayalias="true"> + <member><type>XrStructureType</type> <name>type</name></member> + <member>const struct <type>XrBaseInStructure</type>* <name>next</name></member> + </type> + <type category="struct" name="XrBaseOutStructure" mayalias="true"> + <member><type>XrStructureType</type> <name>type</name></member> + <member>struct <type>XrBaseOutStructure</type>* <name>next</name></member> + </type> + <type category="struct" name="XrApiLayerProperties" returnedonly="true"> + <member values="XR_TYPE_API_LAYER_PROPERTIES"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>char</type> <name>layerName</name>[<enum>XR_MAX_API_LAYER_NAME_SIZE</enum>]</member> + <member><type>XrVersion</type> <name>specVersion</name></member> + <member><type>uint32_t</type> <name>layerVersion</name></member> + <member><type>char</type> <name>description</name>[<enum>XR_MAX_API_LAYER_DESCRIPTION_SIZE</enum>]</member> + </type> + <type category="struct" name="XrExtensionProperties" returnedonly="true"> + <member values="XR_TYPE_EXTENSION_PROPERTIES"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>char</type> <name>extensionName</name>[<enum>XR_MAX_EXTENSION_NAME_SIZE</enum>]</member> + <member><type>uint32_t</type> <name>extensionVersion</name></member> + </type> + <type category="struct" name="XrApplicationInfo"> + <member><type>char</type> <name>applicationName</name>[<enum>XR_MAX_APPLICATION_NAME_SIZE</enum>]</member> + <member><type>uint32_t</type> <name>applicationVersion</name></member> + <member><type>char</type> <name>engineName</name>[<enum>XR_MAX_ENGINE_NAME_SIZE</enum>]</member> + <member><type>uint32_t</type> <name>engineVersion</name></member> + <member><type>XrVersion</type> <name>apiVersion</name></member> + </type> + <type category="struct" name="XrInstanceCreateInfo"> + <member values="XR_TYPE_INSTANCE_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrInstanceCreateFlags</type> <name>createFlags</name></member> + <member><type>XrApplicationInfo</type> <name>applicationInfo</name></member> + <member optional="true"><type>uint32_t</type> <name>enabledApiLayerCount</name></member> + <member len="enabledApiLayerCount,null-terminated">const <type>char</type>* const* <name>enabledApiLayerNames</name></member> + <member optional="true"><type>uint32_t</type> <name>enabledExtensionCount</name></member> + <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const* <name>enabledExtensionNames</name></member> + </type> + <type category="struct" name="XrInstanceProperties" returnedonly="true"> + <member values="XR_TYPE_INSTANCE_PROPERTIES"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrVersion</type> <name>runtimeVersion</name></member> + <member><type>char</type> <name>runtimeName</name>[<enum>XR_MAX_RUNTIME_NAME_SIZE</enum>]</member> + </type> + <type category="struct" name="XrSystemGetInfo"> + <member values="XR_TYPE_SYSTEM_GET_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrFormFactor</type> <name>formFactor</name></member> + </type> + <type category="struct" name="XrSystemProperties" returnedonly="true"> + <member values="XR_TYPE_SYSTEM_PROPERTIES"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrSystemId</type> <name>systemId</name></member> + <member><type>uint32_t</type> <name>vendorId</name></member> + <member><type>char</type> <name>systemName</name>[<enum>XR_MAX_SYSTEM_NAME_SIZE</enum>]</member> + <member><type>XrSystemGraphicsProperties</type> <name>graphicsProperties</name></member> + <member><type>XrSystemTrackingProperties</type> <name>trackingProperties</name></member> + </type> + <type category="struct" name="XrSystemGraphicsProperties"> + <member><type>uint32_t</type> <name>maxSwapchainImageHeight</name></member> + <member><type>uint32_t</type> <name>maxSwapchainImageWidth</name></member> + <member><type>uint32_t</type> <name>maxLayerCount</name></member> + </type> + <type category="struct" name="XrSystemTrackingProperties"> + <member><type>XrBool32</type> <name>orientationTracking</name></member> + <member><type>XrBool32</type> <name>positionTracking</name></member> + </type> + <type category="struct" name="XrGraphicsBindingOpenGLWin32KHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_WIN32"> + <member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>HDC</type> <name>hDC</name></member> + <member><type>HGLRC</type> <name>hGLRC</name></member> + </type> + <type category="struct" name="XrGraphicsBindingOpenGLXlibKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_XLIB"> + <member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>Display</type>* <name>xDisplay</name></member> + <member><type>uint32_t</type> <name>visualid</name></member> + <member><type>GLXFBConfig</type> <name>glxFBConfig</name></member> + <member><type>GLXDrawable</type> <name>glxDrawable</name></member> + <member><type>GLXContext</type> <name>glxContext</name></member> + </type> + <type category="struct" name="XrGraphicsBindingOpenGLXcbKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_XCB"> + <member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>xcb_connection_t</type>* <name>connection</name></member> + <member><type>uint32_t</type> <name>screenNumber</name></member> + <member><type>xcb_glx_fbconfig_t</type> <name>fbconfigid</name></member> + <member><type>xcb_visualid_t</type> <name>visualid</name></member> + <member><type>xcb_glx_drawable_t</type> <name>glxDrawable</name></member> + <member><type>xcb_glx_context_t</type> <name>glxContext</name></member> + </type> + <type category="struct" name="XrGraphicsBindingOpenGLWaylandKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_WAYLAND"> + <member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member>struct <type>wl_display</type>* <name>display</name></member> + </type> + <type category="struct" name="XrGraphicsBindingD3D11KHR" structextends="XrSessionCreateInfo"> + <member values="XR_TYPE_GRAPHICS_BINDING_D3D11_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>ID3D11Device</type>* <name>device</name></member> + </type> + <type category="struct" name="XrGraphicsBindingD3D12KHR" structextends="XrSessionCreateInfo"> + <member values="XR_TYPE_GRAPHICS_BINDING_D3D12_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>ID3D12Device</type>* <name>device</name></member> + <member><type>ID3D12CommandQueue</type>* <name>queue</name></member> + </type> + <type category="struct" name="XrGraphicsBindingOpenGLESAndroidKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_ANDROID"> + <member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>EGLDisplay</type> <name>display</name></member> + <member><type>EGLConfig</type> <name>config</name></member> + <member><type>EGLContext</type> <name>context</name></member> + </type> + <type category="struct" name="XrGraphicsBindingVulkanKHR" structextends="XrSessionCreateInfo"> + <member values="XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>VkInstance</type> <name>instance</name></member> + <member><type>VkPhysicalDevice</type> <name>physicalDevice</name></member> + <member><type>VkDevice</type> <name>device</name></member> + <member><type>uint32_t</type> <name>queueFamilyIndex</name></member> + <member><type>uint32_t</type> <name>queueIndex</name></member> + </type> + <type category="struct" name="XrSessionCreateInfo"> + <member values="XR_TYPE_SESSION_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrSessionCreateFlags</type> <name>createFlags</name></member> + <member><type>XrSystemId</type> <name>systemId</name></member> + </type> + <type category="struct" name="XrSessionBeginInfo"> + <member values="XR_TYPE_SESSION_BEGIN_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrViewConfigurationType</type> <name>primaryViewConfigurationType</name></member> + </type> + <type category="struct" name="XrSwapchainCreateInfo"> + <member values="XR_TYPE_SWAPCHAIN_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrSwapchainCreateFlags</type> <name>createFlags</name></member> + <member optional="true"><type>XrSwapchainUsageFlags</type> <name>usageFlags</name></member> + <member><type>int64_t</type> <name>format</name></member> + <member><type>uint32_t</type> <name>sampleCount</name></member> + <member><type>uint32_t</type> <name>width</name></member> + <member><type>uint32_t</type> <name>height</name></member> + <member><type>uint32_t</type> <name>faceCount</name></member> + <member><type>uint32_t</type> <name>arraySize</name></member> + <member><type>uint32_t</type> <name>mipCount</name></member> + </type> + <type category="struct" name="XrSwapchainImageBaseHeader"> + <member><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + </type> + <type category="struct" name="XrSwapchainImageOpenGLKHR" parentstruct="XrSwapchainImageBaseHeader"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>image</name></member> + </type> + <type category="struct" name="XrSwapchainImageOpenGLESKHR" parentstruct="XrSwapchainImageBaseHeader"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>image</name></member> + </type> + <type category="struct" name="XrSwapchainImageVulkanKHR" parentstruct="XrSwapchainImageBaseHeader"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>VkImage</type> <name>image</name></member> + </type> + <type category="struct" name="XrSwapchainImageD3D11KHR" parentstruct="XrSwapchainImageBaseHeader"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR"> <type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>ID3D11Texture2D</type>* <name>texture</name></member> + </type> + <type category="struct" name="XrSwapchainImageD3D12KHR" parentstruct="XrSwapchainImageBaseHeader"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR"> <type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>ID3D12Resource</type>* <name>texture</name></member> + </type> + <type category="struct" name="XrSwapchainImageAcquireInfo"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure --> + </type> + <type category="struct" name="XrSwapchainImageWaitInfo"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure --> + <member><type>XrDuration</type> <name>timeout</name></member> + </type> + <type category="struct" name="XrSwapchainImageReleaseInfo"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure --> + </type> + <type category="struct" name="XrReferenceSpaceCreateInfo"> + <member values="XR_TYPE_REFERENCE_SPACE_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrReferenceSpaceType</type> <name>referenceSpaceType</name></member> + <member><type>XrPosef</type> <name>poseInReferenceSpace</name></member> + </type> + <type category="struct" name="XrActionSpaceCreateInfo"> + <member values="XR_TYPE_ACTION_SPACE_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrAction</type> <name>action</name></member> + <member optional="true"><type>XrPath</type> <name>subactionPath</name></member> + <member><type>XrPosef</type> <name>poseInActionSpace</name></member> + </type> + <type category="struct" name="XrSpaceLocation"> + <member values="XR_TYPE_SPACE_LOCATION"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + </type> + <type category="struct" name="XrSpaceVelocity" structextends="XrSpaceLocation"> + <member values="XR_TYPE_SPACE_VELOCITY"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>XrSpaceVelocityFlags</type> <name>velocityFlags</name></member> + <member><type>XrVector3f</type> <name>linearVelocity</name></member> + <member><type>XrVector3f</type> <name>angularVelocity</name></member> + </type> + <type category="struct" name="XrFovf"> + <member><type>float</type> <name>angleLeft</name></member> + <member><type>float</type> <name>angleRight</name></member> + <member><type>float</type> <name>angleUp</name></member> + <member><type>float</type> <name>angleDown</name></member> + </type> + <type category="struct" name="XrView"> + <member values="XR_TYPE_VIEW"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>XrFovf</type> <name>fov</name></member> + </type> + <type category="struct" name="XrViewLocateInfo"> + <member values="XR_TYPE_VIEW_LOCATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member> + <member><type>XrTime</type> <name>displayTime</name></member> + <member><type>XrSpace</type> <name>space</name></member> + </type> + <type category="struct" name="XrViewState"> + <member values="XR_TYPE_VIEW_STATE"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>XrViewStateFlags</type> <name>viewStateFlags</name></member> + </type> + <type category="struct" name="XrViewConfigurationView"> + <member values="XR_TYPE_VIEW_CONFIGURATION_VIEW"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>recommendedImageRectWidth</name></member> + <member><type>uint32_t</type> <name>maxImageRectWidth</name></member> + <member><type>uint32_t</type> <name>recommendedImageRectHeight</name></member> + <member><type>uint32_t</type> <name>maxImageRectHeight</name></member> + <member><type>uint32_t</type> <name>recommendedSwapchainSampleCount</name></member> + <member><type>uint32_t</type> <name>maxSwapchainSampleCount</name></member> + </type> + <type category="struct" name="XrSwapchainSubImage"> + <member><type>XrSwapchain</type> <name>swapchain</name></member> + <member><type>XrRect2Di</type> <name>imageRect</name></member> + <member><type>uint32_t</type> <name>imageArrayIndex</name></member> + </type> + <type category="struct" name="XrCompositionLayerBaseHeader"> + <member><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + </type> + <type category="struct" name="XrCompositionLayerProjectionView"> + <member values="XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>XrFovf</type> <name>fov</name></member> + <member><type>XrSwapchainSubImage</type> <name>subImage</name></member> + </type> + <type category="struct" name="XrCompositionLayerProjection" parentstruct="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_PROJECTION"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>uint32_t</type> <name>viewCount</name></member> + <member len="viewCount">const <type>XrCompositionLayerProjectionView</type>* <name>views</name></member> + </type> + <type category="struct" name="XrCompositionLayerQuad" parentstruct="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_QUAD"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member> + <member><type>XrSwapchainSubImage</type> <name>subImage</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>XrExtent2Df</type> <name>size</name></member> + </type> + <type category="struct" name="XrCompositionLayerCylinderKHR" parentstruct="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member> + <member><type>XrSwapchainSubImage</type> <name>subImage</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>float</type> <name>radius</name></member> + <member><type>float</type> <name>centralAngle</name></member> + <member><type>float</type> <name>aspectRatio</name></member> + </type> + <type category="struct" name="XrCompositionLayerCubeKHR" parentstruct="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_CUBE_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member> + <member><type>XrSwapchain</type> <name>swapchain</name></member> + <member><type>uint32_t</type> <name>imageArrayIndex</name></member> + <member><type>XrQuaternionf</type> <name>orientation</name></member> + </type> + <type category="struct" name="XrCompositionLayerEquirectKHR" parentstruct="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member> + <member><type>XrSwapchainSubImage</type> <name>subImage</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>float</type> <name>radius</name></member> + <member><type>XrVector2f</type> <name>scale</name></member> + <member><type>XrVector2f</type> <name>bias</name></member> + </type> + <type category="struct" name="XrCompositionLayerDepthInfoKHR" structextends="XrCompositionLayerProjectionView"> + <member values="XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSwapchainSubImage</type> <name>subImage</name></member> + <member><type>float</type> <name>minDepth</name></member> + <member><type>float</type> <name>maxDepth</name></member> + <member><type>float</type> <name>nearZ</name></member> + <member><type>float</type> <name>farZ</name></member> + </type> + <type category="struct" name="XrFrameBeginInfo"> + <member values="XR_TYPE_FRAME_BEGIN_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <!-- This is currently empty, awaiting future extensions. --> + </type> + <type category="struct" name="XrFrameEndInfo"> + <member values="XR_TYPE_FRAME_END_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrTime</type> <name>displayTime</name></member> + <member><type>XrEnvironmentBlendMode</type> <name>environmentBlendMode</name></member> + <member optional="true"><type>uint32_t</type> <name>layerCount</name></member> + <member optional="true" len="layerCount">const <type>XrCompositionLayerBaseHeader</type>* const* <name>layers</name></member> + </type> + <type category="struct" name="XrFrameWaitInfo"> + <member values="XR_TYPE_FRAME_WAIT_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + </type> + <type category="struct" name="XrFrameState"> + <member values="XR_TYPE_FRAME_STATE"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrTime</type> <name>predictedDisplayTime</name></member> + <member><type>XrDuration</type> <name>predictedDisplayPeriod</name></member> + <member><type>XrBool32</type> <name>shouldRender</name></member> + </type> + <type category="struct" name="XrHapticBaseHeader"> + <member><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + </type> + <type category="struct" name="XrHapticVibration" parentstruct="XrHapticBaseHeader"> + <member values="XR_TYPE_HAPTIC_VIBRATION"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrDuration</type> <name>duration</name></member> + <member optional="true"><type>float</type> <name>frequency</name></member> + <member><type>float</type> <name>amplitude</name></member> + </type> + <type category="struct" name="XrEventDataBaseHeader"> <!-- top-level, parentstruct="XrBaseOutStructure" causes validation failures --> + <member><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + </type> + <type category="struct" name="XrEventDataBuffer"> <!-- top-level, parentstruct="XrBaseInStructure" causes validation failures --> + <member values="XR_TYPE_EVENT_DATA_BUFFER"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>uint8_t</type> <name>varying</name>[4000]</member> + </type> + <type category="struct" name="XrEventDataEventsLost" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_EVENTS_LOST"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>lostEventCount</name></member> + </type> + <type category="struct" name="XrEventDataInstanceLossPending" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrTime</type> <name>lossTime</name></member> + </type> + <type category="struct" name="XrEventDataSessionStateChanged" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED"> <type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSession</type> <name>session</name></member> + <member><type>XrSessionState</type> <name>state</name></member> + <member><type>XrTime</type> <name>time</name></member> + </type> + <type category="struct" name="XrEventDataReferenceSpaceChangePending" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSession</type> <name>session</name></member> + <member><type>XrReferenceSpaceType</type> <name>referenceSpaceType</name></member> + <member><type>XrTime</type> <name>changeTime</name></member> + <member><type>XrBool32</type> <name>poseValid</name></member> + <member><type>XrPosef</type> <name>poseInPreviousSpace</name></member> + </type> + <type category="struct" name="XrEventDataPerfSettingsEXT" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrPerfSettingsDomainEXT</type> <name>domain</name></member> + <member><type>XrPerfSettingsSubDomainEXT</type> <name>subDomain</name></member> + <member><type>XrPerfSettingsNotificationLevelEXT</type> <name>fromLevel</name></member> + <member><type>XrPerfSettingsNotificationLevelEXT</type> <name>toLevel</name></member> + </type> + <type category="struct" name="XrEventDataVisibilityMaskChangedKHR" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSession</type> <name>session</name></member> + <member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member> + <member><type>uint32_t</type> <name>viewIndex</name></member> + </type> + <type category="struct" name="XrViewConfigurationProperties"> + <member values="XR_TYPE_VIEW_CONFIGURATION_PROPERTIES"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member> + <member><type>XrBool32</type> <name>fovMutable</name></member> + </type> + <type category="struct" name="XrActionStateBoolean"> + <member values="XR_TYPE_ACTION_STATE_BOOLEAN"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>currentState</name></member> + <member><type>XrBool32</type> <name>changedSinceLastSync</name></member> + <member><type>XrTime</type> <name>lastChangeTime</name></member> + <member><type>XrBool32</type> <name>isActive</name></member> + </type> + <type category="struct" name="XrActionStateFloat"> + <member values="XR_TYPE_ACTION_STATE_FLOAT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>float</type> <name>currentState</name></member> + <member><type>XrBool32</type> <name>changedSinceLastSync</name></member> + <member><type>XrTime</type> <name>lastChangeTime</name></member> + <member><type>XrBool32</type> <name>isActive</name></member> + </type> + + <type category="struct" name="XrActionStateVector2f"> + <member values="XR_TYPE_ACTION_STATE_VECTOR2F"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrVector2f</type> <name>currentState</name></member> + <member><type>XrBool32</type> <name>changedSinceLastSync</name></member> + <member><type>XrTime</type> <name>lastChangeTime</name></member> + <member><type>XrBool32</type> <name>isActive</name></member> + </type> + + <type category="struct" name="XrActionStatePose"> + <member values="XR_TYPE_ACTION_STATE_POSE"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>isActive</name></member> + </type> + + <type category="struct" name="XrActionStateGetInfo"> + <member values="XR_TYPE_ACTION_STATE_GET_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrAction</type> <name>action</name></member> + <member optional="true"><type>XrPath</type> <name>subactionPath</name></member> + </type> + + <type category="struct" name="XrHapticActionInfo"> + <member values="XR_TYPE_HAPTIC_ACTION_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrAction</type> <name>action</name></member> + <member optional="true"><type>XrPath</type> <name>subactionPath</name></member> + </type> + + <type category="struct" name="XrActionSetCreateInfo"> + <member values="XR_TYPE_ACTION_SET_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>char</type> <name>actionSetName</name>[<enum>XR_MAX_ACTION_SET_NAME_SIZE</enum>]</member> + <member><type>char</type> <name>localizedActionSetName</name>[<enum>XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE</enum>]</member> + <member><type>uint32_t</type> <name>priority</name></member> + </type> + + <type category="struct" name="XrActionSuggestedBinding"> + <member><type>XrAction</type> <name>action</name></member> + <member><type>XrPath</type> <name>binding</name></member> + </type> + + <type category="struct" name="XrInteractionProfileSuggestedBinding"> + <member values="XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrPath</type> <name>interactionProfile</name></member> + <member><type>uint32_t</type> <name>countSuggestedBindings</name></member> + <member len="countSuggestedBindings">const <type>XrActionSuggestedBinding</type>* <name>suggestedBindings</name></member> + </type> + + <type category="struct" name="XrActiveActionSet"> + <member><type>XrActionSet</type> <name>actionSet</name></member> + <member><type>XrPath</type> <name>subactionPath</name></member> + </type> + + <type category="struct" name="XrSessionActionSetsAttachInfo"> + <member values="XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>countActionSets</name></member> + <member len="countActionSets">const <type>XrActionSet</type>* <name>actionSets</name></member> + </type> + + <type category="struct" name="XrActionsSyncInfo"> + <member values="XR_TYPE_ACTIONS_SYNC_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>uint32_t</type> <name>countActiveActionSets</name></member> + <member optional="true" len="countActiveActionSets">const <type>XrActiveActionSet</type>* <name>activeActionSets</name></member> + </type> + + <type category="struct" name="XrBoundSourcesForActionEnumerateInfo"> + <member values="XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrAction</type> <name>action</name></member> + </type> + + <type category="struct" name="XrInputSourceLocalizedNameGetInfo"> + <member values="XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrPath</type> <name>sourcePath</name></member> + <member><type>XrInputSourceLocalizedNameFlags</type> <name>whichComponents</name></member> + </type> + + <type category="struct" name="XrEventDataInteractionProfileChanged" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSession</type> <name>session</name></member> + </type> + + <type category="struct" name="XrInteractionProfileState"> + <member values="XR_TYPE_INTERACTION_PROFILE_STATE"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrPath</type> <name>interactionProfile</name></member> + </type> + + <type category="struct" name="XrActionCreateInfo"> + <member values="XR_TYPE_ACTION_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>char</type> <name>actionName</name>[<enum>XR_MAX_ACTION_NAME_SIZE</enum>]</member> + <member><type>XrActionType</type> <name>actionType</name></member> + <member optional="true"><type>uint32_t</type> <name>countSubactionPaths</name></member> + <member len="countSubactionPaths" optional="true">const <type>XrPath</type>* <name>subactionPaths</name></member> + <member><type>char</type> <name>localizedActionName</name>[<enum>XR_MAX_LOCALIZED_ACTION_NAME_SIZE</enum>]</member> + </type> + <type category="struct" name="XrInstanceCreateInfoAndroidKHR" structextends="XrInstanceCreateInfo"> + <member values="XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>void</type>* <name>applicationVM</name></member> + <member><type>void</type>* <name>applicationActivity</name></member> + </type> + <type category="struct" name="XrVulkanSwapchainFormatListCreateInfoKHR"> + <member values="XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>uint32_t</type> <name>viewFormatCount</name></member> + <member len="viewFormatCount">const <type>VkFormat</type>* <name>viewFormats</name></member> + </type> + <type category="struct" name="XrDebugUtilsObjectNameInfoEXT"> + <member values="XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrObjectType</type> <name>objectType</name></member> + <member><type>uint64_t</type> <name>objectHandle</name></member> + <member optional="true" len="null-terminated">const <type>char</type>* <name>objectName</name></member> + </type> + <type category="struct" name="XrDebugUtilsLabelEXT"> + <member values="XR_TYPE_DEBUG_UTILS_LABEL_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member len="null-terminated">const <type>char</type>* <name>labelName</name></member> + </type> + <type category="struct" name="XrDebugUtilsMessengerCallbackDataEXT"> + <member values="XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member len="null-terminated">const <type>char</type>* <name>messageId</name></member> + <member len="null-terminated">const <type>char</type>* <name>functionName</name></member> + <member len="null-terminated">const <type>char</type>* <name>message</name></member> + <member optional="true"><type>uint32_t</type> <name>objectCount</name></member> + <member noautovalidity="true" optional="true" len="objectCount"><type>XrDebugUtilsObjectNameInfoEXT</type>* <name>objects</name></member> + <member optional="true"><type>uint32_t</type> <name>sessionLabelCount</name></member> + <member noautovalidity="true" optional="true" len="sessionLabelCount"><type>XrDebugUtilsLabelEXT</type>* <name>sessionLabels</name></member> + </type> + <type category="struct" name="XrDebugUtilsMessengerCreateInfoEXT" structextends="XrInstanceCreateInfo"> + <member values="XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrDebugUtilsMessageSeverityFlagsEXT</type> <name>messageSeverities</name></member> + <member><type>XrDebugUtilsMessageTypeFlagsEXT</type> <name>messageTypes</name></member> + <member><type>PFN_xrDebugUtilsMessengerCallbackEXT</type> <name>userCallback</name></member> + <member optional="true"><type>void</type>* <name>userData</name></member> + </type> + + <!-- struct types for XR_KHR_visibility_mask --> + <type category="struct" name="XrVisibilityMaskKHR"> + <member values="XR_TYPE_VISIBILITY_MASK_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>uint32_t</type> <name>vertexCapacityInput</name></member> + <member optional="true"><type>uint32_t</type> <name>vertexCountOutput</name></member> + <member optional="true" len="vertexCapacityInput"><type>XrVector2f</type>* <name>vertices</name></member> + <member optional="true"><type>uint32_t</type> <name>indexCapacityInput</name></member> + <member optional="true"><type>uint32_t</type> <name>indexCountOutput</name></member> + <member optional="true" len="indexCapacityInput"><type>uint32_t</type>* <name>indices</name></member> + </type> + + <type category="struct" name="XrGraphicsRequirementsOpenGLKHR"> + <member values="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrVersion</type> <name>minApiVersionSupported</name></member> + <member><type>XrVersion</type> <name>maxApiVersionSupported</name></member> + </type> + <type category="struct" name="XrGraphicsRequirementsOpenGLESKHR"> + <member values="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrVersion</type> <name>minApiVersionSupported</name></member> + <member><type>XrVersion</type> <name>maxApiVersionSupported</name></member> + </type> + <type category="struct" name="XrGraphicsRequirementsVulkanKHR"> + <member values="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrVersion</type> <name>minApiVersionSupported</name></member> + <member><type>XrVersion</type> <name>maxApiVersionSupported</name></member> + </type> + <type category="struct" name="XrGraphicsRequirementsD3D11KHR"> + <member values="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>LUID</type> <name>adapterLuid</name></member> + <member><type>D3D_FEATURE_LEVEL</type> <name>minFeatureLevel</name></member> + </type> + <type category="struct" name="XrGraphicsRequirementsD3D12KHR"> + <member values="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>LUID</type> <name>adapterLuid</name></member> + <member><type>D3D_FEATURE_LEVEL</type> <name>minFeatureLevel</name></member> + </type> + + <!-- XR_KHR_vulkan_enable2 structs --> + <type category="struct" name="XrVulkanInstanceCreateInfoKHR"> + <member values="XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSystemId</type> <name>systemId</name></member> + <member><type>XrVulkanInstanceCreateFlagsKHR</type> <name>createFlags</name></member> + <member><type>PFN_vkGetInstanceProcAddr</type> <name>pfnGetInstanceProcAddr</name></member> + <member>const <type>VkInstanceCreateInfo</type>* <name>vulkanCreateInfo</name></member> + <member>const <type>VkAllocationCallbacks</type>* <name>vulkanAllocator</name></member> + </type> + <type category="struct" name="XrVulkanDeviceCreateInfoKHR"> + <member values="XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSystemId</type> <name>systemId</name></member> + <member><type>XrVulkanDeviceCreateFlagsKHR</type> <name>createFlags</name></member> + <member><type>PFN_vkGetInstanceProcAddr</type> <name>pfnGetInstanceProcAddr</name></member> + <member><type>VkPhysicalDevice</type> <name>vulkanPhysicalDevice</name></member> + <member>const <type>VkDeviceCreateInfo</type>* <name>vulkanCreateInfo</name></member> + <member>const <type>VkAllocationCallbacks</type>* <name>vulkanAllocator</name></member> + </type> + <type category="struct" name="XrGraphicsBindingVulkan2KHR" alias="XrGraphicsBindingVulkanKHR" /> + <type category="struct" name="XrVulkanGraphicsDeviceGetInfoKHR"> + <member values="XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSystemId</type> <name>systemId</name></member> + <member><type>VkInstance</type> <name>vulkanInstance</name></member> + </type> + <type category="struct" name="XrSwapchainImageVulkan2KHR" alias="XrSwapchainImageVulkanKHR" /> + <type category="struct" name="XrGraphicsRequirementsVulkan2KHR" alias="XrGraphicsRequirementsVulkanKHR" /> + + <!-- XR_EXTX_overlay structs --> + <type category="struct" name="XrSessionCreateInfoOverlayEXTX" structextends="XrSessionCreateInfo"> + <member values="XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrOverlaySessionCreateFlagsEXTX</type> <name>createFlags</name></member> + <member><type>uint32_t</type> <name>sessionLayersPlacement</name></member> + </type> + <type category="struct" name="XrEventDataMainSessionVisibilityChangedEXTX" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>visible</name></member> + <member><type>XrOverlayMainSessionFlagsEXTX</type> <name>flags</name></member> + </type> + + <!-- XR_FB_display_refresh_rate structs --> + <type category="struct" name="XrEventDataDisplayRefreshRateChangedFB" parentstruct="XrEventDataBaseHeader"> + <member values="XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>float</type> <name>fromDisplayRefreshRate</name></member> + <member><type>float</type> <name>toDisplayRefreshRate</name></member> + </type> + + <!-- struct types for XR_EXT_view_configuration_depth_range --> + <type category="struct" name="XrViewConfigurationDepthRangeEXT" structextends="XrViewConfigurationView"> + <member values="XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>float</type> <name>recommendedNearZ</name></member> + <member><type>float</type> <name>minNearZ</name></member> + <member><type>float</type> <name>recommendedFarZ</name></member> + <member><type>float</type> <name>maxFarZ</name></member> + </type> + + <!-- struct types for XR_EPIC_view_configuration_fov --> + <type category="struct" name="XrViewConfigurationViewFovEPIC" structextends="XrViewConfigurationView"> + <member values="XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrFovf</type> <name>recommendedFov</name></member> + <member><type>XrFovf</type> <name>maxMutableFov</name></member> + </type> + + <!-- struct types for XR_VALVE_analog_threshold --> + <type category="struct" name="XrInteractionProfileAnalogThresholdVALVE" structextends="XrInteractionProfileSuggestedBinding"> + <member values="XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrAction</type> <name>action</name></member> + <member><type>XrPath</type> <name>binding</name></member> + <member><type>float</type> <name>onThreshold</name></member> + <member><type>float</type> <name>offThreshold</name></member> + <member optional="true">const <type>XrHapticBaseHeader</type>* <name>onHaptic</name></member> + <member optional="true">const <type>XrHapticBaseHeader</type>* <name>offHaptic</name></member> + </type> + + <!-- struct types for XR_KHR_binding_modification --> + <type category="struct" name="XrBindingModificationsKHR" structextends="XrInteractionProfileSuggestedBinding"> + <member values="XR_TYPE_BINDING_MODIFICATIONS_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>uint32_t</type> <name>bindingModificationCount</name></member> + <member optional="true" len="bindingModificationCount">const <type>XrBindingModificationBaseHeaderKHR</type>* const* <name>bindingModifications</name></member> + </type> + + <type category="struct" name="XrBindingModificationBaseHeaderKHR"> + <member noautovalidity="true"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + </type> + + <!-- The PFN_xrVoidFunction type are used by XrGetInstanceProcAddr below --> + <type category="funcpointer">typedef void (XRAPI_PTR *<name>PFN_xrVoidFunction</name>)(void);</type> + + <!-- The PFN_xrDebugUtilsMessengerCallbackEXT type are used by the XR_EXT_debug_utils extension --> + <type category="funcpointer" requires="XrDebugUtilsMessengerCallbackDataEXT">typedef XrBool32 (XRAPI_PTR *<name>PFN_xrDebugUtilsMessengerCallbackEXT</name>)( + <type>XrDebugUtilsMessageSeverityFlagsEXT</type> messageSeverity, + <type>XrDebugUtilsMessageTypeFlagsEXT</type> messageTypes, + const <type>XrDebugUtilsMessengerCallbackDataEXT</type>* callbackData, + <type>void</type>* userData); + </type> + + <!-- types for XR_EXT_eye_gaze_interaction --> + <type category="struct" name="XrSystemEyeGazeInteractionPropertiesEXT" structextends="XrSystemProperties"> + <member values="XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>supportsEyeGazeInteraction</name></member> + </type> + + <type category="struct" name="XrEyeGazeSampleTimeEXT" structextends="XrSpaceLocation"> + <member values="XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrTime</type> <name>time</name></member> + </type> + + <!-- types for XR_MSFT_spatial_anchor --> + <type category="struct" name="XrSpatialAnchorCreateInfoMSFT"> + <member values="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>XrTime</type> <name>time</name></member> + </type> + <type category="struct" name="XrSpatialAnchorSpaceCreateInfoMSFT"> + <member values="XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSpatialAnchorMSFT</type> <name>anchor</name></member> + <member><type>XrPosef</type> <name>poseInAnchorSpace</name></member> + </type> + + <!-- types for XR_MNDX_egl_enable --> + <type category="struct" name="XrGraphicsBindingEGLMNDX" structextends="XrSessionCreateInfo"> + <member values="XR_TYPE_GRAPHICS_BINDING_EGL_MNDX"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>PFNEGLGETPROCADDRESSPROC</type> <name>getProcAddress</name></member> + <member><type>EGLDisplay</type> <name>display</name></member> + <member><type>EGLConfig</type> <name>config</name></member> + <member><type>EGLContext</type> <name>context</name></member> + </type> + + <!-- types for XR_MSFT_spatial_graph_bridge --> + <type category="struct" name="XrSpatialGraphNodeSpaceCreateInfoMSFT"> + <member values="XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSpatialGraphNodeTypeMSFT</type> <name>nodeType</name></member> + <member><type>uint8_t</type> <name>nodeId</name>[16]</member> + <member><type>XrPosef</type> <name>pose</name></member> + </type> + + <!-- XR_EXT_hand_tracking --> + <type name="XrHandEXT" category="enum"/> + <type name="XrHandJointEXT" category="enum"/> + <type name="XrHandJointSetEXT" category="enum"/> + + <type category="struct" name="XrSystemHandTrackingPropertiesEXT" structextends="XrSystemProperties"> + <member values="XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>supportsHandTracking</name></member> + </type> + <type category="struct" name="XrHandTrackerCreateInfoEXT"> + <member values="XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure --> + <member><type>XrHandEXT</type> <name>hand</name></member> + <member><type>XrHandJointSetEXT</type> <name>handJointSet</name></member> + </type> + <type category="struct" name="XrHandJointsLocateInfoEXT"> + <member values="XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSpace</type> <name>baseSpace</name></member> + <member><type>XrTime</type> <name>time</name></member> + </type> + <type category="struct" name="XrHandJointLocationEXT"> + <member><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>float</type> <name>radius</name></member> + </type> + <type category="struct" name="XrHandJointVelocityEXT"> + <member><type>XrSpaceVelocityFlags</type> <name>velocityFlags</name></member> + <member><type>XrVector3f</type> <name>linearVelocity</name></member> + <member><type>XrVector3f</type> <name>angularVelocity</name></member> + </type> + <type category="struct" name="XrHandJointLocationsEXT"> + <member values="XR_TYPE_HAND_JOINT_LOCATIONS_EXT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>isActive</name></member> + <member><type>uint32_t</type> <name>jointCount</name></member> + <member len="jointCount"><type>XrHandJointLocationEXT</type>* <name>jointLocations</name></member> + </type> + <type category="struct" name="XrHandJointVelocitiesEXT" structextends="XrHandJointLocationsEXT"> + <member values="XR_TYPE_HAND_JOINT_VELOCITIES_EXT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>jointCount</name></member> + <member len="jointCount"><type>XrHandJointVelocityEXT</type>* <name>jointVelocities</name></member> + </type> + + <!-- XR_MSFT_hand_tracking_mesh --> + <type name="XrHandPoseTypeMSFT" category="enum"/> + <type category="struct" name="XrHandMeshSpaceCreateInfoMSFT"> + <member values="XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrHandPoseTypeMSFT</type> <name>handPoseType</name></member> + <member><type>XrPosef</type> <name>poseInHandMeshSpace</name></member> + </type> + <type category="struct" name="XrHandMeshUpdateInfoMSFT"> + <member values="XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrTime</type> <name>time</name></member> + <member><type>XrHandPoseTypeMSFT</type> <name>handPoseType</name></member> + </type> + <type category="struct" name="XrHandMeshMSFT"> + <member values="XR_TYPE_HAND_MESH_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>isActive</name></member> + <member><type>XrBool32</type> <name>indexBufferChanged</name></member> + <member><type>XrBool32</type> <name>vertexBufferChanged</name></member> + <member><type>XrHandMeshIndexBufferMSFT</type> <name>indexBuffer</name></member> + <member><type>XrHandMeshVertexBufferMSFT</type> <name>vertexBuffer</name></member> + </type> + <type category="struct" name="XrHandMeshIndexBufferMSFT"> + <member optional="true"><type>uint32_t</type> <name>indexBufferKey</name></member> + <member><type>uint32_t</type> <name>indexCapacityInput</name></member> + <member optional="true"><type>uint32_t</type> <name>indexCountOutput</name></member> + <member len="indexCapacityInput"><type>uint32_t</type>* <name>indices</name></member> + </type> + <type category="struct" name="XrHandMeshVertexBufferMSFT"> + <member optional="true"><type>XrTime</type> <name>vertexUpdateTime</name></member> + <member><type>uint32_t</type> <name>vertexCapacityInput</name></member> + <member optional="true"><type>uint32_t</type> <name>vertexCountOutput</name></member> + <member len="vertexCapacityInput"><type>XrHandMeshVertexMSFT</type>* <name>vertices</name></member> + </type> + <type category="struct" name="XrHandMeshVertexMSFT"> + <member><type>XrVector3f</type> <name>position</name></member> + <member><type>XrVector3f</type> <name>normal</name></member> + </type> + <type category="struct" name="XrSystemHandTrackingMeshPropertiesMSFT" structextends="XrSystemProperties"> + <member values="XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBool32</type> <name>supportsHandTrackingMesh</name></member> + <member><type>uint32_t</type> <name>maxHandMeshIndexCount</name></member> + <member><type>uint32_t</type> <name>maxHandMeshVertexCount</name></member> + </type> + <type category="struct" name="XrHandPoseTypeInfoMSFT" structextends="XrHandTrackerCreateInfoEXT"> + <member values="XR_TYPE_HAND_POSE_TYPE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure --> + <member><type>XrHandPoseTypeMSFT</type> <name>handPoseType</name></member> + </type> + + <!-- XR_MSFT_secondary_view_configuration --> + <type category="struct" name="XrSecondaryViewConfigurationSessionBeginInfoMSFT" structextends="XrSessionBeginInfo"> + <member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>viewConfigurationCount</name></member> + <member len="viewConfigurationCount">const <type>XrViewConfigurationType</type>* <name>enabledViewConfigurationTypes</name></member> + </type> + <type category="struct" name="XrSecondaryViewConfigurationStateMSFT"> + <member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member> + <member><type>XrBool32</type> <name>active</name></member> + </type> + <type category="struct" name="XrSecondaryViewConfigurationFrameStateMSFT" structextends="XrFrameState"> + <member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>viewConfigurationCount</name></member> + <member len="viewConfigurationCount"><type>XrSecondaryViewConfigurationStateMSFT</type>* <name>viewConfigurationStates</name></member> + </type> + <type category="struct" name="XrSecondaryViewConfigurationFrameEndInfoMSFT" structextends="XrFrameEndInfo"> + <member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>uint32_t</type> <name>viewConfigurationCount</name></member> + <member len="viewConfigurationCount">const <type>XrSecondaryViewConfigurationLayerInfoMSFT</type>* <name>viewConfigurationLayersInfo</name></member> + </type> + <type category="struct" name="XrSecondaryViewConfigurationLayerInfoMSFT"> + <member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member> + <member><type>XrEnvironmentBlendMode</type> <name>environmentBlendMode</name></member> + <member><type>uint32_t</type> <name>layerCount</name></member> + <member len="layerCount">const <type>XrCompositionLayerBaseHeader</type>* const* <name>layers</name></member> + </type> + <type category="struct" name="XrSecondaryViewConfigurationSwapchainCreateInfoMSFT" structextends="XrSwapchainCreateInfo"> + <member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member> + </type> + + <!-- XR_MSFT_holographic_window_attachment --> + <type category="struct" name="XrHolographicWindowAttachmentMSFT" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_WIN32"> + <member values="XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>IUnknown</type>* <name>holographicSpace</name></member> + <member><type>IUnknown</type>* <name>coreWindow</name></member> + </type> + + <!-- XR_KHR_loader_init --> + <type category="struct" name="XrLoaderInitInfoBaseHeaderKHR"> + <member><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + </type> + + <!-- XR_KHR_loader_init_android --> + <type category="struct" name="XrLoaderInitInfoAndroidKHR" parentstruct="XrLoaderInitInfoBaseHeaderKHR"> + <member values="XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>void</type>* <name>applicationVM</name></member> + <member><type>void</type>* <name>applicationContext</name></member> + </type> + + <!-- XR_KHR_composition_layer_equirect2 --> + <type category="struct" name="XrCompositionLayerEquirect2KHR" parentstruct="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member> + <member><type>XrSpace</type> <name>space</name></member> + <member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member> + <member><type>XrSwapchainSubImage</type> <name>subImage</name></member> + <member><type>XrPosef</type> <name>pose</name></member> + <member><type>float</type> <name>radius</name></member> + <member><type>float</type> <name>centralHorizontalAngle</name></member> + <member><type>float</type> <name>upperVerticalAngle</name></member> + <member><type>float</type> <name>lowerVerticalAngle</name></member> + </type> + + <!-- XR_KHR_composition_layer_color_scale_bias --> + <type category="struct" name="XrCompositionLayerColorScaleBiasKHR" structextends="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrColor4f</type> <name>colorScale</name></member> + <member><type>XrColor4f</type> <name>colorBias</name></member> + </type> + + <!-- XR_MSFT_controller_model --> + <type category="struct" name="XrControllerModelKeyStateMSFT"> + <member values="XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></member> + </type> + <type category="struct" name="XrControllerModelNodePropertiesMSFT"> + <member values="XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>char</type> <name>parentNodeName</name>[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]</member> + <member><type>char</type> <name>nodeName</name>[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]</member> + </type> + <type category="struct" name="XrControllerModelPropertiesMSFT"> + <member values="XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>uint32_t</type> <name>nodeCapacityInput</name></member> + <member optional="true"><type>uint32_t</type> <name>nodeCountOutput</name></member> + <member optional="true" len="nodeCapacityInput"><type>XrControllerModelNodePropertiesMSFT</type>* <name>nodeProperties</name></member> + </type> + <type category="struct" name="XrControllerModelNodeStateMSFT"> + <member values="XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrPosef</type> <name>nodePose</name></member> + </type> + <type category="struct" name="XrControllerModelStateMSFT"> + <member values="XR_TYPE_CONTROLLER_MODEL_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>uint32_t</type> <name>nodeCapacityInput</name></member> + <member optional="true"><type>uint32_t</type> <name>nodeCountOutput</name></member> + <member optional="true" len="nodeCapacityInput"><type>XrControllerModelNodeStateMSFT</type>* <name>nodeStates</name></member> + </type> + + <!-- XR_FB_color_space structs --> + <type name="XrColorSpaceFB" category="enum"/> + <type category="struct" name="XrSystemColorSpacePropertiesFB"> + <member values="XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrColorSpaceFB</type> <name>colorSpace</name></member> + </type> + + </types> + + <!-- SECTION: OpenXR enumerant (token) definitions. --> + + <enums name="API Constants" comment="Misc. hardcoded constants - not an enumerated type"> + <!-- This is part of the header boilerplate --> + <enum value="1" name="XR_TRUE"/> + <enum value="0" name="XR_FALSE"/> + <enum value="128" name="XR_MAX_EXTENSION_NAME_SIZE"/> + <enum value="256" name="XR_MAX_API_LAYER_NAME_SIZE"/> + <enum value="256" name="XR_MAX_API_LAYER_DESCRIPTION_SIZE"/> + <enum value="256" name="XR_MAX_SYSTEM_NAME_SIZE"/> + <enum value="128" name="XR_MAX_APPLICATION_NAME_SIZE"/> + <enum value="128" name="XR_MAX_ENGINE_NAME_SIZE"/> + <enum value="128" name="XR_MAX_RUNTIME_NAME_SIZE"/> + <enum value="256" name="XR_MAX_PATH_LENGTH"/> + <enum value="64" name="XR_MAX_STRUCTURE_NAME_SIZE"/> + <enum value="64" name="XR_MAX_RESULT_STRING_SIZE"/> + <enum value="32" name="XR_MAX_GRAPHICS_APIS_SUPPORTED"/> + <enum value="64" name="XR_MAX_ACTION_SET_NAME_SIZE"/> + <enum value="64" name="XR_MAX_ACTION_NAME_SIZE"/> + <enum value="128" name="XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE"/> + <enum value="128" name="XR_MAX_LOCALIZED_ACTION_NAME_SIZE"/> + <enum value="16" name="XR_MIN_COMPOSITION_LAYERS_SUPPORTED"/> + </enums> + + <!-- Unlike OpenGL, most tokens in OpenXR are actual typed enumerants in + their own numeric namespaces. The "name" attribute is the C enum + type name, and is pulled in from a <type> definition above + (slightly clunky, but retains the type / enum distinction). "type" + attributes of "enum" or "bitmask" indicate that these values should + be generated inside an appropriate definition. --> + + <enums name="XrStructureType" type="enum" comment="Structure type enumerant"> + <enum value="0" name="XR_TYPE_UNKNOWN"/> + <enum value="1" name="XR_TYPE_API_LAYER_PROPERTIES"/> + <enum value="2" name="XR_TYPE_EXTENSION_PROPERTIES"/> + <enum value="3" name="XR_TYPE_INSTANCE_CREATE_INFO"/> + <enum value="4" name="XR_TYPE_SYSTEM_GET_INFO"/> + <enum value="5" name="XR_TYPE_SYSTEM_PROPERTIES"/> + <enum value="6" name="XR_TYPE_VIEW_LOCATE_INFO"/> + <enum value="7" name="XR_TYPE_VIEW"/> + <enum value="8" name="XR_TYPE_SESSION_CREATE_INFO"/> + <enum value="9" name="XR_TYPE_SWAPCHAIN_CREATE_INFO"/> + <enum value="10" name="XR_TYPE_SESSION_BEGIN_INFO"/> + <enum value="11" name="XR_TYPE_VIEW_STATE"/> + <enum value="12" name="XR_TYPE_FRAME_END_INFO"/> + <enum value="13" name="XR_TYPE_HAPTIC_VIBRATION"/> + <enum value="16" name="XR_TYPE_EVENT_DATA_BUFFER"/> + <enum value="17" name="XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING"/> + <enum value="18" name="XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED"/> + <enum value="23" name="XR_TYPE_ACTION_STATE_BOOLEAN"/> + <enum value="24" name="XR_TYPE_ACTION_STATE_FLOAT"/> + <enum value="25" name="XR_TYPE_ACTION_STATE_VECTOR2F"/> + <enum value="27" name="XR_TYPE_ACTION_STATE_POSE"/> + <enum value="28" name="XR_TYPE_ACTION_SET_CREATE_INFO"/> + <enum value="29" name="XR_TYPE_ACTION_CREATE_INFO"/> + <enum value="32" name="XR_TYPE_INSTANCE_PROPERTIES"/> + <enum value="33" name="XR_TYPE_FRAME_WAIT_INFO"/> + <enum value="35" name="XR_TYPE_COMPOSITION_LAYER_PROJECTION"/> + <enum value="36" name="XR_TYPE_COMPOSITION_LAYER_QUAD"/> + <enum value="37" name="XR_TYPE_REFERENCE_SPACE_CREATE_INFO"/> + <enum value="38" name="XR_TYPE_ACTION_SPACE_CREATE_INFO"/> + <enum value="40" name="XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING"/> + <enum value="41" name="XR_TYPE_VIEW_CONFIGURATION_VIEW"/> + <enum value="42" name="XR_TYPE_SPACE_LOCATION"/> + <enum value="43" name="XR_TYPE_SPACE_VELOCITY"/> + <enum value="44" name="XR_TYPE_FRAME_STATE"/> + <enum value="45" name="XR_TYPE_VIEW_CONFIGURATION_PROPERTIES"/> + <enum value="46" name="XR_TYPE_FRAME_BEGIN_INFO"/> + <enum value="48" name="XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW"/> + <enum value="49" name="XR_TYPE_EVENT_DATA_EVENTS_LOST"/> + <enum value="51" name="XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING"/> + <enum value="52" name="XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED"/> + <enum value="53" name="XR_TYPE_INTERACTION_PROFILE_STATE"/> + <enum value="55" name="XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO"/> + <enum value="56" name="XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO"/> + <enum value="57" name="XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO"/> + <enum value="58" name="XR_TYPE_ACTION_STATE_GET_INFO"/> + <enum value="59" name="XR_TYPE_HAPTIC_ACTION_INFO"/> + <enum value="60" name="XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO"/> + <enum value="61" name="XR_TYPE_ACTIONS_SYNC_INFO"/> + <enum value="62" name="XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO"/> + <enum value="63" name="XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO"/> + </enums> + <enums name="XrResult" type="enum" comment="Error and return codes"> + <!-- Return codes for successful operation execution (positive values) --> + <enum value="0" name="XR_SUCCESS" comment="Function successfully completed."/> + <enum value="1" name="XR_TIMEOUT_EXPIRED" comment="The specified timeout time occurred before the operation could complete."/> + <enum value="3" name="XR_SESSION_LOSS_PENDING" comment="The session will be lost soon."/> + <enum value="4" name="XR_EVENT_UNAVAILABLE" comment="No event was available."/> + <enum value="7" name="XR_SPACE_BOUNDS_UNAVAILABLE" comment="The space's bounds are not known at the moment."/> + <enum value="8" name="XR_SESSION_NOT_FOCUSED" comment="The session is not in the focused state."/> + <enum value="9" name="XR_FRAME_DISCARDED" comment="A frame has been discarded from composition."/> + <!-- Error codes (negative values) --> + <enum value="-1" name="XR_ERROR_VALIDATION_FAILURE" comment="The function usage was invalid in some way."/> + <enum value="-2" name="XR_ERROR_RUNTIME_FAILURE" comment="The runtime failed to handle the function in an unexpected way that is not covered by another error result. "/> + <enum value="-3" name="XR_ERROR_OUT_OF_MEMORY" comment="A memory allocation has failed."/> + <enum value="-4" name="XR_ERROR_API_VERSION_UNSUPPORTED" comment="The runtime does not support the requested API version."/> + <enum value="-6" name="XR_ERROR_INITIALIZATION_FAILED" comment="Initialization of object could not be completed."/> + <enum value="-7" name="XR_ERROR_FUNCTION_UNSUPPORTED" comment="The requested function was not found or is otherwise unsupported."/> + <enum value="-8" name="XR_ERROR_FEATURE_UNSUPPORTED" comment="The requested feature is not supported."/> + <enum value="-9" name="XR_ERROR_EXTENSION_NOT_PRESENT" comment="A requested extension is not supported."/> + <enum value="-10" name="XR_ERROR_LIMIT_REACHED" comment="The runtime supports no more of the requested resource."/> + <enum value="-11" name="XR_ERROR_SIZE_INSUFFICIENT" comment="The supplied size was smaller than required."/> + <enum value="-12" name="XR_ERROR_HANDLE_INVALID" comment="A supplied object handle was invalid."/> + <enum value="-13" name="XR_ERROR_INSTANCE_LOST" comment="The slink:XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated."/> + <enum value="-14" name="XR_ERROR_SESSION_RUNNING" comment="The session <<session_running, is already running>>."/> + <enum value="-16" name="XR_ERROR_SESSION_NOT_RUNNING" comment="The session <<session_not_running, is not yet running>>."/> + <enum value="-17" name="XR_ERROR_SESSION_LOST" comment="The slink:XrSession was lost. It will need to be destroyed and optionally recreated."/> + <enum value="-18" name="XR_ERROR_SYSTEM_INVALID" comment="The provided basetype:XrSystemId was invalid."/> + <enum value="-19" name="XR_ERROR_PATH_INVALID" comment="The provided basetype:XrPath was not valid."/> + <enum value="-20" name="XR_ERROR_PATH_COUNT_EXCEEDED" comment="The maximum number of supported semantic paths has been reached."/> + <enum value="-21" name="XR_ERROR_PATH_FORMAT_INVALID" comment="The semantic path character format is invalid."/> + <enum value="-22" name="XR_ERROR_PATH_UNSUPPORTED" comment="The semantic path is unsupported." /> + <enum value="-23" name="XR_ERROR_LAYER_INVALID" comment="The layer was NULL or otherwise invalid."/> + <enum value="-24" name="XR_ERROR_LAYER_LIMIT_EXCEEDED" comment="The number of specified layers is greater than the supported number."/> + <enum value="-25" name="XR_ERROR_SWAPCHAIN_RECT_INVALID" comment="The image rect was negatively sized or otherwise invalid."/> + <enum value="-26" name="XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED" comment="The image format is not supported by the runtime or platform."/> + <enum value="-27" name="XR_ERROR_ACTION_TYPE_MISMATCH" comment="The API used to retrieve an action's state does not match the action's type."/> + <enum value="-28" name="XR_ERROR_SESSION_NOT_READY" comment="The session is not in the ready state."/> + <enum value="-29" name="XR_ERROR_SESSION_NOT_STOPPING" comment="The session is not in the stopping state."/> + <enum value="-30" name="XR_ERROR_TIME_INVALID" comment="The provided XrTime was zero, negative, or out of range."/> + <enum value="-31" name="XR_ERROR_REFERENCE_SPACE_UNSUPPORTED" comment="The specified reference space is not supported by the runtime or system."/> + <enum value="-32" name="XR_ERROR_FILE_ACCESS_ERROR" comment="The file could not be accessed."/> + <enum value="-33" name="XR_ERROR_FILE_CONTENTS_INVALID" comment="The file's contents were invalid."/> + <enum value="-34" name="XR_ERROR_FORM_FACTOR_UNSUPPORTED" comment="The specified form factor is not supported by the current runtime or platform."/> + <enum value="-35" name="XR_ERROR_FORM_FACTOR_UNAVAILABLE" comment="The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off."/> + <enum value="-36" name="XR_ERROR_API_LAYER_NOT_PRESENT" comment="A requested API layer is not present or could not be loaded."/> + <enum value="-37" name="XR_ERROR_CALL_ORDER_INVALID" comment="The call was made without having made a previously required call."/> + <enum value="-38" name="XR_ERROR_GRAPHICS_DEVICE_INVALID" comment="The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements."/> + <enum value="-39" name="XR_ERROR_POSE_INVALID" comment="The supplied pose was invalid with respect to the requirements."/> + <enum value="-40" name="XR_ERROR_INDEX_OUT_OF_RANGE" comment="The supplied index was outside the range of valid indices."/> + <enum value="-41" name="XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED" comment="The specified view configuration type is not supported by the runtime or platform."/> + <enum value="-42" name="XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED" comment="The specified environment blend mode is not supported by the runtime or platform."/> + <enum value="-44" name="XR_ERROR_NAME_DUPLICATED" comment="The name provided was a duplicate of an already-existing resource."/> + <enum value="-45" name="XR_ERROR_NAME_INVALID" comment="The name provided was invalid."/> + <enum value="-46" name="XR_ERROR_ACTIONSET_NOT_ATTACHED" comment="A referenced action set is not attached to the session."/> + <enum value="-47" name="XR_ERROR_ACTIONSETS_ALREADY_ATTACHED" comment="The session already has attached action sets." /> + <enum value="-48" name="XR_ERROR_LOCALIZED_NAME_DUPLICATED" comment="The localized name provided was a duplicate of an already-existing resource."/> + <enum value="-49" name="XR_ERROR_LOCALIZED_NAME_INVALID" comment="The localized name provided was invalid."/> + <enum value="-50" name="XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING" comment="The xrGetGraphicsRequirements* call was not made before calling xrCreateSession."/> + <unused start="-100"/> + </enums> + <enums name="XrObjectType" type="enum" comment="Enums to track objects of various types"> + <enum value="0" name="XR_OBJECT_TYPE_UNKNOWN"/> + <enum value="1" name="XR_OBJECT_TYPE_INSTANCE" comment="XrInstance"/> + <enum value="2" name="XR_OBJECT_TYPE_SESSION" comment="XrSession"/> + <enum value="3" name="XR_OBJECT_TYPE_SWAPCHAIN" comment="XrSwapchain"/> + <enum value="4" name="XR_OBJECT_TYPE_SPACE" comment="XrSpace"/> + <enum value="5" name="XR_OBJECT_TYPE_ACTION_SET" comment="XrActionSet"/> + <enum value="6" name="XR_OBJECT_TYPE_ACTION" comment="XrAction"/> + </enums> + <enums name="XrAndroidThreadTypeKHR" type="enum" comment="Android Thread Types"> + <enum value="1" name="XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR"/> + <enum value="2" name="XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR"/> + <enum value="3" name="XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR"/> + <enum value="4" name="XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR"/> + </enums> + <enums name="XrEyeVisibility" type="enum" comment="eye visibility selector"> + <enum value="0" name="XR_EYE_VISIBILITY_BOTH" comment="Display in both eyes."/> + <enum value="1" name="XR_EYE_VISIBILITY_LEFT" comment="Display in the left eye only."/> + <enum value="2" name="XR_EYE_VISIBILITY_RIGHT" comment="Display in the right eye only."/> + </enums> + <enums name="XrActionType" type="enum"> + <enum value="1" name="XR_ACTION_TYPE_BOOLEAN_INPUT"/> + <enum value="2" name="XR_ACTION_TYPE_FLOAT_INPUT"/> + <enum value="3" name="XR_ACTION_TYPE_VECTOR2F_INPUT"/> + <enum value="4" name="XR_ACTION_TYPE_POSE_INPUT"/> + <enum value="100" name="XR_ACTION_TYPE_VIBRATION_OUTPUT"/> + </enums> + <enums name="XrReferenceSpaceType" type="enum"> + <enum value="1" name="XR_REFERENCE_SPACE_TYPE_VIEW"/> + <enum value="2" name="XR_REFERENCE_SPACE_TYPE_LOCAL"/> + <enum value="3" name="XR_REFERENCE_SPACE_TYPE_STAGE"/> + </enums> + <enums name="XrFormFactor" type="enum"> + <enum value="1" name="XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY"/> + <enum value="2" name="XR_FORM_FACTOR_HANDHELD_DISPLAY"/> + </enums> + <enums name="XrViewConfigurationType" type="enum"> + <enum value="1" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO"/> + <enum value="2" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO"/> + </enums> + <enums name="XrEnvironmentBlendMode" type="enum"> + <enum value="1" name="XR_ENVIRONMENT_BLEND_MODE_OPAQUE"/> + <enum value="2" name="XR_ENVIRONMENT_BLEND_MODE_ADDITIVE"/> + <enum value="3" name="XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND"/> + </enums> + <enums name="XrSessionState" type="enum"> + <enum value="0" name="XR_SESSION_STATE_UNKNOWN"/> + <enum value="1" name="XR_SESSION_STATE_IDLE"/> + <enum value="2" name="XR_SESSION_STATE_READY"/> + <enum value="3" name="XR_SESSION_STATE_SYNCHRONIZED"/> + <enum value="4" name="XR_SESSION_STATE_VISIBLE"/> + <enum value="5" name="XR_SESSION_STATE_FOCUSED"/> + <enum value="6" name="XR_SESSION_STATE_STOPPING"/> + <enum value="7" name="XR_SESSION_STATE_LOSS_PENDING"/> + <enum value="8" name="XR_SESSION_STATE_EXITING"/> + </enums> + + <!--enums for Perf setting EXT--> + <enums name="XrPerfSettingsLevelEXT" type="enum"> + <enum value="0" name="XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT" + comment="Performance settings hint used by the application to indicate that it enters a non-XR + section (head-locked / static screen), during which power savings are to be prioritized"/> + <enum value="25" name="XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT" + comment="Performance settings hint used by the application to indicate that it enters a low + and stable complexity section, during which reducing power is more important than + occasional late rendering frames"/> + <enum value="50" name="XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT" + comment="Performance settings hint used by the application to indicate that it enters + a high or dynamic complexity section, during which the XR Runtime strives for consistent + XR compositing and frame rendering within a thermally sustainable range"/> + <enum value="75" name="XR_PERF_SETTINGS_LEVEL_BOOST_EXT" + comment="Performance settings hint used by the application to indicate that the application enters + a section with very high complexity, during which the XR Runtime is allowed to step + up beyond the thermally sustainable range"/> + </enums> + <enums name="XrPerfSettingsDomainEXT" type="enum"> + <enum value="1" name="XR_PERF_SETTINGS_DOMAIN_CPU_EXT" comment="Indicates that the performance settings or notification applies to CPU domain"/> + <enum value="2" name="XR_PERF_SETTINGS_DOMAIN_GPU_EXT" comment="Indicates that the performance settings or notification applies to GPU domain"/> + </enums> + <enums name="XrPerfSettingsSubDomainEXT" type="enum"> + <enum value="1" name="XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT" comment="Indicates that the performance notification originates from the COMPOSITING sub-domain"/> + <enum value="2" name="XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT" comment="Indicates that the performance notification originates from the RENDERING sub-domain"/> + <enum value="3" name="XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT" comment="Indicates that the performance notification originates from the THERMAL sub-domain"/> + </enums> + <enums name="XrPerfSettingsNotificationLevelEXT" type="enum"> + <enum value="0" name="XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT" + comment="Notifies that the sub-domain has reached a level + where no further actions other than currently applied are necessary"/> + <enum value="25" name="XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT" + comment="Notifies that the sub-domain has reached an early warning level + where the application should start proactive mitigation actions + with the goal to return to the ename:XR_PERF_NOTIF_LEVEL_NORMAL level"/> + <enum value="75" name="XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT" + comment="Notifies that the sub-domain has reached a critical + level with significant performance degradation. + The application should take drastic mitigation action"/> + </enums> + + <!--enums for XR_KHR_visibility_mask --> + <enums name="XrVisibilityMaskTypeKHR" type="enum" comment=""> + <enum value="1" name="XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR" comment="exclusive mesh; indicates that which the viewer cannot see."/> + <enum value="2" name="XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR" comment="inclusive mesh; indicates strictly that which the viewer can see."/> + <enum value="3" name="XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR" comment="line loop; traces the outline of the area the viewer can see."/> + </enums> + + <!-- XR_EXT_hand_tracking --> + <enums name="XrHandEXT" type="enum"> + <enum value="1" name="XR_HAND_LEFT_EXT"/> + <enum value="2" name="XR_HAND_RIGHT_EXT"/> + </enums> + <enums name="XrHandJointEXT" type="enum"> + <enum value="0" name="XR_HAND_JOINT_PALM_EXT"/> + <enum value="1" name="XR_HAND_JOINT_WRIST_EXT"/> + <enum value="2" name="XR_HAND_JOINT_THUMB_METACARPAL_EXT"/> + <enum value="3" name="XR_HAND_JOINT_THUMB_PROXIMAL_EXT"/> + <enum value="4" name="XR_HAND_JOINT_THUMB_DISTAL_EXT"/> + <enum value="5" name="XR_HAND_JOINT_THUMB_TIP_EXT"/> + <enum value="6" name="XR_HAND_JOINT_INDEX_METACARPAL_EXT"/> + <enum value="7" name="XR_HAND_JOINT_INDEX_PROXIMAL_EXT"/> + <enum value="8" name="XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT"/> + <enum value="9" name="XR_HAND_JOINT_INDEX_DISTAL_EXT"/> + <enum value="10" name="XR_HAND_JOINT_INDEX_TIP_EXT"/> + <enum value="11" name="XR_HAND_JOINT_MIDDLE_METACARPAL_EXT"/> + <enum value="12" name="XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT"/> + <enum value="13" name="XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT"/> + <enum value="14" name="XR_HAND_JOINT_MIDDLE_DISTAL_EXT"/> + <enum value="15" name="XR_HAND_JOINT_MIDDLE_TIP_EXT"/> + <enum value="16" name="XR_HAND_JOINT_RING_METACARPAL_EXT"/> + <enum value="17" name="XR_HAND_JOINT_RING_PROXIMAL_EXT"/> + <enum value="18" name="XR_HAND_JOINT_RING_INTERMEDIATE_EXT"/> + <enum value="19" name="XR_HAND_JOINT_RING_DISTAL_EXT"/> + <enum value="20" name="XR_HAND_JOINT_RING_TIP_EXT"/> + <enum value="21" name="XR_HAND_JOINT_LITTLE_METACARPAL_EXT"/> + <enum value="22" name="XR_HAND_JOINT_LITTLE_PROXIMAL_EXT"/> + <enum value="23" name="XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT"/> + <enum value="24" name="XR_HAND_JOINT_LITTLE_DISTAL_EXT"/> + <enum value="25" name="XR_HAND_JOINT_LITTLE_TIP_EXT"/> + </enums> + <enums name="XrHandJointSetEXT" type="enum"> + <enum value="0" name="XR_HAND_JOINT_SET_DEFAULT_EXT"/> + </enums> + + <!-- XR_MSFT_hand_tracking_mesh --> + <enums name="XrHandPoseTypeMSFT" type="enum"> + <enum value="0" name="XR_HAND_POSE_TYPE_TRACKED_MSFT"/> + <enum value="1" name="XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT"/> + </enums> + + <!-- XR_FB_color_space --> + <enums name="XrColorSpaceFB" type="enum"> + <enum value="0" name="XR_COLOR_SPACE_UNMANAGED_FB"/> + <enum value="1" name="XR_COLOR_SPACE_REC2020_FB"/> + <enum value="2" name="XR_COLOR_SPACE_REC709_FB"/> + <enum value="3" name="XR_COLOR_SPACE_RIFT_CV1_FB"/> + <enum value="4" name="XR_COLOR_SPACE_RIFT_S_FB"/> + <enum value="5" name="XR_COLOR_SPACE_QUEST_FB"/> + <enum value="6" name="XR_COLOR_SPACE_P3_FB"/> + <enum value="7" name="XR_COLOR_SPACE_ADOBE_RGB_FB"/> + </enums> + + <!-- Flags --> + <enums name="XrInstanceCreateFlagBits" type="bitmask"> + <!-- This is currently empty, awaiting future flags. --> + </enums> + <enums name="XrSessionCreateFlagBits" type="bitmask"> + <!-- This is currently empty, awaiting future flags. --> + </enums> + <enums name="XrSwapchainCreateFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT" comment="Content will be protected from CPU access"/> + <enum bitpos="1" name="XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT" comment="Only one image will be acquired from this swapchain over its lifetime"/> + </enums> + <enums name="XrSwapchainUsageFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT" comment="Specifies that the image can: be a color rendering target."/> + <enum bitpos="1" name="XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" comment="Specifies that the image can: be a depth/stencil rendering target."/> + <enum bitpos="2" name="XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT" comment="Specifies that the image can: be used as data/compute."/> + <enum bitpos="3" name="XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT" comment="Specifies that the image can: be used as the source of a transfer command."/> + <enum bitpos="4" name="XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT" comment="Specifies that the image can: be used as the destination of a transfer command."/> + <enum bitpos="5" name="XR_SWAPCHAIN_USAGE_SAMPLED_BIT" comment="Specifies that the image can: be sampled by a shader."/> + <enum bitpos="6" name="XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT" comment="Specifies that the image can: be reinterpreted as another image format."/> + </enums> + <enums name="XrViewStateFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_VIEW_STATE_ORIENTATION_VALID_BIT" comment="Indicates validity of all XrView orientations"/> + <enum bitpos="1" name="XR_VIEW_STATE_POSITION_VALID_BIT" comment="Indicates validity of all XrView positions"/> + <enum bitpos="2" name="XR_VIEW_STATE_ORIENTATION_TRACKED_BIT" comment="Indicates whether all XrView orientations are actively tracked"/> + <enum bitpos="3" name="XR_VIEW_STATE_POSITION_TRACKED_BIT" comment="Indicates whether all XrView positions are actively tracked"/> + </enums> + <enums name="XrCompositionLayerFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT" comment="Enables chromatic aberration correction when not done by default."/> + <enum bitpos="1" name="XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT" comment="Enables the layer texture alpha channel."/> + <enum bitpos="2" name="XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT" comment="Indicates the texture color channels have not been premultiplied by the texture alpha channel."/> + </enums> + + <enums name="XrSpaceLocationFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_SPACE_LOCATION_ORIENTATION_VALID_BIT" comment="Indicates validity of orientation member"/> + <enum bitpos="1" name="XR_SPACE_LOCATION_POSITION_VALID_BIT" comment="Indicates validity of position member"/> + <enum bitpos="2" name="XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT" comment="Indicates whether pose member contains an actively tracked orientation"/> + <enum bitpos="3" name="XR_SPACE_LOCATION_POSITION_TRACKED_BIT" comment="Indicates whether pose member contains an actively tracked position"/> + </enums> + <enums name="XrSpaceVelocityFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_SPACE_VELOCITY_LINEAR_VALID_BIT" comment="Indicates validity of linearVelocity member"/> + <enum bitpos="1" name="XR_SPACE_VELOCITY_ANGULAR_VALID_BIT" comment="Indicates validity of angularVelocity member"/> + </enums> + + <enums name="XrInputSourceLocalizedNameFlagBits" type="bitmask"> + <enum bitpos="0" name="XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT" comment="Asks for the part of the string which indicates the top level user path the source represents"/> + <enum bitpos="1" name="XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT" comment="Asks for the part of the string which represents the interaction profile of the source"/> + <enum bitpos="2" name="XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT" comment="Asks for the part of the string which represents the component on the device which needs to be interacted with"/> + </enums> + + <!-- flags for XR_EXT_debug_utils --> + <enums name="XrVulkanInstanceCreateFlagBitsKHR" type="bitmask"> + <!-- This is currently empty, awaiting future flags. --> + </enums> + <enums name="XrVulkanDeviceCreateFlagBitsKHR" type="bitmask"> + <!-- This is currently empty, awaiting future flags. --> + </enums> + + <!-- flags for XR_EXT_debug_utils --> + <enums name="XrDebugUtilsMessageSeverityFlagBitsEXT" type="bitmask"> + <enum bitpos="0" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT" comment="Most verbose output severity, typically used for debugging."/> + <enum bitpos="4" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT" comment="General info message"/> + <enum bitpos="8" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT" comment="Indicates the item may be the cause of issues."/> + <enum bitpos="12" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT" comment="Indicates that the item is definitely related to erroneous behavior."/> + </enums> + <enums name="XrDebugUtilsMessageTypeFlagBitsEXT" type="bitmask"> + <enum bitpos="0" name="XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT" comment="Indicates this is a general message"/> + <enum bitpos="1" name="XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT" comment="Indicates the message is related to a validation message"/> + <enum bitpos="2" name="XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT" comment="Indicates the message is related to a potential performance situation"/> + <enum bitpos="3" name="XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT" comment="Indicates the message is related to a non-conformant runtime result"/> + </enums> + + <!-- flags for XR_EXTX_overlay --> + <enums name="XrOverlayMainSessionFlagBitsEXTX" type="bitmask"> + <enum bitpos="0" name="XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX" comment="Indicates the main session enabled XR_KHR_extra_layer_info_depth"/> + </enums> + <enums name="XrOverlaySessionCreateFlagBitsEXTX" type="bitmask"> + <enum bitpos="0" name="XR_OVERLAY_SESSION_CREATE_RELAXED_DISPLAY_TIME_BIT_EXTX" comment="Indicates the runtime does not need to attempt to lock the overlay session displayTime to the main session displayTime"/> + </enums> + + <!-- enumes XR_MSFT_spatial_graph_bridge --> + <enums name="XrSpatialGraphNodeTypeMSFT" type="enum"> + <enum value="1" name="XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT" /> + <enum value="2" name="XR_SPATIAL_GRAPH_NODE_TYPE_DYNAMIC_MSFT" /> + </enums> + + <!-- SECTION: OpenXR command definitions --> + <commands> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrGetInstanceProcAddr</name></proto> + <param optional="true"><type>XrInstance</type> <name>instance</name></param> + <param len="null-terminated">const <type>char</type>* <name>name</name></param> + <param><type>PFN_xrVoidFunction</type>* <name>function</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_OUT_OF_MEMORY,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SIZE_INSUFFICIENT"> + <proto><type>XrResult</type> <name>xrEnumerateApiLayerProperties</name></proto> + <param optional="true"><type>uint32_t</type> <name>propertyCapacityInput</name></param> + <param><type>uint32_t</type>* <name>propertyCountOutput</name></param> + <param optional="true" len="propertyCapacityInput"><type>XrApiLayerProperties</type>* <name>properties</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_OUT_OF_MEMORY,XR_ERROR_API_LAYER_NOT_PRESENT,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SIZE_INSUFFICIENT"> + <proto><type>XrResult</type> <name>xrEnumerateInstanceExtensionProperties</name></proto> + <param optional="true" len="null-terminated">const <type>char</type>* <name>layerName</name></param> + <param optional="true"><type>uint32_t</type> <name>propertyCapacityInput</name></param> + <param><type>uint32_t</type>* <name>propertyCountOutput</name></param> + <param optional="true" len="propertyCapacityInput"><type>XrExtensionProperties</type>* <name>properties</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_INITIALIZATION_FAILED,XR_ERROR_API_VERSION_UNSUPPORTED,XR_ERROR_API_LAYER_NOT_PRESENT,XR_ERROR_EXTENSION_NOT_PRESENT,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_NAME_INVALID"> + <proto><type>XrResult</type> <name>xrCreateInstance</name></proto> + <param>const <type>XrInstanceCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrInstance</type>* <name>instance</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroyInstance</name></proto> + <param externsync="true_with_children"><type>XrInstance</type> <name>instance</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrResultToString</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrResult</type> <name>value</name></param> + <param><type>char</type> <name>buffer</name>[<enum>XR_MAX_RESULT_STRING_SIZE</enum>]</param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrStructureTypeToString</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrStructureType</type> <name>value</name></param> + <param><type>char</type> <name>buffer</name>[<enum>XR_MAX_STRUCTURE_NAME_SIZE</enum>]</param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrGetInstanceProperties</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrInstanceProperties</type>* <name>instanceProperties</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_FORM_FACTOR_UNAVAILABLE,XR_ERROR_FORM_FACTOR_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrGetSystem</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrSystemGetInfo</type>* <name>getInfo</name></param> + <param><type>XrSystemId</type>* <name>systemId</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrGetSystemProperties</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrSystemProperties</type>* <name>properties</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_INITIALIZATION_FAILED,XR_ERROR_SYSTEM_INVALID,XR_ERROR_GRAPHICS_DEVICE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING"> + <proto><type>XrResult</type> <name>xrCreateSession</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrSessionCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrSession</type>* <name>session</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroySession</name></proto> + <param externsync="true_with_children"><type>XrSession</type> <name>session</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroySpace</name></proto> + <param externsync="true_with_children"><type>XrSpace</type> <name>space</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrEnumerateSwapchainFormats</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param optional="true"><type>uint32_t</type> <name>formatCapacityInput</name></param> + <param><type>uint32_t</type>* <name>formatCountOutput</name></param> + <param optional="true" len="formatCapacityInput"><type>int64_t</type>* <name>formats</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_LIMIT_REACHED,XR_ERROR_HANDLE_INVALID,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrCreateSwapchain</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSwapchainCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrSwapchain</type>* <name>swapchain</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroySwapchain</name></proto> + <param externsync="true_with_children"><type>XrSwapchain</type> <name>swapchain</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrEnumerateSwapchainImages</name></proto> + <param><type>XrSwapchain</type> <name>swapchain</name></param> + <param optional="true"><type>uint32_t</type> <name>imageCapacityInput</name></param> + <param><type>uint32_t</type>* <name>imageCountOutput</name></param> + <param optional="true" len="imageCapacityInput"><type>XrSwapchainImageBaseHeader</type>* <name>images</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_CALL_ORDER_INVALID"> + <proto><type>XrResult</type> <name>xrAcquireSwapchainImage</name></proto> + <param><type>XrSwapchain</type> <name>swapchain</name></param> + <param optional="true">const <type>XrSwapchainImageAcquireInfo</type>* <name>acquireInfo</name></param> + <param><type>uint32_t</type>* <name>index</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_TIMEOUT_EXPIRED,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_CALL_ORDER_INVALID"> + <proto><type>XrResult</type> <name>xrWaitSwapchainImage</name></proto> + <param><type>XrSwapchain</type> <name>swapchain</name></param> + <param>const <type>XrSwapchainImageWaitInfo</type>* <name>waitInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_CALL_ORDER_INVALID"> + <proto><type>XrResult</type> <name>xrReleaseSwapchainImage</name></proto> + <param><type>XrSwapchain</type> <name>swapchain</name></param> + <param optional="true">const <type>XrSwapchainImageReleaseInfo</type>* <name>releaseInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SESSION_NOT_READY,XR_ERROR_SESSION_RUNNING,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrBeginSession</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSessionBeginInfo</type>* <name>beginInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_NOT_STOPPING,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrEndSession</name></proto> + <param><type>XrSession</type> <name>session</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrRequestExitSession</name></proto> + <param><type>XrSession</type> <name>session</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrEnumerateReferenceSpaces</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param optional="true"><type>uint32_t</type> <name>spaceCapacityInput</name></param> + <param><type>uint32_t</type>* <name>spaceCountOutput</name></param> + <param optional="true" len="spaceCapacityInput"><type>XrReferenceSpaceType</type>* <name>spaces</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_LIMIT_REACHED,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_HANDLE_INVALID,XR_ERROR_REFERENCE_SPACE_UNSUPPORTED,XR_ERROR_POSE_INVALID,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrCreateReferenceSpace</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrReferenceSpaceCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrSpace</type>* <name>space</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID"> + <proto><type>XrResult</type> <name>xrCreateActionSpace</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrActionSpaceCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrSpace</type>* <name>space</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID"> + <proto><type>XrResult</type> <name>xrLocateSpace</name></proto> + <param><type>XrSpace</type> <name>space</name></param> + <param><type>XrSpace</type> <name>baseSpace</name></param> + <param><type>XrTime</type> <name>time</name></param> + <param><type>XrSpaceLocation</type>* <name>location</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SIZE_INSUFFICIENT"> + <proto><type>XrResult</type> <name>xrEnumerateViewConfigurations</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param optional="true"><type>uint32_t</type> <name>viewConfigurationTypeCapacityInput</name></param> + <param><type>uint32_t</type>* <name>viewConfigurationTypeCountOutput</name></param> + <param optional="true" len="viewConfigurationTypeCapacityInput"><type>XrViewConfigurationType</type>* <name>viewConfigurationTypes</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SIZE_INSUFFICIENT"> + <proto><type>XrResult</type> <name>xrEnumerateEnvironmentBlendModes</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param> + <param optional="true"><type>uint32_t</type> <name>environmentBlendModeCapacityInput</name></param> + <param><type>uint32_t</type>* <name>environmentBlendModeCountOutput</name></param> + <param optional="true" len="environmentBlendModeCapacityInput"><type>XrEnvironmentBlendMode</type>* <name>environmentBlendModes</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetViewConfigurationProperties</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param> + <param><type>XrViewConfigurationProperties</type>* <name>configurationProperties</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SIZE_INSUFFICIENT"> + <proto><type>XrResult</type> <name>xrEnumerateViewConfigurationViews</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param> + <param optional="true"><type>uint32_t</type> <name>viewCapacityInput</name></param> + <param><type>uint32_t</type>* <name>viewCountOutput</name></param> + <param optional="true" len="viewCapacityInput"><type>XrViewConfigurationView</type>* <name>views</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_FRAME_DISCARDED" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_CALL_ORDER_INVALID,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrBeginFrame</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param optional="true">const <type>XrFrameBeginInfo</type>* <name>frameBeginInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_TIME_INVALID"> + <proto><type>XrResult</type> <name>xrLocateViews</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrViewLocateInfo</type>* <name>viewLocateInfo</name></param> + <param><type>XrViewState</type>* <name>viewState</name></param> + <param optional="true"><type>uint32_t</type> <name>viewCapacityInput</name></param> + <param><type>uint32_t</type>* <name>viewCountOutput</name></param> + <param optional="true" len="viewCapacityInput"><type>XrView</type>* <name>views</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_CALL_ORDER_INVALID,XR_ERROR_LAYER_INVALID,XR_ERROR_SWAPCHAIN_RECT_INVALID,XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_LAYER_LIMIT_EXCEEDED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_POSE_INVALID"> + <proto><type>XrResult</type> <name>xrEndFrame</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrFrameEndInfo</type>* <name>frameEndInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrWaitFrame</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param optional="true">const <type>XrFrameWaitInfo</type>* <name>frameWaitInfo</name></param> + <param><type>XrFrameState</type>* <name>frameState</name></param> + <implicitexternsyncparams> + <param>the pname:session parameter by any other flink:xrWaitFrame call</param> + </implicitexternsyncparams> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrApplyHapticFeedback</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrHapticActionInfo</type>* <name>hapticActionInfo</name></param> + <param>const <type>XrHapticBaseHeader</type>* <name>hapticFeedback</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrStopHapticFeedback</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrHapticActionInfo</type>* <name>hapticActionInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_EVENT_UNAVAILABLE" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrPollEvent</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrEventDataBuffer</type>* <name>eventData</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_PATH_COUNT_EXCEEDED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrStringToPath</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param len="null-terminated">const <type>char</type>* <name>pathString</name></param> + <param><type>XrPath</type>* <name>path</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_PATH_INVALID,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrPathToString</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrPath</type> <name>path</name></param> + <param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param> + <param><type>uint32_t</type>* <name>bufferCountOutput</name></param> + <param optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SPACE_BOUNDS_UNAVAILABLE,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_REFERENCE_SPACE_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetReferenceSpaceBoundsRect</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrReferenceSpaceType</type> <name>referenceSpaceType</name></param> + <param><type>XrExtent2Df</type>* <name>bounds</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR,XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSetAndroidApplicationThreadKHR</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrAndroidThreadTypeKHR</type> <name>threadType</name></param> + <param><type>uint32_t</type> <name>threadId</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_LIMIT_REACHED,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateSwapchainAndroidSurfaceKHR</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSwapchainCreateInfo</type>* <name>info</name></param> + <param><type>XrSwapchain</type>* <name>swapchain</name></param> + <param><type>jobject</type>* <name>surface</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetActionStateBoolean</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param> + <param><type>XrActionStateBoolean</type>* <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetActionStateFloat</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param> + <param><type>XrActionStateFloat</type>* <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetActionStateVector2f</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param> + <param><type>XrActionStateVector2f</type>* <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetActionStatePose</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param> + <param><type>XrActionStatePose</type>* <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_LIMIT_REACHED,XR_ERROR_HANDLE_INVALID,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_NAME_DUPLICATED,XR_ERROR_LOCALIZED_NAME_DUPLICATED,XR_ERROR_NAME_INVALID,XR_ERROR_LOCALIZED_NAME_INVALID,XR_ERROR_PATH_FORMAT_INVALID"> + <proto><type>XrResult</type> <name>xrCreateActionSet</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrActionSetCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrActionSet</type>* <name>actionSet</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroyActionSet</name></proto> + <param externsync="true_with_children"><type>XrActionSet</type> <name>actionSet</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED,XR_ERROR_LIMIT_REACHED,XR_ERROR_HANDLE_INVALID,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_PATH_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_NAME_DUPLICATED,XR_ERROR_LOCALIZED_NAME_DUPLICATED,XR_ERROR_NAME_INVALID,XR_ERROR_LOCALIZED_NAME_INVALID,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateAction</name></proto> + <param><type>XrActionSet</type> <name>actionSet</name></param> + <param>const <type>XrActionCreateInfo</type>* <name>createInfo</name></param> + <param><type>XrAction</type>* <name>action</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroyAction</name></proto> + <param externsync="true_with_children"><type>XrAction</type> <name>action</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID"> + <proto><type>XrResult</type> <name>xrSuggestInteractionProfileBindings</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrInteractionProfileSuggestedBinding</type>* <name>suggestedBindings</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED"> + <proto><type>XrResult</type> <name>xrAttachSessionActionSets</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSessionActionSetsAttachInfo</type>* <name>attachInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID"> + <proto><type>XrResult</type> <name>xrGetCurrentInteractionProfile</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>topLevelUserPath</name></param> + <param><type>XrInteractionProfileState</type>* <name>interactionProfile</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_SESSION_NOT_FOCUSED" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSyncActions</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrActionsSyncInfo</type>* <name>syncInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_PATH_INVALID"> + <proto><type>XrResult</type> <name>xrEnumerateBoundSourcesForAction</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrBoundSourcesForActionEnumerateInfo</type>* <name>enumerateInfo</name></param> + <param optional="true"><type>uint32_t</type> <name>sourceCapacityInput</name></param> + <param><type>uint32_t</type>* <name>sourceCountOutput</name></param> + <param optional="true" len="sourceCapacityInput"><type>XrPath</type>* <name>sources</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_ACTIONSET_NOT_ATTACHED"> + <proto><type>XrResult</type> <name>xrGetInputSourceLocalizedName</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrInputSourceLocalizedNameGetInfo</type>* <name>getInfo</name></param> + <param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param> + <param><type>uint32_t</type>* <name>bufferCountOutput</name></param> + <param optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetVulkanInstanceExtensionsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param> + <param><type>uint32_t</type>* <name>bufferCountOutput</name></param> + <param optional="true" len="bufferCapacityInput,null-terminated"><type>char</type>* <name>buffer</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetVulkanDeviceExtensionsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param> + <param><type>uint32_t</type>* <name>bufferCountOutput</name></param> + <param optional="true" len="bufferCapacityInput,null-terminated"><type>char</type>* <name>buffer</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetVulkanGraphicsDeviceKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>VkInstance</type> <name>vkInstance</name></param> + <param><type>VkPhysicalDevice</type>* <name>vkPhysicalDevice</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetOpenGLGraphicsRequirementsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrGraphicsRequirementsOpenGLKHR</type>* <name>graphicsRequirements</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetOpenGLESGraphicsRequirementsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrGraphicsRequirementsOpenGLESKHR</type>* <name>graphicsRequirements</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetVulkanGraphicsRequirementsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrGraphicsRequirementsVulkanKHR</type>* <name>graphicsRequirements</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetD3D11GraphicsRequirementsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrGraphicsRequirementsD3D11KHR</type>* <name>graphicsRequirements</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetD3D12GraphicsRequirementsKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrSystemId</type> <name>systemId</name></param> + <param><type>XrGraphicsRequirementsD3D12KHR</type>* <name>graphicsRequirements</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_SESSION_LOST,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrPerfSettingsSetPerformanceLevelEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPerfSettingsDomainEXT</type> <name>domain</name></param> + <param><type>XrPerfSettingsLevelEXT</type> <name>level</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_SESSION_LOST,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrThermalGetTemperatureTrendEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPerfSettingsDomainEXT</type> <name>domain</name></param> + <param><type>XrPerfSettingsNotificationLevelEXT</type>* <name>notificationLevel</name></param> + <param><type>float</type>* <name>tempHeadroom</name></param> + <param><type>float</type>* <name>tempSlope</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_OUT_OF_MEMORY,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSetDebugUtilsObjectNameEXT</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param externsync="nameInfo.objectHandle">const <type>XrDebugUtilsObjectNameInfoEXT</type>* <name>nameInfo</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_OUT_OF_MEMORY,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_LIMIT_REACHED,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateDebugUtilsMessengerEXT</name></proto> + <param externsync="true_with_children"><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrDebugUtilsMessengerCreateInfoEXT</type>* <name>createInfo</name></param> + <param><type>XrDebugUtilsMessengerEXT</type>* <name>messenger</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrDestroyDebugUtilsMessengerEXT</name></proto> + <param externsync="true"><type>XrDebugUtilsMessengerEXT</type> <name>messenger</name></param> + <implicitexternsyncparams> + <param>the slink:XrInstance used to create pname:messenger, and all of its child handles</param> + </implicitexternsyncparams> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSubmitDebugUtilsMessageEXT</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrDebugUtilsMessageSeverityFlagsEXT</type> <name>messageSeverity</name></param> + <param><type>XrDebugUtilsMessageTypeFlagsEXT</type> <name>messageTypes</name></param> + <param>const <type>XrDebugUtilsMessengerCallbackDataEXT</type>* <name>callbackData</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_SESSION_LOST,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSessionBeginDebugUtilsLabelRegionEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrDebugUtilsLabelEXT</type>* <name>labelInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_SESSION_LOST,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSessionEndDebugUtilsLabelRegionEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_SESSION_LOST,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSessionInsertDebugUtilsLabelEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrDebugUtilsLabelEXT</type>* <name>labelInfo</name></param> + </command> + + <!-- commands for XR_KHR_win32_convert_performance_counter_time --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrConvertTimeToWin32PerformanceCounterKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrTime</type> <name>time</name></param> + <param><type>LARGE_INTEGER</type>* <name>performanceCounter</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrConvertWin32PerformanceCounterToTimeKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>LARGE_INTEGER</type>* <name>performanceCounter</name></param> + <param><type>XrTime</type>* <name>time</name></param> + </command> + + <!-- commands for XR_KHR_vulkan_enable2 --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateVulkanInstanceKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrVulkanInstanceCreateInfoKHR</type>*<name>createInfo</name></param> + <param><type>VkInstance</type>* <name>vulkanInstance</name></param> + <param><type>VkResult</type>* <name>vulkanResult</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateVulkanDeviceKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrVulkanDeviceCreateInfoKHR</type>* <name>createInfo</name></param> + <param><type>VkDevice</type>* <name>vulkanDevice</name></param> + <param><type>VkResult</type>* <name>vulkanResult</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_SYSTEM_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetVulkanGraphicsDevice2KHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const <type>XrVulkanGraphicsDeviceGetInfoKHR</type>* <name>getInfo</name></param> + <param><type>VkPhysicalDevice</type>* <name>vulkanPhysicalDevice</name></param> + </command> + <command name="xrGetVulkanGraphicsRequirements2KHR" alias="xrGetVulkanGraphicsRequirementsKHR" /> + + <!-- commands for XR_KHR_convert_timespec_time --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrConvertTimeToTimespecTimeKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param><type>XrTime</type> <name>time</name></param> + <param>struct <type>timespec</type>* <name>timespecTime</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrConvertTimespecTimeToTimeKHR</name></proto> + <param><type>XrInstance</type> <name>instance</name></param> + <param>const struct <type>timespec</type>* <name>timespecTime</name></param> + <param><type>XrTime</type>* <name>time</name></param> + </command> + + <!-- commands for XR_KHR_visibility_mask --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SESSION_LOST,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrGetVisibilityMaskKHR</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param> + <param><type>uint32_t</type> <name>viewIndex</name></param> + <param><type>XrVisibilityMaskTypeKHR</type> <name>visibilityMaskType</name></param> + <param><type>XrVisibilityMaskKHR</type>* <name>visibilityMask</name></param> + </command> + + <!-- commands for XR_MSFT_spatial_anchor --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT,XR_ERROR_TIME_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrCreateSpatialAnchorMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSpatialAnchorCreateInfoMSFT</type>* <name>createInfo</name></param> + <param><type>XrSpatialAnchorMSFT</type>* <name>anchor</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrCreateSpatialAnchorSpaceMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSpatialAnchorSpaceCreateInfoMSFT</type>* <name>createInfo</name></param> + <param><type>XrSpace</type>* <name>space</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrDestroySpatialAnchorMSFT</name></proto> + <param><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param> + </command> + + <!-- commands for XR_EXT_conformance_automation --> + <command successcodes="XR_SUCCESS" + errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSetInputDeviceActiveEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>interactionProfile</name></param> + <param><type>XrPath</type> <name>topLevelPath</name></param> + <param><type>XrBool32</type> <name>isActive</name></param> + </command> + <command successcodes="XR_SUCCESS" + errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSetInputDeviceStateBoolEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>topLevelPath</name></param> + <param><type>XrPath</type> <name>inputSourcePath</name></param> + <param><type>XrBool32</type> <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS" + errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSetInputDeviceStateFloatEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>topLevelPath</name></param> + <param><type>XrPath</type> <name>inputSourcePath</name></param> + <param><type>float</type> <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS" + errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrSetInputDeviceStateVector2fEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>topLevelPath</name></param> + <param><type>XrPath</type> <name>inputSourcePath</name></param> + <param><type>XrVector2f</type> <name>state</name></param> + </command> + <command successcodes="XR_SUCCESS" + errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_POSE_INVALID"> + <proto><type>XrResult</type> <name>xrSetInputDeviceLocationEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>topLevelPath</name></param> + <param><type>XrPath</type> <name>inputSourcePath</name></param> + <param><type>XrSpace</type> <name>space</name></param> + <param><type>XrPosef</type> <name>pose</name></param> + </command> + + <!-- commands for XR_KHR_loader_init --> + <command successcodes="XR_SUCCESS" + errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrInitializeLoaderKHR</name></proto> + <param>const <type>XrLoaderInitInfoBaseHeaderKHR</type>* <name>loaderInitInfo</name></param> + </command> + + <!--XR_MSFT_spatial_graph_bridge --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_POSE_INVALID"> + <proto><type>XrResult</type> <name>xrCreateSpatialGraphNodeSpaceMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSpatialGraphNodeSpaceCreateInfoMSFT</type>* <name>createInfo</name></param> + <param><type>XrSpace</type>* <name>space</name></param> + </command> + + <!-- XR_EXT_hand_tracking --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" + errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_FEATURE_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateHandTrackerEXT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrHandTrackerCreateInfoEXT</type>* <name>createInfo</name></param> + <param><type>XrHandTrackerEXT</type>* <name>handTracker</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrDestroyHandTrackerEXT</name></proto> + <param externsync="true_with_children"><type>XrHandTrackerEXT</type> <name>handTracker</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrLocateHandJointsEXT</name></proto> + <param><type>XrHandTrackerEXT</type> <name>handTracker</name></param> + <param>const <type>XrHandJointsLocateInfoEXT</type>* <name>locateInfo</name></param> + <param><type>XrHandJointLocationsEXT</type>* <name>locations</name></param> + </command> + + <!-- XR_MSFT_hand_tracking_mesh --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" + errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_FEATURE_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrCreateHandMeshSpaceMSFT</name></proto> + <param><type>XrHandTrackerEXT</type> <name>handTracker</name></param> + <param>const <type>XrHandMeshSpaceCreateInfoMSFT</type>* <name>createInfo</name></param> + <param><type>XrSpace</type>* <name>space</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" + errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_TIME_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_FEATURE_UNSUPPORTED"> + <proto><type>XrResult</type> <name>xrUpdateHandMeshMSFT</name></proto> + <param><type>XrHandTrackerEXT</type> <name>handTracker</name></param> + <param>const <type>XrHandMeshUpdateInfoMSFT</type>* <name>updateInfo</name></param> + <param><type>XrHandMeshMSFT</type>* <name>handMesh</name></param> + </command> + + <!-- XR_MSFT_controller_model --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID"> + <proto><type>XrResult</type> <name>xrGetControllerModelKeyMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrPath</type> <name>topLevelUserPath</name></param> + <param><type>XrControllerModelKeyStateMSFT</type>* <name>controllerModelKeyState</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrLoadControllerModelMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></param> + <param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param> + <param><type>uint32_t</type>* <name>bufferCountOutput</name></param> + <param optional="true" len="bufferCapacityInput"><type>uint8_t</type>* <name>buffer</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrGetControllerModelPropertiesMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></param> + <param><type>XrControllerModelPropertiesMSFT</type>* <name>properties</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrGetControllerModelStateMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></param> + <param><type>XrControllerModelStateMSFT</type>* <name>state</name></param> + </command> + + <!-- XR_FB_display_refresh_rate --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrEnumerateDisplayRefreshRatesFB</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param optional="true"><type>uint32_t</type> <name>displayRefreshRateCapacityInput</name></param> + <param><type>uint32_t</type>* <name>displayRefreshRateCountOutput</name></param> + <param optional="true" len="displayRefreshRateCapacityInput"><type>float</type>* <name>displayRefreshRates</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrGetDisplayRefreshRateFB</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>float</type>* <name>displayRefreshRate</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrRequestDisplayRefreshRateFB</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>float</type> <name>displayRefreshRate</name></param> + </command> + + <!-- XR_MSFT_perception_anchor_interop --> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrCreateSpatialAnchorFromPerceptionAnchorMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>IUnknown</type>* <name>perceptionAnchor</name></param> + <param><type>XrSpatialAnchorMSFT</type>* <name>anchor</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING"> + <proto><type>XrResult</type> <name>xrTryGetPerceptionAnchorFromSpatialAnchorMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param> + <param><type>IUnknown</type>** <name>perceptionAnchor</name></param> + </command> + + <!-- XR_FB_color_space --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrEnumerateColorSpacesFB</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param optional="true"><type>uint32_t</type> <name>colorSpaceCapacityInput</name></param> + <param><type>uint32_t</type>* <name>colorSpaceCountOutput</name></param> + <param optional="true" len="colorSpaceCapacityInput"><type>XrColorSpaceFB</type>* <name>colorSpaces</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE"> + <proto><type>XrResult</type> <name>xrSetColorSpaceFB</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrColorSpaceFB</type> <name>colorspace</name></param> + </command> + </commands> + + <!-- SECTION: OpenXR API interface definitions --> + <!-- + Note: Only explicitly specify types if they are not + referenced by a function or another type. (For example, + if they're expected to be in a next chain.) + Types referenced by functions are included automatically. + --> + + <feature api="openxr" name="XR_VERSION_1_0" number="1.0"> + <require comment="Header boilerplate"> + <type name="openxr_platform_defines"/> + </require> + <require comment="API version"> + <type name="XR_CURRENT_API_VERSION"/> + <type name="XR_VERSION_MAJOR"/> + <type name="XR_VERSION_MINOR"/> + <type name="XR_VERSION_PATCH"/> + <type name="XrVersion"/> + </require> + <require comment="API constants"> + <enum name="XR_TRUE"/> + <enum name="XR_FALSE"/> + <enum name="XR_MAX_EXTENSION_NAME_SIZE"/> + <enum name="XR_MAX_API_LAYER_NAME_SIZE"/> + <enum name="XR_MAX_API_LAYER_DESCRIPTION_SIZE"/> + <enum name="XR_MAX_SYSTEM_NAME_SIZE"/> + <enum name="XR_MAX_APPLICATION_NAME_SIZE"/> + <enum name="XR_MAX_ENGINE_NAME_SIZE"/> + <enum name="XR_MAX_RUNTIME_NAME_SIZE"/> + <enum name="XR_MAX_PATH_LENGTH"/> + <enum name="XR_MAX_STRUCTURE_NAME_SIZE"/> + <enum name="XR_MAX_RESULT_STRING_SIZE"/> + <enum name="XR_MIN_COMPOSITION_LAYERS_SUPPORTED"/> + <type name="XR_NULL_HANDLE"/> + <type name="XR_NULL_SYSTEM_ID"/> + <type name="XR_NULL_PATH"/> + <type name="XR_SUCCEEDED"/> + <type name="XR_FAILED"/> + <type name="XR_UNQUALIFIED_SUCCESS"/> + <type name="XR_NO_DURATION"/> + <type name="XR_INFINITE_DURATION"/> + <type name="XR_MIN_HAPTIC_DURATION"/> + <type name="XR_FREQUENCY_UNSPECIFIED"/> + <type name="XR_MAX_EVENT_DATA_SIZE"/> + </require> + <require comment="API macros"> + <type name="XR_MAY_ALIAS"/> + <type name="XR_DEFINE_HANDLE"/> + </require> + <require comment="Instance"> + <command name="xrGetInstanceProcAddr"/> + <command name="xrEnumerateApiLayerProperties"/> + <command name="xrEnumerateInstanceExtensionProperties"/> + <command name="xrCreateInstance"/> + <command name="xrDestroyInstance"/> + <command name="xrGetInstanceProperties"/> + <command name="xrPollEvent"/> + <command name="xrResultToString"/> + <command name="xrStructureTypeToString"/> + </require> + <require comment="Device"> + <command name="xrGetSystem"/> + <command name="xrGetSystemProperties"/> + <command name="xrEnumerateEnvironmentBlendModes"/> + <command name="xrCreateSession"/> + <command name="xrDestroySession"/> + </require> + <require comment="Space"> + <command name="xrEnumerateReferenceSpaces"/> + <command name="xrCreateReferenceSpace"/> + <command name="xrGetReferenceSpaceBoundsRect"/> + <command name="xrCreateActionSpace"/> + <command name="xrLocateSpace"/> + <command name="xrDestroySpace"/> + <type name="XrSpaceVelocity"/> + </require> + <require comment="ViewConfigurations"> + <command name="xrEnumerateViewConfigurations"/> + <command name="xrGetViewConfigurationProperties"/> + <command name="xrEnumerateViewConfigurationViews"/> + </require> + <require comment="Image"> + <command name="xrEnumerateSwapchainFormats"/> + <command name="xrCreateSwapchain"/> + <command name="xrDestroySwapchain"/> + <command name="xrEnumerateSwapchainImages"/> + <command name="xrAcquireSwapchainImage"/> + <command name="xrWaitSwapchainImage"/> + <command name="xrReleaseSwapchainImage"/> + </require> + <require comment="Session"> + <command name="xrBeginSession"/> + <command name="xrEndSession"/> + <command name="xrRequestExitSession"/> + </require> + <require comment="Display Timing"> + <command name="xrWaitFrame"/> + <command name="xrBeginFrame"/> + <command name="xrEndFrame"/> + <command name="xrLocateViews"/> + </require> + <require comment="Semantic Paths"> + <command name="xrStringToPath"/> + <command name="xrPathToString"/> + </require> + <require comment="Input"> + <command name="xrCreateActionSet"/> + <command name="xrDestroyActionSet"/> + <command name="xrCreateAction"/> + <command name="xrDestroyAction"/> + <command name="xrSuggestInteractionProfileBindings"/> + <command name="xrAttachSessionActionSets"/> + <command name="xrGetCurrentInteractionProfile"/> + <command name="xrGetActionStateBoolean"/> + <command name="xrGetActionStateFloat"/> + <command name="xrGetActionStateVector2f"/> + <command name="xrGetActionStatePose"/> + <command name="xrSyncActions"/> + <command name="xrEnumerateBoundSourcesForAction"/> + <command name="xrGetInputSourceLocalizedName"/> + </require> + <require comment="Haptics"> + <command name="xrApplyHapticFeedback"/> + <command name="xrStopHapticFeedback"/> + </require> + <require comment="Types not directly used by the API"> + <!-- Include <type name="typename"/> here for e.g. structs that + are not parameter types of functions, but still need to be + defined in the API. + --> + + <!-- Utility types to handle polymorphism --> + <type name="XrBaseInStructure"/> + <type name="XrBaseOutStructure"/> + + <!-- Composition layer types used polymorphically by the core spec through XrCompositionLayerBaseHeader. --> + <type name="XrCompositionLayerProjection"/> + <type name="XrCompositionLayerQuad"/> + + <!-- Event data types used polymorphically by the core spec through XrEventDataBaseHeader --> + <type name="XrEventDataBaseHeader"/> + <type name="XrEventDataEventsLost"/> + <type name="XrEventDataInstanceLossPending"/> + <type name="XrEventDataSessionStateChanged"/> + <type name="XrEventDataReferenceSpaceChangePending"/> + <type name="XrEventDataInteractionProfileChanged"/> + + <!-- Haptic data type used polymorphically by the core spec via XrHapticBaseHeader --> + <type name="XrHapticVibration"/> + + <!-- Unused, but documented types, included for completeness and regularity. --> + <type name="XrOffset2Df"/> + <type name="XrRect2Df"/> + <type name="XrVector4f"/> + + + <!-- Core-like basic data types, documented in core spec, though currently only used by KHR extensions: --> + + <!-- used in XR_KHR_composition_layer_color_modulation --> + <type name="XrColor4f"/> + <!-- used in XR_KHR_space bounds --> + <type name="XrExtent2Df"/> + <!-- used in XR_EXT_debug_utils --> + <type name="XrObjectType"/> + </require> + </feature> + + <!-- SECTION: OpenXR extension interface definitions --> + <extensions> + <!-- Android Thread Settings extension --> + <extension name="XR_KHR_android_thread_settings" number="4" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID"> + <require> + <enum value="5" name="XR_KHR_android_thread_settings_SPEC_VERSION"/> + <enum value=""XR_KHR_android_thread_settings"" name="XR_KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME"/> + <enum offset="0" extends="XrResult" dir="-" name="XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR" comment="xrSetAndroidApplicationThreadKHR failed as thread id is invalid."/> + <enum offset="1" extends="XrResult" dir="-" name="XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR" comment="xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority."/> + <type name="XrAndroidThreadTypeKHR" /> + <command name="xrSetAndroidApplicationThreadKHR"/> + </require> + </extension> + + <!-- Android Surface Swapchain extension --> + <extension name="XR_KHR_android_surface_swapchain" number="5" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID"> + <require> + <enum value="4" name="XR_KHR_android_surface_swapchain_SPEC_VERSION"/> + <enum value=""XR_KHR_android_surface_swapchain"" name="XR_KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME"/> + <command name="xrCreateSwapchainAndroidSurfaceKHR"/> + </require> + </extension> + + <!-- Non-core composition cube layer --> + <extension name="XR_KHR_composition_layer_cube" number="7" type="instance" supported="openxr"> + <require> + <enum value="8" name="XR_KHR_composition_layer_cube_SPEC_VERSION"/> + <enum value=""XR_KHR_composition_layer_cube"" name="XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME"/> + <type name="XrCompositionLayerCubeKHR"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_CUBE_KHR"/> + </require> + </extension> + + <!-- Android Create Instance extension --> + <extension name="XR_KHR_android_create_instance" number="9" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID"> + <require> + <enum value="3" name="XR_KHR_android_create_instance_SPEC_VERSION"/> + <enum value=""XR_KHR_android_create_instance"" name="XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR"/> + <type name="XrInstanceCreateInfoAndroidKHR"/> + </require> + </extension> + + <!-- Runtime support for additional per-layer depth info --> + <extension name="XR_KHR_composition_layer_depth" number="11" type="instance" supported="openxr"> + <require> + <enum value="5" name="XR_KHR_composition_layer_depth_SPEC_VERSION"/> + <enum value=""XR_KHR_composition_layer_depth"" name="XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME"/> + <type name="XrCompositionLayerDepthInfoKHR"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR"/> + </require> + </extension> + + <!-- Reserved for headless "graphics binding" extension --> + <extension name="XR_KHR_headless" number="14" type="instance" supported="disabled"> + <require> + <enum value="4" name="XR_KHR_headless_SPEC_VERSION"/> + <enum value=""XR_KHR_headless"" name="XR_KHR_HEADLESS_EXTENSION_NAME"/> + </require> + </extension> + + + <!-- Vulkan image format list extension --> + <extension name="XR_KHR_vulkan_swapchain_format_list" number="15" type="instance" requires="XR_KHR_vulkan_enable" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN"> + <require> + <enum value="3" name="XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION"/> + <enum value=""XR_KHR_vulkan_swapchain_format_list"" name="XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR"/> + <type name="XrVulkanSwapchainFormatListCreateInfoKHR"/> + </require> + </extension> + + <!-- Performance Settings extension --> + <extension name="XR_EXT_performance_settings" number="16" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_performance_settings_SPEC_VERSION"/> + <enum value=""XR_EXT_performance_settings"" name="XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT"/> + <type name="XrPerfSettingsDomainEXT"/> + <type name="XrPerfSettingsSubDomainEXT"/> + <type name="XrPerfSettingsLevelEXT"/> + <type name="XrPerfSettingsNotificationLevelEXT"/> + <type name="XrEventDataPerfSettingsEXT"/> + <command name="xrPerfSettingsSetPerformanceLevelEXT"/> + </require> + </extension> + + <!-- Thermal Query extension --> + <extension name="XR_EXT_thermal_query" number="17" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_thermal_query_SPEC_VERSION"/> + <enum value=""XR_EXT_thermal_query"" name="XR_EXT_THERMAL_QUERY_EXTENSION_NAME"/> + <type name="XrPerfSettingsDomainEXT"/> + <type name="XrPerfSettingsNotificationLevelEXT"/> + <command name="xrThermalGetTemperatureTrendEXT"/> + </require> + </extension> + + <!-- Non-core composition cylinder layer --> + <extension name="XR_KHR_composition_layer_cylinder" number="18" type="instance" supported="openxr"> + <require> + <enum value="4" name="XR_KHR_composition_layer_cylinder_SPEC_VERSION"/> + <enum value=""XR_KHR_composition_layer_cylinder"" name="XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME"/> + <type name="XrCompositionLayerCylinderKHR"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR"/> + </require> + </extension> + + <!-- Non-core composition equilateral rect layer --> + <extension name="XR_KHR_composition_layer_equirect" number="19" type="instance" supported="openxr"> + <require> + <enum value="3" name="XR_KHR_composition_layer_equirect_SPEC_VERSION"/> + <enum value=""XR_KHR_composition_layer_equirect"" name="XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME"/> + <type name="XrCompositionLayerEquirectKHR"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR"/> + </require> + </extension> + + <!-- Debug Utilities extension --> + <extension name="XR_EXT_debug_utils" number="20" type="instance" supported="openxr"> + <require> + <enum value="3" name="XR_EXT_debug_utils_SPEC_VERSION"/> + <enum value=""XR_EXT_debug_utils"" name="XR_EXT_DEBUG_UTILS_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_LABEL_EXT"/> + <enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT" comment="XrDebugUtilsMessengerEXT"/> + <type name="PFN_xrDebugUtilsMessengerCallbackEXT"/> + <type name="XrDebugUtilsObjectNameInfoEXT"/> + <type name="XrDebugUtilsLabelEXT"/> + <type name="XrDebugUtilsMessengerCallbackDataEXT"/> + <type name="XrDebugUtilsMessengerCreateInfoEXT"/> + <command name="xrSetDebugUtilsObjectNameEXT"/> + <command name="xrCreateDebugUtilsMessengerEXT"/> + <command name="xrDestroyDebugUtilsMessengerEXT"/> + <command name="xrSubmitDebugUtilsMessageEXT"/> + <command name="xrSessionBeginDebugUtilsLabelRegionEXT"/> + <command name="xrSessionEndDebugUtilsLabelRegionEXT"/> + <command name="xrSessionInsertDebugUtilsLabelEXT"/> + </require> + </extension> + + <!-- Reserved space for Variable rate rendering extension --> + <extension name="XR_KHR_variable_rate_rendering" number="21" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_KHR_variable_render_rate_SPEC_VERSION"/> + <enum value=""XR_KHR_variable_rate_rendering"" name="XR_KHR_VARIABLE_RATE_RENDERING_EXTENSION_NAME"/> + </require> + </extension> + + <!-- Reserved space for Overlays extension --> + <extension name="XR_KHR_overlays" number="22" type="instance" supported="disabled"> + <require> + <enum value="0" name="XR_KHR_overlays_SPEC_VERSION"/> + <enum value=""XR_KHR_overlays"" name="XR_KHR_OVERLAYS_EXTENSION_NAME"/> + </require> + </extension> + + <!-- OpenGL graphics binding extension --> + <extension name="XR_KHR_opengl_enable" number="24" type="instance" protect="XR_USE_GRAPHICS_API_OPENGL" supported="openxr"> + <require> + <enum value="9" name="XR_KHR_opengl_enable_SPEC_VERSION"/> + <enum value=""XR_KHR_opengl_enable"" name="XR_KHR_OPENGL_ENABLE_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR"/> + <enum offset="4" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR"/> + <enum offset="5" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR"/> + <type name="XrGraphicsBindingOpenGLWin32KHR"/> + <type name="XrGraphicsBindingOpenGLXlibKHR"/> + <type name="XrGraphicsBindingOpenGLXcbKHR"/> + <type name="XrGraphicsBindingOpenGLWaylandKHR"/> + <type name="XrSwapchainImageOpenGLKHR"/> + <type name="XrGraphicsRequirementsOpenGLKHR"/> + <command name="xrGetOpenGLGraphicsRequirementsKHR"/> + </require> + </extension> + + <!-- OpenGL ES graphics binding extension --> + <extension name="XR_KHR_opengl_es_enable" number="25" type="instance" protect="XR_USE_GRAPHICS_API_OPENGL_ES" supported="openxr"> + <require> + <enum value="7" name="XR_KHR_opengl_es_enable_SPEC_VERSION"/> + <enum value=""XR_KHR_opengl_es_enable"" name="XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR"/> + <type name="XrGraphicsBindingOpenGLESAndroidKHR"/> + <type name="XrSwapchainImageOpenGLESKHR"/> + <type name="XrGraphicsRequirementsOpenGLESKHR"/> + <command name="xrGetOpenGLESGraphicsRequirementsKHR"/> + </require> + </extension> + + <!-- Vulkan graphics binding extension --> + <extension name="XR_KHR_vulkan_enable" number="26" type="instance" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr"> + <require> + <enum value="7" name="XR_KHR_vulkan_enable_SPEC_VERSION"/> + <enum value=""XR_KHR_vulkan_enable"" name="XR_KHR_VULKAN_ENABLE_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR"/> + <type name="XrGraphicsBindingVulkanKHR"/> + <type name="XrSwapchainImageVulkanKHR"/> + <type name="XrGraphicsRequirementsVulkanKHR"/> + <command name="xrGetVulkanInstanceExtensionsKHR"/> + <command name="xrGetVulkanDeviceExtensionsKHR"/> + <command name="xrGetVulkanGraphicsDeviceKHR"/> + <command name="xrGetVulkanGraphicsRequirementsKHR"/> + </require> + </extension> + + <!-- Value used by obsolete D3D10 graphics binding extension --> + <extension name="XR_KHR_D3D10_enable_obsolete" number="27" type="instance" supported="disabled"> + <require> + <enum value="4" name="XR_KHR_D3D10_enable_obsolete_SPEC_VERSION"/> + <enum value=""XR_KHR_D3D10_enable_obsolete"" name="XR_KHR_D3D10_ENABLE_OBSOLETE_EXTENSION_NAME"/> + </require> + </extension> + + <!-- D3D11 graphics binding extension --> + <extension name="XR_KHR_D3D11_enable" number="28" type="instance" protect="XR_USE_GRAPHICS_API_D3D11" supported="openxr"> + <require> + <enum value="5" name="XR_KHR_D3D11_enable_SPEC_VERSION"/> + <enum value=""XR_KHR_D3D11_enable"" name="XR_KHR_D3D11_ENABLE_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_D3D11_KHR"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR"/> + <type name="XrGraphicsBindingD3D11KHR"/> + <type name="XrSwapchainImageD3D11KHR"/> + <type name="XrGraphicsRequirementsD3D11KHR"/> + <command name="xrGetD3D11GraphicsRequirementsKHR"/> + </require> + </extension> + + <!-- D3D12 graphics binding extension --> + <extension name="XR_KHR_D3D12_enable" number="29" type="instance" protect="XR_USE_GRAPHICS_API_D3D12" supported="openxr"> + <require> + <enum value="7" name="XR_KHR_D3D12_enable_SPEC_VERSION"/> + <enum value=""XR_KHR_D3D12_enable"" name="XR_KHR_D3D12_ENABLE_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_D3D12_KHR"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR"/> + <type name="XrGraphicsBindingD3D12KHR"/> + <type name="XrSwapchainImageD3D12KHR"/> + <type name="XrGraphicsRequirementsD3D12KHR"/> + <command name="xrGetD3D12GraphicsRequirementsKHR"/> + </require> + </extension> + + <!-- Reserved space for Enable Metal extension --> + <extension name="XR_KHR_metal_enable" number="30" type="instance" protect="XR_USE_GRAPHICS_API_METAL" supported="disabled"> + <require> + <enum value="1" name="XR_KHR_metal_enable_SPEC_VERSION"/> + <enum value=""XR_KHR_metal_enable"" name="XR_KHR_METAL_ENABLE_EXTENSION_NAME"/> + </require> + </extension> + + <!-- Eye gaze interaction extension --> + <extension name="XR_EXT_eye_gaze_interaction" number="31" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_eye_gaze_interaction_SPEC_VERSION"/> + <enum value=""XR_EXT_eye_gaze_interaction"" name="XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT"/> + <type name="XrSystemEyeGazeInteractionPropertiesEXT" /> + <type name="XrEyeGazeSampleTimeEXT" /> + </require> + </extension> + + <!-- Visibility mask extension --> + <extension name="XR_KHR_visibility_mask" number="32" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_KHR_visibility_mask_SPEC_VERSION"/> + <enum value=""XR_KHR_visibility_mask"" name="XR_KHR_VISIBILITY_MASK_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_VISIBILITY_MASK_KHR"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR"/> + <type name="XrVisibilityMaskTypeKHR"/> + <type name="XrVisibilityMaskKHR"/> + <type name="XrEventDataVisibilityMaskChangedKHR"/> + <command name="xrGetVisibilityMaskKHR"/> + </require> + </extension> + + <!-- Reserved space for EXT permissions support --> + <extension name="XR_EXT_permissions_support" number="33" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_EXT_permissions_support_SPEC_VERSION"/> + <enum value=""XR_EXT_permissions_support"" name="XR_EXT_PERMISSIONS_SUPPORT_EXTENSION_NAME"/> + </require> + </extension> + + <!-- Overlay preview extension --> + <extension name="XR_EXTX_overlay" number="34" type="instance" provisional="true" supported="openxr"> + <require> + <enum value="4" name="XR_EXTX_overlay_SPEC_VERSION"/> + <enum value=""XR_EXTX_overlay"" name="XR_EXTX_OVERLAY_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX"/> + <type name="XrSessionCreateInfoOverlayEXTX"/> + <type name="XrEventDataMainSessionVisibilityChangedEXTX"/> + </require> + </extension> + + + <!-- per-layer color scale and bias --> + <extension name="XR_KHR_composition_layer_color_scale_bias" number="35" type="instance" supported="openxr"> + <require> + <enum value="5" name="XR_KHR_composition_layer_color_scale_bias_SPEC_VERSION"/> + <enum value=""XR_KHR_composition_layer_color_scale_bias"" name="XR_KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR"/> + <type name="XrCompositionLayerColorScaleBiasKHR"/> + </require> + </extension> + + <extension name="XR_KHR_win32_convert_performance_counter_time" number="36" type="instance" supported="openxr" protect="XR_USE_PLATFORM_WIN32"> + <require> + <enum value="1" name="XR_KHR_win32_convert_performance_counter_time_SPEC_VERSION"/> + <enum value=""XR_KHR_win32_convert_performance_counter_time"" name="XR_KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME"/> + <command name="xrConvertWin32PerformanceCounterToTimeKHR"/> + <command name="xrConvertTimeToWin32PerformanceCounterKHR"/> + </require> + </extension> + + <extension name="XR_KHR_convert_timespec_time" number="37" type="instance" supported="openxr" protect="XR_USE_TIMESPEC"> + <require> + <enum value="1" name="XR_KHR_convert_timespec_time_SPEC_VERSION"/> + <enum value=""XR_KHR_convert_timespec_time"" name="XR_KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME"/> + <command name="xrConvertTimespecTimeToTimeKHR"/> + <command name="xrConvertTimeToTimespecTimeKHR"/> + </require> + </extension> + + <extension name="XR_VARJO_quad_views" number="38" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_VARJO_quad_views_SPEC_VERSION"/> + <enum value=""XR_VARJO_quad_views"" name="XR_VARJO_QUAD_VIEWS_EXTENSION_NAME"/> + <enum offset="0" extends="XrViewConfigurationType" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO"/> + </require> + </extension> + + <extension name="XR_MSFT_unbounded_reference_space" number="39" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_MSFT_unbounded_reference_space_SPEC_VERSION"/> + <enum value=""XR_MSFT_unbounded_reference_space"" name="XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME"/> + + <enum offset="0" extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT"/> + </require> + </extension> + + <extension name="XR_MSFT_spatial_anchor" number="40" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_MSFT_spatial_anchor_SPEC_VERSION"/> + <enum value=""XR_MSFT_spatial_anchor"" name="XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT"/> + <command name="xrCreateSpatialAnchorMSFT" /> + <command name="xrCreateSpatialAnchorSpaceMSFT" /> + <command name="xrDestroySpatialAnchorMSFT" /> + <enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT" comment="XrSpatialAnchorMSFT" /> + <enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT" comment="Spatial anchor could not be created at that location." /> + </require> + </extension> + + <extension name="XR_OCULUS_extension_41" number="41" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_OCULUS_extension_41_SPEC_VERSION"/> + <enum value=""XR_OCULUS_extension_41"" name="XR_OCULUS_EXTENSION_41_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_OCULUS_extension_42" number="42" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_OCULUS_extension_42_SPEC_VERSION"/> + <enum value=""XR_OCULUS_extension_42"" name="XR_OCULUS_EXTENSION_42_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MND_headless" number="43" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_MND_headless_SPEC_VERSION"/> + <enum value=""XR_MND_headless"" name="XR_MND_HEADLESS_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_OCULUS_extension_44" number="44" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_OCULUS_extension_44_SPEC_VERSION"/> + <enum value=""XR_OCULUS_extension_44"" name="XR_OCULUS_EXTENSION_44_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_OCULUS_android_session_state_enable" number="45" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_OCULUS_android_session_state_enable_SPEC_VERSION"/> + <enum value=""XR_OCULUS_android_session_state_enable"" name="XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MND_extension_46" number="46" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MND_extension_46_SPEC_VERSION"/> + <enum value=""XR_MND_extension_46"" name="XR_MND_EXTENSION_46_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_EXT_view_configuration_depth_range" number="47" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_view_configuration_depth_range_SPEC_VERSION"/> + <enum value=""XR_EXT_view_configuration_depth_range"" name="XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT"/> + <type name="XrViewConfigurationDepthRangeEXT"/> + </require> + </extension> + + <extension name="XR_EXT_conformance_automation" number="48" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_conformance_automation_SPEC_VERSION"/> + <enum value=""XR_EXT_conformance_automation"" name="XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME"/> + <command name="xrSetInputDeviceActiveEXT"/> + <command name="xrSetInputDeviceStateBoolEXT"/> + <command name="xrSetInputDeviceStateFloatEXT"/> + <command name="xrSetInputDeviceStateVector2fEXT"/> + <command name="xrSetInputDeviceLocationEXT"/> + </require> + </extension> + + <extension name="XR_MNDX_egl_enable" number="49" type="instance" provisional="true" protect="XR_USE_PLATFORM_EGL" supported="openxr"> + <require> + <enum value="1" name="XR_MNDX_egl_enable_SPEC_VERSION"/> + <enum value=""XR_MNDX_egl_enable"" name="XR_MNDX_EGL_ENABLE_EXTENSION_NAME"/> + <enum offset="4" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_EGL_MNDX"/> + <type name="XrGraphicsBindingEGLMNDX"/> + </require> + </extension> + + <extension name="XR_MSFT_spatial_graph_bridge" number="50" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_MSFT_spatial_graph_bridge_SPEC_VERSION"/> + <enum value=""XR_MSFT_spatial_graph_bridge"" name="XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME"/> + <type name="XrSpatialGraphNodeTypeMSFT" /> + <type name="XrSpatialGraphNodeSpaceCreateInfoMSFT" /> + <command name="xrCreateSpatialGraphNodeSpaceMSFT" /> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT"/> + </require> + </extension> + + <extension name="XR_MSFT_hand_interaction" number="51" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_MSFT_hand_interaction_SPEC_VERSION"/> + <enum value=""XR_MSFT_hand_interaction"" name="XR_MSFT_HAND_INTERACTION_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_EXT_hand_tracking" number="52" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_EXT_hand_tracking_SPEC_VERSION"/> + <enum value=""XR_EXT_hand_tracking"" name="XR_EXT_HAND_TRACKING_EXTENSION_NAME"/> + + <command name="xrCreateHandTrackerEXT"/> + <command name="xrDestroyHandTrackerEXT"/> + <command name="xrLocateHandJointsEXT"/> + + <type name="XrHandEXT"/> + <type name="XrHandJointEXT"/> + <type name="XrHandJointSetEXT"/> + + <type name="XrSystemHandTrackingPropertiesEXT"/> + <type name="XrHandTrackerCreateInfoEXT"/> + <type name="XrHandJointsLocateInfoEXT"/> + <type name="XrHandJointLocationEXT"/> + <type name="XrHandJointVelocityEXT"/> + <type name="XrHandJointLocationsEXT"/> + <type name="XrHandJointVelocitiesEXT"/> + <type name="XR_HAND_JOINT_COUNT_EXT"/> + + <enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_HAND_TRACKER_EXT" comment="XrHandTrackerEXT"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_HAND_JOINT_LOCATIONS_EXT"/> + <enum offset="4" extends="XrStructureType" name="XR_TYPE_HAND_JOINT_VELOCITIES_EXT"/> + </require> + </extension> + + <extension name="XR_MSFT_hand_tracking_mesh" number="53" + requires="XR_EXT_hand_tracking" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_MSFT_hand_tracking_mesh_SPEC_VERSION"/> + <enum value=""XR_MSFT_hand_tracking_mesh"" name="XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME"/> + + <command name="xrCreateHandMeshSpaceMSFT"/> + <command name="xrUpdateHandMeshMSFT"/> + + <type name="XrSystemHandTrackingMeshPropertiesMSFT"/> + <type name="XrHandMeshSpaceCreateInfoMSFT"/> + <type name="XrHandMeshUpdateInfoMSFT"/> + <type name="XrHandMeshMSFT"/> + <type name="XrHandMeshIndexBufferMSFT"/> + <type name="XrHandMeshVertexBufferMSFT"/> + <type name="XrHandMeshVertexMSFT"/> + <type name="XrHandPoseTypeMSFT"/> + <type name="XrHandPoseTypeInfoMSFT"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_HAND_MESH_MSFT"/> + <enum offset="4" extends="XrStructureType" name="XR_TYPE_HAND_POSE_TYPE_INFO_MSFT"/> + </require> + </extension> + + <extension name="XR_MSFT_secondary_view_configuration" number="54" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_MSFT_secondary_view_configuration_SPEC_VERSION"/> + <enum value=""XR_MSFT_secondary_view_configuration"" name="XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME"/> + <type name="XrSecondaryViewConfigurationSessionBeginInfoMSFT" /> + <type name="XrSecondaryViewConfigurationStateMSFT" /> + <type name="XrSecondaryViewConfigurationFrameStateMSFT"/> + <type name="XrSecondaryViewConfigurationFrameEndInfoMSFT"/> + <type name="XrSecondaryViewConfigurationLayerInfoMSFT"/> + <type name="XrSecondaryViewConfigurationSwapchainCreateInfoMSFT" /> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT"/> + <enum offset="4" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT"/> + <enum offset="5" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT"/> + <enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT" + comment="The secondary view configuration was not enabled when creating the session."/> + </require> + </extension> + + <extension name="XR_MSFT_first_person_observer" number="55" type="instance" requires="XR_MSFT_secondary_view_configuration" supported="openxr"> + <require> + <enum value="1" name="XR_MSFT_first_person_observer_SPEC_VERSION"/> + <enum value=""XR_MSFT_first_person_observer"" name="XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME"/> + <enum offset="0" extends="XrViewConfigurationType" name="XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT"/> + </require> + </extension> + + <extension name="XR_MSFT_controller_model" number="56" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_MSFT_controller_model_SPEC_VERSION"/> + <enum value=""XR_MSFT_controller_model"" name="XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME"/> + + <type name="XrControllerModelKeyStateMSFT" /> + <type name="XrControllerModelNodePropertiesMSFT" /> + <type name="XrControllerModelPropertiesMSFT" /> + <type name="XrControllerModelNodeStateMSFT" /> + <type name="XrControllerModelStateMSFT" /> + <type name="XrControllerModelKeyMSFT"/> + <type name="XR_NULL_CONTROLLER_MODEL_KEY_MSFT"/> + + <command name="xrGetControllerModelKeyMSFT" /> + <command name="xrLoadControllerModelMSFT" /> + <command name="xrGetControllerModelPropertiesMSFT" /> + <command name="xrGetControllerModelStateMSFT" /> + + <enum value="64" name="XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT"/> + <enum offset="4" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_STATE_MSFT"/> + <enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT" comment="The controller model key is invalid."/> + + </require> + </extension> + + <extension name="XR_MSFT_perception_anchor_interop" number="57" type="instance" supported="openxr" requires="XR_MSFT_spatial_anchor" protect="XR_USE_PLATFORM_WIN32"> + <require> + <enum value="1" name="XR_MSFT_perception_anchor_interop_SPEC_VERSION"/> + <enum value=""XR_MSFT_perception_anchor_interop"" name="XR_MSFT_PERCEPTION_ANCHOR_INTEROP_EXTENSION_NAME"/> + + <command name="xrCreateSpatialAnchorFromPerceptionAnchorMSFT"/> + <command name="xrTryGetPerceptionAnchorFromSpatialAnchorMSFT"/> + + </require> + </extension> + + <extension name="XR_EXT_win32_appcontainer_compatible" number="58" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_win32_appcontainer_compatible_SPEC_VERSION"/> + <enum value=""XR_EXT_win32_appcontainer_compatible"" name="XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MAGICLEAP_extension_59" number="59" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MAGICLEAP_extension_59_SPEC_VERSION"/> + <enum value=""XR_MAGICLEAP_extension_59"" name="XR_MAGICLEAP_extension_59_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_EPIC_view_configuration_fov" number="60" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_EPIC_view_configuration_fov_SPEC_VERSION"/> + <enum value=""XR_EPIC_view_configuration_fov"" name="XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC"/> + <type name="XrViewConfigurationViewFovEPIC"/> + </require> + </extension> + + <extension name="XR_MSFT_extension_63" number="63" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_63_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_63"" name="XR_MSFT_extension_63_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MSFT_holographic_window_attachment" number="64" type="instance" supported="openxr" protect="XR_USE_PLATFORM_WIN32"> + <require> + <enum value="1" name="XR_MSFT_holographic_window_attachment_SPEC_VERSION"/> + <enum value=""XR_MSFT_holographic_window_attachment"" name="XR_MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME"/> + <type name="XrHolographicWindowAttachmentMSFT" /> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"/> + </require> + </extension> + + <extension name="XR_MSFT_extension_65" number="65" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_65_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_65"" name="XR_MSFT_extension_65_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MSFT_extension_66" number="66" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_66_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_66"" name="XR_MSFT_extension_66_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MSFT_extension_67" number="67" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_67_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_67"" name="XR_MSFT_extension_67_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LUNARG_extension_68" number="68" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LUNARG_extension_68_SPEC_VERSION"/> + <enum value=""XR_LUNARG_extension_68"" name="XR_LUNARG_extension_68_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LUNARG_extension_69" number="69" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LUNARG_extension_69_SPEC_VERSION"/> + <enum value=""XR_LUNARG_extension_69"" name="XR_LUNARG_extension_69_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_HUAWEI_controller_interaction" number="70" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_HUAWEI_controller_interaction_SPEC_VERSION"/> + <enum value=""XR_HUAWEI_controller_interaction"" name="XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_71" number="71" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_71_SPEC_VERSION"/> + <enum value=""XR_FB_extension_71"" name="XR_FB_extension_71_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_72" number="72" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_72_SPEC_VERSION"/> + <enum value=""XR_FB_extension_72"" name="XR_FB_extension_72_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_73" number="73" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_73_SPEC_VERSION"/> + <enum value=""XR_FB_extension_73"" name="XR_FB_extension_73_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_74" number="74" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_74_SPEC_VERSION"/> + <enum value=""XR_FB_extension_74"" name="XR_FB_extension_74_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_75" number="75" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_75_SPEC_VERSION"/> + <enum value=""XR_FB_extension_75"" name="XR_FB_extension_75_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_76" number="76" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_76_SPEC_VERSION"/> + <enum value=""XR_FB_extension_76"" name="XR_FB_extension_76_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_77" number="77" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_77_SPEC_VERSION"/> + <enum value=""XR_FB_extension_77"" name="XR_FB_extension_77_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_78" number="78" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_78_SPEC_VERSION"/> + <enum value=""XR_FB_extension_78"" name="XR_FB_extension_78_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_79" number="79" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_79_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_79"" name="XR_VALVE_extension_79_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_analog_threshold" number="80" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_VALVE_analog_threshold_SPEC_VERSION"/> + <enum value=""XR_VALVE_analog_threshold"" name="XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE"/> + <type name="XrInteractionProfileAnalogThresholdVALVE"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_81" number="81" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_81_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_81"" name="XR_VALVE_extension_81_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_82" number="82" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_82_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_82"" name="XR_VALVE_extension_82_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_83" number="83" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_83_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_83"" name="XR_VALVE_extension_83_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_84" number="84" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_84_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_84"" name="XR_VALVE_extension_84_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_85" number="85" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_85_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_85"" name="XR_VALVE_extension_85_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_86" number="86" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_86_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_86"" name="XR_VALVE_extension_86_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_87" number="87" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_87_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_87"" name="XR_VALVE_extension_87_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_VALVE_extension_88" number="88" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_VALVE_extension_88_SPEC_VERSION"/> + <enum value=""XR_VALVE_extension_88"" name="XR_VALVE_extension_88_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_KHR_loader_init" number="89" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_KHR_loader_init_SPEC_VERSION"/> + <enum value=""XR_KHR_loader_init"" name="XR_KHR_LOADER_INIT_EXTENSION_NAME"/> + <type name="XrLoaderInitInfoBaseHeaderKHR"/> + <command name="xrInitializeLoaderKHR"/> + </require> + </extension> + + <extension name="XR_KHR_loader_init_android" number="90" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_loader_init"> + <require> + <enum value="1" name="XR_KHR_loader_init_android_SPEC_VERSION"/> + <enum value=""XR_KHR_loader_init_android"" name="XR_KHR_LOADER_INIT_ANDROID_EXTENSION_NAME"/> + <type name="XrLoaderInitInfoAndroidKHR"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR"/> + </require> + </extension> + + <extension name="XR_KHR_vulkan_enable2" number="91" type="instance" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr"> + <require> + <enum value="1" name="XR_KHR_vulkan_enable2_SPEC_VERSION"/> + <enum value=""XR_KHR_vulkan_enable2"" name="XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR"/> + <enum offset="3" extends="XrStructureType" name="XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR"/> + <enum extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR" alias="XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR"/> + <enum extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR" alias="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR"/> + <enum extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR" alias="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR"/> + <type name="XrVulkanInstanceCreateInfoKHR"/> + <type name="XrVulkanDeviceCreateInfoKHR"/> + <type name="XrGraphicsBindingVulkan2KHR"/> + <type name="XrVulkanGraphicsDeviceGetInfoKHR"/> + <type name="XrSwapchainImageVulkan2KHR"/> + <type name="XrGraphicsRequirementsVulkan2KHR"/> + <command name="xrCreateVulkanInstanceKHR"/> + <command name="xrCreateVulkanDeviceKHR"/> + <command name="xrGetVulkanGraphicsDevice2KHR"/> + <command name="xrGetVulkanGraphicsRequirements2KHR"/> + </require> + </extension> + + <extension name="XR_KHR_composition_layer_equirect2" number="92" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_KHR_composition_layer_equirect2_SPEC_VERSION"/> + <enum value=""XR_KHR_composition_layer_equirect2"" name="XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME"/> + <type name="XrCompositionLayerEquirect2KHR"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR"/> + </require> + </extension> + + <extension name="XR_EXT_extension_93" number="93" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_EXT_extension_93_SPEC_VERSION"/> + <enum value=""XR_EXT_extension_93"" name="XR_EXT_extension_93_EXTENSION_NAME"/> + </require> + </extension> + <extension name="XR_EXT_extension_94" number="94" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_EXT_extension_94_SPEC_VERSION"/> + <enum value=""XR_EXT_extension_94"" name="XR_EXT_extension_94_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_EXT_samsung_odyssey_controller" number="95" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_samsung_odyssey_controller_SPEC_VERSION"/> + <enum value=""XR_EXT_samsung_odyssey_controller"" name="XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_EXT_hp_mixed_reality_controller" number="96" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_EXT_hp_mixed_reality_controller_SPEC_VERSION"/> + <enum value=""XR_EXT_hp_mixed_reality_controller"" name="XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_MND_swapchain_usage_input_attachment_bit" number="97" type="instance" supported="openxr"> + <require> + <enum value="2" name="XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION"/> + <enum value=""XR_MND_swapchain_usage_input_attachment_bit"" name="XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME"/> + <enum bitpos="7" extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image can: be used as a input attachment."/> + </require> + </extension> + + <extension name="XR_MSFT_extension_98" number="98" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_98_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_98"" name="XR_MSFT_extension_98_EXTENSION_NAME"/> + </require> + </extension> + <extension name="XR_MSFT_extension_99" number="99" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_99_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_99"" name="XR_MSFT_extension_99_EXTENSION_NAME"/> + </require> + </extension> + <extension name="XR_MSFT_extension_100" number="100" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_100_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_100"" name="XR_MSFT_extension_100_EXTENSION_NAME"/> + </require> + </extension> + <extension name="XR_MSFT_extension_101" number="101" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_MSFT_extension_101_SPEC_VERSION"/> + <enum value=""XR_MSFT_extension_101"" name="XR_MSFT_extension_101_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_display_refresh_rate" number="102" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_FB_display_refresh_rate_SPEC_VERSION"/> + <enum value=""XR_FB_display_refresh_rate"" name="XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME"/> + + <type name="XrEventDataDisplayRefreshRateChangedFB"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB"/> + + <command name="xrEnumerateDisplayRefreshRatesFB"/> + <command name="xrGetDisplayRefreshRateFB"/> + <command name="xrRequestDisplayRefreshRateFB"/> + <enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB" comment="The display refresh rate is not supported by the platform." /> + </require> + </extension> + + <extension name="XR_HTC_vive_cosmos_controller_interaction" number="103" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION"/> + <enum value=""XR_HTC_vive_cosmos_controller_interaction"" name="XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_HTC_extension_104" number="104" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_HTC_extension_104_SPEC_VERSION"/> + <enum value=""XR_HTC_extension_104"" name="XR_HTC_extension_104_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_HTC_extension_105" number="105" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_HTC_extension_105_SPEC_VERSION"/> + <enum value=""XR_HTC_extension_105"" name="XR_HTC_extension_105_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_HTC_extension_106" number="106" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_HTC_extension_106_SPEC_VERSION"/> + <enum value=""XR_HTC_extension_106"" name="XR_HTC_extension_106_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_HTC_extension_107" number="107" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_HTC_extension_107_SPEC_VERSION"/> + <enum value=""XR_HTC_extension_107"" name="XR_HTC_extension_107_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_HTC_extension_108" number="108" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_HTC_extension_108_SPEC_VERSION"/> + <enum value=""XR_HTC_extension_108"" name="XR_HTC_extension_108_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_color_space" number="109" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_FB_color_space_SPEC_VERSION"/> + <enum value=""XR_FB_color_space"" name="XR_FB_COLOR_SPACE_EXTENSION_NAME"/> + + <type name="XrColorSpaceFB"/> + <type name="XrSystemColorSpacePropertiesFB"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB"/> + + <command name="xrEnumerateColorSpacesFB"/> + <command name="xrSetColorSpaceFB"/> + <enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB" comment="The color space is not supported by the runtime." /> + </require> + </extension> + + <extension name="XR_FB_extension_110" number="110" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_110_SPEC_VERSION"/> + <enum value=""XR_FB_extension_110"" name="XR_FB_extension_110_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_111" number="111" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_111_SPEC_VERSION"/> + <enum value=""XR_FB_extension_111"" name="XR_FB_extension_111_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_112" number="112" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_112_SPEC_VERSION"/> + <enum value=""XR_FB_extension_112"" name="XR_FB_extension_112_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_113" number="113" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_113_SPEC_VERSION"/> + <enum value=""XR_FB_extension_113"" name="XR_FB_extension_113_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_114" number="114" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_114_SPEC_VERSION"/> + <enum value=""XR_FB_extension_114"" name="XR_FB_extension_114_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_115" number="115" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_115_SPEC_VERSION"/> + <enum value=""XR_FB_extension_115"" name="XR_FB_extension_115_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_116" number="116" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_116_SPEC_VERSION"/> + <enum value=""XR_FB_extension_116"" name="XR_FB_extension_116_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_117" number="117" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_117_SPEC_VERSION"/> + <enum value=""XR_FB_extension_117"" name="XR_FB_extension_117_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_118" number="118" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_118_SPEC_VERSION"/> + <enum value=""XR_FB_extension_118"" name="XR_FB_extension_118_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_119" number="119" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_119_SPEC_VERSION"/> + <enum value=""XR_FB_extension_119"" name="XR_FB_extension_119_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_FB_extension_120" number="120" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_FB_extension_120_SPEC_VERSION"/> + <enum value=""XR_FB_extension_120"" name="XR_FB_extension_120_EXTENSION_NAME"/> + </require> + </extension> + <extension name="XR_KHR_binding_modification" number="121" type="instance" supported="openxr"> + <require> + <enum value="1" name="XR_KHR_binding_modification_SPEC_VERSION"/> + <enum value=""XR_KHR_binding_modification"" name="XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_BINDING_MODIFICATIONS_KHR"/> + <type name="XrBindingModificationsKHR"/> + <type name="XrBindingModificationBaseHeaderKHR"/> + </require> + </extension> + </extensions> + +</registry> |