Proton/wineopenxr/xr.xml
2023-06-05 17:55:10 +03:00

10302 lines
717 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<?xml-model href="registry.rnc" type="application/relax-ng-compact-syntax"?>
<?xml-model href="registry.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<registry>
<comment>
Copyright (c) 2017-2023, 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 USB vendor IDs -->
<vendorids>
<vendorid name="MND" id="0x10001" comment="Monado Project vendor ID"/>
<vendorid name="KHR" id="0x10002" 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="ACER" author="Acer" contact="OC Lin @aceroc"/>
<tag name="ALMALENCE" author="Almalence" contact="Ivan Chupakhin @ivan.chupakhin, Dmitry Shmunk @dmitry.shmunk"/>
<tag name="ARM" author="Arm Limited" contact="Andreas Loeve Selvik @selvik, Sam Martin @sammartin"/>
<tag name="BD" author="Bytedance" contact="Will Fu @willfu, Bangsen Han @Hansenn"/>
<tag name="COLLABORA" author="Collabora" contact="Ryan Pavlik @rpavlik"/>
<tag name="DANWILLM" author="Daniel Willmott" contact="Daniel Willmott @danwillm"/>
<tag name="EPIC" author="Epic" contact="Nick Whiting @whitingn"/>
<tag name="EXT" author="Multivendor" contact="Ryan Pavlik @rpavlik"/>
<tag name="FB" author="Facebook" contact="Cass Everitt @casseveritt, Jonathan Wright @Nelno"/>
<tag name="FREDEMMOTT" author="Frederick Emmott" contact="Frederick Emmott @fredemmott"/>
<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, Li jingya @yzljy"/>
<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="LOGITECH" author="Logitech" contact="Fabien Zellweger @fzellweger"/>
<tag name="META" author="Meta Platforms" contact="Cass Everitt @casseveritt, Jonathan Wright @Nelno"/>
<tag name="ML" author="Magic Leap" contact="Jey Michaelraj @jeymichael"/>
<tag name="MND" author="Monado Project" 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, Jonathan Wright @Nelno"/>
<tag name="OPPO" author="OPPO" contact="Buyi Xu @fantastxu, Haomiao Jiang @hjiang36"/>
<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="UNITY" author="Unity Technologies" contact="Jack Pritz @jackpritz, Peter Kuhn @peterunity"/>
<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="EGLenum"/>
<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="VkComponentSwizzle"/>
<type requires="vulkan/vulkan.h" name="VkDevice"/>
<type requires="vulkan/vulkan.h" name="VkDeviceCreateInfo"/>
<type requires="vulkan/vulkan.h" name="VkFilter"/>
<type requires="vulkan/vulkan.h" name="VkFormat"/>
<type requires="vulkan/vulkan.h" name="VkImage"/>
<type requires="vulkan/vulkan.h" name="VkImageCreateFlags"/>
<type requires="vulkan/vulkan.h" name="VkImageUsageFlags"/>
<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="vulkan/vulkan.h" name="VkSamplerAddressMode"/>
<type requires="vulkan/vulkan.h" name="VkSamplerMipmapMode"/>
<type requires="time.h" name="timespec"/>
<type requires="ml_coordinate_frame_uid.h" name="MLCoordinateFrameUID"/>
<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, 27)</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__ &gt; 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>
<type category="define">
#define <name>XR_MIN_COMPOSITION_LAYERS_SUPPORTED</name> 16</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>
<!-- XR_FB_render_model -->
<type category="define">
#define <name>XR_NULL_RENDER_MODEL_KEY_FB</name> 0</type>
<!-- XR_HTC_facial_tracking -->
<type category="define">
#define <name>XR_FACIAL_EXPRESSION_EYE_COUNT_HTC</name> 14</type>
<type category="define">
#define <name>XR_FACIAL_EXPRESSION_LIP_COUNT_HTC</name> 37</type>
<!-- XR_ULTRALEAP_hand_tracking_forearm -->
<type category="define">
#define <name>XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP</name> 27</type>
<!-- XR_FB_face_tracking -->
<type category="define">
#define <name>XR_FACE_EXPRESSSION_SET_DEFAULT_FB</name> XR_FACE_EXPRESSION_SET_DEFAULT_FB</type>
<!-- XR_FB_haptic_amplitude_envelope -->
<type category="define">
#define <name>XR_MAX_HAPTIC_AMPLITUDE_ENVELOPE_SAMPLES_FB</name> 4000u</type>
<!-- XR_FB_haptic_pcm -->
<type category="define">
#define <name>XR_MAX_HAPTIC_PCM_BUFFER_SIZE_FB</name> 4000</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>
<!-- XR_FB_spatial_entity_user -->
<type category="basetype">typedef <type>uint64_t</type> <name>XrSpaceUserIdFB</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>
<!-- XR_FB_spatial_entity -->
<type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrAsyncRequestIdFB</name>)</type>
<!-- XR_FB_render_model -->
<type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrRenderModelKeyFB</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="wchar_t"/>
<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="int16_t"/>
<type requires="openxr_platform_defines" name="uint16_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>
<!-- Bitmask types for XR_FB_android_surface_swapchain_create -->
<type bitvalues="XrAndroidSurfaceSwapchainFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrAndroidSurfaceSwapchainFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_composition_layer_image_layout -->
<type bitvalues="XrCompositionLayerImageLayoutFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerImageLayoutFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_composition_layer_secure_content -->
<type bitvalues="XrCompositionLayerSecureContentFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerSecureContentFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_foveation -->
<type bitvalues="XrSwapchainCreateFoveationFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainCreateFoveationFlagsFB</name>;</type>
<type bitvalues="XrSwapchainStateFoveationFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainStateFoveationFlagsFB</name>;</type>
<!-- Bitmask types for XR_META_foveation_eye_tracked -->
<type bitvalues="XrFoveationEyeTrackedProfileCreateFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrFoveationEyeTrackedProfileCreateFlagsMETA</name>;</type>
<type bitvalues="XrFoveationEyeTrackedStateFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrFoveationEyeTrackedStateFlagsMETA</name>;</type>
<!-- Bitmask types for XR_FB_triangle_mesh -->
<type bitvalues="XrTriangleMeshFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrTriangleMeshFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_passthrough -->
<type bitvalues="XrPassthroughFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrPassthroughFlagsFB</name>;</type>
<type bitvalues="XrPassthroughStateChangedFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrPassthroughStateChangedFlagsFB</name>;</type>
<type bitvalues="XrPassthroughCapabilityFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrPassthroughCapabilityFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_hand_tracking_aim -->
<type bitvalues="XrHandTrackingAimFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrHandTrackingAimFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_keyboard_tracking -->
<type bitvalues="XrKeyboardTrackingFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrKeyboardTrackingFlagsFB</name>;</type>
<type bitvalues="XrKeyboardTrackingQueryFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrKeyboardTrackingQueryFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_space_warp -->
<type bitvalues="XrCompositionLayerSpaceWarpInfoFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerSpaceWarpInfoFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_render_model -->
<type bitvalues="XrRenderModelFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrRenderModelFlagsFB</name>;</type>
<!-- Bitmask types for XR_ALMALENCE_digital_lens_control -->
<type bitvalues="XrDigitalLensControlFlagBitsALMALENCE" category="bitmask">typedef <type>XrFlags64</type> <name>XrDigitalLensControlFlagsALMALENCE</name>;</type>
<!-- Bitmask types for XR_FB_composition_layer_settings -->
<type bitvalues="XrCompositionLayerSettingsFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerSettingsFlagsFB</name>;</type>
<!-- Bitmask types for XR_OCULUS_external_camera -->
<type bitvalues="XrExternalCameraStatusFlagBitsOCULUS" category="bitmask">typedef <type>XrFlags64</type> <name>XrExternalCameraStatusFlagsOCULUS</name>;</type>
<!-- Bitmask types for XR_META_performance_metrics -->
<type bitvalues="XrPerformanceMetricsCounterFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrPerformanceMetricsCounterFlagsMETA</name>;</type>
<!-- Bitmask types for XR_HTC_foveation -->
<type bitvalues="XrFoveationDynamicFlagBitsHTC" category="bitmask">typedef <type>XrFlags64</type> <name>XrFoveationDynamicFlagsHTC</name>;</type>
<!-- Bitmask types for XR_ML_frame_end_info -->
<type bitvalues="XrFrameEndInfoFlagBitsML" category="bitmask">typedef <type>XrFlags64</type> <name>XrFrameEndInfoFlagsML</name>;</type>
<!-- Bitmask types for XR_ML_global_dimmer -->
<type bitvalues="XrGlobalDimmerFrameEndInfoFlagBitsML" category="bitmask">typedef <type>XrFlags64</type> <name>XrGlobalDimmerFrameEndInfoFlagsML</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>
<!-- XR_FB_foveation -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrFoveationProfileFB</name>)</type>
<!-- XR_FB_triangle_mesh -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrTriangleMeshFB</name>)</type>
<!-- XR_FB_passthrough -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrPassthroughFB</name>)</type>
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrPassthroughLayerFB</name>)</type>
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrGeometryInstanceFB</name>)</type>
<!-- XR_HTC_facial_tracking -->
<type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrFacialTrackerHTC</name>)</type>
<!-- XR_HTC_passthrough -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrPassthroughHTC</name>)</type>
<!-- XR_FB_face_tracking -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrFaceTrackerFB</name>)</type>
<!-- XR_FB_body_tracking -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrBodyTrackerFB</name>)</type>
<!-- XR_FB_eye_tracking_social -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrEyeTrackerFB</name>)</type>
<!-- XR_FB_spatial_entity_user -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpaceUserFB</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"/>
<!-- flag bits for XR_KHR_vulkan_enable2 -->
<type name="XrVulkanInstanceCreateFlagBitsKHR" category="enum"/>
<type name="XrVulkanDeviceCreateFlagBitsKHR" category="enum"/>
<!-- flag bits for XR_EXT_debug_utils -->
<type name="XrDebugUtilsMessageSeverityFlagBitsEXT" category="enum"/>
<type name="XrDebugUtilsMessageTypeFlagBitsEXT" category="enum"/>
<!-- 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"/>
<!-- flag bits for XR_FB_android_surface_swapchain_create -->
<type name="XrAndroidSurfaceSwapchainFlagBitsFB" category="enum"/>
<!-- flag bits for XR_FB_composition_layer_image_layout -->
<type name="XrCompositionLayerImageLayoutFlagBitsFB" category="enum"/>
<!-- enums for XR_FB_composition_layer_alpha_blend -->
<type name="XrBlendFactorFB" category="enum"/>
<!-- flag bits for XR_FB_composition_layer_secure_content -->
<type name="XrCompositionLayerSecureContentFlagBitsFB" category="enum"/>
<!-- enums for XR_FB_spatial_entity -->
<type name="XrSpaceComponentTypeFB" category="enum"/>
<!-- flag bits for XR_FB_foveation -->
<type name="XrSwapchainCreateFoveationFlagBitsFB" category="enum"/>
<type name="XrSwapchainStateFoveationFlagBitsFB" category="enum"/>
<!-- flag bits for XR_META_foveation_eye_tracked -->
<type name="XrFoveationEyeTrackedProfileCreateFlagBitsMETA" category="enum"/>
<type name="XrFoveationEyeTrackedStateFlagBitsMETA" category="enum"/>
<!-- enums and flag bits for XR_FB_triangle_mesh -->
<type name="XrTriangleMeshFlagBitsFB" category="enum"/>
<type name="XrWindingOrderFB" category="enum"/>
<!-- enums and flag bits for XR_FB_passthrough -->
<type name="XrPassthroughFlagBitsFB" category="enum"/>
<type name="XrPassthroughLayerPurposeFB" category="enum"/>
<type name="XrPassthroughStateChangedFlagBitsFB" category="enum"/>
<type name="XrPassthroughCapabilityFlagBitsFB" category="enum"/>
<!-- flag bits for XR_FB_space_warp -->
<type name="XrCompositionLayerSpaceWarpInfoFlagBitsFB" category="enum"/>
<!-- flag bits for XR_FB_render_model -->
<type name="XrRenderModelFlagBitsFB" category="enum"/>
<!-- enums for XR_FB_spatial_entity_query -->
<type name="XrSpaceQueryActionFB" category="enum"/>
<!-- enums for XR_FB_spatial_entity_storage -->
<type name="XrSpaceStorageLocationFB" category="enum"/>
<type name="XrSpacePersistenceModeFB" category="enum"/>
<!-- flag bits for XR_FB_hand_tracking_aim -->
<type name="XrHandTrackingAimFlagBitsFB" category="enum"/>
<!-- flag bits for XR_FB_keyboard_tracking -->
<type name="XrKeyboardTrackingFlagBitsFB" category="enum"/>
<type name="XrKeyboardTrackingQueryFlagBitsFB" category="enum"/>
<!-- flag bits for XR_ALMALENCE_digital_lens_control -->
<type name="XrDigitalLensControlFlagBitsALMALENCE" category="enum"/>
<!-- flag bits for XR_FB_composition_layer_settings -->
<type name="XrCompositionLayerSettingsFlagBitsFB" category="enum"/>
<!-- enum and flag bits for XR_OCULUS_external_camera -->
<type name="XrExternalCameraStatusFlagBitsOCULUS" category="enum"/>
<type name="XrExternalCameraAttachedToDeviceOCULUS" category="enum"/>
<!-- enum and flag bits for XR_META_performance_metrics -->
<type name="XrPerformanceMetricsCounterFlagBitsMETA" category="enum"/>
<type name="XrPerformanceMetricsCounterUnitMETA" category="enum"/>
<!-- XR_HTC_facial_tracking -->
<type name="XrFacialTrackingTypeHTC" category="enum"/>
<type name="XrEyeExpressionHTC" category="enum"/>
<type name="XrLipExpressionHTC" category="enum"/>
<!-- enum for XR_HTC_passthrough -->
<type name="XrPassthroughFormHTC" category="enum"/>
<!-- enums for XR_HTC_foveation -->
<type name="XrFoveationModeHTC" category="enum"/>
<type name="XrFoveationDynamicFlagBitsHTC" category="enum"/>
<type name="XrFoveationLevelHTC" category="enum"/>
<!-- XR_META_local_dimming -->
<type name="XrLocalDimmingModeMETA" category="enum"/>
<!-- enums for XR_FB_face_tracking -->
<type name="XrFaceExpressionFB" category="enum"/>
<type name="XrFaceExpressionSetFB" category="enum"/>
<type name="XrFaceConfidenceFB" category="enum"/>
<!-- enums for XR_FB_body_tracking -->
<type name="XrBodyJointFB" category="enum"/>
<type name="XrBodyJointSetFB" category="enum"/>
<!-- enum for XR_ML_frame_end_info -->
<type name="XrFrameEndInfoFlagBitsML" category="enum"/>
<!-- enums for XR_FB_eye_tracking_social -->
<type category="enum" name="XrEyePositionFB"/>
<!-- enums for XR_ML_global_dimmer -->
<type name="XrGlobalDimmerFrameEndInfoFlagBitsML" category="enum"/>
<!-- enums for XR_QCOM_tracking_optimization_settings extension -->
<type name="XrTrackingOptimizationSettingsDomainQCOM" category="enum"/>
<type name="XrTrackingOptimizationSettingsHintQCOM" category="enum"/>
<!-- XR_MNDX_force_feedback_curl -->
<type name="XrForceFeedbackCurlLocationMNDX" 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" returnedonly="true">
<member><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSwapchainImageOpenGLKHR" parentstruct="XrSwapchainImageBaseHeader" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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>
</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>
<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>
</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" returnedonly="true"> <!-- 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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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" returnedonly="true">
<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 optional="true"><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 optional="true">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 optional="true"><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 optional="true">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_META_vulkan_swapchain_create_info structs -->
<type category="struct" name="XrVulkanSwapchainCreateInfoMETA" structextends="XrSwapchainCreateInfo">
<member values="XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>VkImageCreateFlags</type> <name>additionalCreateFlags</name></member>
<member><type>VkImageUsageFlags</type> <name>additionalUsageFlags</name></member>
</type>
<!-- 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" returnedonly="true">
<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" returnedonly="true">
<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_EXT_dpad_binding -->
<type category="struct" name="XrInteractionProfileDpadBindingEXT" parentstruct="XrBindingModificationBaseHeaderKHR">
<member values="XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPath</type> <name>binding</name></member>
<member><type>XrActionSet</type> <name>actionSet</name></member>
<member><type>float</type> <name>forceThreshold</name></member>
<member><type>float</type> <name>forceThresholdReleased</name></member>
<member><type>float</type> <name>centerRegion</name></member>
<member><type>float</type> <name>wedgeAngle</name></member>
<member><type>XrBool32</type> <name>isSticky</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_VALVE_analog_threshold -->
<type category="struct" name="XrInteractionProfileAnalogThresholdVALVE" parentstruct="XrBindingModificationBaseHeaderKHR">
<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" returnedonly="true" 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_FB_composition_layer_image_layout -->
<type category="struct" name="XrCompositionLayerImageLayoutFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerImageLayoutFlagsFB</type> <name>flags</name></member>
</type>
<!-- types for XR_FB_composition_layer_alpha_blend -->
<type category="struct" name="XrCompositionLayerAlphaBlendFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBlendFactorFB</type> <name>srcFactorColor</name></member>
<member><type>XrBlendFactorFB</type> <name>dstFactorColor</name></member>
<member><type>XrBlendFactorFB</type> <name>srcFactorAlpha</name></member>
<member><type>XrBlendFactorFB</type> <name>dstFactorAlpha</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="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialGraphNodeBindingMSFT</name>)</type>
<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>[XR_GUID_SIZE_MSFT]</member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrSpatialGraphStaticNodeBindingCreateInfoMSFT">
<member values="XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_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>poseInSpace</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrSpatialGraphNodeBindingPropertiesGetInfoMSFT">
<member values="XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSpatialGraphNodeBindingPropertiesMSFT">
<member values="XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint8_t</type> <name>nodeId</name>[XR_GUID_SIZE_MSFT]</member>
<member><type>XrPosef</type> <name>poseInNodeSpace</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" returnedonly="true" 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>
<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 optional="true"><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_FB_face_tracking structs -->
<type category="struct" name="XrSystemFaceTrackingPropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsFaceTracking</name></member>
</type>
<type category="struct" name="XrFaceTrackerCreateInfoFB">
<member values="XR_TYPE_FACE_TRACKER_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFaceExpressionSetFB</type> <name>faceExpressionSet</name></member>
</type>
<type category="struct" name="XrFaceExpressionInfoFB">
<member values="XR_TYPE_FACE_EXPRESSION_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrFaceExpressionStatusFB">
<member><type>XrBool32</type> <name>isValid</name></member>
<member><type>XrBool32</type> <name>isEyeFollowingBlendshapesValid</name></member>
</type>
<type category="struct" name="XrFaceExpressionWeightsFB">
<member values="XR_TYPE_FACE_EXPRESSION_WEIGHTS_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>weightCount</name></member>
<member len="weightCount"><type>float</type>* <name>weights</name></member>
<member><type>uint32_t</type> <name>confidenceCount</name></member>
<member len="confidenceCount"><type>float</type>* <name>confidences</name></member>
<member><type>XrFaceExpressionStatusFB</type> <name>status</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<!-- XR_FB_body_tracking structs -->
<type category="struct" name="XrSystemBodyTrackingPropertiesFB" structextends="XrSystemProperties" returnedonly="true">
<member values="XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsBodyTracking</name></member>
</type>
<type category="struct" name="XrBodyTrackerCreateInfoFB">
<member values="XR_TYPE_BODY_TRACKER_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBodyJointSetFB</type> <name>bodyJointSet</name></member>
</type>
<type category="struct" name="XrBodySkeletonJointFB">
<member><type>int32_t</type> <name>joint</name></member>
<member><type>int32_t</type> <name>parentJoint</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrBodySkeletonFB">
<member values="XR_TYPE_BODY_SKELETON_FB"><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>XrBodySkeletonJointFB</type>* <name>joints</name></member>
</type>
<type category="struct" name="XrBodyJointsLocateInfoFB">
<member values="XR_TYPE_BODY_JOINTS_LOCATE_INFO_FB"><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="XrBodyJointLocationFB">
<member><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrBodyJointLocationsFB">
<member values="XR_TYPE_BODY_JOINT_LOCATIONS_FB"><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>float</type> <name>confidence</name></member>
<member><type>uint32_t</type> <name>jointCount</name></member>
<member len="jointCount"><type>XrBodyJointLocationFB</type>* <name>jointLocations</name></member>
<member><type>uint32_t</type> <name>skeletonChangedCount</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<!-- XR_FB_eye_tracking_social structs -->
<type category="struct" name="XrSystemEyeTrackingPropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsEyeTracking</name></member>
</type>
<type category="struct" name="XrEyeTrackerCreateInfoFB">
<member values="XR_TYPE_EYE_TRACKER_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrEyeGazesInfoFB">
<member values="XR_TYPE_EYE_GAZES_INFO_FB"><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="XrEyeGazeFB">
<member><type>XrBool32</type> <name>isValid</name></member>
<member><type>XrPosef</type> <name>gazePose</name></member>
<member><type>float</type> <name>gazeConfidence</name></member>
</type>
<type category="struct" name="XrEyeGazesFB">
<member values="XR_TYPE_EYE_GAZES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrEyeGazeFB</type> <name>gaze</name>[XR_EYE_POSITION_COUNT_FB]</member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<!-- XR_EXT_controller_hand_joints_motion_range -->
<type name="XrHandJointsMotionRangeEXT" category="enum"/>
<type category="struct" name="XrHandJointsMotionRangeInfoEXT" structextends="XrHandJointsLocateInfoEXT">
<member values="XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrHandJointsMotionRangeEXT</type> <name>handJointsMotionRange</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" returnedonly="true" 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>
<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_FB_android_surface_swapchain_create -->
<type category="struct" name="XrAndroidSurfaceSwapchainCreateInfoFB" structextends="XrSwapchainCreateInfo" protect="XR_USE_PLATFORM_ANDROID">
<member values="XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAndroidSurfaceSwapchainFlagsFB</type> <name>createFlags</name></member>
</type>
<!-- XR_FB_swapchain_update_state structs -->
<type category="struct" name="XrSwapchainStateBaseHeaderFB">
<member><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<!-- XR_FB_swapchain_update_state_android_surface structs -->
<type category="struct" name="XrSwapchainStateAndroidSurfaceDimensionsFB" parentstruct="XrSwapchainStateBaseHeaderFB" protect="XR_USE_PLATFORM_ANDROID">
<member values="XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member>
</type>
<!-- XR_FB_swapchain_update_state_opengl_es structs -->
<type category="struct" name="XrSwapchainStateSamplerOpenGLESFB" parentstruct="XrSwapchainStateBaseHeaderFB" protect="XR_USE_GRAPHICS_API_OPENGL_ES">
<member values="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>EGLenum</type> <name>minFilter</name></member>
<member><type>EGLenum</type> <name>magFilter</name></member>
<member><type>EGLenum</type> <name>wrapModeS</name></member>
<member><type>EGLenum</type> <name>wrapModeT</name></member>
<member><type>EGLenum</type> <name>swizzleRed</name></member>
<member><type>EGLenum</type> <name>swizzleGreen</name></member>
<member><type>EGLenum</type> <name>swizzleBlue</name></member>
<member><type>EGLenum</type> <name>swizzleAlpha</name></member>
<member><type>float</type> <name>maxAnisotropy</name></member>
<member><type>XrColor4f</type> <name>borderColor</name></member>
</type>
<!-- XR_FB_swapchain_update_state_vulkan structs -->
<type category="struct" name="XrSwapchainStateSamplerVulkanFB" parentstruct="XrSwapchainStateBaseHeaderFB" protect="XR_USE_GRAPHICS_API_VULKAN">
<member values="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>VkFilter</type> <name>minFilter</name></member>
<member><type>VkFilter</type> <name>magFilter</name></member>
<member><type>VkSamplerMipmapMode</type> <name>mipmapMode</name></member>
<member><type>VkSamplerAddressMode</type> <name>wrapModeS</name></member>
<member><type>VkSamplerAddressMode</type> <name>wrapModeT</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleRed</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleGreen</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleBlue</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleAlpha</name></member>
<member><type>float</type> <name>maxAnisotropy</name></member>
<member><type>XrColor4f</type> <name>borderColor</name></member>
</type>
<!-- XR_FB_composition_layer_secure_content structs -->
<type category="struct" name="XrCompositionLayerSecureContentFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrCompositionLayerSecureContentFlagsFB</type> <name>flags</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_MSFT_scene_understanding -->
<type category="handle" parent="XrSession">
<type>XR_DEFINE_HANDLE</type>(<name>XrSceneObserverMSFT</name>)</type>
<type category="handle" parent="XrSceneObserverMSFT">
<type>XR_DEFINE_HANDLE</type>(<name>XrSceneMSFT</name>)</type>
<type name="XrSceneObjectTypeMSFT" category="enum"/>
<type name="XrScenePlaneAlignmentTypeMSFT" category="enum"/>
<type name="XrSceneComputeStateMSFT" category="enum"/>
<type name="XrSceneComputeFeatureMSFT" category="enum"/>
<type name="XrSceneComputeConsistencyMSFT" category="enum"/>
<type name="XrSceneComponentTypeMSFT" category="enum"/>
<type name="XrMeshComputeLodMSFT" category="enum"/>
<type category="struct" name="XrUuidMSFT">
<member><type>uint8_t</type> <name>bytes</name>[16]</member>
</type>
<type category="struct" name="XrSceneObserverCreateInfoMSFT">
<member values="XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSceneCreateInfoMSFT">
<member values="XR_TYPE_SCENE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrNewSceneComputeInfoMSFT">
<member values="XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>requestedFeatureCount</name></member>
<member len="requestedFeatureCount">const <type>XrSceneComputeFeatureMSFT</type>* <name>requestedFeatures</name></member>
<member><type>XrSceneComputeConsistencyMSFT</type> <name>consistency</name></member>
<member><type>XrSceneBoundsMSFT</type> <name>bounds</name></member>
</type>
<type category="struct" name="XrVisualMeshComputeLodInfoMSFT" structextends="XrNewSceneComputeInfoMSFT">
<member values="XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMeshComputeLodMSFT</type> <name>lod</name></member>
</type>
<type category="struct" name="XrSceneSphereBoundMSFT">
<member><type>XrVector3f</type> <name>center</name></member>
<member><type>float</type> <name>radius</name></member>
</type>
<type category="struct" name="XrSceneOrientedBoxBoundMSFT">
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrVector3f</type> <name>extents</name></member>
</type>
<type category="struct" name="XrSceneFrustumBoundMSFT">
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
<member><type>float</type> <name>farDistance</name></member>
</type>
<type category="struct" name="XrSceneBoundsMSFT">
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrTime</type> <name>time</name></member>
<member optional="true"><type>uint32_t</type> <name>sphereCount</name></member>
<member optional="true" len="sphereCount">const <type>XrSceneSphereBoundMSFT</type>* <name>spheres</name></member>
<member optional="true"><type>uint32_t</type> <name>boxCount</name></member>
<member optional="true" len="boxCount">const <type>XrSceneOrientedBoxBoundMSFT</type>* <name>boxes</name></member>
<member optional="true"><type>uint32_t</type> <name>frustumCount</name></member>
<member optional="true" len="frustumCount">const <type>XrSceneFrustumBoundMSFT</type>* <name>frustums</name></member>
</type>
<type category="struct" name="XrSceneComponentMSFT">
<member><type>XrSceneComponentTypeMSFT</type> <name>componentType</name></member>
<member><type>XrUuidMSFT</type> <name>id</name></member>
<member optional="true"><type>XrUuidMSFT</type> <name>parentId</name></member>
<member><type>XrTime</type> <name>updateTime</name></member>
</type>
<type category="struct" name="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_COMPONENTS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>componentCapacityInput</name></member>
<member><type>uint32_t</type> <name>componentCountOutput</name></member>
<member optional="true" len="componentCapacityInput"><type>XrSceneComponentMSFT</type>* <name>components</name></member>
</type>
<type category="struct" name="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSceneComponentTypeMSFT</type> <name>componentType</name></member>
</type>
<type category="struct" name="XrSceneComponentLocationMSFT">
<member optional="true"><type>XrSpaceLocationFlags</type> <name>flags</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrSceneComponentLocationsMSFT">
<member values="XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>locationCount</name></member>
<member optional="true" len="locationCount"><type>XrSceneComponentLocationMSFT</type>* <name>locations</name></member>
</type>
<type category="struct" name="XrSceneComponentsLocateInfoMSFT">
<member values="XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT"><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>
<member optional="true"><type>uint32_t</type> <name>componentIdCount</name></member>
<member optional="true" len="componentIdCount">const <type>XrUuidMSFT</type>* <name>componentIds</name></member>
</type>
<type category="struct" name="XrSceneObjectMSFT">
<member><type>XrSceneObjectTypeMSFT</type> <name>objectType</name></member>
</type>
<type category="struct" name="XrSceneObjectsMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_OBJECTS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>sceneObjectCount</name></member>
<member optional="true" len="sceneObjectCount"><type>XrSceneObjectMSFT</type>* <name>sceneObjects</name></member>
</type>
<type category="struct" name="XrSceneComponentParentFilterInfoMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrUuidMSFT</type> <name>parentId</name></member>
</type>
<type category="struct" name="XrSceneObjectTypesFilterInfoMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>objectTypeCount</name></member>
<member optional="true" len="objectTypeCount">const <type>XrSceneObjectTypeMSFT</type>* <name>objectTypes</name></member>
</type>
<type category="struct" name="XrScenePlaneMSFT">
<member><type>XrScenePlaneAlignmentTypeMSFT</type> <name>alignment</name></member>
<member><type>XrExtent2Df</type> <name>size</name></member>
<member><type>uint64_t</type> <name>meshBufferId</name></member>
<member><type>XrBool32</type> <name>supportsIndicesUint16</name></member>
</type>
<type category="struct" name="XrScenePlanesMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_PLANES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>scenePlaneCount</name></member>
<member optional="true" len="scenePlaneCount"><type>XrScenePlaneMSFT</type>* <name>scenePlanes</name></member>
</type>
<type category="struct" name="XrScenePlaneAlignmentFilterInfoMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>alignmentCount</name></member>
<member optional="true" len="alignmentCount">const <type>XrScenePlaneAlignmentTypeMSFT</type>* <name>alignments</name></member>
</type>
<type category="struct" name="XrSceneMeshMSFT">
<member><type>uint64_t</type> <name>meshBufferId</name></member>
<member><type>XrBool32</type> <name>supportsIndicesUint16</name></member>
</type>
<type category="struct" name="XrSceneMeshesMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_MESHES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>sceneMeshCount</name></member>
<member optional="true" len="sceneMeshCount"><type>XrSceneMeshMSFT</type>* <name>sceneMeshes</name></member>
</type>
<type category="struct" name="XrSceneMeshBuffersGetInfoMSFT">
<member values="XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint64_t</type> <name>meshBufferId</name></member>
</type>
<type category="struct" name="XrSceneMeshBuffersMSFT">
<member values="XR_TYPE_SCENE_MESH_BUFFERS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSceneMeshVertexBufferMSFT">
<member values="XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT"><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><type>uint32_t</type> <name>vertexCountOutput</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector3f</type>* <name>vertices</name></member>
</type>
<type category="struct" name="XrSceneMeshIndicesUint32MSFT">
<member values="XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCapacityInput</name></member>
<member><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="XrSceneMeshIndicesUint16MSFT">
<member values="XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCapacityInput</name></member>
<member><type>uint32_t</type> <name>indexCountOutput</name></member>
<member optional="true" len="indexCapacityInput"><type>uint16_t</type>* <name>indices</name></member>
</type>
<!-- XR_MSFT_scene_understanding_serialization -->
<type category="struct" name="XrSerializedSceneFragmentDataGetInfoMSFT">
<member values="XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrUuidMSFT</type> <name>sceneFragmentId</name></member>
</type>
<type category="struct" name="XrDeserializeSceneFragmentMSFT">
<member optional="true"><type>uint32_t</type> <name>bufferSize</name></member>
<member optional="true" len="bufferSize">const <type>uint8_t</type>* <name>buffer</name></member>
</type>
<type category="struct" name="XrSceneDeserializeInfoMSFT">
<member values="XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>fragmentCount</name></member>
<member optional="true" len="fragmentCount">const <type>XrDeserializeSceneFragmentMSFT</type>* <name>fragments</name></member>
</type>
<!-- XR_FB_color_space structs -->
<type name="XrColorSpaceFB" category="enum"/>
<type category="struct" name="XrSystemColorSpacePropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<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>
<!-- XR_FB_spatial_entity structs -->
<type category="struct" name="XrSystemSpatialEntityPropertiesFB" structextends="XrSystemProperties" returnedonly="true">
<member values="XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsSpatialEntity</name></member>
</type>
<type category="struct" name="XrSpatialAnchorCreateInfoFB">
<member values="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB"><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>poseInSpace</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrSpaceComponentStatusSetInfoFB">
<member values="XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpaceComponentTypeFB</type> <name>componentType</name></member>
<member><type>XrBool32</type> <name>enabled</name></member>
<member><type>XrDuration</type> <name>timeout</name></member>
</type>
<type category="struct" name="XrSpaceComponentStatusFB" returnedonly="true">
<member values="XR_TYPE_SPACE_COMPONENT_STATUS_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>enabled</name></member>
<member><type>XrBool32</type> <name>changePending</name></member>
</type>
<type category="struct" name="XrEventDataSpatialAnchorCreateCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrUuidEXT</type> <name>uuid</name></member>
</type>
<type category="struct" name="XrEventDataSpaceSetStatusCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrUuidEXT</type> <name>uuid</name></member>
<member><type>XrSpaceComponentTypeFB</type> <name>componentType</name></member>
<member><type>XrBool32</type> <name>enabled</name></member>
</type>
<!-- XR_FB_foveation structs -->
<type category="struct" name="XrFoveationProfileCreateInfoFB">
<member values="XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSwapchainCreateInfoFoveationFB" structextends="XrSwapchainCreateInfo">
<member values="XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSwapchainCreateFoveationFlagsFB</type> <name>flags</name></member>
</type>
<type category="struct" name="XrSwapchainStateFoveationFB" parentstruct="XrSwapchainStateBaseHeaderFB">
<member values="XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSwapchainStateFoveationFlagsFB</type> <name>flags</name></member>
<member><type>XrFoveationProfileFB</type> <name>profile</name></member>
</type>
<!-- XR_FB_foveation_vulkan structs -->
<type category="struct" name="XrSwapchainImageFoveationVulkanFB" structextends="XrSwapchainImageVulkanKHR" returnedonly="true">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>VkImage</type> <name>image</name></member>
<member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member>
</type>
<!-- XR_FB_foveation_configuration structs -->
<type name="XrFoveationLevelFB" category="enum"/>
<type name="XrFoveationDynamicFB" category="enum"/>
<type category="struct" name="XrFoveationLevelProfileCreateInfoFB" structextends="XrFoveationProfileCreateInfoFB">
<member values="XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrFoveationLevelFB</type> <name>level</name></member>
<member><type>float</type> <name>verticalOffset</name></member>
<member><type>XrFoveationDynamicFB</type> <name>dynamic</name></member>
</type>
<!-- XR_META_foveation_eye_tracked structs -->
<type category="struct" name="XrFoveationEyeTrackedProfileCreateInfoMETA" structextends="XrFoveationLevelProfileCreateInfoFB">
<member values="XR_TYPE_FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFoveationEyeTrackedProfileCreateFlagsMETA</type> <name>flags</name></member>
</type>
<type category="struct" name="XrFoveationEyeTrackedStateMETA" returnedonly="true">
<member values="XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrVector2f</type> <name>foveationCenter</name>[<enum>XR_FOVEATION_CENTER_SIZE_META</enum>]</member>
<member><type>XrFoveationEyeTrackedStateFlagsMETA</type> <name>flags</name></member>
</type>
<type category="struct" name="XrSystemFoveationEyeTrackedPropertiesMETA" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsFoveationEyeTracked</name></member>
</type>
<!-- XR_FB_hand_tracking_mesh structs -->
<type category="struct" name="XrVector4sFB">
<member><type>int16_t</type> <name>x</name></member>
<member><type>int16_t</type> <name>y</name></member>
<member><type>int16_t</type> <name>z</name></member>
<member><type>int16_t</type> <name>w</name></member>
</type>
<type category="struct" name="XrHandTrackingMeshFB">
<member values="XR_TYPE_HAND_TRACKING_MESH_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>jointCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>jointCountOutput</name></member>
<member optional="true" len="jointCapacityInput"><type>XrPosef</type>* <name>jointBindPoses</name></member>
<member optional="true" len="jointCapacityInput"><type>float</type>* <name>jointRadii</name></member>
<member optional="true" len="jointCapacityInput"><type>XrHandJointEXT</type>* <name>jointParents</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>XrVector3f</type>* <name>vertexPositions</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector3f</type>* <name>vertexNormals</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector2f</type>* <name>vertexUVs</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector4sFB</type>* <name>vertexBlendIndices</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector4f</type>* <name>vertexBlendWeights</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>int16_t</type>* <name>indices</name></member>
</type>
<type category="struct" name="XrHandTrackingScaleFB" returnedonly="true" structextends="XrHandJointLocationsEXT">
<member values="XR_TYPE_HAND_TRACKING_SCALE_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>float</type> <name>sensorOutput</name></member>
<member><type>float</type> <name>currentOutput</name></member>
<member><type>XrBool32</type> <name>overrideHandScale</name></member>
<member optional="true"><type>float</type> <name>overrideValueInput</name></member>
</type>
<!-- XR_FB_hand_tracking_aim structs -->
<type category="struct" name="XrHandTrackingAimStateFB" returnedonly="true" structextends="XrHandJointLocationsEXT">
<member values="XR_TYPE_HAND_TRACKING_AIM_STATE_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrHandTrackingAimFlagsFB</type> <name>status</name></member>
<member><type>XrPosef</type> <name>aimPose</name></member>
<member><type>float</type> <name>pinchStrengthIndex</name></member>
<member><type>float</type> <name>pinchStrengthMiddle</name></member>
<member><type>float</type> <name>pinchStrengthRing</name></member>
<member><type>float</type> <name>pinchStrengthLittle</name></member>
</type>
<!-- XR_FB_hand_tracking_capsules structs -->
<type category="struct" name="XrHandCapsuleFB" returnedonly="true">
<member><type>XrVector3f</type> <name>points</name>[<enum>XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB</enum>]</member>
<member><type>float</type> <name>radius</name></member>
<member><type>XrHandJointEXT</type> <name>joint</name></member>
</type>
<type category="struct" name="XrHandTrackingCapsulesStateFB" returnedonly="true" structextends="XrHandJointLocationsEXT">
<member values="XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrHandCapsuleFB</type> <name>capsules</name>[<enum>XR_HAND_TRACKING_CAPSULE_COUNT_FB</enum>]</member>
</type>
<!-- XR_FB_render_model structs -->
<type category="struct" name="XrRenderModelPathInfoFB">
<member values="XR_TYPE_RENDER_MODEL_PATH_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrPath</type> <name>path</name></member>
</type>
<type category="struct" name="XrRenderModelPropertiesFB">
<member values="XR_TYPE_RENDER_MODEL_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>vendorId</name></member>
<member><type>char</type> <name>modelName</name>[XR_MAX_RENDER_MODEL_NAME_SIZE_FB]</member>
<member><type>XrRenderModelKeyFB</type> <name>modelKey</name></member>
<member><type>uint32_t</type> <name>modelVersion</name></member>
<member><type>XrRenderModelFlagsFB</type> <name>flags</name></member>
</type>
<type category="struct" name="XrRenderModelBufferFB">
<member values="XR_TYPE_RENDER_MODEL_BUFFER_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>bufferCountOutput</name></member>
<member optional="true" len="bufferCapacityInput"><type>uint8_t</type>* <name>buffer</name></member>
</type>
<type category="struct" name="XrRenderModelLoadInfoFB">
<member values="XR_TYPE_RENDER_MODEL_LOAD_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrRenderModelKeyFB</type> <name>modelKey</name></member>
</type>
<type category="struct" name="XrSystemRenderModelPropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsRenderModelLoading</name></member>
</type>
<type category="struct" name="XrRenderModelCapabilitiesRequestFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrRenderModelFlagsFB</type> <name>flags</name></member>
</type>
<!-- XR_FB_spatial_entity_query structs -->
<type category="struct" name="XrSpaceQueryInfoBaseHeaderFB">
<member><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSpaceFilterInfoBaseHeaderFB">
<member><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSpaceQueryInfoFB" parentstruct="XrSpaceQueryInfoBaseHeaderFB">
<member values="XR_TYPE_SPACE_QUERY_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpaceQueryActionFB</type> <name>queryAction</name></member>
<member><type>uint32_t</type> <name>maxResultCount</name></member>
<member><type>XrDuration</type> <name>timeout</name></member>
<member optional="true">const <type>XrSpaceFilterInfoBaseHeaderFB</type>* <name>filter</name></member>
<member optional="true">const <type>XrSpaceFilterInfoBaseHeaderFB</type>* <name>excludeFilter</name></member>
</type>
<type category="struct" name="XrSpaceStorageLocationFilterInfoFB" structextends="XrSpaceFilterInfoBaseHeaderFB">
<member values="XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpaceStorageLocationFB</type> <name>location</name></member>
</type>
<type category="struct" name="XrSpaceUuidFilterInfoFB" parentstruct="XrSpaceFilterInfoBaseHeaderFB">
<member values="XR_TYPE_SPACE_UUID_FILTER_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>uuidCount</name></member>
<member len="uuidCount"><type>XrUuidEXT</type>* <name>uuids</name></member>
</type>
<type category="struct" name="XrSpaceComponentFilterInfoFB" parentstruct="XrSpaceFilterInfoBaseHeaderFB">
<member values="XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpaceComponentTypeFB</type> <name>componentType</name></member>
</type>
<type category="struct" name="XrSpaceQueryResultFB" returnedonly="true">
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrUuidEXT</type> <name>uuid</name></member>
</type>
<type category="struct" name="XrSpaceQueryResultsFB">
<member values="XR_TYPE_SPACE_QUERY_RESULTS_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>resultCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>resultCountOutput</name></member>
<member optional="true" len="resultCapacityInput"><type>XrSpaceQueryResultFB</type>* <name>results</name></member>
</type>
<type category="struct" name="XrEventDataSpaceQueryResultsAvailableFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
</type>
<type category="struct" name="XrEventDataSpaceQueryCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
</type>
<!-- XR_FB_spatial_entity_storage structs -->
<type category="struct" name="XrSpaceSaveInfoFB">
<member values="XR_TYPE_SPACE_SAVE_INFO_FB"><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>XrSpaceStorageLocationFB</type> <name>location</name></member>
<member><type>XrSpacePersistenceModeFB</type> <name>persistenceMode</name></member>
</type>
<type category="struct" name="XrSpaceEraseInfoFB">
<member values="XR_TYPE_SPACE_ERASE_INFO_FB"><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>XrSpaceStorageLocationFB</type> <name>location</name></member>
</type>
<type category="struct" name="XrEventDataSpaceSaveCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrUuidEXT</type> <name>uuid</name></member>
<member><type>XrSpaceStorageLocationFB</type> <name>location</name></member>
</type>
<type category="struct" name="XrEventDataSpaceEraseCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrUuidEXT</type> <name>uuid</name></member>
<member><type>XrSpaceStorageLocationFB</type> <name>location</name></member>
</type>
<!-- XR_FB_spatial_entity_sharing structs -->
<type category="struct" name="XrSpaceShareInfoFB">
<member values="XR_TYPE_SPACE_SHARE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>spaceCount</name></member>
<member len="spaceCount"><type>XrSpace</type>* <name>spaces</name></member>
<member><type>uint32_t</type> <name>userCount</name></member>
<member len="userCount"><type>XrSpaceUserFB</type>* <name>users</name></member>
</type>
<type category="struct" name="XrEventDataSpaceShareCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_SHARE_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
</type>
<!-- XR_FB_spatial_entity_storage_batch structs -->
<type category="struct" name="XrSpaceListSaveInfoFB">
<member values="XR_TYPE_SPACE_LIST_SAVE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>spaceCount</name></member>
<member len="spaceCount"><type>XrSpace</type>* <name>spaces</name></member>
<member><type>XrSpaceStorageLocationFB</type> <name>location</name></member>
</type>
<type category="struct" name="XrEventDataSpaceListSaveCompleteFB" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
</type>
<!-- XR_FB_spatial_entity_container structs -->
<type category="struct" name="XrSpaceContainerFB">
<member values="XR_TYPE_SPACE_CONTAINER_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>uuidCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>uuidCountOutput</name></member>
<member optional="true" len="uuidCapacityInput"><type>XrUuidEXT</type>* <name>uuids</name></member>
</type>
<!-- XR_FB_scene structs -->
<type category="struct" name="XrExtent3DfFB">
<member><type>float</type> <name>width</name></member>
<member><type>float</type> <name>height</name></member>
<member><type>float</type> <name>depth</name></member>
</type>
<type category="struct" name="XrOffset3DfFB">
<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="XrRect3DfFB">
<member><type>XrOffset3DfFB</type> <name>offset</name></member>
<member><type>XrExtent3DfFB</type> <name>extent</name></member>
</type>
<type category="struct" name="XrSemanticLabelsFB">
<member values="XR_TYPE_SEMANTIC_LABELS_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>bufferCountOutput</name></member>
<member optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></member>
</type>
<type category="struct" name="XrRoomLayoutFB">
<member values="XR_TYPE_ROOM_LAYOUT_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrUuidEXT</type> <name>floorUuid</name></member>
<member><type>XrUuidEXT</type> <name>ceilingUuid</name></member>
<member optional="true"><type>uint32_t</type> <name>wallUuidCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>wallUuidCountOutput</name></member>
<member optional="true" len="wallUuidCapacityInput"><type>XrUuidEXT</type>* <name>wallUuids</name></member>
</type>
<type category="struct" name="XrBoundary2DFB">
<member values="XR_TYPE_BOUNDARY_2D_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <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>
</type>
<!-- XR_FB_scene_capture structs -->
<type category="struct" name="XrSceneCaptureRequestInfoFB">
<member values="XR_TYPE_SCENE_CAPTURE_REQUEST_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>requestByteCount</name></member>
<member optional="true" len="requestByteCount">const <type>char</type>* <name>request</name></member>
</type>
<type category="struct" name="XrEventDataSceneCaptureCompleteFB">
<member values="XR_TYPE_EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAsyncRequestIdFB</type> <name>requestId</name></member>
<member><type>XrResult</type> <name>result</name></member>
</type>
<!-- XR_FB_keyboard_tracking structs -->
<type category="struct" name="XrSystemKeyboardTrackingPropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsKeyboardTracking</name></member>
</type>
<type category="struct" name="XrKeyboardTrackingDescriptionFB" returnedonly="true">
<member><type>uint64_t</type> <name>trackedKeyboardId</name></member>
<member><type>XrVector3f</type> <name>size</name></member>
<member><type>XrKeyboardTrackingFlagsFB</type> <name>flags</name></member>
<member><type>char</type> <name>name</name>[XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB]</member>
</type>
<type category="struct" name="XrKeyboardSpaceCreateInfoFB">
<member values="XR_TYPE_KEYBOARD_SPACE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint64_t</type> <name>trackedKeyboardId</name></member>
</type>
<type category="struct" name="XrKeyboardTrackingQueryFB">
<member values="XR_TYPE_KEYBOARD_TRACKING_QUERY_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrKeyboardTrackingQueryFlagsFB</type> <name>flags</name></member>
</type>
<!-- XR_VARJO_composition_layer_depth_test -->
<type category="struct" name="XrCompositionLayerDepthTestVARJO" structextends="XrCompositionLayerProjection">
<member values="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>depthTestRangeNearZ</name></member>
<member><type>float</type> <name>depthTestRangeFarZ</name></member>
</type>
<!-- XR_VARJO_foveated_rendering -->
<type category="struct" name="XrViewLocateFoveatedRenderingVARJO" structextends="XrViewLocateInfo">
<member values="XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>foveatedRenderingActive</name></member>
</type>
<type category="struct" name="XrFoveatedViewConfigurationViewVARJO" structextends="XrViewConfigurationView">
<member values="XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>foveatedRenderingActive</name></member>
</type>
<type category="struct" name="XrSystemFoveatedRenderingPropertiesVARJO" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsFoveatedRendering</name></member>
</type>
<!-- XR_MSFT_composition_layer_reprojection -->
<type name="XrReprojectionModeMSFT" category="enum"/>
<type category="struct" name="XrCompositionLayerReprojectionInfoMSFT" structextends="XrCompositionLayerProjection">
<member values="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrReprojectionModeMSFT</type> <name>reprojectionMode</name></member>
</type>
<type category="struct" name="XrCompositionLayerReprojectionPlaneOverrideMSFT" structextends="XrCompositionLayerProjection">
<member values="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVector3f</type> <name>position</name></member>
<member><type>XrVector3f</type> <name>normal</name></member>
<member><type>XrVector3f</type> <name>velocity</name></member>
</type>
<!-- XR_FB_triangle_mesh -->
<type category="struct" name="XrTriangleMeshCreateInfoFB">
<member values="XR_TYPE_TRIANGLE_MESH_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrTriangleMeshFlagsFB</type> <name>flags</name></member>
<member><type>XrWindingOrderFB</type> <name>windingOrder</name></member>
<member><type>uint32_t</type> <name>vertexCount</name></member>
<member optional="true" noautovalidity="true">const <type>XrVector3f</type>* <name>vertexBuffer</name></member>
<member><type>uint32_t</type> <name>triangleCount</name></member>
<member optional="true" noautovalidity="true">const <type>uint32_t</type>* <name>indexBuffer</name></member>
</type>
<!-- XR_FB_passthrough -->
<type category="struct" name="XrSystemPassthroughPropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsPassthrough</name></member>
</type>
<type category="struct" name="XrSystemPassthroughProperties2FB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES2_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughCapabilityFlagsFB</type> <name>capabilities</name></member>
</type>
<type category="struct" name="XrPassthroughCreateInfoFB">
<member values="XR_TYPE_PASSTHROUGH_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughFlagsFB</type> <name>flags</name></member>
</type>
<type category="struct" name="XrPassthroughLayerCreateInfoFB">
<member values="XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughFB</type> <name>passthrough</name></member>
<member><type>XrPassthroughFlagsFB</type> <name>flags</name></member>
<member><type>XrPassthroughLayerPurposeFB</type> <name>purpose</name></member>
</type>
<type category="struct" name="XrCompositionLayerPassthroughFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrCompositionLayerFlags</type> <name>flags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrPassthroughLayerFB</type> <name>layerHandle</name></member>
</type>
<type category="struct" name="XrGeometryInstanceCreateInfoFB">
<member values="XR_TYPE_GEOMETRY_INSTANCE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughLayerFB</type> <name>layer</name></member>
<member><type>XrTriangleMeshFB</type> <name>mesh</name></member>
<member><type>XrSpace</type> <name>baseSpace</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrVector3f</type> <name>scale</name></member>
</type>
<type category="struct" name="XrGeometryInstanceTransformFB">
<member values="XR_TYPE_GEOMETRY_INSTANCE_TRANSFORM_FB"><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>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrVector3f</type> <name>scale</name></member>
</type>
<type category="struct" name="XrPassthroughStyleFB">
<member values="XR_TYPE_PASSTHROUGH_STYLE_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>textureOpacityFactor</name></member>
<member><type>XrColor4f</type> <name>edgeColor</name></member>
</type>
<type category="struct" name="XrPassthroughColorMapMonoToRgbaFB" structextends="XrPassthroughStyleFB">
<member values="XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrColor4f</type> <name>textureColorMap</name>[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB]</member>
</type>
<type category="struct" name="XrPassthroughColorMapMonoToMonoFB" structextends="XrPassthroughStyleFB">
<member values="XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint8_t</type> <name>textureColorMap</name>[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB]</member>
</type>
<type category="struct" name="XrPassthroughBrightnessContrastSaturationFB" structextends="XrPassthroughStyleFB">
<member values="XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>brightness</name></member>
<member><type>float</type> <name>contrast</name></member>
<member><type>float</type> <name>saturation</name></member>
</type>
<type category="struct" name="XrEventDataPassthroughStateChangedFB">
<member values="XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughStateChangedFlagsFB</type> <name>flags</name></member>
</type>
<!-- XR_FB_passthrough_keyboard_hands -->
<type category="struct" name="XrPassthroughKeyboardHandsIntensityFB">
<member values="XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>leftHandIntensity</name></member>
<member><type>float</type> <name>rightHandIntensity</name></member>
</type>
<!-- XR_META_local_dimming -->
<type category="struct" name="XrLocalDimmingFrameEndInfoMETA" structextends="XrFrameEndInfo">
<member values="XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrLocalDimmingModeMETA</type> <name>localDimmingMode</name></member>
</type>
<!-- XR_MSFT_spatial_anchor_persistence -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialAnchorStoreConnectionMSFT</name>)</type>
<type category="struct" name="XrSpatialAnchorPersistenceNameMSFT">
<member><type>char</type> <name>name</name>[<enum>XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT</enum>]</member>
</type>
<type category="struct" name="XrSpatialAnchorPersistenceInfoMSFT">
<member values="XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpatialAnchorPersistenceNameMSFT</type> <name>spatialAnchorPersistenceName</name></member>
<member><type>XrSpatialAnchorMSFT</type> <name>spatialAnchor</name></member>
</type>
<type category="struct" name="XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT">
<member values="XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></member>
<member><type>XrSpatialAnchorPersistenceNameMSFT</type> <name>spatialAnchorPersistenceName</name></member>
</type>
<!-- XR_HTC_facial_tracking -->
<type category="struct" name="XrFacialTrackerCreateInfoHTC">
<member values="XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFacialTrackingTypeHTC</type> <name>facialTrackingType</name></member>
</type>
<type category="struct" name="XrSystemFacialTrackingPropertiesHTC" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportEyeFacialTracking</name></member>
<member><type>XrBool32</type> <name>supportLipFacialTracking</name></member>
</type>
<type category="struct" name="XrFacialExpressionsHTC">
<member values="XR_TYPE_FACIAL_EXPRESSIONS_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
<member><type>XrTime</type> <name>sampleTime</name></member>
<member><type>uint32_t</type> <name>expressionCount</name></member>
<member><type>float</type>* <name>expressionWeightings</name></member>
</type>
<!-- XR_HTC_passthrough -->
<type category="struct" name="XrPassthroughCreateInfoHTC">
<member values="XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughFormHTC</type> <name>form</name></member>
</type>
<type category="struct" name="XrPassthroughColorHTC">
<member values="XR_TYPE_PASSTHROUGH_COLOR_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>alpha</name></member>
</type>
<type category="struct" name="XrPassthroughMeshTransformInfoHTC" structextends="XrCompositionLayerPassthroughHTC">
<member values="XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>vertexCount</name></member>
<member len="vertexCount">const <type>XrVector3f</type>* <name>vertices</name></member>
<member><type>uint32_t</type> <name>indexCount</name></member>
<member len="indexCount">const <type>uint32_t</type>* <name>indices</name></member>
<member><type>XrSpace</type> <name>baseSpace</name></member>
<member><type>XrTime</type> <name>time</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrVector3f</type> <name>scale</name></member>
</type>
<type category="struct" name="XrCompositionLayerPassthroughHTC" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrPassthroughHTC</type> <name>passthrough</name></member>
<member><type>XrPassthroughColorHTC</type> <name>color</name></member>
</type>
<!-- XR_HTCX_vive_tracker_interaction structs -->
<type category="struct" name="XrViveTrackerPathsHTCX" returnedonly="true">
<member values="XR_TYPE_VIVE_TRACKER_PATHS_HTCX"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrPath</type> <name>persistentPath</name></member>
<member optional="true"><type>XrPath</type> <name>rolePath</name></member>
</type>
<type category="struct" name="XrEventDataViveTrackerConnectedHTCX" returnedonly="true" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrViveTrackerPathsHTCX</type>* <name>paths</name></member>
</type>
<!-- XR_FB_space_warp -->
<type category="struct" name="XrCompositionLayerSpaceWarpInfoFB" structextends="XrCompositionLayerProjectionView">
<member values="XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerSpaceWarpInfoFlagsFB</type> <name>layerFlags</name></member>
<member><type>XrSwapchainSubImage</type> <name>motionVectorSubImage</name></member>
<member><type>XrPosef</type> <name>appSpaceDeltaPose</name></member>
<member><type>XrSwapchainSubImage</type> <name>depthSubImage</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="XrSystemSpaceWarpPropertiesFB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>recommendedMotionVectorImageRectWidth</name></member>
<member><type>uint32_t</type> <name>recommendedMotionVectorImageRectHeight</name></member>
</type>
<!-- XR_VARJO_marker_tracking -->
<type category="struct" name="XrSystemMarkerTrackingPropertiesVARJO" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsMarkerTracking</name></member>
</type>
<type category="struct" name="XrEventDataMarkerTrackingUpdateVARJO" returnedonly="true" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint64_t</type> <name>markerId</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
<member><type>XrBool32</type> <name>isPredicted</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrMarkerSpaceCreateInfoVARJO">
<member values="XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint64_t</type> <name>markerId</name></member>
<member><type>XrPosef</type> <name>poseInMarkerSpace</name></member>
</type>
<!-- XR_EXT_uuid -->
<type category="struct" name="XrUuidEXT">
<member><type>uint8_t</type> <name>data</name>[<enum>XR_UUID_SIZE_EXT</enum>]</member>
</type>
<!-- XR_ML_global_dimmer -->
<type category="struct" name="XrGlobalDimmerFrameEndInfoML" structextends="XrFrameEndInfo">
<member values="XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>dimmerValue</name></member>
<member optional="true"><type>XrGlobalDimmerFrameEndInfoFlagsML</type> <name>flags</name></member>
</type>
<!-- XR_ALMALENCE_digital_lens_control -->
<type category="struct" name="XrDigitalLensControlALMALENCE">
<member values="XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrDigitalLensControlFlagsALMALENCE</type> <name>flags</name></member>
</type>
<!-- XR_ULTRALEAP_hand_tracking_forearm -->
<type name="XrHandForearmJointULTRALEAP" category="enum"/>
<!-- XR_FB_composition_layer_depth_test -->
<type name="XrCompareOpFB" category="enum"/>
<!-- XR_FB_composition_layer_settings structs -->
<type category="struct" name="XrCompositionLayerSettingsFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrCompositionLayerSettingsFlagsFB</type> <name>layerFlags</name></member>
</type>
<!-- XR_OCULUS_external_camera -->
<type category="struct" name="XrExternalCameraIntrinsicsOCULUS">
<member><type>XrTime</type> <name>lastChangeTime</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
<member><type>float</type> <name>virtualNearPlaneDistance</name></member>
<member><type>float</type> <name>virtualFarPlaneDistance</name></member>
<member><type>XrExtent2Di</type> <name>imageSensorPixelResolution</name></member>
</type>
<type category="struct" name="XrExternalCameraExtrinsicsOCULUS">
<member><type>XrTime</type> <name>lastChangeTime</name></member>
<member optional="true"><type>XrExternalCameraStatusFlagsOCULUS</type> <name>cameraStatusFlags</name></member>
<member><type>XrExternalCameraAttachedToDeviceOCULUS</type> <name>attachedToDevice</name></member>
<member><type>XrPosef</type> <name>relativePose</name></member>
</type>
<type category="struct" name="XrExternalCameraOCULUS" returnedonly="true">
<member values="XR_TYPE_EXTERNAL_CAMERA_OCULUS"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>char</type> <name>name</name>[<enum>XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS</enum>]</member>
<member><type>XrExternalCameraIntrinsicsOCULUS</type> <name>intrinsics</name></member>
<member><type>XrExternalCameraExtrinsicsOCULUS</type> <name>extrinsics</name></member>
</type>
<!-- XR_META_performance_metrics -->
<type category="struct" name="XrPerformanceMetricsStateMETA">
<member values="XR_TYPE_PERFORMANCE_METRICS_STATE_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>enabled</name></member>
</type>
<type category="struct" name="XrPerformanceMetricsCounterMETA">
<member values="XR_TYPE_PERFORMANCE_METRICS_COUNTER_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrPerformanceMetricsCounterFlagsMETA</type> <name>counterFlags</name></member>
<member><type>XrPerformanceMetricsCounterUnitMETA</type> <name>counterUnit</name></member>
<member><type>uint32_t</type> <name>uintValue</name></member>
<member><type>float</type> <name>floatValue</name></member>
</type>
<!-- XR_META_headset_id structs -->
<type category="struct" name="XrSystemHeadsetIdPropertiesMETA" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrUuidEXT</type> <name>id</name></member>
</type>
<!-- XR_HTC_foveation structs -->
<type category="struct" name="XrFoveationApplyInfoHTC">
<member values="XR_TYPE_FOVEATION_APPLY_INFO_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFoveationModeHTC</type> <name>mode</name></member>
<member><type>uint32_t</type> <name>subImageCount</name></member>
<member len="subImageCount"><type>XrSwapchainSubImage</type>* <name>subImages</name></member>
</type>
<type category="struct" name="XrFoveationConfigurationHTC">
<member><type>XrFoveationLevelHTC</type> <name>level</name></member>
<member><type>float</type> <name>clearFovDegree</name></member>
<member><type>XrVector2f</type> <name>focalCenterOffset</name></member>
</type>
<type category="struct" name="XrFoveationDynamicModeInfoHTC" structextends="XrFoveationApplyInfoHTC">
<member values="XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrFoveationDynamicFlagsHTC</type> <name>dynamicFlags</name></member>
</type>
<type category="struct" name="XrFoveationCustomModeInfoHTC" structextends="XrFoveationApplyInfoHTC">
<member values="XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>configCount</name></member>
<member len="configCount">const <type>XrFoveationConfigurationHTC</type>* <name>configs</name></member>
</type>
<!-- XR_EXT_active_action_set_priority -->
<type category="struct" name="XrActiveActionSetPrioritiesEXT" structextends="XrActionsSyncInfo">
<member values="XR_TYPE_ACTIVE_ACTION_SET_PRIORITIES_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>actionSetPriorityCount</name></member>
<member len="actionSetPriorityCount">const <type>XrActiveActionSetPriorityEXT</type>* <name>actionSetPriorities</name></member>
</type>
<type category="struct" name="XrActiveActionSetPriorityEXT">
<member><type>XrActionSet</type> <name>actionSet</name></member>
<member><type>uint32_t</type> <name>priorityOverride</name></member>
</type>
<!-- XR_FB_composition_layer_depth_test -->
<type category="struct" name="XrCompositionLayerDepthTestFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>depthMask</name></member>
<member><type>XrCompareOpFB</type> <name>compareOp</name></member>
</type>
<!-- XR_ML_compat structs -->
<type category="struct" name="XrCoordinateSpaceCreateInfoML">
<member values="XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>MLCoordinateFrameUID</type> <name>cfuid</name></member>
<member><type>XrPosef</type> <name>poseInCoordinateSpace</name></member>
</type>
<!-- XR_ML_frame_end_info structs -->
<type category="struct" name="XrFrameEndInfoML" structextends="XrFrameEndInfo">
<member values="XR_TYPE_FRAME_END_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>focusDistance</name></member>
<member optional="true"><type>XrFrameEndInfoFlagsML</type> <name>flags</name></member>
</type>
<!-- XR_FB_haptic_amplitude_envelope struct -->
<type category="struct" name="XrHapticAmplitudeEnvelopeVibrationFB" parentstruct="XrHapticBaseHeader">
<member values="XR_TYPE_HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB"><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><type>uint32_t</type> <name>amplitudeCount</name></member>
<member len="amplitudeCount">const <type>float</type>* <name>amplitudes</name></member>
</type>
<!-- XR_FB_haptic_pcm structs -->
<type category="struct" name="XrHapticPcmVibrationFB" parentstruct="XrHapticBaseHeader">
<member values="XR_TYPE_HAPTIC_PCM_VIBRATION_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>bufferSize</name></member>
<member len="bufferSize">const <type>float</type>* <name>buffer</name></member>
<member><type>float</type> <name>sampleRate</name></member>
<member><type>XrBool32</type> <name>append</name></member>
<member><type>uint32_t</type>* <name>samplesConsumed</name></member>
</type>
<type category="struct" name="XrDevicePcmSampleRateStateFB">
<member values="XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>float</type> <name>sampleRate</name></member>
</type>
<type category="struct" name="XrDevicePcmSampleRateGetInfoFB" alias="XrDevicePcmSampleRateStateFB"/>
<!-- XR_FB_spatial_entity_user -->
<type category="struct" name="XrSpaceUserCreateInfoFB">
<member values="XR_TYPE_SPACE_USER_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpaceUserIdFB</type> <name>userId</name></member>
</type>
<!-- XR_MNDX_force_feedback_curl -->
<type category="struct" name="XrSystemForceFeedbackCurlPropertiesMNDX" structextends="XrSystemProperties" returnedonly="true">
<member values="XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsForceFeedbackCurl</name></member>
</type>
<type category="struct" name="XrForceFeedbackCurlApplyLocationsMNDX">
<member values="XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>locationCount</name></member>
<member len="locationCount"><type>XrForceFeedbackCurlApplyLocationMNDX</type>* <name>locations</name></member>
</type>
<type category="struct" name="XrForceFeedbackCurlApplyLocationMNDX">
<member><type>XrForceFeedbackCurlLocationMNDX</type> <name>location</name></member>
<member><type>float</type> <name>value</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"/>
</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 basetype: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 fname:xrGetGraphicsRequirements* call was not made before calling fname:xrCreateSession."/>
<enum value="-51" name="XR_ERROR_RUNTIME_UNAVAILABLE" comment="The loader was unable to find or load a runtime."/>
<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_EXT_hand_joints_motion_range -->
<enums name="XrHandJointsMotionRangeEXT" type="enum">
<enum value="1" name="XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT"/>
<enum value="2" name="XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_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_face_tracking -->
<enums name="XrFaceExpressionFB" type="enum">
<enum value="0" name="XR_FACE_EXPRESSION_BROW_LOWERER_L_FB"/>
<enum value="1" name="XR_FACE_EXPRESSION_BROW_LOWERER_R_FB"/>
<enum value="2" name="XR_FACE_EXPRESSION_CHEEK_PUFF_L_FB"/>
<enum value="3" name="XR_FACE_EXPRESSION_CHEEK_PUFF_R_FB"/>
<enum value="4" name="XR_FACE_EXPRESSION_CHEEK_RAISER_L_FB"/>
<enum value="5" name="XR_FACE_EXPRESSION_CHEEK_RAISER_R_FB"/>
<enum value="6" name="XR_FACE_EXPRESSION_CHEEK_SUCK_L_FB"/>
<enum value="7" name="XR_FACE_EXPRESSION_CHEEK_SUCK_R_FB"/>
<enum value="8" name="XR_FACE_EXPRESSION_CHIN_RAISER_B_FB"/>
<enum value="9" name="XR_FACE_EXPRESSION_CHIN_RAISER_T_FB"/>
<enum value="10" name="XR_FACE_EXPRESSION_DIMPLER_L_FB"/>
<enum value="11" name="XR_FACE_EXPRESSION_DIMPLER_R_FB"/>
<enum value="12" name="XR_FACE_EXPRESSION_EYES_CLOSED_L_FB"/>
<enum value="13" name="XR_FACE_EXPRESSION_EYES_CLOSED_R_FB"/>
<enum value="14" name="XR_FACE_EXPRESSION_EYES_LOOK_DOWN_L_FB"/>
<enum value="15" name="XR_FACE_EXPRESSION_EYES_LOOK_DOWN_R_FB"/>
<enum value="16" name="XR_FACE_EXPRESSION_EYES_LOOK_LEFT_L_FB"/>
<enum value="17" name="XR_FACE_EXPRESSION_EYES_LOOK_LEFT_R_FB"/>
<enum value="18" name="XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_L_FB"/>
<enum value="19" name="XR_FACE_EXPRESSION_EYES_LOOK_RIGHT_R_FB"/>
<enum value="20" name="XR_FACE_EXPRESSION_EYES_LOOK_UP_L_FB"/>
<enum value="21" name="XR_FACE_EXPRESSION_EYES_LOOK_UP_R_FB"/>
<enum value="22" name="XR_FACE_EXPRESSION_INNER_BROW_RAISER_L_FB"/>
<enum value="23" name="XR_FACE_EXPRESSION_INNER_BROW_RAISER_R_FB"/>
<enum value="24" name="XR_FACE_EXPRESSION_JAW_DROP_FB"/>
<enum value="25" name="XR_FACE_EXPRESSION_JAW_SIDEWAYS_LEFT_FB"/>
<enum value="26" name="XR_FACE_EXPRESSION_JAW_SIDEWAYS_RIGHT_FB"/>
<enum value="27" name="XR_FACE_EXPRESSION_JAW_THRUST_FB"/>
<enum value="28" name="XR_FACE_EXPRESSION_LID_TIGHTENER_L_FB"/>
<enum value="29" name="XR_FACE_EXPRESSION_LID_TIGHTENER_R_FB"/>
<enum value="30" name="XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_L_FB"/>
<enum value="31" name="XR_FACE_EXPRESSION_LIP_CORNER_DEPRESSOR_R_FB"/>
<enum value="32" name="XR_FACE_EXPRESSION_LIP_CORNER_PULLER_L_FB"/>
<enum value="33" name="XR_FACE_EXPRESSION_LIP_CORNER_PULLER_R_FB"/>
<enum value="34" name="XR_FACE_EXPRESSION_LIP_FUNNELER_LB_FB"/>
<enum value="35" name="XR_FACE_EXPRESSION_LIP_FUNNELER_LT_FB"/>
<enum value="36" name="XR_FACE_EXPRESSION_LIP_FUNNELER_RB_FB"/>
<enum value="37" name="XR_FACE_EXPRESSION_LIP_FUNNELER_RT_FB"/>
<enum value="38" name="XR_FACE_EXPRESSION_LIP_PRESSOR_L_FB"/>
<enum value="39" name="XR_FACE_EXPRESSION_LIP_PRESSOR_R_FB"/>
<enum value="40" name="XR_FACE_EXPRESSION_LIP_PUCKER_L_FB"/>
<enum value="41" name="XR_FACE_EXPRESSION_LIP_PUCKER_R_FB"/>
<enum value="42" name="XR_FACE_EXPRESSION_LIP_STRETCHER_L_FB"/>
<enum value="43" name="XR_FACE_EXPRESSION_LIP_STRETCHER_R_FB"/>
<enum value="44" name="XR_FACE_EXPRESSION_LIP_SUCK_LB_FB"/>
<enum value="45" name="XR_FACE_EXPRESSION_LIP_SUCK_LT_FB"/>
<enum value="46" name="XR_FACE_EXPRESSION_LIP_SUCK_RB_FB"/>
<enum value="47" name="XR_FACE_EXPRESSION_LIP_SUCK_RT_FB"/>
<enum value="48" name="XR_FACE_EXPRESSION_LIP_TIGHTENER_L_FB"/>
<enum value="49" name="XR_FACE_EXPRESSION_LIP_TIGHTENER_R_FB"/>
<enum value="50" name="XR_FACE_EXPRESSION_LIPS_TOWARD_FB"/>
<enum value="51" name="XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_L_FB"/>
<enum value="52" name="XR_FACE_EXPRESSION_LOWER_LIP_DEPRESSOR_R_FB"/>
<enum value="53" name="XR_FACE_EXPRESSION_MOUTH_LEFT_FB"/>
<enum value="54" name="XR_FACE_EXPRESSION_MOUTH_RIGHT_FB"/>
<enum value="55" name="XR_FACE_EXPRESSION_NOSE_WRINKLER_L_FB"/>
<enum value="56" name="XR_FACE_EXPRESSION_NOSE_WRINKLER_R_FB"/>
<enum value="57" name="XR_FACE_EXPRESSION_OUTER_BROW_RAISER_L_FB"/>
<enum value="58" name="XR_FACE_EXPRESSION_OUTER_BROW_RAISER_R_FB"/>
<enum value="59" name="XR_FACE_EXPRESSION_UPPER_LID_RAISER_L_FB"/>
<enum value="60" name="XR_FACE_EXPRESSION_UPPER_LID_RAISER_R_FB"/>
<enum value="61" name="XR_FACE_EXPRESSION_UPPER_LIP_RAISER_L_FB"/>
<enum value="62" name="XR_FACE_EXPRESSION_UPPER_LIP_RAISER_R_FB"/>
<enum value="63" name="XR_FACE_EXPRESSION_COUNT_FB"/>
</enums>
<enums name="XrFaceExpressionSetFB" type="enum">
<enum value="0" name="XR_FACE_EXPRESSION_SET_DEFAULT_FB" comment="indicates that the created slink:XrFaceTrackerFB tracks the set of blend shapes described by elink:XrFaceExpressionFB enum, i.e. the flink:xrGetFaceExpressionWeightsFB function returns an array of blend shapes with the count of ename:XR_FACE_EXPRESSION_COUNT_FB and can: be indexed using elink:XrFaceExpressionFB."/>
</enums>
<enums name="XrFaceConfidenceFB" type="enum">
<enum value="0" name="XR_FACE_CONFIDENCE_LOWER_FACE_FB"/>
<enum value="1" name="XR_FACE_CONFIDENCE_UPPER_FACE_FB"/>
<enum value="2" name="XR_FACE_CONFIDENCE_COUNT_FB"/>
</enums>
<!-- XR_FB_body_tracking -->
<enums name="XrBodyJointFB" type="enum">
<enum value="0" name="XR_BODY_JOINT_ROOT_FB"/>
<enum value="1" name="XR_BODY_JOINT_HIPS_FB"/>
<enum value="2" name="XR_BODY_JOINT_SPINE_LOWER_FB"/>
<enum value="3" name="XR_BODY_JOINT_SPINE_MIDDLE_FB"/>
<enum value="4" name="XR_BODY_JOINT_SPINE_UPPER_FB"/>
<enum value="5" name="XR_BODY_JOINT_CHEST_FB"/>
<enum value="6" name="XR_BODY_JOINT_NECK_FB"/>
<enum value="7" name="XR_BODY_JOINT_HEAD_FB"/>
<enum value="8" name="XR_BODY_JOINT_LEFT_SHOULDER_FB"/>
<enum value="9" name="XR_BODY_JOINT_LEFT_SCAPULA_FB"/>
<enum value="10" name="XR_BODY_JOINT_LEFT_ARM_UPPER_FB"/>
<enum value="11" name="XR_BODY_JOINT_LEFT_ARM_LOWER_FB"/>
<enum value="12" name="XR_BODY_JOINT_LEFT_HAND_WRIST_TWIST_FB"/>
<enum value="13" name="XR_BODY_JOINT_RIGHT_SHOULDER_FB"/>
<enum value="14" name="XR_BODY_JOINT_RIGHT_SCAPULA_FB"/>
<enum value="15" name="XR_BODY_JOINT_RIGHT_ARM_UPPER_FB"/>
<enum value="16" name="XR_BODY_JOINT_RIGHT_ARM_LOWER_FB"/>
<enum value="17" name="XR_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_FB"/>
<enum value="18" name="XR_BODY_JOINT_LEFT_HAND_PALM_FB"/>
<enum value="19" name="XR_BODY_JOINT_LEFT_HAND_WRIST_FB"/>
<enum value="20" name="XR_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_FB"/>
<enum value="21" name="XR_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_FB"/>
<enum value="22" name="XR_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_FB"/>
<enum value="23" name="XR_BODY_JOINT_LEFT_HAND_THUMB_TIP_FB"/>
<enum value="24" name="XR_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_FB"/>
<enum value="25" name="XR_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_FB"/>
<enum value="26" name="XR_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_FB"/>
<enum value="27" name="XR_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_FB"/>
<enum value="28" name="XR_BODY_JOINT_LEFT_HAND_INDEX_TIP_FB"/>
<enum value="29" name="XR_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_FB"/>
<enum value="30" name="XR_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_FB"/>
<enum value="31" name="XR_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_FB"/>
<enum value="32" name="XR_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_FB"/>
<enum value="33" name="XR_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_FB"/>
<enum value="34" name="XR_BODY_JOINT_LEFT_HAND_RING_METACARPAL_FB"/>
<enum value="35" name="XR_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_FB"/>
<enum value="36" name="XR_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_FB"/>
<enum value="37" name="XR_BODY_JOINT_LEFT_HAND_RING_DISTAL_FB"/>
<enum value="38" name="XR_BODY_JOINT_LEFT_HAND_RING_TIP_FB"/>
<enum value="39" name="XR_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_FB"/>
<enum value="40" name="XR_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_FB"/>
<enum value="41" name="XR_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_FB"/>
<enum value="42" name="XR_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_FB"/>
<enum value="43" name="XR_BODY_JOINT_LEFT_HAND_LITTLE_TIP_FB"/>
<enum value="44" name="XR_BODY_JOINT_RIGHT_HAND_PALM_FB"/>
<enum value="45" name="XR_BODY_JOINT_RIGHT_HAND_WRIST_FB"/>
<enum value="46" name="XR_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_FB"/>
<enum value="47" name="XR_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_FB"/>
<enum value="48" name="XR_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_FB"/>
<enum value="49" name="XR_BODY_JOINT_RIGHT_HAND_THUMB_TIP_FB"/>
<enum value="50" name="XR_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_FB"/>
<enum value="51" name="XR_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_FB"/>
<enum value="52" name="XR_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_FB"/>
<enum value="53" name="XR_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_FB"/>
<enum value="54" name="XR_BODY_JOINT_RIGHT_HAND_INDEX_TIP_FB"/>
<enum value="55" name="XR_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_FB"/>
<enum value="56" name="XR_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_FB"/>
<enum value="57" name="XR_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_FB"/>
<enum value="58" name="XR_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_FB"/>
<enum value="59" name="XR_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_FB"/>
<enum value="60" name="XR_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_FB"/>
<enum value="61" name="XR_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_FB"/>
<enum value="62" name="XR_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_FB"/>
<enum value="63" name="XR_BODY_JOINT_RIGHT_HAND_RING_DISTAL_FB"/>
<enum value="64" name="XR_BODY_JOINT_RIGHT_HAND_RING_TIP_FB"/>
<enum value="65" name="XR_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_FB"/>
<enum value="66" name="XR_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_FB"/>
<enum value="67" name="XR_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_FB"/>
<enum value="68" name="XR_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_FB"/>
<enum value="69" name="XR_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_FB"/>
<enum value="70" name="XR_BODY_JOINT_COUNT_FB"/>
<enum value="-1" name="XR_BODY_JOINT_NONE_FB"/>
</enums>
<enums name="XrBodyJointSetFB" type="enum" comment="Describes the set of body joints to track when creating an slink:XrBodyTrackerFB.">
<enum value="0" name="XR_BODY_JOINT_SET_DEFAULT_FB" comment="Indicates that the created slink:XrBodyTrackerFB tracks the set of body joints described by elink:XrBodyJointFB enum, i.e. the flink:xrLocateBodyJointsFB function returns an array of joint locations with the count of ename:XR_BODY_JOINT_COUNT_FB and can be indexed using elink:XrBodyJointFB."/>
</enums>
<!-- XR_FB_eye_tracking_social -->
<enums name="XrEyePositionFB" type="enum">
<enum value="0" name="XR_EYE_POSITION_LEFT_FB" comment="Specifies the position of the left eye."/>
<enum value="1" name="XR_EYE_POSITION_RIGHT_FB" comment="Specifies the position of the right eye."/>
<enum value="2" name="XR_EYE_POSITION_COUNT_FB"/>
</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>
<!-- XR_FB_composition_layer_alpha_blend -->
<enums name="XrBlendFactorFB" type="enum">
<enum value="0" name="XR_BLEND_FACTOR_ZERO_FB"/>
<enum value="1" name="XR_BLEND_FACTOR_ONE_FB"/>
<enum value="2" name="XR_BLEND_FACTOR_SRC_ALPHA_FB"/>
<enum value="3" name="XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB"/>
<enum value="4" name="XR_BLEND_FACTOR_DST_ALPHA_FB"/>
<enum value="5" name="XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB"/>
</enums>
<!-- XR_MSFT_composition_layer_reprojection -->
<enums name="XrReprojectionModeMSFT" type="enum">
<enum value="1" name="XR_REPROJECTION_MODE_DEPTH_MSFT"/>
<enum value="2" name="XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT"/>
<enum value="3" name="XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT"/>
<enum value="4" name="XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT"/>
</enums>
<!-- XR_ULTRALEAP_hand_tracking_forearm -->
<enums name="XrHandForearmJointULTRALEAP" type="enum">
<enum value="0" name="XR_HAND_FOREARM_JOINT_PALM_ULTRALEAP"/>
<enum value="1" name="XR_HAND_FOREARM_JOINT_WRIST_ULTRALEAP"/>
<enum value="2" name="XR_HAND_FOREARM_JOINT_THUMB_METACARPAL_ULTRALEAP"/>
<enum value="3" name="XR_HAND_FOREARM_JOINT_THUMB_PROXIMAL_ULTRALEAP"/>
<enum value="4" name="XR_HAND_FOREARM_JOINT_THUMB_DISTAL_ULTRALEAP"/>
<enum value="5" name="XR_HAND_FOREARM_JOINT_THUMB_TIP_ULTRALEAP"/>
<enum value="6" name="XR_HAND_FOREARM_JOINT_INDEX_METACARPAL_ULTRALEAP"/>
<enum value="7" name="XR_HAND_FOREARM_JOINT_INDEX_PROXIMAL_ULTRALEAP"/>
<enum value="8" name="XR_HAND_FOREARM_JOINT_INDEX_INTERMEDIATE_ULTRALEAP"/>
<enum value="9" name="XR_HAND_FOREARM_JOINT_INDEX_DISTAL_ULTRALEAP"/>
<enum value="10" name="XR_HAND_FOREARM_JOINT_INDEX_TIP_ULTRALEAP"/>
<enum value="11" name="XR_HAND_FOREARM_JOINT_MIDDLE_METACARPAL_ULTRALEAP"/>
<enum value="12" name="XR_HAND_FOREARM_JOINT_MIDDLE_PROXIMAL_ULTRALEAP"/>
<enum value="13" name="XR_HAND_FOREARM_JOINT_MIDDLE_INTERMEDIATE_ULTRALEAP"/>
<enum value="14" name="XR_HAND_FOREARM_JOINT_MIDDLE_DISTAL_ULTRALEAP"/>
<enum value="15" name="XR_HAND_FOREARM_JOINT_MIDDLE_TIP_ULTRALEAP"/>
<enum value="16" name="XR_HAND_FOREARM_JOINT_RING_METACARPAL_ULTRALEAP"/>
<enum value="17" name="XR_HAND_FOREARM_JOINT_RING_PROXIMAL_ULTRALEAP"/>
<enum value="18" name="XR_HAND_FOREARM_JOINT_RING_INTERMEDIATE_ULTRALEAP"/>
<enum value="19" name="XR_HAND_FOREARM_JOINT_RING_DISTAL_ULTRALEAP"/>
<enum value="20" name="XR_HAND_FOREARM_JOINT_RING_TIP_ULTRALEAP"/>
<enum value="21" name="XR_HAND_FOREARM_JOINT_LITTLE_METACARPAL_ULTRALEAP"/>
<enum value="22" name="XR_HAND_FOREARM_JOINT_LITTLE_PROXIMAL_ULTRALEAP"/>
<enum value="23" name="XR_HAND_FOREARM_JOINT_LITTLE_INTERMEDIATE_ULTRALEAP"/>
<enum value="24" name="XR_HAND_FOREARM_JOINT_LITTLE_DISTAL_ULTRALEAP"/>
<enum value="25" name="XR_HAND_FOREARM_JOINT_LITTLE_TIP_ULTRALEAP"/>
<enum value="26" name="XR_HAND_FOREARM_JOINT_ELBOW_ULTRALEAP"/>
</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 may: be a color rendering target."/>
<enum bitpos="1" name="XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" comment="Specifies that the image may: be a depth/stencil rendering target."/>
<enum bitpos="2" name="XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT" comment="Specifies that the image may: be accessed out of order and that access may: be via atomic operations."/>
<enum bitpos="3" name="XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT" comment="Specifies that the image may: be used as the source of a transfer operation."/>
<enum bitpos="4" name="XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT" comment="Specifies that the image may: be used as the destination of a transfer operation."/>
<enum bitpos="5" name="XR_SWAPCHAIN_USAGE_SAMPLED_BIT" comment="Specifies that the image may: be sampled by a shader."/>
<enum bitpos="6" name="XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT" comment="Specifies that the image may: 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 slink:XrView orientations"/>
<enum bitpos="1" name="XR_VIEW_STATE_POSITION_VALID_BIT" comment="Indicates validity of all slink:XrView positions"/>
<enum bitpos="2" name="XR_VIEW_STATE_ORIENTATION_TRACKED_BIT" comment="Indicates whether all slink:XrView orientations are actively tracked"/>
<enum bitpos="3" name="XR_VIEW_STATE_POSITION_TRACKED_BIT" comment="Indicates whether all slink: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. This flag has no effect on any known conformant runtime, and is planned for deprecation for OpenXR 1.1"/>
<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 that the pname:orientation member contains valid data"/>
<enum bitpos="1" name="XR_SPACE_LOCATION_POSITION_VALID_BIT" comment="Indicates that the pname:position member contains valid data"/>
<enum bitpos="2" name="XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT" comment="Indicates whether pname:pose member contains an actively tracked pname:orientation"/>
<enum bitpos="3" name="XR_SPACE_LOCATION_POSITION_TRACKED_BIT" comment="Indicates whether pname:pose member contains an actively tracked pname:position"/>
</enums>
<enums name="XrSpaceVelocityFlagBits" type="bitmask">
<enum bitpos="0" name="XR_SPACE_VELOCITY_LINEAR_VALID_BIT" comment="Indicates that the pname:linearVelocity member contains valid data. Applications must: not read the pname:linearVelocity field if this flag is unset."/>
<enum bitpos="1" name="XR_SPACE_VELOCITY_ANGULAR_VALID_BIT" comment="Indicates that the pname:angularVelocity member contains valid data. Applications must: not read the pname:angularVelocity field if this flag is unset."/>
</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_composition_layer_depth`"/>
</enums>
<enums name="XrOverlaySessionCreateFlagBitsEXTX" type="bitmask">
</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>
<!-- enumes XR_MSFT_scene_understanding -->
<enums name="XrSceneObjectTypeMSFT" type="enum">
<enum value="-1" name="XR_SCENE_OBJECT_TYPE_UNCATEGORIZED_MSFT"/>
<enum value="1" name="XR_SCENE_OBJECT_TYPE_BACKGROUND_MSFT"/>
<enum value="2" name="XR_SCENE_OBJECT_TYPE_WALL_MSFT"/>
<enum value="3" name="XR_SCENE_OBJECT_TYPE_FLOOR_MSFT"/>
<enum value="4" name="XR_SCENE_OBJECT_TYPE_CEILING_MSFT"/>
<enum value="5" name="XR_SCENE_OBJECT_TYPE_PLATFORM_MSFT"/>
<enum value="6" name="XR_SCENE_OBJECT_TYPE_INFERRED_MSFT"/>
</enums>
<enums name="XrScenePlaneAlignmentTypeMSFT" type="enum">
<enum value="0" name="XR_SCENE_PLANE_ALIGNMENT_TYPE_NON_ORTHOGONAL_MSFT"/>
<enum value="1" name="XR_SCENE_PLANE_ALIGNMENT_TYPE_HORIZONTAL_MSFT"/>
<enum value="2" name="XR_SCENE_PLANE_ALIGNMENT_TYPE_VERTICAL_MSFT"/>
</enums>
<enums name="XrSceneComputeStateMSFT" type="enum">
<enum value="0" name="XR_SCENE_COMPUTE_STATE_NONE_MSFT"/>
<enum value="1" name="XR_SCENE_COMPUTE_STATE_UPDATING_MSFT"/>
<enum value="2" name="XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT"/>
<enum value="3" name="XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT"/>
</enums>
<enums name="XrSceneComponentTypeMSFT" type="enum">
<enum value="-1" name="XR_SCENE_COMPONENT_TYPE_INVALID_MSFT"/>
<enum value="1" name="XR_SCENE_COMPONENT_TYPE_OBJECT_MSFT"/>
<enum value="2" name="XR_SCENE_COMPONENT_TYPE_PLANE_MSFT"/>
<enum value="3" name="XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT"/>
<enum value="4" name="XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT"/>
</enums>
<enums name="XrSceneComputeFeatureMSFT" type="enum">
<enum value="1" name="XR_SCENE_COMPUTE_FEATURE_PLANE_MSFT"/>
<enum value="2" name="XR_SCENE_COMPUTE_FEATURE_PLANE_MESH_MSFT"/>
<enum value="3" name="XR_SCENE_COMPUTE_FEATURE_VISUAL_MESH_MSFT"/>
<enum value="4" name="XR_SCENE_COMPUTE_FEATURE_COLLIDER_MESH_MSFT"/>
</enums>
<enums name="XrSceneComputeConsistencyMSFT" type="enum">
<enum value="1" name="XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_COMPLETE_MSFT"/>
<enum value="2" name="XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_INCOMPLETE_FAST_MSFT"/>
<enum value="3" name="XR_SCENE_COMPUTE_CONSISTENCY_OCCLUSION_OPTIMIZED_MSFT"/>
</enums>
<enums name="XrMeshComputeLodMSFT" type="enum">
<enum value="1" name="XR_MESH_COMPUTE_LOD_COARSE_MSFT"/>
<enum value="2" name="XR_MESH_COMPUTE_LOD_MEDIUM_MSFT"/>
<enum value="3" name="XR_MESH_COMPUTE_LOD_FINE_MSFT"/>
<enum value="4" name="XR_MESH_COMPUTE_LOD_UNLIMITED_MSFT"/>
</enums>
<!-- flags for XR_FB_android_surface_swapchain_create -->
<enums name="XrAndroidSurfaceSwapchainFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_ANDROID_SURFACE_SWAPCHAIN_SYNCHRONOUS_BIT_FB" comment="Create the underlying BufferQueue in synchronous mode"/>
<enum bitpos="1" name="XR_ANDROID_SURFACE_SWAPCHAIN_USE_TIMESTAMPS_BIT_FB" comment="Acquire most recent buffer whose presentation timestamp is not greater than display time of final composited frame"/>
</enums>
<!-- flags for XR_FB_composition_layer_image_layout -->
<enums name="XrCompositionLayerImageLayoutFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB" comment="The coordinate origin of the swapchain image must be considered to be flipped vertically."/>
</enums>
<!-- flags for XR_FB_foveation -->
<enums name="XrSwapchainCreateFoveationFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB" comment="Explicitly create the swapchain with scaled bin foveation support. The application must ensure that the swapchain is using the OpenGL graphics API and that the QCOM_texture_foveated extension is supported and enabled."/>
<enum bitpos="1" name="XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB" comment="Explicitly create the swapchain with fragment density map foveation support. The application must ensure that the swapchain is using the Vulkan graphics API and that the VK_EXT_fragment_density_map extension is supported and enabled."/>
</enums>
<enums name="XrSwapchainStateFoveationFlagBitsFB" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<!-- flags for XR_META_foveation_eye_tracked -->
<enums name="XrFoveationEyeTrackedProfileCreateFlagBitsMETA" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<enums name="XrFoveationEyeTrackedStateFlagBitsMETA" type="bitmask">
<enum bitpos="0" name="XR_FOVEATION_EYE_TRACKED_STATE_VALID_BIT_META" comment="Indicates whether or not foveation data is valid. This can happen if the eye tracker is obscured, the camera has dirt, or eye lid is closed, etc."/>
</enums>
<!-- flags for XR_FB_composition_layer_secure_content -->
<enums name="XrCompositionLayerSecureContentFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_SECURE_CONTENT_EXCLUDE_LAYER_BIT_FB" comment="Indicates the layer will only be visible inside the HMD, and not visible to external sources"/>
<enum bitpos="1" name="XR_COMPOSITION_LAYER_SECURE_CONTENT_REPLACE_LAYER_BIT_FB" comment="Indicates the layer will be displayed inside the HMD, but replaced by proxy content when written to external sources"/>
</enums>
<!-- enums for XR_FB_spatial_entity -->
<enums name="XrSpaceComponentTypeFB" type="enum">
<enum value="0" name="XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB" comment="Enables tracking the 6 DOF pose of the slink:XrSpace with flink:xrLocateSpace."/>
<enum value="1" name="XR_SPACE_COMPONENT_TYPE_STORABLE_FB" comment="Enables persistence operations: save and erase."/>
<enum value="2" name="XR_SPACE_COMPONENT_TYPE_SHARABLE_FB" comment="Enables sharing of spatial entities."/>
<enum value="3" name="XR_SPACE_COMPONENT_TYPE_BOUNDED_2D_FB" comment="Bounded 2D component."/>
<enum value="4" name="XR_SPACE_COMPONENT_TYPE_BOUNDED_3D_FB" comment="Bounded 3D component."/>
<enum value="5" name="XR_SPACE_COMPONENT_TYPE_SEMANTIC_LABELS_FB" comment="Semantic labels component."/>
<enum value="6" name="XR_SPACE_COMPONENT_TYPE_ROOM_LAYOUT_FB" comment="Room layout component."/>
<enum value="7" name="XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB" comment="Space container component."/>
</enums>
<!-- enums for XR_FB_foveation_configuration -->
<enums name="XrFoveationLevelFB" type="enum">
<enum value="0" name="XR_FOVEATION_LEVEL_NONE_FB" comment="No foveation"/>
<enum value="1" name="XR_FOVEATION_LEVEL_LOW_FB" comment="Less foveation (higher periphery visual fidelity, lower performance)"/>
<enum value="2" name="XR_FOVEATION_LEVEL_MEDIUM_FB" comment="Medium foveation (medium periphery visual fidelity, medium performance)"/>
<enum value="3" name="XR_FOVEATION_LEVEL_HIGH_FB" comment="High foveation (lower periphery visual fidelity, higher performance)"/>
</enums>
<enums name="XrFoveationDynamicFB" type="enum">
<enum value="0" name="XR_FOVEATION_DYNAMIC_DISABLED_FB" comment="Static foveation at the maximum desired level"/>
<enum value="1" name="XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB" comment="Dynamic changing foveation based on performance headroom available up to the maximum desired level"/>
</enums>
<!-- enums for XR_FB_triangle_mesh -->
<enums name="XrWindingOrderFB" type="enum">
<enum value="0" name="XR_WINDING_ORDER_UNKNOWN_FB" comment="Winding order is unknown and the runtime cannot make any assumptions on the triangle orientation"/>
<enum value="1" name="XR_WINDING_ORDER_CW_FB" comment="Clockwise winding order"/>
<enum value="2" name="XR_WINDING_ORDER_CCW_FB" comment="Counter-clockwise winding order"/>
</enums>
<enums name="XrTriangleMeshFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_TRIANGLE_MESH_MUTABLE_BIT_FB" comment="The triangle mesh is mutable (can be modified after it is created)."/>
</enums>
<!-- enums for XR_FB_passthrough -->
<enums name="XrPassthroughLayerPurposeFB" type="enum">
<enum value="0" name="XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB" comment="Reconstruction passthrough (full screen environment)"/>
<enum value="1" name="XR_PASSTHROUGH_LAYER_PURPOSE_PROJECTED_FB" comment="Projected passthrough (using a custom surface)"/>
</enums>
<enums name="XrPassthroughFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_PASSTHROUGH_IS_RUNNING_AT_CREATION_BIT_FB" comment="The object (passthrough, layer) is running at creation."/>
<enum bitpos="1" name="XR_PASSTHROUGH_LAYER_DEPTH_BIT_FB" comment="The passthrough system sends depth information to the compositor. Only applicable to layer objects."/>
</enums>
<enums name="XrPassthroughStateChangedFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_PASSTHROUGH_STATE_CHANGED_REINIT_REQUIRED_BIT_FB" comment="Passthrough system requires reinitialization."/>
<enum bitpos="1" name="XR_PASSTHROUGH_STATE_CHANGED_NON_RECOVERABLE_ERROR_BIT_FB" comment="Non-recoverable error has occurred. A device reboot or a firmware update may be required."/>
<enum bitpos="2" name="XR_PASSTHROUGH_STATE_CHANGED_RECOVERABLE_ERROR_BIT_FB" comment="A recoverable error has occurred. The runtime will attempt to recover, but some functionality may be temporarily unavailable."/>
<enum bitpos="3" name="XR_PASSTHROUGH_STATE_CHANGED_RESTORED_ERROR_BIT_FB" comment="The runtime has recovered from a previous error and is functioning normally."/>
</enums>
<enums name="XrPassthroughCapabilityFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_PASSTHROUGH_CAPABILITY_BIT_FB" comment="The system supports passthrough."/>
<enum bitpos="1" name="XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB" comment="The system can show passthrough with realistic colors. ename:XR_PASSTHROUGH_CAPABILITY_BIT_FB must: be set if ename:XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB is set."/>
<enum bitpos="2" name="XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB" comment="The system supports passthrough layers composited using depth testing. ename:XR_PASSTHROUGH_CAPABILITY_BIT_FB must: be set if ename:XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB is set."/>
</enums>
<!-- enums for XR_FB_spatial_entity_query -->
<enums name="XrSpaceQueryActionFB" type="enum">
<enum value="0" name="XR_SPACE_QUERY_ACTION_LOAD_FB" comment="Tells the query to perform a load operation on any slink:XrSpace returned by the query."/>
</enums>
<!-- enums for XR_FB_spatial_entity_storage -->
<enums name="XrSpaceStorageLocationFB" type="enum">
<enum value="0" name="XR_SPACE_STORAGE_LOCATION_INVALID_FB" comment="Invalid storage location"/>
<enum value="1" name="XR_SPACE_STORAGE_LOCATION_LOCAL_FB" comment="Local device storage"/>
<enum value="2" name="XR_SPACE_STORAGE_LOCATION_CLOUD_FB" comment="Cloud storage"/>
</enums>
<enums name="XrSpacePersistenceModeFB" type="enum">
<enum value="0" name="XR_SPACE_PERSISTENCE_MODE_INVALID_FB" comment="Invalid storage persistence"/>
<enum value="1" name="XR_SPACE_PERSISTENCE_MODE_INDEFINITE_FB" comment="Store slink:XrSpace indefinitely, or until erased"/>
</enums>
<!-- enums for XR_META_local_dimming -->
<enums name="XrLocalDimmingModeMETA" type="enum">
<enum value="0" name="XR_LOCAL_DIMMING_MODE_OFF_META" comment="Local dimming is turned off by default for the current submitted frame. This is the same as not chaining elink:XrLocalDimmingModeMETA."/>
<enum value="1" name="XR_LOCAL_DIMMING_MODE_ON_META" comment="Local dimming is turned on for the current submitted frame."/>
</enums>
<!-- flags for XR_FB_hand_tracking_aim -->
<enums name="XrHandTrackingAimFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_HAND_TRACKING_AIM_COMPUTED_BIT_FB" comment="Aiming data is computed from additional sources beyond the hand data in the base structure"/>
<enum bitpos="1" name="XR_HAND_TRACKING_AIM_VALID_BIT_FB" comment="Aiming data is valid"/>
<enum bitpos="2" name="XR_HAND_TRACKING_AIM_INDEX_PINCHING_BIT_FB" comment="Index finger pinch discrete signal"/>
<enum bitpos="3" name="XR_HAND_TRACKING_AIM_MIDDLE_PINCHING_BIT_FB" comment="Middle finger pinch discrete signal"/>
<enum bitpos="4" name="XR_HAND_TRACKING_AIM_RING_PINCHING_BIT_FB" comment="Ring finger pinch discrete signal"/>
<enum bitpos="5" name="XR_HAND_TRACKING_AIM_LITTLE_PINCHING_BIT_FB" comment="Little finger pinch discrete signal"/>
<enum bitpos="6" name="XR_HAND_TRACKING_AIM_SYSTEM_GESTURE_BIT_FB" comment="System gesture is active"/>
<enum bitpos="7" name="XR_HAND_TRACKING_AIM_DOMINANT_HAND_BIT_FB" comment="Hand is currently marked as dominant for the system"/>
<enum bitpos="8" name="XR_HAND_TRACKING_AIM_MENU_PRESSED_BIT_FB" comment="System menu gesture is active"/>
</enums>
<!-- flags for XR_FB_keyboard_tracking query state -->
<enums name="XrKeyboardTrackingFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_KEYBOARD_TRACKING_EXISTS_BIT_FB" comment="indicates that the system has a physically tracked keyboard to report. If not set then no other bits should be considered to be valid or meaningful. If set either XR_KEYBOARD_TRACKING_LOCAL_BIT_FB or XR_KEYBOARD_TRACKING_REMOTE_BIT_FB must also be set."/>
<enum bitpos="1" name="XR_KEYBOARD_TRACKING_LOCAL_BIT_FB" comment="indicates that the physically tracked keyboard is intended to be used in a local pairing with the system. Mutally exclusive with XR_KEYBOARD_TRACKING_REMOTE_BIT_FB."/>
<enum bitpos="2" name="XR_KEYBOARD_TRACKING_REMOTE_BIT_FB" comment="indicates that the physically tracked keyboard is intended to be used while paired to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_LOCAL_BIT_FB."/>
<enum bitpos="3" name="XR_KEYBOARD_TRACKING_CONNECTED_BIT_FB" comment="indicates that the physically tracked keyboard is actively connected to the headset and capable of sending key data"/>
</enums>
<!-- flags for XR_FB_keyboard_tracking query -->
<enums name="XrKeyboardTrackingQueryFlagBitsFB" type="bitmask">
<enum bitpos="1" name="XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB" comment="indicates the query is for the physically tracked keyboard that is intended to be used in a local pairing with the System. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB."/>
<enum bitpos="2" name="XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB" comment="indicates the query is for the physically tracked keyboard that may be connected to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB."/>
</enums>
<!-- flags for XR_FB_space_warp -->
<enums name="XrCompositionLayerSpaceWarpInfoFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB" comment="Skip current frame's space warp extrapolation"/>
</enums>
<!-- flags for XR_FB_render_model -->
<enums name="XrRenderModelFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB" comment="Minimal level of support. Can only contain a single mesh. Can only contain a single texture. Can not contain transparency. Assumes unlit rendering. Requires Extension KHR_texturebasisu."/>
<enum bitpos="1" name="XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB" comment="All of XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB support plus: Multiple meshes. Multiple Textures. Texture Transparency."/>
</enums>
<!-- enums for XR_HTC_facial_tracking -->
<enums name="XrFacialTrackingTypeHTC" type="enum">
<enum value="1" name="XR_FACIAL_TRACKING_TYPE_EYE_DEFAULT_HTC" comment="Specifies this handle will observe eye expressions, with values indexed by elink:XrEyeExpressionHTC whose count is dlink:XR_FACIAL_EXPRESSION_EYE_COUNT_HTC."/>
<enum value="2" name="XR_FACIAL_TRACKING_TYPE_LIP_DEFAULT_HTC" comment="Specifies this handle will observe lip expressions, with values indexed by elink:XrLipExpressionHTC whose count is dlink:XR_FACIAL_EXPRESSION_LIP_COUNT_HTC."/>
</enums>
<!-- enums for XR_HTC_passthrough -->
<enums name="XrPassthroughFormHTC" type="enum">
<enum value="0" name="XR_PASSTHROUGH_FORM_PLANAR_HTC" comment="Presents the passthrough with full of the entire screen."/>
<enum value="1" name="XR_PASSTHROUGH_FORM_PROJECTED_HTC" comment="Presents the passthrough projecting onto a custom mesh."/>
</enums>
<enums name="XrEyeExpressionHTC" type="enum">
<enum value="0" name="XR_EYE_EXPRESSION_LEFT_BLINK_HTC"/>
<enum value="1" name="XR_EYE_EXPRESSION_LEFT_WIDE_HTC"/>
<enum value="2" name="XR_EYE_EXPRESSION_RIGHT_BLINK_HTC"/>
<enum value="3" name="XR_EYE_EXPRESSION_RIGHT_WIDE_HTC"/>
<enum value="4" name="XR_EYE_EXPRESSION_LEFT_SQUEEZE_HTC"/>
<enum value="5" name="XR_EYE_EXPRESSION_RIGHT_SQUEEZE_HTC"/>
<enum value="6" name="XR_EYE_EXPRESSION_LEFT_DOWN_HTC"/>
<enum value="7" name="XR_EYE_EXPRESSION_RIGHT_DOWN_HTC"/>
<enum value="8" name="XR_EYE_EXPRESSION_LEFT_OUT_HTC"/>
<enum value="9" name="XR_EYE_EXPRESSION_RIGHT_IN_HTC"/>
<enum value="10" name="XR_EYE_EXPRESSION_LEFT_IN_HTC"/>
<enum value="11" name="XR_EYE_EXPRESSION_RIGHT_OUT_HTC"/>
<enum value="12" name="XR_EYE_EXPRESSION_LEFT_UP_HTC"/>
<enum value="13" name="XR_EYE_EXPRESSION_RIGHT_UP_HTC"/>
</enums>
<enums name="XrLipExpressionHTC" type="enum">
<enum value="0" name="XR_LIP_EXPRESSION_JAW_RIGHT_HTC"/>
<enum value="1" name="XR_LIP_EXPRESSION_JAW_LEFT_HTC"/>
<enum value="2" name="XR_LIP_EXPRESSION_JAW_FORWARD_HTC"/>
<enum value="3" name="XR_LIP_EXPRESSION_JAW_OPEN_HTC"/>
<enum value="4" name="XR_LIP_EXPRESSION_MOUTH_APE_SHAPE_HTC"/>
<enum value="5" name="XR_LIP_EXPRESSION_MOUTH_UPPER_RIGHT_HTC"/>
<enum value="6" name="XR_LIP_EXPRESSION_MOUTH_UPPER_LEFT_HTC"/>
<enum value="7" name="XR_LIP_EXPRESSION_MOUTH_LOWER_RIGHT_HTC"/>
<enum value="8" name="XR_LIP_EXPRESSION_MOUTH_LOWER_LEFT_HTC"/>
<enum value="9" name="XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC"/>
<enum value="10" name="XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC"/>
<enum value="11" name="XR_LIP_EXPRESSION_MOUTH_POUT_HTC"/>
<enum value="12" name="XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC"/>
<enum value="13" name="XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC"/>
<enum value="14" name="XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC"/>
<enum value="15" name="XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC"/>
<enum value="16" name="XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC"/>
<enum value="17" name="XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC"/>
<enum value="18" name="XR_LIP_EXPRESSION_CHEEK_SUCK_HTC"/>
<enum value="19" name="XR_LIP_EXPRESSION_MOUTH_UPPER_UPRIGHT_HTC"/>
<enum value="20" name="XR_LIP_EXPRESSION_MOUTH_UPPER_UPLEFT_HTC"/>
<enum value="21" name="XR_LIP_EXPRESSION_MOUTH_LOWER_DOWNRIGHT_HTC"/>
<enum value="22" name="XR_LIP_EXPRESSION_MOUTH_LOWER_DOWNLEFT_HTC"/>
<enum value="23" name="XR_LIP_EXPRESSION_MOUTH_UPPER_INSIDE_HTC"/>
<enum value="24" name="XR_LIP_EXPRESSION_MOUTH_LOWER_INSIDE_HTC"/>
<enum value="25" name="XR_LIP_EXPRESSION_MOUTH_LOWER_OVERLAY_HTC"/>
<enum value="26" name="XR_LIP_EXPRESSION_TONGUE_LONGSTEP1_HTC"/>
<enum value="27" name="XR_LIP_EXPRESSION_TONGUE_LEFT_HTC"/>
<enum value="28" name="XR_LIP_EXPRESSION_TONGUE_RIGHT_HTC"/>
<enum value="29" name="XR_LIP_EXPRESSION_TONGUE_UP_HTC"/>
<enum value="30" name="XR_LIP_EXPRESSION_TONGUE_DOWN_HTC"/>
<enum value="31" name="XR_LIP_EXPRESSION_TONGUE_ROLL_HTC"/>
<enum value="32" name="XR_LIP_EXPRESSION_TONGUE_LONGSTEP2_HTC"/>
<enum value="33" name="XR_LIP_EXPRESSION_TONGUE_UPRIGHT_MORPH_HTC"/>
<enum value="34" name="XR_LIP_EXPRESSION_TONGUE_UPLEFT_MORPH_HTC"/>
<enum value="35" name="XR_LIP_EXPRESSION_TONGUE_DOWNRIGHT_MORPH_HTC"/>
<enum value="36" name="XR_LIP_EXPRESSION_TONGUE_DOWNLEFT_MORPH_HTC"/>
</enums>
<!-- flags for XR_ALMALENCE_digital_lens_control -->
<enums name="XrDigitalLensControlFlagBitsALMALENCE" type="bitmask">
<enum bitpos="0" name="XR_DIGITAL_LENS_CONTROL_PROCESSING_DISABLE_BIT_ALMALENCE" comment="disables Digital Lens processing of render textures"/>
</enums>
<!-- flags for XR_FB_composition_layer_settings -->
<enums name="XrCompositionLayerSettingsFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB" comment="Indicates compositor may: use layer texture supersampling."/>
<enum bitpos="1" name="XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB" comment="Indicates compositor may: use high quality layer texture supersampling."/>
<enum bitpos="2" name="XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB" comment="Indicates compositor may: use layer texture sharpening."/>
<enum bitpos="3" name="XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB" comment="Indicates compositor may: use high quality layer texture sharpening."/>
</enums>
<!-- flags for XR_OCULUS_external_camera -->
<enums name="XrExternalCameraStatusFlagBitsOCULUS" type="bitmask">
<enum bitpos="0" name="XR_EXTERNAL_CAMERA_STATUS_CONNECTED_BIT_OCULUS" comment="External camera is connected"/>
<enum bitpos="1" name="XR_EXTERNAL_CAMERA_STATUS_CALIBRATING_BIT_OCULUS" comment="External camera is undergoing calibration"/>
<enum bitpos="2" name="XR_EXTERNAL_CAMERA_STATUS_CALIBRATION_FAILED_BIT_OCULUS" comment="External camera has tried and failed calibration"/>
<enum bitpos="3" name="XR_EXTERNAL_CAMERA_STATUS_CALIBRATED_BIT_OCULUS" comment="External camera has tried and passed calibration"/>
<enum bitpos="4" name="XR_EXTERNAL_CAMERA_STATUS_CAPTURING_BIT_OCULUS" comment="External camera is capturing"/>
</enums>
<enums name="XrExternalCameraAttachedToDeviceOCULUS" type="enum">
<enum value="0" name="XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_NONE_OCULUS" comment="External camera is at a fixed point in LOCAL space"/>
<enum value="1" name="XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_HMD_OCULUS" comment="External camera is attached to the HMD"/>
<enum value="2" name="XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_LTOUCH_OCULUS" comment="External camera is attached to a left Touch controller"/>
<enum value="3" name="XR_EXTERNAL_CAMERA_ATTACHED_TO_DEVICE_RTOUCH_OCULUS" comment="External camera is attached to a right Touch controller"/>
</enums>
<!-- flags for XR_META_performance_metrics -->
<enums name="XrPerformanceMetricsCounterFlagBitsMETA" type="bitmask">
<enum bitpos="0" name="XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META" comment="Indicates any of the values in XrPerformanceMetricsCounterMETA is valid."/>
<enum bitpos="1" name="XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META" comment="Indicates the uintValue in XrPerformanceMetricsCounterMETA is valid."/>
<enum bitpos="2" name="XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META" comment="Indicates the floatValue in XrPerformanceMetricsCounterMETA is valid."/>
</enums>
<enums name="XrPerformanceMetricsCounterUnitMETA" type="enum">
<enum value="0" name="XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_META" comment="the performance counter unit is generic (unspecified)."/>
<enum value="1" name="XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_META" comment="the performance counter unit is percentage (%)."/>
<enum value="2" name="XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_META" comment="the performance counter unit is millisecond."/>
<enum value="3" name="XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_META" comment="the performance counter unit is byte."/>
<enum value="4" name="XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META" comment="the performance counter unit is hertz (Hz)."/>
</enums>
<!-- enums for XR_HTC_foveation -->
<enums name="XrFoveationModeHTC" type="enum">
<enum value="0" name="XR_FOVEATION_MODE_DISABLE_HTC" comment="No foveation"/>
<enum value="1" name="XR_FOVEATION_MODE_FIXED_HTC" comment="Apply system default setting with fixed clear FOV and periphery quality."/>
<enum value="2" name="XR_FOVEATION_MODE_DYNAMIC_HTC" comment="Allow system to set foveation dynamically according realtime system metric or other extensions."/>
<enum value="3" name="XR_FOVEATION_MODE_CUSTOM_HTC" comment="Allow application to set foveation with desired clear FOV, periphery quality, and focal center offset."/>
</enums>
<enums name="XrFoveationDynamicFlagBitsHTC" type="bitmask">
<enum bitpos="0" name="XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC" comment="Allow system to set periphery pixel density dynamically."/>
<enum bitpos="1" name="XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC" comment="Allow system to set clear FOV degree dynamically."/>
<enum bitpos="2" name="XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC" comment="Allow system to set focal center offset dynamically."/>
</enums>
<enums name="XrFoveationLevelHTC" type="enum">
<enum value="0" name="XR_FOVEATION_LEVEL_NONE_HTC" comment="No foveation"/>
<enum value="1" name="XR_FOVEATION_LEVEL_LOW_HTC" comment="Light periphery pixel density drop and lower performance gain."/>
<enum value="2" name="XR_FOVEATION_LEVEL_MEDIUM_HTC" comment="Medium periphery pixel density drop and medium performance gain"/>
<enum value="3" name="XR_FOVEATION_LEVEL_HIGH_HTC" comment="Heavy periphery pixel density drop and higher performance gain"/>
</enums>
<!-- enums for XR_FB_composition_layer_depth_test -->
<enums name="XrCompareOpFB" type="enum">
<enum value="0" name="XR_COMPARE_OP_NEVER_FB" comment="Comparison is never true."/>
<enum value="1" name="XR_COMPARE_OP_LESS_FB" comment="Comparison is true if source less than is destination."/>
<enum value="2" name="XR_COMPARE_OP_EQUAL_FB" comment="Comparison is true if source is equal to destination."/>
<enum value="3" name="XR_COMPARE_OP_LESS_OR_EQUAL_FB" comment="Comparison is true if source is less than or equal to destination."/>
<enum value="4" name="XR_COMPARE_OP_GREATER_FB" comment="Comparison is true if source is greater than destination."/>
<enum value="5" name="XR_COMPARE_OP_NOT_EQUAL_FB" comment="Comparison is true if source is not equal to destination."/>
<enum value="6" name="XR_COMPARE_OP_GREATER_OR_EQUAL_FB" comment="Comparison is true if source is greater than or equal to destination."/>
<enum value="7" name="XR_COMPARE_OP_ALWAYS_FB" comment="Comparison is always true."/>
</enums>
<!-- enums for XR_ML_frame_end_info -->
<enums name="XrFrameEndInfoFlagBitsML" type="bitmask">
<enum bitpos="0" name="XR_FRAME_END_INFO_PROTECTED_BIT_ML" comment="Indicates that the content for this frame is protected and should not be recorded or captured outside the graphics system."/>
<enum bitpos="1" name="XR_FRAME_END_INFO_VIGNETTE_BIT_ML" comment="Indicates that a soft fade to transparent should be added to the frame in the compositor to blend any hard edges at the FOV limits."/>
</enums>
<!-- enums for XR_ML_global_dimmer -->
<enums name="XrGlobalDimmerFrameEndInfoFlagBitsML" type="bitmask">
<enum bitpos="0" name="XR_GLOBAL_DIMMER_FRAME_END_INFO_ENABLED_BIT_ML" comment="Indicates that the global dimmer should: be enabled and controlled by slink:XrGlobalDimmerFrameEndInfoML::pname:dimmerValue."/>
</enums>
<!-- enums for XR_QCOM_tracking_optimization_settings -->
<enums name="XrTrackingOptimizationSettingsHintQCOM" type="enum">
<enum value="0" name="XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_NONE_QCOM" comment="Used by the application to indicate that it does not have a preference to optimize for. The run-time is understood to choose a balanced approach."/>
<enum value="1" name="XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LONG_RANGE_PRIORIZATION_QCOM" comment="Used by the application to indicate that it prefers tracking to be optimized for long range, possibly at the expense of competing interests."/>
<enum value="2" name="XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_CLOSE_RANGE_PRIORIZATION_QCOM" comment="Used by the application to indicate that it prefers tracking to be optimized for close range, possibly at the expense of competing interests."/>
<enum value="3" name="XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_LOW_POWER_PRIORIZATION_QCOM" comment="Used by the application to indicate that it prefers tracking to be optimized for low power consumption, possibly at the expense of competing interests."/>
<enum value="4" name="XR_TRACKING_OPTIMIZATION_SETTINGS_HINT_HIGH_POWER_PRIORIZATION_QCOM" comment="Used by the application to indicate that it prefers tracking to be optimized for increased tracking performance, possibly at the cost of increased power consumption."/>
</enums>
<enums name="XrTrackingOptimizationSettingsDomainQCOM" type="enum">
<enum value="1" name="XR_TRACKING_OPTIMIZATION_SETTINGS_DOMAIN_ALL_QCOM" comment="Setting applies to all QCOM tracking extensions."/>
</enums>
<!-- enums for XR_MNDX_force_feedback_curl -->
<enums name="XrForceFeedbackCurlLocationMNDX" type="enum">
<enum value="0" name="XR_FORCE_FEEDBACK_CURL_LOCATION_THUMB_CURL_MNDX" comment="force feedback for thumb curl"/>
<enum value="1" name="XR_FORCE_FEEDBACK_CURL_LOCATION_INDEX_CURL_MNDX" comment="force feedback for index finger curl"/>
<enum value="2" name="XR_FORCE_FEEDBACK_CURL_LOCATION_MIDDLE_CURL_MNDX" comment="force feedback for middle finger curl"/>
<enum value="3" name="XR_FORCE_FEEDBACK_CURL_LOCATION_RING_CURL_MNDX" comment="force feedback for ring finger curl"/>
<enum value="4" name="XR_FORCE_FEEDBACK_CURL_LOCATION_LITTLE_CURL_MNDX" comment="force feedback for little finger curl"/>
</enums>
<!-- SECTION: OpenXR command definitions -->
<commands>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_RUNTIME_UNAVAILABLE,XR_ERROR_API_LAYER_NOT_PRESENT">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_RUNTIME_UNAVAILABLE,XR_ERROR_NAME_INVALID,XR_ERROR_INITIALIZATION_FAILED,XR_ERROR_EXTENSION_NOT_PRESENT,XR_ERROR_API_VERSION_UNSUPPORTED,XR_ERROR_API_LAYER_NOT_PRESENT">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_FORM_FACTOR_UNSUPPORTED,XR_ERROR_FORM_FACTOR_UNAVAILABLE">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SYSTEM_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SYSTEM_INVALID,XR_ERROR_INITIALIZATION_FAILED,XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING,XR_ERROR_GRAPHICS_DEVICE_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED,XR_ERROR_FEATURE_UNSUPPORTED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,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_SESSION_LOSS_PENDING,XR_TIMEOUT_EXPIRED" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SESSION_RUNNING,XR_ERROR_SESSION_NOT_READY">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_STOPPING,XR_ERROR_SESSION_NOT_RUNNING">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_RUNNING">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_REFERENCE_SPACE_UNSUPPORTED,XR_ERROR_POSE_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_CALL_ORDER_INVALID">
<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>
<implicitexternsyncparams>
<param>the pname:session parameter by any other flink:xrBeginFrame or flink:xrEndFrame call</param>
</implicitexternsyncparams>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID,XR_ERROR_SWAPCHAIN_RECT_INVALID,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_POSE_INVALID,XR_ERROR_LAYER_LIMIT_EXCEEDED,XR_ERROR_LAYER_INVALID,XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED,XR_ERROR_CALL_ORDER_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>
<implicitexternsyncparams>
<param>the pname:session parameter by any other flink:xrBeginFrame or flink:xrEndFrame call</param>
</implicitexternsyncparams>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_RUNNING">
<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,XR_SESSION_NOT_FOCUSED" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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,XR_SESSION_NOT_FOCUSED" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_PATH_COUNT_EXCEEDED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_INVALID">
<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_SESSION_LOSS_PENDING,XR_SPACE_BOUNDS_UNAVAILABLE" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR,XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_NAME_INVALID,XR_ERROR_NAME_DUPLICATED,XR_ERROR_LOCALIZED_NAME_INVALID,XR_ERROR_LOCALIZED_NAME_DUPLICATED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_NAME_INVALID,XR_ERROR_NAME_DUPLICATED,XR_ERROR_LOCALIZED_NAME_INVALID,XR_ERROR_LOCALIZED_NAME_DUPLICATED,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<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_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<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"><type>char</type>* <name>buffer</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<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"><type>char</type>* <name>buffer</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_TIME_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_TIME_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SYSTEM_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_TIME_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_TIME_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_TIME_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySpatialAnchorMSFT</name></proto>
<param externsync="true_with_children"><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param>
</command>
<!-- commands for XR_EXT_conformance_automation -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_POSE_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_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>
<!-- commands for XR_MSFT_spatial_graph_bridge -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,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>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_TIME_INVALID,XR_ERROR_POSE_INVALID">
<proto><type>XrResult</type> <name>xrTryCreateSpatialGraphStaticNodeBindingMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialGraphStaticNodeBindingCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSpatialGraphNodeBindingMSFT</type>* <name>nodeBinding</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySpatialGraphNodeBindingMSFT</name></proto>
<param externsync="true_with_children"><type>XrSpatialGraphNodeBindingMSFT</type> <name>nodeBinding</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrGetSpatialGraphNodeBindingPropertiesMSFT</name></proto>
<param><type>XrSpatialGraphNodeBindingMSFT</type> <name>nodeBinding</name></param>
<param optional="true">const <type>XrSpatialGraphNodeBindingPropertiesGetInfoMSFT</type>* <name>getInfo</name></param>
<param><type>XrSpatialGraphNodeBindingPropertiesMSFT</type>* <name>properties</name></param>
</command>
<!-- XR_EXT_hand_tracking -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,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_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID">
<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_FB_face_tracking -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateFaceTrackerFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFaceTrackerCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrFaceTrackerFB</type>* <name>faceTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyFaceTrackerFB</name></proto>
<param externsync="true_with_children"><type>XrFaceTrackerFB</type> <name>faceTracker</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrGetFaceExpressionWeightsFB</name></proto>
<param><type>XrFaceTrackerFB</type> <name>faceTracker</name></param>
<param>const <type>XrFaceExpressionInfoFB</type>* <name>expressionInfo</name></param>
<param><type>XrFaceExpressionWeightsFB</type>* <name>expressionWeights</name></param>
</command>
<!-- XR_FB_body_tracking -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateBodyTrackerFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrBodyTrackerCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrBodyTrackerFB</type>* <name>bodyTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyBodyTrackerFB</name></proto>
<param externsync="true_with_children"><type>XrBodyTrackerFB</type> <name>bodyTracker</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrLocateBodyJointsFB</name></proto>
<param><type>XrBodyTrackerFB</type> <name>bodyTracker</name></param>
<param>const <type>XrBodyJointsLocateInfoFB</type>* <name>locateInfo</name></param>
<param><type>XrBodyJointLocationsFB</type>* <name>locations</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrGetBodySkeletonFB</name></proto>
<param><type>XrBodyTrackerFB</type> <name>bodyTracker</name></param>
<param><type>XrBodySkeletonFB</type>* <name>skeleton</name></param>
</command>
<!-- XR_FB_eye_tracking_social -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateEyeTrackerFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrEyeTrackerCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrEyeTrackerFB</type>* <name>eyeTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyEyeTrackerFB</name></proto>
<param externsync="true_with_children"><type>XrEyeTrackerFB</type> <name>eyeTracker</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrGetEyeGazesFB</name></proto>
<param><type>XrEyeTrackerFB</type> <name>eyeTracker</name></param>
<param>const <type>XrEyeGazesInfoFB</type>* <name>gazeInfo</name></param>
<param><type>XrEyeGazesFB</type>* <name>eyeGazes</name></param>
</command>
<!-- XR_MSFT_hand_tracking_mesh -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID,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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_TIME_INVALID,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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<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_MSFT_scene_understanding -->
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateSceneComputeFeaturesMSFT</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>featureCapacityInput</name></param>
<param><type>uint32_t</type>* <name>featureCountOutput</name></param>
<param optional="true" len="featureCapacityInput"><type>XrSceneComputeFeatureMSFT</type>* <name>features</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateSceneObserverMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true">const <type>XrSceneObserverCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSceneObserverMSFT</type>* <name>sceneObserver</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySceneObserverMSFT</name></proto>
<param externsync="true_with_children"><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT">
<proto><type>XrResult</type> <name>xrCreateSceneMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param optional="true">const <type>XrSceneCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSceneMSFT</type>* <name>scene</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySceneMSFT</name></proto>
<param externsync="true_with_children"><type>XrSceneMSFT</type> <name>scene</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_TIME_INVALID,XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT,XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT,XR_ERROR_POSE_INVALID,XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT">
<proto><type>XrResult</type> <name>xrComputeNewSceneMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param>const <type>XrNewSceneComputeInfoMSFT</type>* <name>computeInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrGetSceneComputeStateMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param><type>XrSceneComputeStateMSFT</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT">
<proto><type>XrResult</type> <name>xrGetSceneComponentsMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSceneComponentsGetInfoMSFT</type>* <name>getInfo</name></param>
<param><type>XrSceneComponentsMSFT</type>* <name>components</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrLocateSceneComponentsMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSceneComponentsLocateInfoMSFT</type>* <name>locateInfo</name></param>
<param><type>XrSceneComponentLocationsMSFT</type>* <name>locations</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT,XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetSceneMeshBuffersMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSceneMeshBuffersGetInfoMSFT</type>* <name>getInfo</name></param>
<param><type>XrSceneMeshBuffersMSFT</type>* <name>buffers</name></param>
</command>
<!-- XR_MSFT_scene_understanding_serialization -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT">
<proto><type>XrResult</type> <name>xrDeserializeSceneMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param>const <type>XrSceneDeserializeInfoMSFT</type>* <name>deserializeInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetSerializedSceneFragmentDataMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSerializedSceneFragmentDataGetInfoMSFT</type>* <name>getInfo</name></param>
<param optional="true"><type>uint32_t</type> <name>countInput</name></param>
<param><type>uint32_t</type>* <name>readOutput</name></param>
<param optional="true" len="countInput"><type>uint8_t</type>* <name>buffer</name></param>
</command>
<!-- XR_FB_display_refresh_rate -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<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,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY">
<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_swapchain_update_state -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrUpdateSwapchainFB</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param>const <type>XrSwapchainStateBaseHeaderFB</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrGetSwapchainStateFB</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param><type>XrSwapchainStateBaseHeaderFB</type>* <name>state</name></param>
</command>
<!-- XR_FB_color_space -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<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_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB">
<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>
<!-- XR_FB_foveation -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateFoveationProfileFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFoveationProfileCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrFoveationProfileFB</type>* <name>profile</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyFoveationProfileFB</name></proto>
<param externsync="true_with_children"><type>XrFoveationProfileFB</type> <name>profile</name></param>
</command>
<!-- XR_META_foveation_eye_tracked -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetFoveationEyeTrackedStateMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrFoveationEyeTrackedStateMETA</type>* <name>foveationState</name></param>
</command>
<!-- XR_FB_hand_tracking_mesh -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetHandMeshFB</name></proto>
<param><type>XrHandTrackerEXT</type> <name>handTracker</name></param>
<param><type>XrHandTrackingMeshFB</type>* <name>mesh</name></param>
</command>
<!-- XR_FB_render_model -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrEnumerateRenderModelPathsFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true"><type>uint32_t</type> <name>pathCapacityInput</name></param>
<param><type>uint32_t</type>* <name>pathCountOutput</name></param>
<param optional="true" len="pathCapacityInput"><type>XrRenderModelPathInfoFB</type>* <name>paths</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_RENDER_MODEL_UNAVAILABLE_FB" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrGetRenderModelPropertiesFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>path</name></param>
<param><type>XrRenderModelPropertiesFB</type>* <name>properties</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_RENDER_MODEL_UNAVAILABLE_FB" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_RENDER_MODEL_KEY_INVALID_FB">
<proto><type>XrResult</type> <name>xrLoadRenderModelFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrRenderModelLoadInfoFB</type>* <name>info</name></param>
<param><type>XrRenderModelBufferFB</type>* <name>buffer</name></param>
</command>
<!-- XR_FB_keyboard_tracking -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrQuerySystemTrackedKeyboardFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrKeyboardTrackingQueryFB</type>* <name>queryInfo</name></param>
<param><type>XrKeyboardTrackingDescriptionFB</type>* <name>keyboard</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateKeyboardSpaceFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrKeyboardSpaceCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>keyboardSpace</name></param>
</command>
<!-- commands for XR_VARJO_environment_depth_estimation -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetEnvironmentDepthEstimationVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrBool32</type> <name>enabled</name></param>
</command>
<!-- XR_MSFT_composition_layer_reprojection -->
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateReprojectionModesMSFT</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>modeCapacityInput</name></param>
<param><type>uint32_t</type>* <name>modeCountOutput</name></param>
<param optional="true" len="modeCapacityInput"><type>XrReprojectionModeMSFT</type>* <name>modes</name></param>
</command>
<!-- commands for XR_OCULUS_audio_device_guid -->
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetAudioOutputDeviceGuidOculus</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>wchar_t</type> <name>buffer</name>[<enum>XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS</enum>]</param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetAudioInputDeviceGuidOculus</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>wchar_t</type> <name>buffer</name>[<enum>XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS</enum>]</param>
</command>
<!-- XR_FB_spatial_entity -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_TIME_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialAnchorCreateInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceUuidFB</name></proto>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrUuidEXT</type>* <name>uuid</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrEnumerateSpaceSupportedComponentsFB</name></proto>
<param><type>XrSpace</type> <name>space</name></param>
<param optional="true"><type>uint32_t</type> <name>componentTypeCapacityInput</name></param>
<param><type>uint32_t</type>* <name>componentTypeCountOutput</name></param>
<param optional="true" len="componentTypeCapacityInput"><type>XrSpaceComponentTypeFB</type>* <name>componentTypes</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB,XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB,XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetSpaceComponentStatusFB</name></proto>
<param><type>XrSpace</type> <name>space</name></param>
<param>const <type>XrSpaceComponentStatusSetInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceComponentStatusFB</name></proto>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrSpaceComponentTypeFB</type> <name>componentType</name></param>
<param><type>XrSpaceComponentStatusFB</type>* <name>status</name></param>
</command>
<!-- XR_FB_triangle_mesh -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateTriangleMeshFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrTriangleMeshCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrTriangleMeshFB</type>* <name>outTriangleMesh</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrDestroyTriangleMeshFB</name></proto>
<param externsync="true_with_children"><type>XrTriangleMeshFB</type> <name>mesh</name></param>
<implicitexternsyncparams>
<param>the buffers returned from calls to flink:xrTriangleMeshGetVertexBufferFB and flink:xrTriangleMeshGetIndexBufferFB on pname:mesh</param>
</implicitexternsyncparams>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrTriangleMeshGetVertexBufferFB</name></proto>
<param><type>XrTriangleMeshFB</type> <name>mesh</name></param>
<param><type>XrVector3f</type>** <name>outVertexBuffer</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrTriangleMeshGetIndexBufferFB</name></proto>
<param><type>XrTriangleMeshFB</type> <name>mesh</name></param>
<param><type>uint32_t</type>** <name>outIndexBuffer</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrTriangleMeshBeginUpdateFB</name></proto>
<param><type>XrTriangleMeshFB</type> <name>mesh</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrTriangleMeshEndUpdateFB</name></proto>
<param><type>XrTriangleMeshFB</type> <name>mesh</name></param>
<param><type>uint32_t</type> <name>vertexCount</name></param>
<param><type>uint32_t</type> <name>triangleCount</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrTriangleMeshBeginVertexBufferUpdateFB</name></proto>
<param><type>XrTriangleMeshFB</type> <name>mesh</name></param>
<param><type>uint32_t</type>* <name>outVertexCount</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrTriangleMeshEndVertexBufferUpdateFB</name></proto>
<param><type>XrTriangleMeshFB</type> <name>mesh</name></param>
</command>
<!-- XR_FB_passthrough -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_UNKNOWN_PASSTHROUGH_FB,XR_ERROR_NOT_PERMITTED_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB">
<proto><type>XrResult</type> <name>xrCreatePassthroughFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrPassthroughCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrPassthroughFB</type>* <name>outPassthrough</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrDestroyPassthroughFB</name></proto>
<param externsync="true_with_children"><type>XrPassthroughFB</type> <name>passthrough</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrPassthroughStartFB</name></proto>
<param><type>XrPassthroughFB</type> <name>passthrough</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrPassthroughPauseFB</name></proto>
<param><type>XrPassthroughFB</type> <name>passthrough</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_UNKNOWN_PASSTHROUGH_FB,XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED,XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB">
<proto><type>XrResult</type> <name>xrCreatePassthroughLayerFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrPassthroughLayerCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrPassthroughLayerFB</type>* <name>outLayer</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrDestroyPassthroughLayerFB</name></proto>
<param externsync="true_with_children"><type>XrPassthroughLayerFB</type> <name>layer</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrPassthroughLayerPauseFB</name></proto>
<param><type>XrPassthroughLayerFB</type> <name>layer</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrPassthroughLayerResumeFB</name></proto>
<param><type>XrPassthroughLayerFB</type> <name>layer</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrPassthroughLayerSetStyleFB</name></proto>
<param><type>XrPassthroughLayerFB</type> <name>layer</name></param>
<param>const <type>XrPassthroughStyleFB</type>* <name>style</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID,XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateGeometryInstanceFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrGeometryInstanceCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrGeometryInstanceFB</type>* <name>outGeometryInstance</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrDestroyGeometryInstanceFB</name></proto>
<param externsync="true_with_children"><type>XrGeometryInstanceFB</type> <name>instance</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGeometryInstanceSetTransformFB</name></proto>
<param><type>XrGeometryInstanceFB</type> <name>instance</name></param>
<param>const <type>XrGeometryInstanceTransformFB</type>* <name>transformation</name></param>
</command>
<!-- XR_FB_spatial_entity_query -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrQuerySpacesFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpaceQueryInfoBaseHeaderFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrRetrieveSpaceQueryResultsFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrAsyncRequestIdFB</type> <name>requestId</name></param>
<param><type>XrSpaceQueryResultsFB</type>* <name>results</name></param>
</command>
<!-- XR_FB_spatial_entity_storage -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSaveSpaceFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpaceSaveInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrEraseSpaceFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpaceEraseInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<!-- XR_FB_spatial_entity_storage_batch -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_NETWORK_TIMEOUT_FB,XR_ERROR_SPACE_NETWORK_REQUEST_FAILED_FB,XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB,XR_ERROR_SPACE_LOCALIZATION_FAILED_FB,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSaveSpaceListFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpaceListSaveInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<!-- XR_FB_spatial_entity_sharing -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_NETWORK_TIMEOUT_FB,XR_ERROR_SPACE_NETWORK_REQUEST_FAILED_FB,XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB,XR_ERROR_SPACE_LOCALIZATION_FAILED_FB,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrShareSpacesFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpaceShareInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<!-- XR_FB_spatial_entity_container -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceContainerFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrSpaceContainerFB</type>* <name>spaceContainerOutput</name></param>
</command>
<!-- XR_FB_scene -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceBoundingBox2DFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrRect2Df</type>* <name>boundingBox2DOutput</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceBoundingBox3DFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrRect3DfFB</type>* <name>boundingBox3DOutput</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceSemanticLabelsFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrSemanticLabelsFB</type>* <name>semanticLabelsOutput</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceBoundary2DFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrBoundary2DFB</type>* <name>boundary2DOutput</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceRoomLayoutFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrRoomLayoutFB</type>* <name>roomLayoutOutput</name></param>
</command>
<!-- XR_FB_scene_capture -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrRequestSceneCaptureFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSceneCaptureRequestInfoFB</type>* <name>info</name></param>
<param><type>XrAsyncRequestIdFB</type>* <name>requestId</name></param>
</command>
<!-- XR_FB_passthrough_keyboard_hands -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrPassthroughLayerSetKeyboardHandsIntensityFB</name></proto>
<param><type>XrPassthroughLayerFB</type> <name>layer</name></param>
<param>const <type>XrPassthroughKeyboardHandsIntensityFB</type>* <name>intensity</name></param>
</command>
<!-- XR_MSFT_spatial_anchor_persistence -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorStoreConnectionMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type>* <name>spatialAnchorStore</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrDestroySpatialAnchorStoreConnectionMSFT</name></proto>
<param externsync="true_with_children"><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrPersistSpatialAnchorMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
<param>const <type>XrSpatialAnchorPersistenceInfoMSFT</type>* <name>spatialAnchorPersistenceInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumeratePersistedSpatialAnchorNamesMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
<param optional="true"><type>uint32_t</type> <name>spatialAnchorNamesCapacityInput</name></param>
<param optional="true"><type>uint32_t</type>* <name>spatialAnchorNamesCountOutput</name></param>
<param optional="true" len="spatialAnchorNamesCapacityInput"><type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>persistedAnchorNames</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorFromPersistedNameMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT</type>* <name>spatialAnchorCreateInfo</name></param>
<param><type>XrSpatialAnchorMSFT</type>* <name>spatialAnchor</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrUnpersistSpatialAnchorMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
<param>const <type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>spatialAnchorPersistenceName</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrClearSpatialAnchorStoreMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
</command>
<!-- XR_HTC_facial_tracking -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateFacialTrackerHTC</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFacialTrackerCreateInfoHTC</type>* <name>createInfo</name></param>
<param><type>XrFacialTrackerHTC</type>* <name>facialTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyFacialTrackerHTC</name></proto>
<param externsync="true_with_children"><type>XrFacialTrackerHTC</type> <name>facialTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrGetFacialExpressionsHTC</name></proto>
<param><type>XrFacialTrackerHTC</type> <name>facialTracker</name></param>
<param><type>XrFacialExpressionsHTC</type>* <name>facialExpressions</name></param>
</command>
<!-- XR_HTC_passthrough -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreatePassthroughHTC</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrPassthroughCreateInfoHTC</type>* <name>createInfo</name></param>
<param><type>XrPassthroughHTC</type>* <name>passthrough</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyPassthroughHTC</name></proto>
<param externsync="true_with_children"><type>XrPassthroughHTC</type> <name>passthrough</name></param>
</command>
<!-- XR_HTCX_vive_tracker_interaction -->
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateViveTrackerPathsHTCX</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param optional="true"><type>uint32_t</type> <name>pathCapacityInput</name></param>
<param><type>uint32_t</type>* <name>pathCountOutput</name></param>
<param optional="true" len="pathCapacityInput"><type>XrViveTrackerPathsHTCX</type>* <name>paths</name></param>
</command>
<!-- commands for XR_VARJO_marker_tracking -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetMarkerTrackingVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrBool32</type> <name>enabled</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_MARKER_ID_INVALID_VARJO,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetMarkerTrackingTimeoutVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>uint64_t</type> <name>markerId</name></param>
<param><type>XrDuration</type> <name>timeout</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_MARKER_ID_INVALID_VARJO,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetMarkerTrackingPredictionVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>uint64_t</type> <name>markerId</name></param>
<param><type>XrBool32</type> <name>enabled</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_MARKER_NOT_TRACKED_VARJO,XR_ERROR_MARKER_ID_INVALID_VARJO,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetMarkerSizeVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>uint64_t</type> <name>markerId</name></param>
<param><type>XrExtent2Df</type>* <name>size</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID,XR_ERROR_MARKER_ID_INVALID_VARJO,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateMarkerSpaceVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrMarkerSpaceCreateInfoVARJO</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<!-- commands for XR_ALMALENCE_digital_lens_control -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrSetDigitalLensControlALMALENCE</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrDigitalLensControlALMALENCE</type>* <name>digitalLensControl</name></param>
</command>
<!-- commands for XR_VARJO_view_offset -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetViewOffsetVARJO</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>float</type> <name>offset</name></param>
</command>
<!-- commands for XR_OCULUS_external_camera -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateExternalCamerasOCULUS</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true"><type>uint32_t</type> <name>cameraCapacityInput</name></param>
<param><type>uint32_t</type>* <name>cameraCountOutput</name></param>
<param optional="true" len="cameraCapacityInput"><type>XrExternalCameraOCULUS</type>* <name>cameras</name></param>
</command>
<!-- commands for XR_META_performance_metrics -->
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumeratePerformanceMetricsCounterPathsMETA</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param optional="true"><type>uint32_t</type> <name>counterPathCapacityInput</name></param>
<param><type>uint32_t</type>* <name>counterPathCountOutput</name></param>
<param optional="true" len="counterPathCapacityInput"><type>XrPath</type>* <name>counterPaths</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrSetPerformanceMetricsStateMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrPerformanceMetricsStateMETA</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrGetPerformanceMetricsStateMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPerformanceMetricsStateMETA</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrQueryPerformanceMetricsCounterMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>counterPath</name></param>
<param><type>XrPerformanceMetricsCounterMETA</type>* <name>counter</name></param>
</command>
<!-- commands for XR_HTC_foveation -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrApplyFoveationHTC</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFoveationApplyInfoHTC</type>* <name>applyInfo</name></param>
</command>
<!-- commands for XR_ML_compat -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_POSE_INVALID">
<proto><type>XrResult</type> <name>xrCreateSpaceFromCoordinateFrameUIDML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrCoordinateSpaceCreateInfoML</type> *<name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<!-- XR_FB_haptic_pcm -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetDeviceSampleRateFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrHapticActionInfo</type>* <name>hapticActionInfo</name></param>
<param><type>XrDevicePcmSampleRateGetInfoFB</type>* <name>deviceSampleRate</name></param>
</command>
<!-- XR_QCOM_tracking_optimization_settings -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_HINT_ALREADY_SET_QCOM">
<proto><type>XrResult</type> <name>xrSetTrackingOptimizationSettingsHintQCOM</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrTrackingOptimizationSettingsDomainQCOM</type> <name>domain</name></param>
<param><type>XrTrackingOptimizationSettingsHintQCOM</type> <name>hint</name></param>
</command>
<!-- commands for XR_FB_spatial_entity_user -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateSpaceUserFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpaceUserCreateInfoFB</type>* <name>info</name></param>
<param><type>XrSpaceUserFB</type>* <name>user</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrGetSpaceUserIdFB</name></proto>
<param><type>XrSpaceUserFB</type> <name>user</name></param>
<param><type>XrSpaceUserIdFB</type>* <name>userId</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySpaceUserFB</name></proto>
<param externsync="true_with_children"><type>XrSpaceUserFB</type> <name>user</name></param>
</command>
<!-- commands for XR_MNDX_force_feedback_curl -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_SESSION_NOT_FOCUSED" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST">
<proto><type>XrResult</type> <name>xrApplyForceFeedbackCurlMNDX</name></proto>
<param><type>XrHandTrackerEXT</type> <name>handTracker</name></param>
<param>const <type>XrForceFeedbackCurlApplyLocationsMNDX</type>* <name>locations</name></param>
</command>
</commands>
<interaction_profiles>
<interaction_profile name="/interaction_profiles/khr/simple_controller" title="Khronos Simple Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/select/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/google/daydream_controller" title="Google Daydream Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/select/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/htc/vive_controller" title="HTC Vive Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/htc/vive_pro" title="HTC Vive Pro">
<user_path path="/user/head"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/volume_up/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/volume_down/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/mute_mic/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/microsoft/motion_controller" title="Microsoft Mixed Reality Motion Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/microsoft/xbox_controller" title="Microsoft Xbox Controller">
<user_path path="/user/gamepad"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/view/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/dpad_down/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/dpad_right/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/dpad_up/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/dpad_left/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/shoulder_left/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/shoulder_right/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick_left/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick_right/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger_left/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger_right/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick_left" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick_left/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick_left/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick_right" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick_right/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick_right/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/output/haptic_left" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
<component subpath="/output/haptic_right" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
<component subpath="/output/haptic_left_trigger" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
<component subpath="/output/haptic_right_trigger" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/oculus/go_controller" title="Oculus Go Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/back/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/oculus/touch_controller" title="Oculus Touch Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/x/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbrest/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/valve/index_controller" title="Valve Index Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/system/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/a/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/b/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/squeeze/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_EXT_eye_gaze_interaction -->
<interaction_profile name="/interaction_profiles/ext/eye_gaze_interaction" title="Multivendor eye gaze interaction">
<user_path path="/user/eyes_ext"/>
<component subpath="/input/gaze_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</interaction_profile>
<!-- XR_MSFT_hand_interaction -->
<interaction_profile name="/interaction_profiles/microsoft/hand_interaction" title="Microsoft hand interaction">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/select/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</interaction_profile>
<!-- XR_HUAWEI_controller_interaction -->
<interaction_profile name="/interaction_profiles/huawei/controller" title="Huawei Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/home/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/back/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/volume_up/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/volume_down/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_HTC_hand_interaction -->
<interaction_profile name="/interaction_profiles/htc/hand_interaction" title="HTC hand interaction">
<user_path path="/user/hand_htc/left"/>
<user_path path="/user/hand_htc/right"/>
<component subpath="/input/select/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</interaction_profile>
<!-- XR_HTC_vive_wrist_tracker_interaction -->
<interaction_profile name="/interaction_profiles/htc/vive_wrist_tracker" title="HTC VIVE Wrist Tracker">
<user_path path="/user/wrist_htc/left"/>
<user_path path="/user/wrist_htc/right"/>
<component user_path="/user/wrist_htc/left" subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/wrist_htc/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/wrist_htc/right" subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/wrist_htc/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/entity_htc/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</interaction_profile>
<!-- XR_HTC_vive_cosmos_controller_interaction -->
<interaction_profile name="/interaction_profiles/htc/vive_cosmos_controller" title="HTC VIVE Cosmos Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/shoulder/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbrest/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_HTC_vive_focus3_controller_interaction -->
<interaction_profile name="/interaction_profiles/htc/vive_focus3_controller" title="HTC VIVE Focus 3 Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbrest/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_HTCX_vive_tracker_interaction -->
<interaction_profile name="/interaction_profiles/htc/vive_tracker_htcx" title="HTC VIVE Tracker">
<user_path path="/user/vive_tracker_htcx/role/handheld_object"/>
<user_path path="/user/vive_tracker_htcx/role/left_foot"/>
<user_path path="/user/vive_tracker_htcx/role/right_foot"/>
<user_path path="/user/vive_tracker_htcx/role/left_shoulder"/>
<user_path path="/user/vive_tracker_htcx/role/right_shoulder"/>
<user_path path="/user/vive_tracker_htcx/role/left_elbow"/>
<user_path path="/user/vive_tracker_htcx/role/right_elbow"/>
<user_path path="/user/vive_tracker_htcx/role/left_knee"/>
<user_path path="/user/vive_tracker_htcx/role/right_knee"/>
<user_path path="/user/vive_tracker_htcx/role/waist"/>
<user_path path="/user/vive_tracker_htcx/role/chest"/>
<user_path path="/user/vive_tracker_htcx/role/camera"/>
<user_path path="/user/vive_tracker_htcx/role/keyboard"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_EXT_samsung_odyssey_controller -->
<interaction_profile name="/interaction_profiles/samsung/odyssey_controller" title="Samsung Odyssey Mixed Reality Motion Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_EXT_hp_mixed_reality_controller -->
<interaction_profile name="/interaction_profiles/hp/mixed_reality_controller" title="HP Mixed Reality Motion Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_ML_ml2_controller_interaction -->
<interaction_profile name="/interaction_profiles/ml/ml2_controller" title="Magic Leap 2 Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/home/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/trackpad/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trackpad/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/shoulder/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/facebook/touch_controller_pro" title="Meta Quest Touch Pro Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/x/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbrest/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
<component subpath="/input/thumbrest/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/stylus_fb/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/curl_fb" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/slide_fb" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumb_fb/proximity_fb" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/proximity_fb" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/output/haptic_trigger_fb" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
<component subpath="/output/haptic_thumb_fb" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<!-- XR_BD_controller_interaction -->
<interaction_profile name="/interaction_profiles/bytedance/pico_neo3_controller" title="Bytedance PICO Neo3 Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/x/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/bytedance/pico4_controller" title="Bytedance PICO 4 Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component user_path="/user/hand/left" subpath="/input/x/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/x/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/menu/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/left" subpath="/input/y/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/a/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component user_path="/user/hand/right" subpath="/input/b/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/system/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/squeeze/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/x" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/y" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/touch" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grip/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/aim/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/output/haptic" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
</interaction_profiles>
<!-- 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"/>
<type 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"/>
<interaction_profile name="/interaction_profiles/khr/simple_controller"/>
<interaction_profile name="/interaction_profiles/google/daydream_controller"/>
<interaction_profile name="/interaction_profiles/htc/vive_controller"/>
<interaction_profile name="/interaction_profiles/htc/vive_pro"/>
<interaction_profile name="/interaction_profiles/microsoft/motion_controller"/>
<interaction_profile name="/interaction_profiles/microsoft/xbox_controller"/>
<interaction_profile name="/interaction_profiles/oculus/go_controller"/>
<interaction_profile name="/interaction_profiles/oculus/touch_controller"/>
<interaction_profile name="/interaction_profiles/valve/index_controller"/>
</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_scale_bias -->
<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" dir="-" extends="XrResult" name="XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR" comment="xrSetAndroidApplicationThreadKHR failed as thread id is invalid."/>
<enum offset="1" dir="-" extends="XrResult" 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="6" 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="4" 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="4" 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="2" 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="4" 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_rate_rendering_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="10" 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="8" 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="8" 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="9" 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="9" 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="2" 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"/>
<interaction_profile name="/interaction_profiles/ext/eye_gaze_interaction"/>
</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="5" 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="2" 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_FB_composition_layer_image_layout" number="41" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_composition_layer_image_layout_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_image_layout&quot;" name="XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME"/>
<type name="XrCompositionLayerImageLayoutFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB"/>
</require>
</extension>
<extension name="XR_FB_composition_layer_alpha_blend" number="42" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_FB_composition_layer_alpha_blend_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_alpha_blend&quot;" name="XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME"/>
<type name="XrBlendFactorFB"/>
<type name="XrCompositionLayerAlphaBlendFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB"/>
</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="3" 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="2" 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"/>
<type name="XrSpatialGraphStaticNodeBindingCreateInfoMSFT"/>
<type name="XrSpatialGraphNodeBindingPropertiesGetInfoMSFT"/>
<type name="XrSpatialGraphNodeBindingPropertiesMSFT"/>
<command name="xrCreateSpatialGraphNodeSpaceMSFT"/>
<command name="xrTryCreateSpatialGraphStaticNodeBindingMSFT"/>
<command name="xrDestroySpatialGraphNodeBindingMSFT"/>
<command name="xrGetSpatialGraphNodeBindingPropertiesMSFT"/>
<enum value="16" name="XR_GUID_SIZE_MSFT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPATIAL_GRAPH_NODE_BINDING_MSFT" comment="XrSpatialGraphNodeBindingMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_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"/>
<interaction_profile name="/interaction_profiles/microsoft/hand_interaction"/>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/microsoft/hand_interaction">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_EXT_hand_tracking" number="52" type="instance" supported="openxr">
<require>
<enum value="4" 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="4" 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_ML_extension_59" number="59" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_59_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_59&quot;" name="XR_ML_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_composition_layer_reprojection" number="67" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_composition_layer_reprojection_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_composition_layer_reprojection&quot;" name="XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME"/>
<type name="XrReprojectionModeMSFT"/>
<type name="XrCompositionLayerReprojectionInfoMSFT"/>
<type name="XrCompositionLayerReprojectionPlaneOverrideMSFT"/>
<command name="xrEnumerateReprojectionModesMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT" comment="The reprojection mode is not supported."/>
</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"/>
<interaction_profile name="/interaction_profiles/huawei/controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/huawei/controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/huawei/controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_FB_android_surface_swapchain_create" number="71" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_android_surface_swapchain">
<require>
<enum value="1" name="XR_FB_android_surface_swapchain_create_SPEC_VERSION"/>
<enum value="&quot;XR_FB_android_surface_swapchain_create&quot;" name="XR_FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME"/>
<type name="XrAndroidSurfaceSwapchainCreateInfoFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB"/>
</require>
</extension>
<extension name="XR_FB_swapchain_update_state" number="72" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_FB_swapchain_update_state_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME"/>
<type name="XrSwapchainStateBaseHeaderFB"/>
<command name="xrUpdateSwapchainFB"/>
<command name="xrGetSwapchainStateFB"/>
</require>
</extension>
<extension name="XR_FB_composition_layer_secure_content" number="73" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_composition_layer_secure_content_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_secure_content&quot;" name="XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB"/>
<type name="XrCompositionLayerSecureContentFB"/>
</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_body_tracking" number="77" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_body_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_FB_body_tracking&quot;" name="XR_FB_BODY_TRACKING_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_BODY_TRACKER_FB" comment="XrBodyTrackerFB"/>
<type name="XrBodyTrackerFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_BODY_TRACKER_CREATE_INFO_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_BODY_JOINTS_LOCATE_INFO_FB"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_FB"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_BODY_JOINT_LOCATIONS_FB"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_BODY_SKELETON_FB"/>
<type name="XrBodyJointFB"/>
<type name="XrBodyJointSetFB"/>
<type name="XrBodyJointFB"/>
<type name="XrBodyJointLocationFB"/>
<type name="XrSystemBodyTrackingPropertiesFB"/>
<type name="XrBodyTrackerCreateInfoFB"/>
<type name="XrBodySkeletonJointFB"/>
<type name="XrBodySkeletonFB"/>
<type name="XrBodyJointsLocateInfoFB"/>
<type name="XrBodyJointLocationsFB"/>
<command name="xrCreateBodyTrackerFB"/>
<command name="xrDestroyBodyTrackerFB"/>
<command name="xrLocateBodyJointsFB"/>
<command name="xrGetBodySkeletonFB"/>
</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_EXT_dpad_binding" number="79" type="instance" supported="openxr" requires="XR_KHR_binding_modification">
<require>
<enum value="1" name="XR_EXT_dpad_binding_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_dpad_binding&quot;" name="XR_EXT_DPAD_BINDING_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT"/>
<type name="XrInteractionProfileDpadBindingEXT"/>
<extend interaction_profile_path="/interaction_profiles/google/daydream_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/htc/vive_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/go_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/touch_controller">
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/microsoft/motion_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/microsoft/xbox_controller">
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/valve/index_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_VALVE_analog_threshold" number="80" type="instance" supported="openxr">
<require>
<enum value="2" 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_EXT_hand_joints_motion_range" number="81" type="instance" supported="openxr" requires="XR_EXT_hand_tracking">
<require>
<enum value="1" name="XR_EXT_hand_joints_motion_range_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hand_joints_motion_range&quot;" name="XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME"/>
<type name="XrHandJointsMotionRangeEXT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT"/>
<type name="XrHandJointsMotionRangeInfoEXT"/>
</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="2" 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"/>
<interaction_profile name="/interaction_profiles/samsung/odyssey_controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</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"/>
<interaction_profile name="/interaction_profiles/hp/mixed_reality_controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_MND_swapchain_usage_input_attachment_bit" number="97" type="instance" supported="openxr" promotedto="XR_KHR_swapchain_usage_input_attachment_bit">
<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"/>
<!-- NOTE: This was added before the working group established a process, and has been normalized by promotion to KHR. Future vendor extensions MUST NOT extend core bitmasks. -->
<enum bitpos="7" extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image may: be used as a input attachment."/>
</require>
</extension>
<extension name="XR_MSFT_scene_understanding" number="98" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_MSFT_scene_understanding_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_scene_understanding&quot;" name="XR_MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME"/>
<type name="XrUuidMSFT"/>
<type name="XrSceneObserverCreateInfoMSFT"/>
<type name="XrSceneCreateInfoMSFT"/>
<type name="XrNewSceneComputeInfoMSFT"/>
<type name="XrVisualMeshComputeLodInfoMSFT"/>
<type name="XrSceneSphereBoundMSFT"/>
<type name="XrSceneOrientedBoxBoundMSFT"/>
<type name="XrSceneFrustumBoundMSFT"/>
<type name="XrSceneBoundsMSFT"/>
<type name="XrSceneComponentMSFT"/>
<type name="XrSceneComponentsMSFT"/>
<type name="XrSceneComponentsGetInfoMSFT"/>
<type name="XrSceneComponentLocationMSFT"/>
<type name="XrSceneComponentLocationsMSFT"/>
<type name="XrSceneComponentsLocateInfoMSFT"/>
<type name="XrSceneObjectMSFT"/>
<type name="XrSceneObjectsMSFT"/>
<type name="XrSceneComponentParentFilterInfoMSFT"/>
<type name="XrSceneObjectTypesFilterInfoMSFT"/>
<type name="XrScenePlaneMSFT"/>
<type name="XrScenePlanesMSFT"/>
<type name="XrScenePlaneAlignmentFilterInfoMSFT"/>
<type name="XrSceneMeshMSFT"/>
<type name="XrSceneMeshesMSFT"/>
<type name="XrSceneMeshBuffersGetInfoMSFT"/>
<type name="XrSceneMeshBuffersMSFT"/>
<type name="XrSceneMeshVertexBufferMSFT"/>
<type name="XrSceneMeshIndicesUint32MSFT"/>
<type name="XrSceneMeshIndicesUint16MSFT"/>
<type name="XrSceneObjectTypeMSFT"/>
<type name="XrScenePlaneAlignmentTypeMSFT"/>
<type name="XrSceneComputeStateMSFT"/>
<type name="XrSceneComponentTypeMSFT"/>
<type name="XrSceneComputeFeatureMSFT"/>
<type name="XrSceneComputeConsistencyMSFT"/>
<type name="XrMeshComputeLodMSFT"/>
<command name="xrEnumerateSceneComputeFeaturesMSFT"/>
<command name="xrCreateSceneObserverMSFT"/>
<command name="xrDestroySceneObserverMSFT"/>
<command name="xrCreateSceneMSFT"/>
<command name="xrDestroySceneMSFT"/>
<command name="xrComputeNewSceneMSFT"/>
<command name="xrGetSceneComputeStateMSFT"/>
<command name="xrGetSceneComponentsMSFT"/>
<command name="xrLocateSceneComponentsMSFT"/>
<command name="xrGetSceneMeshBuffersMSFT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT" comment="XrSceneObserverMSFT"/>
<enum offset="1" extends="XrObjectType" name="XR_OBJECT_TYPE_SCENE_MSFT" comment="XrSceneMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SCENE_CREATE_INFO_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENTS_MSFT"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT"/>
<enum offset="8" extends="XrStructureType" name="XR_TYPE_SCENE_OBJECTS_MSFT"/>
<enum offset="9" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT"/>
<enum offset="10" extends="XrStructureType" name="XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT"/>
<enum offset="11" extends="XrStructureType" name="XR_TYPE_SCENE_PLANES_MSFT"/>
<enum offset="12" extends="XrStructureType" name="XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT"/>
<enum offset="13" extends="XrStructureType" name="XR_TYPE_SCENE_MESHES_MSFT"/>
<enum offset="14" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT"/>
<enum offset="15" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_BUFFERS_MSFT"/>
<enum offset="16" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT"/>
<enum offset="17" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT"/>
<enum offset="18" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT" comment="Compute new scene not completed."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT" comment="Scene component id invalid."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT" comment="Scene component type mismatch."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT" comment="Scene mesh buffer id invalid."/>
<enum offset="4" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT" comment="Scene compute feature incompatible."/>
<enum offset="5" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT" comment="Scene compute consistency mismatch."/>
</require>
</extension>
<extension name="XR_MSFT_scene_understanding_serialization" number="99" type="instance" supported="openxr" requires="XR_MSFT_scene_understanding">
<require>
<enum value="2" name="XR_MSFT_scene_understanding_serialization_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_scene_understanding_serialization&quot;" name="XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME"/>
<type name="XrSerializedSceneFragmentDataGetInfoMSFT"/>
<type name="XrDeserializeSceneFragmentMSFT"/>
<type name="XrSceneDeserializeInfoMSFT"/>
<command name="xrDeserializeSceneMSFT"/>
<command name="xrGetSerializedSceneFragmentDataMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT"/>
<enum offset="0" extends="XrSceneComputeFeatureMSFT" name="XR_SCENE_COMPUTE_FEATURE_SERIALIZE_SCENE_MSFT"/>
<enum offset="0" extends="XrSceneComponentTypeMSFT" name="XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT"/>
</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"/>
<interaction_profile name="/interaction_profiles/htc/vive_cosmos_controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_HTCX_vive_tracker_interaction" number="104" type="instance" provisional="true" supported="openxr">
<require>
<enum value="2" name="XR_HTCX_vive_tracker_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HTCX_vive_tracker_interaction&quot;" name="XR_HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME"/>
<type name="XrViveTrackerPathsHTCX"/>
<type name="XrEventDataViveTrackerConnectedHTCX"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VIVE_TRACKER_PATHS_HTCX"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX"/>
<command name="xrEnumerateViveTrackerPathsHTCX"/>
<interaction_profile name="/interaction_profiles/htc/vive_tracker_htcx"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/htc/vive_tracker_htcx">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/htc/vive_tracker_htcx">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_HTC_facial_tracking" number="105" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_HTC_facial_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_facial_tracking&quot;" name="XR_HTC_FACIAL_TRACKING_EXTENSION_NAME"/>
<type name="XrSystemFacialTrackingPropertiesHTC"/>
<type name="XrFacialExpressionsHTC"/>
<type name="XrEyeExpressionHTC"/>
<type name="XrLipExpressionHTC"/>
<type name="XrFacialTrackerCreateInfoHTC"/>
<type name="XrFacialTrackingTypeHTC"/>
<type name="XR_FACIAL_EXPRESSION_EYE_COUNT_HTC"/>
<type name="XR_FACIAL_EXPRESSION_LIP_COUNT_HTC"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_FACIAL_TRACKER_HTC" comment="XrFacialTrackerHTC"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_FACIAL_EXPRESSIONS_HTC"/>
<command name="xrCreateFacialTrackerHTC"/>
<command name="xrDestroyFacialTrackerHTC"/>
<command name="xrGetFacialExpressionsHTC"/>
</require>
</extension>
<extension name="XR_HTC_vive_focus3_controller_interaction" number="106" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_vive_focus3_controller_interaction&quot;" name="XR_HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/htc/vive_focus3_controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/thumbstick/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumbstick/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_HTC_hand_interaction" number="107" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HTC_hand_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_hand_interaction&quot;" name="XR_HTC_HAND_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/htc/hand_interaction"/>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/htc/hand_interaction">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_HTC_vive_wrist_tracker_interaction" number="108" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HTC_vive_wrist_tracker_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_vive_wrist_tracker_interaction&quot;" name="XR_HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/htc/vive_wrist_tracker"/>
</require>
</extension>
<extension name="XR_FB_color_space" number="109" type="instance" supported="openxr">
<require>
<enum value="3" 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_hand_tracking_mesh" number="111" type="instance" supported="openxr" requires="XR_EXT_hand_tracking">
<require>
<enum value="3" name="XR_FB_hand_tracking_mesh_SPEC_VERSION"/>
<enum value="&quot;XR_FB_hand_tracking_mesh&quot;" name="XR_FB_HAND_TRACKING_MESH_EXTENSION_NAME"/>
<type name="XrVector4sFB"/>
<type name="XrHandTrackingMeshFB"/>
<type name="XrHandTrackingScaleFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_TRACKING_MESH_FB"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_HAND_TRACKING_SCALE_FB"/>
<command name="xrGetHandMeshFB"/>
</require>
</extension>
<extension name="XR_FB_hand_tracking_aim" number="112" type="instance" supported="openxr" requires="XR_EXT_hand_tracking">
<require>
<enum value="2" name="XR_FB_hand_tracking_aim_SPEC_VERSION"/>
<enum value="&quot;XR_FB_hand_tracking_aim&quot;" name="XR_FB_HAND_TRACKING_AIM_EXTENSION_NAME"/>
<type name="XrHandTrackingAimStateFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_TRACKING_AIM_STATE_FB"/>
</require>
</extension>
<extension name="XR_FB_hand_tracking_capsules" number="113" type="instance" supported="openxr" requires="XR_EXT_hand_tracking">
<require>
<enum value="3" name="XR_FB_hand_tracking_capsules_SPEC_VERSION"/>
<enum value="&quot;XR_FB_hand_tracking_capsules&quot;" name="XR_FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME"/>
<type name="XrHandCapsuleFB"/>
<type name="XrHandTrackingCapsulesStateFB"/>
<enum value="2" name="XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB"/>
<enum value="19" name="XR_HAND_TRACKING_CAPSULE_COUNT_FB"/>
<enum name="XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT" alias="XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB" comment="Backward-compatibility alias containing typo."/>
<enum name="XR_FB_HAND_TRACKING_CAPSULE_COUNT" alias="XR_HAND_TRACKING_CAPSULE_COUNT_FB" comment="Backward-compatibility alias containing typo."/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity" number="114" type="instance" requires="XR_EXT_uuid" supported="openxr">
<require>
<enum value="2" name="XR_FB_spatial_entity_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity&quot;" name="XR_FB_SPATIAL_ENTITY_EXTENSION_NAME"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPACE_COMPONENT_STATUS_FB"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB" comment="The component type is not supported for this space."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB" comment="The required component is not enabled for this space."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB" comment="A request to set the component's status is currently pending."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB" comment="The component is already set to the requested value."/>
<type name="XrAsyncRequestIdFB"/>
<type name="XrSpaceComponentTypeFB"/>
<type name="XrSystemSpatialEntityPropertiesFB"/>
<type name="XrSpatialAnchorCreateInfoFB"/>
<type name="XrSpaceComponentStatusSetInfoFB"/>
<type name="XrSpaceComponentStatusFB"/>
<type name="XrEventDataSpatialAnchorCreateCompleteFB"/>
<type name="XrEventDataSpaceSetStatusCompleteFB"/>
<command name="xrCreateSpatialAnchorFB"/>
<command name="xrGetSpaceUuidFB"/>
<command name="xrEnumerateSpaceSupportedComponentsFB"/>
<command name="xrSetSpaceComponentStatusFB"/>
<command name="xrGetSpaceComponentStatusFB"/>
</require>
</extension>
<extension name="XR_FB_foveation" number="115" type="instance" requires="XR_FB_swapchain_update_state" supported="openxr">
<require>
<enum value="1" name="XR_FB_foveation_SPEC_VERSION"/>
<enum value="&quot;XR_FB_foveation&quot;" name="XR_FB_FOVEATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_FOVEATION_PROFILE_FB" comment="XrFoveationProfileFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB"/>
<type name="XrFoveationProfileCreateInfoFB"/>
<type name="XrSwapchainCreateInfoFoveationFB"/>
<type name="XrSwapchainStateFoveationFB"/>
<command name="xrCreateFoveationProfileFB"/>
<command name="xrDestroyFoveationProfileFB"/>
</require>
</extension>
<extension name="XR_FB_foveation_configuration" number="116" type="instance" requires="XR_FB_foveation" supported="openxr">
<require>
<enum value="1" name="XR_FB_foveation_configuration_SPEC_VERSION"/>
<enum value="&quot;XR_FB_foveation_configuration&quot;" name="XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB"/>
<type name="XrFoveationLevelFB"/>
<type name="XrFoveationDynamicFB"/>
<type name="XrFoveationLevelProfileCreateInfoFB"/>
</require>
</extension>
<extension name="XR_FB_keyboard_tracking" number="117" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_keyboard_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_FB_keyboard_tracking&quot;" name="XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME"/>
<type name="XrSystemKeyboardTrackingPropertiesFB"/>
<type name="XrKeyboardTrackingDescriptionFB"/>
<type name="XrKeyboardSpaceCreateInfoFB"/>
<type name="XrKeyboardTrackingQueryFB"/>
<enum value="128" name="XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB"/>
<enum offset="9" extends="XrStructureType" name="XR_TYPE_KEYBOARD_SPACE_CREATE_INFO_FB"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_KEYBOARD_TRACKING_QUERY_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB"/>
<command name="xrQuerySystemTrackedKeyboardFB"/>
<command name="xrCreateKeyboardSpaceFB"/>
</require>
</extension>
<extension name="XR_FB_triangle_mesh" number="118" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_FB_triangle_mesh_SPEC_VERSION"/>
<enum value="&quot;XR_FB_triangle_mesh&quot;" name="XR_FB_TRIANGLE_MESH_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_TRIANGLE_MESH_CREATE_INFO_FB"/>
<type name="XrTriangleMeshFlagsFB"/>
<type name="XrTriangleMeshCreateInfoFB"/>
<type name="XrWindingOrderFB"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_TRIANGLE_MESH_FB" comment="XrTriangleMeshFB"/>
<command name="xrCreateTriangleMeshFB"/>
<command name="xrDestroyTriangleMeshFB"/>
<command name="xrTriangleMeshGetVertexBufferFB"/>
<command name="xrTriangleMeshGetIndexBufferFB"/>
<command name="xrTriangleMeshBeginUpdateFB"/>
<command name="xrTriangleMeshEndUpdateFB"/>
<command name="xrTriangleMeshBeginVertexBufferUpdateFB"/>
<command name="xrTriangleMeshEndVertexBufferUpdateFB"/>
</require>
</extension>
<extension name="XR_FB_passthrough" number="119" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_FB_passthrough_SPEC_VERSION"/>
<enum value="&quot;XR_FB_passthrough&quot;" name="XR_FB_PASSTHROUGH_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_CREATE_INFO_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_FB"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_GEOMETRY_INSTANCE_CREATE_INFO_FB"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_GEOMETRY_INSTANCE_TRANSFORM_FB"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES2_FB"/>
<enum offset="20" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_STYLE_FB"/>
<enum offset="21" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB"/>
<enum offset="22" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB"/>
<enum offset="23" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB"/>
<enum offset="30" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB" comment="The object state is unexpected for the issued command."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB" comment="Trying to create an MR feature when one was already created and only one instance is allowed."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB" comment="Requested functionality requires a feature to be created first."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_NOT_PERMITTED_PASSTHROUGH_FB" comment="Requested functionality is not permitted - application is not allowed to perform the requested operation."/>
<enum offset="4" dir="-" extends="XrResult" name="XR_ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB" comment="There weren't sufficient resources available to perform an operation."/>
<enum offset="50" dir="-" extends="XrResult" name="XR_ERROR_UNKNOWN_PASSTHROUGH_FB" comment="Unknown Passthrough error (no further details provided)."/>
<enum value="256" name="XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_PASSTHROUGH_FB" comment="XrPassthroughFB"/>
<enum offset="2" extends="XrObjectType" name="XR_OBJECT_TYPE_PASSTHROUGH_LAYER_FB" comment="XrPassthroughLayerFB"/>
<enum offset="4" extends="XrObjectType" name="XR_OBJECT_TYPE_GEOMETRY_INSTANCE_FB" comment="XrGeometryInstanceFB"/>
<type name="XrSystemPassthroughPropertiesFB"/>
<type name="XrSystemPassthroughProperties2FB"/>
<type name="XrPassthroughCreateInfoFB"/>
<type name="XrPassthroughLayerCreateInfoFB"/>
<type name="XrCompositionLayerPassthroughFB"/>
<type name="XrGeometryInstanceCreateInfoFB"/>
<type name="XrGeometryInstanceTransformFB"/>
<type name="XrPassthroughStyleFB"/>
<type name="XrPassthroughColorMapMonoToRgbaFB"/>
<type name="XrPassthroughColorMapMonoToMonoFB"/>
<type name="XrPassthroughBrightnessContrastSaturationFB"/>
<type name="XrEventDataPassthroughStateChangedFB"/>
<command name="xrCreatePassthroughFB"/>
<command name="xrDestroyPassthroughFB"/>
<command name="xrPassthroughStartFB"/>
<command name="xrPassthroughPauseFB"/>
<command name="xrCreatePassthroughLayerFB"/>
<command name="xrDestroyPassthroughLayerFB"/>
<command name="xrPassthroughLayerPauseFB"/>
<command name="xrPassthroughLayerResumeFB"/>
<command name="xrPassthroughLayerSetStyleFB"/>
<command name="xrCreateGeometryInstanceFB"/>
<command name="xrDestroyGeometryInstanceFB"/>
<command name="xrGeometryInstanceSetTransformFB"/>
</require>
</extension>
<extension name="XR_FB_render_model" number="120" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_FB_render_model_SPEC_VERSION"/>
<enum value="&quot;XR_FB_render_model&quot;" name="XR_FB_RENDER_MODEL_EXTENSION_NAME"/>
<type name="XrRenderModelPathInfoFB"/>
<type name="XrRenderModelPropertiesFB"/>
<type name="XrRenderModelBufferFB"/>
<type name="XrRenderModelLoadInfoFB"/>
<type name="XrRenderModelKeyFB"/>
<type name="XrSystemRenderModelPropertiesFB"/>
<type name="XrRenderModelCapabilitiesRequestFB"/>
<type name="XR_NULL_RENDER_MODEL_KEY_FB"/>
<command name="xrEnumerateRenderModelPathsFB"/>
<command name="xrGetRenderModelPropertiesFB"/>
<command name="xrLoadRenderModelFB"/>
<enum value="64" name="XR_MAX_RENDER_MODEL_NAME_SIZE_FB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_RENDER_MODEL_PATH_INFO_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_RENDER_MODEL_PROPERTIES_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_RENDER_MODEL_BUFFER_FB"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_RENDER_MODEL_LOAD_INFO_FB"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_RENDER_MODEL_KEY_INVALID_FB" comment="The model key is invalid."/>
<enum offset="20" extends="XrResult" name="XR_RENDER_MODEL_UNAVAILABLE_FB" comment="The model is unavailable."/>
</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>
<extension name="XR_VARJO_foveated_rendering" number="122" type="instance" requires="XR_VARJO_quad_views" supported="openxr">
<require>
<enum value="3" name="XR_VARJO_foveated_rendering_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_foveated_rendering&quot;" name="XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO"/>
<enum offset="0" extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO"/>
<type name="XrViewLocateFoveatedRenderingVARJO"/>
<type name="XrFoveatedViewConfigurationViewVARJO"/>
<type name="XrSystemFoveatedRenderingPropertiesVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_composition_layer_depth_test" number="123" type="instance" requires="XR_KHR_composition_layer_depth" supported="openxr">
<require>
<enum value="2" name="XR_VARJO_composition_layer_depth_test_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_composition_layer_depth_test&quot;" name="XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO"/>
<type name="XrCompositionLayerDepthTestVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_environment_depth_estimation" number="124" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_environment_depth_estimation_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_environment_depth_estimation&quot;" name="XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME"/>
<command name="xrSetEnvironmentDepthEstimationVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_marker_tracking" number="125" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_marker_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_marker_tracking&quot;" name="XR_VARJO_MARKER_TRACKING_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_MARKER_NOT_TRACKED_VARJO" comment="Marker tracking is disabled or the specified marker is not currently tracked."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_MARKER_ID_INVALID_VARJO" comment="The specified marker ID is not valid."/>
<type name="XrSystemMarkerTrackingPropertiesVARJO"/>
<type name="XrEventDataMarkerTrackingUpdateVARJO"/>
<type name="XrMarkerSpaceCreateInfoVARJO"/>
<command name="xrSetMarkerTrackingVARJO"/>
<command name="xrSetMarkerTrackingTimeoutVARJO"/>
<command name="xrSetMarkerTrackingPredictionVARJO"/>
<command name="xrGetMarkerSizeVARJO"/>
<command name="xrCreateMarkerSpaceVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_view_offset" number="126" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_view_offset_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_view_offset&quot;" name="XR_VARJO_VIEW_OFFSET_EXTENSION_NAME"/>
<command name="xrSetViewOffsetVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_extension_127" number="127" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_127_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_127&quot;" name="XR_VARJO_extension_127_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_128" number="128" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_128_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_128&quot;" name="XR_VARJO_extension_128_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_129" number="129" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_129_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_129&quot;" name="XR_VARJO_extension_129_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_130" number="130" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_130_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_130&quot;" name="XR_VARJO_extension_130_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_131" number="131" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_131_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_131&quot;" name="XR_VARJO_extension_131_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_132" number="132" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_132_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_132&quot;" name="XR_VARJO_extension_132_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_133" number="133" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_133_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_133&quot;" name="XR_ML_extension_133_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_134" number="134" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_134_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_134&quot;" name="XR_ML_extension_134_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_ml2_controller_interaction" number="135" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ML_ml2_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_ML_ml2_controller_interaction&quot;" name="XR_ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/ml/ml2_controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_ML_frame_end_info" number="136" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ML_frame_end_info_SPEC_VERSION"/>
<enum value="&quot;XR_ML_frame_end_info&quot;" name="XR_ML_FRAME_END_INFO_EXTENSION_NAME"/>
<type name="XrFrameEndInfoML"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FRAME_END_INFO_ML"/>
</require>
</extension>
<extension name="XR_ML_global_dimmer" number="137" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ML_global_dimmer_SPEC_VERSION"/>
<enum value="&quot;XR_ML_global_dimmer&quot;" name="XR_ML_GLOBAL_DIMMER_EXTENSION_NAME"/>
<type name="XrGlobalDimmerFrameEndInfoML"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML"/>
</require>
</extension>
<extension name="XR_ML_compat" number="138" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ML">
<require>
<enum value="1" name="XR_ML_compat_SPEC_VERSION"/>
<enum value="&quot;XR_ML_compat&quot;" name="XR_ML_COMPAT_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML"/>
<command name="xrCreateSpaceFromCoordinateFrameUIDML"/>
</require>
</extension>
<extension name="XR_ML_extension_139" number="139" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_139_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_139&quot;" name="XR_ML_extension_139_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_140" number="140" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_140_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_140&quot;" name="XR_ML_extension_140_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_141" number="141" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_141_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_141&quot;" name="XR_ML_extension_141_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_142" number="142" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_142_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_142&quot;" name="XR_ML_extension_142_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_spatial_anchor_persistence" number="143" requires="XR_MSFT_spatial_anchor" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_MSFT_spatial_anchor_persistence_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_spatial_anchor_persistence&quot;" name="XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME"/>
<type name="XrSpatialAnchorStoreConnectionMSFT"/>
<type name="XrSpatialAnchorPersistenceNameMSFT"/>
<type name="XrSpatialAnchorPersistenceInfoMSFT"/>
<type name="XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT"/>
<command name="xrCreateSpatialAnchorStoreConnectionMSFT"/>
<command name="xrDestroySpatialAnchorStoreConnectionMSFT"/>
<command name="xrPersistSpatialAnchorMSFT"/>
<command name="xrEnumeratePersistedSpatialAnchorNamesMSFT"/>
<command name="xrCreateSpatialAnchorFromPersistedNameMSFT"/>
<command name="xrUnpersistSpatialAnchorMSFT"/>
<command name="xrClearSpatialAnchorStoreMSFT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT" comment="XrSpatialAnchorStoreConnectionMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT"/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT" comment="A spatial anchor was not found associated with the spatial anchor name provided"/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT" comment="The spatial anchor name provided was not valid"/>
<enum value="256" name="XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_extension_144" number="144" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_144_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_144&quot;" name="XR_MSFT_extension_144_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_145" number="145" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_145_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_145&quot;" name="XR_MSFT_extension_145_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_146" number="146" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_146_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_146&quot;" name="XR_MSFT_extension_146_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_147" number="147" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_147_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_147&quot;" name="XR_MSFT_extension_147_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_148" number="148" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_148_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_148&quot;" name="XR_MSFT_extension_148_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_extension_149" number="149" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_extension_149_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_extension_149&quot;" name="XR_KHR_extension_149_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_hand_tracking_forearm" number="150" requires="XR_EXT_hand_tracking" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ULTRALEAP_hand_tracking_forearm_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_hand_tracking_forearm&quot;" name="XR_ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME"/>
<type name="XrHandForearmJointULTRALEAP"/>
<type name="XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP"/>
<enum offset="0" extends="XrHandJointSetEXT" name="XR_HAND_JOINT_SET_HAND_WITH_FOREARM_ULTRALEAP"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_151" number="151" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_151_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_151&quot;" name="XR_ULTRALEAP_extension_151_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_152" number="152" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_152_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_152&quot;" name="XR_ULTRALEAP_extension_152_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_153" number="153" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_153_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_153&quot;" name="XR_ULTRALEAP_extension_153_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_154" number="154" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_154_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_154&quot;" name="XR_ULTRALEAP_extension_154_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_155" number="155" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_155_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_155&quot;" name="XR_ULTRALEAP_extension_155_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_156" number="156" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_156_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_156&quot;" name="XR_FB_extension_156_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity_query" number="157" type="instance" requires="XR_FB_spatial_entity_storage" supported="openxr">
<require>
<enum value="1" name="XR_FB_spatial_entity_query_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity_query&quot;" name="XR_FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPACE_QUERY_INFO_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SPACE_QUERY_RESULTS_FB"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB"/>
<enum offset="54" extends="XrStructureType" name="XR_TYPE_SPACE_UUID_FILTER_INFO_FB"/>
<enum offset="52" extends="XrStructureType" name="XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB"/>
<enum offset="103" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB"/>
<enum offset="104" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB"/>
<type name="XrSpaceQueryActionFB"/>
<type name="XrSpaceQueryInfoBaseHeaderFB"/>
<type name="XrSpaceFilterInfoBaseHeaderFB"/>
<type name="XrSpaceQueryInfoFB"/>
<type name="XrSpaceStorageLocationFilterInfoFB"/>
<type name="XrSpaceUuidFilterInfoFB"/>
<type name="XrSpaceComponentFilterInfoFB"/>
<type name="XrSpaceQueryResultFB"/>
<type name="XrSpaceQueryResultsFB"/>
<type name="XrEventDataSpaceQueryResultsAvailableFB"/>
<type name="XrEventDataSpaceQueryCompleteFB"/>
<command name="xrQuerySpacesFB"/>
<command name="xrRetrieveSpaceQueryResultsFB"/>
</require>
</extension>
<extension name="XR_FB_extension_158" number="158" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_158_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_158&quot;" name="XR_FB_extension_158_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity_storage" number="159" type="instance" requires="XR_FB_spatial_entity" supported="openxr">
<require>
<enum value="1" name="XR_FB_spatial_entity_storage_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity_storage&quot;" name="XR_FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPACE_SAVE_INFO_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPACE_ERASE_INFO_FB"/>
<enum offset="106" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB"/>
<enum offset="107" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB"/>
<type name="XrSpaceStorageLocationFB"/>
<type name="XrSpacePersistenceModeFB"/>
<type name="XrSpaceSaveInfoFB"/>
<type name="XrSpaceEraseInfoFB"/>
<type name="XrEventDataSpaceSaveCompleteFB"/>
<type name="XrEventDataSpaceEraseCompleteFB"/>
<command name="xrSaveSpaceFB"/>
<command name="xrEraseSpaceFB"/>
</require>
</extension>
<extension name="XR_OCULUS_audio_device_guid" number="160" type="instance" supported="openxr" protect="XR_USE_PLATFORM_WIN32">
<require>
<enum value="1" name="XR_OCULUS_audio_device_guid_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_audio_device_guid&quot;" name="XR_OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME"/>
<enum value="128" name="XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS"/>
<command name="xrGetAudioOutputDeviceGuidOculus"/>
<command name="xrGetAudioInputDeviceGuidOculus"/>
</require>
</extension>
<extension name="XR_FB_foveation_vulkan" number="161" type="instance" requires="XR_FB_foveation" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr">
<require>
<enum value="1" name="XR_FB_foveation_vulkan_SPEC_VERSION"/>
<enum value="&quot;XR_FB_foveation_vulkan&quot;" name="XR_FB_FOVEATION_VULKAN_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB"/>
<type name="XrSwapchainImageFoveationVulkanFB"/>
</require>
</extension>
<extension name="XR_FB_swapchain_update_state_android_surface" number="162" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_android_surface_swapchain,XR_FB_swapchain_update_state">
<require>
<enum value="1" name="XR_FB_swapchain_update_state_android_surface_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state_android_surface&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME"/>
<type name="XrSwapchainStateAndroidSurfaceDimensionsFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB"/>
</require>
</extension>
<extension name="XR_FB_swapchain_update_state_opengl_es" number="163" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_OPENGL_ES" requires="XR_KHR_opengl_es_enable,XR_FB_swapchain_update_state">
<require>
<enum value="1" name="XR_FB_swapchain_update_state_opengl_es_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state_opengl_es&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME"/>
<type name="XrSwapchainStateSamplerOpenGLESFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB"/>
</require>
</extension>
<extension name="XR_FB_swapchain_update_state_vulkan" number="164" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN" requires="XR_KHR_vulkan_enable,XR_FB_swapchain_update_state">
<require>
<enum value="1" name="XR_FB_swapchain_update_state_vulkan_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state_vulkan&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME"/>
<type name="XrSwapchainStateSamplerVulkanFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"/>
</require>
</extension>
<extension name="XR_FB_extension_165" number="165" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_165_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_165&quot;" name="XR_FB_extension_165_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_swapchain_usage_input_attachment_bit" number="166" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_swapchain_usage_input_attachment_bit&quot;" name="XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME"/>
<enum extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR" alias="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image may: be used as a input attachment."/>
</require>
</extension>
<extension name="XR_FB_extension_167" number="167" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_167_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_167&quot;" name="XR_FB_extension_167_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_touch_controller_pro" number="168" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_touch_controller_pro_SPEC_VERSION"/>
<enum value="&quot;XR_FB_touch_controller_pro&quot;" name="XR_FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_169" number="169" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_169_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_169&quot;" name="XR_FB_extension_169_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity_sharing" number="170" type="instance" requires="XR_FB_spatial_entity" supported="openxr">
<require>
<enum value="1" name="XR_FB_spatial_entity_sharing_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity_sharing&quot;" name="XR_FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPACE_SHARE_INFO_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_SHARE_COMPLETE_FB"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB" comment="Anchor import from cloud or export from device failed."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SPACE_LOCALIZATION_FAILED_FB" comment="Anchors were downloaded from the cloud but failed to be imported/aligned on the device."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SPACE_NETWORK_TIMEOUT_FB" comment="Timeout occurred while waiting for network request to complete."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_SPACE_NETWORK_REQUEST_FAILED_FB" comment="The network request failed."/>
<enum offset="4" dir="-" extends="XrResult" name="XR_ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB" comment="Cloud storage is required for this operation but is currently disabled."/>
<type name="XrSpaceShareInfoFB"/>
<type name="XrEventDataSpaceShareCompleteFB"/>
<command name="xrShareSpacesFB"/>
</require>
</extension>
<extension name="XR_FB_extension_171" number="171" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_171_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_171&quot;" name="XR_FB_extension_171_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_space_warp" number="172" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_FB_space_warp_SPEC_VERSION"/>
<enum value="&quot;XR_FB_space_warp&quot;" name="XR_FB_SPACE_WARP_EXTENSION_NAME"/>
<type name="XrCompositionLayerSpaceWarpInfoFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB"/>
<type name="XrSystemSpaceWarpPropertiesFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB"/>
</require>
</extension>
<extension name="XR_FB_extension_173" number="173" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_173_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_173&quot;" name="XR_FB_extension_173_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_haptic_amplitude_envelope" number="174" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_haptic_amplitude_envelope_SPEC_VERSION"/>
<enum value="&quot;XR_FB_haptic_amplitude_envelope&quot;" name="XR_FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME"/>
<type name="XrHapticAmplitudeEnvelopeVibrationFB"/>
<type name="XR_MAX_HAPTIC_AMPLITUDE_ENVELOPE_SAMPLES_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB"/>
</require>
</extension>
<extension name="XR_FB_extension_175" number="175" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_175_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_175&quot;" name="XR_FB_extension_175_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_scene" number="176" type="instance" requires="XR_FB_spatial_entity" supported="openxr">
<require>
<enum value="1" name="XR_FB_scene_SPEC_VERSION"/>
<enum value="&quot;XR_FB_scene&quot;" name="XR_FB_SCENE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SEMANTIC_LABELS_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_ROOM_LAYOUT_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_BOUNDARY_2D_FB"/>
<type name="XrExtent3DfFB"/>
<type name="XrOffset3DfFB"/>
<type name="XrRect3DfFB"/>
<type name="XrSemanticLabelsFB"/>
<type name="XrRoomLayoutFB"/>
<type name="XrBoundary2DFB"/>
<command name="xrGetSpaceBoundingBox2DFB"/>
<command name="xrGetSpaceBoundingBox3DFB"/>
<command name="xrGetSpaceSemanticLabelsFB"/>
<command name="xrGetSpaceBoundary2DFB"/>
<command name="xrGetSpaceRoomLayoutFB"/>
</require>
</extension>
<extension name="XR_EXT_palm_pose" number="177" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_EXT_palm_pose_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_palm_pose&quot;" name="XR_EXT_PALM_POSE_EXTENSION_NAME"/>
<extend interaction_profile_path="/interaction_profiles/khr/simple_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/google/daydream_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/htc/vive_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/microsoft/motion_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/go_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/touch_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/valve/index_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_UNITY_extension_178" number="178" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_178_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_178&quot;" name="XR_UNITY_EXTENSION_178_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_179" number="179" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_179_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_179&quot;" name="XR_UNITY_EXTENSION_179_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_180" number="180" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_180_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_180&quot;" name="XR_UNITY_EXTENSION_180_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_181" number="181" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_181_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_181&quot;" name="XR_UNITY_EXTENSION_181_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_182" number="182" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_182_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_182&quot;" name="XR_UNITY_EXTENSION_182_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_183" number="183" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_183_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_183&quot;" name="XR_UNITY_EXTENSION_183_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_184" number="184" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_184_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_184&quot;" name="XR_UNITY_EXTENSION_184_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_185" number="185" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_185_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_185&quot;" name="XR_UNITY_EXTENSION_185_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_186" number="186" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_186_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_186&quot;" name="XR_UNITY_EXTENSION_186_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_187" number="187" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_187_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_187&quot;" name="XR_LIV_EXTENSION_187_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_188" number="188" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_188_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_188&quot;" name="XR_LIV_EXTENSION_188_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_189" number="189" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_189_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_189&quot;" name="XR_LIV_EXTENSION_189_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_190" number="190" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_190_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_190&quot;" name="XR_LIV_EXTENSION_190_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_191" number="191" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_191_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_191&quot;" name="XR_LIV_EXTENSION_191_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_192" number="192" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_192_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_192&quot;" name="XR_LIV_EXTENSION_192_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_193" number="193" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_193_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_193&quot;" name="XR_LIV_EXTENSION_193_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_194" number="194" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_194_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_194&quot;" name="XR_LIV_EXTENSION_194_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_195" number="195" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_195_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_195&quot;" name="XR_LIV_EXTENSION_195_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_196" number="196" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_196_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_196&quot;" name="XR_LIV_EXTENSION_196_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ALMALENCE_digital_lens_control" number="197" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ALMALENCE_digital_lens_control_SPEC_VERSION"/>
<enum value="&quot;XR_ALMALENCE_digital_lens_control&quot;" name="XR_ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME"/>
<command name="xrSetDigitalLensControlALMALENCE"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE"/>
</require>
</extension>
<extension name="XR_FB_extension_198" number="198" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_198_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_198&quot;" name="XR_FB_EXTENSION_198_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_scene_capture" number="199" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_scene_capture_SPEC_VERSION"/>
<enum value="&quot;XR_FB_scene_capture&quot;" name="XR_FB_SCENE_CAPTURE_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB"/>
<enum offset="50" extends="XrStructureType" name="XR_TYPE_SCENE_CAPTURE_REQUEST_INFO_FB"/>
<type name="XrEventDataSceneCaptureCompleteFB"/>
<type name="XrSceneCaptureRequestInfoFB"/>
<command name="xrRequestSceneCaptureFB"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity_container" number="200" type="instance" requires="XR_FB_spatial_entity" supported="openxr">
<require>
<enum value="2" name="XR_FB_spatial_entity_container_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity_container&quot;" name="XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPACE_CONTAINER_FB"/>
<type name="XrSpaceContainerFB"/>
<command name="xrGetSpaceContainerFB"/>
</require>
</extension>
<extension name="XR_META_foveation_eye_tracked" number="201" type="instance" supported="openxr" requires="XR_FB_foveation,XR_FB_foveation_configuration">
<require>
<enum value="1" name="XR_META_foveation_eye_tracked_SPEC_VERSION"/>
<enum value="&quot;XR_META_foveation_eye_tracked&quot;" name="XR_META_FOVEATION_EYE_TRACKED_EXTENSION_NAME"/>
<enum value="2" name="XR_FOVEATION_CENTER_SIZE_META"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META"/>
<type name="XrFoveationEyeTrackedProfileCreateInfoMETA"/>
<type name="XrFoveationEyeTrackedStateMETA"/>
<type name="XrSystemFoveationEyeTrackedPropertiesMETA"/>
<type name="XrFoveationEyeTrackedProfileCreateFlagsMETA"/>
<type name="XrFoveationEyeTrackedProfileCreateFlagBitsMETA"/>
<type name="XrFoveationEyeTrackedStateFlagsMETA"/>
<type name="XrFoveationEyeTrackedStateFlagBitsMETA"/>
<command name="xrGetFoveationEyeTrackedStateMETA"/>
</require>
</extension>
<extension name="XR_FB_face_tracking" number="202" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_face_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_FB_face_tracking&quot;" name="XR_FB_FACE_TRACKING_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_FACE_TRACKER_FB" comment="XrFaceTrackerFB"/>
<type name="XrFaceExpressionFB"/>
<type name="XrFaceExpressionSetFB"/>
<type name="XrFaceConfidenceFB"/>
<type name="XR_FACE_EXPRESSSION_SET_DEFAULT_FB"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_FB"/>
<type name="XrSystemFaceTrackingPropertiesFB"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_FACE_TRACKER_CREATE_INFO_FB"/>
<type name="XrFaceTrackerCreateInfoFB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_FACE_EXPRESSION_INFO_FB"/>
<type name="XrFaceExpressionInfoFB"/>
<type name="XrFaceExpressionStatusFB"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_FACE_EXPRESSION_WEIGHTS_FB"/>
<type name="XrFaceExpressionWeightsFB"/>
<command name="xrCreateFaceTrackerFB"/>
<command name="xrDestroyFaceTrackerFB"/>
<command name="xrGetFaceExpressionWeightsFB"/>
</require>
</extension>
<extension name="XR_FB_eye_tracking_social" number="203" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_eye_tracking_social_SPEC_VERSION"/>
<enum value="&quot;XR_FB_eye_tracking_social&quot;" name="XR_FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_EYE_TRACKER_FB" comment="XrEyeTrackerFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EYE_TRACKER_CREATE_INFO_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_EYE_GAZES_INFO_FB"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_EYE_GAZES_FB"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_FB"/>
<type name="XrEyeTrackerFB"/>
<type name="XrEyeGazeFB"/>
<type name="XrEyePositionFB"/>
<type name="XrEyeTrackerCreateInfoFB"/>
<type name="XrEyeGazesInfoFB"/>
<type name="XrSystemEyeTrackingPropertiesFB"/>
<type name="XrEyeGazesFB"/>
<command name="xrCreateEyeTrackerFB"/>
<command name="xrDestroyEyeTrackerFB"/>
<command name="xrGetEyeGazesFB"/>
</require>
</extension>
<extension name="XR_FB_passthrough_keyboard_hands" number="204" type="instance" supported="openxr" requires="XR_FB_passthrough">
<require>
<enum value="2" name="XR_FB_passthrough_keyboard_hands_SPEC_VERSION"/>
<enum value="&quot;XR_FB_passthrough_keyboard_hands&quot;" name="XR_FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME"/>
<enum offset="1" extends="XrPassthroughLayerPurposeFB" name="XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_HANDS_FB" comment="Passthrough layer purpose for keyboard hands presence."/>
<enum offset="2" extends="XrPassthroughLayerPurposeFB" name="XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_MASKED_HANDS_FB" comment="Passthrough layer purpose for keyboard hands presence with keyboard masked hand transitions (i.e passthrough hands rendered only when they are over the keyboard)."/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB"/>
<type name="XrPassthroughKeyboardHandsIntensityFB"/>
<command name="xrPassthroughLayerSetKeyboardHandsIntensityFB"/>
</require>
</extension>
<extension name="XR_FB_composition_layer_settings" number="205" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_composition_layer_settings_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_settings&quot;" name="XR_FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB"/>
<type name="XrCompositionLayerSettingsFB"/>
</require>
</extension>
<extension name="XR_FB_extension_206" number="206" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_206_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_206&quot;" name="XR_FB_EXTENSION_206_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_touch_controller_proximity" number="207" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_touch_controller_proximity_SPEC_VERSION"/>
<enum value="&quot;XR_FB_touch_controller_proximity&quot;" name="XR_FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME"/>
<extend interaction_profile_path="/interaction_profiles/oculus/touch_controller">
<component subpath="/input/trigger/proximity_fb" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumb_fb/proximity_fb" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_FB_extension_208" number="208" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_208_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_208&quot;" name="XR_FB_EXTENSION_208_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_209" number="209" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_209_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_209&quot;" name="XR_FB_EXTENSION_209_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_haptic_pcm" number="210" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_haptic_pcm_SPEC_VERSION"/>
<enum value="&quot;XR_FB_haptic_pcm&quot;" name="XR_FB_HAPTIC_PCM_EXTENSION_NAME"/>
<type name="XrHapticPcmVibrationFB"/>
<type name="XrDevicePcmSampleRateStateFB"/>
<type name="XR_MAX_HAPTIC_PCM_BUFFER_SIZE_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAPTIC_PCM_VIBRATION_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB"/>
<enum extends="XrStructureType" name="XR_TYPE_DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB" alias="XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB"/>
<command name="xrGetDeviceSampleRateFB"/>
</require>
</extension>
<extension name="XR_FB_extension_211" number="211" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_211_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_211&quot;" name="XR_FB_EXTENSION_211_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_212" number="212" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_212_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_212&quot;" name="XR_FB_EXTENSION_212_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_composition_layer_depth_test" number="213" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_composition_layer_depth_test_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_depth_test&quot;" name="XR_FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB"/>
<type name="XrCompareOpFB"/>
<type name="XrCompositionLayerDepthTestFB"/>
</require>
</extension>
<extension name="XR_FB_extension_214" number="214" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_214_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_214&quot;" name="XR_FB_EXTENSION_214_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_215" number="215" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_215_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_215&quot;" name="XR_FB_EXTENSION_215_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_216" number="216" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_216_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_216&quot;" name="XR_FB_EXTENSION_216_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_local_dimming" number="217" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_local_dimming_SPEC_VERSION"/>
<enum value="&quot;XR_META_local_dimming&quot;" name="XR_META_LOCAL_DIMMING_EXTENSION_NAME"/>
<type name="XrLocalDimmingModeMETA"/>
<type name="XrLocalDimmingFrameEndInfoMETA"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META"/>
</require>
</extension>
<extension name="XR_FB_extension_218" number="218" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_218_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_218&quot;" name="XR_FB_EXTENSION_218_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_219" number="219" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_219_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_219&quot;" name="XR_FB_EXTENSION_219_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_220" number="220" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_220_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_220&quot;" name="XR_FB_EXTENSION_220_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_221" number="221" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_221_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_221&quot;" name="XR_FB_EXTENSION_221_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_222" number="222" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_222_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_222&quot;" name="XR_FB_EXTENSION_222_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_223" number="223" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_223_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_223&quot;" name="XR_FB_EXTENSION_223_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_224" number="224" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_224_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_224&quot;" name="XR_FB_EXTENSION_224_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_225" number="225" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_225_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_225&quot;" name="XR_FB_EXTENSION_225_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_226" number="226" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_226_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_226&quot;" name="XR_FB_EXTENSION_226_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_OCULUS_external_camera" number="227" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_OCULUS_external_camera_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_external_camera&quot;" name="XR_OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_EXTERNAL_CAMERA_OCULUS"/>
<enum value="32" name="XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS"/>
<type name="XrExternalCameraAttachedToDeviceOCULUS"/>
<type name="XrExternalCameraIntrinsicsOCULUS"/>
<type name="XrExternalCameraExtrinsicsOCULUS"/>
<type name="XrExternalCameraOCULUS"/>
<command name="xrEnumerateExternalCamerasOCULUS"/>
</require>
</extension>
<extension name="XR_META_vulkan_swapchain_create_info" number="228" type="instance" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr">
<require>
<enum value="1" name="XR_META_vulkan_swapchain_create_info_SPEC_VERSION"/>
<enum value="&quot;XR_META_vulkan_swapchain_create_info&quot;" name="XR_META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META"/>
<type name="XrVulkanSwapchainCreateInfoMETA"/>
</require>
</extension>
<extension name="XR_FB_extension_229" number="229" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_229_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_229&quot;" name="XR_FB_EXTENSION_229_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_230" number="230" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_230_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_230&quot;" name="XR_FB_EXTENSION_230_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_231" number="231" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_231_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_231&quot;" name="XR_FB_EXTENSION_231_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_232" number="232" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_232_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_232&quot;" name="XR_FB_EXTENSION_232_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_performance_metrics" number="233" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_META_performance_metrics_SPEC_VERSION"/>
<enum value="&quot;XR_META_performance_metrics&quot;" name="XR_META_PERFORMANCE_METRICS_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_PERFORMANCE_METRICS_STATE_META"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_PERFORMANCE_METRICS_COUNTER_META"/>
<type name="XrPerformanceMetricsStateMETA"/>
<type name="XrPerformanceMetricsCounterMETA"/>
<type name="XrPerformanceMetricsCounterUnitMETA"/>
<command name="xrEnumeratePerformanceMetricsCounterPathsMETA"/>
<command name="xrSetPerformanceMetricsStateMETA"/>
<command name="xrGetPerformanceMetricsStateMETA"/>
<command name="xrQueryPerformanceMetricsCounterMETA"/>
</require>
</extension>
<extension name="XR_FB_extension_234" number="234" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_234_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_234&quot;" name="XR_FB_EXTENSION_234_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_235" number="235" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_235_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_235&quot;" name="XR_FB_EXTENSION_235_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_236" number="236" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_236_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_236&quot;" name="XR_FB_EXTENSION_236_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_237" number="237" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_237_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_237&quot;" name="XR_FB_EXTENSION_237_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_238" number="238" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_238_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_238&quot;" name="XR_FB_EXTENSION_238_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity_storage_batch" number="239" type="instance" requires="XR_FB_spatial_entity_storage" supported="openxr">
<require>
<enum value="1" name="XR_FB_spatial_entity_storage_batch_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity_storage_batch&quot;" name="XR_FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPACE_LIST_SAVE_INFO_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB"/>
<type name="XrSpaceListSaveInfoFB"/>
<type name="XrEventDataSpaceListSaveCompleteFB"/>
<command name="xrSaveSpaceListFB"/>
</require>
</extension>
<extension name="XR_FB_extension_240" number="240" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_240_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_240&quot;" name="XR_FB_EXTENSION_240_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_241" number="241" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_241_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_241&quot;" name="XR_FB_EXTENSION_241_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_spatial_entity_user" number="242" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_spatial_entity_user_SPEC_VERSION"/>
<enum value="&quot;XR_FB_spatial_entity_user&quot;" name="XR_FB_SPATIAL_ENTITY_USER_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPACE_USER_CREATE_INFO_FB"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPACE_USER_FB" comment="XrSpaceUserFB"/>
<type name="XrSpaceUserCreateInfoFB"/>
<command name="xrCreateSpaceUserFB"/>
<command name="xrGetSpaceUserIdFB"/>
<command name="xrDestroySpaceUserFB"/>
</require>
</extension>
<extension name="XR_FB_extension_243" number="243" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_243_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_243&quot;" name="XR_FB_EXTENSION_243_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_244" number="244" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_244_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_244&quot;" name="XR_FB_EXTENSION_244_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_245" number="245" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_245_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_245&quot;" name="XR_FB_EXTENSION_245_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_headset_id" number="246" type="instance" requires="XR_EXT_uuid" supported="openxr">
<require>
<enum value="1" name="XR_META_headset_id_SPEC_VERSION"/>
<enum value="&quot;XR_META_headset_id&quot;" name="XR_META_HEADSET_ID_EXTENSION_NAME"/>
<type name="XrSystemHeadsetIdPropertiesMETA"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META"/>
</require>
</extension>
<extension name="XR_FB_extension_247" number="247" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_247_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_247&quot;" name="XR_FB_EXTENSION_247_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_248" number="248" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_248_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_248&quot;" name="XR_FB_EXTENSION_248_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_249" number="249" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_249_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_249&quot;" name="XR_FB_EXTENSION_249_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_250" number="250" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_250_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_250&quot;" name="XR_FB_EXTENSION_250_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_251" number="251" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_251_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_251&quot;" name="XR_FB_EXTENSION_251_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_252" number="252" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_252_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_252&quot;" name="XR_FB_EXTENSION_252_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_253" number="253" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_253_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_253&quot;" name="XR_FB_EXTENSION_253_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_254" number="254" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_254_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_254&quot;" name="XR_FB_EXTENSION_254_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_255" number="255" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_255_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_255&quot;" name="XR_FB_EXTENSION_255_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_256" number="256" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_256_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_256&quot;" name="XR_FB_EXTENSION_256_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_257" number="257" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_257_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_257&quot;" name="XR_FB_EXTENSION_257_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_258" number="258" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_258_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_258&quot;" name="XR_FB_EXTENSION_258_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_259" number="259" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_259_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_259&quot;" name="XR_FB_EXTENSION_259_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_260" number="260" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_260_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_260&quot;" name="XR_FB_EXTENSION_260_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_261" number="261" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_261_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_261&quot;" name="XR_FB_EXTENSION_261_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_262" number="262" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_262_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_262&quot;" name="XR_FB_EXTENSION_262_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_263" number="263" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_263_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_263&quot;" name="XR_FB_EXTENSION_263_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_264" number="264" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_264_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_264&quot;" name="XR_FB_EXTENSION_264_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_265" number="265" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_265_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_265&quot;" name="XR_FB_EXTENSION_265_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_266" number="266" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_266_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_266&quot;" name="XR_FB_EXTENSION_266_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_267" number="267" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_267_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_267&quot;" name="XR_FB_EXTENSION_267_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_268" number="268" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_268_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_268&quot;" name="XR_FB_EXTENSION_268_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_269" number="269" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_269_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_269&quot;" name="XR_FB_EXTENSION_269_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_270" number="270" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_270_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_270&quot;" name="XR_FB_EXTENSION_270_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_271" number="271" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_271_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_271&quot;" name="XR_FB_EXTENSION_271_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_272" number="272" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_272_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_272&quot;" name="XR_FB_EXTENSION_272_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_273" number="273" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_273_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_273&quot;" name="XR_FB_EXTENSION_273_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_274" number="274" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_274_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_274&quot;" name="XR_FB_EXTENSION_274_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_275" number="275" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_275_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_275&quot;" name="XR_FB_EXTENSION_275_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_276" number="276" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_276_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_276&quot;" name="XR_FB_EXTENSION_276_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_277" number="277" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_277_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_277&quot;" name="XR_FB_EXTENSION_277_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_278" number="278" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_278_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_278&quot;" name="XR_FB_EXTENSION_278_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_279" number="279" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_279_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_279&quot;" name="XR_FB_EXTENSION_279_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_280" number="280" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_280_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_280&quot;" name="XR_FB_EXTENSION_280_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_281" number="281" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_281_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_281&quot;" name="XR_FB_EXTENSION_281_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_282" number="282" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_282_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_282&quot;" name="XR_FB_EXTENSION_282_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_283" number="283" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_283_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_283&quot;" name="XR_FB_EXTENSION_283_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_284" number="284" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_284_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_284&quot;" name="XR_FB_EXTENSION_284_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_285" number="285" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_285_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_285&quot;" name="XR_FB_EXTENSION_285_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_286" number="286" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_286_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_286&quot;" name="XR_FB_EXTENSION_286_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_287" number="287" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_287_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_287&quot;" name="XR_FB_EXTENSION_287_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_288" number="288" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_288_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_288&quot;" name="XR_FB_EXTENSION_288_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_289" number="289" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_289_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_289&quot;" name="XR_FB_EXTENSION_289_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_290" number="290" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_290_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_290&quot;" name="XR_FB_EXTENSION_290_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_291" number="291" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_291_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_291&quot;" name="XR_FB_EXTENSION_291_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_292" number="292" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_292_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_292&quot;" name="XR_FB_EXTENSION_292_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_293" number="293" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_293_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_293&quot;" name="XR_FB_EXTENSION_293_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_294" number="294" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_294_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_294&quot;" name="XR_FB_EXTENSION_294_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_295" number="295" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_295_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_295&quot;" name="XR_FB_EXTENSION_295_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_296" number="296" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_296_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_296&quot;" name="XR_FB_EXTENSION_296_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_297" number="297" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_297_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_297&quot;" name="XR_FB_EXTENSION_297_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_298" number="298" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_298_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_298&quot;" name="XR_FB_EXTENSION_298_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_299" number="299" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_299_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_299&quot;" name="XR_FB_EXTENSION_299_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_uuid" number="300" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_uuid_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_uuid&quot;" name="XR_EXT_UUID_EXTENSION_NAME"/>
<type name="XrUuidEXT"/>
<enum value="16" name="XR_UUID_SIZE_EXT"/>
</require>
</extension>
<extension name="XR_EXT_render_model" number="301" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_render_model_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_render_model&quot;" name="XR_EXT_RENDER_MODEL_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_controller_model" number="302" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_controller_model_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_controller_model&quot;" name="XR_EXT_CONTROLLER_MODEL_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_hand_interaction" number="303" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_hand_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hand_interaction&quot;" name="XR_EXT_HAND_INTERACTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_image_tracking" number="304" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_image_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_image_tracking&quot;" name="XR_QCOM_IMAGE_TRACKING_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_object_tracking" number="305" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_object_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_object_tracking&quot;" name="XR_QCOM_OBJECT_TRACKING_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_plane_detection" number="306" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_plane_detection_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_plane_detection&quot;" name="XR_QCOM_PLANE_DETECTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_tracking_optimization_settings" number="307" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_QCOM_tracking_optimization_settings_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_tracking_optimization_settings&quot;" name="XR_QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_HINT_ALREADY_SET_QCOM" comment="Tracking optimization hint is already set for the domain."/>
<type name="XrTrackingOptimizationSettingsDomainQCOM"/>
<type name="XrTrackingOptimizationSettingsHintQCOM"/>
<command name="xrSetTrackingOptimizationSettingsHintQCOM"/>
</require>
</extension>
<extension name="XR_QCOM_ray_casting" number="308" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_ray_casting_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_ray_casting&quot;" name="XR_QCOM_RAY_CASTING_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_309" number="309" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_309_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_309&quot;" name="XR_QCOM_EXTENSION_309_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_310" number="310" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_310_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_310&quot;" name="XR_QCOM_EXTENSION_310_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_311" number="311" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_311_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_311&quot;" name="XR_QCOM_EXTENSION_311_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_312" number="312" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_312_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_312&quot;" name="XR_QCOM_EXTENSION_312_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_313" number="313" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_313_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_313&quot;" name="XR_QCOM_EXTENSION_313_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_314" number="314" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_314_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_314&quot;" name="XR_QCOM_EXTENSION_314_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_315" number="315" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_315_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_315&quot;" name="XR_QCOM_EXTENSION_315_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_316" number="316" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_316_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_316&quot;" name="XR_QCOM_EXTENSION_316_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_QCOM_extension_317" number="317" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_QCOM_extension_317_SPEC_VERSION"/>
<enum value="&quot;XR_QCOM_extension_317&quot;" name="XR_QCOM_EXTENSION_317_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_passthrough" number="318" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HTC_passthrough_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_passthrough&quot;" name="XR_HTC_PASSTHROUGH_EXTENSION_NAME"/>
<type name="XrPassthroughHTC"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_PASSTHROUGH_HTC" comment="XrPassthroughHTC"/>
<type name="XrPassthroughFormHTC"/>
<type name="XrPassthroughCreateInfoHTC"/>
<type name="XrPassthroughColorHTC"/>
<type name="XrPassthroughMeshTransformInfoHTC"/>
<type name="XrCompositionLayerPassthroughHTC"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_HTC"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC"/>
<command name="xrCreatePassthroughHTC"/>
<command name="xrDestroyPassthroughHTC"/>
</require>
</extension>
<extension name="XR_HTC_foveation" number="319" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HTC_foveation_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_foveation&quot;" name="XR_HTC_FOVEATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_APPLY_INFO_HTC"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC"/>
<type name="XrFoveationModeHTC"/>
<type name="XrFoveationLevelHTC"/>
<type name="XrFoveationApplyInfoHTC"/>
<type name="XrFoveationConfigurationHTC"/>
<type name="XrFoveationDynamicModeInfoHTC"/>
<type name="XrFoveationCustomModeInfoHTC"/>
<command name="xrApplyFoveationHTC"/>
</require>
</extension>
<extension name="XR_HTC_extension_320" number="320" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_320_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_320&quot;" name="XR_HTC_extension_320_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_321" number="321" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_321_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_321&quot;" name="XR_HTC_extension_321_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_322" number="322" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_322_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_322&quot;" name="XR_HTC_extension_322_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_323" number="323" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_323_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_323&quot;" name="XR_HTC_extension_323_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_324" number="324" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_324_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_324&quot;" name="XR_HTC_extension_324_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_325" number="325" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_325_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_325&quot;" name="XR_HTC_extension_325_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_326" number="326" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_326_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_326&quot;" name="XR_HTC_extension_326_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_327" number="327" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_327_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_327&quot;" name="XR_HTC_extension_327_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_328" number="328" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_328_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_328&quot;" name="XR_HTC_extension_328_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_329" number="329" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_329_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_329&quot;" name="XR_HTC_extension_329_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_330" number="330" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_330_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_330&quot;" name="XR_HTC_extension_330_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_331" number="331" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_331_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_331&quot;" name="XR_HTC_extension_331_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_332" number="332" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_332_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_332&quot;" name="XR_HTC_extension_332_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_333" number="333" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_333_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_333&quot;" name="XR_HTC_extension_333_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_334" number="334" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_334_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_334&quot;" name="XR_HTC_extension_334_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_335" number="335" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_335_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_335&quot;" name="XR_HTC_extension_335_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_336" number="336" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_336_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_336&quot;" name="XR_HTC_extension_336_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_337" number="337" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_337_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_337&quot;" name="XR_HTC_extension_337_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_338" number="338" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_338_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_338&quot;" name="XR_HTC_extension_338_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_339" number="339" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_339_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_339&quot;" name="XR_HTC_extension_339_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_340" number="340" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_340_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_340&quot;" name="XR_HTC_extension_340_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_341" number="341" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_341_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_341&quot;" name="XR_HTC_extension_341_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_342" number="342" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_342_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_342&quot;" name="XR_HTC_extension_342_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_343" number="343" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_343_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_343&quot;" name="XR_HTC_extension_343_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_344" number="344" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_344_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_344&quot;" name="XR_HTC_extension_344_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_345" number="345" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_345_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_345&quot;" name="XR_HTC_extension_345_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_346" number="346" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_346_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_346&quot;" name="XR_HTC_extension_346_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_347" number="347" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_347_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_347&quot;" name="XR_HTC_extension_347_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_348" number="348" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_348_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_348&quot;" name="XR_HTC_extension_348_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_349" number="349" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_349_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_349&quot;" name="XR_HTC_extension_349_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_350" number="350" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_350_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_350&quot;" name="XR_HTC_extension_350_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_351" number="351" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_351_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_351&quot;" name="XR_HTC_extension_351_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_352" number="352" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_352_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_352&quot;" name="XR_HTC_extension_352_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_353" number="353" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_353_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_353&quot;" name="XR_HTC_extension_353_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_354" number="354" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_354_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_354&quot;" name="XR_HTC_extension_354_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_355" number="355" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_355_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_355&quot;" name="XR_HTC_extension_355_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_356" number="356" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_356_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_356&quot;" name="XR_HTC_extension_356_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_357" number="357" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_357_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_357&quot;" name="XR_HTC_extension_357_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_358" number="358" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_358_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_358&quot;" name="XR_HTC_extension_358_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_359" number="359" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_359_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_359&quot;" name="XR_HTC_extension_359_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_360" number="360" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_360_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_360&quot;" name="XR_HTC_extension_360_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_361" number="361" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_361_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_361&quot;" name="XR_HTC_extension_361_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_362" number="362" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_362_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_362&quot;" name="XR_HTC_extension_362_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_363" number="363" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_363_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_363&quot;" name="XR_HTC_extension_363_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_364" number="364" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_364_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_364&quot;" name="XR_HTC_extension_364_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_365" number="365" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_365_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_365&quot;" name="XR_HTC_extension_365_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_366" number="366" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_366_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_366&quot;" name="XR_HTC_extension_366_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_367" number="367" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_367_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_367&quot;" name="XR_HTC_extension_367_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_368" number="368" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_368_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_368&quot;" name="XR_HTC_extension_368_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_369" number="369" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_369_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_369&quot;" name="XR_HTC_extension_369_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_370" number="370" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_370_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_370&quot;" name="XR_HTC_extension_370_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_extension_371" number="371" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_extension_371_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_extension_371&quot;" name="XR_EXT_extension_371_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_extension_372" number="372" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_extension_372_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_extension_372&quot;" name="XR_EXT_extension_372_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_extension_373" number="373" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_extension_373_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_extension_373&quot;" name="XR_KHR_extension_373_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_active_action_set_priority" number="374" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_active_action_set_priority_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_active_action_set_priority&quot;" name="XR_EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_ACTIVE_ACTION_SET_PRIORITIES_EXT"/>
<type name="XrActiveActionSetPrioritiesEXT"/>
<type name="XrActiveActionSetPriorityEXT"/>
</require>
</extension>
<extension name="XR_HUAWEI_6dof_controller_interaction" number="375" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HUAWEI_6dof_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HUAWEI_6dof_controller_interaction&quot;" name="XR_HUAWEI_6DOF_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_force_feedback_curl" number="376" type="instance" supported="openxr" requires="XR_EXT_hand_tracking" provisional="true">
<require>
<enum value="1" name="XR_MNDX_force_feedback_curl_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_force_feedback_curl&quot;" name="XR_MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME"/>
<command name="xrApplyForceFeedbackCurlMNDX"/>
<type name="XrSystemForceFeedbackCurlPropertiesMNDX"/>
<type name="XrForceFeedbackCurlLocationMNDX"/>
<type name="XrForceFeedbackCurlApplyLocationsMNDX"/>
<type name="XrForceFeedbackCurlApplyLocationMNDX"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX"/>
</require>
</extension>
<extension name="XR_MNDX_extension_377" number="377" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_377_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_377&quot;" name="XR_MNDX_extension_377_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_378" number="378" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_378_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_378&quot;" name="XR_MNDX_extension_378_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_379" number="379" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_379_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_379&quot;" name="XR_MNDX_extension_379_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_380" number="380" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_380_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_380&quot;" name="XR_MNDX_extension_380_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_381" number="381" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_381_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_381&quot;" name="XR_MNDX_extension_381_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_382" number="382" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_382_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_382&quot;" name="XR_MNDX_extension_382_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_383" number="383" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_383_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_383&quot;" name="XR_MNDX_extension_383_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MNDX_extension_384" number="384" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MNDX_extension_384_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_extension_384&quot;" name="XR_MNDX_extension_384_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_controller_interaction" number="385" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_BD_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_BD_controller_interaction&quot;" name="XR_BD_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/bytedance/pico_neo3_controller"/>
<interaction_profile name="/interaction_profiles/bytedance/pico4_controller"/>
</require>
<require extension="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/trackpad/dpad_up" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_down" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_left" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_right" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trackpad/dpad_center" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<require extension="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_BD_extension_386" number="386" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_386_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_386&quot;" name="XR_BD_extension_386_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_387" number="387" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_387_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_387&quot;" name="XR_BD_extension_387_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_388" number="388" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_388_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_388&quot;" name="XR_BD_extension_388_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_389" number="389" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_389_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_389&quot;" name="XR_BD_extension_389_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_390" number="390" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_390_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_390&quot;" name="XR_BD_extension_390_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_391" number="391" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_391_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_391&quot;" name="XR_BD_extension_391_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_392" number="392" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_392_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_392&quot;" name="XR_BD_extension_392_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_393" number="393" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_393_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_393&quot;" name="XR_BD_extension_393_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_394" number="394" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_394_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_394&quot;" name="XR_BD_extension_394_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_395" number="395" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_395_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_395&quot;" name="XR_BD_extension_395_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_396" number="396" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_396_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_396&quot;" name="XR_BD_extension_396_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_397" number="397" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_397_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_397&quot;" name="XR_BD_extension_397_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_398" number="398" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_398_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_398&quot;" name="XR_BD_extension_398_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_399" number="399" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_399_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_399&quot;" name="XR_BD_extension_399_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_400" number="400" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_400_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_400&quot;" name="XR_BD_extension_400_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_401" number="401" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_401_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_401&quot;" name="XR_BD_extension_401_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_402" number="402" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_402_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_402&quot;" name="XR_BD_extension_402_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_403" number="403" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_403_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_403&quot;" name="XR_BD_extension_403_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_404" number="404" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_404_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_404&quot;" name="XR_BD_extension_404_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_405" number="405" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_405_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_405&quot;" name="XR_BD_extension_405_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_406" number="406" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_406_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_406&quot;" name="XR_BD_extension_406_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_407" number="407" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_407_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_407&quot;" name="XR_BD_extension_407_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_408" number="408" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_408_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_408&quot;" name="XR_BD_extension_408_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_409" number="409" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_409_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_409&quot;" name="XR_BD_extension_409_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_BD_extension_410" number="410" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_BD_extension_410_SPEC_VERSION"/>
<enum value="&quot;XR_BD_extension_410&quot;" name="XR_BD_extension_410_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_411" number="411" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_411_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_411&quot;" name="XR_MSFT_EXTENSION_411_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_412" number="412" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_412_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_412&quot;" name="XR_MSFT_EXTENSION_412_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_413" number="413" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_413_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_413&quot;" name="XR_MSFT_EXTENSION_413_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_414" number="414" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_414_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_414&quot;" name="XR_MSFT_EXTENSION_414_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_415" number="415" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_415_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_415&quot;" name="XR_MSFT_EXTENSION_415_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_416" number="416" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_416_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_416&quot;" name="XR_MSFT_EXTENSION_416_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_417" number="417" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_417_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_417&quot;" name="XR_MSFT_EXTENSION_417_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_418" number="418" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_418_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_418&quot;" name="XR_MSFT_EXTENSION_418_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_419" number="419" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_419_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_419&quot;" name="XR_MSFT_EXTENSION_419_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_420" number="420" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_420_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_420&quot;" name="XR_MSFT_EXTENSION_420_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_421" number="421" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_421_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_421&quot;" name="XR_MSFT_EXTENSION_421_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_DANWILLM_extension_422" number="422" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_DANWILLM_extension_422_SPEC_VERSION"/>
<enum value="&quot;XR_DANWILLM_extension_422&quot;" name="XR_DANWILLM_EXTENSION_422_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_DANWILLM_extension_423" number="423" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_DANWILLM_extension_423_SPEC_VERSION"/>
<enum value="&quot;XR_DANWILLM_extension_423&quot;" name="XR_DANWILLM_EXTENSION_423_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_DANWILLM_extension_424" number="424" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_DANWILLM_extension_424_SPEC_VERSION"/>
<enum value="&quot;XR_DANWILLM_extension_424&quot;" name="XR_DANWILLM_EXTENSION_424_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_DANWILLM_extension_425" number="425" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_DANWILLM_extension_425_SPEC_VERSION"/>
<enum value="&quot;XR_DANWILLM_extension_425&quot;" name="XR_DANWILLM_EXTENSION_425_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_DANWILLM_extension_426" number="426" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_DANWILLM_extension_426_SPEC_VERSION"/>
<enum value="&quot;XR_DANWILLM_extension_426&quot;" name="XR_DANWILLM_EXTENSION_426_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_local_floor" number="427" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_local_floor_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_local_floor&quot;" name="XR_EXT_LOCAL_FLOOR_EXTENSION_NAME"/>
<enum offset="0" extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR_EXT"/>
</require>
</extension>
<extension name="XR_LOGITECH_extension_428" number="428" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LOGITECH_extension_428_SPEC_VERSION"/>
<enum value="&quot;XR_LOGITECH_extension_428&quot;" name="XR_LOGITECH_EXTENSION_428_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_hand_tracking_usage" number="429" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_hand_tracking_usage_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hand_tracking_usage&quot;" name="XR_EXT_HAND_TRACKING_USAGE_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_plane_detection" number="430" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_plane_detection_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_plane_detection&quot;" name="XR_EXT_PLANE_DETECTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_431" number="431" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_431_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_431&quot;" name="XR_ACER_EXTENSION_431_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_432" number="432" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_432_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_432&quot;" name="XR_ACER_EXTENSION_432_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_433" number="433" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_433_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_433&quot;" name="XR_ACER_EXTENSION_433_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_434" number="434" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_434_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_434&quot;" name="XR_ACER_EXTENSION_434_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_435" number="435" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_435_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_435&quot;" name="XR_ACER_EXTENSION_435_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_436" number="436" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_436_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_436&quot;" name="XR_ACER_EXTENSION_436_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_437" number="437" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_437_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_437&quot;" name="XR_ACER_EXTENSION_437_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_438" number="438" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_438_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_438&quot;" name="XR_ACER_EXTENSION_438_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_439" number="439" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_439_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_439&quot;" name="XR_ACER_EXTENSION_439_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_440" number="440" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_440_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_440&quot;" name="XR_ACER_EXTENSION_440_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_441" number="441" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_441_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_441&quot;" name="XR_ACER_EXTENSION_441_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_442" number="442" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_442_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_442&quot;" name="XR_ACER_EXTENSION_442_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ACER_extension_443" number="443" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ACER_extension_443_SPEC_VERSION"/>
<enum value="&quot;XR_ACER_extension_443&quot;" name="XR_ACER_EXTENSION_443_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_444" number="444" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_444_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_444&quot;" name="XR_MND_EXTENSION_444_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_445" number="445" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_445_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_445&quot;" name="XR_MND_EXTENSION_445_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_446" number="446" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_446_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_446&quot;" name="XR_MND_EXTENSION_446_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_447" number="447" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_447_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_447&quot;" name="XR_MND_EXTENSION_447_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_448" number="448" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_448_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_448&quot;" name="XR_MND_EXTENSION_448_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_449" number="449" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_449_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_449&quot;" name="XR_MND_EXTENSION_449_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_450" number="450" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_450_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_450&quot;" name="XR_MND_EXTENSION_450_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_451" number="451" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_451_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_451&quot;" name="XR_MND_EXTENSION_451_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_452" number="452" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_452_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_452&quot;" name="XR_MND_EXTENSION_452_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_453" number="453" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_453_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_453&quot;" name="XR_MND_EXTENSION_453_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_OPPO_extension_454" number="454" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_OPPO_extension_454_SPEC_VERSION"/>
<enum value="&quot;XR_OPPO_extension_454&quot;" name="XR_OPPO_EXTENSION_454_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>