godot/thirdparty/openxr/include/openxr/openxr.h

#ifndef OPENXR_H_
#define OPENXR_H_

/*
** Copyright 2017-2024, The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0 OR MIT
*/

/*
** This header is generated from the Khronos OpenXR XML API Registry.
**
*/


#ifdef __cplusplus
extern "C" {
#endif



// XR_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
#define XR_VERSION_1_0
#include "openxr_platform_defines.h"
#define XR_MAKE_VERSION(major, minor, patch)

// OpenXR current version number.
#define XR_CURRENT_API_VERSION

// OpenXR 1.0 version number
#define XR_API_VERSION_1_0

#define XR_VERSION_MAJOR(version)
#define XR_VERSION_MINOR(version)
#define XR_VERSION_PATCH(version)

#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED


#if !defined(XR_NULL_HANDLE)
#if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED
    #define XR_NULL_HANDLE
#else
    #define XR_NULL_HANDLE
#endif
#endif


#define XR_NULL_SYSTEM_ID


#define XR_NULL_PATH


#define XR_SUCCEEDED(result)


#define XR_FAILED(result)


#define XR_UNQUALIFIED_SUCCESS(result)


#define XR_NO_DURATION


#define XR_INFINITE_DURATION


#define XR_MIN_HAPTIC_DURATION


#define XR_FREQUENCY_UNSPECIFIED


#define XR_MAX_EVENT_DATA_SIZE


#define XR_EXTENSION_ENUM_BASE


#define XR_EXTENSION_ENUM_STRIDE


#if !defined(XR_MAY_ALIAS)
#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4))
#define XR_MAY_ALIAS
#else
#define XR_MAY_ALIAS
#endif
#endif


#if !defined(XR_DEFINE_HANDLE)
#if (XR_PTR_SIZE == 8)
    #define XR_DEFINE_HANDLE(object)
#else
    #define XR_DEFINE_HANDLE
#endif
#endif


#if !defined(XR_DEFINE_OPAQUE_64)
    #if (XR_PTR_SIZE == 8)
        #define XR_DEFINE_OPAQUE_64(object)
    #else
        #define XR_DEFINE_OPAQUE_64
    #endif
#endif


#if !defined(XR_DEFINE_ATOM)
    #define XR_DEFINE_ATOM(object)
#endif

XrVersion;
XrFlags64;
XR_DEFINE_ATOM()
XrBool32;
XR_DEFINE_ATOM()
XrTime;
XrDuration;
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
#define XR_TRUE
#define XR_FALSE
#define XR_MAX_EXTENSION_NAME_SIZE
#define XR_MAX_API_LAYER_NAME_SIZE
#define XR_MAX_API_LAYER_DESCRIPTION_SIZE
#define XR_MAX_SYSTEM_NAME_SIZE
#define XR_MAX_APPLICATION_NAME_SIZE
#define XR_MAX_ENGINE_NAME_SIZE
#define XR_MAX_RUNTIME_NAME_SIZE
#define XR_MAX_PATH_LENGTH
#define XR_MAX_STRUCTURE_NAME_SIZE
#define XR_MAX_RESULT_STRING_SIZE
#define XR_MAX_ACTION_SET_NAME_SIZE
#define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE
#define XR_MAX_ACTION_NAME_SIZE
#define XR_MAX_LOCALIZED_ACTION_NAME_SIZE

XrResult;

XrStructureType;

XrFormFactor;

XrViewConfigurationType;

XrEnvironmentBlendMode;

XrReferenceSpaceType;

XrActionType;

XrEyeVisibility;

XrSessionState;

XrObjectType;
XrInstanceCreateFlags;

// Flag bits for XrInstanceCreateFlags

XrSessionCreateFlags;

// Flag bits for XrSessionCreateFlags

XrSpaceVelocityFlags;

// Flag bits for XrSpaceVelocityFlags
static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_LINEAR_VALID_BIT =;
static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_ANGULAR_VALID_BIT =;

XrSpaceLocationFlags;

// Flag bits for XrSpaceLocationFlags
static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_VALID_BIT =;
static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_VALID_BIT =;
static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT =;
static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_TRACKED_BIT =;

XrSwapchainCreateFlags;

// Flag bits for XrSwapchainCreateFlags
static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT =;
static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT =;

XrSwapchainUsageFlags;

// Flag bits for XrSwapchainUsageFlags
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND =;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR =;  // alias of XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND

XrCompositionLayerFlags;

// Flag bits for XrCompositionLayerFlags
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT =;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT =;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT =;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT =;

XrViewStateFlags;

// Flag bits for XrViewStateFlags
static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT =;
static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT =;
static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT =;
static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT =;

XrInputSourceLocalizedNameFlags;

// Flag bits for XrInputSourceLocalizedNameFlags
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT =;
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT =;
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT =;

PFN_xrVoidFunction;
XrApiLayerProperties;

XrExtensionProperties;

XrApplicationInfo;

XrInstanceCreateInfo;

XrInstanceProperties;

XrEventDataBuffer;

XrSystemGetInfo;

XrSystemGraphicsProperties;

XrSystemTrackingProperties;

XrSystemProperties;

XrSessionCreateInfo;

XrVector3f;

// XrSpaceVelocity extends XrSpaceLocation
XrSpaceVelocity;

XrQuaternionf;

XrPosef;

XrReferenceSpaceCreateInfo;

XrExtent2Df;

XrActionSpaceCreateInfo;

XrSpaceLocation;

XrViewConfigurationProperties;

XrViewConfigurationView;

XrSwapchainCreateInfo;

XrSwapchainImageBaseHeader;

XrSwapchainImageAcquireInfo;

XrSwapchainImageWaitInfo;

XrSwapchainImageReleaseInfo;

XrSessionBeginInfo;

XrFrameWaitInfo;

XrFrameState;

XrFrameBeginInfo;

XrCompositionLayerBaseHeader;

XrFrameEndInfo;

XrViewLocateInfo;

XrViewState;

XrFovf;

XrView;

XrActionSetCreateInfo;

XrActionCreateInfo;

XrActionSuggestedBinding;

XrInteractionProfileSuggestedBinding;

XrSessionActionSetsAttachInfo;

XrInteractionProfileState;

XrActionStateGetInfo;

XrActionStateBoolean;

XrActionStateFloat;

XrVector2f;

XrActionStateVector2f;

XrActionStatePose;

XrActiveActionSet;

XrActionsSyncInfo;

XrBoundSourcesForActionEnumerateInfo;

XrInputSourceLocalizedNameGetInfo;

XrHapticActionInfo;

XrHapticBaseHeader;

XrBaseInStructure;

XrBaseOutStructure;

XrOffset2Di;

XrExtent2Di;

XrRect2Di;

XrSwapchainSubImage;

XrCompositionLayerProjectionView;

XrCompositionLayerProjection;

XrCompositionLayerQuad;

XrEventDataBaseHeader;

XrEventDataEventsLost;

XrEventDataInstanceLossPending;

XrEventDataSessionStateChanged;

XrEventDataReferenceSpaceChangePending;

XrEventDataInteractionProfileChanged;

XrHapticVibration;

XrOffset2Df;

XrRect2Df;

XrVector4f;

XrColor4f;

PFN_xrGetInstanceProcAddr;
PFN_xrEnumerateApiLayerProperties;
PFN_xrEnumerateInstanceExtensionProperties;
PFN_xrCreateInstance;
PFN_xrDestroyInstance;
PFN_xrGetInstanceProperties;
PFN_xrPollEvent;
PFN_xrResultToString;
PFN_xrStructureTypeToString;
PFN_xrGetSystem;
PFN_xrGetSystemProperties;
PFN_xrEnumerateEnvironmentBlendModes;
PFN_xrCreateSession;
PFN_xrDestroySession;
PFN_xrEnumerateReferenceSpaces;
PFN_xrCreateReferenceSpace;
PFN_xrGetReferenceSpaceBoundsRect;
PFN_xrCreateActionSpace;
PFN_xrLocateSpace;
PFN_xrDestroySpace;
PFN_xrEnumerateViewConfigurations;
PFN_xrGetViewConfigurationProperties;
PFN_xrEnumerateViewConfigurationViews;
PFN_xrEnumerateSwapchainFormats;
PFN_xrCreateSwapchain;
PFN_xrDestroySwapchain;
PFN_xrEnumerateSwapchainImages;
PFN_xrAcquireSwapchainImage;
PFN_xrWaitSwapchainImage;
PFN_xrReleaseSwapchainImage;
PFN_xrBeginSession;
PFN_xrEndSession;
PFN_xrRequestExitSession;
PFN_xrWaitFrame;
PFN_xrBeginFrame;
PFN_xrEndFrame;
PFN_xrLocateViews;
PFN_xrStringToPath;
PFN_xrPathToString;
PFN_xrCreateActionSet;
PFN_xrDestroyActionSet;
PFN_xrCreateAction;
PFN_xrDestroyAction;
PFN_xrSuggestInteractionProfileBindings;
PFN_xrAttachSessionActionSets;
PFN_xrGetCurrentInteractionProfile;
PFN_xrGetActionStateBoolean;
PFN_xrGetActionStateFloat;
PFN_xrGetActionStateVector2f;
PFN_xrGetActionStatePose;
PFN_xrSyncActions;
PFN_xrEnumerateBoundSourcesForAction;
PFN_xrGetInputSourceLocalizedName;
PFN_xrApplyHapticFeedback;
PFN_xrStopHapticFeedback;

#ifndef XR_NO_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProcAddr(
    XrInstance                                  instance,
    const char*                                 name,
    PFN_xrVoidFunction*                         function);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateApiLayerProperties(
    uint32_t                                    propertyCapacityInput,
    uint32_t*                                   propertyCountOutput,
    XrApiLayerProperties*                       properties);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties(
    const char*                                 layerName,
    uint32_t                                    propertyCapacityInput,
    uint32_t*                                   propertyCountOutput,
    XrExtensionProperties*                      properties);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateInstance(
    const XrInstanceCreateInfo*                 createInfo,
    XrInstance*                                 instance);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyInstance(
    XrInstance                                  instance);

XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProperties(
    XrInstance                                  instance,
    XrInstanceProperties*                       instanceProperties);

XRAPI_ATTR XrResult XRAPI_CALL xrPollEvent(
    XrInstance                                  instance,
    XrEventDataBuffer*                          eventData);

XRAPI_ATTR XrResult XRAPI_CALL xrResultToString(
    XrInstance                                  instance,
    XrResult                                    value,
    char                                        buffer[XR_MAX_RESULT_STRING_SIZE]);

XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString(
    XrInstance                                  instance,
    XrStructureType                             value,
    char                                        buffer[XR_MAX_STRUCTURE_NAME_SIZE]);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSystem(
    XrInstance                                  instance,
    const XrSystemGetInfo*                      getInfo,
    XrSystemId*                                 systemId);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSystemProperties(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrSystemProperties*                         properties);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrViewConfigurationType                     viewConfigurationType,
    uint32_t                                    environmentBlendModeCapacityInput,
    uint32_t*                                   environmentBlendModeCountOutput,
    XrEnvironmentBlendMode*                     environmentBlendModes);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSession(
    XrInstance                                  instance,
    const XrSessionCreateInfo*                  createInfo,
    XrSession*                                  session);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySession(
    XrSession                                   session);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReferenceSpaces(
    XrSession                                   session,
    uint32_t                                    spaceCapacityInput,
    uint32_t*                                   spaceCountOutput,
    XrReferenceSpaceType*                       spaces);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateReferenceSpace(
    XrSession                                   session,
    const XrReferenceSpaceCreateInfo*           createInfo,
    XrSpace*                                    space);

XRAPI_ATTR XrResult XRAPI_CALL xrGetReferenceSpaceBoundsRect(
    XrSession                                   session,
    XrReferenceSpaceType                        referenceSpaceType,
    XrExtent2Df*                                bounds);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSpace(
    XrSession                                   session,
    const XrActionSpaceCreateInfo*              createInfo,
    XrSpace*                                    space);

XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpace(
    XrSpace                                     space,
    XrSpace                                     baseSpace,
    XrTime                                      time,
    XrSpaceLocation*                            location);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpace(
    XrSpace                                     space);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurations(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    viewConfigurationTypeCapacityInput,
    uint32_t*                                   viewConfigurationTypeCountOutput,
    XrViewConfigurationType*                    viewConfigurationTypes);

XRAPI_ATTR XrResult XRAPI_CALL xrGetViewConfigurationProperties(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrViewConfigurationType                     viewConfigurationType,
    XrViewConfigurationProperties*              configurationProperties);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurationViews(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrViewConfigurationType                     viewConfigurationType,
    uint32_t                                    viewCapacityInput,
    uint32_t*                                   viewCountOutput,
    XrViewConfigurationView*                    views);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainFormats(
    XrSession                                   session,
    uint32_t                                    formatCapacityInput,
    uint32_t*                                   formatCountOutput,
    int64_t*                                    formats);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchain(
    XrSession                                   session,
    const XrSwapchainCreateInfo*                createInfo,
    XrSwapchain*                                swapchain);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySwapchain(
    XrSwapchain                                 swapchain);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainImages(
    XrSwapchain                                 swapchain,
    uint32_t                                    imageCapacityInput,
    uint32_t*                                   imageCountOutput,
    XrSwapchainImageBaseHeader*                 images);

XRAPI_ATTR XrResult XRAPI_CALL xrAcquireSwapchainImage(
    XrSwapchain                                 swapchain,
    const XrSwapchainImageAcquireInfo*          acquireInfo,
    uint32_t*                                   index);

XRAPI_ATTR XrResult XRAPI_CALL xrWaitSwapchainImage(
    XrSwapchain                                 swapchain,
    const XrSwapchainImageWaitInfo*             waitInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrReleaseSwapchainImage(
    XrSwapchain                                 swapchain,
    const XrSwapchainImageReleaseInfo*          releaseInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrBeginSession(
    XrSession                                   session,
    const XrSessionBeginInfo*                   beginInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrEndSession(
    XrSession                                   session);

XRAPI_ATTR XrResult XRAPI_CALL xrRequestExitSession(
    XrSession                                   session);

XRAPI_ATTR XrResult XRAPI_CALL xrWaitFrame(
    XrSession                                   session,
    const XrFrameWaitInfo*                      frameWaitInfo,
    XrFrameState*                               frameState);

XRAPI_ATTR XrResult XRAPI_CALL xrBeginFrame(
    XrSession                                   session,
    const XrFrameBeginInfo*                     frameBeginInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrEndFrame(
    XrSession                                   session,
    const XrFrameEndInfo*                       frameEndInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrLocateViews(
    XrSession                                   session,
    const XrViewLocateInfo*                     viewLocateInfo,
    XrViewState*                                viewState,
    uint32_t                                    viewCapacityInput,
    uint32_t*                                   viewCountOutput,
    XrView*                                     views);

XRAPI_ATTR XrResult XRAPI_CALL xrStringToPath(
    XrInstance                                  instance,
    const char*                                 pathString,
    XrPath*                                     path);

XRAPI_ATTR XrResult XRAPI_CALL xrPathToString(
    XrInstance                                  instance,
    XrPath                                      path,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSet(
    XrInstance                                  instance,
    const XrActionSetCreateInfo*                createInfo,
    XrActionSet*                                actionSet);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyActionSet(
    XrActionSet                                 actionSet);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateAction(
    XrActionSet                                 actionSet,
    const XrActionCreateInfo*                   createInfo,
    XrAction*                                   action);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAction(
    XrAction                                    action);

XRAPI_ATTR XrResult XRAPI_CALL xrSuggestInteractionProfileBindings(
    XrInstance                                  instance,
    const XrInteractionProfileSuggestedBinding* suggestedBindings);

XRAPI_ATTR XrResult XRAPI_CALL xrAttachSessionActionSets(
    XrSession                                   session,
    const XrSessionActionSetsAttachInfo*        attachInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrGetCurrentInteractionProfile(
    XrSession                                   session,
    XrPath                                      topLevelUserPath,
    XrInteractionProfileState*                  interactionProfile);

XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateBoolean(
    XrSession                                   session,
    const XrActionStateGetInfo*                 getInfo,
    XrActionStateBoolean*                       state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateFloat(
    XrSession                                   session,
    const XrActionStateGetInfo*                 getInfo,
    XrActionStateFloat*                         state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateVector2f(
    XrSession                                   session,
    const XrActionStateGetInfo*                 getInfo,
    XrActionStateVector2f*                      state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStatePose(
    XrSession                                   session,
    const XrActionStateGetInfo*                 getInfo,
    XrActionStatePose*                          state);

XRAPI_ATTR XrResult XRAPI_CALL xrSyncActions(
    XrSession                                   session,
    const XrActionsSyncInfo*                    syncInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateBoundSourcesForAction(
    XrSession                                   session,
    const XrBoundSourcesForActionEnumerateInfo* enumerateInfo,
    uint32_t                                    sourceCapacityInput,
    uint32_t*                                   sourceCountOutput,
    XrPath*                                     sources);

XRAPI_ATTR XrResult XRAPI_CALL xrGetInputSourceLocalizedName(
    XrSession                                   session,
    const XrInputSourceLocalizedNameGetInfo*    getInfo,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);

XRAPI_ATTR XrResult XRAPI_CALL xrApplyHapticFeedback(
    XrSession                                   session,
    const XrHapticActionInfo*                   hapticActionInfo,
    const XrHapticBaseHeader*                   hapticFeedback);

XRAPI_ATTR XrResult XRAPI_CALL xrStopHapticFeedback(
    XrSession                                   session,
    const XrHapticActionInfo*                   hapticActionInfo);
#endif /* !XR_NO_PROTOTYPES */


// XR_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
#define XR_VERSION_1_1
// OpenXR 1.1 version number
#define XR_API_VERSION_1_1

#define XR_UUID_SIZE
XrColor3f;

XrExtent3Df;

XrSpheref;

XrBoxf;

XrFrustumf;

XrUuid;

XrSpacesLocateInfo;

XrSpaceLocationData;

XrSpaceLocations;

XrSpaceVelocityData;

// XrSpaceVelocities extends XrSpaceLocations
XrSpaceVelocities;

PFN_xrLocateSpaces;

#ifndef XR_NO_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpaces(
    XrSession                                   session,
    const XrSpacesLocateInfo*                   locateInfo,
    XrSpaceLocations*                           spaceLocations);
#endif /* !XR_NO_PROTOTYPES */


// XR_KHR_composition_layer_cube is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_composition_layer_cube
#define XR_KHR_composition_layer_cube_SPEC_VERSION
#define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME
XrCompositionLayerCubeKHR;



// XR_KHR_composition_layer_depth is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_composition_layer_depth
#define XR_KHR_composition_layer_depth_SPEC_VERSION
#define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME
// XrCompositionLayerDepthInfoKHR extends XrCompositionLayerProjectionView
XrCompositionLayerDepthInfoKHR;



// XR_KHR_composition_layer_cylinder is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_composition_layer_cylinder
#define XR_KHR_composition_layer_cylinder_SPEC_VERSION
#define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME
XrCompositionLayerCylinderKHR;



// XR_KHR_composition_layer_equirect is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_composition_layer_equirect
#define XR_KHR_composition_layer_equirect_SPEC_VERSION
#define XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME
XrCompositionLayerEquirectKHR;



// XR_KHR_visibility_mask is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_visibility_mask
#define XR_KHR_visibility_mask_SPEC_VERSION
#define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME

XrVisibilityMaskTypeKHR;
XrVisibilityMaskKHR;

XrEventDataVisibilityMaskChangedKHR;

PFN_xrGetVisibilityMaskKHR;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetVisibilityMaskKHR(
    XrSession                                   session,
    XrViewConfigurationType                     viewConfigurationType,
    uint32_t                                    viewIndex,
    XrVisibilityMaskTypeKHR                     visibilityMaskType,
    XrVisibilityMaskKHR*                        visibilityMask);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_KHR_composition_layer_color_scale_bias is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_composition_layer_color_scale_bias
#define XR_KHR_composition_layer_color_scale_bias_SPEC_VERSION
#define XR_KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME
// XrCompositionLayerColorScaleBiasKHR extends XrCompositionLayerBaseHeader
XrCompositionLayerColorScaleBiasKHR;



// XR_KHR_loader_init is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_loader_init
#define XR_KHR_loader_init_SPEC_VERSION
#define XR_KHR_LOADER_INIT_EXTENSION_NAME
XrLoaderInitInfoBaseHeaderKHR;

PFN_xrInitializeLoaderKHR;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrInitializeLoaderKHR(
    const XrLoaderInitInfoBaseHeaderKHR*        loaderInitInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_KHR_composition_layer_equirect2 is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_composition_layer_equirect2
#define XR_KHR_composition_layer_equirect2_SPEC_VERSION
#define XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME
XrCompositionLayerEquirect2KHR;



// XR_KHR_binding_modification is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_binding_modification
#define XR_KHR_binding_modification_SPEC_VERSION
#define XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME
XrBindingModificationBaseHeaderKHR;

// XrBindingModificationsKHR extends XrInteractionProfileSuggestedBinding
XrBindingModificationsKHR;



// XR_KHR_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_swapchain_usage_input_attachment_bit
#define XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION
#define XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME


// XR_KHR_locate_spaces is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_locate_spaces
#define XR_KHR_locate_spaces_SPEC_VERSION
#define XR_KHR_LOCATE_SPACES_EXTENSION_NAME
XrSpacesLocateInfoKHR;

XrSpaceLocationDataKHR;

XrSpaceLocationsKHR;

XrSpaceVelocityDataKHR;

XrSpaceVelocitiesKHR;

PFN_xrLocateSpacesKHR;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpacesKHR(
    XrSession                                   session,
    const XrSpacesLocateInfo*                   locateInfo,
    XrSpaceLocations*                           spaceLocations);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
#define XR_KHR_maintenance1
#define XR_KHR_maintenance1_SPEC_VERSION
#define XR_KHR_MAINTENANCE1_EXTENSION_NAME
XrColor3fKHR;

XrExtent3DfKHR;

XrSpherefKHR;

XrBoxfKHR;

XrFrustumfKHR;



// XR_EXT_performance_settings is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_performance_settings
#define XR_EXT_performance_settings_SPEC_VERSION
#define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME

XrPerfSettingsDomainEXT;

XrPerfSettingsSubDomainEXT;

XrPerfSettingsLevelEXT;

XrPerfSettingsNotificationLevelEXT;
XrEventDataPerfSettingsEXT;

PFN_xrPerfSettingsSetPerformanceLevelEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT(
    XrSession                                   session,
    XrPerfSettingsDomainEXT                     domain,
    XrPerfSettingsLevelEXT                      level);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_thermal_query is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_thermal_query
#define XR_EXT_thermal_query_SPEC_VERSION
#define XR_EXT_THERMAL_QUERY_EXTENSION_NAME
PFN_xrThermalGetTemperatureTrendEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT(
    XrSession                                   session,
    XrPerfSettingsDomainEXT                     domain,
    XrPerfSettingsNotificationLevelEXT*         notificationLevel,
    float*                                      tempHeadroom,
    float*                                      tempSlope);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_debug_utils
XR_DEFINE_HANDLE()
#define XR_EXT_debug_utils_SPEC_VERSION
#define XR_EXT_DEBUG_UTILS_EXTENSION_NAME
XrDebugUtilsMessageSeverityFlagsEXT;

// Flag bits for XrDebugUtilsMessageSeverityFlagsEXT
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT =;
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT =;
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT =;
static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT =;

XrDebugUtilsMessageTypeFlagsEXT;

// Flag bits for XrDebugUtilsMessageTypeFlagsEXT
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT =;
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT =;
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT =;
static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT =;

XrDebugUtilsObjectNameInfoEXT;

XrDebugUtilsLabelEXT;

XrDebugUtilsMessengerCallbackDataEXT;

PFN_xrDebugUtilsMessengerCallbackEXT;
        

// XrDebugUtilsMessengerCreateInfoEXT extends XrInstanceCreateInfo
XrDebugUtilsMessengerCreateInfoEXT;

PFN_xrSetDebugUtilsObjectNameEXT;
PFN_xrCreateDebugUtilsMessengerEXT;
PFN_xrDestroyDebugUtilsMessengerEXT;
PFN_xrSubmitDebugUtilsMessageEXT;
PFN_xrSessionBeginDebugUtilsLabelRegionEXT;
PFN_xrSessionEndDebugUtilsLabelRegionEXT;
PFN_xrSessionInsertDebugUtilsLabelEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSetDebugUtilsObjectNameEXT(
    XrInstance                                  instance,
    const XrDebugUtilsObjectNameInfoEXT*        nameInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateDebugUtilsMessengerEXT(
    XrInstance                                  instance,
    const XrDebugUtilsMessengerCreateInfoEXT*   createInfo,
    XrDebugUtilsMessengerEXT*                   messenger);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDebugUtilsMessengerEXT(
    XrDebugUtilsMessengerEXT                    messenger);

XRAPI_ATTR XrResult                                    XRAPI_CALL xrSubmitDebugUtilsMessageEXT(
    XrInstance                                  instance,
    XrDebugUtilsMessageSeverityFlagsEXT         messageSeverity,
    XrDebugUtilsMessageTypeFlagsEXT             messageTypes,
    const XrDebugUtilsMessengerCallbackDataEXT* callbackData);

XRAPI_ATTR XrResult XRAPI_CALL xrSessionBeginDebugUtilsLabelRegionEXT(
    XrSession                                   session,
    const XrDebugUtilsLabelEXT*                 labelInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrSessionEndDebugUtilsLabelRegionEXT(
    XrSession                                   session);

XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT(
    XrSession                                   session,
    const XrDebugUtilsLabelEXT*                 labelInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_eye_gaze_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_eye_gaze_interaction
#define XR_EXT_eye_gaze_interaction_SPEC_VERSION
#define XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME
// XrSystemEyeGazeInteractionPropertiesEXT extends XrSystemProperties
XrSystemEyeGazeInteractionPropertiesEXT;

// XrEyeGazeSampleTimeEXT extends XrSpaceLocation
XrEyeGazeSampleTimeEXT;



// XR_EXTX_overlay is a preprocessor guard. Do not pass it to API calls.
#define XR_EXTX_overlay
#define XR_EXTX_overlay_SPEC_VERSION
#define XR_EXTX_OVERLAY_EXTENSION_NAME
XrOverlaySessionCreateFlagsEXTX;

// Flag bits for XrOverlaySessionCreateFlagsEXTX

XrOverlayMainSessionFlagsEXTX;

// Flag bits for XrOverlayMainSessionFlagsEXTX
static const XrOverlayMainSessionFlagsEXTX XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX =;

// XrSessionCreateInfoOverlayEXTX extends XrSessionCreateInfo
XrSessionCreateInfoOverlayEXTX;

XrEventDataMainSessionVisibilityChangedEXTX;



// XR_VARJO_quad_views is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_quad_views
#define XR_VARJO_quad_views_SPEC_VERSION
#define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME


// XR_MSFT_unbounded_reference_space is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_unbounded_reference_space
#define XR_MSFT_unbounded_reference_space_SPEC_VERSION
#define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME


// XR_MSFT_spatial_anchor is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_spatial_anchor
XR_DEFINE_HANDLE()
#define XR_MSFT_spatial_anchor_SPEC_VERSION
#define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME
XrSpatialAnchorCreateInfoMSFT;

XrSpatialAnchorSpaceCreateInfoMSFT;

PFN_xrCreateSpatialAnchorMSFT;
PFN_xrCreateSpatialAnchorSpaceMSFT;
PFN_xrDestroySpatialAnchorMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT(
    XrSession                                   session,
    const XrSpatialAnchorCreateInfoMSFT*        createInfo,
    XrSpatialAnchorMSFT*                        anchor);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT(
    XrSession                                   session,
    const XrSpatialAnchorSpaceCreateInfoMSFT*   createInfo,
    XrSpace*                                    space);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT(
    XrSpatialAnchorMSFT                         anchor);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_composition_layer_image_layout is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_composition_layer_image_layout
#define XR_FB_composition_layer_image_layout_SPEC_VERSION
#define XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME
XrCompositionLayerImageLayoutFlagsFB;

// Flag bits for XrCompositionLayerImageLayoutFlagsFB
static const XrCompositionLayerImageLayoutFlagsFB XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB =;

// XrCompositionLayerImageLayoutFB extends XrCompositionLayerBaseHeader
XrCompositionLayerImageLayoutFB;



// XR_FB_composition_layer_alpha_blend is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_composition_layer_alpha_blend
#define XR_FB_composition_layer_alpha_blend_SPEC_VERSION
#define XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME

XrBlendFactorFB;
// XrCompositionLayerAlphaBlendFB extends XrCompositionLayerBaseHeader
XrCompositionLayerAlphaBlendFB;



// XR_MND_headless is a preprocessor guard. Do not pass it to API calls.
#define XR_MND_headless
#define XR_MND_headless_SPEC_VERSION
#define XR_MND_HEADLESS_EXTENSION_NAME


// XR_OCULUS_android_session_state_enable is a preprocessor guard. Do not pass it to API calls.
#define XR_OCULUS_android_session_state_enable
#define XR_OCULUS_android_session_state_enable_SPEC_VERSION
#define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME


// XR_EXT_view_configuration_depth_range is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_view_configuration_depth_range
#define XR_EXT_view_configuration_depth_range_SPEC_VERSION
#define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME
// XrViewConfigurationDepthRangeEXT extends XrViewConfigurationView
XrViewConfigurationDepthRangeEXT;



// XR_EXT_conformance_automation is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_conformance_automation
#define XR_EXT_conformance_automation_SPEC_VERSION
#define XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME
PFN_xrSetInputDeviceActiveEXT;
PFN_xrSetInputDeviceStateBoolEXT;
PFN_xrSetInputDeviceStateFloatEXT;
PFN_xrSetInputDeviceStateVector2fEXT;
PFN_xrSetInputDeviceLocationEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceActiveEXT(
    XrSession                                   session,
    XrPath                                      interactionProfile,
    XrPath                                      topLevelPath,
    XrBool32                                    isActive);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateBoolEXT(
    XrSession                                   session,
    XrPath                                      topLevelPath,
    XrPath                                      inputSourcePath,
    XrBool32                                    state);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateFloatEXT(
    XrSession                                   session,
    XrPath                                      topLevelPath,
    XrPath                                      inputSourcePath,
    float                                       state);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateVector2fEXT(
    XrSession                                   session,
    XrPath                                      topLevelPath,
    XrPath                                      inputSourcePath,
    XrVector2f                                  state);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(
    XrSession                                   session,
    XrPath                                      topLevelPath,
    XrPath                                      inputSourcePath,
    XrSpace                                     space,
    XrPosef                                     pose);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_spatial_graph_bridge is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_spatial_graph_bridge
XR_DEFINE_HANDLE()
#define XR_GUID_SIZE_MSFT
#define XR_MSFT_spatial_graph_bridge_SPEC_VERSION
#define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME

XrSpatialGraphNodeTypeMSFT;
XrSpatialGraphNodeSpaceCreateInfoMSFT;

XrSpatialGraphStaticNodeBindingCreateInfoMSFT;

XrSpatialGraphNodeBindingPropertiesGetInfoMSFT;

XrSpatialGraphNodeBindingPropertiesMSFT;

PFN_xrCreateSpatialGraphNodeSpaceMSFT;
PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT;
PFN_xrDestroySpatialGraphNodeBindingMSFT;
PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT(
    XrSession                                   session,
    const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo,
    XrSpace*                                    space);

XRAPI_ATTR XrResult XRAPI_CALL xrTryCreateSpatialGraphStaticNodeBindingMSFT(
    XrSession                                   session,
    const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo,
    XrSpatialGraphNodeBindingMSFT*              nodeBinding);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialGraphNodeBindingMSFT(
    XrSpatialGraphNodeBindingMSFT               nodeBinding);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialGraphNodeBindingPropertiesMSFT(
    XrSpatialGraphNodeBindingMSFT               nodeBinding,
    const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo,
    XrSpatialGraphNodeBindingPropertiesMSFT*    properties);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_hand_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_hand_interaction
#define XR_MSFT_hand_interaction_SPEC_VERSION
#define XR_MSFT_HAND_INTERACTION_EXTENSION_NAME


// XR_EXT_hand_tracking is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_hand_tracking

#define XR_HAND_JOINT_COUNT_EXT

XR_DEFINE_HANDLE()
#define XR_EXT_hand_tracking_SPEC_VERSION
#define XR_EXT_HAND_TRACKING_EXTENSION_NAME

XrHandEXT;

XrHandJointEXT;

XrHandJointSetEXT;
// XrSystemHandTrackingPropertiesEXT extends XrSystemProperties
XrSystemHandTrackingPropertiesEXT;

XrHandTrackerCreateInfoEXT;

XrHandJointsLocateInfoEXT;

XrHandJointLocationEXT;

XrHandJointVelocityEXT;

XrHandJointLocationsEXT;

// XrHandJointVelocitiesEXT extends XrHandJointLocationsEXT
XrHandJointVelocitiesEXT;

PFN_xrCreateHandTrackerEXT;
PFN_xrDestroyHandTrackerEXT;
PFN_xrLocateHandJointsEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandTrackerEXT(
    XrSession                                   session,
    const XrHandTrackerCreateInfoEXT*           createInfo,
    XrHandTrackerEXT*                           handTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyHandTrackerEXT(
    XrHandTrackerEXT                            handTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrLocateHandJointsEXT(
    XrHandTrackerEXT                            handTracker,
    const XrHandJointsLocateInfoEXT*            locateInfo,
    XrHandJointLocationsEXT*                    locations);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_hand_tracking_mesh
#define XR_MSFT_hand_tracking_mesh_SPEC_VERSION
#define XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME

XrHandPoseTypeMSFT;
// XrSystemHandTrackingMeshPropertiesMSFT extends XrSystemProperties
XrSystemHandTrackingMeshPropertiesMSFT;

XrHandMeshSpaceCreateInfoMSFT;

XrHandMeshUpdateInfoMSFT;

XrHandMeshIndexBufferMSFT;

XrHandMeshVertexMSFT;

XrHandMeshVertexBufferMSFT;

XrHandMeshMSFT;

// XrHandPoseTypeInfoMSFT extends XrHandTrackerCreateInfoEXT
XrHandPoseTypeInfoMSFT;

PFN_xrCreateHandMeshSpaceMSFT;
PFN_xrUpdateHandMeshMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateHandMeshSpaceMSFT(
    XrHandTrackerEXT                            handTracker,
    const XrHandMeshSpaceCreateInfoMSFT*        createInfo,
    XrSpace*                                    space);

XRAPI_ATTR XrResult XRAPI_CALL xrUpdateHandMeshMSFT(
    XrHandTrackerEXT                            handTracker,
    const XrHandMeshUpdateInfoMSFT*             updateInfo,
    XrHandMeshMSFT*                             handMesh);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_secondary_view_configuration is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_secondary_view_configuration
#define XR_MSFT_secondary_view_configuration_SPEC_VERSION
#define XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME
// XrSecondaryViewConfigurationSessionBeginInfoMSFT extends XrSessionBeginInfo
XrSecondaryViewConfigurationSessionBeginInfoMSFT;

XrSecondaryViewConfigurationStateMSFT;

// XrSecondaryViewConfigurationFrameStateMSFT extends XrFrameState
XrSecondaryViewConfigurationFrameStateMSFT;

XrSecondaryViewConfigurationLayerInfoMSFT;

// XrSecondaryViewConfigurationFrameEndInfoMSFT extends XrFrameEndInfo
XrSecondaryViewConfigurationFrameEndInfoMSFT;

// XrSecondaryViewConfigurationSwapchainCreateInfoMSFT extends XrSwapchainCreateInfo
XrSecondaryViewConfigurationSwapchainCreateInfoMSFT;



// XR_MSFT_first_person_observer is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_first_person_observer
#define XR_MSFT_first_person_observer_SPEC_VERSION
#define XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME


// XR_MSFT_controller_model is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_controller_model

#define XR_NULL_CONTROLLER_MODEL_KEY_MSFT

XR_DEFINE_ATOM()
#define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT
#define XR_MSFT_controller_model_SPEC_VERSION
#define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME
XrControllerModelKeyStateMSFT;

XrControllerModelNodePropertiesMSFT;

XrControllerModelPropertiesMSFT;

XrControllerModelNodeStateMSFT;

XrControllerModelStateMSFT;

PFN_xrGetControllerModelKeyMSFT;
PFN_xrLoadControllerModelMSFT;
PFN_xrGetControllerModelPropertiesMSFT;
PFN_xrGetControllerModelStateMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelKeyMSFT(
    XrSession                                   session,
    XrPath                                      topLevelUserPath,
    XrControllerModelKeyStateMSFT*              controllerModelKeyState);

XRAPI_ATTR XrResult XRAPI_CALL xrLoadControllerModelMSFT(
    XrSession                                   session,
    XrControllerModelKeyMSFT                    modelKey,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    uint8_t*                                    buffer);

XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelPropertiesMSFT(
    XrSession                                   session,
    XrControllerModelKeyMSFT                    modelKey,
    XrControllerModelPropertiesMSFT*            properties);

XRAPI_ATTR XrResult XRAPI_CALL xrGetControllerModelStateMSFT(
    XrSession                                   session,
    XrControllerModelKeyMSFT                    modelKey,
    XrControllerModelStateMSFT*                 state);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_win32_appcontainer_compatible is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_win32_appcontainer_compatible
#define XR_EXT_win32_appcontainer_compatible_SPEC_VERSION
#define XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME


// XR_EPIC_view_configuration_fov is a preprocessor guard. Do not pass it to API calls.
#define XR_EPIC_view_configuration_fov
#define XR_EPIC_view_configuration_fov_SPEC_VERSION
#define XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME
// XrViewConfigurationViewFovEPIC extends XrViewConfigurationView
XrViewConfigurationViewFovEPIC;



// XR_MSFT_composition_layer_reprojection is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_composition_layer_reprojection
#define XR_MSFT_composition_layer_reprojection_SPEC_VERSION
#define XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME

XrReprojectionModeMSFT;
// XrCompositionLayerReprojectionInfoMSFT extends XrCompositionLayerProjection
XrCompositionLayerReprojectionInfoMSFT;

// XrCompositionLayerReprojectionPlaneOverrideMSFT extends XrCompositionLayerProjection
XrCompositionLayerReprojectionPlaneOverrideMSFT;

PFN_xrEnumerateReprojectionModesMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReprojectionModesMSFT(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrViewConfigurationType                     viewConfigurationType,
    uint32_t                                    modeCapacityInput,
    uint32_t*                                   modeCountOutput,
    XrReprojectionModeMSFT*                     modes);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HUAWEI_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_HUAWEI_controller_interaction
#define XR_HUAWEI_controller_interaction_SPEC_VERSION
#define XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_FB_swapchain_update_state is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_swapchain_update_state
#define XR_FB_swapchain_update_state_SPEC_VERSION
#define XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME
XrSwapchainStateBaseHeaderFB;

PFN_xrUpdateSwapchainFB;
PFN_xrGetSwapchainStateFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrUpdateSwapchainFB(
    XrSwapchain                                 swapchain,
    const XrSwapchainStateBaseHeaderFB*         state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSwapchainStateFB(
    XrSwapchain                                 swapchain,
    XrSwapchainStateBaseHeaderFB*               state);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_composition_layer_secure_content is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_composition_layer_secure_content
#define XR_FB_composition_layer_secure_content_SPEC_VERSION
#define XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME
XrCompositionLayerSecureContentFlagsFB;

// Flag bits for XrCompositionLayerSecureContentFlagsFB
static const XrCompositionLayerSecureContentFlagsFB XR_COMPOSITION_LAYER_SECURE_CONTENT_EXCLUDE_LAYER_BIT_FB =;
static const XrCompositionLayerSecureContentFlagsFB XR_COMPOSITION_LAYER_SECURE_CONTENT_REPLACE_LAYER_BIT_FB =;

// XrCompositionLayerSecureContentFB extends XrCompositionLayerBaseHeader
XrCompositionLayerSecureContentFB;



// XR_FB_body_tracking is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_body_tracking
XR_DEFINE_HANDLE()
#define XR_FB_body_tracking_SPEC_VERSION
#define XR_FB_BODY_TRACKING_EXTENSION_NAME

XrBodyJointFB;

XrBodyJointSetFB;
XrBodyJointLocationFB;

// XrSystemBodyTrackingPropertiesFB extends XrSystemProperties
XrSystemBodyTrackingPropertiesFB;

XrBodyTrackerCreateInfoFB;

XrBodySkeletonJointFB;

XrBodySkeletonFB;

XrBodyJointsLocateInfoFB;

XrBodyJointLocationsFB;

PFN_xrCreateBodyTrackerFB;
PFN_xrDestroyBodyTrackerFB;
PFN_xrLocateBodyJointsFB;
PFN_xrGetBodySkeletonFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateBodyTrackerFB(
    XrSession                                   session,
    const XrBodyTrackerCreateInfoFB*            createInfo,
    XrBodyTrackerFB*                            bodyTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyBodyTrackerFB(
    XrBodyTrackerFB                             bodyTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrLocateBodyJointsFB(
    XrBodyTrackerFB                             bodyTracker,
    const XrBodyJointsLocateInfoFB*             locateInfo,
    XrBodyJointLocationsFB*                     locations);

XRAPI_ATTR XrResult XRAPI_CALL xrGetBodySkeletonFB(
    XrBodyTrackerFB                             bodyTracker,
    XrBodySkeletonFB*                           skeleton);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_dpad_binding is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_dpad_binding
#define XR_EXT_dpad_binding_SPEC_VERSION
#define XR_EXT_DPAD_BINDING_EXTENSION_NAME
XrInteractionProfileDpadBindingEXT;



// XR_VALVE_analog_threshold is a preprocessor guard. Do not pass it to API calls.
#define XR_VALVE_analog_threshold
#define XR_VALVE_analog_threshold_SPEC_VERSION
#define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME
XrInteractionProfileAnalogThresholdVALVE;



// XR_EXT_hand_joints_motion_range is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_hand_joints_motion_range
#define XR_EXT_hand_joints_motion_range_SPEC_VERSION
#define XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME

XrHandJointsMotionRangeEXT;
// XrHandJointsMotionRangeInfoEXT extends XrHandJointsLocateInfoEXT
XrHandJointsMotionRangeInfoEXT;



// XR_EXT_samsung_odyssey_controller is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_samsung_odyssey_controller
#define XR_EXT_samsung_odyssey_controller_SPEC_VERSION
#define XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME


// XR_EXT_hp_mixed_reality_controller is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_hp_mixed_reality_controller
#define XR_EXT_hp_mixed_reality_controller_SPEC_VERSION
#define XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME


// XR_MND_swapchain_usage_input_attachment_bit is a preprocessor guard. Do not pass it to API calls.
#define XR_MND_swapchain_usage_input_attachment_bit
#define XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION
#define XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME


// XR_MSFT_scene_understanding is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_scene_understanding

            XR_DEFINE_HANDLE()


            XR_DEFINE_HANDLE()

#define XR_MSFT_scene_understanding_SPEC_VERSION
#define XR_MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME

XrSceneComputeFeatureMSFT;

XrSceneComputeConsistencyMSFT;

XrMeshComputeLodMSFT;

XrSceneComponentTypeMSFT;

XrSceneObjectTypeMSFT;

XrScenePlaneAlignmentTypeMSFT;

XrSceneComputeStateMSFT;
XrUuidMSFT;

XrSceneObserverCreateInfoMSFT;

XrSceneCreateInfoMSFT;

XrSceneSphereBoundMSFT;

XrSceneOrientedBoxBoundMSFT;

XrSceneFrustumBoundMSFT;

XrSceneBoundsMSFT;

XrNewSceneComputeInfoMSFT;

// XrVisualMeshComputeLodInfoMSFT extends XrNewSceneComputeInfoMSFT
XrVisualMeshComputeLodInfoMSFT;

XrSceneComponentMSFT;

XrSceneComponentsMSFT;

XrSceneComponentsGetInfoMSFT;

XrSceneComponentLocationMSFT;

XrSceneComponentLocationsMSFT;

XrSceneComponentsLocateInfoMSFT;

XrSceneObjectMSFT;

// XrSceneObjectsMSFT extends XrSceneComponentsMSFT
XrSceneObjectsMSFT;

// XrSceneComponentParentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
XrSceneComponentParentFilterInfoMSFT;

// XrSceneObjectTypesFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
XrSceneObjectTypesFilterInfoMSFT;

XrScenePlaneMSFT;

// XrScenePlanesMSFT extends XrSceneComponentsMSFT
XrScenePlanesMSFT;

// XrScenePlaneAlignmentFilterInfoMSFT extends XrSceneComponentsGetInfoMSFT
XrScenePlaneAlignmentFilterInfoMSFT;

XrSceneMeshMSFT;

// XrSceneMeshesMSFT extends XrSceneComponentsMSFT
XrSceneMeshesMSFT;

XrSceneMeshBuffersGetInfoMSFT;

XrSceneMeshBuffersMSFT;

XrSceneMeshVertexBufferMSFT;

XrSceneMeshIndicesUint32MSFT;

XrSceneMeshIndicesUint16MSFT;

PFN_xrEnumerateSceneComputeFeaturesMSFT;
PFN_xrCreateSceneObserverMSFT;
PFN_xrDestroySceneObserverMSFT;
PFN_xrCreateSceneMSFT;
PFN_xrDestroySceneMSFT;
PFN_xrComputeNewSceneMSFT;
PFN_xrGetSceneComputeStateMSFT;
PFN_xrGetSceneComponentsMSFT;
PFN_xrLocateSceneComponentsMSFT;
PFN_xrGetSceneMeshBuffersMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSceneComputeFeaturesMSFT(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    featureCapacityInput,
    uint32_t*                                   featureCountOutput,
    XrSceneComputeFeatureMSFT*                  features);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneObserverMSFT(
    XrSession                                   session,
    const XrSceneObserverCreateInfoMSFT*        createInfo,
    XrSceneObserverMSFT*                        sceneObserver);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneObserverMSFT(
    XrSceneObserverMSFT                         sceneObserver);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSceneMSFT(
    XrSceneObserverMSFT                         sceneObserver,
    const XrSceneCreateInfoMSFT*                createInfo,
    XrSceneMSFT*                                scene);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySceneMSFT(
    XrSceneMSFT                                 scene);

XRAPI_ATTR XrResult XRAPI_CALL xrComputeNewSceneMSFT(
    XrSceneObserverMSFT                         sceneObserver,
    const XrNewSceneComputeInfoMSFT*            computeInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneComputeStateMSFT(
    XrSceneObserverMSFT                         sceneObserver,
    XrSceneComputeStateMSFT*                    state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneComponentsMSFT(
    XrSceneMSFT                                 scene,
    const XrSceneComponentsGetInfoMSFT*         getInfo,
    XrSceneComponentsMSFT*                      components);

XRAPI_ATTR XrResult XRAPI_CALL xrLocateSceneComponentsMSFT(
    XrSceneMSFT                                 scene,
    const XrSceneComponentsLocateInfoMSFT*      locateInfo,
    XrSceneComponentLocationsMSFT*              locations);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMeshBuffersMSFT(
    XrSceneMSFT                                 scene,
    const XrSceneMeshBuffersGetInfoMSFT*        getInfo,
    XrSceneMeshBuffersMSFT*                     buffers);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_scene_understanding_serialization is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_scene_understanding_serialization
#define XR_MSFT_scene_understanding_serialization_SPEC_VERSION
#define XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME
XrSerializedSceneFragmentDataGetInfoMSFT;

XrDeserializeSceneFragmentMSFT;

XrSceneDeserializeInfoMSFT;

PFN_xrDeserializeSceneMSFT;
PFN_xrGetSerializedSceneFragmentDataMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrDeserializeSceneMSFT(
    XrSceneObserverMSFT                         sceneObserver,
    const XrSceneDeserializeInfoMSFT*           deserializeInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSerializedSceneFragmentDataMSFT(
    XrSceneMSFT                                 scene,
    const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo,
    uint32_t                                    countInput,
    uint32_t*                                   readOutput,
    uint8_t*                                    buffer);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_display_refresh_rate is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_display_refresh_rate
#define XR_FB_display_refresh_rate_SPEC_VERSION
#define XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME
XrEventDataDisplayRefreshRateChangedFB;

PFN_xrEnumerateDisplayRefreshRatesFB;
PFN_xrGetDisplayRefreshRateFB;
PFN_xrRequestDisplayRefreshRateFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB(
    XrSession                                   session,
    uint32_t                                    displayRefreshRateCapacityInput,
    uint32_t*                                   displayRefreshRateCountOutput,
    float*                                      displayRefreshRates);

XRAPI_ATTR XrResult XRAPI_CALL xrGetDisplayRefreshRateFB(
    XrSession                                   session,
    float*                                      displayRefreshRate);

XRAPI_ATTR XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB(
    XrSession                                   session,
    float                                       displayRefreshRate);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HTC_vive_cosmos_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_vive_cosmos_controller_interaction
#define XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION
#define XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_HTCX_vive_tracker_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_HTCX_vive_tracker_interaction
#define XR_HTCX_vive_tracker_interaction_SPEC_VERSION
#define XR_HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME
XrViveTrackerPathsHTCX;

XrEventDataViveTrackerConnectedHTCX;

PFN_xrEnumerateViveTrackerPathsHTCX;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViveTrackerPathsHTCX(
    XrInstance                                  instance,
    uint32_t                                    pathCapacityInput,
    uint32_t*                                   pathCountOutput,
    XrViveTrackerPathsHTCX*                     paths);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HTC_facial_tracking is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_facial_tracking

#define XR_FACIAL_EXPRESSION_EYE_COUNT_HTC


#define XR_FACIAL_EXPRESSION_LIP_COUNT_HTC

XR_DEFINE_HANDLE()
#define XR_HTC_facial_tracking_SPEC_VERSION
#define XR_HTC_FACIAL_TRACKING_EXTENSION_NAME

XrEyeExpressionHTC;

XrLipExpressionHTC;

XrFacialTrackingTypeHTC;
// XrSystemFacialTrackingPropertiesHTC extends XrSystemProperties
XrSystemFacialTrackingPropertiesHTC;

XrFacialExpressionsHTC;

XrFacialTrackerCreateInfoHTC;

PFN_xrCreateFacialTrackerHTC;
PFN_xrDestroyFacialTrackerHTC;
PFN_xrGetFacialExpressionsHTC;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFacialTrackerHTC(
    XrSession                                   session,
    const XrFacialTrackerCreateInfoHTC*         createInfo,
    XrFacialTrackerHTC*                         facialTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFacialTrackerHTC(
    XrFacialTrackerHTC                          facialTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionsHTC(
    XrFacialTrackerHTC                          facialTracker,
    XrFacialExpressionsHTC*                     facialExpressions);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HTC_vive_focus3_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_vive_focus3_controller_interaction
#define XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION
#define XR_HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_HTC_hand_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_hand_interaction
#define XR_HTC_hand_interaction_SPEC_VERSION
#define XR_HTC_HAND_INTERACTION_EXTENSION_NAME


// XR_HTC_vive_wrist_tracker_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_vive_wrist_tracker_interaction
#define XR_HTC_vive_wrist_tracker_interaction_SPEC_VERSION
#define XR_HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME


// XR_FB_color_space is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_color_space
#define XR_FB_color_space_SPEC_VERSION
#define XR_FB_COLOR_SPACE_EXTENSION_NAME

XrColorSpaceFB;
// XrSystemColorSpacePropertiesFB extends XrSystemProperties
XrSystemColorSpacePropertiesFB;

PFN_xrEnumerateColorSpacesFB;
PFN_xrSetColorSpaceFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateColorSpacesFB(
    XrSession                                   session,
    uint32_t                                    colorSpaceCapacityInput,
    uint32_t*                                   colorSpaceCountOutput,
    XrColorSpaceFB*                             colorSpaces);

XRAPI_ATTR XrResult XRAPI_CALL xrSetColorSpaceFB(
    XrSession                                   session,
    const XrColorSpaceFB                        colorSpace);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_hand_tracking_mesh is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_hand_tracking_mesh
#define XR_FB_hand_tracking_mesh_SPEC_VERSION
#define XR_FB_HAND_TRACKING_MESH_EXTENSION_NAME
XrVector4sFB;

XrHandTrackingMeshFB;

// XrHandTrackingScaleFB extends XrHandJointLocationsEXT
XrHandTrackingScaleFB;

PFN_xrGetHandMeshFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetHandMeshFB(
    XrHandTrackerEXT                            handTracker,
    XrHandTrackingMeshFB*                       mesh);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_hand_tracking_aim is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_hand_tracking_aim
#define XR_FB_hand_tracking_aim_SPEC_VERSION
#define XR_FB_HAND_TRACKING_AIM_EXTENSION_NAME
XrHandTrackingAimFlagsFB;

// Flag bits for XrHandTrackingAimFlagsFB
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_COMPUTED_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_VALID_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_INDEX_PINCHING_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MIDDLE_PINCHING_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_RING_PINCHING_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_LITTLE_PINCHING_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_SYSTEM_GESTURE_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_DOMINANT_HAND_BIT_FB =;
static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MENU_PRESSED_BIT_FB =;

// XrHandTrackingAimStateFB extends XrHandJointLocationsEXT
XrHandTrackingAimStateFB;



// XR_FB_hand_tracking_capsules is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_hand_tracking_capsules
#define XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB
#define XR_HAND_TRACKING_CAPSULE_COUNT_FB
#define XR_FB_hand_tracking_capsules_SPEC_VERSION
#define XR_FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME
#define XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT
#define XR_FB_HAND_TRACKING_CAPSULE_COUNT
XrHandCapsuleFB;

// XrHandTrackingCapsulesStateFB extends XrHandJointLocationsEXT
XrHandTrackingCapsulesStateFB;



// XR_FB_spatial_entity is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity
XR_DEFINE_ATOM()
#define XR_FB_spatial_entity_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_EXTENSION_NAME

XrSpaceComponentTypeFB;
// XrSystemSpatialEntityPropertiesFB extends XrSystemProperties
XrSystemSpatialEntityPropertiesFB;

XrSpatialAnchorCreateInfoFB;

XrSpaceComponentStatusSetInfoFB;

XrSpaceComponentStatusFB;

XrUuidEXT;

XrEventDataSpatialAnchorCreateCompleteFB;

XrEventDataSpaceSetStatusCompleteFB;

PFN_xrCreateSpatialAnchorFB;
PFN_xrGetSpaceUuidFB;
PFN_xrEnumerateSpaceSupportedComponentsFB;
PFN_xrSetSpaceComponentStatusFB;
PFN_xrGetSpaceComponentStatusFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFB(
    XrSession                                   session,
    const XrSpatialAnchorCreateInfoFB*          info,
    XrAsyncRequestIdFB*                         requestId);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUuidFB(
    XrSpace                                     space,
    XrUuidEXT*                                  uuid);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpaceSupportedComponentsFB(
    XrSpace                                     space,
    uint32_t                                    componentTypeCapacityInput,
    uint32_t*                                   componentTypeCountOutput,
    XrSpaceComponentTypeFB*                     componentTypes);

XRAPI_ATTR XrResult XRAPI_CALL xrSetSpaceComponentStatusFB(
    XrSpace                                     space,
    const XrSpaceComponentStatusSetInfoFB*      info,
    XrAsyncRequestIdFB*                         requestId);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceComponentStatusFB(
    XrSpace                                     space,
    XrSpaceComponentTypeFB                      componentType,
    XrSpaceComponentStatusFB*                   status);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_foveation is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_foveation
XR_DEFINE_HANDLE()
#define XR_FB_foveation_SPEC_VERSION
#define XR_FB_FOVEATION_EXTENSION_NAME
XrSwapchainCreateFoveationFlagsFB;

// Flag bits for XrSwapchainCreateFoveationFlagsFB
static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB =;
static const XrSwapchainCreateFoveationFlagsFB XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB =;

XrSwapchainStateFoveationFlagsFB;

// Flag bits for XrSwapchainStateFoveationFlagsFB

XrFoveationProfileCreateInfoFB;

// XrSwapchainCreateInfoFoveationFB extends XrSwapchainCreateInfo
XrSwapchainCreateInfoFoveationFB;

XrSwapchainStateFoveationFB;

PFN_xrCreateFoveationProfileFB;
PFN_xrDestroyFoveationProfileFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFoveationProfileFB(
    XrSession                                   session,
    const XrFoveationProfileCreateInfoFB*       createInfo,
    XrFoveationProfileFB*                       profile);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFoveationProfileFB(
    XrFoveationProfileFB                        profile);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_foveation_configuration is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_foveation_configuration
#define XR_FB_foveation_configuration_SPEC_VERSION
#define XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME

XrFoveationLevelFB;

XrFoveationDynamicFB;
// XrFoveationLevelProfileCreateInfoFB extends XrFoveationProfileCreateInfoFB
XrFoveationLevelProfileCreateInfoFB;



// XR_FB_keyboard_tracking is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_keyboard_tracking
#define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB
#define XR_FB_keyboard_tracking_SPEC_VERSION
#define XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME
XrKeyboardTrackingFlagsFB;

// Flag bits for XrKeyboardTrackingFlagsFB
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_EXISTS_BIT_FB =;
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_LOCAL_BIT_FB =;
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_REMOTE_BIT_FB =;
static const XrKeyboardTrackingFlagsFB XR_KEYBOARD_TRACKING_CONNECTED_BIT_FB =;

XrKeyboardTrackingQueryFlagsFB;

// Flag bits for XrKeyboardTrackingQueryFlagsFB
static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB =;
static const XrKeyboardTrackingQueryFlagsFB XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB =;

// XrSystemKeyboardTrackingPropertiesFB extends XrSystemProperties
XrSystemKeyboardTrackingPropertiesFB;

XrKeyboardTrackingDescriptionFB;

XrKeyboardSpaceCreateInfoFB;

XrKeyboardTrackingQueryFB;

PFN_xrQuerySystemTrackedKeyboardFB;
PFN_xrCreateKeyboardSpaceFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrQuerySystemTrackedKeyboardFB(
    XrSession                                   session,
    const XrKeyboardTrackingQueryFB*            queryInfo,
    XrKeyboardTrackingDescriptionFB*            keyboard);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateKeyboardSpaceFB(
    XrSession                                   session,
    const XrKeyboardSpaceCreateInfoFB*          createInfo,
    XrSpace*                                    keyboardSpace);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_triangle_mesh is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_triangle_mesh
XR_DEFINE_HANDLE()
#define XR_FB_triangle_mesh_SPEC_VERSION
#define XR_FB_TRIANGLE_MESH_EXTENSION_NAME

XrWindingOrderFB;
XrTriangleMeshFlagsFB;

// Flag bits for XrTriangleMeshFlagsFB
static const XrTriangleMeshFlagsFB XR_TRIANGLE_MESH_MUTABLE_BIT_FB =;

XrTriangleMeshCreateInfoFB;

PFN_xrCreateTriangleMeshFB;
PFN_xrDestroyTriangleMeshFB;
PFN_xrTriangleMeshGetVertexBufferFB;
PFN_xrTriangleMeshGetIndexBufferFB;
PFN_xrTriangleMeshBeginUpdateFB;
PFN_xrTriangleMeshEndUpdateFB;
PFN_xrTriangleMeshBeginVertexBufferUpdateFB;
PFN_xrTriangleMeshEndVertexBufferUpdateFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateTriangleMeshFB(
    XrSession                                   session,
    const XrTriangleMeshCreateInfoFB*           createInfo,
    XrTriangleMeshFB*                           outTriangleMesh);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyTriangleMeshFB(
    XrTriangleMeshFB                            mesh);

XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetVertexBufferFB(
    XrTriangleMeshFB                            mesh,
    XrVector3f**                                outVertexBuffer);

XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshGetIndexBufferFB(
    XrTriangleMeshFB                            mesh,
    uint32_t**                                  outIndexBuffer);

XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginUpdateFB(
    XrTriangleMeshFB                            mesh);

XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndUpdateFB(
    XrTriangleMeshFB                            mesh,
    uint32_t                                    vertexCount,
    uint32_t                                    triangleCount);

XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshBeginVertexBufferUpdateFB(
    XrTriangleMeshFB                            mesh,
    uint32_t*                                   outVertexCount);

XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndVertexBufferUpdateFB(
    XrTriangleMeshFB                            mesh);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_passthrough is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_passthrough
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
#define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB
#define XR_FB_passthrough_SPEC_VERSION
#define XR_FB_PASSTHROUGH_EXTENSION_NAME

XrPassthroughLayerPurposeFB;
XrPassthroughCapabilityFlagsFB;

// Flag bits for XrPassthroughCapabilityFlagsFB
static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_BIT_FB =;
static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_COLOR_BIT_FB =;
static const XrPassthroughCapabilityFlagsFB XR_PASSTHROUGH_CAPABILITY_LAYER_DEPTH_BIT_FB =;

XrPassthroughFlagsFB;

// Flag bits for XrPassthroughFlagsFB
static const XrPassthroughFlagsFB XR_PASSTHROUGH_IS_RUNNING_AT_CREATION_BIT_FB =;
static const XrPassthroughFlagsFB XR_PASSTHROUGH_LAYER_DEPTH_BIT_FB =;

XrPassthroughStateChangedFlagsFB;

// Flag bits for XrPassthroughStateChangedFlagsFB
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_REINIT_REQUIRED_BIT_FB =;
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_NON_RECOVERABLE_ERROR_BIT_FB =;
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RECOVERABLE_ERROR_BIT_FB =;
static const XrPassthroughStateChangedFlagsFB XR_PASSTHROUGH_STATE_CHANGED_RESTORED_ERROR_BIT_FB =;

// XrSystemPassthroughPropertiesFB extends XrSystemProperties
XrSystemPassthroughPropertiesFB;

// XrSystemPassthroughProperties2FB extends XrSystemProperties
XrSystemPassthroughProperties2FB;

XrPassthroughCreateInfoFB;

XrPassthroughLayerCreateInfoFB;

XrCompositionLayerPassthroughFB;

XrGeometryInstanceCreateInfoFB;

XrGeometryInstanceTransformFB;

XrPassthroughStyleFB;

// XrPassthroughColorMapMonoToRgbaFB extends XrPassthroughStyleFB
XrPassthroughColorMapMonoToRgbaFB;

// XrPassthroughColorMapMonoToMonoFB extends XrPassthroughStyleFB
XrPassthroughColorMapMonoToMonoFB;

// XrPassthroughBrightnessContrastSaturationFB extends XrPassthroughStyleFB
XrPassthroughBrightnessContrastSaturationFB;

XrEventDataPassthroughStateChangedFB;

PFN_xrCreatePassthroughFB;
PFN_xrDestroyPassthroughFB;
PFN_xrPassthroughStartFB;
PFN_xrPassthroughPauseFB;
PFN_xrCreatePassthroughLayerFB;
PFN_xrDestroyPassthroughLayerFB;
PFN_xrPassthroughLayerPauseFB;
PFN_xrPassthroughLayerResumeFB;
PFN_xrPassthroughLayerSetStyleFB;
PFN_xrCreateGeometryInstanceFB;
PFN_xrDestroyGeometryInstanceFB;
PFN_xrGeometryInstanceSetTransformFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughFB(
    XrSession                                   session,
    const XrPassthroughCreateInfoFB*            createInfo,
    XrPassthroughFB*                            outPassthrough);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughFB(
    XrPassthroughFB                             passthrough);

XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughStartFB(
    XrPassthroughFB                             passthrough);

XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughPauseFB(
    XrPassthroughFB                             passthrough);

XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughLayerFB(
    XrSession                                   session,
    const XrPassthroughLayerCreateInfoFB*       createInfo,
    XrPassthroughLayerFB*                       outLayer);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughLayerFB(
    XrPassthroughLayerFB                        layer);

XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerPauseFB(
    XrPassthroughLayerFB                        layer);

XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerResumeFB(
    XrPassthroughLayerFB                        layer);

XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetStyleFB(
    XrPassthroughLayerFB                        layer,
    const XrPassthroughStyleFB*                 style);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateGeometryInstanceFB(
    XrSession                                   session,
    const XrGeometryInstanceCreateInfoFB*       createInfo,
    XrGeometryInstanceFB*                       outGeometryInstance);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyGeometryInstanceFB(
    XrGeometryInstanceFB                        instance);

XRAPI_ATTR XrResult XRAPI_CALL xrGeometryInstanceSetTransformFB(
    XrGeometryInstanceFB                        instance,
    const XrGeometryInstanceTransformFB*        transformation);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_render_model is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_render_model

#define XR_NULL_RENDER_MODEL_KEY_FB

XR_DEFINE_ATOM()
#define XR_MAX_RENDER_MODEL_NAME_SIZE_FB
#define XR_FB_render_model_SPEC_VERSION
#define XR_FB_RENDER_MODEL_EXTENSION_NAME
XrRenderModelFlagsFB;

// Flag bits for XrRenderModelFlagsFB
static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB =;
static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB =;

XrRenderModelPathInfoFB;

XrRenderModelPropertiesFB;

XrRenderModelBufferFB;

XrRenderModelLoadInfoFB;

// XrSystemRenderModelPropertiesFB extends XrSystemProperties
XrSystemRenderModelPropertiesFB;

// XrRenderModelCapabilitiesRequestFB extends XrRenderModelPropertiesFB
XrRenderModelCapabilitiesRequestFB;

PFN_xrEnumerateRenderModelPathsFB;
PFN_xrGetRenderModelPropertiesFB;
PFN_xrLoadRenderModelFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateRenderModelPathsFB(
    XrSession                                   session,
    uint32_t                                    pathCapacityInput,
    uint32_t*                                   pathCountOutput,
    XrRenderModelPathInfoFB*                    paths);

XRAPI_ATTR XrResult XRAPI_CALL xrGetRenderModelPropertiesFB(
    XrSession                                   session,
    XrPath                                      path,
    XrRenderModelPropertiesFB*                  properties);

XRAPI_ATTR XrResult XRAPI_CALL xrLoadRenderModelFB(
    XrSession                                   session,
    const XrRenderModelLoadInfoFB*              info,
    XrRenderModelBufferFB*                      buffer);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_VARJO_foveated_rendering is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_foveated_rendering
#define XR_VARJO_foveated_rendering_SPEC_VERSION
#define XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME
// XrViewLocateFoveatedRenderingVARJO extends XrViewLocateInfo
XrViewLocateFoveatedRenderingVARJO;

// XrFoveatedViewConfigurationViewVARJO extends XrViewConfigurationView
XrFoveatedViewConfigurationViewVARJO;

// XrSystemFoveatedRenderingPropertiesVARJO extends XrSystemProperties
XrSystemFoveatedRenderingPropertiesVARJO;



// XR_VARJO_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_composition_layer_depth_test
#define XR_VARJO_composition_layer_depth_test_SPEC_VERSION
#define XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME
// XrCompositionLayerDepthTestVARJO extends XrCompositionLayerProjection
XrCompositionLayerDepthTestVARJO;



// XR_VARJO_environment_depth_estimation is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_environment_depth_estimation
#define XR_VARJO_environment_depth_estimation_SPEC_VERSION
#define XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME
PFN_xrSetEnvironmentDepthEstimationVARJO;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthEstimationVARJO(
    XrSession                                   session,
    XrBool32                                    enabled);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_VARJO_marker_tracking is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_marker_tracking
#define XR_VARJO_marker_tracking_SPEC_VERSION
#define XR_VARJO_MARKER_TRACKING_EXTENSION_NAME
// XrSystemMarkerTrackingPropertiesVARJO extends XrSystemProperties
XrSystemMarkerTrackingPropertiesVARJO;

XrEventDataMarkerTrackingUpdateVARJO;

XrMarkerSpaceCreateInfoVARJO;

PFN_xrSetMarkerTrackingVARJO;
PFN_xrSetMarkerTrackingTimeoutVARJO;
PFN_xrSetMarkerTrackingPredictionVARJO;
PFN_xrGetMarkerSizeVARJO;
PFN_xrCreateMarkerSpaceVARJO;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult  XRAPI_CALL xrSetMarkerTrackingVARJO(
    XrSession                                   session,
    XrBool32                                    enabled);

XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingTimeoutVARJO(
    XrSession                                   session,
    uint64_t                                    markerId,
    XrDuration                                  timeout);

XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingPredictionVARJO(
    XrSession                                   session,
    uint64_t                                    markerId,
    XrBool32                                    enable);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerSizeVARJO(
    XrSession                                   session,
    uint64_t                                    markerId,
    XrExtent2Df*                                size);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceVARJO(
    XrSession                                   session,
    const XrMarkerSpaceCreateInfoVARJO*         createInfo,
    XrSpace*                                    space);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_VARJO_view_offset is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_view_offset
#define XR_VARJO_view_offset_SPEC_VERSION
#define XR_VARJO_VIEW_OFFSET_EXTENSION_NAME
PFN_xrSetViewOffsetVARJO;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult  XRAPI_CALL xrSetViewOffsetVARJO(
    XrSession                                   session,
    float                                       offset);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_VARJO_xr4_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_VARJO_xr4_controller_interaction
#define XR_VARJO_xr4_controller_interaction_SPEC_VERSION
#define XR_VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_ML_ml2_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_ML_ml2_controller_interaction
#define XR_ML_ml2_controller_interaction_SPEC_VERSION
#define XR_ML_ML2_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_ML_frame_end_info is a preprocessor guard. Do not pass it to API calls.
#define XR_ML_frame_end_info
#define XR_ML_frame_end_info_SPEC_VERSION
#define XR_ML_FRAME_END_INFO_EXTENSION_NAME
XrFrameEndInfoFlagsML;

// Flag bits for XrFrameEndInfoFlagsML
static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_PROTECTED_BIT_ML =;
static const XrFrameEndInfoFlagsML XR_FRAME_END_INFO_VIGNETTE_BIT_ML =;

// XrFrameEndInfoML extends XrFrameEndInfo
XrFrameEndInfoML;



// XR_ML_global_dimmer is a preprocessor guard. Do not pass it to API calls.
#define XR_ML_global_dimmer
#define XR_ML_global_dimmer_SPEC_VERSION
#define XR_ML_GLOBAL_DIMMER_EXTENSION_NAME
XrGlobalDimmerFrameEndInfoFlagsML;

// Flag bits for XrGlobalDimmerFrameEndInfoFlagsML
static const XrGlobalDimmerFrameEndInfoFlagsML XR_GLOBAL_DIMMER_FRAME_END_INFO_ENABLED_BIT_ML =;

// XrGlobalDimmerFrameEndInfoML extends XrFrameEndInfo
XrGlobalDimmerFrameEndInfoML;



// XR_ML_marker_understanding is a preprocessor guard. Do not pass it to API calls.
#define XR_ML_marker_understanding
XR_DEFINE_ATOM()
XR_DEFINE_HANDLE()
#define XR_ML_marker_understanding_SPEC_VERSION
#define XR_ML_MARKER_UNDERSTANDING_EXTENSION_NAME

XrMarkerDetectorProfileML;

XrMarkerTypeML;

XrMarkerArucoDictML;

XrMarkerAprilTagDictML;

XrMarkerDetectorFpsML;

XrMarkerDetectorResolutionML;

XrMarkerDetectorCameraML;

XrMarkerDetectorCornerRefineMethodML;

XrMarkerDetectorFullAnalysisIntervalML;

XrMarkerDetectorStatusML;
// XrSystemMarkerUnderstandingPropertiesML extends XrSystemProperties
XrSystemMarkerUnderstandingPropertiesML;

XrMarkerDetectorCreateInfoML;

// XrMarkerDetectorArucoInfoML extends XrMarkerDetectorCreateInfoML
XrMarkerDetectorArucoInfoML;

// XrMarkerDetectorSizeInfoML extends XrMarkerDetectorCreateInfoML
XrMarkerDetectorSizeInfoML;

// XrMarkerDetectorAprilTagInfoML extends XrMarkerDetectorCreateInfoML
XrMarkerDetectorAprilTagInfoML;

// XrMarkerDetectorCustomProfileInfoML extends XrMarkerDetectorCreateInfoML
XrMarkerDetectorCustomProfileInfoML;

XrMarkerDetectorSnapshotInfoML;

XrMarkerDetectorStateML;

XrMarkerSpaceCreateInfoML;

PFN_xrCreateMarkerDetectorML;
PFN_xrDestroyMarkerDetectorML;
PFN_xrSnapshotMarkerDetectorML;
PFN_xrGetMarkerDetectorStateML;
PFN_xrGetMarkersML;
PFN_xrGetMarkerReprojectionErrorML;
PFN_xrGetMarkerLengthML;
PFN_xrGetMarkerNumberML;
PFN_xrGetMarkerStringML;
PFN_xrCreateMarkerSpaceML;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerDetectorML(
    XrSession                                   session,
    const XrMarkerDetectorCreateInfoML*         createInfo,
    XrMarkerDetectorML*                         markerDetector);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyMarkerDetectorML(
    XrMarkerDetectorML                          markerDetector);

XRAPI_ATTR XrResult XRAPI_CALL xrSnapshotMarkerDetectorML(
    XrMarkerDetectorML                          markerDetector,
    XrMarkerDetectorSnapshotInfoML*             snapshotInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerDetectorStateML(
    XrMarkerDetectorML                          markerDetector,
    XrMarkerDetectorStateML*                    state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkersML(
    XrMarkerDetectorML                          markerDetector,
    uint32_t                                    markerCapacityInput,
    uint32_t*                                   markerCountOutput,
    XrMarkerML*                                 markers);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerReprojectionErrorML(
    XrMarkerDetectorML                          markerDetector,
    XrMarkerML                                  marker,
    float*                                      reprojectionErrorMeters);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerLengthML(
    XrMarkerDetectorML                          markerDetector,
    XrMarkerML                                  marker,
    float*                                      meters);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerNumberML(
    XrMarkerDetectorML                          markerDetector,
    XrMarkerML                                  marker,
    uint64_t*                                   number);

XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerStringML(
    XrMarkerDetectorML                          markerDetector,
    XrMarkerML                                  marker,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceML(
    XrSession                                   session,
    const XrMarkerSpaceCreateInfoML*            createInfo,
    XrSpace*                                    space);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_ML_localization_map is a preprocessor guard. Do not pass it to API calls.
#define XR_ML_localization_map
XR_DEFINE_HANDLE()
#define XR_MAX_LOCALIZATION_MAP_NAME_LENGTH_ML
#define XR_ML_localization_map_SPEC_VERSION
#define XR_ML_LOCALIZATION_MAP_EXTENSION_NAME

XrLocalizationMapStateML;

XrLocalizationMapTypeML;

XrLocalizationMapConfidenceML;
XrLocalizationMapErrorFlagsML;

// Flag bits for XrLocalizationMapErrorFlagsML
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_UNKNOWN_BIT_ML =;
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_OUT_OF_MAPPED_AREA_BIT_ML =;
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_FEATURE_COUNT_BIT_ML =;
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_EXCESSIVE_MOTION_BIT_ML =;
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_LOW_LIGHT_BIT_ML =;
static const XrLocalizationMapErrorFlagsML XR_LOCALIZATION_MAP_ERROR_HEADPOSE_BIT_ML =;

XrLocalizationMapML;

XrEventDataLocalizationChangedML;

XrLocalizationMapQueryInfoBaseHeaderML;

XrMapLocalizationRequestInfoML;

XrLocalizationMapImportInfoML;

XrLocalizationEnableEventsInfoML;

PFN_xrEnableLocalizationEventsML;
PFN_xrQueryLocalizationMapsML;
PFN_xrRequestMapLocalizationML;
PFN_xrImportLocalizationMapML;
PFN_xrCreateExportedLocalizationMapML;
PFN_xrDestroyExportedLocalizationMapML;
PFN_xrGetExportedLocalizationMapDataML;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnableLocalizationEventsML(
    XrSession                                   session,
    const XrLocalizationEnableEventsInfoML *    info);

XRAPI_ATTR XrResult XRAPI_CALL xrQueryLocalizationMapsML(
    XrSession                                   session,
    const XrLocalizationMapQueryInfoBaseHeaderML* queryInfo,
    uint32_t                                    mapCapacityInput,
    uint32_t *                                  mapCountOutput,
    XrLocalizationMapML*                        maps);

XRAPI_ATTR XrResult XRAPI_CALL xrRequestMapLocalizationML(
    XrSession                                   session,
    const XrMapLocalizationRequestInfoML*       requestInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrImportLocalizationMapML(
    XrSession                                   session,
    const XrLocalizationMapImportInfoML*        importInfo,
    XrUuidEXT*                                  mapUuid);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateExportedLocalizationMapML(
    XrSession                                   session,
    const XrUuidEXT*                            mapUuid,
    XrExportedLocalizationMapML*                map);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyExportedLocalizationMapML(
    XrExportedLocalizationMapML                 map);

XRAPI_ATTR XrResult XRAPI_CALL xrGetExportedLocalizationMapDataML(
    XrExportedLocalizationMapML                 map,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_spatial_anchor_persistence is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_spatial_anchor_persistence
XR_DEFINE_HANDLE()
#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT
#define XR_MSFT_spatial_anchor_persistence_SPEC_VERSION
#define XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME
XrSpatialAnchorPersistenceNameMSFT;

XrSpatialAnchorPersistenceInfoMSFT;

XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT;

PFN_xrCreateSpatialAnchorStoreConnectionMSFT;
PFN_xrDestroySpatialAnchorStoreConnectionMSFT;
PFN_xrPersistSpatialAnchorMSFT;
PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT;
PFN_xrCreateSpatialAnchorFromPersistedNameMSFT;
PFN_xrUnpersistSpatialAnchorMSFT;
PFN_xrClearSpatialAnchorStoreMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorStoreConnectionMSFT(
    XrSession                                   session,
    XrSpatialAnchorStoreConnectionMSFT*         spatialAnchorStore);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorStoreConnectionMSFT(
    XrSpatialAnchorStoreConnectionMSFT          spatialAnchorStore);

XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorMSFT(
    XrSpatialAnchorStoreConnectionMSFT          spatialAnchorStore,
    const XrSpatialAnchorPersistenceInfoMSFT*   spatialAnchorPersistenceInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePersistedSpatialAnchorNamesMSFT(
    XrSpatialAnchorStoreConnectionMSFT          spatialAnchorStore,
    uint32_t                                    spatialAnchorNameCapacityInput,
    uint32_t*                                   spatialAnchorNameCountOutput,
    XrSpatialAnchorPersistenceNameMSFT*         spatialAnchorNames);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPersistedNameMSFT(
    XrSession                                   session,
    const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo,
    XrSpatialAnchorMSFT*                        spatialAnchor);

XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorMSFT(
    XrSpatialAnchorStoreConnectionMSFT          spatialAnchorStore,
    const XrSpatialAnchorPersistenceNameMSFT*   spatialAnchorPersistenceName);

XRAPI_ATTR XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT(
    XrSpatialAnchorStoreConnectionMSFT          spatialAnchorStore);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_MSFT_scene_marker is a preprocessor guard. Do not pass it to API calls.
#define XR_MSFT_scene_marker
#define XR_MSFT_scene_marker_SPEC_VERSION
#define XR_MSFT_SCENE_MARKER_EXTENSION_NAME

XrSceneMarkerTypeMSFT;

XrSceneMarkerQRCodeSymbolTypeMSFT;
XrSceneMarkerMSFT;

// XrSceneMarkersMSFT extends XrSceneComponentsMSFT
XrSceneMarkersMSFT;

// XrSceneMarkerTypeFilterMSFT extends XrSceneComponentsGetInfoMSFT
XrSceneMarkerTypeFilterMSFT;

XrSceneMarkerQRCodeMSFT;

// XrSceneMarkerQRCodesMSFT extends XrSceneComponentsMSFT
XrSceneMarkerQRCodesMSFT;

PFN_xrGetSceneMarkerRawDataMSFT;
PFN_xrGetSceneMarkerDecodedStringMSFT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerRawDataMSFT(
    XrSceneMSFT                                 scene,
    const XrUuidMSFT*                           markerId,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    uint8_t*                                    buffer);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerDecodedStringMSFT(
    XrSceneMSFT                                 scene,
    const XrUuidMSFT*                           markerId,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_ULTRALEAP_hand_tracking_forearm is a preprocessor guard. Do not pass it to API calls.
#define XR_ULTRALEAP_hand_tracking_forearm

#define XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP

#define XR_ULTRALEAP_hand_tracking_forearm_SPEC_VERSION
#define XR_ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME

XrHandForearmJointULTRALEAP;


// XR_FB_spatial_entity_query is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity_query
#define XR_FB_spatial_entity_query_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME

XrSpaceQueryActionFB;

XrSpaceStorageLocationFB;
XrSpaceQueryInfoBaseHeaderFB;

XrSpaceFilterInfoBaseHeaderFB;

XrSpaceQueryInfoFB;

// XrSpaceStorageLocationFilterInfoFB extends XrSpaceFilterInfoBaseHeaderFB
XrSpaceStorageLocationFilterInfoFB;

XrSpaceUuidFilterInfoFB;

XrSpaceComponentFilterInfoFB;

XrSpaceQueryResultFB;

XrSpaceQueryResultsFB;

XrEventDataSpaceQueryResultsAvailableFB;

XrEventDataSpaceQueryCompleteFB;

PFN_xrQuerySpacesFB;
PFN_xrRetrieveSpaceQueryResultsFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpacesFB(
    XrSession                                   session,
    const XrSpaceQueryInfoBaseHeaderFB*         info,
    XrAsyncRequestIdFB*                         requestId);

XRAPI_ATTR XrResult XRAPI_CALL xrRetrieveSpaceQueryResultsFB(
    XrSession                                   session,
    XrAsyncRequestIdFB                          requestId,
    XrSpaceQueryResultsFB*                      results);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_spatial_entity_storage is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity_storage
#define XR_FB_spatial_entity_storage_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME

XrSpacePersistenceModeFB;
XrSpaceSaveInfoFB;

XrSpaceEraseInfoFB;

XrEventDataSpaceSaveCompleteFB;

XrEventDataSpaceEraseCompleteFB;

PFN_xrSaveSpaceFB;
PFN_xrEraseSpaceFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceFB(
    XrSession                                   session,
    const XrSpaceSaveInfoFB*                    info,
    XrAsyncRequestIdFB*                         requestId);

XRAPI_ATTR XrResult XRAPI_CALL xrEraseSpaceFB(
    XrSession                                   session,
    const XrSpaceEraseInfoFB*                   info,
    XrAsyncRequestIdFB*                         requestId);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_touch_controller_pro is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_touch_controller_pro
#define XR_FB_touch_controller_pro_SPEC_VERSION
#define XR_FB_TOUCH_CONTROLLER_PRO_EXTENSION_NAME


// XR_FB_spatial_entity_sharing is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity_sharing
XR_DEFINE_HANDLE()
#define XR_FB_spatial_entity_sharing_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_SHARING_EXTENSION_NAME
XrSpaceShareInfoFB;

XrEventDataSpaceShareCompleteFB;

PFN_xrShareSpacesFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesFB(
    XrSession                                   session,
    const XrSpaceShareInfoFB*                   info,
    XrAsyncRequestIdFB*                         requestId);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_space_warp is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_space_warp
#define XR_FB_space_warp_SPEC_VERSION
#define XR_FB_SPACE_WARP_EXTENSION_NAME
XrCompositionLayerSpaceWarpInfoFlagsFB;

// Flag bits for XrCompositionLayerSpaceWarpInfoFlagsFB
static const XrCompositionLayerSpaceWarpInfoFlagsFB XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB =;

// XrCompositionLayerSpaceWarpInfoFB extends XrCompositionLayerProjectionView
XrCompositionLayerSpaceWarpInfoFB;

// XrSystemSpaceWarpPropertiesFB extends XrSystemProperties
XrSystemSpaceWarpPropertiesFB;



// XR_FB_haptic_amplitude_envelope is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_haptic_amplitude_envelope

#define XR_MAX_HAPTIC_AMPLITUDE_ENVELOPE_SAMPLES_FB

#define XR_FB_haptic_amplitude_envelope_SPEC_VERSION
#define XR_FB_HAPTIC_AMPLITUDE_ENVELOPE_EXTENSION_NAME
XrHapticAmplitudeEnvelopeVibrationFB;



// XR_FB_scene is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_scene
#define XR_FB_scene_SPEC_VERSION
#define XR_FB_SCENE_EXTENSION_NAME
XrSemanticLabelsSupportFlagsFB;

// Flag bits for XrSemanticLabelsSupportFlagsFB
static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_MULTIPLE_SEMANTIC_LABELS_BIT_FB =;
static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_DESK_TO_TABLE_MIGRATION_BIT_FB =;
static const XrSemanticLabelsSupportFlagsFB XR_SEMANTIC_LABELS_SUPPORT_ACCEPT_INVISIBLE_WALL_FACE_BIT_FB =;

XrExtent3DfFB;

XrOffset3DfFB;

XrRect3DfFB;

XrSemanticLabelsFB;

XrRoomLayoutFB;

XrBoundary2DFB;

XrSemanticLabelsSupportInfoFB;

PFN_xrGetSpaceBoundingBox2DFB;
PFN_xrGetSpaceBoundingBox3DFB;
PFN_xrGetSpaceSemanticLabelsFB;
PFN_xrGetSpaceBoundary2DFB;
PFN_xrGetSpaceRoomLayoutFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox2DFB(
    XrSession                                   session,
    XrSpace                                     space,
    XrRect2Df*                                  boundingBox2DOutput);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundingBox3DFB(
    XrSession                                   session,
    XrSpace                                     space,
    XrRect3DfFB*                                boundingBox3DOutput);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceSemanticLabelsFB(
    XrSession                                   session,
    XrSpace                                     space,
    XrSemanticLabelsFB*                         semanticLabelsOutput);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceBoundary2DFB(
    XrSession                                   session,
    XrSpace                                     space,
    XrBoundary2DFB*                             boundary2DOutput);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceRoomLayoutFB(
    XrSession                                   session,
    XrSpace                                     space,
    XrRoomLayoutFB*                             roomLayoutOutput);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_palm_pose is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_palm_pose
#define XR_EXT_palm_pose_SPEC_VERSION
#define XR_EXT_PALM_POSE_EXTENSION_NAME


// XR_ALMALENCE_digital_lens_control is a preprocessor guard. Do not pass it to API calls.
#define XR_ALMALENCE_digital_lens_control
#define XR_ALMALENCE_digital_lens_control_SPEC_VERSION
#define XR_ALMALENCE_DIGITAL_LENS_CONTROL_EXTENSION_NAME
XrDigitalLensControlFlagsALMALENCE;

// Flag bits for XrDigitalLensControlFlagsALMALENCE
static const XrDigitalLensControlFlagsALMALENCE XR_DIGITAL_LENS_CONTROL_PROCESSING_DISABLE_BIT_ALMALENCE =;

XrDigitalLensControlALMALENCE;

PFN_xrSetDigitalLensControlALMALENCE;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSetDigitalLensControlALMALENCE(
    XrSession                                   session,
    const XrDigitalLensControlALMALENCE*        digitalLensControl);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_scene_capture is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_scene_capture
#define XR_FB_scene_capture_SPEC_VERSION
#define XR_FB_SCENE_CAPTURE_EXTENSION_NAME
XrEventDataSceneCaptureCompleteFB;

XrSceneCaptureRequestInfoFB;

PFN_xrRequestSceneCaptureFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrRequestSceneCaptureFB(
    XrSession                                   session,
    const XrSceneCaptureRequestInfoFB*          info,
    XrAsyncRequestIdFB*                         requestId);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_spatial_entity_container is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity_container
#define XR_FB_spatial_entity_container_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME
XrSpaceContainerFB;

PFN_xrGetSpaceContainerFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceContainerFB(
    XrSession                                   session,
    XrSpace                                     space,
    XrSpaceContainerFB*                         spaceContainerOutput);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_foveation_eye_tracked is a preprocessor guard. Do not pass it to API calls.
#define XR_META_foveation_eye_tracked
#define XR_FOVEATION_CENTER_SIZE_META
#define XR_META_foveation_eye_tracked_SPEC_VERSION
#define XR_META_FOVEATION_EYE_TRACKED_EXTENSION_NAME
XrFoveationEyeTrackedProfileCreateFlagsMETA;

// Flag bits for XrFoveationEyeTrackedProfileCreateFlagsMETA

XrFoveationEyeTrackedStateFlagsMETA;

// Flag bits for XrFoveationEyeTrackedStateFlagsMETA
static const XrFoveationEyeTrackedStateFlagsMETA XR_FOVEATION_EYE_TRACKED_STATE_VALID_BIT_META =;

// XrFoveationEyeTrackedProfileCreateInfoMETA extends XrFoveationLevelProfileCreateInfoFB
XrFoveationEyeTrackedProfileCreateInfoMETA;

XrFoveationEyeTrackedStateMETA;

// XrSystemFoveationEyeTrackedPropertiesMETA extends XrSystemProperties
XrSystemFoveationEyeTrackedPropertiesMETA;

PFN_xrGetFoveationEyeTrackedStateMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetFoveationEyeTrackedStateMETA(
    XrSession                                   session,
    XrFoveationEyeTrackedStateMETA*             foveationState);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_face_tracking is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_face_tracking

#define XR_FACE_EXPRESSSION_SET_DEFAULT_FB

XR_DEFINE_HANDLE()
#define XR_FB_face_tracking_SPEC_VERSION
#define XR_FB_FACE_TRACKING_EXTENSION_NAME

XrFaceExpressionFB;

XrFaceExpressionSetFB;

XrFaceConfidenceFB;
// XrSystemFaceTrackingPropertiesFB extends XrSystemProperties
XrSystemFaceTrackingPropertiesFB;

XrFaceTrackerCreateInfoFB;

XrFaceExpressionInfoFB;

XrFaceExpressionStatusFB;

XrFaceExpressionWeightsFB;

PFN_xrCreateFaceTrackerFB;
PFN_xrDestroyFaceTrackerFB;
PFN_xrGetFaceExpressionWeightsFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTrackerFB(
    XrSession                                   session,
    const XrFaceTrackerCreateInfoFB*            createInfo,
    XrFaceTrackerFB*                            faceTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTrackerFB(
    XrFaceTrackerFB                             faceTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeightsFB(
    XrFaceTrackerFB                             faceTracker,
    const XrFaceExpressionInfoFB*               expressionInfo,
    XrFaceExpressionWeightsFB*                  expressionWeights);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_eye_tracking_social is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_eye_tracking_social
XR_DEFINE_HANDLE()
#define XR_FB_eye_tracking_social_SPEC_VERSION
#define XR_FB_EYE_TRACKING_SOCIAL_EXTENSION_NAME

XrEyePositionFB;
XrEyeGazeFB;

XrEyeTrackerCreateInfoFB;

XrEyeGazesInfoFB;

// XrSystemEyeTrackingPropertiesFB extends XrSystemProperties
XrSystemEyeTrackingPropertiesFB;

XrEyeGazesFB;

PFN_xrCreateEyeTrackerFB;
PFN_xrDestroyEyeTrackerFB;
PFN_xrGetEyeGazesFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateEyeTrackerFB(
    XrSession                                   session,
    const XrEyeTrackerCreateInfoFB*             createInfo,
    XrEyeTrackerFB*                             eyeTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEyeTrackerFB(
    XrEyeTrackerFB                              eyeTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrGetEyeGazesFB(
    XrEyeTrackerFB                              eyeTracker,
    const XrEyeGazesInfoFB*                     gazeInfo,
    XrEyeGazesFB*                               eyeGazes);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_passthrough_keyboard_hands is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_passthrough_keyboard_hands
#define XR_FB_passthrough_keyboard_hands_SPEC_VERSION
#define XR_FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME
XrPassthroughKeyboardHandsIntensityFB;

PFN_xrPassthroughLayerSetKeyboardHandsIntensityFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetKeyboardHandsIntensityFB(
    XrPassthroughLayerFB                        layer,
    const XrPassthroughKeyboardHandsIntensityFB* intensity);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_composition_layer_settings is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_composition_layer_settings
#define XR_FB_composition_layer_settings_SPEC_VERSION
#define XR_FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME
XrCompositionLayerSettingsFlagsFB;

// Flag bits for XrCompositionLayerSettingsFlagsFB
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB =;
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB =;
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB =;
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB =;
static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_AUTO_LAYER_FILTER_BIT_META =;

// XrCompositionLayerSettingsFB extends XrCompositionLayerBaseHeader
XrCompositionLayerSettingsFB;



// XR_FB_touch_controller_proximity is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_touch_controller_proximity
#define XR_FB_touch_controller_proximity_SPEC_VERSION
#define XR_FB_TOUCH_CONTROLLER_PROXIMITY_EXTENSION_NAME


// XR_FB_haptic_pcm is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_haptic_pcm

#define XR_MAX_HAPTIC_PCM_BUFFER_SIZE_FB

#define XR_FB_haptic_pcm_SPEC_VERSION
#define XR_FB_HAPTIC_PCM_EXTENSION_NAME
XrHapticPcmVibrationFB;

XrDevicePcmSampleRateStateFB;

XrDevicePcmSampleRateGetInfoFB;

PFN_xrGetDeviceSampleRateFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetDeviceSampleRateFB(
    XrSession                                   session,
    const XrHapticActionInfo*                   hapticActionInfo,
    XrDevicePcmSampleRateGetInfoFB*             deviceSampleRate);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_composition_layer_depth_test is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_composition_layer_depth_test
#define XR_FB_composition_layer_depth_test_SPEC_VERSION
#define XR_FB_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME

XrCompareOpFB;
// XrCompositionLayerDepthTestFB extends XrCompositionLayerBaseHeader
XrCompositionLayerDepthTestFB;



// XR_META_local_dimming is a preprocessor guard. Do not pass it to API calls.
#define XR_META_local_dimming
#define XR_META_local_dimming_SPEC_VERSION
#define XR_META_LOCAL_DIMMING_EXTENSION_NAME

XrLocalDimmingModeMETA;
// XrLocalDimmingFrameEndInfoMETA extends XrFrameEndInfo
XrLocalDimmingFrameEndInfoMETA;



// XR_META_passthrough_preferences is a preprocessor guard. Do not pass it to API calls.
#define XR_META_passthrough_preferences
#define XR_META_passthrough_preferences_SPEC_VERSION
#define XR_META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME
XrPassthroughPreferenceFlagsMETA;

// Flag bits for XrPassthroughPreferenceFlagsMETA
static const XrPassthroughPreferenceFlagsMETA XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META =;

XrPassthroughPreferencesMETA;

PFN_xrGetPassthroughPreferencesMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetPassthroughPreferencesMETA(
    XrSession                                   session,
    XrPassthroughPreferencesMETA*               preferences);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_virtual_keyboard is a preprocessor guard. Do not pass it to API calls.
#define XR_META_virtual_keyboard
XR_DEFINE_HANDLE()
#define XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META
#define XR_META_virtual_keyboard_SPEC_VERSION
#define XR_META_VIRTUAL_KEYBOARD_EXTENSION_NAME

XrVirtualKeyboardLocationTypeMETA;

XrVirtualKeyboardInputSourceMETA;
XrVirtualKeyboardInputStateFlagsMETA;

// Flag bits for XrVirtualKeyboardInputStateFlagsMETA
static const XrVirtualKeyboardInputStateFlagsMETA XR_VIRTUAL_KEYBOARD_INPUT_STATE_PRESSED_BIT_META =;

// XrSystemVirtualKeyboardPropertiesMETA extends XrSystemProperties
XrSystemVirtualKeyboardPropertiesMETA;

XrVirtualKeyboardCreateInfoMETA;

XrVirtualKeyboardSpaceCreateInfoMETA;

XrVirtualKeyboardLocationInfoMETA;

XrVirtualKeyboardModelVisibilitySetInfoMETA;

XrVirtualKeyboardAnimationStateMETA;

XrVirtualKeyboardModelAnimationStatesMETA;

XrVirtualKeyboardTextureDataMETA;

XrVirtualKeyboardInputInfoMETA;

XrVirtualKeyboardTextContextChangeInfoMETA;

XrEventDataVirtualKeyboardCommitTextMETA;

XrEventDataVirtualKeyboardBackspaceMETA;

XrEventDataVirtualKeyboardEnterMETA;

XrEventDataVirtualKeyboardShownMETA;

XrEventDataVirtualKeyboardHiddenMETA;

PFN_xrCreateVirtualKeyboardMETA;
PFN_xrDestroyVirtualKeyboardMETA;
PFN_xrCreateVirtualKeyboardSpaceMETA;
PFN_xrSuggestVirtualKeyboardLocationMETA;
PFN_xrGetVirtualKeyboardScaleMETA;
PFN_xrSetVirtualKeyboardModelVisibilityMETA;
PFN_xrGetVirtualKeyboardModelAnimationStatesMETA;
PFN_xrGetVirtualKeyboardDirtyTexturesMETA;
PFN_xrGetVirtualKeyboardTextureDataMETA;
PFN_xrSendVirtualKeyboardInputMETA;
PFN_xrChangeVirtualKeyboardTextContextMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardMETA(
    XrSession                                   session,
    const XrVirtualKeyboardCreateInfoMETA*      createInfo,
    XrVirtualKeyboardMETA*                      keyboard);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyVirtualKeyboardMETA(
    XrVirtualKeyboardMETA                       keyboard);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateVirtualKeyboardSpaceMETA(
    XrSession                                   session,
    XrVirtualKeyboardMETA                       keyboard,
    const XrVirtualKeyboardSpaceCreateInfoMETA* createInfo,
    XrSpace*                                    keyboardSpace);

XRAPI_ATTR XrResult XRAPI_CALL xrSuggestVirtualKeyboardLocationMETA(
    XrVirtualKeyboardMETA                       keyboard,
    const XrVirtualKeyboardLocationInfoMETA*    locationInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardScaleMETA(
    XrVirtualKeyboardMETA                       keyboard,
    float*                                      scale);

XRAPI_ATTR XrResult XRAPI_CALL xrSetVirtualKeyboardModelVisibilityMETA(
    XrVirtualKeyboardMETA                       keyboard,
    const XrVirtualKeyboardModelVisibilitySetInfoMETA* modelVisibility);

XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardModelAnimationStatesMETA(
    XrVirtualKeyboardMETA                       keyboard,
    XrVirtualKeyboardModelAnimationStatesMETA*  animationStates);

XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardDirtyTexturesMETA(
    XrVirtualKeyboardMETA                       keyboard,
    uint32_t                                    textureIdCapacityInput,
    uint32_t*                                   textureIdCountOutput,
    uint64_t*                                   textureIds);

XRAPI_ATTR XrResult XRAPI_CALL xrGetVirtualKeyboardTextureDataMETA(
    XrVirtualKeyboardMETA                       keyboard,
    uint64_t                                    textureId,
    XrVirtualKeyboardTextureDataMETA*           textureData);

XRAPI_ATTR XrResult XRAPI_CALL xrSendVirtualKeyboardInputMETA(
    XrVirtualKeyboardMETA                       keyboard,
    const XrVirtualKeyboardInputInfoMETA*       info,
    XrPosef*                                    interactorRootPose);

XRAPI_ATTR XrResult XRAPI_CALL xrChangeVirtualKeyboardTextContextMETA(
    XrVirtualKeyboardMETA                       keyboard,
    const XrVirtualKeyboardTextContextChangeInfoMETA* changeInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_OCULUS_external_camera is a preprocessor guard. Do not pass it to API calls.
#define XR_OCULUS_external_camera
#define XR_MAX_EXTERNAL_CAMERA_NAME_SIZE_OCULUS
#define XR_OCULUS_external_camera_SPEC_VERSION
#define XR_OCULUS_EXTERNAL_CAMERA_EXTENSION_NAME

XrExternalCameraAttachedToDeviceOCULUS;
XrExternalCameraStatusFlagsOCULUS;

// Flag bits for XrExternalCameraStatusFlagsOCULUS
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CONNECTED_BIT_OCULUS =;
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATING_BIT_OCULUS =;
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATION_FAILED_BIT_OCULUS =;
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CALIBRATED_BIT_OCULUS =;
static const XrExternalCameraStatusFlagsOCULUS XR_EXTERNAL_CAMERA_STATUS_CAPTURING_BIT_OCULUS =;

XrExternalCameraIntrinsicsOCULUS;

XrExternalCameraExtrinsicsOCULUS;

XrExternalCameraOCULUS;

PFN_xrEnumerateExternalCamerasOCULUS;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateExternalCamerasOCULUS(
    XrSession                                   session,
    uint32_t                                    cameraCapacityInput,
    uint32_t*                                   cameraCountOutput,
    XrExternalCameraOCULUS*                     cameras);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_performance_metrics is a preprocessor guard. Do not pass it to API calls.
#define XR_META_performance_metrics
#define XR_META_performance_metrics_SPEC_VERSION
#define XR_META_PERFORMANCE_METRICS_EXTENSION_NAME

XrPerformanceMetricsCounterUnitMETA;
XrPerformanceMetricsCounterFlagsMETA;

// Flag bits for XrPerformanceMetricsCounterFlagsMETA
static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META =;
static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META =;
static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META =;

XrPerformanceMetricsStateMETA;

XrPerformanceMetricsCounterMETA;

PFN_xrEnumeratePerformanceMetricsCounterPathsMETA;
PFN_xrSetPerformanceMetricsStateMETA;
PFN_xrGetPerformanceMetricsStateMETA;
PFN_xrQueryPerformanceMetricsCounterMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePerformanceMetricsCounterPathsMETA(
    XrInstance                                  instance,
    uint32_t                                    counterPathCapacityInput,
    uint32_t*                                   counterPathCountOutput,
    XrPath*                                     counterPaths);

XRAPI_ATTR XrResult XRAPI_CALL xrSetPerformanceMetricsStateMETA(
    XrSession                                   session,
    const XrPerformanceMetricsStateMETA*        state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetPerformanceMetricsStateMETA(
    XrSession                                   session,
    XrPerformanceMetricsStateMETA*              state);

XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterMETA(
    XrSession                                   session,
    XrPath                                      counterPath,
    XrPerformanceMetricsCounterMETA*            counter);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_spatial_entity_storage_batch is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity_storage_batch
#define XR_FB_spatial_entity_storage_batch_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_STORAGE_BATCH_EXTENSION_NAME
XrSpaceListSaveInfoFB;

XrEventDataSpaceListSaveCompleteFB;

PFN_xrSaveSpaceListFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceListFB(
    XrSession                                   session,
    const XrSpaceListSaveInfoFB*                info,
    XrAsyncRequestIdFB*                         requestId);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_FB_spatial_entity_user is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_spatial_entity_user
XrSpaceUserIdFB;
#define XR_FB_spatial_entity_user_SPEC_VERSION
#define XR_FB_SPATIAL_ENTITY_USER_EXTENSION_NAME
XrSpaceUserCreateInfoFB;

PFN_xrCreateSpaceUserFB;
PFN_xrGetSpaceUserIdFB;
PFN_xrDestroySpaceUserFB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpaceUserFB(
    XrSession                                   session,
    const XrSpaceUserCreateInfoFB*              info,
    XrSpaceUserFB*                              user);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUserIdFB(
    XrSpaceUserFB                               user,
    XrSpaceUserIdFB*                            userId);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpaceUserFB(
    XrSpaceUserFB                               user);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_headset_id is a preprocessor guard. Do not pass it to API calls.
#define XR_META_headset_id
#define XR_META_headset_id_SPEC_VERSION
#define XR_META_HEADSET_ID_EXTENSION_NAME
// XrSystemHeadsetIdPropertiesMETA extends XrSystemProperties
XrSystemHeadsetIdPropertiesMETA;



// XR_META_recommended_layer_resolution is a preprocessor guard. Do not pass it to API calls.
#define XR_META_recommended_layer_resolution
#define XR_META_recommended_layer_resolution_SPEC_VERSION
#define XR_META_RECOMMENDED_LAYER_RESOLUTION_EXTENSION_NAME
XrRecommendedLayerResolutionMETA;

XrRecommendedLayerResolutionGetInfoMETA;

PFN_xrGetRecommendedLayerResolutionMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetRecommendedLayerResolutionMETA(
    XrSession                                   session,
    const XrRecommendedLayerResolutionGetInfoMETA* info,
    XrRecommendedLayerResolutionMETA*           resolution);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_passthrough_color_lut is a preprocessor guard. Do not pass it to API calls.
#define XR_META_passthrough_color_lut
XR_DEFINE_HANDLE()
#define XR_META_passthrough_color_lut_SPEC_VERSION
#define XR_META_PASSTHROUGH_COLOR_LUT_EXTENSION_NAME

XrPassthroughColorLutChannelsMETA;
XrPassthroughColorLutDataMETA;

XrPassthroughColorLutCreateInfoMETA;

XrPassthroughColorLutUpdateInfoMETA;

// XrPassthroughColorMapLutMETA extends XrPassthroughStyleFB
XrPassthroughColorMapLutMETA;

// XrPassthroughColorMapInterpolatedLutMETA extends XrPassthroughStyleFB
XrPassthroughColorMapInterpolatedLutMETA;

// XrSystemPassthroughColorLutPropertiesMETA extends XrSystemProperties
XrSystemPassthroughColorLutPropertiesMETA;

PFN_xrCreatePassthroughColorLutMETA;
PFN_xrDestroyPassthroughColorLutMETA;
PFN_xrUpdatePassthroughColorLutMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughColorLutMETA(
    XrPassthroughFB                             passthrough,
    const XrPassthroughColorLutCreateInfoMETA*  createInfo,
    XrPassthroughColorLutMETA*                  colorLut);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughColorLutMETA(
    XrPassthroughColorLutMETA                   colorLut);

XRAPI_ATTR XrResult XRAPI_CALL xrUpdatePassthroughColorLutMETA(
    XrPassthroughColorLutMETA                   colorLut,
    const XrPassthroughColorLutUpdateInfoMETA*  updateInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_spatial_entity_mesh is a preprocessor guard. Do not pass it to API calls.
#define XR_META_spatial_entity_mesh
#define XR_META_spatial_entity_mesh_SPEC_VERSION
#define XR_META_SPATIAL_ENTITY_MESH_EXTENSION_NAME
XrSpaceTriangleMeshGetInfoMETA;

XrSpaceTriangleMeshMETA;

PFN_xrGetSpaceTriangleMeshMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceTriangleMeshMETA(
    XrSpace                                     space,
    const XrSpaceTriangleMeshGetInfoMETA*       getInfo,
    XrSpaceTriangleMeshMETA*                    triangleMeshOutput);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_automatic_layer_filter is a preprocessor guard. Do not pass it to API calls.
#define XR_META_automatic_layer_filter
#define XR_META_automatic_layer_filter_SPEC_VERSION
#define XR_META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME


// XR_META_touch_controller_plus is a preprocessor guard. Do not pass it to API calls.
#define XR_META_touch_controller_plus
#define XR_META_touch_controller_plus_SPEC_VERSION
#define XR_META_TOUCH_CONTROLLER_PLUS_EXTENSION_NAME


// XR_FB_face_tracking2 is a preprocessor guard. Do not pass it to API calls.
#define XR_FB_face_tracking2
XR_DEFINE_HANDLE()
#define XR_FB_face_tracking2_SPEC_VERSION
#define XR_FB_FACE_TRACKING2_EXTENSION_NAME

XrFaceExpression2FB;

XrFaceExpressionSet2FB;

XrFaceTrackingDataSource2FB;

XrFaceConfidence2FB;
// XrSystemFaceTrackingProperties2FB extends XrSystemProperties
XrSystemFaceTrackingProperties2FB;

XrFaceTrackerCreateInfo2FB;

XrFaceExpressionInfo2FB;

XrFaceExpressionWeights2FB;

PFN_xrCreateFaceTracker2FB;
PFN_xrDestroyFaceTracker2FB;
PFN_xrGetFaceExpressionWeights2FB;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateFaceTracker2FB(
    XrSession                                   session,
    const XrFaceTrackerCreateInfo2FB*           createInfo,
    XrFaceTracker2FB*                           faceTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyFaceTracker2FB(
    XrFaceTracker2FB                            faceTracker);

XRAPI_ATTR XrResult XRAPI_CALL xrGetFaceExpressionWeights2FB(
    XrFaceTracker2FB                            faceTracker,
    const XrFaceExpressionInfo2FB*              expressionInfo,
    XrFaceExpressionWeights2FB*                 expressionWeights);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_META_environment_depth is a preprocessor guard. Do not pass it to API calls.
#define XR_META_environment_depth
XR_DEFINE_HANDLE()
XR_DEFINE_HANDLE()
#define XR_META_environment_depth_SPEC_VERSION
#define XR_META_ENVIRONMENT_DEPTH_EXTENSION_NAME
XrEnvironmentDepthProviderCreateFlagsMETA;

// Flag bits for XrEnvironmentDepthProviderCreateFlagsMETA

XrEnvironmentDepthSwapchainCreateFlagsMETA;

// Flag bits for XrEnvironmentDepthSwapchainCreateFlagsMETA

XrEnvironmentDepthProviderCreateInfoMETA;

XrEnvironmentDepthSwapchainCreateInfoMETA;

XrEnvironmentDepthSwapchainStateMETA;

XrEnvironmentDepthImageAcquireInfoMETA;

XrEnvironmentDepthImageViewMETA;

XrEnvironmentDepthImageMETA;

XrEnvironmentDepthHandRemovalSetInfoMETA;

// XrSystemEnvironmentDepthPropertiesMETA extends XrSystemProperties
XrSystemEnvironmentDepthPropertiesMETA;

PFN_xrCreateEnvironmentDepthProviderMETA;
PFN_xrDestroyEnvironmentDepthProviderMETA;
PFN_xrStartEnvironmentDepthProviderMETA;
PFN_xrStopEnvironmentDepthProviderMETA;
PFN_xrCreateEnvironmentDepthSwapchainMETA;
PFN_xrDestroyEnvironmentDepthSwapchainMETA;
PFN_xrEnumerateEnvironmentDepthSwapchainImagesMETA;
PFN_xrGetEnvironmentDepthSwapchainStateMETA;
PFN_xrAcquireEnvironmentDepthImageMETA;
PFN_xrSetEnvironmentDepthHandRemovalMETA;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthProviderMETA(
    XrSession                                   session,
    const XrEnvironmentDepthProviderCreateInfoMETA* createInfo,
    XrEnvironmentDepthProviderMETA*             environmentDepthProvider);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthProviderMETA(
    XrEnvironmentDepthProviderMETA              environmentDepthProvider);

XRAPI_ATTR XrResult XRAPI_CALL xrStartEnvironmentDepthProviderMETA(
    XrEnvironmentDepthProviderMETA              environmentDepthProvider);

XRAPI_ATTR XrResult XRAPI_CALL xrStopEnvironmentDepthProviderMETA(
    XrEnvironmentDepthProviderMETA              environmentDepthProvider);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateEnvironmentDepthSwapchainMETA(
    XrEnvironmentDepthProviderMETA              environmentDepthProvider,
    const XrEnvironmentDepthSwapchainCreateInfoMETA* createInfo,
    XrEnvironmentDepthSwapchainMETA*            swapchain);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyEnvironmentDepthSwapchainMETA(
    XrEnvironmentDepthSwapchainMETA             swapchain);

XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentDepthSwapchainImagesMETA(
    XrEnvironmentDepthSwapchainMETA             swapchain,
    uint32_t                                    imageCapacityInput,
    uint32_t*                                   imageCountOutput,
    XrSwapchainImageBaseHeader*                 images);

XRAPI_ATTR XrResult XRAPI_CALL xrGetEnvironmentDepthSwapchainStateMETA(
    XrEnvironmentDepthSwapchainMETA             swapchain,
    XrEnvironmentDepthSwapchainStateMETA*       state);

XRAPI_ATTR XrResult XRAPI_CALL xrAcquireEnvironmentDepthImageMETA(
    XrEnvironmentDepthProviderMETA              environmentDepthProvider,
    const XrEnvironmentDepthImageAcquireInfoMETA* acquireInfo,
    XrEnvironmentDepthImageMETA*                environmentDepthImage);

XRAPI_ATTR XrResult XRAPI_CALL xrSetEnvironmentDepthHandRemovalMETA(
    XrEnvironmentDepthProviderMETA              environmentDepthProvider,
    const XrEnvironmentDepthHandRemovalSetInfoMETA* setInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_uuid is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_uuid
#define XR_EXT_uuid_SPEC_VERSION
#define XR_EXT_UUID_EXTENSION_NAME
#define XR_UUID_SIZE_EXT


// XR_EXT_hand_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_hand_interaction
#define XR_EXT_hand_interaction_SPEC_VERSION
#define XR_EXT_HAND_INTERACTION_EXTENSION_NAME


// XR_QCOM_tracking_optimization_settings is a preprocessor guard. Do not pass it to API calls.
#define XR_QCOM_tracking_optimization_settings
#define XR_QCOM_tracking_optimization_settings_SPEC_VERSION
#define XR_QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME

XrTrackingOptimizationSettingsDomainQCOM;

XrTrackingOptimizationSettingsHintQCOM;
PFN_xrSetTrackingOptimizationSettingsHintQCOM;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSetTrackingOptimizationSettingsHintQCOM(
    XrSession                                   session,
    XrTrackingOptimizationSettingsDomainQCOM    domain,
    XrTrackingOptimizationSettingsHintQCOM      hint);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HTC_passthrough is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_passthrough
XR_DEFINE_HANDLE()
#define XR_HTC_passthrough_SPEC_VERSION
#define XR_HTC_PASSTHROUGH_EXTENSION_NAME

XrPassthroughFormHTC;
XrPassthroughCreateInfoHTC;

XrPassthroughColorHTC;

// XrPassthroughMeshTransformInfoHTC extends XrCompositionLayerPassthroughHTC
XrPassthroughMeshTransformInfoHTC;

XrCompositionLayerPassthroughHTC;

PFN_xrCreatePassthroughHTC;
PFN_xrDestroyPassthroughHTC;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePassthroughHTC(
    XrSession                                   session,
    const XrPassthroughCreateInfoHTC*           createInfo,
    XrPassthroughHTC*                           passthrough);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPassthroughHTC(
    XrPassthroughHTC                            passthrough);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HTC_foveation is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_foveation
#define XR_HTC_foveation_SPEC_VERSION
#define XR_HTC_FOVEATION_EXTENSION_NAME

XrFoveationModeHTC;

XrFoveationLevelHTC;
XrFoveationDynamicFlagsHTC;

// Flag bits for XrFoveationDynamicFlagsHTC
static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC =;
static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC =;
static const XrFoveationDynamicFlagsHTC XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC =;

XrFoveationApplyInfoHTC;

XrFoveationConfigurationHTC;

// XrFoveationDynamicModeInfoHTC extends XrFoveationApplyInfoHTC
XrFoveationDynamicModeInfoHTC;

// XrFoveationCustomModeInfoHTC extends XrFoveationApplyInfoHTC
XrFoveationCustomModeInfoHTC;

PFN_xrApplyFoveationHTC;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrApplyFoveationHTC(
    XrSession                                   session,
    const XrFoveationApplyInfoHTC*              applyInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_HTC_anchor is a preprocessor guard. Do not pass it to API calls.
#define XR_HTC_anchor
#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC
#define XR_HTC_anchor_SPEC_VERSION
#define XR_HTC_ANCHOR_EXTENSION_NAME
// XrSystemAnchorPropertiesHTC extends XrSystemProperties
XrSystemAnchorPropertiesHTC;

XrSpatialAnchorNameHTC;

XrSpatialAnchorCreateInfoHTC;

PFN_xrCreateSpatialAnchorHTC;
PFN_xrGetSpatialAnchorNameHTC;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorHTC(
    XrSession                                   session,
    const XrSpatialAnchorCreateInfoHTC*         createInfo,
    XrSpace*                                    anchor);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialAnchorNameHTC(
    XrSpace                                     anchor,
    XrSpatialAnchorNameHTC*                     name);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_active_action_set_priority is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_active_action_set_priority
#define XR_EXT_active_action_set_priority_SPEC_VERSION
#define XR_EXT_ACTIVE_ACTION_SET_PRIORITY_EXTENSION_NAME
XrActiveActionSetPriorityEXT;

// XrActiveActionSetPrioritiesEXT extends XrActionsSyncInfo
XrActiveActionSetPrioritiesEXT;



// XR_MNDX_force_feedback_curl is a preprocessor guard. Do not pass it to API calls.
#define XR_MNDX_force_feedback_curl
#define XR_MNDX_force_feedback_curl_SPEC_VERSION
#define XR_MNDX_FORCE_FEEDBACK_CURL_EXTENSION_NAME

XrForceFeedbackCurlLocationMNDX;
// XrSystemForceFeedbackCurlPropertiesMNDX extends XrSystemProperties
XrSystemForceFeedbackCurlPropertiesMNDX;

XrForceFeedbackCurlApplyLocationMNDX;

XrForceFeedbackCurlApplyLocationsMNDX;

PFN_xrApplyForceFeedbackCurlMNDX;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrApplyForceFeedbackCurlMNDX(
    XrHandTrackerEXT                            handTracker,
    const XrForceFeedbackCurlApplyLocationsMNDX* locations);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_BD_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_BD_controller_interaction
#define XR_BD_controller_interaction_SPEC_VERSION
#define XR_BD_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_EXT_local_floor is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_local_floor
#define XR_EXT_local_floor_SPEC_VERSION
#define XR_EXT_LOCAL_FLOOR_EXTENSION_NAME


// XR_EXT_hand_tracking_data_source is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_hand_tracking_data_source
#define XR_EXT_hand_tracking_data_source_SPEC_VERSION
#define XR_EXT_HAND_TRACKING_DATA_SOURCE_EXTENSION_NAME

XrHandTrackingDataSourceEXT;
// XrHandTrackingDataSourceInfoEXT extends XrHandTrackerCreateInfoEXT
XrHandTrackingDataSourceInfoEXT;

// XrHandTrackingDataSourceStateEXT extends XrHandJointLocationsEXT
XrHandTrackingDataSourceStateEXT;



// XR_EXT_plane_detection is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_plane_detection
XR_DEFINE_HANDLE()
#define XR_EXT_plane_detection_SPEC_VERSION
#define XR_EXT_PLANE_DETECTION_EXTENSION_NAME

XrPlaneDetectorOrientationEXT;

XrPlaneDetectorSemanticTypeEXT;

XrPlaneDetectionStateEXT;
XrPlaneDetectionCapabilityFlagsEXT;

// Flag bits for XrPlaneDetectionCapabilityFlagsEXT
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_DETECTION_BIT_EXT =;
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_PLANE_HOLES_BIT_EXT =;
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_CEILING_BIT_EXT =;
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_FLOOR_BIT_EXT =;
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_WALL_BIT_EXT =;
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_SEMANTIC_PLATFORM_BIT_EXT =;
static const XrPlaneDetectionCapabilityFlagsEXT XR_PLANE_DETECTION_CAPABILITY_ORIENTATION_BIT_EXT =;

XrPlaneDetectorFlagsEXT;

// Flag bits for XrPlaneDetectorFlagsEXT
static const XrPlaneDetectorFlagsEXT XR_PLANE_DETECTOR_ENABLE_CONTOUR_BIT_EXT =;

// XrSystemPlaneDetectionPropertiesEXT extends XrSystemProperties
XrSystemPlaneDetectionPropertiesEXT;

XrPlaneDetectorCreateInfoEXT;

XrExtent3DfEXT;

XrPlaneDetectorBeginInfoEXT;

XrPlaneDetectorGetInfoEXT;

XrPlaneDetectorLocationEXT;

XrPlaneDetectorLocationsEXT;

XrPlaneDetectorPolygonBufferEXT;

PFN_xrCreatePlaneDetectorEXT;
PFN_xrDestroyPlaneDetectorEXT;
PFN_xrBeginPlaneDetectionEXT;
PFN_xrGetPlaneDetectionStateEXT;
PFN_xrGetPlaneDetectionsEXT;
PFN_xrGetPlanePolygonBufferEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrCreatePlaneDetectorEXT(
    XrSession                                   session,
    const XrPlaneDetectorCreateInfoEXT*         createInfo,
    XrPlaneDetectorEXT*                         planeDetector);

XRAPI_ATTR XrResult XRAPI_CALL xrDestroyPlaneDetectorEXT(
    XrPlaneDetectorEXT                          planeDetector);

XRAPI_ATTR XrResult XRAPI_CALL xrBeginPlaneDetectionEXT(
    XrPlaneDetectorEXT                          planeDetector,
    const XrPlaneDetectorBeginInfoEXT*          beginInfo);

XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionStateEXT(
    XrPlaneDetectorEXT                          planeDetector,
    XrPlaneDetectionStateEXT*                   state);

XRAPI_ATTR XrResult XRAPI_CALL xrGetPlaneDetectionsEXT(
    XrPlaneDetectorEXT                          planeDetector,
    const XrPlaneDetectorGetInfoEXT*            info,
    XrPlaneDetectorLocationsEXT*                locations);

XRAPI_ATTR XrResult XRAPI_CALL xrGetPlanePolygonBufferEXT(
    XrPlaneDetectorEXT                          planeDetector,
    uint64_t                                    planeId,
    uint32_t                                    polygonBufferIndex,
    XrPlaneDetectorPolygonBufferEXT*            polygonBuffer);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_OPPO_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_OPPO_controller_interaction
#define XR_OPPO_controller_interaction_SPEC_VERSION
#define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_EXT_future is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_future
XR_DEFINE_OPAQUE_64()
#define XR_EXT_future_SPEC_VERSION
#define XR_EXT_FUTURE_EXTENSION_NAME
#define XR_NULL_FUTURE_EXT

XrFutureStateEXT;
XrFutureCancelInfoEXT;

XrFuturePollInfoEXT;

XrFutureCompletionBaseHeaderEXT;

XrFutureCompletionEXT;

XrFuturePollResultEXT;

PFN_xrPollFutureEXT;
PFN_xrCancelFutureEXT;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrPollFutureEXT(
    XrInstance                                  instance,
    const XrFuturePollInfoEXT*                  pollInfo,
    XrFuturePollResultEXT*                      pollResult);

XRAPI_ATTR XrResult XRAPI_CALL xrCancelFutureEXT(
    XrInstance                                  instance,
    const XrFutureCancelInfoEXT*                cancelInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_EXT_user_presence is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_user_presence
#define XR_EXT_user_presence_SPEC_VERSION
#define XR_EXT_USER_PRESENCE_EXTENSION_NAME
XrEventDataUserPresenceChangedEXT;

// XrSystemUserPresencePropertiesEXT extends XrSystemProperties
XrSystemUserPresencePropertiesEXT;



// XR_ML_user_calibration is a preprocessor guard. Do not pass it to API calls.
#define XR_ML_user_calibration
#define XR_ML_user_calibration_SPEC_VERSION
#define XR_ML_USER_CALIBRATION_EXTENSION_NAME

XrHeadsetFitStatusML;

XrEyeCalibrationStatusML;
XrEventDataHeadsetFitChangedML;

XrEventDataEyeCalibrationChangedML;

XrUserCalibrationEnableEventsInfoML;

PFN_xrEnableUserCalibrationEventsML;

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnableUserCalibrationEventsML(
    XrInstance                                  instance,
    const XrUserCalibrationEnableEventsInfoML*  enableInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


// XR_YVR_controller_interaction is a preprocessor guard. Do not pass it to API calls.
#define XR_YVR_controller_interaction
#define XR_YVR_controller_interaction_SPEC_VERSION
#define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME


// XR_EXT_composition_layer_inverted_alpha is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_composition_layer_inverted_alpha
#define XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION
#define XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME

#ifdef __cplusplus
}
#endif

#endif