Yucom/wineopenxr/xr.xml
2024-05-23 10:54:49 +03:00

15219 lines
1 MiB

<?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-2024, 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="ANDROID" author="Google" contact="Nihav Jain @njain_google"/>
<tag name="ANDROIDSYS" author="Google" contact="Nihav Jain @njain_google"/>
<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="Rylie 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="Rylie 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="LEIA" author="Leia" contact="Cristina Scheibler @cscheibler"/>
<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="Ron Bessems @rbessems"/>
<tag name="MND" author="Monado Project" contact="Jakob Bornecrantz @wallbraker, Rylie 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="Denny Rönngren @denron_varjo"/>
<tag name="YVR" author="YVR" contact="Pengpeng Zhang @zhangpengpeng"/>
</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="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, 1, 36)</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">
#if !defined(XR_DEFINE_OPAQUE_64)
#if (XR_PTR_SIZE == 8)
#define <name>XR_DEFINE_OPAQUE_64</name>(object) typedef struct object##_T* object;
#else
#define XR_DEFINE_OPAQUE_64(object) typedef uint64_t object;
#endif
#endif</type>
<type category="define">
#define <name>XR_EXTENSION_ENUM_BASE</name> 1000000000</type>
<type category="define">
#define <name>XR_EXTENSION_ENUM_STRIDE</name> 1000</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>
<!-- openxr_loader_negotiation.h -->
<type category="define">
#define <name>XR_CURRENT_LOADER_API_LAYER_VERSION</name> 1</type>
<type category="define">
#define <name>XR_CURRENT_LOADER_RUNTIME_VERSION</name> 1</type>
<type category="define">
#define <name>XR_LOADER_INFO_STRUCT_VERSION</name> 1</type>
<type category="define">
#define <name>XR_API_LAYER_INFO_STRUCT_VERSION</name> 1</type>
<type category="define">
#define <name>XR_RUNTIME_INFO_STRUCT_VERSION</name> 1</type>
<type category="define">
#define <name>XR_API_LAYER_NEXT_INFO_STRUCT_VERSION</name> 1</type>
<type category="define">
#define <name>XR_API_LAYER_CREATE_INFO_STRUCT_VERSION</name> 1</type>
<type category="define">
#define <name>XR_API_LAYER_MAX_SETTINGS_PATH_SIZE</name> 512</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>
<!-- XR_ML_marker_understanding -->
<type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrMarkerML</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"/>
<!-- XR_KHR_maintenance1 -->
<type requires="openxr_platform_defines" name="double"/>
<!-- 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_scene -->
<type bitvalues="XrSemanticLabelsSupportFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSemanticLabelsSupportFlagsFB</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_META_passthrough_preferences -->
<type bitvalues="XrPassthroughPreferenceFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrPassthroughPreferenceFlagsMETA</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>
<!-- Bitmask types for XR_EXT_plane_detection -->
<type bitvalues="XrPlaneDetectorFlagBitsEXT" category="bitmask">typedef <type>XrFlags64</type> <name>XrPlaneDetectorFlagsEXT</name>;</type>
<type bitvalues="XrPlaneDetectionCapabilityFlagBitsEXT" category="bitmask">typedef <type>XrFlags64</type> <name>XrPlaneDetectionCapabilityFlagsEXT</name>;</type>
<!-- Bitmask types for XR_META_virtual_keyboard -->
<type bitvalues="XrVirtualKeyboardInputStateFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrVirtualKeyboardInputStateFlagsMETA</name>;</type>
<!-- Bitmask types for XR_ML_localization_map -->
<type bitvalues="XrLocalizationMapErrorFlagBitsML" category="bitmask">typedef <type>XrFlags64</type> <name>XrLocalizationMapErrorFlagsML</name>;</type>
<!-- Bitmask types for XR_META_environment_depth -->
<type bitvalues="XrEnvironmentDepthProviderCreateFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrEnvironmentDepthProviderCreateFlagsMETA</name>;</type>
<type bitvalues="XrEnvironmentDepthSwapchainCreateFlagBitsMETA" category="bitmask">typedef <type>XrFlags64</type> <name>XrEnvironmentDepthSwapchainCreateFlagsMETA</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_face_tracking2 -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrFaceTracker2FB</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>
<!-- XR_META_passthrough_color_lut -->
<type category="handle" parent="XrPassthroughFB"><type>XR_DEFINE_HANDLE</type>(<name>XrPassthroughColorLutMETA</name>)</type>
<!-- XR_EXT_plane_detection -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrPlaneDetectorEXT</name>)</type>
<!-- XR_META_virtual_keyboard -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrVirtualKeyboardMETA</name>)</type>
<!-- XR_ML_localization_map -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrExportedLocalizationMapML</name>)</type>
<!-- XR_ML_marker_understanding -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrMarkerDetectorML</name>)</type>
<!-- XR_EXT_future -->
<type category="basetype"><type>XR_DEFINE_OPAQUE_64</type>(<name>XrFutureEXT</name>)</type>
<!-- XR_META_environment_depth -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrEnvironmentDepthProviderMETA</name>)</type>
<type category="handle" parent="XrEnvironmentDepthProviderMETA"><type>XR_DEFINE_HANDLE</type>(<name>XrEnvironmentDepthSwapchainMETA</name>)</type>
<!-- enums and flag bits generated from corresponding <enums> tags below -->
<type name="XrLoaderInterfaceStructs" category="enum"/>
<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_scene -->
<type name="XrSemanticLabelsSupportFlagBitsFB" 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"/>
<!-- enums for XR_META_passthrough_color_lut -->
<type name="XrPassthroughColorLutChannelsMETA" category="enum"/>
<!-- enum and flag bits for XR_META_performance_metrics -->
<type name="XrPerformanceMetricsCounterFlagBitsMETA" category="enum"/>
<type name="XrPerformanceMetricsCounterUnitMETA" category="enum"/>
<!-- enum and flag bits for XR_META_passthrough_preferences -->
<type name="XrPassthroughPreferenceFlagBitsMETA" 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_face_tracking2 -->
<type name="XrFaceExpression2FB" category="enum"/>
<type name="XrFaceExpressionSet2FB" category="enum"/>
<type name="XrFaceTrackingDataSource2FB" category="enum"/>
<type name="XrFaceConfidence2FB" 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"/>
<!-- enums for XR_EXT_plane_detection -->
<type name="XrPlaneDetectionStateEXT" category="enum"/>
<type name="XrPlaneDetectorOrientationEXT" category="enum"/>
<type name="XrPlaneDetectorSemanticTypeEXT" category="enum"/>
<type name="XrPlaneDetectorFlagBitsEXT" category="enum"/>
<type name="XrPlaneDetectionCapabilityFlagBitsEXT" category="enum"/>
<!-- enums for XR_META_virtual_keyboard -->
<type name="XrVirtualKeyboardLocationTypeMETA" category="enum"/>
<type name="XrVirtualKeyboardInputSourceMETA" category="enum"/>
<type name="XrVirtualKeyboardInputStateFlagBitsMETA" category="enum"/>
<!-- enums for XR_ML_user_calibration -->
<type name="XrHeadsetFitStatusML" category="enum"/>
<type name="XrEyeCalibrationStatusML" category="enum"/>
<!-- XR_ML_localization_map -->
<type name="XrLocalizationMapStateML" category="enum"/>
<type name="XrLocalizationMapTypeML" category="enum"/>
<type name="XrLocalizationMapConfidenceML" category="enum"/>
<type name="XrLocalizationMapErrorFlagBitsML" category="enum"/>
<!-- XR_ML_marker_understanding -->
<type name="XrMarkerDetectorProfileML" category="enum"/>
<type name="XrMarkerTypeML" category="enum"/>
<type name="XrMarkerArucoDictML" category="enum"/>
<type name="XrMarkerAprilTagDictML" category="enum"/>
<type name="XrMarkerDetectorFpsML" category="enum"/>
<type name="XrMarkerDetectorResolutionML" category="enum"/>
<type name="XrMarkerDetectorCameraML" category="enum"/>
<type name="XrMarkerDetectorCornerRefineMethodML" category="enum"/>
<type name="XrMarkerDetectorFullAnalysisIntervalML" category="enum"/>
<type name="XrMarkerDetectorStatusML" category="enum"/>
<!-- XR_EXT_future -->
<type name="XrFutureStateEXT" category="enum"/>
<!-- XR_META_environment_depth -->
<type name="XrEnvironmentDepthProviderCreateFlagBitsMETA" category="enum"/>
<type name="XrEnvironmentDepthSwapchainCreateFlagBitsMETA" 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="XrExtent3DfEXT" alias="XrExtent3Df"/>
<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>
<!-- openxr_loader_negotiation.h -->
<type category="struct" name="XrNegotiateLoaderInfo">
<member><type>XrLoaderInterfaceStructs</type> <name>structType</name></member>
<member><type>uint32_t</type> <name>structVersion</name></member>
<member><type>size_t</type> <name>structSize</name></member>
<member><type>uint32_t</type> <name>minInterfaceVersion</name></member>
<member><type>uint32_t</type> <name>maxInterfaceVersion</name></member>
<member><type>XrVersion</type> <name>minApiVersion</name></member>
<member><type>XrVersion</type> <name>maxApiVersion</name></member>
</type>
<type category="struct" name="XrNegotiateApiLayerRequest">
<member><type>XrLoaderInterfaceStructs</type> <name>structType</name></member>
<member><type>uint32_t</type> <name>structVersion</name></member>
<member><type>size_t</type> <name>structSize</name></member>
<member><type>uint32_t</type> <name>layerInterfaceVersion</name></member>
<member><type>XrVersion</type> <name>layerApiVersion</name></member>
<member><type>PFN_xrGetInstanceProcAddr</type> <name>getInstanceProcAddr</name></member>
<member><type>PFN_xrCreateApiLayerInstance</type> <name>createApiLayerInstance</name></member>
</type>
<type category="struct" name="XrNegotiateRuntimeRequest">
<member><type>XrLoaderInterfaceStructs</type> <name>structType</name></member>
<member><type>uint32_t</type> <name>structVersion</name></member>
<member><type>size_t</type> <name>structSize</name></member>
<member><type>uint32_t</type> <name>runtimeInterfaceVersion</name></member>
<member><type>XrVersion</type> <name>runtimeApiVersion</name></member>
<member><type>PFN_xrGetInstanceProcAddr</type> <name>getInstanceProcAddr</name></member>
</type>
<type category="struct" name="XrApiLayerNextInfo">
<member><type>XrLoaderInterfaceStructs</type> <name>structType</name></member>
<member><type>uint32_t</type> <name>structVersion</name></member>
<member><type>size_t</type> <name>structSize</name></member>
<member><type>char</type> <name>layerName</name>[<enum>XR_MAX_API_LAYER_NAME_SIZE</enum>]</member>
<member><type>PFN_xrGetInstanceProcAddr</type> <name>nextGetInstanceProcAddr</name></member>
<member><type>PFN_xrCreateApiLayerInstance</type> <name>nextCreateApiLayerInstance</name></member>
<member>struct <type>XrApiLayerNextInfo</type>* <name>next</name></member>
</type>
<type category="struct" name="XrApiLayerCreateInfo">
<member><type>XrLoaderInterfaceStructs</type> <name>structType</name></member>
<member><type>uint32_t</type> <name>structVersion</name></member>
<member><type>size_t</type> <name>structSize</name></member>
<member><type>void</type>* <name>loaderInstance</name></member>
<member><type>char</type> <name>settings_file_location</name>[XR_API_LAYER_MAX_SETTINGS_PATH_SIZE]</member>
<member><type>XrApiLayerNextInfo</type>* <name>nextInfo</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 optional="true" len="null-terminated">const <type>char</type>* <name>messageId</name></member>
<member optional="true" 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 is used by xrGetInstanceProcAddr below -->
<type category="funcpointer">typedef void (XRAPI_PTR *<name>PFN_xrVoidFunction</name>)(void);</type>
<!-- The PFN_xrGetInstanceProcAddr type is used by XrNegotiateRuntimeRequest below -->
<type category="funcpointer">typedef XrResult (XRAPI_PTR *<name>PFN_xrGetInstanceProcAddr</name>)(XrInstance instance, const char* name, PFN_xrVoidFunction* function);</type>
<!-- openxr_loader_negotiation.h -->
<!-- Function pointer prototype for the xrCreateApiLayerInstance function used in place of xrCreateInstance. -->
<!-- This function allows us to pass special API layer information to each layer during the process of creating an Instance. -->
<!-- The typedef is embedded to work around circular dependency between XrApiLayerCreateInfo, next and PFN_xrCreateApiLayerInstance -->
<type category="funcpointer">
typedef struct XrApiLayerCreateInfo XrApiLayerCreateInfo;
typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
const XrInstanceCreateInfo* info,
const XrApiLayerCreateInfo* apiLayerInfo,
XrInstance* instance);</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="funcpointer">typedef PFN_xrVoidFunction (*<name>PFN_xrEglGetProcAddressMNDX</name>)(const <type>char</type> *name);</type>
<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>PFN_xrEglGetProcAddressMNDX</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>[<enum>XR_GUID_SIZE_MSFT</enum>]</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>[<enum>XR_GUID_SIZE_MSFT</enum>]</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_face_tracking2 structs -->
<type category="struct" name="XrSystemFaceTrackingProperties2FB" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsVisualFaceTracking</name></member>
<member><type>XrBool32</type> <name>supportsAudioFaceTracking</name></member>
</type>
<type category="struct" name="XrFaceTrackerCreateInfo2FB">
<member values="XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFaceExpressionSet2FB</type> <name>faceExpressionSet</name></member>
<member optional="true"><type>uint32_t</type> <name>requestedDataSourceCount</name></member>
<member optional="true" len="requestedDataSourceCount"><type>XrFaceTrackingDataSource2FB</type>* <name>requestedDataSources</name></member>
</type>
<type category="struct" name="XrFaceExpressionInfo2FB">
<member values="XR_TYPE_FACE_EXPRESSION_INFO2_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="XrFaceExpressionWeights2FB">
<member values="XR_TYPE_FACE_EXPRESSION_WEIGHTS2_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>XrBool32</type> <name>isValid</name></member>
<member><type>XrBool32</type> <name>isEyeFollowingBlendshapesValid</name></member>
<member><type>XrFaceTrackingDataSource2FB</type> <name>dataSource</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_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_EXT_hand_tracking_data_source -->
<type name="XrHandTrackingDataSourceEXT" category="enum"/>
<type category="struct" name="XrHandTrackingDataSourceInfoEXT" structextends="XrHandTrackerCreateInfoEXT">
<member values="XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>requestedDataSourceCount</name></member>
<member len="requestedDataSourceCount"><type>XrHandTrackingDataSourceEXT</type>* <name>requestedDataSources</name></member>
</type>
<type category="struct" name="XrHandTrackingDataSourceStateEXT" structextends="XrHandJointLocationsEXT">
<member values="XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_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>XrHandTrackingDataSourceEXT</type> <name>dataSource</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 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="XrHandMeshVertexBufferMSFT">
<member optional="true"><type>XrTime</type> <name>vertexUpdateTime</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>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>[<enum>XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT</enum>]</member>
<member><type>char</type> <name>nodeName</name>[<enum>XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT</enum>]</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 optional="true"><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 optional="true"><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 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="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 optional="true"><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_MSFT_scene_marker -->
<type name="XrSceneMarkerTypeMSFT" category="enum"/>
<type name="XrSceneMarkerQRCodeSymbolTypeMSFT" category="enum"/>
<type category="struct" name="XrSceneMarkerMSFT" returnedonly="true">
<member><type>XrSceneMarkerTypeMSFT</type> <name>markerType</name></member>
<member><type>XrTime</type> <name>lastSeenTime</name></member>
<member><type>XrOffset2Df</type> <name>center</name></member>
<member><type>XrExtent2Df</type> <name>size</name></member>
</type>
<type category="struct" name="XrSceneMarkersMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_MARKERS_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>sceneMarkerCapacityInput</name></member>
<member optional="true" len="sceneMarkerCapacityInput"><type>XrSceneMarkerMSFT</type>* <name>sceneMarkers</name></member>
</type>
<type category="struct" name="XrSceneMarkerTypeFilterMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_MARKER_TYPE_FILTER_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>markerTypeCount</name></member>
<member optional="true" len="markerTypeCount"><type>XrSceneMarkerTypeMSFT</type>* <name>markerTypes</name></member>
</type>
<type category="struct" name="XrSceneMarkerQRCodeMSFT" returnedonly="true">
<member><type>XrSceneMarkerQRCodeSymbolTypeMSFT</type> <name>symbolType</name></member>
<member><type>uint8_t</type> <name>version</name></member>
</type>
<type category="struct" name="XrSceneMarkerQRCodesMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_MARKER_QR_CODES_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>qrCodeCapacityInput</name></member>
<member optional="true" len="qrCodeCapacityInput"><type>XrSceneMarkerQRCodeMSFT</type>* <name>qrCodes</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>[<enum>XR_MAX_RENDER_MODEL_NAME_SIZE_FB</enum>]</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="XrRenderModelCapabilitiesRequestFB" structextends="XrRenderModelPropertiesFB">
<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>
<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>
<!-- 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_META_spatial_entity_mesh structs -->
<type category="struct" name="XrSpaceTriangleMeshGetInfoMETA">
<member values="XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSpaceTriangleMeshMETA" returnedonly="true">
<member values="XR_TYPE_SPACE_TRIANGLE_MESH_META"><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>XrVector3f</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>
<!-- XR_FB_scene structs -->
<type category="struct" name="XrExtent3DfFB" alias="XrExtent3Df"/>
<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>
<type category="struct" name="XrSemanticLabelsSupportInfoFB">
<member values="XR_TYPE_SEMANTIC_LABELS_SUPPORT_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSemanticLabelsSupportFlagsFB</type> <name>flags</name></member>
<member len="null-terminated">const <type>char</type>* <name>recognizedLabels</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>[<enum>XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB</enum>]</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>[<enum>XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB</enum>]</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>[<enum>XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB</enum>]</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_HTC_anchor -->
<type category="struct" name="XrSpatialAnchorCreateInfoHTC">
<member values="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC"><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>XrSpatialAnchorNameHTC</type> <name>name</name></member>
</type>
<type category="struct" name="XrSpatialAnchorNameHTC">
<member><type>char</type> <name>name</name>[<enum>XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC</enum>]</member>
</type>
<type category="struct" name="XrSystemAnchorPropertiesHTC" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsAnchor</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" alias="XrUuid"/>
<!-- 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_passthrough_preferences structs -->
<type category="struct" name="XrPassthroughPreferencesMETA" returnedonly="true">
<member values="XR_TYPE_PASSTHROUGH_PREFERENCES_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughPreferenceFlagsMETA</type> <name>flags</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_META_passthrough_color_lut types -->
<type category="struct" name="XrPassthroughColorLutDataMETA">
<member><type>uint32_t</type> <name>bufferSize</name></member>
<member len="bufferSize">const <type>uint8_t</type>* <name>buffer</name></member>
</type>
<type category="struct" name="XrPassthroughColorLutCreateInfoMETA">
<member values="XR_TYPE_PASSTHROUGH_COLOR_LUT_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughColorLutChannelsMETA</type> <name>channels</name></member>
<member><type>uint32_t</type> <name>resolution</name></member>
<member><type>XrPassthroughColorLutDataMETA</type> <name>data</name></member>
</type>
<type category="struct" name="XrPassthroughColorLutUpdateInfoMETA">
<member values="XR_TYPE_PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughColorLutDataMETA</type> <name>data</name></member>
</type>
<type category="struct" name="XrPassthroughColorMapLutMETA" structextends="XrPassthroughStyleFB">
<member values="XR_TYPE_PASSTHROUGH_COLOR_MAP_LUT_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughColorLutMETA</type> <name>colorLut</name></member>
<member><type>float</type> <name>weight</name></member>
</type>
<type category="struct" name="XrPassthroughColorMapInterpolatedLutMETA" structextends="XrPassthroughStyleFB">
<member values="XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPassthroughColorLutMETA</type> <name>sourceColorLut</name></member>
<member><type>XrPassthroughColorLutMETA</type> <name>targetColorLut</name></member>
<member><type>float</type> <name>weight</name></member>
</type>
<type category="struct" name="XrSystemPassthroughColorLutPropertiesMETA" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>maxColorLutResolution</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>
<!-- XR_EXT_plane_detection -->
<type category="struct" name="XrSystemPlaneDetectionPropertiesEXT" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrPlaneDetectionCapabilityFlagsEXT</type> <name>supportedFeatures</name></member>
</type>
<type category="struct" name="XrPlaneDetectorCreateInfoEXT">
<member values="XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrPlaneDetectorFlagsEXT</type> <name>flags</name></member>
</type>
<type category="struct" name="XrPlaneDetectorBeginInfoEXT">
<member values="XR_TYPE_PLANE_DETECTOR_BEGIN_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>
<member optional="true"><type>uint32_t</type> <name>orientationCount</name></member>
<member optional="true" len="orientationCount">const <type>XrPlaneDetectorOrientationEXT</type>* <name>orientations</name></member>
<member optional="true"><type>uint32_t</type> <name>semanticTypeCount</name></member>
<member optional="true" len="semanticTypeCount">const <type>XrPlaneDetectorSemanticTypeEXT</type>* <name>semanticTypes</name></member>
<member><type>uint32_t</type> <name>maxPlanes</name></member>
<member><type>float</type> <name>minArea</name></member>
<member><type>XrPosef</type> <name>boundingBoxPose</name></member>
<member><type>XrExtent3DfEXT</type> <name>boundingBoxExtent</name></member>
</type>
<type category="struct" name="XrPlaneDetectorGetInfoEXT">
<member values="XR_TYPE_PLANE_DETECTOR_GET_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="XrPlaneDetectorLocationsEXT">
<member values="XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>planeLocationCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>planeLocationCountOutput</name></member>
<member optional="true" len="planeLocationCapacityInput"><type>XrPlaneDetectorLocationEXT</type>* <name>planeLocations</name></member>
</type>
<type category="struct" name="XrPlaneDetectorLocationEXT">
<member values="XR_TYPE_PLANE_DETECTOR_LOCATION_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint64_t</type> <name>planeId</name></member>
<member optional="true"><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member>
<member optional="true"><type>XrPosef</type> <name>pose</name></member>
<member optional="true"><type>XrExtent2Df</type> <name>extents</name></member>
<member optional="true"><type>XrPlaneDetectorOrientationEXT</type> <name>orientation</name></member>
<member optional="true"><type>XrPlaneDetectorSemanticTypeEXT</type> <name>semanticType</name></member>
<member optional="true"><type>uint32_t</type> <name>polygonBufferCount</name></member>
</type>
<type category="struct" name="XrPlaneDetectorPolygonBufferEXT">
<member values="XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT"><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>
</type>
<!-- XR_META_virtual_keyboard -->
<type category="struct" name="XrSystemVirtualKeyboardPropertiesMETA" structextends="XrSystemProperties" returnedonly="true">
<member values="XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsVirtualKeyboard</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardCreateInfoMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardSpaceCreateInfoMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardLocationTypeMETA</type> <name>locationType</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrPosef</type> <name>poseInSpace</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardLocationInfoMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_LOCATION_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardLocationTypeMETA</type> <name>locationType</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrPosef</type> <name>poseInSpace</name></member>
<member><type>float</type> <name>scale</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardModelVisibilitySetInfoMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>visible</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardAnimationStateMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_ANIMATION_STATE_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>int32_t</type> <name>animationIndex</name></member>
<member><type>float</type> <name>fraction</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardModelAnimationStatesMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>stateCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>stateCountOutput</name></member>
<member len="stateCapacityInput" optional="true"><type>XrVirtualKeyboardAnimationStateMETA</type>* <name>states</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardTextureDataMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_TEXTURE_DATA_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>textureWidth</name></member>
<member><type>uint32_t</type> <name>textureHeight</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 len="bufferCapacityInput" optional="true"><type>uint8_t</type>* <name>buffer</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardInputInfoMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_INPUT_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardInputSourceMETA</type> <name>inputSource</name></member>
<member optional="true"><type>XrSpace</type> <name>inputSpace</name></member>
<member optional="true"><type>XrPosef</type> <name>inputPoseInSpace</name></member>
<member optional="true"><type>XrVirtualKeyboardInputStateFlagsMETA</type> <name>inputState</name></member>
</type>
<type category="struct" name="XrVirtualKeyboardTextContextChangeInfoMETA">
<member values="XR_TYPE_VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META"><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>textContext</name></member>
</type>
<type category="struct" name="XrEventDataVirtualKeyboardCommitTextMETA">
<member values="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></member>
<member><type>char</type> <name>text</name>[<enum>XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META</enum>]</member>
</type>
<type category="struct" name="XrEventDataVirtualKeyboardBackspaceMETA">
<member values="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></member>
</type>
<type category="struct" name="XrEventDataVirtualKeyboardEnterMETA">
<member values="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></member>
</type>
<type category="struct" name="XrEventDataVirtualKeyboardShownMETA">
<member values="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></member>
</type>
<type category="struct" name="XrEventDataVirtualKeyboardHiddenMETA">
<member values="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></member>
</type>
<!-- XR_ML_user_calibration -->
<type category="struct" name="XrUserCalibrationEnableEventsInfoML">
<member values="XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML"><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="XrEventDataHeadsetFitChangedML" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrHeadsetFitStatusML</type> <name>status</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrEventDataEyeCalibrationChangedML" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrEyeCalibrationStatusML</type> <name>status</name></member>
</type>
<!-- XR_ML_localization_map -->
<type category="struct" name="XrLocalizationMapML">
<member values="XR_TYPE_LOCALIZATION_MAP_ML"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>char</type> <name>name</name>[<enum>XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML</enum>]</member>
<member optional="true"><type>XrUuidEXT</type> <name>mapUuid</name></member>
<member optional="true"><type>XrLocalizationMapTypeML</type> <name>mapType</name></member>
</type>
<type category="struct" name="XrLocalizationEnableEventsInfoML">
<member values="XR_TYPE_LOCALIZATION_ENABLE_EVENTS_INFO_ML"><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="XrEventDataLocalizationChangedML" parentstruct="XrEventDataBaseHeader" returnedonly="true">
<member values="XR_TYPE_EVENT_DATA_LOCALIZATION_CHANGED_ML"> <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>XrLocalizationMapStateML</type> <name>state</name></member>
<member><type>XrLocalizationMapML</type> <name>map</name></member>
<member><type>XrLocalizationMapConfidenceML</type> <name>confidence</name></member>
<member><type>XrLocalizationMapErrorFlagsML</type> <name>errorFlags</name></member>
</type>
<type category="struct" name="XrLocalizationMapQueryInfoBaseHeaderML">
<member><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrMapLocalizationRequestInfoML">
<member values="XR_TYPE_MAP_LOCALIZATION_REQUEST_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrUuidEXT</type> <name>mapUuid</name></member>
</type>
<type category="struct" name="XrLocalizationMapImportInfoML">
<member values="XR_TYPE_LOCALIZATION_MAP_IMPORT_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>size</name></member>
<member len="size"><type>char</type>* <name>data</name></member>
</type>
<!-- XR_ML_marker_understanding -->
<type category="struct" name="XrSystemMarkerUnderstandingPropertiesML" structextends="XrSystemProperties" returnedonly="true">
<member values="XR_TYPE_SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsMarkerUnderstanding</name></member>
</type>
<type category="struct" name="XrMarkerDetectorCreateInfoML">
<member values="XR_TYPE_MARKER_DETECTOR_CREATE_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMarkerDetectorProfileML</type> <name>profile</name></member>
<member><type>XrMarkerTypeML</type> <name>markerType</name></member>
</type>
<type category="struct" name="XrMarkerDetectorArucoInfoML" structextends="XrMarkerDetectorCreateInfoML">
<member values="XR_TYPE_MARKER_DETECTOR_ARUCO_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMarkerArucoDictML</type> <name>arucoDict</name></member>
</type>
<type category="struct" name="XrMarkerDetectorSizeInfoML" structextends="XrMarkerDetectorCreateInfoML">
<member values="XR_TYPE_MARKER_DETECTOR_SIZE_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>markerLength</name></member>
</type>
<type category="struct" name="XrMarkerDetectorAprilTagInfoML" structextends="XrMarkerDetectorCreateInfoML">
<member values="XR_TYPE_MARKER_DETECTOR_APRIL_TAG_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMarkerAprilTagDictML</type> <name>aprilTagDict</name></member>
</type>
<type category="struct" name="XrMarkerDetectorCustomProfileInfoML" structextends="XrMarkerDetectorCreateInfoML">
<member values="XR_TYPE_MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMarkerDetectorFpsML</type> <name>fpsHint</name></member>
<member><type>XrMarkerDetectorResolutionML</type> <name>resolutionHint</name></member>
<member><type>XrMarkerDetectorCameraML</type> <name>cameraHint</name></member>
<member><type>XrMarkerDetectorCornerRefineMethodML</type> <name>cornerRefineMethod</name></member>
<member><type>XrBool32</type> <name>useEdgeRefinement</name></member>
<member><type>XrMarkerDetectorFullAnalysisIntervalML</type> <name>fullAnalysisIntervalHint</name></member>
</type>
<type category="struct" name="XrMarkerDetectorSnapshotInfoML">
<member values="XR_TYPE_MARKER_DETECTOR_SNAPSHOT_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrMarkerDetectorStateML" returnedonly="true">
<member values="XR_TYPE_MARKER_DETECTOR_STATE_ML"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrMarkerDetectorStatusML</type> <name>state</name></member>
</type>
<type category="struct" name="XrMarkerSpaceCreateInfoML">
<member values="XR_TYPE_MARKER_SPACE_CREATE_INFO_ML"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMarkerDetectorML</type> <name>markerDetector</name></member>
<member><type>XrMarkerML</type> <name>marker</name></member>
<member><type>XrPosef</type> <name>poseInMarkerSpace</name></member>
</type>
<type category="struct" name="XrColor3f">
<member><type>float</type> <name>r</name></member>
<member><type>float</type> <name>g</name></member>
<member><type>float</type> <name>b</name></member>
</type>
<type category="struct" name="XrExtent3Df">
<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="XrSpheref">
<member><type>XrPosef</type> <name>center</name></member>
<member><type>float</type> <name>radius</name></member>
</type>
<type category="struct" name="XrBoxf">
<member><type>XrPosef</type> <name>center</name></member>
<member><type>XrExtent3Df</type> <name>extents</name></member>
</type>
<type category="struct" name="XrFrustumf">
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
<member><type>float</type> <name>nearZ</name></member>
<member><type>float</type> <name>farZ</name></member>
</type>
<type category="struct" name="XrUuid">
<member><type>uint8_t</type> <name>data</name>[XR_UUID_SIZE]</member>
</type>
<!-- XR_KHR_maintenance1 -->
<type category="struct" name="XrColor3fKHR" alias="XrColor3f"/>
<type category="struct" name="XrExtent3DfKHR" alias="XrExtent3Df"/>
<type category="struct" name="XrSpherefKHR" alias="XrSpheref"/>
<type category="struct" name="XrBoxfKHR" alias="XrBoxf"/>
<type category="struct" name="XrFrustumfKHR" alias="XrFrustumf"/>
<!-- XR_META_recommended_layer_resolution types -->
<type category="struct" name="XrRecommendedLayerResolutionMETA" returnedonly="true">
<member values="XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrExtent2Di</type> <name>recommendedImageDimensions</name></member>
<member><type>XrBool32</type> <name>isValid</name></member>
</type>
<type category="struct" name="XrRecommendedLayerResolutionGetInfoMETA">
<member values="XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member>const <type>XrCompositionLayerBaseHeader</type>* <name>layer</name></member>
<member><type>XrTime</type> <name>predictedDisplayTime</name></member>
</type>
<!-- XR_EXT_user_presence -->
<type category="struct" name="XrSystemUserPresencePropertiesEXT" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsUserPresence</name></member>
</type>
<type category="struct" name="XrEventDataUserPresenceChangedEXT">
<member values="XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT"><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>XrBool32</type> <name>isUserPresent</name></member>
</type>
<!-- XR_EXT_future -->
<type category="struct" name="XrFutureCompletionBaseHeaderEXT">
<member><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrResult</type> <name>futureResult</name></member>
</type>
<type category="struct" name="XrFutureCompletionEXT" parentstruct="XrFutureCompletionBaseHeaderEXT">
<member values="XR_TYPE_FUTURE_COMPLETION_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrResult</type> <name>futureResult</name></member>
</type>
<type category="struct" name="XrFutureCancelInfoEXT">
<member values="XR_TYPE_FUTURE_CANCEL_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFutureEXT</type> <name>future</name></member>
</type>
<type category="struct" name="XrFuturePollInfoEXT">
<member values="XR_TYPE_FUTURE_POLL_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFutureEXT</type> <name>future</name></member>
</type>
<type category="struct" name="XrFuturePollResultEXT" returnedonly="true">
<member values="XR_TYPE_FUTURE_POLL_RESULT_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrFutureStateEXT</type> <name>state</name></member>
</type>
<!-- XR_META_environment_depth -->
<type category="struct" name="XrEnvironmentDepthProviderCreateInfoMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrEnvironmentDepthProviderCreateFlagsMETA</type> <name>createFlags</name></member>
</type>
<type category="struct" name="XrEnvironmentDepthSwapchainCreateInfoMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrEnvironmentDepthSwapchainCreateFlagsMETA</type> <name>createFlags</name></member>
</type>
<type category="struct" name="XrEnvironmentDepthSwapchainStateMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META"><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>
<type category="struct" name="XrEnvironmentDepthImageAcquireInfoMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META"><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>XrTime</type> <name>displayTime</name></member>
</type>
<type category="struct" name="XrEnvironmentDepthImageViewMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrEnvironmentDepthImageMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>swapchainIndex</name></member>
<member><type>float</type> <name>nearZ</name></member>
<member><type>float</type> <name>farZ</name></member>
<member><type>XrEnvironmentDepthImageViewMETA</type> <name>views</name>[2]</member>
</type>
<type category="struct" name="XrEnvironmentDepthHandRemovalSetInfoMETA">
<member values="XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_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="XrSystemEnvironmentDepthPropertiesMETA" returnedonly="true" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsEnvironmentDepth</name></member>
<member><type>XrBool32</type> <name>supportsHandRemoval</name></member>
</type>
<!-- XR_KHR_locate_spaces -->
<type category="struct" name="XrSpacesLocateInfoKHR" alias="XrSpacesLocateInfo"/>
<type category="struct" name="XrSpacesLocateInfo">
<member values="XR_TYPE_SPACES_LOCATE_INFO"><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>uint32_t</type> <name>spaceCount</name></member>
<member len="spaceCount">const <type>XrSpace</type>* <name>spaces</name></member>
</type>
<type category="struct" name="XrSpaceLocationsKHR" alias="XrSpaceLocations"/>
<type category="struct" name="XrSpaceLocations">
<member values="XR_TYPE_SPACE_LOCATIONS"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>locationCount</name></member>
<member len="locationCount"><type>XrSpaceLocationData</type>* <name>locations</name></member>
</type>
<type category="struct" name="XrSpaceLocationDataKHR" alias="XrSpaceLocationData"/>
<type category="struct" name="XrSpaceLocationData" returnedonly="true">
<member><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrSpaceVelocitiesKHR" alias="XrSpaceVelocities"/>
<type category="struct" name="XrSpaceVelocities" structextends="XrSpaceLocations">
<member values="XR_TYPE_SPACE_VELOCITIES"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>velocityCount</name></member>
<member len="velocityCount"><type>XrSpaceVelocityData</type>* <name>velocities</name></member>
</type>
<type category="struct" name="XrSpaceVelocityDataKHR" alias="XrSpaceVelocityData"/>
<type category="struct" name="XrSpaceVelocityData" returnedonly="true">
<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>
</types>
<!-- SECTION: OpenXR enumerant (token) definitions. -->
<enums name="API Constants" comment="Misc. hardcoded constants - not an enumerated type">
<!-- This is part of the header boilerplate -->
<enum value="1" name="XR_TRUE"/>
<enum value="0" name="XR_FALSE"/>
<enum value="128" name="XR_MAX_EXTENSION_NAME_SIZE"/>
<enum value="256" name="XR_MAX_API_LAYER_NAME_SIZE"/>
<enum value="256" name="XR_MAX_API_LAYER_DESCRIPTION_SIZE"/>
<enum value="256" name="XR_MAX_SYSTEM_NAME_SIZE"/>
<enum value="128" name="XR_MAX_APPLICATION_NAME_SIZE"/>
<enum value="128" name="XR_MAX_ENGINE_NAME_SIZE"/>
<enum value="128" name="XR_MAX_RUNTIME_NAME_SIZE"/>
<enum value="256" name="XR_MAX_PATH_LENGTH"/>
<enum value="64" name="XR_MAX_STRUCTURE_NAME_SIZE"/>
<enum value="64" name="XR_MAX_RESULT_STRING_SIZE"/>
<enum value="32" name="XR_MAX_GRAPHICS_APIS_SUPPORTED"/>
<enum value="64" name="XR_MAX_ACTION_SET_NAME_SIZE"/>
<enum value="64" name="XR_MAX_ACTION_NAME_SIZE"/>
<enum value="128" name="XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE"/>
<enum value="128" name="XR_MAX_LOCALIZED_ACTION_NAME_SIZE"/>
<enum value="16" name="XR_UUID_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_EXT_hand_tracking_data_source -->
<enums name="XrHandTrackingDataSourceEXT" type="enum">
<enum value="1" name="XR_HAND_TRACKING_DATA_SOURCE_UNOBSTRUCTED_EXT" comment="This data source value indicates individual fingers and joints are tracked from unobstructed data source such as optical hand tracking, data gloves, or motion capture devices."/>
<enum value="2" name="XR_HAND_TRACKING_DATA_SOURCE_CONTROLLER_EXT" comment="This data source value indicates hand joints are inferred based on motion controller state."/>
</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_face_tracking2 -->
<enums name="XrFaceExpression2FB" type="enum">
<enum value="0" name="XR_FACE_EXPRESSION2_BROW_LOWERER_L_FB"/>
<enum value="1" name="XR_FACE_EXPRESSION2_BROW_LOWERER_R_FB"/>
<enum value="2" name="XR_FACE_EXPRESSION2_CHEEK_PUFF_L_FB"/>
<enum value="3" name="XR_FACE_EXPRESSION2_CHEEK_PUFF_R_FB"/>
<enum value="4" name="XR_FACE_EXPRESSION2_CHEEK_RAISER_L_FB"/>
<enum value="5" name="XR_FACE_EXPRESSION2_CHEEK_RAISER_R_FB"/>
<enum value="6" name="XR_FACE_EXPRESSION2_CHEEK_SUCK_L_FB"/>
<enum value="7" name="XR_FACE_EXPRESSION2_CHEEK_SUCK_R_FB"/>
<enum value="8" name="XR_FACE_EXPRESSION2_CHIN_RAISER_B_FB"/>
<enum value="9" name="XR_FACE_EXPRESSION2_CHIN_RAISER_T_FB"/>
<enum value="10" name="XR_FACE_EXPRESSION2_DIMPLER_L_FB"/>
<enum value="11" name="XR_FACE_EXPRESSION2_DIMPLER_R_FB"/>
<enum value="12" name="XR_FACE_EXPRESSION2_EYES_CLOSED_L_FB"/>
<enum value="13" name="XR_FACE_EXPRESSION2_EYES_CLOSED_R_FB"/>
<enum value="14" name="XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_L_FB"/>
<enum value="15" name="XR_FACE_EXPRESSION2_EYES_LOOK_DOWN_R_FB"/>
<enum value="16" name="XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_L_FB"/>
<enum value="17" name="XR_FACE_EXPRESSION2_EYES_LOOK_LEFT_R_FB"/>
<enum value="18" name="XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_L_FB"/>
<enum value="19" name="XR_FACE_EXPRESSION2_EYES_LOOK_RIGHT_R_FB"/>
<enum value="20" name="XR_FACE_EXPRESSION2_EYES_LOOK_UP_L_FB"/>
<enum value="21" name="XR_FACE_EXPRESSION2_EYES_LOOK_UP_R_FB"/>
<enum value="22" name="XR_FACE_EXPRESSION2_INNER_BROW_RAISER_L_FB"/>
<enum value="23" name="XR_FACE_EXPRESSION2_INNER_BROW_RAISER_R_FB"/>
<enum value="24" name="XR_FACE_EXPRESSION2_JAW_DROP_FB"/>
<enum value="25" name="XR_FACE_EXPRESSION2_JAW_SIDEWAYS_LEFT_FB"/>
<enum value="26" name="XR_FACE_EXPRESSION2_JAW_SIDEWAYS_RIGHT_FB"/>
<enum value="27" name="XR_FACE_EXPRESSION2_JAW_THRUST_FB"/>
<enum value="28" name="XR_FACE_EXPRESSION2_LID_TIGHTENER_L_FB"/>
<enum value="29" name="XR_FACE_EXPRESSION2_LID_TIGHTENER_R_FB"/>
<enum value="30" name="XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_L_FB"/>
<enum value="31" name="XR_FACE_EXPRESSION2_LIP_CORNER_DEPRESSOR_R_FB"/>
<enum value="32" name="XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_L_FB"/>
<enum value="33" name="XR_FACE_EXPRESSION2_LIP_CORNER_PULLER_R_FB"/>
<enum value="34" name="XR_FACE_EXPRESSION2_LIP_FUNNELER_LB_FB"/>
<enum value="35" name="XR_FACE_EXPRESSION2_LIP_FUNNELER_LT_FB"/>
<enum value="36" name="XR_FACE_EXPRESSION2_LIP_FUNNELER_RB_FB"/>
<enum value="37" name="XR_FACE_EXPRESSION2_LIP_FUNNELER_RT_FB"/>
<enum value="38" name="XR_FACE_EXPRESSION2_LIP_PRESSOR_L_FB"/>
<enum value="39" name="XR_FACE_EXPRESSION2_LIP_PRESSOR_R_FB"/>
<enum value="40" name="XR_FACE_EXPRESSION2_LIP_PUCKER_L_FB"/>
<enum value="41" name="XR_FACE_EXPRESSION2_LIP_PUCKER_R_FB"/>
<enum value="42" name="XR_FACE_EXPRESSION2_LIP_STRETCHER_L_FB"/>
<enum value="43" name="XR_FACE_EXPRESSION2_LIP_STRETCHER_R_FB"/>
<enum value="44" name="XR_FACE_EXPRESSION2_LIP_SUCK_LB_FB"/>
<enum value="45" name="XR_FACE_EXPRESSION2_LIP_SUCK_LT_FB"/>
<enum value="46" name="XR_FACE_EXPRESSION2_LIP_SUCK_RB_FB"/>
<enum value="47" name="XR_FACE_EXPRESSION2_LIP_SUCK_RT_FB"/>
<enum value="48" name="XR_FACE_EXPRESSION2_LIP_TIGHTENER_L_FB"/>
<enum value="49" name="XR_FACE_EXPRESSION2_LIP_TIGHTENER_R_FB"/>
<enum value="50" name="XR_FACE_EXPRESSION2_LIPS_TOWARD_FB"/>
<enum value="51" name="XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_L_FB"/>
<enum value="52" name="XR_FACE_EXPRESSION2_LOWER_LIP_DEPRESSOR_R_FB"/>
<enum value="53" name="XR_FACE_EXPRESSION2_MOUTH_LEFT_FB"/>
<enum value="54" name="XR_FACE_EXPRESSION2_MOUTH_RIGHT_FB"/>
<enum value="55" name="XR_FACE_EXPRESSION2_NOSE_WRINKLER_L_FB"/>
<enum value="56" name="XR_FACE_EXPRESSION2_NOSE_WRINKLER_R_FB"/>
<enum value="57" name="XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_L_FB"/>
<enum value="58" name="XR_FACE_EXPRESSION2_OUTER_BROW_RAISER_R_FB"/>
<enum value="59" name="XR_FACE_EXPRESSION2_UPPER_LID_RAISER_L_FB"/>
<enum value="60" name="XR_FACE_EXPRESSION2_UPPER_LID_RAISER_R_FB"/>
<enum value="61" name="XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_L_FB"/>
<enum value="62" name="XR_FACE_EXPRESSION2_UPPER_LIP_RAISER_R_FB"/>
<enum value="63" name="XR_FACE_EXPRESSION2_TONGUE_TIP_INTERDENTAL_FB"/>
<enum value="64" name="XR_FACE_EXPRESSION2_TONGUE_TIP_ALVEOLAR_FB"/>
<enum value="65" name="XR_FACE_EXPRESSION2_TONGUE_FRONT_DORSAL_PALATE_FB"/>
<enum value="66" name="XR_FACE_EXPRESSION2_TONGUE_MID_DORSAL_PALATE_FB"/>
<enum value="67" name="XR_FACE_EXPRESSION2_TONGUE_BACK_DORSAL_VELAR_FB"/>
<enum value="68" name="XR_FACE_EXPRESSION2_TONGUE_OUT_FB"/>
<enum value="69" name="XR_FACE_EXPRESSION2_TONGUE_RETREAT_FB"/>
<enum value="70" name="XR_FACE_EXPRESSION2_COUNT_FB"/>
</enums>
<enums name="XrFaceExpressionSet2FB" type="enum">
<enum value="0" name="XR_FACE_EXPRESSION_SET2_DEFAULT_FB" comment="indicates that the created slink:XrFaceTracker2FB tracks the set of blend shapes described by elink:XrFaceExpression2FB enum, i.e. the flink:xrGetFaceExpressionWeights2FB function returns an array of blend shapes with the count of ename:XR_FACE_EXPRESSION2_COUNT_FB and can: be indexed using elink:XrFaceExpression2FB."/>
</enums>
<enums name="XrFaceTrackingDataSource2FB" type="enum">
<enum value="0" name="XR_FACE_TRACKING_DATA_SOURCE2_VISUAL_FB" comment="face tracking uses visual data to estimate expressions. Face tracking may use audio to further improve the quality of face tracking."/>
<enum value="1" name="XR_FACE_TRACKING_DATA_SOURCE2_AUDIO_FB" comment="face tracking uses audio data to estimate expressions."/>
</enums>
<enums name="XrFaceConfidence2FB" type="enum">
<enum value="0" name="XR_FACE_CONFIDENCE2_LOWER_FACE_FB"/>
<enum value="1" name="XR_FACE_CONFIDENCE2_UPPER_FACE_FB"/>
<enum value="2" name="XR_FACE_CONFIDENCE2_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>
<!-- enums for XR_ML_marker_understanding -->
<enums name="XrMarkerDetectorProfileML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_PROFILE_DEFAULT_ML" comment="Tracker profile that covers standard use cases. If this does not suite the needs of the application try the other profiles listed below."/>
<enum value="1" name="XR_MARKER_DETECTOR_PROFILE_SPEED_ML" comment="Optimized for speed. Use this profile to reduce the compute load and increase detection/tracker speed. This can result in low accuracy poses."/>
<enum value="2" name="XR_MARKER_DETECTOR_PROFILE_ACCURACY_ML" comment="Optimized for accuracy. Use this profile to optimize for accurate marker poses. This can cause increased load on the compute."/>
<enum value="3" name="XR_MARKER_DETECTOR_PROFILE_SMALL_TARGETS_ML" comment="Optimized for small targets. Use this profile to optimize for markers that are small or for larger markers that need to be detected from afar."/>
<enum value="4" name="XR_MARKER_DETECTOR_PROFILE_LARGE_FOV_ML" comment="Optimized for FoV. Use this profile to be able to detect markers across a larger FoV. The marker tracker system will attempt to use multiple cameras to detect the markers."/>
<enum value="5" name="XR_MARKER_DETECTOR_PROFILE_CUSTOM_ML" comment="Custom Tracker Profile. The application can define a custom tracker profile. See slink:XrMarkerDetectorCustomProfileInfoML for more details."/>
</enums>
<enums name="XrMarkerTypeML" type="enum">
<enum value="0" name="XR_MARKER_TYPE_ARUCO_ML" comment="Aruco Marker detection and localization. The marker id of the Aruco marker is available via flink:xrGetMarkerNumberML."/>
<enum value="1" name="XR_MARKER_TYPE_APRIL_TAG_ML" comment="AprilTag detection and localization. The marker id of the AprilTags is available via flink:xrGetMarkerNumberML."/>
<enum value="2" name="XR_MARKER_TYPE_QR_ML" comment="QR code detection and localization. The contents of the QR code is available via flink:xrGetMarkerStringML."/>
<enum value="3" name="XR_MARKER_TYPE_EAN_13_ML" comment="EAN-13, detection only, not locatable. The contents of the barcode is available via flink:xrGetMarkerStringML."/>
<enum value="4" name="XR_MARKER_TYPE_UPC_A_ML" comment="UPC-A, detection only, not locatable. The contents of the barcode is available via flink:xrGetMarkerStringML."/>
<enum value="5" name="XR_MARKER_TYPE_CODE_128_ML" comment="Code 128, detection only, not locatable. The contents of the barcode is available via flink:xrGetMarkerStringML."/>
</enums>
<enums name="XrMarkerArucoDictML" type="enum">
<enum value="0" name="XR_MARKER_ARUCO_DICT_4X4_50_ML" comment="4 by 4 pixel Aruco marker dictionary with 50 IDs."/>
<enum value="1" name="XR_MARKER_ARUCO_DICT_4X4_100_ML" comment="4 by 4 pixel Aruco marker dictionary with 100 IDs."/>
<enum value="2" name="XR_MARKER_ARUCO_DICT_4X4_250_ML" comment="4 by 4 pixel Aruco marker dictionary with 250 IDs."/>
<enum value="3" name="XR_MARKER_ARUCO_DICT_4X4_1000_ML" comment="4 by 4 pixel Aruco marker dictionary with 1000 IDs."/>
<enum value="4" name="XR_MARKER_ARUCO_DICT_5X5_50_ML" comment="5 by 5 pixel Aruco marker dictionary with 50 IDs."/>
<enum value="5" name="XR_MARKER_ARUCO_DICT_5X5_100_ML" comment="5 by 5 pixel Aruco marker dictionary with 100 IDs."/>
<enum value="6" name="XR_MARKER_ARUCO_DICT_5X5_250_ML" comment="5 by 5 pixel Aruco marker dictionary with 250 IDs."/>
<enum value="7" name="XR_MARKER_ARUCO_DICT_5X5_1000_ML" comment="5 by 5 pixel Aruco marker dictionary with 1000 IDs."/>
<enum value="8" name="XR_MARKER_ARUCO_DICT_6X6_50_ML" comment="6 by 6 pixel Aruco marker dictionary with 50 IDs."/>
<enum value="9" name="XR_MARKER_ARUCO_DICT_6X6_100_ML" comment="6 by 6 pixel Aruco marker dictionary with 100 IDs."/>
<enum value="10" name="XR_MARKER_ARUCO_DICT_6X6_250_ML" comment="6 by 6 pixel Aruco marker dictionary with 250 IDs."/>
<enum value="11" name="XR_MARKER_ARUCO_DICT_6X6_1000_ML" comment="6 by 6 pixel Aruco marker dictionary with 1000 IDs."/>
<enum value="12" name="XR_MARKER_ARUCO_DICT_7X7_50_ML" comment="7 by 7 pixel Aruco marker dictionary with 50 IDs."/>
<enum value="13" name="XR_MARKER_ARUCO_DICT_7X7_100_ML" comment="7 by 7 pixel Aruco marker dictionary with 100 IDs."/>
<enum value="14" name="XR_MARKER_ARUCO_DICT_7X7_250_ML" comment="7 by 7 pixel Aruco marker dictionary with 250 IDs."/>
<enum value="15" name="XR_MARKER_ARUCO_DICT_7X7_1000_ML" comment="7 by 7 pixel Aruco marker dictionary with 1000 IDs."/>
</enums>
<enums name="XrMarkerAprilTagDictML" type="enum">
<enum value="0" name="XR_MARKER_APRIL_TAG_DICT_16H5_ML" comment="4 by 4 bits, minimum Hamming distance between any two codes = 5, 30 codes."/>
<enum value="1" name="XR_MARKER_APRIL_TAG_DICT_25H9_ML" comment="5 by 5 bits, minimum Hamming distance between any two codes = 9, 35 codes."/>
<enum value="2" name="XR_MARKER_APRIL_TAG_DICT_36H10_ML" comment="6 by 6 bits, minimum Hamming distance between any two codes = 10, 2320 codes."/>
<enum value="3" name="XR_MARKER_APRIL_TAG_DICT_36H11_ML" comment="6 by 6 bits, minimum Hamming distance between any two codes = 11, 587 codes."/>
</enums>
<enums name="XrMarkerDetectorFpsML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_FPS_LOW_ML" comment="Low FPS."/>
<enum value="1" name="XR_MARKER_DETECTOR_FPS_MEDIUM_ML" comment="Medium FPS."/>
<enum value="2" name="XR_MARKER_DETECTOR_FPS_HIGH_ML" comment="High FPS."/>
<enum value="3" name="XR_MARKER_DETECTOR_FPS_MAX_ML" comment="Max possible FPS."/>
</enums>
<enums name="XrMarkerDetectorResolutionML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_RESOLUTION_LOW_ML" comment="Low Resolution."/>
<enum value="1" name="XR_MARKER_DETECTOR_RESOLUTION_MEDIUM_ML" comment="Medium Resolution."/>
<enum value="2" name="XR_MARKER_DETECTOR_RESOLUTION_HIGH_ML" comment="High Resolution."/>
</enums>
<enums name="XrMarkerDetectorCameraML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_CAMERA_RGB_CAMERA_ML" comment="Single RGB camera."/>
<enum value="1" name="XR_MARKER_DETECTOR_CAMERA_WORLD_CAMERAS_ML" comment="One or more world cameras."/>
</enums>
<enums name="XrMarkerDetectorCornerRefineMethodML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_NONE_ML" comment="No refinement. Inaccurate corners."/>
<enum value="1" name="XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_SUBPIX_ML" comment="Subpixel refinement. Corners have subpixel coordinates. High detection rate, very fast, reasonable accuracy."/>
<enum value="2" name="XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_CONTOUR_ML" comment="Contour refinement. High detection rate, fast, reasonable accuracy."/>
<enum value="3" name="XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML" comment="AprilTag refinement. Reasonable detection rate, slowest, but very accurate. Only valid with AprilTags."/>
</enums>
<enums name="XrMarkerDetectorFullAnalysisIntervalML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MAX_ML" comment="Detector analyzes every frame fully."/>
<enum value="1" name="XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_FAST_ML" comment="Detector analyzes frame fully very often."/>
<enum value="2" name="XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_MEDIUM_ML" comment="Detector analyzes frame fully a few times per second."/>
<enum value="3" name="XR_MARKER_DETECTOR_FULL_ANALYSIS_INTERVAL_SLOW_ML" comment="Detector analyzes frame fully about every second."/>
</enums>
<enums name="XrMarkerDetectorStatusML" type="enum">
<enum value="0" name="XR_MARKER_DETECTOR_STATUS_PENDING_ML" comment="The marker detector is working on a new snapshot."/>
<enum value="1" name="XR_MARKER_DETECTOR_STATUS_READY_ML" comment="The marker detector is ready to be inspected."/>
<enum value="2" name="XR_MARKER_DETECTOR_STATUS_ERROR_ML" comment="The marker detector has encountered a fatal error."/>
</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 officially deprecated in OpenXR 1.1." deprecated="ignored"/>
<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>
<!-- openxr_loader_negotiation.h -->
<enums name="XrLoaderInterfaceStructs" type="enum">
<enum value="0" name="XR_LOADER_INTERFACE_STRUCT_UNINTIALIZED"/>
<enum value="1" name="XR_LOADER_INTERFACE_STRUCT_LOADER_INFO"/>
<enum value="2" name="XR_LOADER_INTERFACE_STRUCT_API_LAYER_REQUEST"/>
<enum value="3" name="XR_LOADER_INTERFACE_STRUCT_RUNTIME_REQUEST"/>
<enum value="4" name="XR_LOADER_INTERFACE_STRUCT_API_LAYER_CREATE_INFO"/>
<enum value="5" name="XR_LOADER_INTERFACE_STRUCT_API_LAYER_NEXT_INFO"/>
</enums>
<!-- flags for XR_KHR_vulkan_enable2 -->
<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>
<!-- enums 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>
<!-- enums 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>
<!-- enums for XR_MSFT_scene_marker -->
<enums name="XrSceneMarkerTypeMSFT" type="enum">
<enum value="1" name="XR_SCENE_MARKER_TYPE_QR_CODE_MSFT"/>
</enums>
<enums name="XrSceneMarkerQRCodeSymbolTypeMSFT" type="enum">
<enum value="1" name="XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_QR_CODE_MSFT"/>
<enum value="2" name="XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_MICRO_QR_CODE_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>
<!-- flags for XR_FB_scene -->
<enums name="XrSemanticLabelsSupportFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_SEMANTIC_LABELS_SUPPORT_MULTIPLE_SEMANTIC_LABELS_BIT_FB" comment="If set, and the runtime reports the pname:extensionVersion as 2 or greater, the runtime may: return multiple semantic labels separated by a comma without spaces. Otherwise, the runtime must: return a single semantic label."/>
<enum bitpos="1" name="XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_DESK_TO_TABLE_MIGRATION_BIT_FB" comment="If set, and the runtime reports the pname:extensionVersion as 3 or greater, the runtime must: return &quot;TABLE&quot; instead of &quot;DESK&quot; as a semantic label to the application. Otherwise, the runtime must: return &quot;DESK&quot; instead of &quot;TABLE&quot; as a semantic label to the application, when applicable."/>
<enum bitpos="2" name="XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_INVISIBLE_WALL_FACE_BIT_FB" comment="If set, and the runtime reports the pname:extensionVersion as 4 or greater, the runtime may: return &quot;INVISIBLE_WALL_FACE&quot; instead of &quot;WALL_FACE&quot; as a semantic label to the application in order to represent an invisible wall used to conceptually separate a space (e.g., separate a living space from a kitchen space in an open floor plan house even though there is no real wall between the two spaces) instead of a real wall. Otherwise, the runtime must: return &quot;WALL_FACE&quot; as a semantic label to the application in order to represent both an invisible and real wall, when applicable."/>
</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>
<!-- enums for XR_META_passthrough_color_lut-->
<enums name="XrPassthroughColorLutChannelsMETA" type="enum">
<enum value="1" name="XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGB_META"/>
<enum value="2" name="XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGBA_META"/>
</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>
<!-- flags for XR_META_passthrough_preferences -->
<enums name="XrPassthroughPreferenceFlagBitsMETA" type="bitmask">
<enum bitpos="0" name="XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META" comment="Indicates that the runtime recommends apps to default to a mixed reality experience with passthrough (if supported)."/>
</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>
<!-- enums XR_EXT_plane_detection -->
<enums name="XrPlaneDetectorFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="XR_PLANE_DETECTOR_ENABLE_CONTOUR_BIT_EXT" comment="populate the plane contour information"/>
</enums>
<enums name="XrPlaneDetectionCapabilityFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="XR_PLANE_DETECTION_CAPABILITY_PLANE_DETECTION_BIT_EXT" comment="plane detection is supported"/>
<enum bitpos="1" name="XR_PLANE_DETECTION_CAPABILITY_PLANE_HOLES_BIT_EXT" comment="polygon buffers for holes in planes can be generated"/>
<enum bitpos="2" name="XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_CEILING_BIT_EXT" comment="plane detection supports ceiling semantic classification"/>
<enum bitpos="3" name="XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_FLOOR_BIT_EXT" comment="plane detection supports floor semantic classification"/>
<enum bitpos="4" name="XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_WALL_BIT_EXT" comment="plane detection supports wall semantic classification"/>
<enum bitpos="5" name="XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_PLATFORM_BIT_EXT" comment="plane detection supports platform semantic classification (for example table tops)"/>
<enum bitpos="6" name="XR_PLANE_DETECTION_CAPABILITY_ORIENTATION_BIT_EXT" comment="plane detection supports plane orientation classification. If not supported planes are always classified as ARBITRARY."/>
</enums>
<enums name="XrPlaneDetectionStateEXT" type="enum">
<enum value="0" name="XR_PLANE_DETECTION_STATE_NONE_EXT"/>
<enum value="1" name="XR_PLANE_DETECTION_STATE_PENDING_EXT"/>
<enum value="2" name="XR_PLANE_DETECTION_STATE_DONE_EXT"/>
<enum value="3" name="XR_PLANE_DETECTION_STATE_ERROR_EXT"/>
<enum value="4" name="XR_PLANE_DETECTION_STATE_FATAL_EXT"/>
</enums>
<enums name="XrPlaneDetectorOrientationEXT" type="enum">
<enum value="0" name="XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_UPWARD_EXT" comment="The detected plane is horizontal and faces upward (e.g. floor)."/>
<enum value="1" name="XR_PLANE_DETECTOR_ORIENTATION_HORIZONTAL_DOWNWARD_EXT" comment="The detected plane is horizontal and faces downward (e.g. ceiling)."/>
<enum value="2" name="XR_PLANE_DETECTOR_ORIENTATION_VERTICAL_EXT" comment="The detected plane is vertical (e.g. wall)."/>
<enum value="3" name="XR_PLANE_DETECTOR_ORIENTATION_ARBITRARY_EXT" comment="The detected plane has an arbitrary, non-vertical and non-horizontal orientation."/>
</enums>
<enums name="XrPlaneDetectorSemanticTypeEXT" type="enum">
<enum value="0" name="XR_PLANE_DETECTOR_SEMANTIC_TYPE_UNDEFINED_EXT" comment="The runtime was unable to classify this plane."/>
<enum value="1" name="XR_PLANE_DETECTOR_SEMANTIC_TYPE_CEILING_EXT" comment="The detected plane is a ceiling."/>
<enum value="2" name="XR_PLANE_DETECTOR_SEMANTIC_TYPE_FLOOR_EXT" comment="The detected plane is a floor."/>
<enum value="3" name="XR_PLANE_DETECTOR_SEMANTIC_TYPE_WALL_EXT" comment="The detected plane is a wall."/>
<enum value="4" name="XR_PLANE_DETECTOR_SEMANTIC_TYPE_PLATFORM_EXT" comment="The detected plane is a platform, like a table."/>
</enums>
<!-- enums for XR_META_virtual_keyboard -->
<enums name="XrVirtualKeyboardLocationTypeMETA" type="enum">
<enum value="0" name="XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_CUSTOM_META" comment="Indicates that the application will provide the position and scale of the keyboard."/>
<enum value="1" name="XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_FAR_META" comment="Indicates that the runtime will set the position and scale for far field keyboard."/>
<enum value="2" name="XR_VIRTUAL_KEYBOARD_LOCATION_TYPE_DIRECT_META" comment="Indicates that the runtime will set the position and scale for direct interaction keyboard."/>
</enums>
<enums name="XrVirtualKeyboardInputSourceMETA" type="enum">
<enum value="1" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_LEFT_META" comment="Left controller ray."/>
<enum value="2" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_RAY_RIGHT_META" comment="Right controller ray."/>
<enum value="3" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_LEFT_META" comment="Left hand ray."/>
<enum value="4" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_RAY_RIGHT_META" comment="Right hand ray."/>
<enum value="5" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_LEFT_META" comment="Left controller direct touch."/>
<enum value="6" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_CONTROLLER_DIRECT_RIGHT_META" comment="Right controller direct touch."/>
<enum value="7" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_LEFT_META" comment="Left hand direct touch."/>
<enum value="8" name="XR_VIRTUAL_KEYBOARD_INPUT_SOURCE_HAND_DIRECT_INDEX_TIP_RIGHT_META" comment="Right hand direct touch."/>
</enums>
<enums name="XrVirtualKeyboardInputStateFlagBitsMETA" type="bitmask">
<enum bitpos="0" name="XR_VIRTUAL_KEYBOARD_INPUT_STATE_PRESSED_BIT_META" comment="If the input source is considered 'pressed' at all. Pinch for hands, Primary button for controllers."/>
</enums>
<!-- XR_ML_user_calibration -->
<enums name="XrHeadsetFitStatusML" type="enum">
<enum value="0" name="XR_HEADSET_FIT_STATUS_UNKNOWN_ML" comment="Headset fit status not available for unknown reason."/>
<enum value="1" name="XR_HEADSET_FIT_STATUS_NOT_WORN_ML" comment="Headset not worn."/>
<enum value="2" name="XR_HEADSET_FIT_STATUS_GOOD_FIT_ML" comment="Good fit."/>
<enum value="3" name="XR_HEADSET_FIT_STATUS_BAD_FIT_ML" comment="Bad fit."/>
</enums>
<enums name="XrEyeCalibrationStatusML" type="enum">
<enum value="0" name="XR_EYE_CALIBRATION_STATUS_UNKNOWN_ML" comment="Eye calibration status not available for unknown reason."/>
<enum value="1" name="XR_EYE_CALIBRATION_STATUS_NONE_ML" comment="User has not performed the eye calibration step. Use system provided app to perform eye calibration."/>
<enum value="2" name="XR_EYE_CALIBRATION_STATUS_COARSE_ML" comment="Eye calibration is of lower accuracy."/>
<enum value="3" name="XR_EYE_CALIBRATION_STATUS_FINE_ML" comment="Eye calibration is of higher accuracy."/>
</enums>
<!-- XR_ML_localization_map -->
<enums name="XrLocalizationMapStateML" type="enum">
<enum value="0" name="XR_LOCALIZATION_MAP_STATE_NOT_LOCALIZED_ML" comment="The system is not localized into a map. Features like Spatial Anchors relying on localization will not work."/>
<enum value="1" name="XR_LOCALIZATION_MAP_STATE_LOCALIZED_ML" comment="The system is localized into a map."/>
<enum value="2" name="XR_LOCALIZATION_MAP_STATE_LOCALIZATION_PENDING_ML" comment="The system is localizing into a map."/>
<enum value="3" name="XR_LOCALIZATION_MAP_STATE_LOCALIZATION_SLEEPING_BEFORE_RETRY_ML" comment="Initial localization failed, the system will retry localization."/>
</enums>
<enums name="XrLocalizationMapTypeML" type="enum">
<enum value="0" name="XR_LOCALIZATION_MAP_TYPE_ON_DEVICE_ML" comment="The system is localized into an On-Device map, published anchors are not shared between different devices."/>
<enum value="1" name="XR_LOCALIZATION_MAP_TYPE_CLOUD_ML" comment="The system is localized into a Cloud Map, anchors are shared per cloud account settings."/>
</enums>
<enums name="XrLocalizationMapConfidenceML" type="enum">
<enum value="0" name="XR_LOCALIZATION_MAP_CONFIDENCE_POOR_ML" comment="The localization map has poor confidence, systems relying on the localization map are likely to have poor performance."/>
<enum value="1" name="XR_LOCALIZATION_MAP_CONFIDENCE_FAIR_ML" comment="The confidence is fair, current environmental conditions may adversely affect localization."/>
<enum value="2" name="XR_LOCALIZATION_MAP_CONFIDENCE_GOOD_ML" comment="The confidence is high, persistent content should be stable."/>
<enum value="3" name="XR_LOCALIZATION_MAP_CONFIDENCE_EXCELLENT_ML" comment="This is a very high-confidence localization, persistent content will be very stable."/>
</enums>
<enums name="XrLocalizationMapErrorFlagBitsML" type="bitmask">
<enum bitpos="0" name="XR_LOCALIZATION_MAP_ERROR_UNKNOWN_BIT_ML" comment="Localization failed for an unknown reason."/>
<enum bitpos="1" name="XR_LOCALIZATION_MAP_ERROR_OUT_OF_MAPPED_AREA_BIT_ML" comment="Localization failed because the user is outside of the mapped area."/>
<enum bitpos="2" name="XR_LOCALIZATION_MAP_ERROR_LOW_FEATURE_COUNT_BIT_ML" comment="There are not enough features in the environment to successfully localize."/>
<enum bitpos="3" name="XR_LOCALIZATION_MAP_ERROR_EXCESSIVE_MOTION_BIT_ML" comment="Localization failed due to excessive motion."/>
<enum bitpos="4" name="XR_LOCALIZATION_MAP_ERROR_LOW_LIGHT_BIT_ML" comment="Localization failed because the lighting levels are too low in the environment."/>
<enum bitpos="5" name="XR_LOCALIZATION_MAP_ERROR_HEADPOSE_BIT_ML" comment="A headpose failure caused localization to be unsuccessful."/>
</enums>
<!-- XR_EXT_future -->
<enums name="XrFutureStateEXT" type="enum">
<enum value="1" name="XR_FUTURE_STATE_PENDING_EXT"/>
<enum value="2" name="XR_FUTURE_STATE_READY_EXT"/>
</enums>
<!-- XR_META_environment_depth -->
<enums name="XrEnvironmentDepthProviderCreateFlagBitsMETA" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<enums name="XrEnvironmentDepthSwapchainCreateFlagBitsMETA" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<!-- SECTION: OpenXR loader command definitions -->
<!-- openxr_loader_negotiation.h -->
<commands>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INITIALIZATION_FAILED">
<proto><type>XrResult</type> <name>xrNegotiateLoaderRuntimeInterface</name></proto>
<param>const <type>XrNegotiateLoaderInfo</type>* <name>loaderInfo</name></param>
<param><type>XrNegotiateRuntimeRequest</type>* <name>runtimeRequest</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INITIALIZATION_FAILED">
<proto><type>XrResult</type> <name>xrNegotiateLoaderApiLayerInterface</name></proto>
<param>const <type>XrNegotiateLoaderInfo</type>* <name>loaderInfo</name></param>
<param len="null-terminated">const <type>char</type>* <name>layerName</name></param>
<param><type>XrNegotiateApiLayerRequest</type>* <name>apiLayerRequest</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_INITIALIZATION_FAILED">
<proto><type>XrResult</type> <name>xrCreateApiLayerInstance</name></proto>
<param>const <type>XrInstanceCreateInfo</type>* <name>info</name></param>
<param>const <type>XrApiLayerCreateInfo</type>* <name>layerInfo</name></param>
<param><type>XrInstance</type>* <name>instance</name></param>
</command>
</commands>
<!-- 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_EXTENSION_DEPENDENCY_NOT_ENABLED,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_face_tracking2 -->
<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>xrCreateFaceTracker2FB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFaceTrackerCreateInfo2FB</type>* <name>createInfo</name></param>
<param><type>XrFaceTracker2FB</type>* <name>faceTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyFaceTracker2FB</name></proto>
<param externsync="true_with_children"><type>XrFaceTracker2FB</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>xrGetFaceExpressionWeights2FB</name></proto>
<param><type>XrFaceTracker2FB</type> <name>faceTracker</name></param>
<param>const <type>XrFaceExpressionInfo2FB</type>* <name>expressionInfo</name></param>
<param><type>XrFaceExpressionWeights2FB</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_SIZE_INSUFFICIENT,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_MSFT_scene_marker -->
<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,XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetSceneMarkerRawDataMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrUuidMSFT</type>* <name>markerId</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,XR_SCENE_MARKER_DATA_NOT_STRING_MSFT" 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,XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetSceneMarkerDecodedStringMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrUuidMSFT</type>* <name>markerId</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>
<!-- 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_SIZE_INSUFFICIENT,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_SIZE_INSUFFICIENT,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_SIZE_INSUFFICIENT,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_META_spatial_entity_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_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetSpaceTriangleMeshMETA</name></proto>
<param><type>XrSpace</type> <name>space</name></param>
<param>const <type>XrSpaceTriangleMeshGetInfoMETA</type>* <name>getInfo</name></param>
<param><type>XrSpaceTriangleMeshMETA</type>* <name>triangleMeshOutput</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_SIZE_INSUFFICIENT,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_SIZE_INSUFFICIENT,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_SIZE_INSUFFICIENT,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>spatialAnchorNameCapacityInput</name></param>
<param><type>uint32_t</type>* <name>spatialAnchorNameCountOutput</name></param>
<param optional="true" len="spatialAnchorNameCapacityInput"><type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>spatialAnchorNames</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_HTC_anchor -->
<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_NAME_INVALID">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorHTC</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialAnchorCreateInfoHTC</type>* <name>createInfo</name></param>
<param><type>XrSpace</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_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_NOT_AN_ANCHOR_HTC">
<proto><type>XrResult</type> <name>xrGetSpatialAnchorNameHTC</name></proto>
<param><type>XrSpace</type> <name>anchor</name></param>
<param><type>XrSpatialAnchorNameHTC</type>* <name>name</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>enable</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_passthrough_color_lut-->
<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_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreatePassthroughColorLutMETA</name></proto>
<param><type>XrPassthroughFB</type> <name>passthrough</name></param>
<param>const <type>XrPassthroughColorLutCreateInfoMETA</type>* <name>createInfo</name></param>
<param><type>XrPassthroughColorLutMETA</type>* <name>colorLut</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>xrDestroyPassthroughColorLutMETA</name></proto>
<param externsync="true_with_children"><type>XrPassthroughColorLutMETA</type> <name>colorLut</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_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrUpdatePassthroughColorLutMETA</name></proto>
<param><type>XrPassthroughColorLutMETA</type> <name>colorLut</name></param>
<param>const <type>XrPassthroughColorLutUpdateInfoMETA</type>* <name>updateInfo</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_META_passthrough_preferences -->
<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>xrGetPassthroughPreferencesMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPassthroughPreferencesMETA</type>* <name>preferences</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>
<!-- XR_META_recommended_layer_resolution commands -->
<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_LAYER_INVALID">
<proto><type>XrResult</type> <name>xrGetRecommendedLayerResolutionMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrRecommendedLayerResolutionGetInfoMETA</type>* <name>info</name></param>
<param><type>XrRecommendedLayerResolutionMETA</type>* <name>resolution</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>
<!-- XR_EXT_plane_detection -->
<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_PLANE_DETECTION_PERMISSION_DENIED_EXT,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreatePlaneDetectorEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrPlaneDetectorCreateInfoEXT</type>* <name>createInfo</name></param>
<param><type>XrPlaneDetectorEXT</type>* <name>planeDetector</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>xrDestroyPlaneDetectorEXT</name></proto>
<param externsync="true_with_children"><type>XrPlaneDetectorEXT</type> <name>planeDetector</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_SPACE_NOT_LOCATABLE_EXT,XR_ERROR_POSE_INVALID">
<proto><type>XrResult</type> <name>xrBeginPlaneDetectionEXT</name></proto>
<param><type>XrPlaneDetectorEXT</type> <name>planeDetector</name></param>
<param>const <type>XrPlaneDetectorBeginInfoEXT</type>* <name>beginInfo</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>xrGetPlaneDetectionStateEXT</name></proto>
<param><type>XrPlaneDetectorEXT</type> <name>planeDetector</name></param>
<param><type>XrPlaneDetectionStateEXT</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_TIME_INVALID,XR_ERROR_SPACE_NOT_LOCATABLE_EXT,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrGetPlaneDetectionsEXT</name></proto>
<param><type>XrPlaneDetectorEXT</type> <name>planeDetector</name></param>
<param>const <type>XrPlaneDetectorGetInfoEXT</type>* <name>info</name></param>
<param><type>XrPlaneDetectorLocationsEXT</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>xrGetPlanePolygonBufferEXT</name></proto>
<param><type>XrPlaneDetectorEXT</type> <name>planeDetector</name></param>
<param><type>uint64_t</type> <name>planeId</name></param>
<param><type>uint32_t</type> <name>polygonBufferIndex</name></param>
<param><type>XrPlaneDetectorPolygonBufferEXT</type>* <name>polygonBuffer</name></param>
</command>
<!-- commands for XR_META_virtual_keyboard -->
<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>xrCreateVirtualKeyboardMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrVirtualKeyboardCreateInfoMETA</type>* <name>createInfo</name></param>
<param><type>XrVirtualKeyboardMETA</type>* <name>keyboard</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>xrDestroyVirtualKeyboardMETA</name></proto>
<param externsync="true_with_children"><type>XrVirtualKeyboardMETA</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_POSE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateVirtualKeyboardSpaceMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param>const <type>XrVirtualKeyboardSpaceCreateInfoMETA</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>keyboardSpace</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_POSE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSuggestVirtualKeyboardLocationMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param>const <type>XrVirtualKeyboardLocationInfoMETA</type>* <name>locationInfo</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>xrGetVirtualKeyboardScaleMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param><type>float</type>* <name>scale</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>xrSetVirtualKeyboardModelVisibilityMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param>const <type>XrVirtualKeyboardModelVisibilitySetInfoMETA</type>* <name>modelVisibility</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_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetVirtualKeyboardModelAnimationStatesMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param><type>XrVirtualKeyboardModelAnimationStatesMETA</type>* <name>animationStates</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_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetVirtualKeyboardDirtyTexturesMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param optional="true"><type>uint32_t</type> <name>textureIdCapacityInput</name></param>
<param><type>uint32_t</type>* <name>textureIdCountOutput</name></param>
<param optional="true" len="textureIdCapacityInput"><type>uint64_t</type>* <name>textureIds</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_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetVirtualKeyboardTextureDataMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param><type>uint64_t</type> <name>textureId</name></param>
<param><type>XrVirtualKeyboardTextureDataMETA</type>* <name>textureData</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_POSE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSendVirtualKeyboardInputMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param>const <type>XrVirtualKeyboardInputInfoMETA</type>* <name>info</name></param>
<param><type>XrPosef</type>* <name>interactorRootPose</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>xrChangeVirtualKeyboardTextContextMETA</name></proto>
<param><type>XrVirtualKeyboardMETA</type> <name>keyboard</name></param>
<param>const <type>XrVirtualKeyboardTextContextChangeInfoMETA</type>* <name>changeInfo</name></param>
</command>
<!-- XR_ML_user_calibration -->
<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>xrEnableUserCalibrationEventsML</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrUserCalibrationEnableEventsInfoML</type>* <name>enableInfo</name></param>
</command>
<!-- XR_ML_localization_map -->
<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_LOCALIZATION_MAP_PERMISSION_DENIED_ML">
<proto><type>XrResult</type> <name>xrEnableLocalizationEventsML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrLocalizationEnableEventsInfoML</type> * <name>info</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_LOCALIZATION_MAP_PERMISSION_DENIED_ML">
<proto><type>XrResult</type> <name>xrQueryLocalizationMapsML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true">const <type>XrLocalizationMapQueryInfoBaseHeaderML</type>* <name>queryInfo</name></param>
<param optional="true"><type>uint32_t</type> <name>mapCapacityInput</name></param>
<param><type>uint32_t</type> * <name>mapCountOutput</name></param>
<param optional="true" len="mapCapacityInput"><type>XrLocalizationMapML</type>* <name>maps</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_LOCALIZATION_MAP_UNAVAILABLE_ML,XR_ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML,XR_ERROR_LOCALIZATION_MAP_FAIL_ML">
<proto><type>XrResult</type> <name>xrRequestMapLocalizationML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrMapLocalizationRequestInfoML</type>* <name>requestInfo</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_LOCALIZATION_MAP_INCOMPATIBLE_ML,XR_ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML,XR_ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML">
<proto><type>XrResult</type> <name>xrImportLocalizationMapML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrLocalizationMapImportInfoML</type>* <name>importInfo</name></param>
<param optional="true"><type>XrUuidEXT</type>* <name>mapUuid</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_LOCALIZATION_MAP_UNAVAILABLE_ML,XR_ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML,XR_ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML">
<proto><type>XrResult</type> <name>xrCreateExportedLocalizationMapML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrUuidEXT</type>* <name>mapUuid</name></param>
<param><type>XrExportedLocalizationMapML</type>* <name>map</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>xrDestroyExportedLocalizationMapML</name></proto>
<param externsync="true_with_children"><type>XrExportedLocalizationMapML</type> <name>map</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>xrGetExportedLocalizationMapDataML</name></proto>
<param><type>XrExportedLocalizationMapML</type> <name>map</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>
<!-- commands for XR_ML_marker_understanding -->
<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_MARKER_DETECTOR_PERMISSION_DENIED_ML,XR_ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML">
<proto><type>XrResult</type> <name>xrCreateMarkerDetectorML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrMarkerDetectorCreateInfoML</type>* <name>createInfo</name></param>
<param><type>XrMarkerDetectorML</type>* <name>markerDetector</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyMarkerDetectorML</name></proto>
<param externsync="true_with_children"><type>XrMarkerDetectorML</type> <name>markerDetector</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>xrSnapshotMarkerDetectorML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param><type>XrMarkerDetectorSnapshotInfoML</type>* <name>snapshotInfo</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_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrGetMarkerDetectorStateML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param><type>XrMarkerDetectorStateML</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_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrGetMarkersML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param optional="true"><type>uint32_t</type> <name>markerCapacityInput</name></param>
<param><type>uint32_t</type>* <name>markerCountOutput</name></param>
<param optional="true" len="markerCapacityInput"><type>XrMarkerML</type>* <name>markers</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_MARKER_INVALID_ML,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrGetMarkerReprojectionErrorML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param><type>XrMarkerML</type> <name>marker</name></param>
<param><type>float</type>* <name>reprojectionErrorMeters</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_MARKER_INVALID_ML,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrGetMarkerLengthML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param><type>XrMarkerML</type> <name>marker</name></param>
<param><type>float</type>* <name>meters</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_MARKER_INVALID_ML,XR_ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML">
<proto><type>XrResult</type> <name>xrGetMarkerNumberML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param><type>XrMarkerML</type> <name>marker</name></param>
<param><type>uint64_t</type>* <name>number</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_MARKER_INVALID_ML,XR_ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML">
<proto><type>XrResult</type> <name>xrGetMarkerStringML</name></proto>
<param><type>XrMarkerDetectorML</type> <name>markerDetector</name></param>
<param><type>XrMarkerML</type> <name>marker</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" 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_MARKER_INVALID_ML,XR_ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrCreateMarkerSpaceML</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrMarkerSpaceCreateInfoML</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<!-- XR_EXT_future -->
<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_FUTURE_INVALID_EXT">
<proto><type>XrResult</type> <name>xrPollFutureEXT</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrFuturePollInfoEXT</type>* <name>pollInfo</name></param>
<param><type>XrFuturePollResultEXT</type>* <name>pollResult</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_FUTURE_INVALID_EXT">
<proto><type>XrResult</type> <name>xrCancelFutureEXT</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param externsync="cancelInfo.future">const <type>XrFutureCancelInfoEXT</type>* <name>cancelInfo</name></param>
</command>
<!-- XR_META_environment_depth -->
<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_NOT_PERMITTED_PASSTHROUGH_FB">
<proto><type>XrResult</type> <name>xrCreateEnvironmentDepthProviderMETA</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrEnvironmentDepthProviderCreateInfoMETA</type>* <name>createInfo</name></param>
<param><type>XrEnvironmentDepthProviderMETA</type>* <name>environmentDepthProvider</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>xrDestroyEnvironmentDepthProviderMETA</name></proto>
<param externsync="true_with_children"><type>XrEnvironmentDepthProviderMETA</type> <name>environmentDepthProvider</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_UNEXPECTED_STATE_PASSTHROUGH_FB">
<proto><type>XrResult</type> <name>xrStartEnvironmentDepthProviderMETA</name></proto>
<param><type>XrEnvironmentDepthProviderMETA</type> <name>environmentDepthProvider</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_UNEXPECTED_STATE_PASSTHROUGH_FB">
<proto><type>XrResult</type> <name>xrStopEnvironmentDepthProviderMETA</name></proto>
<param><type>XrEnvironmentDepthProviderMETA</type> <name>environmentDepthProvider</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>xrCreateEnvironmentDepthSwapchainMETA</name></proto>
<param><type>XrEnvironmentDepthProviderMETA</type> <name>environmentDepthProvider</name></param>
<param>const <type>XrEnvironmentDepthSwapchainCreateInfoMETA</type>* <name>createInfo</name></param>
<param><type>XrEnvironmentDepthSwapchainMETA</type>* <name>swapchain</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyEnvironmentDepthSwapchainMETA</name></proto>
<param externsync="true_with_children"><type>XrEnvironmentDepthSwapchainMETA</type> <name>swapchain</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">
<proto><type>XrResult</type> <name>xrEnumerateEnvironmentDepthSwapchainImagesMETA</name></proto>
<param><type>XrEnvironmentDepthSwapchainMETA</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_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>xrGetEnvironmentDepthSwapchainStateMETA</name></proto>
<param><type>XrEnvironmentDepthSwapchainMETA</type> <name>swapchain</name></param>
<param><type>XrEnvironmentDepthSwapchainStateMETA</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_ENVIRONMENT_DEPTH_NOT_AVAILABLE_META" 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_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrAcquireEnvironmentDepthImageMETA</name></proto>
<param><type>XrEnvironmentDepthProviderMETA</type> <name>environmentDepthProvider</name></param>
<param>const <type>XrEnvironmentDepthImageAcquireInfoMETA</type>* <name>acquireInfo</name></param>
<param><type>XrEnvironmentDepthImageMETA</type>* <name>environmentDepthImage</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>xrSetEnvironmentDepthHandRemovalMETA</name></proto>
<param><type>XrEnvironmentDepthProviderMETA</type> <name>environmentDepthProvider</name></param>
<param>const <type>XrEnvironmentDepthHandRemovalSetInfoMETA</type>* <name>setInfo</name></param>
</command>
<!-- XR_KHR_locate_spaces -->
<command name="xrLocateSpacesKHR" alias="xrLocateSpaces"/>
<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">
<proto><type>XrResult</type> <name>xrLocateSpaces</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpacesLocateInfo</type>* <name>locateInfo</name></param>
<param><type>XrSpaceLocations</type>* <name>spaceLocations</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/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/left_wrist"/>
<user_path path="/user/vive_tracker_htcx/role/right_wrist"/>
<user_path path="/user/vive_tracker_htcx/role/left_ankle"/>
<user_path path="/user/vive_tracker_htcx/role/right_ankle"/>
<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_META_touch_controller_plus -->
<interaction_profile name="/interaction_profiles/meta/touch_controller_plus" title="Meta Quest Touch Plus 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/thumb_meta/proximity_meta" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/proximity_meta" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/curl_meta" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/slide_meta" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
</interaction_profile>
<!-- 1.1 Meta Interaction Profiles -->
<interaction_profile name="/interaction_profiles/meta/touch_pro_controller" 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_surface/pose" type="XR_ACTION_TYPE_POSE_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/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/thumb_resting_surfaces/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger_curl/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger_slide/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/output/haptic_trigger" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
<component subpath="/output/haptic_thumb" type="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/meta/touch_plus_controller" title="Meta Quest Touch Plus 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_surface/pose" type="XR_ACTION_TYPE_POSE_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/thumb_resting_surfaces/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/trigger_curl/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger_slide/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/trigger/force" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
</interaction_profile>
<interaction_profile name="/interaction_profiles/meta/touch_controller_rift_cv1" title="Rift CV1 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/trigger/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumb_resting_surfaces/proximity" 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_surface/pose" type="XR_ACTION_TYPE_POSE_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/meta/touch_controller_quest_1_rift_s" title="Quest / Rift S 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/trigger/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumb_resting_surfaces/proximity" 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/grip_surface/pose" type="XR_ACTION_TYPE_POSE_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/meta/touch_controller_quest_2" title="Quest 2 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/trigger/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumb_resting_surfaces/proximity" 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_surface/pose" type="XR_ACTION_TYPE_POSE_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>
<!-- (END) 1.1 Meta Interaction Profiles -->
<!-- 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_profile name="/interaction_profiles/bytedance/pico_g3_controller" title="Bytedance PICO G3 Controller">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<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/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="/input/thumbstick" type="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<component subpath="/input/thumbstick/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</interaction_profile>
<!-- XR_EXT_hand_interaction -->
<interaction_profile name="/interaction_profiles/ext/hand_interaction_ext" title="EXT hand interaction profile">
<user_path path="/user/hand/left"/>
<user_path path="/user/hand/right"/>
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_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/pinch_ext/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/pinch_ext/ready_ext" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/grasp_ext/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/grasp_ext/ready_ext" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/aim_activate_ext/value" type="XR_ACTION_TYPE_FLOAT_INPUT"/>
<component subpath="/input/aim_activate_ext/ready_ext" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</interaction_profile>
<!-- XR_OPPO_controller_interaction -->
<interaction_profile name="/interaction_profiles/oppo/mr_controller_oppo" title="OPPO MR 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/left" subpath="/input/heartrate_oppo/value" type="XR_ACTION_TYPE_FLOAT_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/home/click" type="XR_ACTION_TYPE_BOOLEAN_INPUT" system="true"/>
<component subpath="/input/squeeze/value" type="XR_ACTION_TYPE_FLOAT_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>
<!-- XR_YVR_controller_interaction -->
<interaction_profile name="/interaction_profiles/yvr/touch_controller_yvr" title="YVR 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/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/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"/>
<type name="XR_EXTENSION_ENUM_BASE"/>
<type name="XR_EXTENSION_ENUM_STRIDE"/>
</require>
<require comment="API macros">
<type name="XR_MAY_ALIAS"/>
<type name="XR_DEFINE_HANDLE"/>
<type name="XR_DEFINE_OPAQUE_64"/>
</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 Loader API interface definitions -->
<feature api="openxr" name="XR_LOADER_VERSION_1_0" number="1.0">
<require comment="Negotiate">
<type name="XR_CURRENT_LOADER_API_LAYER_VERSION"/>
<type name="XR_CURRENT_LOADER_RUNTIME_VERSION"/>
<type name="XR_LOADER_INFO_STRUCT_VERSION"/>
<type name="XR_API_LAYER_INFO_STRUCT_VERSION"/>
<type name="XR_RUNTIME_INFO_STRUCT_VERSION"/>
<type name="XR_API_LAYER_NEXT_INFO_STRUCT_VERSION"/>
<type name="XR_API_LAYER_CREATE_INFO_STRUCT_VERSION"/>
<type name="XR_API_LAYER_MAX_SETTINGS_PATH_SIZE"/>
<command name="xrCreateApiLayerInstance"/>
<command name="xrNegotiateLoaderRuntimeInterface"/>
<command name="xrNegotiateLoaderApiLayerInterface"/>
</require>
</feature>
<feature api="openxr" name="XR_VERSION_1_1" number="1.1">
<require comment="Promoted from XR_KHR_maintenance1">
<!-- new structs -->
<type name="XrColor3f"/>
<type name="XrExtent3Df"/>
<type name="XrSpheref"/>
<type name="XrBoxf"/>
<type name="XrFrustumf"/>
<!-- error codes -->
<enum name="XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED" extends="XrResult" extnumber="711" offset="1" dir="-" comment="One or more of the extensions being enabled has dependency on extensions that are not enabled."/>
<enum name="XR_ERROR_PERMISSION_INSUFFICIENT" extends="XrResult" extnumber="711" offset="0" dir="-" comment="Insufficient permissions. This error is included for use by vendor extensions. The precise definition of `XR_ERROR_PERMISSION_INSUFFICIENT` and actions possible by the developer or user to resolve it can vary by platform, extension or function. The developer should refer to the documentation of the function that returned the error code and extension it was defined."/>
</require>
<!-- XrUuid -->
<require comment="Promoted from XR_EXT_uuid">
<enum name="XR_UUID_SIZE"/>
<type name="XrUuid"/>
</require>
<!-- XrUuid -->
<!-- xrLocateSpaces -->
<require comment="Promoted from XR_KHR_locate_spaces">
<enum name="XR_TYPE_SPACES_LOCATE_INFO" extends="XrStructureType" extnumber="472" offset="0"/>
<enum name="XR_TYPE_SPACE_LOCATIONS" extends="XrStructureType" extnumber="472" offset="1"/>
<enum name="XR_TYPE_SPACE_VELOCITIES" extends="XrStructureType" extnumber="472" offset="2"/>
<type name="XrSpacesLocateInfo"/>
<type name="XrSpaceLocationData"/>
<type name="XrSpaceLocations"/>
<type name="XrSpaceVelocityData"/>
<type name="XrSpaceVelocities"/>
<command name="xrLocateSpaces"/>
</require>
<!-- XrUuid -->
<!-- XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR -->
<require comment="Promoted from XR_EXT_local_floor">
<enum name="XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR" extends="XrReferenceSpaceType" extnumber="427" offset="0"/>
</require>
<!-- XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR -->
<!-- grip_surface -->
<require comment="grip_surface/pose (obsoletes palm_ext/pose)">
<extend interaction_profile_path="/interaction_profiles/khr/simple_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/google/daydream_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/htc/vive_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/microsoft/motion_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/go_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/touch_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/valve/index_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_MSFT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/microsoft/hand_interaction">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HUAWEI_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/huawei/controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HTC_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/hand_interaction">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HTCX_vive_tracker_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_tracker_htcx">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_OPPO_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/oppo/mr_controller_oppo">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_YVR_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/yvr/touch_controller_yvr">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_FB_touch_controller_pro">
<extend interaction_profile_path="/interaction_profiles/facebook/touch_controller_pro">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_META_touch_controller_plus">
<extend interaction_profile_path="/interaction_profiles/meta/touch_controller_plus">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- grip_surface -->
<require comment="Promoted from XR_VARJO_quad_views">
<enum name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET" extends="XrViewConfigurationType" extnumber="38" offset="0"/>
</require>
<!-- XR_ML_ml2_controller_interaction promotion -->
<require comment="Promote /interaction_profiles/ml/ml2_controller interaction profile">
<interaction_profile name="/interaction_profiles/ml/ml2_controller"/>
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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>
<!-- XR_ML_ml2_controller_interaction promotion -->
<!-- XR_BD_controller_interaction promotion -->
<require comment="Promote XR_BD_controller_interaction">
<interaction_profile name="/interaction_profiles/bytedance/pico_neo3_controller"/>
<interaction_profile name="/interaction_profiles/bytedance/pico4_controller"/>
<interaction_profile name="/interaction_profiles/bytedance/pico_g3_controller"/>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_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 depends="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>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- XR_BD_controller_interaction promotion -->
<!-- Promote XR_HTC_vive_cosmos_controller_interaction -->
<require comment="Promote /interaction_profiles/htc/vive_cosmos_controller interaction profile">
<interaction_profile name="/interaction_profiles/htc/vive_cosmos_controller"/>
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- Promote XR_HTC_vive_cosmos_controller_interaction -->
<!-- Promote XR_HTC_vive_focus3_controller_interaction -->
<require comment="Promote /interaction_profiles/htc/vive_focus3_controller interaction profile">
<interaction_profile name="/interaction_profiles/htc/vive_focus3_controller"/>
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- Promote XR_HTC_vive_focus3_controller_interaction -->
<!-- XR_EXT_samsung_odyssey_controller -->
<require comment="Promote /interaction_profiles/samsung/odyssey_controller interaction profile">
<interaction_profile name="/interaction_profiles/samsung/odyssey_controller"/>
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- XR_EXT_samsung_odyssey_controller -->
<!-- Promote XR_EXT_hp_mixed_reality_controller -->
<require comment="Promote /interaction_profiles/hp/mixed_reality_controller interaction profile">
<interaction_profile name="/interaction_profiles/hp/mixed_reality_controller"/>
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- Promote XR_EXT_hp_mixed_reality_controller -->
<!-- Promote XR_FB_touch_controller_pro -->
<require comment="Promote /interaction_profiles/facebook/touch_controller_pro interaction profile">
<interaction_profile name="/interaction_profiles/meta/touch_pro_controller"/>
</require>
<require depends="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/meta/touch_pro_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/meta/touch_pro_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- Promote XR_FB_touch_controller_pro -->
<!-- Promote XR_META_touch_controller_plus -->
<require comment="Promote /interaction_profiles/meta/touch_controller_plus interaction profile">
<interaction_profile name="/interaction_profiles/meta/touch_plus_controller"/>
</require>
<require depends="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/meta/touch_plus_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/meta/touch_controller_plus">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- Promote XR_META_touch_controller_plus -->
<!-- Promote Meta legacy touch controller profiles -->
<require comment="Promote legacy touch_controller profiles">
<interaction_profile name="/interaction_profiles/meta/touch_controller_rift_cv1"/>
<interaction_profile name="/interaction_profiles/meta/touch_controller_quest_1_rift_s"/>
<interaction_profile name="/interaction_profiles/meta/touch_controller_quest_2"/>
</require>
<!-- Promote Meta legacy touch controller profiles -->
<!-- Promote XR_FB_touch_controller_proximity -->
<require comment="Promote XR_FB_touch_controller_proximity interaction profile paths">
<extend interaction_profile_path="/interaction_profiles/oculus/touch_controller">
<component subpath="/input/trigger/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<component subpath="/input/thumb_resting_surfaces/proximity" type="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
</extend>
</require>
<!-- Promote XR_FB_touch_controller_proximity -->
</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="6" 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" depends="XR_VERSION_1_0+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="5" 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" promotedto="XR_VERSION_1_1">
<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 extends="XrViewConfigurationType" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO" alias="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET"/>
</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" deprecatedby="">
<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="2" 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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/microsoft/hand_interaction">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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 depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/huawei/controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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="2" 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" depends="XR_VERSION_1_0+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" promotedto="XR_VERSION_1_1">
<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 depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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" promotedto="XR_VERSION_1_1">
<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 depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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" deprecatedby="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" depends="XR_VERSION_1_0+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" promotedto="XR_VERSION_1_1">
<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 depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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="3" 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 depends="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 depends="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" promotedto="XR_VERSION_1_1">
<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 depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/hand_interaction">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" supported="openxr">
<require>
<enum value="3" 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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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 were insufficient 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="4" 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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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_xr4_controller_interaction" number="130" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_xr4_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_xr4_controller_interaction&quot;" name="XR_VARJO_XR4_CONTROLLER_INTERACTION_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" promotedto="XR_VERSION_1_1">
<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 depends="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 depends="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>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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_marker_understanding" number="139" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ML_marker_understanding_SPEC_VERSION"/>
<enum value="&quot;XR_ML_marker_understanding&quot;" name="XR_ML_MARKER_UNDERSTANDING_EXTENSION_NAME"/>
<type name="XrMarkerML"/>
<type name="XrMarkerDetectorML"/>
<type name="XrMarkerDetectorProfileML"/>
<type name="XrMarkerTypeML"/>
<type name="XrMarkerArucoDictML"/>
<type name="XrMarkerAprilTagDictML"/>
<type name="XrMarkerDetectorFpsML"/>
<type name="XrMarkerDetectorResolutionML"/>
<type name="XrMarkerDetectorCameraML"/>
<type name="XrMarkerDetectorCornerRefineMethodML"/>
<type name="XrMarkerDetectorFullAnalysisIntervalML"/>
<type name="XrMarkerDetectorStatusML"/>
<type name="XrSystemMarkerUnderstandingPropertiesML"/>
<type name="XrMarkerDetectorCreateInfoML"/>
<type name="XrMarkerDetectorArucoInfoML"/>
<type name="XrMarkerDetectorSizeInfoML"/>
<type name="XrMarkerDetectorAprilTagInfoML"/>
<type name="XrMarkerDetectorCustomProfileInfoML"/>
<type name="XrMarkerDetectorSnapshotInfoML"/>
<type name="XrMarkerDetectorStateML"/>
<type name="XrMarkerSpaceCreateInfoML"/>
<command name="xrCreateMarkerDetectorML"/>
<command name="xrDestroyMarkerDetectorML"/>
<command name="xrSnapshotMarkerDetectorML"/>
<command name="xrGetMarkerDetectorStateML"/>
<command name="xrGetMarkersML"/>
<command name="xrGetMarkerReprojectionErrorML"/>
<command name="xrGetMarkerLengthML"/>
<command name="xrGetMarkerNumberML"/>
<command name="xrGetMarkerStringML"/>
<command name="xrCreateMarkerSpaceML"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_MARKER_DETECTOR_ML" comment="XrMarkerDetectorML"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_CREATE_INFO_ML"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_ARUCO_INFO_ML"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_SIZE_INFO_ML"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_APRIL_TAG_INFO_ML"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_SNAPSHOT_INFO_ML"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_MARKER_DETECTOR_STATE_ML"/>
<enum offset="8" extends="XrStructureType" name="XR_TYPE_MARKER_SPACE_CREATE_INFO_ML"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML" comment="The com.magicleap.permission.MARKER_TRACKING permission was denied."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML" comment="The specified marker could not be located spatially."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML" comment="The marker queried does not contain data of the requested type."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML" comment="pname:createInfo contains mutually exclusive parameters, such as setting ename:XR_MARKER_DETECTOR_CORNER_REFINE_METHOD_APRIL_TAG_ML with ename:XR_MARKER_TYPE_ARUCO_ML."/>
<enum offset="4" dir="-" extends="XrResult" name="XR_ERROR_MARKER_INVALID_ML" comment="The marker id passed to the function was invalid."/>
</require>
</extension>
<extension name="XR_ML_localization_map" number="140" type="instance" depends="XR_VERSION_1_0+XR_EXT_uuid" supported="openxr">
<require>
<enum value="1" name="XR_ML_localization_map_SPEC_VERSION"/>
<enum value="&quot;XR_ML_localization_map&quot;" name="XR_ML_LOCALIZATION_MAP_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_EXPORTED_LOCALIZATION_MAP_ML" comment="XrExportedLocalizationMapML"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_LOCALIZATION_MAP_ML"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_LOCALIZATION_CHANGED_ML"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_MAP_LOCALIZATION_REQUEST_INFO_ML"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_LOCALIZATION_MAP_IMPORT_INFO_ML"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_LOCALIZATION_ENABLE_EVENTS_INFO_ML"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML" comment="The localization map being imported is not compatible with current OS or mode."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML" comment="The localization map requested is not available."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_FAIL_ML" comment="The map localization service failed to fulfill the request, retry later."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML" comment="The com.magicleap.permission.SPACE_IMPORT_EXPORT permission was denied."/>
<enum offset="4" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML" comment="The com.magicleap.permission.SPACE_MANAGER permission was denied."/>
<enum offset="5" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML" comment="The map being imported already exists in the system."/>
<enum offset="6" dir="-" extends="XrResult" name="XR_ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML" comment="The map localization service cannot export cloud based maps."/>
<enum offset="0" extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML"/>
<enum value="64" name="XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML"/>
<type name="XrLocalizationMapStateML"/>
<type name="XrLocalizationMapTypeML"/>
<type name="XrLocalizationMapConfidenceML"/>
<type name="XrLocalizationMapML"/>
<type name="XrEventDataLocalizationChangedML"/>
<type name="XrLocalizationMapQueryInfoBaseHeaderML"/>
<type name="XrMapLocalizationRequestInfoML"/>
<type name="XrLocalizationMapImportInfoML"/>
<type name="XrLocalizationEnableEventsInfoML"/>
<type name="XrLocalizationMapErrorFlagsML"/>
<type name="XrLocalizationMapErrorFlagBitsML"/>
<command name="xrEnableLocalizationEventsML"/>
<command name="xrQueryLocalizationMapsML"/>
<command name="xrRequestMapLocalizationML"/>
<command name="xrImportLocalizationMapML"/>
<command name="xrCreateExportedLocalizationMapML"/>
<command name="xrDestroyExportedLocalizationMapML"/>
<command name="xrGetExportedLocalizationMapDataML"/>
</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_ML_user_calibration" number="473" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_ML_user_calibration_SPEC_VERSION"/>
<enum value="&quot;XR_ML_user_calibration&quot;" name="XR_ML_USER_CALIBRATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML"/>
<type name="XrHeadsetFitStatusML"/>
<type name="XrEyeCalibrationStatusML"/>
<type name="XrEventDataHeadsetFitChangedML"/>
<type name="XrEventDataEyeCalibrationChangedML"/>
<type name="XrUserCalibrationEnableEventsInfoML"/>
<command name="xrEnableUserCalibrationEventsML"/>
</require>
</extension>
<extension name="XR_MSFT_spatial_anchor_persistence" number="143" depends="XR_VERSION_1_0+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_scene_marker" number="148" type="instance" supported="openxr" depends="XR_VERSION_1_0+XR_MSFT_scene_understanding">
<require>
<enum value="1" name="XR_MSFT_scene_marker_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_scene_marker&quot;" name="XR_MSFT_SCENE_MARKER_EXTENSION_NAME"/>
<type name="XrSceneMarkerTypeMSFT"/>
<type name="XrSceneMarkerQRCodeSymbolTypeMSFT"/>
<type name="XrSceneMarkerMSFT"/>
<type name="XrSceneMarkersMSFT"/>
<type name="XrSceneMarkerTypeFilterMSFT"/>
<type name="XrSceneMarkerQRCodeMSFT"/>
<type name="XrSceneMarkerQRCodesMSFT"/>
<enum offset="0" extends="XrSceneComputeFeatureMSFT" name="XR_SCENE_COMPUTE_FEATURE_MARKER_MSFT"/>
<enum offset="0" extends="XrSceneComponentTypeMSFT" name="XR_SCENE_COMPONENT_TYPE_MARKER_MSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SCENE_MARKERS_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SCENE_MARKER_TYPE_FILTER_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SCENE_MARKER_QR_CODES_MSFT"/>
<enum offset="0" extends="XrResult" name="XR_SCENE_MARKER_DATA_NOT_STRING_MSFT" comment="Marker does not encode a string."/>
<command name="xrGetSceneMarkerRawDataMSFT"/>
<command name="xrGetSceneMarkerDecodedStringMSFT"/>
</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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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" depends="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" depends="XR_VERSION_1_0+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"/>
<interaction_profile name="/interaction_profiles/facebook/touch_controller_pro"/>
</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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+XR_FB_spatial_entity" supported="openxr">
<require>
<enum value="4" 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"/>
<enum offset="10" extends="XrStructureType" name="XR_TYPE_SEMANTIC_LABELS_SUPPORT_INFO_FB"/>
<type name="XrExtent3DfFB"/>
<type name="XrOffset3DfFB"/>
<type name="XrRect3DfFB"/>
<type name="XrSemanticLabelsFB"/>
<type name="XrRoomLayoutFB"/>
<type name="XrBoundary2DFB"/>
<type name="XrSemanticLabelsSupportInfoFB"/>
<type name="XrSemanticLabelsSupportFlagsFB"/>
<type name="XrSemanticLabelsSupportFlagBitsFB"/>
<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" promotedto="XR_VERSION_1_1">
<require>
<enum value="3" 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" depends="XR_VERSION_1_0+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" depends="XR_VERSION_1_0+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="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" depends="XR_VERSION_1_0+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_META_passthrough_preferences" number="218" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_passthrough_preferences_SPEC_VERSION"/>
<enum value="&quot;XR_META_passthrough_preferences&quot;" name="XR_META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME"/>
<type name="XrPassthroughPreferencesMETA"/>
<type name="XrPassthroughPreferenceFlagsMETA"/>
<type name="XrPassthroughPreferenceFlagBitsMETA"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_PREFERENCES_META"/>
<command name="xrGetPassthroughPreferencesMETA"/>
</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_META_virtual_keyboard" number="220" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_virtual_keyboard_SPEC_VERSION"/>
<enum value="&quot;XR_META_virtual_keyboard&quot;" name="XR_META_VIRTUAL_KEYBOARD_EXTENSION_NAME"/>
<enum value="3992" name="XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_VIRTUAL_KEYBOARD_META" comment="XrVirtualKeyboardMETA"/>
<type name="XrVirtualKeyboardLocationTypeMETA"/>
<type name="XrVirtualKeyboardInputSourceMETA"/>
<type name="XrSystemVirtualKeyboardPropertiesMETA"/>
<type name="XrVirtualKeyboardCreateInfoMETA"/>
<type name="XrVirtualKeyboardSpaceCreateInfoMETA"/>
<type name="XrVirtualKeyboardLocationInfoMETA"/>
<type name="XrVirtualKeyboardModelVisibilitySetInfoMETA"/>
<type name="XrVirtualKeyboardAnimationStateMETA"/>
<type name="XrVirtualKeyboardModelAnimationStatesMETA"/>
<type name="XrVirtualKeyboardTextureDataMETA"/>
<type name="XrVirtualKeyboardInputInfoMETA"/>
<type name="XrVirtualKeyboardTextContextChangeInfoMETA"/>
<type name="XrEventDataVirtualKeyboardCommitTextMETA"/>
<type name="XrEventDataVirtualKeyboardBackspaceMETA"/>
<type name="XrEventDataVirtualKeyboardEnterMETA"/>
<type name="XrEventDataVirtualKeyboardShownMETA"/>
<type name="XrEventDataVirtualKeyboardHiddenMETA"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_LOCATION_INFO_META"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_ANIMATION_STATE_META"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META"/>
<enum offset="9" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_TEXTURE_DATA_META"/>
<enum offset="10" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_INPUT_INFO_META"/>
<enum offset="11" extends="XrStructureType" name="XR_TYPE_VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META"/>
<enum offset="14" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META"/>
<enum offset="15" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META"/>
<enum offset="16" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META"/>
<enum offset="17" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META"/>
<enum offset="18" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META"/>
<command name="xrCreateVirtualKeyboardMETA"/>
<command name="xrDestroyVirtualKeyboardMETA"/>
<command name="xrCreateVirtualKeyboardSpaceMETA"/>
<command name="xrSuggestVirtualKeyboardLocationMETA"/>
<command name="xrGetVirtualKeyboardScaleMETA"/>
<command name="xrSetVirtualKeyboardModelVisibilityMETA"/>
<command name="xrGetVirtualKeyboardModelAnimationStatesMETA"/>
<command name="xrGetVirtualKeyboardDirtyTexturesMETA"/>
<command name="xrGetVirtualKeyboardTextureDataMETA"/>
<command name="xrSendVirtualKeyboardInputMETA"/>
<command name="xrChangeVirtualKeyboardTextContextMETA"/>
</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" depends="XR_VERSION_1_0+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" supported="openxr">
<require>
<enum value="2" 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_META_recommended_layer_resolution" number="255" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_recommended_layer_resolution_SPEC_VERSION"/>
<enum value="&quot;XR_META_recommended_layer_resolution&quot;" name="XR_META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META"/>
<type name="XrRecommendedLayerResolutionMETA"/>
<type name="XrRecommendedLayerResolutionGetInfoMETA"/>
<command name="xrGetRecommendedLayerResolutionMETA"/>
</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_META_passthrough_color_lut" number="267" type="instance" depends="XR_VERSION_1_0+XR_FB_passthrough" supported="openxr">
<require>
<enum value="1" name="XR_META_passthrough_color_lut_SPEC_VERSION"/>
<enum value="&quot;XR_META_passthrough_color_lut&quot;" name="XR_META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME"/>
<type name="XrPassthroughColorLutDataMETA"/>
<type name="XrPassthroughColorLutCreateInfoMETA"/>
<type name="XrPassthroughColorLutUpdateInfoMETA"/>
<type name="XrPassthroughColorMapLutMETA"/>
<type name="XrPassthroughColorMapInterpolatedLutMETA"/>
<type name="XrSystemPassthroughColorLutPropertiesMETA"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_LUT_CREATE_INFO_META"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META"/>
<enum offset="100" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_MAP_LUT_META"/>
<enum offset="101" extends="XrStructureType" name="XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_PASSTHROUGH_COLOR_LUT_META" comment="XrPassthroughColorLutMETA"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META" comment="The provided data buffer did not match the required size."/>
<command name="xrCreatePassthroughColorLutMETA"/>
<command name="xrDestroyPassthroughColorLutMETA"/>
<command name="xrUpdatePassthroughColorLutMETA"/>
</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_META_spatial_entity_mesh" number="270" type="instance" depends="XR_VERSION_1_0+XR_FB_spatial_entity" supported="openxr">
<require>
<enum value="1" name="XR_META_spatial_entity_mesh_SPEC_VERSION"/>
<enum value="&quot;XR_META_spatial_entity_mesh&quot;" name="XR_META_SPATIAL_ENTITY_MESH_EXTENSION_NAME"/>
<enum offset="0" extends="XrSpaceComponentTypeFB" name="XR_SPACE_COMPONENT_TYPE_TRIANGLE_MESH_META"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SPACE_TRIANGLE_MESH_META"/>
<type name="XrSpaceTriangleMeshGetInfoMETA"/>
<type name="XrSpaceTriangleMeshMETA"/>
<command name="xrGetSpaceTriangleMeshMETA"/>
</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_META_automatic_layer_filter" number="272" type="instance" depends="XR_VERSION_1_0+XR_FB_composition_layer_settings" supported="openxr">
<require>
<enum value="1" name="XR_META_automatic_layer_filter_SPEC_VERSION"/>
<enum value="&quot;XR_META_automatic_layer_filter&quot;" name="XR_META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME"/>
<enum bitpos="5" extends="XrCompositionLayerSettingsFlagBitsFB" name="XR_COMPOSITION_LAYER_SETTINGS_AUTO_LAYER_FILTER_BIT_META" comment="Indicates compositor may: automatically toggle a texture filtering mechanism to improve visual quality of layer. This must: not be the only bit set. (Added by apiext:XR_META_automatic_layer_filter)"/>
</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_META_touch_controller_plus" number="280" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_touch_controller_plus_SPEC_VERSION"/>
<enum value="&quot;XR_META_touch_controller_plus&quot;" name="XR_META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/meta/touch_controller_plus"/>
</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_face_tracking2" number="288" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_face_tracking2_SPEC_VERSION"/>
<enum value="&quot;XR_FB_face_tracking2&quot;" name="XR_FB_FACE_TRACKING2_EXTENSION_NAME"/>
<enum offset="12" extends="XrObjectType" name="XR_OBJECT_TYPE_FACE_TRACKER2_FB" comment="XrFaceTracker2FB"/>
<type name="XrFaceTracker2FB"/>
<type name="XrFaceExpression2FB"/>
<type name="XrFaceExpressionSet2FB"/>
<type name="XrFaceTrackingDataSource2FB"/>
<type name="XrFaceConfidence2FB"/>
<enum offset="13" extends="XrStructureType" name="XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB"/>
<type name="XrSystemFaceTrackingProperties2FB"/>
<enum offset="14" extends="XrStructureType" name="XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB"/>
<type name="XrFaceTrackerCreateInfo2FB"/>
<enum offset="15" extends="XrStructureType" name="XR_TYPE_FACE_EXPRESSION_INFO2_FB"/>
<type name="XrFaceExpressionInfo2FB"/>
<enum offset="16" extends="XrStructureType" name="XR_TYPE_FACE_EXPRESSION_WEIGHTS2_FB"/>
<type name="XrFaceExpressionWeights2FB"/>
<command name="xrCreateFaceTracker2FB"/>
<command name="xrDestroyFaceTracker2FB"/>
<command name="xrGetFaceExpressionWeights2FB"/>
</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_META_environment_depth" number="292" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_environment_depth_SPEC_VERSION"/>
<enum value="&quot;XR_META_environment_depth&quot;" name="XR_META_ENVIRONMENT_DEPTH_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_PROVIDER_META" comment="XrEnvironmentDepthProviderMETA"/>
<enum offset="1" extends="XrObjectType" name="XR_OBJECT_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_META" comment="XrEnvironmentDepthSwapchainMETA"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META"/>
<!-- Successful return codes. -->
<enum offset="0" extends="XrResult" name="XR_ENVIRONMENT_DEPTH_NOT_AVAILABLE_META" comment="Warning: The requested depth image is not yet available."/>
<type name="XrEnvironmentDepthProviderMETA"/>
<type name="XrEnvironmentDepthSwapchainMETA"/>
<type name="XrEnvironmentDepthProviderCreateInfoMETA"/>
<type name="XrEnvironmentDepthProviderCreateFlagsMETA"/>
<type name="XrEnvironmentDepthProviderCreateFlagBitsMETA"/>
<type name="XrEnvironmentDepthSwapchainCreateFlagsMETA"/>
<type name="XrEnvironmentDepthSwapchainCreateFlagBitsMETA"/>
<type name="XrEnvironmentDepthSwapchainCreateInfoMETA"/>
<type name="XrEnvironmentDepthSwapchainStateMETA"/>
<type name="XrEnvironmentDepthImageAcquireInfoMETA"/>
<type name="XrEnvironmentDepthImageViewMETA"/>
<type name="XrEnvironmentDepthImageMETA"/>
<type name="XrEnvironmentDepthHandRemovalSetInfoMETA"/>
<type name="XrSystemEnvironmentDepthPropertiesMETA"/>
<command name="xrCreateEnvironmentDepthProviderMETA"/>
<command name="xrDestroyEnvironmentDepthProviderMETA"/>
<command name="xrStartEnvironmentDepthProviderMETA"/>
<command name="xrStopEnvironmentDepthProviderMETA"/>
<command name="xrCreateEnvironmentDepthSwapchainMETA"/>
<command name="xrDestroyEnvironmentDepthSwapchainMETA"/>
<command name="xrEnumerateEnvironmentDepthSwapchainImagesMETA"/>
<command name="xrGetEnvironmentDepthSwapchainStateMETA"/>
<command name="xrAcquireEnvironmentDepthImageMETA"/>
<command name="xrSetEnvironmentDepthHandRemovalMETA"/> </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" promotedto="XR_VERSION_1_1">
<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="openxr">
<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"/>
<interaction_profile name="/interaction_profiles/ext/hand_interaction_ext"/>
</require>
<require depends="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/ext/hand_interaction_ext">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</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_anchor" number="320" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HTC_anchor_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_anchor&quot;" name="XR_HTC_ANCHOR_EXTENSION_NAME"/>
<enum value="256" name="XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC"/>
<type name="XrSystemAnchorPropertiesHTC"/>
<type name="XrSpatialAnchorCreateInfoHTC"/>
<type name="XrSpatialAnchorNameHTC"/>
<command name="xrCreateSpatialAnchorHTC"/>
<command name="xrGetSpatialAnchorNameHTC"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_NOT_AN_ANCHOR_HTC" comment="The provided space is valid but not an anchor."/>
</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_extendable_action_binding" number="373" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_extendable_action_binding_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_extendable_action_binding&quot;" name="XR_KHR_EXTENDABLE_ACTION_BINDING_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" depends="XR_VERSION_1_0+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" promotedto="XR_VERSION_1_1">
<require>
<enum value="2" 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"/>
<interaction_profile name="/interaction_profiles/bytedance/pico_g3_controller"/>
</require>
<require depends="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>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_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 depends="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>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_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" promotedto="XR_VERSION_1_1">
<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 extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR_EXT" alias="XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR"/>
</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_data_source" number="429" type="instance" supported="openxr" depends="XR_VERSION_1_0+XR_EXT_hand_tracking">
<require>
<enum value="1" name="XR_EXT_hand_tracking_data_source_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hand_tracking_data_source&quot;" name="XR_EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT"/>
<type name="XrHandTrackingDataSourceEXT"/>
<type name="XrHandTrackingDataSourceInfoEXT"/>
<type name="XrHandTrackingDataSourceStateEXT"/>
</require>
</extension>
<extension name="XR_EXT_plane_detection" number="430" type="instance" supported="openxr">
<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"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_SPACE_NOT_LOCATABLE_EXT" comment="The space passed to the function was not locatable."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT" comment="The permission for this resource was not granted."/>
<command name="xrCreatePlaneDetectorEXT"/>
<command name="xrDestroyPlaneDetectorEXT"/>
<command name="xrBeginPlaneDetectionEXT"/>
<command name="xrGetPlaneDetectionStateEXT"/>
<command name="xrGetPlaneDetectionsEXT"/>
<command name="xrGetPlanePolygonBufferEXT"/>
<type name="XrSystemPlaneDetectionPropertiesEXT"/>
<type name="XrPlaneDetectionCapabilityFlagsEXT"/>
<type name="XrPlaneDetectorEXT"/>
<type name="XrPlaneDetectorCreateInfoEXT"/>
<type name="XrPlaneDetectorBeginInfoEXT"/>
<type name="XrPlaneDetectionStateEXT"/>
<type name="XrPlaneDetectorGetInfoEXT"/>
<type name="XrPlaneDetectorLocationEXT"/>
<type name="XrPlaneDetectorLocationsEXT"/>
<type name="XrPlaneDetectorPolygonBufferEXT"/>
<type name="XrPlaneDetectorFlagsEXT"/>
<type name="XrPlaneDetectorSemanticTypeEXT"/>
<type name="XrPlaneDetectorOrientationEXT"/>
<type name="XrExtent3DfEXT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_PLANE_DETECTOR_EXT" comment="XrPlaneDetectorEXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_PLANE_DETECTOR_LOCATION_EXT"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT"/>
</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_controller_interaction" number="454" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_OPPO_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_OPPO_controller_interaction&quot;" name="XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/oppo/mr_controller_oppo"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_455" number="455" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_455_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_455&quot;" name="XR_ANDROID_EXTENSION_455_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_456" number="456" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_456_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_456&quot;" name="XR_ANDROID_EXTENSION_456_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_457" number="457" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_457_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_457&quot;" name="XR_ANDROID_EXTENSION_457_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_458" number="458" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_458_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_458&quot;" name="XR_ANDROID_extension_458_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_459" number="459" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_459_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_459&quot;" name="XR_ANDROID_extension_459_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_460" number="460" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_460_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_460&quot;" name="XR_ANDROID_extension_460_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_461" number="461" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_461_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_461&quot;" name="XR_ANDROID_extension_461_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_462" number="462" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_462_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_462&quot;" name="XR_ANDROID_extension_462_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_463" number="463" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_463_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_463&quot;" name="XR_ANDROID_extension_463_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_464" number="464" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_464_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_464&quot;" name="XR_ANDROID_extension_464_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_465" number="465" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_465_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_465&quot;" name="XR_ANDROID_extension_465_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_466" number="466" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_466_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_466&quot;" name="XR_ANDROID_extension_466_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_467" number="467" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_467_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_467&quot;" name="XR_ANDROID_extension_467_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_468" number="468" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_468_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_468&quot;" name="XR_ANDROID_extension_468_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_469" number="469" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_469_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_469&quot;" name="XR_ANDROID_extension_469_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_future" number="470" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_future_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_future&quot;" name="XR_EXT_FUTURE_EXTENSION_NAME"/>
<enum value="0" name="XR_NULL_FUTURE_EXT"/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_FUTURE_PENDING_EXT" comment="Returned by completion function to indicate future is not ready."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_FUTURE_INVALID_EXT" comment="Returned by completion function to indicate future is not valid."/>
<type name="XrFutureEXT"/>
<type name="XrFutureStateEXT"/>
<type name="XrFutureCancelInfoEXT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FUTURE_CANCEL_INFO_EXT"/>
<type name="XrFuturePollInfoEXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FUTURE_POLL_INFO_EXT"/>
<type name="XrFutureCompletionBaseHeaderEXT"/>
<type name="XrFutureCompletionEXT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_FUTURE_COMPLETION_EXT"/>
<type name="XrFuturePollResultEXT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_FUTURE_POLL_RESULT_EXT"/>
<command name="xrPollFutureEXT"/>
<command name="xrCancelFutureEXT"/>
</require>
</extension>
<extension name="XR_EXT_user_presence" number="471" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_user_presence_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_user_presence&quot;" name="XR_EXT_USER_PRESENCE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT"/>
<type name="XrEventDataUserPresenceChangedEXT"/>
<type name="XrSystemUserPresencePropertiesEXT"/>
</require>
</extension>
<extension name="XR_KHR_locate_spaces" number="472" type="instance" supported="openxr" promotedto="XR_VERSION_1_1">
<require>
<enum value="1" name="XR_KHR_locate_spaces_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_locate_spaces&quot;" name="XR_KHR_LOCATE_SPACES_EXTENSION_NAME"/>
<enum extends="XrStructureType" name="XR_TYPE_SPACES_LOCATE_INFO_KHR" alias="XR_TYPE_SPACES_LOCATE_INFO"/>
<enum extends="XrStructureType" name="XR_TYPE_SPACE_LOCATIONS_KHR" alias="XR_TYPE_SPACE_LOCATIONS"/>
<enum extends="XrStructureType" name="XR_TYPE_SPACE_VELOCITIES_KHR" alias="XR_TYPE_SPACE_VELOCITIES"/>
<type name="XrSpacesLocateInfoKHR"/>
<type name="XrSpaceLocationDataKHR"/>
<type name="XrSpaceLocationsKHR"/>
<type name="XrSpaceVelocityDataKHR"/>
<type name="XrSpaceVelocitiesKHR"/>
<command name="xrLocateSpacesKHR"/>
</require>
</extension>
<extension name="XR_ML_extension_474" number="474" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_474_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_474&quot;" name="XR_ML_extension_474_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_475" number="475" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_475_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_475&quot;" name="XR_ML_extension_475_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_476" number="476" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_476_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_476&quot;" name="XR_ML_extension_476_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_477" number="477" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_477_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_477&quot;" name="XR_ML_extension_477_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_478" number="478" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_478_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_478&quot;" name="XR_ML_extension_478_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_479" number="479" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_479_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_479&quot;" name="XR_ML_extension_479_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_480" number="480" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_480_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_480&quot;" name="XR_ML_extension_480_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_481" number="481" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_481_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_481&quot;" name="XR_ML_extension_481_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_482" number="482" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_482_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_482&quot;" name="XR_ML_extension_482_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_483" number="483" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_483_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_483&quot;" name="XR_ML_extension_483_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_484" number="484" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_484_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_484&quot;" name="XR_ML_extension_484_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_485" number="485" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_485_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_485&quot;" name="XR_ML_extension_485_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_486" number="486" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_486_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_486&quot;" name="XR_ML_extension_486_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_487" number="487" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_487_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_487&quot;" name="XR_ML_extension_487_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_488" number="488" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_488_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_488&quot;" name="XR_ML_extension_488_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_489" number="489" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_489_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_489&quot;" name="XR_ML_extension_489_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_490" number="490" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_490_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_490&quot;" name="XR_ML_extension_490_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_491" number="491" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_491_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_491&quot;" name="XR_ML_extension_491_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_492" number="492" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_492_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_492&quot;" name="XR_ML_extension_492_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_493" number="493" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_493_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_493&quot;" name="XR_ML_extension_493_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_494" number="494" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_494_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_494&quot;" name="XR_ML_extension_494_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_495" number="495" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_495_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_495&quot;" name="XR_ML_extension_495_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_496" number="496" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_496_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_496&quot;" name="XR_ML_extension_496_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_497" number="497" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_497_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_497&quot;" name="XR_ML_extension_497_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_controller_interaction" number="498" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_YVR_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_controller_interaction&quot;" name="XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
<interaction_profile name="/interaction_profiles/yvr/touch_controller_yvr"/>
</require>
<require depends="XR_EXT_dpad_binding">
<extend interaction_profile_path="/interaction_profiles/yvr/touch_controller_yvr">
<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 depends="XR_EXT_palm_pose">
<extend interaction_profile_path="/interaction_profiles/yvr/touch_controller_yvr">
<component subpath="/input/palm_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require depends="XR_EXT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/yvr/touch_controller_yvr">
<component subpath="/input/pinch_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
<component subpath="/input/poke_ext/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
</extension>
<extension name="XR_YVR_extension_499" number="499" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_499_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_499&quot;" name="XR_YVR_extension_499_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_500" number="500" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_500_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_500&quot;" name="XR_YVR_extension_500_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_501" number="501" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_501_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_501&quot;" name="XR_YVR_extension_501_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_502" number="502" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_502_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_502&quot;" name="XR_YVR_extension_502_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_503" number="503" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_503_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_503&quot;" name="XR_YVR_extension_503_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_504" number="504" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_504_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_504&quot;" name="XR_YVR_extension_504_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_505" number="505" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_505_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_505&quot;" name="XR_YVR_extension_505_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_506" number="506" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_506_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_506&quot;" name="XR_YVR_extension_506_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_507" number="507" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_507_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_507&quot;" name="XR_YVR_extension_507_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_508" number="508" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_508_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_508&quot;" name="XR_YVR_extension_508_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_509" number="509" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_509_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_509&quot;" name="XR_YVR_extension_509_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_510" number="510" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_510_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_510&quot;" name="XR_YVR_extension_510_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_511" number="511" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_511_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_511&quot;" name="XR_YVR_extension_511_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_512" number="512" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_512_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_512&quot;" name="XR_YVR_extension_512_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_513" number="513" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_513_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_513&quot;" name="XR_YVR_extension_513_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_514" number="514" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_514_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_514&quot;" name="XR_YVR_extension_514_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_515" number="515" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_515_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_515&quot;" name="XR_YVR_extension_515_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_516" number="516" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_516_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_516&quot;" name="XR_YVR_extension_516_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_517" number="517" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_517_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_517&quot;" name="XR_YVR_extension_517_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_518" number="518" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_518_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_518&quot;" name="XR_YVR_extension_518_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_519" number="519" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_519_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_519&quot;" name="XR_YVR_extension_519_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_520" number="520" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_520_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_520&quot;" name="XR_YVR_extension_520_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_521" number="521" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_521_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_521&quot;" name="XR_YVR_extension_521_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_522" number="522" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_522_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_522&quot;" name="XR_YVR_extension_522_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_YVR_extension_523" number="523" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_YVR_extension_523_SPEC_VERSION"/>
<enum value="&quot;XR_YVR_extension_523&quot;" name="XR_YVR_extension_523_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_NV_extension_524" number="524" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_NV_extension_524_SPEC_VERSION"/>
<enum value="&quot;XR_NV_extension_524&quot;" name="XR_NV_extension_524_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_NV_extension_525" number="525" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_NV_extension_525_SPEC_VERSION"/>
<enum value="&quot;XR_NV_extension_525&quot;" name="XR_NV_extension_525_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_NV_extension_526" number="526" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_NV_extension_526_SPEC_VERSION"/>
<enum value="&quot;XR_NV_extension_526&quot;" name="XR_NV_extension_526_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_NV_extension_527" number="527" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_NV_extension_527_SPEC_VERSION"/>
<enum value="&quot;XR_NV_extension_527&quot;" name="XR_NV_extension_527_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_NV_extension_528" number="528" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_NV_extension_528_SPEC_VERSION"/>
<enum value="&quot;XR_NV_extension_528&quot;" name="XR_NV_extension_528_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_529" number="529" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_529_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_529&quot;" name="XR_META_extension_529_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_530" number="530" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_530_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_530&quot;" name="XR_META_extension_530_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_531" number="531" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_531_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_531&quot;" name="XR_META_extension_531_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_532" number="532" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_532_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_532&quot;" name="XR_META_extension_532_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_533" number="533" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_533_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_533&quot;" name="XR_META_extension_533_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_534" number="534" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_534_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_534&quot;" name="XR_META_extension_534_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_535" number="535" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_535_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_535&quot;" name="XR_META_extension_535_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_536" number="536" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_536_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_536&quot;" name="XR_META_extension_536_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_537" number="537" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_537_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_537&quot;" name="XR_META_extension_537_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_538" number="538" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_538_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_538&quot;" name="XR_META_extension_538_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_539" number="539" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_539_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_539&quot;" name="XR_META_extension_539_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_540" number="540" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_540_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_540&quot;" name="XR_META_extension_540_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_541" number="541" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_541_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_541&quot;" name="XR_META_extension_541_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_542" number="542" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_542_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_542&quot;" name="XR_META_extension_542_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_543" number="543" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_543_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_543&quot;" name="XR_META_extension_543_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_544" number="544" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_544_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_544&quot;" name="XR_META_extension_544_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_545" number="545" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_545_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_545&quot;" name="XR_META_extension_545_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_546" number="546" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_546_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_546&quot;" name="XR_META_extension_546_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_547" number="547" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_547_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_547&quot;" name="XR_META_extension_547_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_548" number="548" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_548_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_548&quot;" name="XR_META_extension_548_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_549" number="549" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_549_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_549&quot;" name="XR_META_extension_549_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_550" number="550" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_550_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_550&quot;" name="XR_META_extension_550_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_551" number="551" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_551_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_551&quot;" name="XR_META_extension_551_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_552" number="552" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_552_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_552&quot;" name="XR_META_extension_552_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_553" number="553" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_553_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_553&quot;" name="XR_META_extension_553_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_554" number="554" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_554_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_554&quot;" name="XR_META_extension_554_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_555" number="555" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_555_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_555&quot;" name="XR_META_extension_555_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_556" number="556" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_556_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_556&quot;" name="XR_META_extension_556_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_557" number="557" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_557_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_557&quot;" name="XR_META_extension_557_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_558" number="558" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_558_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_558&quot;" name="XR_META_extension_558_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_559" number="559" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_559_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_559&quot;" name="XR_META_extension_559_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_560" number="560" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_560_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_560&quot;" name="XR_META_extension_560_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_561" number="561" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_561_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_561&quot;" name="XR_META_extension_561_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_562" number="562" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_562_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_562&quot;" name="XR_META_extension_562_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_563" number="563" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_563_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_563&quot;" name="XR_META_extension_563_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_564" number="564" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_564_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_564&quot;" name="XR_META_extension_564_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_565" number="565" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_565_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_565&quot;" name="XR_META_extension_565_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_566" number="566" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_566_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_566&quot;" name="XR_META_extension_566_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_567" number="567" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_567_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_567&quot;" name="XR_META_extension_567_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_568" number="568" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_568_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_568&quot;" name="XR_META_extension_568_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_569" number="569" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_569_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_569&quot;" name="XR_META_extension_569_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_570" number="570" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_570_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_570&quot;" name="XR_META_extension_570_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_571" number="571" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_571_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_571&quot;" name="XR_META_extension_571_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_572" number="572" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_572_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_572&quot;" name="XR_META_extension_572_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_573" number="573" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_573_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_573&quot;" name="XR_META_extension_573_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_574" number="574" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_574_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_574&quot;" name="XR_META_extension_574_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_575" number="575" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_575_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_575&quot;" name="XR_META_extension_575_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_576" number="576" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_576_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_576&quot;" name="XR_META_extension_576_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_577" number="577" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_577_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_577&quot;" name="XR_META_extension_577_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_578" number="578" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_578_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_578&quot;" name="XR_META_extension_578_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_579" number="579" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_579_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_579&quot;" name="XR_META_extension_579_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_580" number="580" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_580_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_580&quot;" name="XR_META_extension_580_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_581" number="581" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_581_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_581&quot;" name="XR_META_extension_581_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_582" number="582" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_582_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_582&quot;" name="XR_META_extension_582_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_583" number="583" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_583_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_583&quot;" name="XR_META_extension_583_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_584" number="584" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_584_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_584&quot;" name="XR_META_extension_584_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_585" number="585" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_585_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_585&quot;" name="XR_META_extension_585_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_586" number="586" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_586_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_586&quot;" name="XR_META_extension_586_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_587" number="587" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_587_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_587&quot;" name="XR_META_extension_587_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_588" number="588" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_588_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_588&quot;" name="XR_META_extension_588_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_589" number="589" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_589_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_589&quot;" name="XR_META_extension_589_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_590" number="590" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_590_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_590&quot;" name="XR_META_extension_590_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_591" number="591" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_591_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_591&quot;" name="XR_META_extension_591_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_592" number="592" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_592_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_592&quot;" name="XR_META_extension_592_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_593" number="593" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_593_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_593&quot;" name="XR_META_extension_593_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_594" number="594" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_594_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_594&quot;" name="XR_META_extension_594_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_595" number="595" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_595_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_595&quot;" name="XR_META_extension_595_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_596" number="596" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_596_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_596&quot;" name="XR_META_extension_596_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_597" number="597" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_597_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_597&quot;" name="XR_META_extension_597_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_598" number="598" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_598_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_598&quot;" name="XR_META_extension_598_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_599" number="599" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_599_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_599&quot;" name="XR_META_extension_599_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_600" number="600" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_600_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_600&quot;" name="XR_META_extension_600_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_601" number="601" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_601_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_601&quot;" name="XR_META_extension_601_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_602" number="602" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_602_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_602&quot;" name="XR_META_extension_602_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_603" number="603" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_603_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_603&quot;" name="XR_META_extension_603_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_604" number="604" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_604_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_604&quot;" name="XR_META_extension_604_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_605" number="605" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_605_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_605&quot;" name="XR_META_extension_605_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_606" number="606" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_606_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_606&quot;" name="XR_META_extension_606_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_607" number="607" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_607_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_607&quot;" name="XR_META_extension_607_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_608" number="608" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_608_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_608&quot;" name="XR_META_extension_608_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_609" number="609" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_609_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_609&quot;" name="XR_META_extension_609_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_610" number="610" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_610_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_610&quot;" name="XR_META_extension_610_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_611" number="611" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_611_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_611&quot;" name="XR_META_extension_611_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_612" number="612" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_612_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_612&quot;" name="XR_META_extension_612_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_613" number="613" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_613_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_613&quot;" name="XR_META_extension_613_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_614" number="614" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_614_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_614&quot;" name="XR_META_extension_614_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_615" number="615" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_615_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_615&quot;" name="XR_META_extension_615_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_616" number="616" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_616_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_616&quot;" name="XR_META_extension_616_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_617" number="617" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_617_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_617&quot;" name="XR_META_extension_617_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_618" number="618" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_618_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_618&quot;" name="XR_META_extension_618_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_619" number="619" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_619_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_619&quot;" name="XR_META_extension_619_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_620" number="620" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_620_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_620&quot;" name="XR_META_extension_620_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_621" number="621" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_621_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_621&quot;" name="XR_META_extension_621_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_622" number="622" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_622_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_622&quot;" name="XR_META_extension_622_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_623" number="623" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_623_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_623&quot;" name="XR_META_extension_623_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_624" number="624" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_624_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_624&quot;" name="XR_META_extension_624_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_625" number="625" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_625_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_625&quot;" name="XR_META_extension_625_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_626" number="626" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_626_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_626&quot;" name="XR_META_extension_626_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_627" number="627" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_627_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_627&quot;" name="XR_META_extension_627_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_628" number="628" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_628_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_628&quot;" name="XR_META_extension_628_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_629" number="629" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_629_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_629&quot;" name="XR_META_extension_629_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_630" number="630" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_630_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_630&quot;" name="XR_META_extension_630_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_631" number="631" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_631_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_631&quot;" name="XR_META_extension_631_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_632" number="632" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_632_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_632&quot;" name="XR_META_extension_632_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_633" number="633" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_633_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_633&quot;" name="XR_META_extension_633_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_634" number="634" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_634_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_634&quot;" name="XR_META_extension_634_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_635" number="635" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_635_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_635&quot;" name="XR_META_extension_635_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_636" number="636" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_636_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_636&quot;" name="XR_META_extension_636_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_637" number="637" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_637_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_637&quot;" name="XR_META_extension_637_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_638" number="638" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_638_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_638&quot;" name="XR_META_extension_638_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_639" number="639" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_639_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_639&quot;" name="XR_META_extension_639_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_640" number="640" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_640_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_640&quot;" name="XR_META_extension_640_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_641" number="641" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_641_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_641&quot;" name="XR_META_extension_641_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_642" number="642" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_642_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_642&quot;" name="XR_META_extension_642_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_643" number="643" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_643_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_643&quot;" name="XR_META_extension_643_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_644" number="644" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_644_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_644&quot;" name="XR_META_extension_644_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_645" number="645" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_645_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_645&quot;" name="XR_META_extension_645_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_646" number="646" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_646_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_646&quot;" name="XR_META_extension_646_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_647" number="647" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_647_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_647&quot;" name="XR_META_extension_647_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_648" number="648" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_648_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_648&quot;" name="XR_META_extension_648_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_649" number="649" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_649_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_649&quot;" name="XR_META_extension_649_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_650" number="650" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_650_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_650&quot;" name="XR_META_extension_650_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_651" number="651" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_651_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_651&quot;" name="XR_META_extension_651_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_652" number="652" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_652_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_652&quot;" name="XR_META_extension_652_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_653" number="653" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_653_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_653&quot;" name="XR_META_extension_653_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_654" number="654" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_654_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_654&quot;" name="XR_META_extension_654_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_655" number="655" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_655_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_655&quot;" name="XR_META_extension_655_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_656" number="656" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_656_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_656&quot;" name="XR_META_extension_656_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_657" number="657" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_657_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_657&quot;" name="XR_META_extension_657_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_658" number="658" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_658_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_658&quot;" name="XR_META_extension_658_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_659" number="659" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_659_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_659&quot;" name="XR_META_extension_659_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_660" number="660" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_660_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_660&quot;" name="XR_META_extension_660_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_661" number="661" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_661_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_661&quot;" name="XR_META_extension_661_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_662" number="662" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_662_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_662&quot;" name="XR_META_extension_662_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_663" number="663" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_663_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_663&quot;" name="XR_META_extension_663_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_664" number="664" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_664_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_664&quot;" name="XR_META_extension_664_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_665" number="665" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_665_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_665&quot;" name="XR_META_extension_665_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_666" number="666" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_666_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_666&quot;" name="XR_META_extension_666_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_667" number="667" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_667_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_667&quot;" name="XR_META_extension_667_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_668" number="668" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_668_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_668&quot;" name="XR_META_extension_668_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_669" number="669" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_669_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_669&quot;" name="XR_META_extension_669_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_670" number="670" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_670_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_670&quot;" name="XR_META_extension_670_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_671" number="671" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_671_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_671&quot;" name="XR_META_extension_671_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_672" number="672" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_672_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_672&quot;" name="XR_META_extension_672_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_673" number="673" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_673_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_673&quot;" name="XR_META_extension_673_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_674" number="674" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_674_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_674&quot;" name="XR_META_extension_674_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_675" number="675" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_675_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_675&quot;" name="XR_META_extension_675_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_676" number="676" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_676_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_676&quot;" name="XR_META_extension_676_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_677" number="677" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_677_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_677&quot;" name="XR_META_extension_677_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_678" number="678" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_678_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_678&quot;" name="XR_META_extension_678_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_679" number="679" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_679_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_679&quot;" name="XR_META_extension_679_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_680" number="680" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_680_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_680&quot;" name="XR_META_extension_680_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_681" number="681" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_681_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_681&quot;" name="XR_META_extension_681_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_682" number="682" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_682_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_682&quot;" name="XR_META_extension_682_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_683" number="683" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_683_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_683&quot;" name="XR_META_extension_683_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_684" number="684" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_684_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_684&quot;" name="XR_META_extension_684_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_685" number="685" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_685_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_685&quot;" name="XR_META_extension_685_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_686" number="686" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_686_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_686&quot;" name="XR_META_extension_686_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_687" number="687" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_687_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_687&quot;" name="XR_META_extension_687_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_688" number="688" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_688_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_688&quot;" name="XR_META_extension_688_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_689" number="689" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_689_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_689&quot;" name="XR_META_extension_689_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_690" number="690" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_690_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_690&quot;" name="XR_META_extension_690_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_691" number="691" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_691_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_691&quot;" name="XR_META_extension_691_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_692" number="692" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_692_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_692&quot;" name="XR_META_extension_692_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_693" number="693" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_693_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_693&quot;" name="XR_META_extension_693_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_694" number="694" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_694_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_694&quot;" name="XR_META_extension_694_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_695" number="695" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_695_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_695&quot;" name="XR_META_extension_695_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_696" number="696" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_696_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_696&quot;" name="XR_META_extension_696_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_697" number="697" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_697_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_697&quot;" name="XR_META_extension_697_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_698" number="698" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_698_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_698&quot;" name="XR_META_extension_698_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_META_extension_699" number="699" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_META_extension_699_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_699&quot;" name="XR_META_extension_699_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_egl_enable" number="700" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_egl_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_egl_enable&quot;" name="XR_KHR_EGL_ENABLE_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_701" number="701" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_701_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_701&quot;" name="XR_ANDROID_EXTENSION_701_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_702" number="702" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_702_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_702&quot;" name="XR_ANDROID_EXTENSION_702_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_703" number="703" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_703_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_703&quot;" name="XR_ANDROID_EXTENSION_703_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_704" number="704" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_704_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_704&quot;" name="XR_ANDROID_EXTENSION_704_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_705" number="705" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_705_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_705&quot;" name="XR_ANDROID_EXTENSION_705_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_706" number="706" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_706_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_706&quot;" name="XR_ANDROID_EXTENSION_706_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_707" number="707" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_707_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_707&quot;" name="XR_ANDROID_EXTENSION_707_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_708" number="708" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_708_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_708&quot;" name="XR_ANDROID_EXTENSION_708_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_709" number="709" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_709_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_709&quot;" name="XR_ANDROID_EXTENSION_709_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROID_extension_710" number="710" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROID_extension_710_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROID_extension_710&quot;" name="XR_ANDROID_EXTENSION_710_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_maintenance1" number="711" type="instance" supported="openxr" promotedto="XR_VERSION_1_1">
<require>
<enum value="1" name="XR_KHR_maintenance1_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_maintenance1&quot;" name="XR_KHR_MAINTENANCE1_EXTENSION_NAME"/>
<!-- new structs -->
<type name="XrColor3fKHR"/>
<type name="XrExtent3DfKHR"/>
<type name="XrSpherefKHR"/>
<type name="XrBoxfKHR"/>
<type name="XrFrustumfKHR"/>
<!-- error codes -->
<enum extends="XrResult" name="XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR" alias="XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED"/>
<enum extends="XrResult" name="XR_ERROR_PERMISSION_INSUFFICIENT_KHR" alias="XR_ERROR_PERMISSION_INSUFFICIENT"/>
</require>
<!-- grip_surface -->
<require comment="grip_surface/pose (obsoletes palm_ext/pose)">
<extend interaction_profile_path="/interaction_profiles/khr/simple_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/google/daydream_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/htc/vive_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/microsoft/motion_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/go_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/oculus/touch_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/valve/index_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_MSFT_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/microsoft/hand_interaction">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HUAWEI_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/huawei/controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HTC_hand_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/hand_interaction">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HTC_vive_cosmos_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_cosmos_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HTC_vive_focus3_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_focus3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_HTCX_vive_tracker_interaction">
<extend interaction_profile_path="/interaction_profiles/htc/vive_tracker_htcx">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_EXT_samsung_odyssey_controller">
<extend interaction_profile_path="/interaction_profiles/samsung/odyssey_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_EXT_hp_mixed_reality_controller">
<extend interaction_profile_path="/interaction_profiles/hp/mixed_reality_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_ML_ml2_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/ml/ml2_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_FB_touch_controller_pro">
<extend interaction_profile_path="/interaction_profiles/facebook/touch_controller_pro">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_META_touch_controller_plus">
<extend interaction_profile_path="/interaction_profiles/meta/touch_controller_plus">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_BD_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_neo3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico4_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
<extend interaction_profile_path="/interaction_profiles/bytedance/pico_g3_controller">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_OPPO_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/oppo/mr_controller_oppo">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<require comment="grip_surface/pose (obsoletes palm_ext/pose)" depends="XR_YVR_controller_interaction">
<extend interaction_profile_path="/interaction_profiles/yvr/touch_controller_yvr">
<component subpath="/input/grip_surface/pose" type="XR_ACTION_TYPE_POSE_INPUT"/>
</extend>
</require>
<!-- grip_surface -->
</extension>
<extension name="XR_KHR_game_controller" number="712" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_game_controller_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_game_controller&quot;" name="XR_KHR_GAME_CONTROLLER_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_713" number="713" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_713_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_713&quot;" name="XR_VARJO_EXTENSION_713_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_714" number="714" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_714_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_714&quot;" name="XR_VARJO_EXTENSION_714_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_715" number="715" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_715_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_715&quot;" name="XR_VARJO_EXTENSION_715_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_716" number="716" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_716_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_716&quot;" name="XR_ANDROIDX_EXTENSION_716_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_717" number="717" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_717_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_717&quot;" name="XR_ANDROIDX_EXTENSION_717_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_718" number="718" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_718_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_718&quot;" name="XR_ANDROIDX_EXTENSION_718_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_719" number="719" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_719_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_719&quot;" name="XR_ANDROIDX_EXTENSION_719_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_720" number="720" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_720_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_720&quot;" name="XR_ANDROIDX_EXTENSION_720_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_721" number="721" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_721_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_721&quot;" name="XR_ANDROIDX_EXTENSION_721_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_722" number="722" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_722_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_722&quot;" name="XR_ANDROIDX_EXTENSION_722_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_723" number="723" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_723_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_723&quot;" name="XR_ANDROIDX_EXTENSION_723_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_724" number="724" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_724_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_724&quot;" name="XR_ANDROIDX_EXTENSION_724_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDX_extension_725" number="725" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDX_extension_725_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDX_extension_725&quot;" name="XR_ANDROIDX_EXTENSION_725_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_726" number="726" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_726_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_726&quot;" name="XR_ANDROIDSYS_EXTENSION_726_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_727" number="727" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_727_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_727&quot;" name="XR_ANDROIDSYS_EXTENSION_727_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_728" number="728" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_728_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_728&quot;" name="XR_ANDROIDSYS_EXTENSION_728_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_729" number="729" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_729_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_729&quot;" name="XR_ANDROIDSYS_EXTENSION_729_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_730" number="730" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_730_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_730&quot;" name="XR_ANDROIDSYS_EXTENSION_730_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_731" number="731" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_731_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_731&quot;" name="XR_ANDROIDSYS_EXTENSION_731_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_732" number="732" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_732_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_732&quot;" name="XR_ANDROIDSYS_EXTENSION_732_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_733" number="733" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_733_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_733&quot;" name="XR_ANDROIDSYS_EXTENSION_733_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_734" number="734" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_734_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_734&quot;" name="XR_ANDROIDSYS_EXTENSION_734_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ANDROIDSYS_extension_735" number="735" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ANDROIDSYS_extension_735_SPEC_VERSION"/>
<enum value="&quot;XR_ANDROIDSYS_extension_735&quot;" name="XR_ANDROIDSYS_EXTENSION_735_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LEIA_extension_736" number="736" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LEIA_extension_736_SPEC_VERSION"/>
<enum value="&quot;XR_LEIA_extension_736&quot;" name="XR_LEIA_EXTENSION_736_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LEIA_extension_737" number="737" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LEIA_extension_737_SPEC_VERSION"/>
<enum value="&quot;XR_LEIA_extension_737&quot;" name="XR_LEIA_EXTENSION_737_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LEIA_extension_738" number="738" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LEIA_extension_738_SPEC_VERSION"/>
<enum value="&quot;XR_LEIA_extension_738&quot;" name="XR_LEIA_EXTENSION_738_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>