Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/Proton.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gofman <pgofman@codeweavers.com>2021-02-26 14:42:08 +0300
committerAndrew Eikum <aeikum@codeweavers.com>2021-03-31 22:08:10 +0300
commite70629c08d0ebb8fa4635e386bec7f2ac252087b (patch)
tree41697d3a0d9224c4cac3e76e47d13c3ee7d5dc0c /wineopenxr
parentf5383fe715476f3600c004a8055542a5c332942f (diff)
wineopenxr: Update to 1.0.13 registry version.
Diffstat (limited to 'wineopenxr')
-rwxr-xr-xwineopenxr/make_openxr5
-rw-r--r--wineopenxr/openxr_thunks.c72
-rw-r--r--wineopenxr/openxr_thunks.h20
-rw-r--r--wineopenxr/wineopenxr.h843
-rw-r--r--wineopenxr/xr.xml3684
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) &amp; 0xffffULL) &lt;&lt; 48) | (((minor) &amp; 0xffffULL) &lt;&lt; 32) | ((patch) &amp; 0xffffffffULL))</type>
+ <type category="define">#define <name>XR_VERSION_MAJOR</name>(version) (uint16_t)(((uint64_t)(version) &gt;&gt; 48)&amp; 0xffffULL)</type>
+ <type category="define">#define <name>XR_VERSION_MINOR</name>(version) (uint16_t)(((uint64_t)(version) &gt;&gt; 32) &amp; 0xffffULL)</type>
+ <type category="define">#define <name>XR_VERSION_PATCH</name>(version) (uint32_t)((uint64_t)(version) &amp; 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__) &amp;&amp; (__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) &amp;&amp; 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) &gt;= 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) &lt; 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 &lt;&lt;session_running, is already running&gt;&gt;."/>
+ <enum value="-16" name="XR_ERROR_SESSION_NOT_RUNNING" comment="The session &lt;&lt;session_not_running, is not yet running&gt;&gt;."/>
+ <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="&quot;XR_KHR_android_thread_settings&quot;" 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="&quot;XR_KHR_android_surface_swapchain&quot;" 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="&quot;XR_KHR_composition_layer_cube&quot;" 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="&quot;XR_KHR_android_create_instance&quot;" 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="&quot;XR_KHR_composition_layer_depth&quot;" 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="&quot;XR_KHR_headless&quot;" 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="&quot;XR_KHR_vulkan_swapchain_format_list&quot;" 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="&quot;XR_EXT_performance_settings&quot;" 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="&quot;XR_EXT_thermal_query&quot;" 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="&quot;XR_KHR_composition_layer_cylinder&quot;" 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="&quot;XR_KHR_composition_layer_equirect&quot;" 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="&quot;XR_EXT_debug_utils&quot;" 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="&quot;XR_KHR_variable_rate_rendering&quot;" 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="&quot;XR_KHR_overlays&quot;" 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="&quot;XR_KHR_opengl_enable&quot;" 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="&quot;XR_KHR_opengl_es_enable&quot;" 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="&quot;XR_KHR_vulkan_enable&quot;" 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="&quot;XR_KHR_D3D10_enable_obsolete&quot;" 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="&quot;XR_KHR_D3D11_enable&quot;" 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="&quot;XR_KHR_D3D12_enable&quot;" 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="&quot;XR_KHR_metal_enable&quot;" 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="&quot;XR_EXT_eye_gaze_interaction&quot;" 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="&quot;XR_KHR_visibility_mask&quot;" 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="&quot;XR_EXT_permissions_support&quot;" 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="&quot;XR_EXTX_overlay&quot;" 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="&quot;XR_KHR_composition_layer_color_scale_bias&quot;" 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="&quot;XR_KHR_win32_convert_performance_counter_time&quot;" 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="&quot;XR_KHR_convert_timespec_time&quot;" 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="&quot;XR_VARJO_quad_views&quot;" 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="&quot;XR_MSFT_unbounded_reference_space&quot;" 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="&quot;XR_MSFT_spatial_anchor&quot;" 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="&quot;XR_OCULUS_extension_41&quot;" 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="&quot;XR_OCULUS_extension_42&quot;" 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="&quot;XR_MND_headless&quot;" 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="&quot;XR_OCULUS_extension_44&quot;" 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="&quot;XR_OCULUS_android_session_state_enable&quot;" 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="&quot;XR_MND_extension_46&quot;" 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="&quot;XR_EXT_view_configuration_depth_range&quot;" 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="&quot;XR_EXT_conformance_automation&quot;" 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="&quot;XR_MNDX_egl_enable&quot;" 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="&quot;XR_MSFT_spatial_graph_bridge&quot;" 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="&quot;XR_MSFT_hand_interaction&quot;" 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="&quot;XR_EXT_hand_tracking&quot;" 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="&quot;XR_MSFT_hand_tracking_mesh&quot;" 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="&quot;XR_MSFT_secondary_view_configuration&quot;" 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="&quot;XR_MSFT_first_person_observer&quot;" 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="&quot;XR_MSFT_controller_model&quot;" 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="&quot;XR_MSFT_perception_anchor_interop&quot;" 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="&quot;XR_EXT_win32_appcontainer_compatible&quot;" 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="&quot;XR_MAGICLEAP_extension_59&quot;" 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="&quot;XR_EPIC_view_configuration_fov&quot;" 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="&quot;XR_MSFT_extension_63&quot;" 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="&quot;XR_MSFT_holographic_window_attachment&quot;" 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="&quot;XR_MSFT_extension_65&quot;" 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="&quot;XR_MSFT_extension_66&quot;" 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="&quot;XR_MSFT_extension_67&quot;" 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="&quot;XR_LUNARG_extension_68&quot;" 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="&quot;XR_LUNARG_extension_69&quot;" 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="&quot;XR_HUAWEI_controller_interaction&quot;" 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="&quot;XR_FB_extension_71&quot;" 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="&quot;XR_FB_extension_72&quot;" 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="&quot;XR_FB_extension_73&quot;" 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="&quot;XR_FB_extension_74&quot;" 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="&quot;XR_FB_extension_75&quot;" 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="&quot;XR_FB_extension_76&quot;" 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="&quot;XR_FB_extension_77&quot;" 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="&quot;XR_FB_extension_78&quot;" 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="&quot;XR_VALVE_extension_79&quot;" 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="&quot;XR_VALVE_analog_threshold&quot;" 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="&quot;XR_VALVE_extension_81&quot;" 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="&quot;XR_VALVE_extension_82&quot;" 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="&quot;XR_VALVE_extension_83&quot;" 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="&quot;XR_VALVE_extension_84&quot;" 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="&quot;XR_VALVE_extension_85&quot;" 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="&quot;XR_VALVE_extension_86&quot;" 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="&quot;XR_VALVE_extension_87&quot;" 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="&quot;XR_VALVE_extension_88&quot;" 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="&quot;XR_KHR_loader_init&quot;" 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="&quot;XR_KHR_loader_init_android&quot;" 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="&quot;XR_KHR_vulkan_enable2&quot;" 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="&quot;XR_KHR_composition_layer_equirect2&quot;" 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="&quot;XR_EXT_extension_93&quot;" 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="&quot;XR_EXT_extension_94&quot;" 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="&quot;XR_EXT_samsung_odyssey_controller&quot;" 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="&quot;XR_EXT_hp_mixed_reality_controller&quot;" 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="&quot;XR_MND_swapchain_usage_input_attachment_bit&quot;" 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="&quot;XR_MSFT_extension_98&quot;" 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="&quot;XR_MSFT_extension_99&quot;" 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="&quot;XR_MSFT_extension_100&quot;" 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="&quot;XR_MSFT_extension_101&quot;" 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="&quot;XR_FB_display_refresh_rate&quot;" 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="&quot;XR_HTC_vive_cosmos_controller_interaction&quot;" 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="&quot;XR_HTC_extension_104&quot;" 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="&quot;XR_HTC_extension_105&quot;" 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="&quot;XR_HTC_extension_106&quot;" 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="&quot;XR_HTC_extension_107&quot;" 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="&quot;XR_HTC_extension_108&quot;" 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="&quot;XR_FB_color_space&quot;" 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="&quot;XR_FB_extension_110&quot;" 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="&quot;XR_FB_extension_111&quot;" 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="&quot;XR_FB_extension_112&quot;" 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="&quot;XR_FB_extension_113&quot;" 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="&quot;XR_FB_extension_114&quot;" 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="&quot;XR_FB_extension_115&quot;" 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="&quot;XR_FB_extension_116&quot;" 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="&quot;XR_FB_extension_117&quot;" 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="&quot;XR_FB_extension_118&quot;" 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="&quot;XR_FB_extension_119&quot;" 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="&quot;XR_FB_extension_120&quot;" 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="&quot;XR_KHR_binding_modification&quot;" 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>