diff options
author | Paul Gofman <pgofman@codeweavers.com> | 2021-08-03 19:53:18 +0300 |
---|---|---|
committer | Andrew Eikum <aeikum@codeweavers.com> | 2021-08-12 18:54:19 +0300 |
commit | 9cf5ff5cec3100e1e5bc93c1baec6d7332c727a6 (patch) | |
tree | e3b744c7f401eeda5311896e24e4d4c2b9c6f9ef | |
parent | 95b1dc2b0b3b9f1edfed245528d15b3d5b917f65 (diff) |
wineopenxr: Update to 1.0.18 registry version.
-rwxr-xr-x | wineopenxr/make_openxr | 8 | ||||
-rw-r--r-- | wineopenxr/openxr.c | 127 | ||||
-rw-r--r-- | wineopenxr/openxr_private.h | 10 | ||||
-rw-r--r-- | wineopenxr/openxr_thunks.c | 41 | ||||
-rw-r--r-- | wineopenxr/openxr_thunks.h | 23 | ||||
-rw-r--r-- | wineopenxr/wineopenxr.h | 1093 | ||||
-rw-r--r-- | wineopenxr/xr.xml | 472 |
7 files changed, 1279 insertions, 495 deletions
diff --git a/wineopenxr/make_openxr b/wineopenxr/make_openxr index 6f73ce1a..86b1da92 100755 --- a/wineopenxr/make_openxr +++ b/wineopenxr/make_openxr @@ -183,6 +183,12 @@ FUNCTION_OVERRIDES = { "xrDestroySceneObserverMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, "xrCreateSceneMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, "xrDestroySceneMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + + "xrCreateSpatialAnchorFromPersistedNameMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrCreateSpatialAnchorStoreConnectionMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrDestroySpatialAnchorStoreConnectionMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrCreateFoveationProfileFB" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrDestroyFoveationProfileFB" : {"dispatch" : True, "driver" : True, "thunk" : False}, } STRUCT_CHAIN_CONVERSIONS = [ @@ -892,6 +898,8 @@ class XrHandle(object): native_handle_name = "scene_observer_msft" if self.name == "XrSceneMSFT": native_handle_name = "scene_msft" + if self.name == "XrSpatialAnchorStoreConnectionMSFT": + native_handle_name = "spatial_anchor_store_connection" if native_handle_name: return "((wine_{0} *){1})->{2}".format(self.name, name, native_handle_name) diff --git a/wineopenxr/openxr.c b/wineopenxr/openxr.c index 172b08d9..ea4a6dda 100644 --- a/wineopenxr/openxr.c +++ b/wineopenxr/openxr.c @@ -1045,6 +1045,36 @@ XrResult WINAPI wine_xrCreateSpatialAnchorMSFT(XrSession session, return XR_SUCCESS; } +XrResult WINAPI wine_xrCreateSpatialAnchorFromPersistedNameMSFT(XrSession session, + const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *create_info, + XrSpatialAnchorMSFT *anchor) +{ + wine_XrSession *wine_session = (wine_XrSession *)session; + wine_XrSpatialAnchorMSFT *wine_anchor; + XrResult res; + + WINE_TRACE("%p, %p, %p\n", session, create_info, anchor); + + wine_anchor = heap_alloc_zero(sizeof(*wine_anchor)); + + res = wine_session->wine_instance->funcs.p_xrCreateSpatialAnchorFromPersistedNameMSFT(wine_session->session, + create_info, &wine_anchor->spatial_anchor); + if(res != XR_SUCCESS){ + WINE_WARN("xrCreateSpatialAnchorFromPersistedNameMSFT failed: %d\n", res); + heap_free(wine_anchor); + return res; + } + + wine_anchor->wine_session = wine_session; + + *anchor = (XrSpatialAnchorMSFT)wine_anchor; + + WINE_TRACE("allocated wine spatialAnchor %p for native spatialAnchor %p\n", + wine_anchor, wine_anchor->spatial_anchor); + + return XR_SUCCESS; +} + XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor) { wine_XrSpatialAnchorMSFT *wine_anchor = (wine_XrSpatialAnchorMSFT *)anchor; @@ -1063,6 +1093,55 @@ XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor) return XR_SUCCESS; } +XrResult WINAPI wine_xrCreateSpatialAnchorStoreConnectionMSFT(XrSession session, XrSpatialAnchorStoreConnectionMSFT *anchor_store) +{ + wine_XrSpatialAnchorStoreConnectionMSFT *wine_anchor_store; + wine_XrSession *wine_session = (wine_XrSession *)session; + XrResult res; + + WINE_TRACE("%p, %p\n", session, anchor_store); + + wine_anchor_store = heap_alloc_zero(sizeof(*wine_anchor_store)); + + res = wine_session->wine_instance->funcs.p_xrCreateSpatialAnchorStoreConnectionMSFT(wine_session->session, + &wine_anchor_store->spatial_anchor_store_connection); + + if(res != XR_SUCCESS){ + WINE_WARN("xrCreateSpatialAnchorStoreConnectionMSFT failed: %d\n", res); + heap_free(wine_anchor_store); + return res; + } + + wine_anchor_store->wine_session = wine_session; + + *anchor_store = (XrSpatialAnchorStoreConnectionMSFT)wine_anchor_store; + + WINE_TRACE("allocated wine_anchor_store %p for native spatial_anchor_store_connection %p\n", + wine_anchor_store, wine_anchor_store->spatial_anchor_store_connection); + + return XR_SUCCESS; +} + +XrResult WINAPI wine_xrDestroySpatialAnchorStoreConnectionMSFT(XrSpatialAnchorStoreConnectionMSFT anchor_store) +{ + wine_XrSpatialAnchorStoreConnectionMSFT *wine_anchor_store + = (wine_XrSpatialAnchorStoreConnectionMSFT *)anchor_store; + XrResult res; + + WINE_TRACE("%p\n", anchor_store); + + res = wine_anchor_store->wine_session->wine_instance->funcs.p_xrDestroySpatialAnchorStoreConnectionMSFT + (wine_anchor_store->spatial_anchor_store_connection); + if(res != XR_SUCCESS){ + WINE_WARN("xrDestroySpatialAnchorStoreConnectionMSFT failed: %d\n", res); + return res; + } + + heap_free(wine_anchor_store); + + return XR_SUCCESS; +} + XrResult WINAPI wine_xrCreateSceneObserverMSFT(XrSession session, const XrSceneObserverCreateInfoMSFT *createInfo, XrSceneObserverMSFT *observer) { @@ -1157,6 +1236,54 @@ XrResult WINAPI wine_xrDestroySceneMSFT(XrSceneMSFT scene) return XR_SUCCESS; } +XrResult WINAPI wine_xrCreateFoveationProfileFB(XrSession session, const XrFoveationProfileCreateInfoFB *create_info, + XrFoveationProfileFB *profile) +{ + wine_XrSession *wine_session = (wine_XrSession *)session; + wine_XrFoveationProfileFB *wine_foveation_profile; + XrResult res; + + WINE_TRACE("%p, %p\n", session, profile); + + wine_foveation_profile = heap_alloc_zero(sizeof(*wine_foveation_profile)); + + res = wine_session->wine_instance->funcs.p_xrCreateFoveationProfileFB(wine_session->session, create_info, + &wine_foveation_profile->foveation_profile); + + if(res != XR_SUCCESS){ + WINE_WARN("xrCreateSpatialAnchorStoreConnectionMSFT failed: %d\n", res); + heap_free(wine_foveation_profile); + return res; + } + + wine_foveation_profile->wine_session = wine_session; + + *profile = (XrFoveationProfileFB)wine_foveation_profile; + + WINE_TRACE("allocated wine_foveation_profile %p for native foveation_profile %p.\n", + wine_foveation_profile, wine_foveation_profile->foveation_profile); + + return XR_SUCCESS; +} + +XrResult WINAPI wine_xrDestroyFoveationProfileFB(XrFoveationProfileFB profile) +{ + wine_XrFoveationProfileFB *wine_profile = (wine_XrFoveationProfileFB *)profile; + XrResult res; + + WINE_TRACE("%p\n", profile); + + res = wine_profile->wine_session->wine_instance->funcs.p_xrDestroyFoveationProfileFB(wine_profile->foveation_profile); + if(res != XR_SUCCESS){ + WINE_WARN("rDestroyFoveationProfileFB failed: %d\n", res); + return res; + } + + heap_free(wine_profile); + + return XR_SUCCESS; +} + XrResult WINAPI wine_xrNegotiateLoaderRuntimeInterface( const XrNegotiateLoaderInfo_win *loaderInfo, XrNegotiateRuntimeRequest_win *runtimeRequest) diff --git a/wineopenxr/openxr_private.h b/wineopenxr/openxr_private.h index 4a0c0f42..bdb2f232 100644 --- a/wineopenxr/openxr_private.h +++ b/wineopenxr/openxr_private.h @@ -50,6 +50,11 @@ typedef struct wine_XrSpatialAnchorMSFT { struct wine_XrSession *wine_session; } wine_XrSpatialAnchorMSFT; +typedef struct XrSpatialAnchorStoreConnectionMSFT { + XrSpatialAnchorStoreConnectionMSFT spatial_anchor_store_connection; + struct wine_XrSession *wine_session; +} wine_XrSpatialAnchorStoreConnectionMSFT; + typedef struct wine_XrSceneObserverMSFT { XrSceneObserverMSFT scene_observer_msft; struct wine_XrSession *wine_session; @@ -60,6 +65,11 @@ typedef struct wine_XrSceneMSFT { struct wine_XrSceneObserverMSFT *wine_scene_observer_msft; } wine_XrSceneMSFT; +typedef struct wine_XrFoveationProfileFB { + XrFoveationProfileFB foveation_profile; + struct wine_XrSession *wine_session; +} wine_XrFoveationProfileFB; + typedef struct wine_XrSwapchain{ XrSwapchain swapchain; struct wine_XrSession *wine_session; diff --git a/wineopenxr/openxr_thunks.c b/wineopenxr/openxr_thunks.c index 86d59f95..1c6506fe 100644 --- a/wineopenxr/openxr_thunks.c +++ b/wineopenxr/openxr_thunks.c @@ -107,6 +107,12 @@ XrResult WINAPI wine_xrBeginSession(XrSession session, const XrSessionBeginInfo return xrBeginSession(((wine_XrSession *)session)->session, beginInfo); } +static XrResult WINAPI wine_xrClearSpatialAnchorStoreMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore) +{ + WINE_TRACE("%p\n", spatialAnchorStore); + return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrClearSpatialAnchorStoreMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection); +} + static XrResult WINAPI wine_xrComputeNewSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT *computeInfo) { WINE_TRACE("%p, %p\n", sceneObserver, computeInfo); @@ -215,6 +221,12 @@ XrResult WINAPI wine_xrEnumerateEnvironmentBlendModes(XrInstance instance, XrSys return xrEnumerateEnvironmentBlendModes(((wine_XrInstance *)instance)->instance, systemId, viewConfigurationType, environmentBlendModeCapacityInput, environmentBlendModeCountOutput, environmentBlendModes); } +static XrResult WINAPI wine_xrEnumeratePersistedSpatialAnchorNamesMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNamesCapacityInput, uint32_t *spatialAnchorNamesCountOutput, XrSpatialAnchorPersistenceNameMSFT *persistedAnchorNames) +{ + WINE_TRACE("%p, %u, %p, %p\n", spatialAnchorStore, spatialAnchorNamesCapacityInput, spatialAnchorNamesCountOutput, persistedAnchorNames); + return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrEnumeratePersistedSpatialAnchorNamesMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection, spatialAnchorNamesCapacityInput, spatialAnchorNamesCountOutput, persistedAnchorNames); +} + XrResult WINAPI wine_xrEnumerateReferenceSpaces(XrSession session, uint32_t spaceCapacityInput, uint32_t *spaceCountOutput, XrReferenceSpaceType *spaces) { WINE_TRACE("%p, %u, %p, %p\n", session, spaceCapacityInput, spaceCountOutput, spaces); @@ -448,6 +460,12 @@ static XrResult WINAPI wine_xrPerfSettingsSetPerformanceLevelEXT(XrSession sessi return ((wine_XrSession *)session)->wine_instance->funcs.p_xrPerfSettingsSetPerformanceLevelEXT(((wine_XrSession *)session)->session, domain, level); } +static XrResult WINAPI wine_xrPersistSpatialAnchorMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT *spatialAnchorPersistenceInfo) +{ + WINE_TRACE("%p, %p\n", spatialAnchorStore, spatialAnchorPersistenceInfo); + return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrPersistSpatialAnchorMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection, spatialAnchorPersistenceInfo); +} + XrResult WINAPI wine_xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo *releaseInfo) { WINE_TRACE("%p, %p\n", swapchain, releaseInfo); @@ -550,6 +568,12 @@ static XrResult WINAPI wine_xrThermalGetTemperatureTrendEXT(XrSession session, X return ((wine_XrSession *)session)->wine_instance->funcs.p_xrThermalGetTemperatureTrendEXT(((wine_XrSession *)session)->session, domain, notificationLevel, tempHeadroom, tempSlope); } +static XrResult WINAPI wine_xrUnpersistSpatialAnchorMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT *spatialAnchorPersistenceName) +{ + WINE_TRACE("%p, %p\n", spatialAnchorStore, spatialAnchorPersistenceName); + return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrUnpersistSpatialAnchorMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection, spatialAnchorPersistenceName); +} + static XrResult WINAPI wine_xrUpdateHandMeshMSFT(XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT *updateInfo, XrHandMeshMSFT *handMesh) { WINE_TRACE("%p, %p, %p\n", handTracker, updateInfo, handMesh); @@ -581,12 +605,14 @@ static const struct openxr_func xr_dispatch_table[] = {"xrAttachSessionActionSets", &wine_xrAttachSessionActionSets}, {"xrBeginFrame", &wine_xrBeginFrame}, {"xrBeginSession", &wine_xrBeginSession}, + {"xrClearSpatialAnchorStoreMSFT", &wine_xrClearSpatialAnchorStoreMSFT}, {"xrComputeNewSceneMSFT", &wine_xrComputeNewSceneMSFT}, {"xrConvertTimeToWin32PerformanceCounterKHR", &wine_xrConvertTimeToWin32PerformanceCounterKHR}, {"xrConvertWin32PerformanceCounterToTimeKHR", &wine_xrConvertWin32PerformanceCounterToTimeKHR}, {"xrCreateAction", &wine_xrCreateAction}, {"xrCreateActionSet", &wine_xrCreateActionSet}, {"xrCreateActionSpace", &wine_xrCreateActionSpace}, + {"xrCreateFoveationProfileFB", &wine_xrCreateFoveationProfileFB}, {"xrCreateHandMeshSpaceMSFT", &wine_xrCreateHandMeshSpaceMSFT}, {"xrCreateHandTrackerEXT", &wine_xrCreateHandTrackerEXT}, {"xrCreateInstance", &wine_xrCreateInstance}, @@ -594,8 +620,10 @@ static const struct openxr_func xr_dispatch_table[] = {"xrCreateSceneMSFT", &wine_xrCreateSceneMSFT}, {"xrCreateSceneObserverMSFT", &wine_xrCreateSceneObserverMSFT}, {"xrCreateSession", &wine_xrCreateSession}, + {"xrCreateSpatialAnchorFromPersistedNameMSFT", &wine_xrCreateSpatialAnchorFromPersistedNameMSFT}, {"xrCreateSpatialAnchorMSFT", &wine_xrCreateSpatialAnchorMSFT}, {"xrCreateSpatialAnchorSpaceMSFT", &wine_xrCreateSpatialAnchorSpaceMSFT}, + {"xrCreateSpatialAnchorStoreConnectionMSFT", &wine_xrCreateSpatialAnchorStoreConnectionMSFT}, {"xrCreateSpatialGraphNodeSpaceMSFT", &wine_xrCreateSpatialGraphNodeSpaceMSFT}, {"xrCreateSwapchain", &wine_xrCreateSwapchain}, {"xrCreateVulkanDeviceKHR", &wine_xrCreateVulkanDeviceKHR}, @@ -603,6 +631,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrDeserializeSceneMSFT", &wine_xrDeserializeSceneMSFT}, {"xrDestroyAction", &wine_xrDestroyAction}, {"xrDestroyActionSet", &wine_xrDestroyActionSet}, + {"xrDestroyFoveationProfileFB", &wine_xrDestroyFoveationProfileFB}, {"xrDestroyHandTrackerEXT", &wine_xrDestroyHandTrackerEXT}, {"xrDestroyInstance", &wine_xrDestroyInstance}, {"xrDestroySceneMSFT", &wine_xrDestroySceneMSFT}, @@ -610,6 +639,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrDestroySession", &wine_xrDestroySession}, {"xrDestroySpace", &wine_xrDestroySpace}, {"xrDestroySpatialAnchorMSFT", &wine_xrDestroySpatialAnchorMSFT}, + {"xrDestroySpatialAnchorStoreConnectionMSFT", &wine_xrDestroySpatialAnchorStoreConnectionMSFT}, {"xrDestroySwapchain", &wine_xrDestroySwapchain}, {"xrEndFrame", &wine_xrEndFrame}, {"xrEndSession", &wine_xrEndSession}, @@ -619,6 +649,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrEnumerateDisplayRefreshRatesFB", &wine_xrEnumerateDisplayRefreshRatesFB}, {"xrEnumerateEnvironmentBlendModes", &wine_xrEnumerateEnvironmentBlendModes}, {"xrEnumerateInstanceExtensionProperties", &wine_xrEnumerateInstanceExtensionProperties}, + {"xrEnumeratePersistedSpatialAnchorNamesMSFT", &wine_xrEnumeratePersistedSpatialAnchorNamesMSFT}, {"xrEnumerateReferenceSpaces", &wine_xrEnumerateReferenceSpaces}, {"xrEnumerateReprojectionModesMSFT", &wine_xrEnumerateReprojectionModesMSFT}, {"xrEnumerateSceneComputeFeaturesMSFT", &wine_xrEnumerateSceneComputeFeaturesMSFT}, @@ -666,6 +697,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrLocateViews", &wine_xrLocateViews}, {"xrPathToString", &wine_xrPathToString}, {"xrPerfSettingsSetPerformanceLevelEXT", &wine_xrPerfSettingsSetPerformanceLevelEXT}, + {"xrPersistSpatialAnchorMSFT", &wine_xrPersistSpatialAnchorMSFT}, {"xrPollEvent", &wine_xrPollEvent}, {"xrReleaseSwapchainImage", &wine_xrReleaseSwapchainImage}, {"xrRequestDisplayRefreshRateFB", &wine_xrRequestDisplayRefreshRateFB}, @@ -684,6 +716,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrSuggestInteractionProfileBindings", &wine_xrSuggestInteractionProfileBindings}, {"xrSyncActions", &wine_xrSyncActions}, {"xrThermalGetTemperatureTrendEXT", &wine_xrThermalGetTemperatureTrendEXT}, + {"xrUnpersistSpatialAnchorMSFT", &wine_xrUnpersistSpatialAnchorMSFT}, {"xrUpdateHandMeshMSFT", &wine_xrUpdateHandMeshMSFT}, {"xrUpdateSwapchainFB", &wine_xrUpdateSwapchainFB}, {"xrWaitFrame", &wine_xrWaitFrame}, @@ -719,7 +752,13 @@ static const char * const xr_extensions[] = "XR_EXT_view_configuration_depth_range", "XR_EXT_win32_appcontainer_compatible", "XR_FB_color_space", + "XR_FB_composition_layer_alpha_blend", + "XR_FB_composition_layer_image_layout", + "XR_FB_composition_layer_secure_content", "XR_FB_display_refresh_rate", + "XR_FB_foveation", + "XR_FB_foveation_configuration", + "XR_FB_foveation_vulkan", "XR_FB_swapchain_update_state", "XR_FB_swapchain_update_state_vulkan", "XR_HTC_vive_cosmos_controller_interaction", @@ -734,6 +773,7 @@ static const char * const xr_extensions[] = "XR_KHR_composition_layer_equirect", "XR_KHR_composition_layer_equirect2", "XR_KHR_opengl_enable", + "XR_KHR_swapchain_usage_input_attachment_bit", "XR_KHR_visibility_mask", "XR_KHR_vulkan_enable", "XR_KHR_vulkan_enable2", @@ -751,6 +791,7 @@ static const char * const xr_extensions[] = "XR_MSFT_scene_understanding_serialization", "XR_MSFT_secondary_view_configuration", "XR_MSFT_spatial_anchor", + "XR_MSFT_spatial_anchor_persistence", "XR_MSFT_spatial_graph_bridge", "XR_MSFT_unbounded_reference_space", "XR_OCULUS_android_session_state_enable", diff --git a/wineopenxr/openxr_thunks.h b/wineopenxr/openxr_thunks.h index 30de03fb..eebcce96 100644 --- a/wineopenxr/openxr_thunks.h +++ b/wineopenxr/openxr_thunks.h @@ -27,21 +27,26 @@ /* Functions for which we have custom implementations outside of the thunks. */ XrResult WINAPI wine_xrConvertTimeToWin32PerformanceCounterKHR(XrInstance instance, XrTime time, LARGE_INTEGER *performanceCounter) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrConvertWin32PerformanceCounterToTimeKHR(XrInstance instance, const LARGE_INTEGER *performanceCounter, XrTime *time) DECLSPEC_HIDDEN; +XrResult WINAPI wine_xrCreateFoveationProfileFB(XrSession session, const XrFoveationProfileCreateInfoFB *createInfo, XrFoveationProfileFB *profile) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateHandTrackerEXT(XrSession session, const XrHandTrackerCreateInfoEXT *createInfo, XrHandTrackerEXT *handTracker) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateInstance(const XrInstanceCreateInfo *createInfo, XrInstance *instance); XrResult WINAPI wine_xrCreateSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrSceneCreateInfoMSFT *createInfo, XrSceneMSFT *scene) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateSceneObserverMSFT(XrSession session, const XrSceneObserverCreateInfoMSFT *createInfo, XrSceneObserverMSFT *sceneObserver) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateSession(XrInstance instance, const XrSessionCreateInfo *createInfo, XrSession *session); +XrResult WINAPI wine_xrCreateSpatialAnchorFromPersistedNameMSFT(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *spatialAnchorCreateInfo, XrSpatialAnchorMSFT *spatialAnchor) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateSpatialAnchorMSFT(XrSession session, const XrSpatialAnchorCreateInfoMSFT *createInfo, XrSpatialAnchorMSFT *anchor) DECLSPEC_HIDDEN; +XrResult WINAPI wine_xrCreateSpatialAnchorStoreConnectionMSFT(XrSession session, XrSpatialAnchorStoreConnectionMSFT *spatialAnchorStore) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateSwapchain(XrSession session, const XrSwapchainCreateInfo *createInfo, XrSwapchain *swapchain); XrResult WINAPI wine_xrCreateVulkanDeviceKHR(XrInstance instance, const XrVulkanDeviceCreateInfoKHR *createInfo, VkDevice *vulkanDevice, VkResult *vulkanResult) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateVulkanInstanceKHR(XrInstance instance, const XrVulkanInstanceCreateInfoKHR *createInfo, VkInstance *vulkanInstance, VkResult *vulkanResult) DECLSPEC_HIDDEN; +XrResult WINAPI wine_xrDestroyFoveationProfileFB(XrFoveationProfileFB profile) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrDestroyHandTrackerEXT(XrHandTrackerEXT handTracker) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrDestroyInstance(XrInstance instance); XrResult WINAPI wine_xrDestroySceneMSFT(XrSceneMSFT scene) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrDestroySceneObserverMSFT(XrSceneObserverMSFT sceneObserver) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrDestroySession(XrSession session); XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor) DECLSPEC_HIDDEN; +XrResult WINAPI wine_xrDestroySpatialAnchorStoreConnectionMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrDestroySwapchain(XrSwapchain swapchain); XrResult WINAPI wine_xrEndFrame(XrSession session, const XrFrameEndInfo *frameEndInfo); XrResult WINAPI wine_xrEnumerateInstanceExtensionProperties(const char *layerName, uint32_t propertyCapacityInput, uint32_t *propertyCountOutput, XrExtensionProperties *properties); @@ -79,18 +84,22 @@ struct openxr_instance_funcs XrResult (*p_xrAttachSessionActionSets)(XrSession, const XrSessionActionSetsAttachInfo *); XrResult (*p_xrBeginFrame)(XrSession, const XrFrameBeginInfo *); XrResult (*p_xrBeginSession)(XrSession, const XrSessionBeginInfo *); + XrResult (*p_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT); XrResult (*p_xrComputeNewSceneMSFT)(XrSceneObserverMSFT, const XrNewSceneComputeInfoMSFT *); XrResult (*p_xrCreateAction)(XrActionSet, const XrActionCreateInfo *, XrAction *); XrResult (*p_xrCreateActionSet)(XrInstance, const XrActionSetCreateInfo *, XrActionSet *); XrResult (*p_xrCreateActionSpace)(XrSession, const XrActionSpaceCreateInfo *, XrSpace *); + XrResult (*p_xrCreateFoveationProfileFB)(XrSession, const XrFoveationProfileCreateInfoFB *, XrFoveationProfileFB *); XrResult (*p_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT, const XrHandMeshSpaceCreateInfoMSFT *, XrSpace *); XrResult (*p_xrCreateHandTrackerEXT)(XrSession, const XrHandTrackerCreateInfoEXT *, XrHandTrackerEXT *); XrResult (*p_xrCreateReferenceSpace)(XrSession, const XrReferenceSpaceCreateInfo *, XrSpace *); XrResult (*p_xrCreateSceneMSFT)(XrSceneObserverMSFT, const XrSceneCreateInfoMSFT *, XrSceneMSFT *); XrResult (*p_xrCreateSceneObserverMSFT)(XrSession, const XrSceneObserverCreateInfoMSFT *, XrSceneObserverMSFT *); XrResult (*p_xrCreateSession)(XrInstance, const XrSessionCreateInfo *, XrSession *); + XrResult (*p_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *); XrResult (*p_xrCreateSpatialAnchorMSFT)(XrSession, const XrSpatialAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *); XrResult (*p_xrCreateSpatialAnchorSpaceMSFT)(XrSession, const XrSpatialAnchorSpaceCreateInfoMSFT *, XrSpace *); + XrResult (*p_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession, XrSpatialAnchorStoreConnectionMSFT *); XrResult (*p_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession, const XrSpatialGraphNodeSpaceCreateInfoMSFT *, XrSpace *); XrResult (*p_xrCreateSwapchain)(XrSession, const XrSwapchainCreateInfo *, XrSwapchain *); XrResult (*p_xrCreateVulkanDeviceKHR)(XrInstance, const XrVulkanDeviceCreateInfoKHR *, VkDevice *, VkResult *); @@ -98,12 +107,14 @@ struct openxr_instance_funcs XrResult (*p_xrDeserializeSceneMSFT)(XrSceneObserverMSFT, const XrSceneDeserializeInfoMSFT *); XrResult (*p_xrDestroyAction)(XrAction); XrResult (*p_xrDestroyActionSet)(XrActionSet); + XrResult (*p_xrDestroyFoveationProfileFB)(XrFoveationProfileFB); XrResult (*p_xrDestroyHandTrackerEXT)(XrHandTrackerEXT); XrResult (*p_xrDestroySceneMSFT)(XrSceneMSFT); XrResult (*p_xrDestroySceneObserverMSFT)(XrSceneObserverMSFT); XrResult (*p_xrDestroySession)(XrSession); XrResult (*p_xrDestroySpace)(XrSpace); XrResult (*p_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT); + XrResult (*p_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT); XrResult (*p_xrDestroySwapchain)(XrSwapchain); XrResult (*p_xrEndFrame)(XrSession, const XrFrameEndInfo *); XrResult (*p_xrEndSession)(XrSession); @@ -112,6 +123,7 @@ struct openxr_instance_funcs XrResult (*p_xrEnumerateColorSpacesFB)(XrSession, uint32_t, uint32_t *, XrColorSpaceFB *); XrResult (*p_xrEnumerateDisplayRefreshRatesFB)(XrSession, uint32_t, uint32_t *, float *); XrResult (*p_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *); + XrResult (*p_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT, uint32_t, uint32_t *, XrSpatialAnchorPersistenceNameMSFT *); XrResult (*p_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *); XrResult (*p_xrEnumerateReprojectionModesMSFT)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrReprojectionModeMSFT *); XrResult (*p_xrEnumerateSceneComputeFeaturesMSFT)(XrInstance, XrSystemId, uint32_t, uint32_t *, XrSceneComputeFeatureMSFT *); @@ -160,6 +172,7 @@ struct openxr_instance_funcs XrResult (*p_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *); XrResult (*p_xrPathToString)(XrInstance, XrPath, uint32_t, uint32_t *, char *); XrResult (*p_xrPerfSettingsSetPerformanceLevelEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsLevelEXT); + XrResult (*p_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT, const XrSpatialAnchorPersistenceInfoMSFT *); XrResult (*p_xrPollEvent)(XrInstance, XrEventDataBuffer *); XrResult (*p_xrReleaseSwapchainImage)(XrSwapchain, const XrSwapchainImageReleaseInfo *); XrResult (*p_xrRequestDisplayRefreshRateFB)(XrSession, float); @@ -178,6 +191,7 @@ struct openxr_instance_funcs XrResult (*p_xrSuggestInteractionProfileBindings)(XrInstance, const XrInteractionProfileSuggestedBinding *); XrResult (*p_xrSyncActions)(XrSession, const XrActionsSyncInfo *); XrResult (*p_xrThermalGetTemperatureTrendEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsNotificationLevelEXT *, float *, float *); + XrResult (*p_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT, const XrSpatialAnchorPersistenceNameMSFT *); XrResult (*p_xrUpdateHandMeshMSFT)(XrHandTrackerEXT, const XrHandMeshUpdateInfoMSFT *, XrHandMeshMSFT *); XrResult (*p_xrUpdateSwapchainFB)(XrSwapchain, const XrSwapchainStateBaseHeaderFB *); XrResult (*p_xrWaitFrame)(XrSession, const XrFrameWaitInfo *, XrFrameState *); @@ -190,18 +204,22 @@ struct openxr_instance_funcs USE_XR_FUNC(xrAttachSessionActionSets) \ USE_XR_FUNC(xrBeginFrame) \ USE_XR_FUNC(xrBeginSession) \ + USE_XR_FUNC(xrClearSpatialAnchorStoreMSFT) \ USE_XR_FUNC(xrComputeNewSceneMSFT) \ USE_XR_FUNC(xrCreateAction) \ USE_XR_FUNC(xrCreateActionSet) \ USE_XR_FUNC(xrCreateActionSpace) \ + USE_XR_FUNC(xrCreateFoveationProfileFB) \ USE_XR_FUNC(xrCreateHandMeshSpaceMSFT) \ USE_XR_FUNC(xrCreateHandTrackerEXT) \ USE_XR_FUNC(xrCreateReferenceSpace) \ USE_XR_FUNC(xrCreateSceneMSFT) \ USE_XR_FUNC(xrCreateSceneObserverMSFT) \ USE_XR_FUNC(xrCreateSession) \ + USE_XR_FUNC(xrCreateSpatialAnchorFromPersistedNameMSFT) \ USE_XR_FUNC(xrCreateSpatialAnchorMSFT) \ USE_XR_FUNC(xrCreateSpatialAnchorSpaceMSFT) \ + USE_XR_FUNC(xrCreateSpatialAnchorStoreConnectionMSFT) \ USE_XR_FUNC(xrCreateSpatialGraphNodeSpaceMSFT) \ USE_XR_FUNC(xrCreateSwapchain) \ USE_XR_FUNC(xrCreateVulkanDeviceKHR) \ @@ -209,12 +227,14 @@ struct openxr_instance_funcs USE_XR_FUNC(xrDeserializeSceneMSFT) \ USE_XR_FUNC(xrDestroyAction) \ USE_XR_FUNC(xrDestroyActionSet) \ + USE_XR_FUNC(xrDestroyFoveationProfileFB) \ USE_XR_FUNC(xrDestroyHandTrackerEXT) \ USE_XR_FUNC(xrDestroySceneMSFT) \ USE_XR_FUNC(xrDestroySceneObserverMSFT) \ USE_XR_FUNC(xrDestroySession) \ USE_XR_FUNC(xrDestroySpace) \ USE_XR_FUNC(xrDestroySpatialAnchorMSFT) \ + USE_XR_FUNC(xrDestroySpatialAnchorStoreConnectionMSFT) \ USE_XR_FUNC(xrDestroySwapchain) \ USE_XR_FUNC(xrEndFrame) \ USE_XR_FUNC(xrEndSession) \ @@ -223,6 +243,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrEnumerateColorSpacesFB) \ USE_XR_FUNC(xrEnumerateDisplayRefreshRatesFB) \ USE_XR_FUNC(xrEnumerateEnvironmentBlendModes) \ + USE_XR_FUNC(xrEnumeratePersistedSpatialAnchorNamesMSFT) \ USE_XR_FUNC(xrEnumerateReferenceSpaces) \ USE_XR_FUNC(xrEnumerateReprojectionModesMSFT) \ USE_XR_FUNC(xrEnumerateSceneComputeFeaturesMSFT) \ @@ -267,6 +288,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrLocateViews) \ USE_XR_FUNC(xrPathToString) \ USE_XR_FUNC(xrPerfSettingsSetPerformanceLevelEXT) \ + USE_XR_FUNC(xrPersistSpatialAnchorMSFT) \ USE_XR_FUNC(xrPollEvent) \ USE_XR_FUNC(xrReleaseSwapchainImage) \ USE_XR_FUNC(xrRequestDisplayRefreshRateFB) \ @@ -285,6 +307,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrSuggestInteractionProfileBindings) \ USE_XR_FUNC(xrSyncActions) \ USE_XR_FUNC(xrThermalGetTemperatureTrendEXT) \ + USE_XR_FUNC(xrUnpersistSpatialAnchorMSFT) \ USE_XR_FUNC(xrUpdateHandMeshMSFT) \ USE_XR_FUNC(xrUpdateSwapchainFB) \ USE_XR_FUNC(xrWaitFrame) \ diff --git a/wineopenxr/wineopenxr.h b/wineopenxr/wineopenxr.h index 8616a187..c49c065c 100644 --- a/wineopenxr/wineopenxr.h +++ b/wineopenxr/wineopenxr.h @@ -97,8 +97,12 @@ #define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views" #define XR_MSFT_unbounded_reference_space_SPEC_VERSION 1 #define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_MSFT_unbounded_reference_space" -#define XR_MSFT_spatial_anchor_SPEC_VERSION 1 +#define XR_MSFT_spatial_anchor_SPEC_VERSION 2 #define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_MSFT_spatial_anchor" +#define XR_FB_composition_layer_image_layout_SPEC_VERSION 1 +#define XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME "XR_FB_composition_layer_image_layout" +#define XR_FB_composition_layer_alpha_blend_SPEC_VERSION 2 +#define XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME "XR_FB_composition_layer_alpha_blend" #define XR_MND_headless_SPEC_VERSION 2 #define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless" #define XR_OCULUS_android_session_state_enable_SPEC_VERSION 1 @@ -134,6 +138,8 @@ #define XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HUAWEI_controller_interaction" #define XR_FB_swapchain_update_state_SPEC_VERSION 3 #define XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME "XR_FB_swapchain_update_state" +#define XR_FB_composition_layer_secure_content_SPEC_VERSION 1 +#define XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME "XR_FB_composition_layer_secure_content" #define XR_VALVE_analog_threshold_SPEC_VERSION 1 #define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME "XR_VALVE_analog_threshold" #define XR_EXT_hand_joints_motion_range_SPEC_VERSION 1 @@ -158,19 +164,30 @@ #define XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_cosmos_controller_interaction" #define XR_FB_color_space_SPEC_VERSION 1 #define XR_FB_COLOR_SPACE_EXTENSION_NAME "XR_FB_color_space" +#define XR_FB_foveation_SPEC_VERSION 1 +#define XR_FB_FOVEATION_EXTENSION_NAME "XR_FB_foveation" +#define XR_FB_foveation_configuration_SPEC_VERSION 1 +#define XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME "XR_FB_foveation_configuration" #define XR_KHR_binding_modification_SPEC_VERSION 1 #define XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME "XR_KHR_binding_modification" -#define XR_VARJO_foveated_rendering_SPEC_VERSION 1 +#define XR_VARJO_foveated_rendering_SPEC_VERSION 2 #define XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME "XR_VARJO_foveated_rendering" -#define XR_VARJO_composition_layer_depth_test_SPEC_VERSION 1 +#define XR_VARJO_composition_layer_depth_test_SPEC_VERSION 2 #define XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME "XR_VARJO_composition_layer_depth_test" #define XR_VARJO_environment_depth_estimation_SPEC_VERSION 1 #define XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME "XR_VARJO_environment_depth_estimation" +#define XR_MSFT_spatial_anchor_persistence_SPEC_VERSION 2 +#define XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME "XR_MSFT_spatial_anchor_persistence" +#define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT 256 #define XR_OCULUS_audio_device_guid_SPEC_VERSION 1 #define XR_OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME "XR_OCULUS_audio_device_guid" #define XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS 128 +#define XR_FB_foveation_vulkan_SPEC_VERSION 1 +#define XR_FB_FOVEATION_VULKAN_EXTENSION_NAME "XR_FB_foveation_vulkan" #define XR_FB_swapchain_update_state_vulkan_SPEC_VERSION 1 #define XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME "XR_FB_swapchain_update_state_vulkan" +#define XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION 3 +#define XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_KHR_swapchain_usage_input_attachment_bit" #define XR_MAKE_VERSION(major, minor, patch) \ @@ -183,7 +200,7 @@ #define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 17) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 18) #if !defined(XR_MAY_ALIAS) @@ -257,6 +274,7 @@ #define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0 XR_DEFINE_HANDLE(XrAction) XR_DEFINE_HANDLE(XrActionSet) +XR_DEFINE_HANDLE(XrFoveationProfileFB) XR_DEFINE_HANDLE(XrHandTrackerEXT) XR_DEFINE_HANDLE(XrInstance) XR_DEFINE_HANDLE(XrSceneMSFT) @@ -264,6 +282,7 @@ XR_DEFINE_HANDLE(XrSceneObserverMSFT) XR_DEFINE_HANDLE(XrSession) XR_DEFINE_HANDLE(XrSpace) XR_DEFINE_HANDLE(XrSpatialAnchorMSFT) +XR_DEFINE_HANDLE(XrSpatialAnchorStoreConnectionMSFT) XR_DEFINE_HANDLE(XrSwapchain) typedef uint32_t XrBool32; @@ -277,6 +296,8 @@ typedef uint64_t XrVersion; typedef XrFlags64 XrAndroidSurfaceSwapchainFlagsFB; typedef XrFlags64 XrCompositionLayerFlags; +typedef XrFlags64 XrCompositionLayerImageLayoutFlagsFB; +typedef XrFlags64 XrCompositionLayerSecureContentFlagsFB; typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT; typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT; typedef XrFlags64 XrInputSourceLocalizedNameFlags; @@ -287,6 +308,8 @@ typedef XrFlags64 XrSessionCreateFlags; typedef XrFlags64 XrSpaceLocationFlags; typedef XrFlags64 XrSpaceVelocityFlags; typedef XrFlags64 XrSwapchainCreateFlags; +typedef XrFlags64 XrSwapchainCreateFoveationFlagsFB; +typedef XrFlags64 XrSwapchainStateFoveationFlagsFB; typedef XrFlags64 XrSwapchainUsageFlags; typedef XrFlags64 XrViewStateFlags; typedef XrFlags64 XrVulkanDeviceCreateFlagsKHR; @@ -302,6 +325,17 @@ typedef enum XrActionType XR_ACTION_TYPE_MAX_ENUM = 0x7fffffff, } XrActionType; +typedef enum XrBlendFactorFB +{ + XR_BLEND_FACTOR_ZERO_FB = 0, + XR_BLEND_FACTOR_ONE_FB = 1, + XR_BLEND_FACTOR_SRC_ALPHA_FB = 2, + XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB = 3, + XR_BLEND_FACTOR_DST_ALPHA_FB = 4, + XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB = 5, + XR_BLEND_FACTOR_FB_MAX_ENUM = 0x7fffffff, +} XrBlendFactorFB; + typedef enum XrColorSpaceFB { XR_COLOR_SPACE_UNMANAGED_FB = 0, @@ -338,6 +372,22 @@ typedef enum XrFormFactor XR_FORM_FACTOR_MAX_ENUM = 0x7fffffff, } XrFormFactor; +typedef enum XrFoveationDynamicFB +{ + XR_FOVEATION_DYNAMIC_DISABLED_FB = 0, + XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB = 1, + XR_FOVEATION_DYNAMIC_FB_MAX_ENUM = 0x7fffffff, +} XrFoveationDynamicFB; + +typedef enum XrFoveationLevelFB +{ + XR_FOVEATION_LEVEL_NONE_FB = 0, + XR_FOVEATION_LEVEL_LOW_FB = 1, + XR_FOVEATION_LEVEL_MEDIUM_FB = 2, + XR_FOVEATION_LEVEL_HIGH_FB = 3, + XR_FOVEATION_LEVEL_FB_MAX_ENUM = 0x7fffffff, +} XrFoveationLevelFB; + typedef enum XrHandEXT { XR_HAND_LEFT_EXT = 1, @@ -418,6 +468,8 @@ typedef enum XrObjectType XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000, XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000, XR_OBJECT_TYPE_SCENE_MSFT = 1000097001, + XR_OBJECT_TYPE_FOVEATION_PROFILE_FB = 1000114000, + XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT = 1000142000, XR_OBJECT_TYPE_MAX_ENUM = 0x7fffffff, } XrObjectType; @@ -474,6 +526,8 @@ typedef enum XrReprojectionModeMSFT typedef enum XrResult { + XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002, + XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001, XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005, @@ -705,6 +759,8 @@ typedef enum XrStructureType XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR = 1000034000, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000, XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001, + XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB = 1000040000, + XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB = 1000041001, XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000, XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000, @@ -732,6 +788,7 @@ typedef enum XrStructureType XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT = 1000063000, XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT = 1000066000, XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001, + XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB = 1000072000, XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000, XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000, XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000, @@ -761,11 +818,18 @@ typedef enum XrStructureType XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT = 1000098001, XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB = 1000101000, XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB = 1000108000, + XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB = 1000114000, + XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB = 1000114001, + XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB = 1000114002, + XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB = 1000115000, XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000, XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO = 1000121000, XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO = 1000121001, XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO = 1000121002, XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO = 1000122000, + XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000, + XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001, + XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB = 1000160000, XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB = 1000163000, XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR, XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR, @@ -798,10 +862,13 @@ typedef struct XrActiveActionSet XrActiveActionSet; typedef struct XrApplicationInfo XrApplicationInfo; typedef struct XrBaseOutStructure XrBaseOutStructure; typedef struct XrBoundSourcesForActionEnumerateInfo XrBoundSourcesForActionEnumerateInfo; -typedef struct XrCompositionLayerBaseHeader XrCompositionLayerBaseHeader; +typedef struct XrCompositionLayerAlphaBlendFB XrCompositionLayerAlphaBlendFB; typedef struct XrCompositionLayerDepthTestVARJO XrCompositionLayerDepthTestVARJO; +typedef struct XrCompositionLayerImageLayoutFB XrCompositionLayerImageLayoutFB; typedef struct XrCompositionLayerReprojectionInfoMSFT XrCompositionLayerReprojectionInfoMSFT; -typedef struct XrControllerModelKeyStateMSFT XrControllerModelKeyStateMSFT; +typedef struct XrCompositionLayerSecureContentFB XrCompositionLayerSecureContentFB; +typedef struct XrControllerModelNodePropertiesMSFT XrControllerModelNodePropertiesMSFT; +typedef struct XrControllerModelPropertiesMSFT XrControllerModelPropertiesMSFT; typedef struct XrDebugUtilsLabelEXT XrDebugUtilsLabelEXT; typedef struct XrDeserializeSceneFragmentMSFT XrDeserializeSceneFragmentMSFT; typedef struct XrEventDataBuffer XrEventDataBuffer; @@ -812,6 +879,7 @@ typedef struct XrEventDataSessionStateChanged XrEventDataSessionStateChanged; typedef struct XrExtensionProperties XrExtensionProperties; typedef struct XrExtent2Di XrExtent2Di; typedef struct XrFoveatedViewConfigurationViewVARJO XrFoveatedViewConfigurationViewVARJO; +typedef struct XrFoveationProfileCreateInfoFB XrFoveationProfileCreateInfoFB; typedef struct XrFrameBeginInfo XrFrameBeginInfo; typedef struct XrFrameState XrFrameState; typedef struct XrGraphicsBindingD3D11KHR XrGraphicsBindingD3D11KHR; @@ -835,15 +903,18 @@ typedef struct XrSceneMeshesMSFT XrSceneMeshesMSFT; typedef struct XrSceneObjectTypesFilterInfoMSFT XrSceneObjectTypesFilterInfoMSFT; typedef struct XrSceneObserverCreateInfoMSFT XrSceneObserverCreateInfoMSFT; typedef struct XrScenePlaneAlignmentFilterInfoMSFT XrScenePlaneAlignmentFilterInfoMSFT; -typedef struct XrSecondaryViewConfigurationLayerInfoMSFT XrSecondaryViewConfigurationLayerInfoMSFT; -typedef struct XrSecondaryViewConfigurationStateMSFT XrSecondaryViewConfigurationStateMSFT; +typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT XrSecondaryViewConfigurationSessionBeginInfoMSFT; +typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; typedef struct XrSessionActionSetsAttachInfo XrSessionActionSetsAttachInfo; typedef struct XrSessionCreateInfo XrSessionCreateInfo; +typedef struct XrSpatialAnchorPersistenceNameMSFT XrSpatialAnchorPersistenceNameMSFT; typedef struct XrSwapchainCreateInfo XrSwapchainCreateInfo; -typedef struct XrSwapchainImageBaseHeader XrSwapchainImageBaseHeader; -typedef struct XrSwapchainImageD3D12KHR XrSwapchainImageD3D12KHR; +typedef struct XrSwapchainImageAcquireInfo XrSwapchainImageAcquireInfo; +typedef struct XrSwapchainImageD3D11KHR XrSwapchainImageD3D11KHR; +typedef struct XrSwapchainImageFoveationVulkanFB XrSwapchainImageFoveationVulkanFB; typedef struct XrSwapchainImageOpenGLKHR XrSwapchainImageOpenGLKHR; typedef struct XrSwapchainImageWaitInfo XrSwapchainImageWaitInfo; +typedef struct XrSwapchainStateFoveationFB XrSwapchainStateFoveationFB; typedef struct XrSystemColorSpacePropertiesFB XrSystemColorSpacePropertiesFB; typedef struct XrSystemFoveatedRenderingPropertiesVARJO XrSystemFoveatedRenderingPropertiesVARJO; typedef struct XrSystemGraphicsProperties XrSystemGraphicsProperties; @@ -864,19 +935,19 @@ typedef struct XrActionStateVector2f XrActionStateVector2f; typedef struct XrApiLayerProperties XrApiLayerProperties; typedef struct XrBindingModificationBaseHeaderKHR XrBindingModificationBaseHeaderKHR; typedef struct XrColor4f XrColor4f; -typedef struct XrCompositionLayerCubeKHR XrCompositionLayerCubeKHR; -typedef struct XrControllerModelNodePropertiesMSFT XrControllerModelNodePropertiesMSFT; -typedef struct XrControllerModelPropertiesMSFT XrControllerModelPropertiesMSFT; +typedef struct XrCompositionLayerColorScaleBiasKHR XrCompositionLayerColorScaleBiasKHR; +typedef struct XrControllerModelKeyStateMSFT XrControllerModelKeyStateMSFT; typedef struct XrDebugUtilsObjectNameInfoEXT XrDebugUtilsObjectNameInfoEXT; typedef struct XrEventDataDisplayRefreshRateChangedFB XrEventDataDisplayRefreshRateChangedFB; typedef struct XrEventDataMainSessionVisibilityChangedEXTX XrEventDataMainSessionVisibilityChangedEXTX; typedef struct XrEventDataVisibilityMaskChangedKHR XrEventDataVisibilityMaskChangedKHR; typedef struct XrEyeGazeSampleTimeEXT XrEyeGazeSampleTimeEXT; -typedef struct XrFrameEndInfo XrFrameEndInfo; -typedef struct XrGraphicsBindingD3D12KHR XrGraphicsBindingD3D12KHR; -typedef struct XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkanKHR; -typedef XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkan2KHR; -typedef struct XrGraphicsRequirementsOpenGLKHR XrGraphicsRequirementsOpenGLKHR; +typedef struct XrFovf XrFovf; +typedef struct XrFrameWaitInfo XrFrameWaitInfo; +typedef struct XrGraphicsBindingOpenGLWin32KHR XrGraphicsBindingOpenGLWin32KHR; +typedef struct XrGraphicsRequirementsD3D12KHR XrGraphicsRequirementsD3D12KHR; +typedef struct XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkanKHR; +typedef XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkan2KHR; typedef struct XrHandJointsMotionRangeInfoEXT XrHandJointsMotionRangeInfoEXT; typedef struct XrHandTrackerCreateInfoEXT XrHandTrackerCreateInfoEXT; typedef struct XrHolographicWindowAttachmentMSFT XrHolographicWindowAttachmentMSFT; @@ -887,96 +958,100 @@ typedef struct XrRect2Di XrRect2Di; typedef struct XrSceneDeserializeInfoMSFT XrSceneDeserializeInfoMSFT; typedef struct XrSceneMeshBuffersMSFT XrSceneMeshBuffersMSFT; typedef struct XrSceneObjectMSFT XrSceneObjectMSFT; -typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT XrSecondaryViewConfigurationFrameEndInfoMSFT; -typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT XrSecondaryViewConfigurationSessionBeginInfoMSFT; +typedef struct XrSecondaryViewConfigurationStateMSFT XrSecondaryViewConfigurationStateMSFT; typedef struct XrSessionBeginInfo XrSessionBeginInfo; -typedef struct XrSwapchainImageAcquireInfo XrSwapchainImageAcquireInfo; -typedef struct XrSwapchainImageVulkanKHR XrSwapchainImageVulkanKHR; -typedef XrSwapchainImageVulkanKHR XrSwapchainImageVulkan2KHR; -typedef struct XrSwapchainStateSamplerVulkanFB XrSwapchainStateSamplerVulkanFB; -typedef struct XrSystemEyeGazeInteractionPropertiesEXT XrSystemEyeGazeInteractionPropertiesEXT; -typedef struct XrSystemHandTrackingMeshPropertiesMSFT XrSystemHandTrackingMeshPropertiesMSFT; -typedef struct XrUuidMSFT XrUuidMSFT; +typedef struct XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT; +typedef struct XrSwapchainCreateInfoFoveationFB XrSwapchainCreateInfoFoveationFB; +typedef struct XrSwapchainImageD3D12KHR XrSwapchainImageD3D12KHR; +typedef struct XrSwapchainImageReleaseInfo XrSwapchainImageReleaseInfo; +typedef struct XrSwapchainStateBaseHeaderFB XrSwapchainStateBaseHeaderFB; +typedef struct XrSwapchainSubImage XrSwapchainSubImage; +typedef struct XrSystemGetInfo XrSystemGetInfo; +typedef struct XrSystemProperties XrSystemProperties; +typedef struct XrVector3f XrVector3f; typedef struct XrViewConfigurationProperties XrViewConfigurationProperties; typedef struct XrViewLocateInfo XrViewLocateInfo; typedef struct XrVulkanDeviceCreateInfoKHR XrVulkanDeviceCreateInfoKHR; typedef struct XrActionStatePose XrActionStatePose; typedef struct XrBaseInStructure XrBaseInStructure; -typedef struct XrCompositionLayerColorScaleBiasKHR XrCompositionLayerColorScaleBiasKHR; +typedef struct XrCompositionLayerBaseHeader XrCompositionLayerBaseHeader; +typedef struct XrCompositionLayerDepthInfoKHR XrCompositionLayerDepthInfoKHR; +typedef struct XrCompositionLayerReprojectionPlaneOverrideMSFT XrCompositionLayerReprojectionPlaneOverrideMSFT; typedef struct XrDebugUtilsMessengerCallbackDataEXT XrDebugUtilsMessengerCallbackDataEXT; typedef struct XrEventDataInstanceLossPending XrEventDataInstanceLossPending; typedef struct XrExtent2Df XrExtent2Df; -typedef struct XrFrameWaitInfo XrFrameWaitInfo; -typedef struct XrGraphicsRequirementsD3D12KHR XrGraphicsRequirementsD3D12KHR; -typedef struct XrHapticBaseHeader XrHapticBaseHeader; -typedef struct XrInteractionProfileAnalogThresholdVALVE XrInteractionProfileAnalogThresholdVALVE; -typedef struct XrRect2Df XrRect2Df; -typedef struct XrSceneComponentMSFT XrSceneComponentMSFT; -typedef struct XrSceneComponentsLocateInfoMSFT XrSceneComponentsLocateInfoMSFT; -typedef struct XrSceneMeshIndicesUint32MSFT XrSceneMeshIndicesUint32MSFT; -typedef struct XrSceneObjectsMSFT XrSceneObjectsMSFT; -typedef struct XrScenePlaneMSFT XrScenePlaneMSFT; -typedef struct XrSecondaryViewConfigurationFrameStateMSFT XrSecondaryViewConfigurationFrameStateMSFT; -typedef struct XrSerializedSceneFragmentDataGetInfoMSFT XrSerializedSceneFragmentDataGetInfoMSFT; -typedef struct XrSwapchainImageD3D11KHR XrSwapchainImageD3D11KHR; -typedef struct XrSwapchainStateBaseHeaderFB XrSwapchainStateBaseHeaderFB; -typedef struct XrSystemGetInfo XrSystemGetInfo; -typedef struct XrVector3f XrVector3f; -typedef struct XrVisibilityMaskKHR XrVisibilityMaskKHR; -typedef struct XrActionsSyncInfo XrActionsSyncInfo; -typedef struct XrCompositionLayerReprojectionPlaneOverrideMSFT XrCompositionLayerReprojectionPlaneOverrideMSFT; -typedef struct XrEventDataBaseHeader XrEventDataBaseHeader; -typedef struct XrFovf XrFovf; -typedef struct XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkanKHR; -typedef XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkan2KHR; +typedef struct XrFrameEndInfo XrFrameEndInfo; +typedef struct XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkanKHR; +typedef XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkan2KHR; typedef struct XrHandJointVelocityEXT XrHandJointVelocityEXT; typedef struct XrHandMeshVertexMSFT XrHandMeshVertexMSFT; +typedef struct XrInstanceCreateInfo XrInstanceCreateInfo; typedef struct XrPosef XrPosef; +typedef struct XrReferenceSpaceCreateInfo XrReferenceSpaceCreateInfo; typedef struct XrSceneComponentLocationMSFT XrSceneComponentLocationMSFT; -typedef struct XrSceneComponentParentFilterInfoMSFT XrSceneComponentParentFilterInfoMSFT; typedef struct XrSceneFrustumBoundMSFT XrSceneFrustumBoundMSFT; +typedef struct XrSceneMeshVertexBufferMSFT XrSceneMeshVertexBufferMSFT; typedef struct XrSceneOrientedBoxBoundMSFT XrSceneOrientedBoxBoundMSFT; typedef struct XrSceneSphereBoundMSFT XrSceneSphereBoundMSFT; +typedef struct XrSecondaryViewConfigurationFrameStateMSFT XrSecondaryViewConfigurationFrameStateMSFT; typedef struct XrSessionCreateInfoOverlayEXTX XrSessionCreateInfoOverlayEXTX; typedef struct XrSpaceVelocity XrSpaceVelocity; -typedef struct XrSpatialAnchorSpaceCreateInfoMSFT XrSpatialAnchorSpaceCreateInfoMSFT; -typedef struct XrSwapchainImageReleaseInfo XrSwapchainImageReleaseInfo; -typedef struct XrSystemProperties XrSystemProperties; -typedef struct XrViewConfigurationViewFovEPIC XrViewConfigurationViewFovEPIC; +typedef struct XrSpatialAnchorPersistenceInfoMSFT XrSpatialAnchorPersistenceInfoMSFT; +typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT XrSpatialGraphNodeSpaceCreateInfoMSFT; +typedef struct XrSwapchainStateSamplerVulkanFB XrSwapchainStateSamplerVulkanFB; +typedef struct XrSystemHandTrackingMeshPropertiesMSFT XrSystemHandTrackingMeshPropertiesMSFT; +typedef struct XrView XrView; +typedef struct XrVisibilityMaskKHR XrVisibilityMaskKHR; typedef struct XrActionSpaceCreateInfo XrActionSpaceCreateInfo; +typedef struct XrBindingModificationsKHR XrBindingModificationsKHR; +typedef struct XrCompositionLayerCylinderKHR XrCompositionLayerCylinderKHR; +typedef struct XrCompositionLayerEquirectKHR XrCompositionLayerEquirectKHR; +typedef struct XrCompositionLayerProjectionView XrCompositionLayerProjectionView; typedef struct XrControllerModelNodeStateMSFT XrControllerModelNodeStateMSFT; -typedef struct XrEventDataReferenceSpaceChangePending XrEventDataReferenceSpaceChangePending; -typedef struct XrHandJointLocationEXT XrHandJointLocationEXT; +typedef struct XrEventDataBaseHeader XrEventDataBaseHeader; +typedef struct XrFoveationLevelProfileCreateInfoFB XrFoveationLevelProfileCreateInfoFB; +typedef struct XrGraphicsRequirementsOpenGLKHR XrGraphicsRequirementsOpenGLKHR; typedef struct XrHandJointVelocitiesEXT XrHandJointVelocitiesEXT; typedef struct XrHandMeshSpaceCreateInfoMSFT XrHandMeshSpaceCreateInfoMSFT; -typedef struct XrInstanceCreateInfo XrInstanceCreateInfo; -typedef struct XrReferenceSpaceCreateInfo XrReferenceSpaceCreateInfo; +typedef struct XrHapticBaseHeader XrHapticBaseHeader; +typedef struct XrRect2Df XrRect2Df; typedef struct XrSceneComponentLocationsMSFT XrSceneComponentLocationsMSFT; -typedef struct XrSceneMeshVertexBufferMSFT XrSceneMeshVertexBufferMSFT; -typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; -typedef struct XrSpatialAnchorCreateInfoMSFT XrSpatialAnchorCreateInfoMSFT; -typedef struct XrSwapchainSubImage XrSwapchainSubImage; +typedef struct XrSceneMeshIndicesUint32MSFT XrSceneMeshIndicesUint32MSFT; +typedef struct XrScenePlaneMSFT XrScenePlaneMSFT; +typedef struct XrSecondaryViewConfigurationLayerInfoMSFT XrSecondaryViewConfigurationLayerInfoMSFT; +typedef struct XrSpaceLocation XrSpaceLocation; +typedef struct XrSpatialAnchorSpaceCreateInfoMSFT XrSpatialAnchorSpaceCreateInfoMSFT; +typedef struct XrSwapchainImageVulkanKHR XrSwapchainImageVulkanKHR; +typedef XrSwapchainImageVulkanKHR XrSwapchainImageVulkan2KHR; +typedef struct XrUuidMSFT XrUuidMSFT; typedef struct XrVulkanInstanceCreateInfoKHR XrVulkanInstanceCreateInfoKHR; -typedef struct XrBindingModificationsKHR XrBindingModificationsKHR; -typedef struct XrCompositionLayerDepthInfoKHR XrCompositionLayerDepthInfoKHR; -typedef struct XrCompositionLayerEquirectKHR XrCompositionLayerEquirectKHR; -typedef struct XrCompositionLayerProjectionView XrCompositionLayerProjectionView; -typedef struct XrControllerModelStateMSFT XrControllerModelStateMSFT; -typedef struct XrHandJointLocationsEXT XrHandJointLocationsEXT; +typedef struct XrActionsSyncInfo XrActionsSyncInfo; +typedef struct XrCompositionLayerEquirect2KHR XrCompositionLayerEquirect2KHR; +typedef struct XrCompositionLayerQuad XrCompositionLayerQuad; +typedef struct XrEventDataReferenceSpaceChangePending XrEventDataReferenceSpaceChangePending; +typedef struct XrHandJointLocationEXT XrHandJointLocationEXT; typedef struct XrHandMeshVertexBufferMSFT XrHandMeshVertexBufferMSFT; typedef struct XrSceneBoundsMSFT XrSceneBoundsMSFT; -typedef struct XrScenePlanesMSFT XrScenePlanesMSFT; -typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT XrSpatialGraphNodeSpaceCreateInfoMSFT; -typedef struct XrCompositionLayerCylinderKHR XrCompositionLayerCylinderKHR; +typedef struct XrSceneComponentParentFilterInfoMSFT XrSceneComponentParentFilterInfoMSFT; +typedef struct XrSceneObjectsMSFT XrSceneObjectsMSFT; +typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT XrSecondaryViewConfigurationFrameEndInfoMSFT; +typedef struct XrSpatialAnchorCreateInfoMSFT XrSpatialAnchorCreateInfoMSFT; +typedef struct XrSystemEyeGazeInteractionPropertiesEXT XrSystemEyeGazeInteractionPropertiesEXT; +typedef struct XrCompositionLayerCubeKHR XrCompositionLayerCubeKHR; +typedef struct XrControllerModelStateMSFT XrControllerModelStateMSFT; +typedef struct XrHandJointLocationsEXT XrHandJointLocationsEXT; +typedef struct XrInteractionProfileAnalogThresholdVALVE XrInteractionProfileAnalogThresholdVALVE; +typedef struct XrSceneComponentMSFT XrSceneComponentMSFT; +typedef struct XrSceneComponentsMSFT XrSceneComponentsMSFT; +typedef struct XrSerializedSceneFragmentDataGetInfoMSFT XrSerializedSceneFragmentDataGetInfoMSFT; +typedef struct XrViewConfigurationViewFovEPIC XrViewConfigurationViewFovEPIC; typedef struct XrCompositionLayerProjection XrCompositionLayerProjection; -typedef struct XrGraphicsBindingOpenGLWin32KHR XrGraphicsBindingOpenGLWin32KHR; -typedef struct XrNewSceneComputeInfoMSFT XrNewSceneComputeInfoMSFT; -typedef struct XrSpaceLocation XrSpaceLocation; -typedef struct XrCompositionLayerEquirect2KHR XrCompositionLayerEquirect2KHR; typedef struct XrHandMeshMSFT XrHandMeshMSFT; -typedef struct XrView XrView; -typedef struct XrCompositionLayerQuad XrCompositionLayerQuad; -typedef struct XrSceneComponentsMSFT XrSceneComponentsMSFT; +typedef struct XrSceneComponentsLocateInfoMSFT XrSceneComponentsLocateInfoMSFT; +typedef struct XrSwapchainImageBaseHeader XrSwapchainImageBaseHeader; +typedef struct XrGraphicsBindingD3D12KHR XrGraphicsBindingD3D12KHR; +typedef struct XrScenePlanesMSFT XrScenePlanesMSFT; +typedef struct XrNewSceneComputeInfoMSFT XrNewSceneComputeInfoMSFT; typedef XrBool32 (XRAPI_PTR * PFN_xrDebugUtilsMessengerCallbackEXT)( XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, @@ -1048,12 +1123,14 @@ struct XrBoundSourcesForActionEnumerateInfo XrAction action; }; -struct XrCompositionLayerBaseHeader +struct XrCompositionLayerAlphaBlendFB { XrStructureType type; - const void *next; - XrCompositionLayerFlags layerFlags; - XrSpace space; + void *next; + XrBlendFactorFB srcFactorColor; + XrBlendFactorFB dstFactorColor; + XrBlendFactorFB srcFactorAlpha; + XrBlendFactorFB dstFactorAlpha; }; struct XrCompositionLayerDepthTestVARJO @@ -1064,6 +1141,13 @@ struct XrCompositionLayerDepthTestVARJO float depthTestRangeFarZ; }; +struct XrCompositionLayerImageLayoutFB +{ + XrStructureType type; + void *next; + XrCompositionLayerImageLayoutFlagsFB flags; +}; + struct XrCompositionLayerReprojectionInfoMSFT { XrStructureType type; @@ -1071,11 +1155,28 @@ struct XrCompositionLayerReprojectionInfoMSFT XrReprojectionModeMSFT reprojectionMode; }; -struct XrControllerModelKeyStateMSFT +struct XrCompositionLayerSecureContentFB +{ + XrStructureType type; + const void *next; + XrCompositionLayerSecureContentFlagsFB flags; +}; + +struct XrControllerModelNodePropertiesMSFT { XrStructureType type; void *next; - XrControllerModelKeyMSFT modelKey; + char parentNodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; + char nodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; +}; + +struct XrControllerModelPropertiesMSFT +{ + XrStructureType type; + void *next; + uint32_t nodeCapacityInput; + uint32_t nodeCountOutput; + XrControllerModelNodePropertiesMSFT *nodeProperties; }; struct XrDebugUtilsLabelEXT @@ -1152,6 +1253,12 @@ struct XrFoveatedViewConfigurationViewVARJO XrBool32 foveatedRenderingActive; }; +struct XrFoveationProfileCreateInfoFB +{ + XrStructureType type; + void *next; +}; + struct XrFrameBeginInfo { XrStructureType type; @@ -1324,22 +1431,19 @@ struct XrScenePlaneAlignmentFilterInfoMSFT const XrScenePlaneAlignmentTypeMSFT *alignments; }; -struct XrSecondaryViewConfigurationLayerInfoMSFT +struct XrSecondaryViewConfigurationSessionBeginInfoMSFT { XrStructureType type; const void *next; - XrViewConfigurationType viewConfigurationType; - XrEnvironmentBlendMode environmentBlendMode; - uint32_t layerCount; - const XrCompositionLayerBaseHeader * const*layers; + uint32_t viewConfigurationCount; + const XrViewConfigurationType *enabledViewConfigurationTypes; }; -struct XrSecondaryViewConfigurationStateMSFT +struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT { XrStructureType type; - void *next; + const void *next; XrViewConfigurationType viewConfigurationType; - XrBool32 active; }; struct XrSessionActionSetsAttachInfo @@ -1358,6 +1462,11 @@ struct XrSessionCreateInfo XrSystemId systemId; }; +struct XrSpatialAnchorPersistenceNameMSFT +{ + char name[XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT]; +}; + struct XrSwapchainCreateInfo { XrStructureType type; @@ -1373,17 +1482,26 @@ struct XrSwapchainCreateInfo uint32_t mipCount; }; -struct XrSwapchainImageBaseHeader +struct XrSwapchainImageAcquireInfo +{ + XrStructureType type; + const void *next; +}; + +struct XrSwapchainImageD3D11KHR { XrStructureType type; void *next; + ID3D11Texture2D *texture; }; -struct XrSwapchainImageD3D12KHR +struct XrSwapchainImageFoveationVulkanFB { XrStructureType type; void *next; - ID3D12Resource *texture; + VkImage image; + uint32_t width; + uint32_t height; }; struct XrSwapchainImageOpenGLKHR @@ -1400,6 +1518,14 @@ struct XrSwapchainImageWaitInfo XrDuration timeout; }; +struct XrSwapchainStateFoveationFB +{ + XrStructureType type; + void *next; + XrSwapchainStateFoveationFlagsFB flags; + XrFoveationProfileFB profile; +}; + struct XrSystemColorSpacePropertiesFB { XrStructureType type; @@ -1560,33 +1686,19 @@ struct XrColor4f float a; }; -struct XrCompositionLayerCubeKHR +struct XrCompositionLayerColorScaleBiasKHR { XrStructureType type; const void *next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchain swapchain; - uint32_t imageArrayIndex; - XrQuaternionf orientation; -}; - -struct XrControllerModelNodePropertiesMSFT -{ - XrStructureType type; - void *next; - char parentNodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; - char nodeName[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]; + XrColor4f colorScale; + XrColor4f colorBias; }; -struct XrControllerModelPropertiesMSFT +struct XrControllerModelKeyStateMSFT { XrStructureType type; void *next; - uint32_t nodeCapacityInput; - uint32_t nodeCountOutput; - XrControllerModelNodePropertiesMSFT *nodeProperties; + XrControllerModelKeyMSFT modelKey; }; struct XrDebugUtilsObjectNameInfoEXT @@ -1630,36 +1742,37 @@ struct XrEyeGazeSampleTimeEXT XrTime time; }; -struct XrFrameEndInfo +struct XrFovf +{ + float angleLeft; + float angleRight; + float angleUp; + float angleDown; +}; + +struct XrFrameWaitInfo { XrStructureType type; const void *next; - XrTime displayTime; - XrEnvironmentBlendMode environmentBlendMode; - uint32_t layerCount; - const XrCompositionLayerBaseHeader * const*layers; }; -struct XrGraphicsBindingD3D12KHR +struct XrGraphicsBindingOpenGLWin32KHR { XrStructureType type; const void *next; - ID3D12Device *device; - ID3D12CommandQueue *queue; + HDC hDC; + HGLRC hGLRC; }; -struct XrGraphicsBindingVulkanKHR +struct XrGraphicsRequirementsD3D12KHR { XrStructureType type; - const void *next; - VkInstance instance; - VkPhysicalDevice physicalDevice; - VkDevice device; - uint32_t queueFamilyIndex; - uint32_t queueIndex; + void *next; + LUID adapterLuid; + D3D_FEATURE_LEVEL minFeatureLevel; }; -struct XrGraphicsRequirementsOpenGLKHR +struct XrGraphicsRequirementsVulkanKHR { XrStructureType type; void *next; @@ -1738,78 +1851,85 @@ struct XrSceneObjectMSFT XrSceneObjectTypeMSFT objectType; }; -struct XrSecondaryViewConfigurationFrameEndInfoMSFT +struct XrSecondaryViewConfigurationStateMSFT { XrStructureType type; - const void *next; - uint32_t viewConfigurationCount; - const XrSecondaryViewConfigurationLayerInfoMSFT *viewConfigurationLayersInfo; + void *next; + XrViewConfigurationType viewConfigurationType; + XrBool32 active; }; -struct XrSecondaryViewConfigurationSessionBeginInfoMSFT +struct XrSessionBeginInfo { XrStructureType type; const void *next; - uint32_t viewConfigurationCount; - const XrViewConfigurationType *enabledViewConfigurationTypes; + XrViewConfigurationType primaryViewConfigurationType; }; -struct XrSessionBeginInfo +struct XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT { XrStructureType type; const void *next; - XrViewConfigurationType primaryViewConfigurationType; + XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore; + XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName; }; -struct XrSwapchainImageAcquireInfo +struct XrSwapchainCreateInfoFoveationFB { XrStructureType type; - const void *next; + void *next; + XrSwapchainCreateFoveationFlagsFB flags; }; -struct XrSwapchainImageVulkanKHR +struct XrSwapchainImageD3D12KHR { XrStructureType type; void *next; - VkImage image; + ID3D12Resource *texture; }; -struct XrSwapchainStateSamplerVulkanFB +struct XrSwapchainImageReleaseInfo { XrStructureType type; - void *next; - VkFilter minFilter; - VkFilter magFilter; - VkSamplerMipmapMode mipmapMode; - VkSamplerAddressMode wrapModeS; - VkSamplerAddressMode wrapModeT; - VkComponentSwizzle swizzleRed; - VkComponentSwizzle swizzleGreen; - VkComponentSwizzle swizzleBlue; - VkComponentSwizzle swizzleAlpha; - float maxAnisotropy; - XrColor4f borderColor; + const void *next; }; -struct XrSystemEyeGazeInteractionPropertiesEXT +struct XrSwapchainStateBaseHeaderFB { XrStructureType type; void *next; - XrBool32 supportsEyeGazeInteraction; }; -struct XrSystemHandTrackingMeshPropertiesMSFT +struct XrSwapchainSubImage +{ + XrSwapchain swapchain; + XrRect2Di imageRect; + uint32_t imageArrayIndex; +}; + +struct XrSystemGetInfo +{ + XrStructureType type; + const void *next; + XrFormFactor formFactor; +}; + +struct XrSystemProperties { XrStructureType type; void *next; - XrBool32 supportsHandTrackingMesh; - uint32_t maxHandMeshIndexCount; - uint32_t maxHandMeshVertexCount; + XrSystemId systemId; + uint32_t vendorId; + char systemName[XR_MAX_SYSTEM_NAME_SIZE]; + XrSystemGraphicsProperties graphicsProperties; + XrSystemTrackingProperties trackingProperties; }; -struct XrUuidMSFT +struct XrVector3f { - uint8_t bytes[16]; + float x; + float y; + float z; }; struct XrViewConfigurationProperties @@ -1854,12 +1974,32 @@ struct XrBaseInStructure const struct XrBaseInStructure *next; }; -struct XrCompositionLayerColorScaleBiasKHR +struct XrCompositionLayerBaseHeader { XrStructureType type; const void *next; - XrColor4f colorScale; - XrColor4f colorBias; + XrCompositionLayerFlags layerFlags; + XrSpace space; +}; + +struct XrCompositionLayerDepthInfoKHR +{ + XrStructureType type; + const void *next; + XrSwapchainSubImage subImage; + float minDepth; + float maxDepth; + float nearZ; + float farZ; +}; + +struct XrCompositionLayerReprojectionPlaneOverrideMSFT +{ + XrStructureType type; + const void *next; + XrVector3f position; + XrVector3f normal; + XrVector3f velocity; }; struct XrDebugUtilsMessengerCallbackDataEXT @@ -1888,288 +2028,240 @@ struct XrExtent2Df float height; }; -struct XrFrameWaitInfo +struct XrFrameEndInfo { XrStructureType type; const void *next; + XrTime displayTime; + XrEnvironmentBlendMode environmentBlendMode; + uint32_t layerCount; + const XrCompositionLayerBaseHeader * const*layers; }; -struct XrGraphicsRequirementsD3D12KHR -{ - XrStructureType type; - void *next; - LUID adapterLuid; - D3D_FEATURE_LEVEL minFeatureLevel; -}; - -struct XrHapticBaseHeader +struct XrGraphicsBindingVulkanKHR { XrStructureType type; const void *next; + VkInstance instance; + VkPhysicalDevice physicalDevice; + VkDevice device; + uint32_t queueFamilyIndex; + uint32_t queueIndex; }; -struct XrInteractionProfileAnalogThresholdVALVE +struct XrHandJointVelocityEXT { - XrStructureType type; - const void *next; - XrAction action; - XrPath binding; - float onThreshold; - float offThreshold; - const XrHapticBaseHeader *onHaptic; - const XrHapticBaseHeader *offHaptic; + XrSpaceVelocityFlags velocityFlags; + XrVector3f linearVelocity; + XrVector3f angularVelocity; }; -struct XrRect2Df +struct XrHandMeshVertexMSFT { - XrOffset2Df offset; - XrExtent2Df extent; + XrVector3f position; + XrVector3f normal; }; -struct XrSceneComponentMSFT +struct XrInstanceCreateInfo { - XrSceneComponentTypeMSFT componentType; - XrUuidMSFT id; - XrUuidMSFT parentId; - XrTime updateTime; + XrStructureType type; + const void *next; + XrInstanceCreateFlags createFlags; + XrApplicationInfo applicationInfo; + uint32_t enabledApiLayerCount; + const char * const*enabledApiLayerNames; + uint32_t enabledExtensionCount; + const char * const*enabledExtensionNames; }; -struct XrSceneComponentsLocateInfoMSFT +struct XrPosef { - XrStructureType type; - const void *next; - XrSpace baseSpace; - XrTime time; - uint32_t componentIdCount; - const XrUuidMSFT *componentIds; + XrQuaternionf orientation; + XrVector3f position; }; -struct XrSceneMeshIndicesUint32MSFT +struct XrReferenceSpaceCreateInfo { XrStructureType type; - void *next; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t *indices; + const void *next; + XrReferenceSpaceType referenceSpaceType; + XrPosef poseInReferenceSpace; }; -struct XrSceneObjectsMSFT +struct XrSceneComponentLocationMSFT { - XrStructureType type; - void *next; - uint32_t sceneObjectCount; - XrSceneObjectMSFT *sceneObjects; + XrSpaceLocationFlags flags; + XrPosef pose; }; -struct XrScenePlaneMSFT +struct XrSceneFrustumBoundMSFT { - XrScenePlaneAlignmentTypeMSFT alignment; - XrExtent2Df size; - uint64_t WINE_XR_ALIGN(8) meshBufferId; - XrBool32 supportsIndicesUint16; + XrPosef pose; + XrFovf fov; + float farDistance; }; -struct XrSecondaryViewConfigurationFrameStateMSFT +struct XrSceneMeshVertexBufferMSFT { XrStructureType type; void *next; - uint32_t viewConfigurationCount; - XrSecondaryViewConfigurationStateMSFT *viewConfigurationStates; + uint32_t vertexCapacityInput; + uint32_t vertexCountOutput; + XrVector3f *vertices; }; -struct XrSerializedSceneFragmentDataGetInfoMSFT +struct XrSceneOrientedBoxBoundMSFT { - XrStructureType type; - const void *next; - XrUuidMSFT sceneFragmentId; + XrPosef pose; + XrVector3f extents; }; -struct XrSwapchainImageD3D11KHR +struct XrSceneSphereBoundMSFT { - XrStructureType type; - void *next; - ID3D11Texture2D *texture; + XrVector3f center; + float radius; }; -struct XrSwapchainStateBaseHeaderFB +struct XrSecondaryViewConfigurationFrameStateMSFT { XrStructureType type; void *next; + uint32_t viewConfigurationCount; + XrSecondaryViewConfigurationStateMSFT *viewConfigurationStates; }; -struct XrSystemGetInfo +struct XrSessionCreateInfoOverlayEXTX { XrStructureType type; const void *next; - XrFormFactor formFactor; -}; - -struct XrVector3f -{ - float x; - float y; - float z; + XrOverlaySessionCreateFlagsEXTX createFlags; + uint32_t sessionLayersPlacement; }; -struct XrVisibilityMaskKHR +struct XrSpaceVelocity { XrStructureType type; void *next; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrVector2f *vertices; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t *indices; + XrSpaceVelocityFlags velocityFlags; + XrVector3f linearVelocity; + XrVector3f angularVelocity; }; -struct XrActionsSyncInfo +struct XrSpatialAnchorPersistenceInfoMSFT { XrStructureType type; const void *next; - uint32_t countActiveActionSets; - const XrActiveActionSet *activeActionSets; + XrSpatialAnchorPersistenceNameMSFT spatialAnchorPersistenceName; + XrSpatialAnchorMSFT spatialAnchor; }; -struct XrCompositionLayerReprojectionPlaneOverrideMSFT +struct XrSpatialGraphNodeSpaceCreateInfoMSFT { XrStructureType type; const void *next; - XrVector3f position; - XrVector3f normal; - XrVector3f velocity; + XrSpatialGraphNodeTypeMSFT nodeType; + uint8_t nodeId[16]; + XrPosef pose; }; -struct XrEventDataBaseHeader +struct XrSwapchainStateSamplerVulkanFB { XrStructureType type; - const void *next; -}; - -struct XrFovf -{ - float angleLeft; - float angleRight; - float angleUp; - float angleDown; + void *next; + VkFilter minFilter; + VkFilter magFilter; + VkSamplerMipmapMode mipmapMode; + VkSamplerAddressMode wrapModeS; + VkSamplerAddressMode wrapModeT; + VkComponentSwizzle swizzleRed; + VkComponentSwizzle swizzleGreen; + VkComponentSwizzle swizzleBlue; + VkComponentSwizzle swizzleAlpha; + float maxAnisotropy; + XrColor4f borderColor; }; -struct XrGraphicsRequirementsVulkanKHR +struct XrSystemHandTrackingMeshPropertiesMSFT { XrStructureType type; void *next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -}; - -struct XrHandJointVelocityEXT -{ - XrSpaceVelocityFlags velocityFlags; - XrVector3f linearVelocity; - XrVector3f angularVelocity; -}; - -struct XrHandMeshVertexMSFT -{ - XrVector3f position; - XrVector3f normal; -}; - -struct XrPosef -{ - XrQuaternionf orientation; - XrVector3f position; -}; - -struct XrSceneComponentLocationMSFT -{ - XrSpaceLocationFlags flags; - XrPosef pose; + XrBool32 supportsHandTrackingMesh; + uint32_t maxHandMeshIndexCount; + uint32_t maxHandMeshVertexCount; }; -struct XrSceneComponentParentFilterInfoMSFT +struct XrView { XrStructureType type; - const void *next; - XrUuidMSFT parentId; -}; - -struct XrSceneFrustumBoundMSFT -{ + void *next; XrPosef pose; XrFovf fov; - float farDistance; -}; - -struct XrSceneOrientedBoxBoundMSFT -{ - XrPosef pose; - XrVector3f extents; }; -struct XrSceneSphereBoundMSFT -{ - XrVector3f center; - float radius; -}; - -struct XrSessionCreateInfoOverlayEXTX -{ - XrStructureType type; - const void *next; - XrOverlaySessionCreateFlagsEXTX createFlags; - uint32_t sessionLayersPlacement; -}; - -struct XrSpaceVelocity +struct XrVisibilityMaskKHR { XrStructureType type; void *next; - XrSpaceVelocityFlags velocityFlags; - XrVector3f linearVelocity; - XrVector3f angularVelocity; + uint32_t vertexCapacityInput; + uint32_t vertexCountOutput; + XrVector2f *vertices; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint32_t *indices; }; -struct XrSpatialAnchorSpaceCreateInfoMSFT +struct XrActionSpaceCreateInfo { XrStructureType type; const void *next; - XrSpatialAnchorMSFT anchor; - XrPosef poseInAnchorSpace; + XrAction action; + XrPath subactionPath; + XrPosef poseInActionSpace; }; -struct XrSwapchainImageReleaseInfo +struct XrBindingModificationsKHR { XrStructureType type; const void *next; + uint32_t bindingModificationCount; + const XrBindingModificationBaseHeaderKHR * const*bindingModifications; }; -struct XrSystemProperties +struct XrCompositionLayerCylinderKHR { XrStructureType type; - void *next; - XrSystemId systemId; - uint32_t vendorId; - char systemName[XR_MAX_SYSTEM_NAME_SIZE]; - XrSystemGraphicsProperties graphicsProperties; - XrSystemTrackingProperties trackingProperties; + const void *next; + XrCompositionLayerFlags layerFlags; + XrSpace space; + XrEyeVisibility eyeVisibility; + XrSwapchainSubImage subImage; + XrPosef pose; + float radius; + float centralAngle; + float aspectRatio; }; -struct XrViewConfigurationViewFovEPIC +struct XrCompositionLayerEquirectKHR { XrStructureType type; const void *next; - XrFovf recommendedFov; - XrFovf maxMutableFov; + XrCompositionLayerFlags layerFlags; + XrSpace space; + XrEyeVisibility eyeVisibility; + XrSwapchainSubImage subImage; + XrPosef pose; + float radius; + XrVector2f scale; + XrVector2f bias; }; -struct XrActionSpaceCreateInfo +struct XrCompositionLayerProjectionView { XrStructureType type; const void *next; - XrAction action; - XrPath subactionPath; - XrPosef poseInActionSpace; + XrPosef pose; + XrFovf fov; + XrSwapchainSubImage subImage; }; struct XrControllerModelNodeStateMSFT @@ -2179,22 +2271,27 @@ struct XrControllerModelNodeStateMSFT XrPosef nodePose; }; -struct XrEventDataReferenceSpaceChangePending +struct XrEventDataBaseHeader { XrStructureType type; const void *next; - XrSession session; - XrReferenceSpaceType referenceSpaceType; - XrTime changeTime; - XrBool32 poseValid; - XrPosef poseInPreviousSpace; }; -struct XrHandJointLocationEXT +struct XrFoveationLevelProfileCreateInfoFB { - XrSpaceLocationFlags locationFlags; - XrPosef pose; - float radius; + XrStructureType type; + void *next; + XrFoveationLevelFB level; + float verticalOffset; + XrFoveationDynamicFB dynamic; +}; + +struct XrGraphicsRequirementsOpenGLKHR +{ + XrStructureType type; + void *next; + XrVersion minApiVersionSupported; + XrVersion maxApiVersionSupported; }; struct XrHandJointVelocitiesEXT @@ -2213,24 +2310,16 @@ struct XrHandMeshSpaceCreateInfoMSFT XrPosef poseInHandMeshSpace; }; -struct XrInstanceCreateInfo +struct XrHapticBaseHeader { XrStructureType type; const void *next; - XrInstanceCreateFlags createFlags; - XrApplicationInfo applicationInfo; - uint32_t enabledApiLayerCount; - const char * const*enabledApiLayerNames; - uint32_t enabledExtensionCount; - const char * const*enabledExtensionNames; }; -struct XrReferenceSpaceCreateInfo +struct XrRect2Df { - XrStructureType type; - const void *next; - XrReferenceSpaceType referenceSpaceType; - XrPosef poseInReferenceSpace; + XrOffset2Df offset; + XrExtent2Df extent; }; struct XrSceneComponentLocationsMSFT @@ -2241,36 +2330,59 @@ struct XrSceneComponentLocationsMSFT XrSceneComponentLocationMSFT *locations; }; -struct XrSceneMeshVertexBufferMSFT +struct XrSceneMeshIndicesUint32MSFT { XrStructureType type; void *next; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrVector3f *vertices; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint32_t *indices; }; -struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT +struct XrScenePlaneMSFT +{ + XrScenePlaneAlignmentTypeMSFT alignment; + XrExtent2Df size; + uint64_t WINE_XR_ALIGN(8) meshBufferId; + XrBool32 supportsIndicesUint16; +}; + +struct XrSecondaryViewConfigurationLayerInfoMSFT { XrStructureType type; const void *next; XrViewConfigurationType viewConfigurationType; + XrEnvironmentBlendMode environmentBlendMode; + uint32_t layerCount; + const XrCompositionLayerBaseHeader * const*layers; }; -struct XrSpatialAnchorCreateInfoMSFT +struct XrSpaceLocation { XrStructureType type; - const void *next; - XrSpace space; + void *next; + XrSpaceLocationFlags locationFlags; XrPosef pose; - XrTime time; }; -struct XrSwapchainSubImage +struct XrSpatialAnchorSpaceCreateInfoMSFT { - XrSwapchain swapchain; - XrRect2Di imageRect; - uint32_t imageArrayIndex; + XrStructureType type; + const void *next; + XrSpatialAnchorMSFT anchor; + XrPosef poseInAnchorSpace; +}; + +struct XrSwapchainImageVulkanKHR +{ + XrStructureType type; + void *next; + VkImage image; +}; + +struct XrUuidMSFT +{ + uint8_t bytes[16]; }; struct XrVulkanInstanceCreateInfoKHR @@ -2284,26 +2396,15 @@ struct XrVulkanInstanceCreateInfoKHR const VkAllocationCallbacks *vulkanAllocator; }; -struct XrBindingModificationsKHR -{ - XrStructureType type; - const void *next; - uint32_t bindingModificationCount; - const XrBindingModificationBaseHeaderKHR * const*bindingModifications; -}; - -struct XrCompositionLayerDepthInfoKHR +struct XrActionsSyncInfo { XrStructureType type; const void *next; - XrSwapchainSubImage subImage; - float minDepth; - float maxDepth; - float nearZ; - float farZ; + uint32_t countActiveActionSets; + const XrActiveActionSet *activeActionSets; }; -struct XrCompositionLayerEquirectKHR +struct XrCompositionLayerEquirect2KHR { XrStructureType type; const void *next; @@ -2313,35 +2414,39 @@ struct XrCompositionLayerEquirectKHR XrSwapchainSubImage subImage; XrPosef pose; float radius; - XrVector2f scale; - XrVector2f bias; + float centralHorizontalAngle; + float upperVerticalAngle; + float lowerVerticalAngle; }; -struct XrCompositionLayerProjectionView +struct XrCompositionLayerQuad { XrStructureType type; const void *next; - XrPosef pose; - XrFovf fov; + XrCompositionLayerFlags layerFlags; + XrSpace space; + XrEyeVisibility eyeVisibility; XrSwapchainSubImage subImage; + XrPosef pose; + XrExtent2Df size; }; -struct XrControllerModelStateMSFT +struct XrEventDataReferenceSpaceChangePending { XrStructureType type; - void *next; - uint32_t nodeCapacityInput; - uint32_t nodeCountOutput; - XrControllerModelNodeStateMSFT *nodeStates; + const void *next; + XrSession session; + XrReferenceSpaceType referenceSpaceType; + XrTime changeTime; + XrBool32 poseValid; + XrPosef poseInPreviousSpace; }; -struct XrHandJointLocationsEXT +struct XrHandJointLocationEXT { - XrStructureType type; - void *next; - XrBool32 isActive; - uint32_t jointCount; - XrHandJointLocationEXT *jointLocations; + XrSpaceLocationFlags locationFlags; + XrPosef pose; + float radius; }; struct XrHandMeshVertexBufferMSFT @@ -2364,86 +2469,127 @@ struct XrSceneBoundsMSFT const XrSceneFrustumBoundMSFT *frustums; }; -struct XrScenePlanesMSFT +struct XrSceneComponentParentFilterInfoMSFT +{ + XrStructureType type; + const void *next; + XrUuidMSFT parentId; +}; + +struct XrSceneObjectsMSFT { XrStructureType type; void *next; - uint32_t scenePlaneCount; - XrScenePlaneMSFT *scenePlanes; + uint32_t sceneObjectCount; + XrSceneObjectMSFT *sceneObjects; }; -struct XrSpatialGraphNodeSpaceCreateInfoMSFT +struct XrSecondaryViewConfigurationFrameEndInfoMSFT { XrStructureType type; const void *next; - XrSpatialGraphNodeTypeMSFT nodeType; - uint8_t nodeId[16]; - XrPosef pose; + uint32_t viewConfigurationCount; + const XrSecondaryViewConfigurationLayerInfoMSFT *viewConfigurationLayersInfo; }; -struct XrCompositionLayerCylinderKHR +struct XrSpatialAnchorCreateInfoMSFT { XrStructureType type; const void *next; - XrCompositionLayerFlags layerFlags; XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; XrPosef pose; - float radius; - float centralAngle; - float aspectRatio; + XrTime time; }; -struct XrCompositionLayerProjection +struct XrSystemEyeGazeInteractionPropertiesEXT +{ + XrStructureType type; + void *next; + XrBool32 supportsEyeGazeInteraction; +}; + +struct XrCompositionLayerCubeKHR { XrStructureType type; const void *next; XrCompositionLayerFlags layerFlags; XrSpace space; - uint32_t viewCount; - const XrCompositionLayerProjectionView *views; + XrEyeVisibility eyeVisibility; + XrSwapchain swapchain; + uint32_t imageArrayIndex; + XrQuaternionf orientation; }; -struct XrGraphicsBindingOpenGLWin32KHR +struct XrControllerModelStateMSFT { XrStructureType type; - const void *next; - HDC hDC; - HGLRC hGLRC; + void *next; + uint32_t nodeCapacityInput; + uint32_t nodeCountOutput; + XrControllerModelNodeStateMSFT *nodeStates; }; -struct XrNewSceneComputeInfoMSFT +struct XrHandJointLocationsEXT +{ + XrStructureType type; + void *next; + XrBool32 isActive; + uint32_t jointCount; + XrHandJointLocationEXT *jointLocations; +}; + +struct XrInteractionProfileAnalogThresholdVALVE { XrStructureType type; const void *next; - uint32_t requestedFeatureCount; - const XrSceneComputeFeatureMSFT *requestedFeatures; - XrSceneComputeConsistencyMSFT consistency; - XrSceneBoundsMSFT bounds; + XrAction action; + XrPath binding; + float onThreshold; + float offThreshold; + const XrHapticBaseHeader *onHaptic; + const XrHapticBaseHeader *offHaptic; }; -struct XrSpaceLocation +struct XrSceneComponentMSFT +{ + XrSceneComponentTypeMSFT componentType; + XrUuidMSFT id; + XrUuidMSFT parentId; + XrTime updateTime; +}; + +struct XrSceneComponentsMSFT { XrStructureType type; void *next; - XrSpaceLocationFlags locationFlags; - XrPosef pose; + uint32_t componentCapacityInput; + uint32_t componentCountOutput; + XrSceneComponentMSFT *components; }; -struct XrCompositionLayerEquirect2KHR +struct XrSerializedSceneFragmentDataGetInfoMSFT +{ + XrStructureType type; + const void *next; + XrUuidMSFT sceneFragmentId; +}; + +struct XrViewConfigurationViewFovEPIC +{ + XrStructureType type; + const void *next; + XrFovf recommendedFov; + XrFovf maxMutableFov; +}; + +struct XrCompositionLayerProjection { XrStructureType type; const void *next; XrCompositionLayerFlags layerFlags; XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - float radius; - float centralHorizontalAngle; - float upperVerticalAngle; - float lowerVerticalAngle; + uint32_t viewCount; + const XrCompositionLayerProjectionView *views; }; struct XrHandMeshMSFT @@ -2457,33 +2603,46 @@ struct XrHandMeshMSFT XrHandMeshVertexBufferMSFT vertexBuffer; }; -struct XrView +struct XrSceneComponentsLocateInfoMSFT +{ + XrStructureType type; + const void *next; + XrSpace baseSpace; + XrTime time; + uint32_t componentIdCount; + const XrUuidMSFT *componentIds; +}; + +struct XrSwapchainImageBaseHeader { XrStructureType type; void *next; - XrPosef pose; - XrFovf fov; }; -struct XrCompositionLayerQuad +struct XrGraphicsBindingD3D12KHR { XrStructureType type; const void *next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - XrExtent2Df size; + ID3D12Device *device; + ID3D12CommandQueue *queue; }; -struct XrSceneComponentsMSFT +struct XrScenePlanesMSFT { XrStructureType type; void *next; - uint32_t componentCapacityInput; - uint32_t componentCountOutput; - XrSceneComponentMSFT *components; + uint32_t scenePlaneCount; + XrScenePlaneMSFT *scenePlanes; +}; + +struct XrNewSceneComputeInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t requestedFeatureCount; + const XrSceneComputeFeatureMSFT *requestedFeatures; + XrSceneComputeConsistencyMSFT consistency; + XrSceneBoundsMSFT bounds; }; typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain, const XrSwapchainImageAcquireInfo *, uint32_t *); @@ -2491,12 +2650,14 @@ typedef XrResult (XRAPI_PTR *PFN_xrApplyHapticFeedback)(XrSession, const XrHapti typedef XrResult (XRAPI_PTR *PFN_xrAttachSessionActionSets)(XrSession, const XrSessionActionSetsAttachInfo *); typedef XrResult (XRAPI_PTR *PFN_xrBeginFrame)(XrSession, const XrFrameBeginInfo *); typedef XrResult (XRAPI_PTR *PFN_xrBeginSession)(XrSession, const XrSessionBeginInfo *); +typedef XrResult (XRAPI_PTR *PFN_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT); typedef XrResult (XRAPI_PTR *PFN_xrComputeNewSceneMSFT)(XrSceneObserverMSFT, const XrNewSceneComputeInfoMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToWin32PerformanceCounterKHR)(XrInstance, XrTime, LARGE_INTEGER *); typedef XrResult (XRAPI_PTR *PFN_xrConvertWin32PerformanceCounterToTimeKHR)(XrInstance, const LARGE_INTEGER *, XrTime *); typedef XrResult (XRAPI_PTR *PFN_xrCreateAction)(XrActionSet, const XrActionCreateInfo *, XrAction *); typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSet)(XrInstance, const XrActionSetCreateInfo *, XrActionSet *); typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSpace)(XrSession, const XrActionSpaceCreateInfo *, XrSpace *); +typedef XrResult (XRAPI_PTR *PFN_xrCreateFoveationProfileFB)(XrSession, const XrFoveationProfileCreateInfoFB *, XrFoveationProfileFB *); typedef XrResult (XRAPI_PTR *PFN_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT, const XrHandMeshSpaceCreateInfoMSFT *, XrSpace *); typedef XrResult (XRAPI_PTR *PFN_xrCreateHandTrackerEXT)(XrSession, const XrHandTrackerCreateInfoEXT *, XrHandTrackerEXT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateInstance)(const XrInstanceCreateInfo *, XrInstance *); @@ -2504,8 +2665,10 @@ typedef XrResult (XRAPI_PTR *PFN_xrCreateReferenceSpace)(XrSession, const XrRefe typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneMSFT)(XrSceneObserverMSFT, const XrSceneCreateInfoMSFT *, XrSceneMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSceneObserverMSFT)(XrSession, const XrSceneObserverCreateInfoMSFT *, XrSceneObserverMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSession)(XrInstance, const XrSessionCreateInfo *, XrSession *); +typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorMSFT)(XrSession, const XrSpatialAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession, const XrSpatialAnchorSpaceCreateInfoMSFT *, XrSpace *); +typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession, XrSpatialAnchorStoreConnectionMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession, const XrSpatialGraphNodeSpaceCreateInfoMSFT *, XrSpace *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchain)(XrSession, const XrSwapchainCreateInfo *, XrSwapchain *); typedef XrResult (XRAPI_PTR *PFN_xrCreateVulkanDeviceKHR)(XrInstance, const XrVulkanDeviceCreateInfoKHR *, VkDevice *, VkResult *); @@ -2513,6 +2676,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrCreateVulkanInstanceKHR)(XrInstance, const Xr typedef XrResult (XRAPI_PTR *PFN_xrDeserializeSceneMSFT)(XrSceneObserverMSFT, const XrSceneDeserializeInfoMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrDestroyAction)(XrAction); typedef XrResult (XRAPI_PTR *PFN_xrDestroyActionSet)(XrActionSet); +typedef XrResult (XRAPI_PTR *PFN_xrDestroyFoveationProfileFB)(XrFoveationProfileFB); typedef XrResult (XRAPI_PTR *PFN_xrDestroyHandTrackerEXT)(XrHandTrackerEXT); typedef XrResult (XRAPI_PTR *PFN_xrDestroyInstance)(XrInstance); typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneMSFT)(XrSceneMSFT); @@ -2520,6 +2684,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneObserverMSFT)(XrSceneObserverMSFT typedef XrResult (XRAPI_PTR *PFN_xrDestroySession)(XrSession); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpace)(XrSpace); typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT); +typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT); typedef XrResult (XRAPI_PTR *PFN_xrDestroySwapchain)(XrSwapchain); typedef XrResult (XRAPI_PTR *PFN_xrEndFrame)(XrSession, const XrFrameEndInfo *); typedef XrResult (XRAPI_PTR *PFN_xrEndSession)(XrSession); @@ -2529,6 +2694,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesFB)(XrSession, uint32_t, typedef XrResult (XRAPI_PTR *PFN_xrEnumerateDisplayRefreshRatesFB)(XrSession, uint32_t, uint32_t *, float *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char *, uint32_t, uint32_t *, XrExtensionProperties *); +typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT, uint32_t, uint32_t *, XrSpatialAnchorPersistenceNameMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReprojectionModesMSFT)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrReprojectionModeMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSceneComputeFeaturesMSFT)(XrInstance, XrSystemId, uint32_t, uint32_t *, XrSceneComputeFeatureMSFT *); @@ -2576,6 +2742,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace, XrSpace, XrTime, XrSpac typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *); typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance, XrPath, uint32_t, uint32_t *, char *); typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsLevelEXT); +typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT, const XrSpatialAnchorPersistenceInfoMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrPollEvent)(XrInstance, XrEventDataBuffer *); typedef XrResult (XRAPI_PTR *PFN_xrReleaseSwapchainImage)(XrSwapchain, const XrSwapchainImageReleaseInfo *); typedef XrResult (XRAPI_PTR *PFN_xrRequestDisplayRefreshRateFB)(XrSession, float); @@ -2594,6 +2761,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString)(XrInstance, XrStructur typedef XrResult (XRAPI_PTR *PFN_xrSuggestInteractionProfileBindings)(XrInstance, const XrInteractionProfileSuggestedBinding *); typedef XrResult (XRAPI_PTR *PFN_xrSyncActions)(XrSession, const XrActionsSyncInfo *); typedef XrResult (XRAPI_PTR *PFN_xrThermalGetTemperatureTrendEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsNotificationLevelEXT *, float *, float *); +typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT, const XrSpatialAnchorPersistenceNameMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrUpdateHandMeshMSFT)(XrHandTrackerEXT, const XrHandMeshUpdateInfoMSFT *, XrHandMeshMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrUpdateSwapchainFB)(XrSwapchain, const XrSwapchainStateBaseHeaderFB *); typedef XrResult (XRAPI_PTR *PFN_xrWaitFrame)(XrSession, const XrFrameWaitInfo *, XrFrameState *); @@ -2605,12 +2773,14 @@ XrResult XRAPI_CALL xrApplyHapticFeedback(XrSession session, const XrHapticActio XrResult XRAPI_CALL xrAttachSessionActionSets(XrSession session, const XrSessionActionSetsAttachInfo *attachInfo); XrResult XRAPI_CALL xrBeginFrame(XrSession session, const XrFrameBeginInfo *frameBeginInfo); XrResult XRAPI_CALL xrBeginSession(XrSession session, const XrSessionBeginInfo *beginInfo); +XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore); XrResult XRAPI_CALL xrComputeNewSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT *computeInfo); XrResult XRAPI_CALL xrConvertTimeToWin32PerformanceCounterKHR(XrInstance instance, XrTime time, LARGE_INTEGER *performanceCounter); XrResult XRAPI_CALL xrConvertWin32PerformanceCounterToTimeKHR(XrInstance instance, const LARGE_INTEGER *performanceCounter, XrTime *time); XrResult XRAPI_CALL xrCreateAction(XrActionSet actionSet, const XrActionCreateInfo *createInfo, XrAction *action); XrResult XRAPI_CALL xrCreateActionSet(XrInstance instance, const XrActionSetCreateInfo *createInfo, XrActionSet *actionSet); XrResult XRAPI_CALL xrCreateActionSpace(XrSession session, const XrActionSpaceCreateInfo *createInfo, XrSpace *space); +XrResult XRAPI_CALL xrCreateFoveationProfileFB(XrSession session, const XrFoveationProfileCreateInfoFB *createInfo, XrFoveationProfileFB *profile); XrResult XRAPI_CALL xrCreateHandMeshSpaceMSFT(XrHandTrackerEXT handTracker, const XrHandMeshSpaceCreateInfoMSFT *createInfo, XrSpace *space); XrResult XRAPI_CALL xrCreateHandTrackerEXT(XrSession session, const XrHandTrackerCreateInfoEXT *createInfo, XrHandTrackerEXT *handTracker); XrResult XRAPI_CALL xrCreateInstance(const XrInstanceCreateInfo *createInfo, XrInstance *instance); @@ -2618,8 +2788,10 @@ XrResult XRAPI_CALL xrCreateReferenceSpace(XrSession session, const XrReferenceS XrResult XRAPI_CALL xrCreateSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrSceneCreateInfoMSFT *createInfo, XrSceneMSFT *scene); XrResult XRAPI_CALL xrCreateSceneObserverMSFT(XrSession session, const XrSceneObserverCreateInfoMSFT *createInfo, XrSceneObserverMSFT *sceneObserver); XrResult XRAPI_CALL xrCreateSession(XrInstance instance, const XrSessionCreateInfo *createInfo, XrSession *session); +XrResult XRAPI_CALL xrCreateSpatialAnchorFromPersistedNameMSFT(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *spatialAnchorCreateInfo, XrSpatialAnchorMSFT *spatialAnchor); XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT(XrSession session, const XrSpatialAnchorCreateInfoMSFT *createInfo, XrSpatialAnchorMSFT *anchor); XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT *createInfo, XrSpace *space); +XrResult XRAPI_CALL xrCreateSpatialAnchorStoreConnectionMSFT(XrSession session, XrSpatialAnchorStoreConnectionMSFT *spatialAnchorStore); XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT(XrSession session, const XrSpatialGraphNodeSpaceCreateInfoMSFT *createInfo, XrSpace *space); XrResult XRAPI_CALL xrCreateSwapchain(XrSession session, const XrSwapchainCreateInfo *createInfo, XrSwapchain *swapchain); XrResult XRAPI_CALL xrCreateVulkanDeviceKHR(XrInstance instance, const XrVulkanDeviceCreateInfoKHR *createInfo, VkDevice *vulkanDevice, VkResult *vulkanResult); @@ -2627,6 +2799,7 @@ XrResult XRAPI_CALL xrCreateVulkanInstanceKHR(XrInstance instance, const XrVulka XrResult XRAPI_CALL xrDeserializeSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT *deserializeInfo); XrResult XRAPI_CALL xrDestroyAction(XrAction action); XrResult XRAPI_CALL xrDestroyActionSet(XrActionSet actionSet); +XrResult XRAPI_CALL xrDestroyFoveationProfileFB(XrFoveationProfileFB profile); XrResult XRAPI_CALL xrDestroyHandTrackerEXT(XrHandTrackerEXT handTracker); XrResult XRAPI_CALL xrDestroyInstance(XrInstance instance); XrResult XRAPI_CALL xrDestroySceneMSFT(XrSceneMSFT scene); @@ -2634,6 +2807,7 @@ XrResult XRAPI_CALL xrDestroySceneObserverMSFT(XrSceneObserverMSFT sceneObserver XrResult XRAPI_CALL xrDestroySession(XrSession session); XrResult XRAPI_CALL xrDestroySpace(XrSpace space); XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor); +XrResult XRAPI_CALL xrDestroySpatialAnchorStoreConnectionMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore); XrResult XRAPI_CALL xrDestroySwapchain(XrSwapchain swapchain); XrResult XRAPI_CALL xrEndFrame(XrSession session, const XrFrameEndInfo *frameEndInfo); XrResult XRAPI_CALL xrEndSession(XrSession session); @@ -2643,6 +2817,7 @@ XrResult XRAPI_CALL xrEnumerateColorSpacesFB(XrSession session, uint32_t colorSp XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB(XrSession session, uint32_t displayRefreshRateCapacityInput, uint32_t *displayRefreshRateCountOutput, float *displayRefreshRates); XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t *environmentBlendModeCountOutput, XrEnvironmentBlendMode *environmentBlendModes); XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties(const char *layerName, uint32_t propertyCapacityInput, uint32_t *propertyCountOutput, XrExtensionProperties *properties); +XrResult XRAPI_CALL xrEnumeratePersistedSpatialAnchorNamesMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNamesCapacityInput, uint32_t *spatialAnchorNamesCountOutput, XrSpatialAnchorPersistenceNameMSFT *persistedAnchorNames); XrResult XRAPI_CALL xrEnumerateReferenceSpaces(XrSession session, uint32_t spaceCapacityInput, uint32_t *spaceCountOutput, XrReferenceSpaceType *spaces); XrResult XRAPI_CALL xrEnumerateReprojectionModesMSFT(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t *modeCountOutput, XrReprojectionModeMSFT *modes); XrResult XRAPI_CALL xrEnumerateSceneComputeFeaturesMSFT(XrInstance instance, XrSystemId systemId, uint32_t featureCapacityInput, uint32_t *featureCountOutput, XrSceneComputeFeatureMSFT *features); @@ -2690,6 +2865,7 @@ XrResult XRAPI_CALL xrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, XrResult XRAPI_CALL xrLocateViews(XrSession session, const XrViewLocateInfo *viewLocateInfo, XrViewState *viewState, uint32_t viewCapacityInput, uint32_t *viewCountOutput, XrView *views); XrResult XRAPI_CALL xrPathToString(XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, char *buffer); XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); +XrResult XRAPI_CALL xrPersistSpatialAnchorMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT *spatialAnchorPersistenceInfo); XrResult XRAPI_CALL xrPollEvent(XrInstance instance, XrEventDataBuffer *eventData); XrResult XRAPI_CALL xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo *releaseInfo); XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB(XrSession session, float displayRefreshRate); @@ -2708,6 +2884,7 @@ XrResult XRAPI_CALL xrStructureTypeToString(XrInstance instance, XrStructureType XrResult XRAPI_CALL xrSuggestInteractionProfileBindings(XrInstance instance, const XrInteractionProfileSuggestedBinding *suggestedBindings); XrResult XRAPI_CALL xrSyncActions(XrSession session, const XrActionsSyncInfo *syncInfo); XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT *notificationLevel, float *tempHeadroom, float *tempSlope); +XrResult XRAPI_CALL xrUnpersistSpatialAnchorMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT *spatialAnchorPersistenceName); XrResult XRAPI_CALL xrUpdateHandMeshMSFT(XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT *updateInfo, XrHandMeshMSFT *handMesh); XrResult XRAPI_CALL xrUpdateSwapchainFB(XrSwapchain swapchain, const XrSwapchainStateBaseHeaderFB *state); XrResult XRAPI_CALL xrWaitFrame(XrSession session, const XrFrameWaitInfo *frameWaitInfo, XrFrameState *frameState); diff --git a/wineopenxr/xr.xml b/wineopenxr/xr.xml index 4570a1e7..90cd3113 100644 --- a/wineopenxr/xr.xml +++ b/wineopenxr/xr.xml @@ -1,4 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE xml> +<?xml-model href="registry.rnc" type="application/relax-ng-compact-syntax"?> +<?xml-model href="registry.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <registry> <comment> Copyright (c) 2017-2021, The Khronos Group Inc. @@ -48,6 +51,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <tag name="STARBREEZE" author="Starbreeze" contact="David Srour @dsrour"/> <tag name="TOBII" author="Tobii" contact="Denny Rönngren @denron"/> <tag name="ULTRALEAP" author="Ultraleap" contact="Robert Blenkinsopp @rblenkinsopp"/> + <tag name="UNITY" author="Unity Technologies" contact="Jack Pritz @jackpritz, Peter Kuhn @peterunity"/> <tag name="VALVE" author="Valve" contact="Joe Ludwig @JoeLudwig"/> <tag name="VARJO" author="Varjo" contact="Sergiy Dubovik @dubik, Rémi Arnaud @VarjoRemi"/> </tags> @@ -116,7 +120,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. updates them automatically by processing a line at a time. --> <type category="define">// OpenXR current version number. -#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 17)</type> +#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 18)</type> <!-- NOTE: For avoidance of ambiguity, there should only be 1 <name> tag immediately in @@ -251,6 +255,16 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <!-- Bitmask types for XR_FB_android_surface_swapchain_create --> <type bitvalues="XrAndroidSurfaceSwapchainFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrAndroidSurfaceSwapchainFlagsFB</name>;</type> + <!-- Bitmask types for XR_FB_composition_layer_image_layout --> + <type bitvalues="XrCompositionLayerImageLayoutFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerImageLayoutFlagsFB</name>;</type> + + <!-- Bitmask types for XR_FB_composition_layer_secure_content --> + <type bitvalues="XrCompositionLayerSecureContentFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerSecureContentFlagsFB</name>;</type> + + <!-- Bitmask types for XR_FB_foveation --> + <type bitvalues="XrSwapchainCreateFoveationFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainCreateFoveationFlagsFB</name>;</type> + <type bitvalues="XrSwapchainStateFoveationFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainStateFoveationFlagsFB</name>;</type> + <!-- Handles referring to internally-maintained objects. --> <!-- These types which can be 64-bit integers or opaque pointers, selected at compile time based on pointer size --> <type category="handle"><type>XR_DEFINE_HANDLE</type>(<name>XrInstance</name>)</type> @@ -261,9 +275,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpace</name>)</type> <type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrDebugUtilsMessengerEXT</name>)</type> <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialAnchorMSFT</name>)</type> + <!-- XR_EXT_hand_tracking --> <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrHandTrackerEXT</name>)</type> + <!-- XR_FB_foveation --> + <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrFoveationProfileFB</name>)</type> + <!-- enums and flag bits generated from corresponding <enums> tags below --> <type name="XrStructureType" category="enum"/> <type name="XrResult" category="enum"/> @@ -308,9 +326,22 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <!-- enums for XR_MSFT_spatial_graph_bridge --> <type name="XrSpatialGraphNodeTypeMSFT" category="enum"/> - <!-- enums and flag bits for XR_FB_android_surface_swapchain_create --> + <!-- enums for XR_FB_android_surface_swapchain_create --> <type name="XrAndroidSurfaceSwapchainFlagBitsFB" category="enum"/> + <!-- enums for XR_FB_composition_layer_image_layout --> + <type name="XrCompositionLayerImageLayoutFlagBitsFB" category="enum"/> + + <!-- enums for XR_FB_composition_layer_alpha_blend --> + <type name="XrBlendFactorFB" category="enum"/> + + <!-- enums for XR_FB_composition_layer_secure_content --> + <type name="XrCompositionLayerSecureContentFlagBitsFB" category="enum"/> + + <!-- enums and flag bits for XR_FB_foveation --> + <type name="XrSwapchainCreateFoveationFlagBitsFB" category="enum"/> + <type name="XrSwapchainStateFoveationFlagBitsFB" category="enum"/> + <!-- Struct types --> <type category="struct" name="XrVector2f"> <member><type>float</type> <name>x</name></member> @@ -1135,6 +1166,23 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <member><type>XrPosef</type> <name>poseInAnchorSpace</name></member> </type> + <!-- types for XR_FB_composition_layer_image_layout --> + <type category="struct" name="XrCompositionLayerImageLayoutFB" structextends="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>XrCompositionLayerImageLayoutFlagsFB</type> <name>flags</name></member> + </type> + + <!-- types for XR_FB_composition_layer_alpha_blend --> + <type category="struct" name="XrCompositionLayerAlphaBlendFB" structextends="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrBlendFactorFB</type> <name>srcFactorColor</name></member> + <member><type>XrBlendFactorFB</type> <name>dstFactorColor</name></member> + <member><type>XrBlendFactorFB</type> <name>srcFactorAlpha</name></member> + <member><type>XrBlendFactorFB</type> <name>dstFactorAlpha</name></member> + </type> + <!-- types for XR_MNDX_egl_enable --> <type category="struct" name="XrGraphicsBindingEGLMNDX" structextends="XrSessionCreateInfo"> <member values="XR_TYPE_GRAPHICS_BINDING_EGL_MNDX"><type>XrStructureType</type> <name>type</name></member> @@ -1361,6 +1409,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <member><type>XrColor4f</type> <name>borderColor</name></member> </type> + <!-- XR_FB_composition_layer_secure_content structs --> + <type category="struct" name="XrCompositionLayerSecureContentFB" structextends="XrCompositionLayerBaseHeader"> + <member values="XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrCompositionLayerSecureContentFlagsFB</type> <name>flags</name></member> + </type> + <!-- XR_KHR_loader_init --> <type category="struct" name="XrLoaderInitInfoBaseHeaderKHR"> <member><type>XrStructureType</type> <name>type</name></member> @@ -1629,6 +1684,43 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <member><type>XrColorSpaceFB</type> <name>colorSpace</name></member> </type> + <!-- XR_FB_foveation structs --> + <type category="struct" name="XrFoveationProfileCreateInfoFB"> + <member values="XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + </type> + <type category="struct" name="XrSwapchainCreateInfoFoveationFB" structextends="XrSwapchainCreateInfo"> + <member values="XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>XrSwapchainCreateFoveationFlagsFB</type> <name>flags</name></member> + </type> + <type category="struct" name="XrSwapchainStateFoveationFB" parentstruct="XrSwapchainStateBaseHeaderFB"> + <member values="XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member optional="true"><type>XrSwapchainStateFoveationFlagsFB</type> <name>flags</name></member> + <member><type>XrFoveationProfileFB</type> <name>profile</name></member> + </type> + + <!-- XR_FB_foveation_vulkan structs --> + <type category="struct" name="XrSwapchainImageFoveationVulkanFB" structextends="XrSwapchainImageVulkanKHR" returnedonly="true"> + <member values="XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>VkImage</type> <name>image</name></member> + <member><type>uint32_t</type> <name>width</name></member> + <member><type>uint32_t</type> <name>height</name></member> + </type> + + <!-- XR_FB_foveation_configuration structs --> + <type name="XrFoveationLevelFB" category="enum"/> + <type name="XrFoveationDynamicFB" category="enum"/> + <type category="struct" name="XrFoveationLevelProfileCreateInfoFB" structextends="XrFoveationProfileCreateInfoFB"> + <member values="XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member> + <member><type>void</type>* <name>next</name></member> + <member><type>XrFoveationLevelFB</type> <name>level</name></member> + <member><type>float</type> <name>verticalOffset</name></member> + <member><type>XrFoveationDynamicFB</type> <name>dynamic</name></member> + </type> + <!-- XR_VARJO_composition_layer_depth_test --> <type category="struct" name="XrCompositionLayerDepthTestVARJO" structextends="XrCompositionLayerProjection"> <member values="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO"><type>XrStructureType</type> <name>type</name></member> @@ -1671,6 +1763,25 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <member><type>XrVector3f</type> <name>velocity</name></member> </type> + <!-- XR_MSFT_spatial_anchor_persistence --> + <type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialAnchorStoreConnectionMSFT</name>)</type> + + <type category="struct" name="XrSpatialAnchorPersistenceNameMSFT"> + <member><type>char</type> <name>name</name>[<enum>XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT</enum>]</member> + </type> + <type category="struct" name="XrSpatialAnchorPersistenceInfoMSFT"> + <member values="XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSpatialAnchorPersistenceNameMSFT</type> <name>spatialAnchorPersistenceName</name></member> + <member><type>XrSpatialAnchorMSFT</type> <name>spatialAnchor</name></member> + </type> + <type category="struct" name="XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT"> + <member values="XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member> + <member>const <type>void</type>* <name>next</name></member> + <member><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></member> + <member><type>XrSpatialAnchorPersistenceNameMSFT</type> <name>spatialAnchorPersistenceName</name></member> + </type> + </types> <!-- SECTION: OpenXR enumerant (token) definitions. --> @@ -1982,6 +2093,16 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <enum value="7" name="XR_COLOR_SPACE_ADOBE_RGB_FB"/> </enums> + <!-- XR_FB_composition_layer_alpha_blend --> + <enums name="XrBlendFactorFB" type="enum"> + <enum value="0" name="XR_BLEND_FACTOR_ZERO_FB"/> + <enum value="1" name="XR_BLEND_FACTOR_ONE_FB"/> + <enum value="2" name="XR_BLEND_FACTOR_SRC_ALPHA_FB"/> + <enum value="3" name="XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB"/> + <enum value="4" name="XR_BLEND_FACTOR_DST_ALPHA_FB"/> + <enum value="5" name="XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB"/> + </enums> + <!-- XR_MSFT_composition_layer_reprojection --> <enums name="XrReprojectionModeMSFT" type="enum"> <enum value="1" name="XR_REPROJECTION_MODE_DEPTH_MSFT"/> @@ -2126,6 +2247,38 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <enum bitpos="1" name="XR_ANDROID_SURFACE_SWAPCHAIN_USE_TIMESTAMPS_BIT_FB" comment="Acquire most recent buffer whose presentation timestamp is not greater than display time of final composited frame"/> </enums> + <!-- flags for XR_FB_composition_layer_image_layout --> + <enums name="XrCompositionLayerImageLayoutFlagBitsFB" type="bitmask"> + <enum bitpos="0" name="XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB" comment="The coordinate origin of the swapchain image must be considered to be flipped vertically."/> + </enums> + + <!-- flags for XR_FB_foveation --> + <enums name="XrSwapchainCreateFoveationFlagBitsFB" type="bitmask"> + <enum bitpos="0" name="XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB" comment="Explicitly create the swapchain with scaled bin foveation support. The application must ensure that the swapchain is using the OpenGL graphics API and that the QCOM_texture_foveated extension is supported and enabled."/> + <enum bitpos="1" name="XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB" comment="Explicitly create the swapchain with fragment density map foveation support. The application must ensure that the swapchain is using the Vulkan graphics API and that the VK_EXT_fragment_density_map extension is supported and enabled."/> + </enums> + <enums name="XrSwapchainStateFoveationFlagBitsFB" type="bitmask"> + <!-- This is currently empty, awaiting future flags. --> + </enums> + + <!-- flags for XR_FB_composition_layer_secure_content --> + <enums name="XrCompositionLayerSecureContentFlagBitsFB" type="bitmask"> + <enum bitpos="0" name="XR_COMPOSITION_LAYER_SECURE_CONTENT_EXCLUDE_LAYER_BIT_FB" comment="Indicates the layer will only be visible inside the HMD, and not visible to external sources"/> + <enum bitpos="1" name="XR_COMPOSITION_LAYER_SECURE_CONTENT_REPLACE_LAYER_BIT_FB" comment="Indicates the layer will be displayed inside the HMD, but replaced by proxy content when written to external sources"/> + </enums> + + <!-- enums for XR_FB_foveation_configuration --> + <enums name="XrFoveationLevelFB" type="enum"> + <enum value="0" name="XR_FOVEATION_LEVEL_NONE_FB" comment="No foveation"/> + <enum value="1" name="XR_FOVEATION_LEVEL_LOW_FB" comment="Less foveation (higher periphery visual fidelity, lower performance)"/> + <enum value="2" name="XR_FOVEATION_LEVEL_MEDIUM_FB" comment="Medium foveation (medium periphery visual fidelity, medium performance)"/> + <enum value="3" name="XR_FOVEATION_LEVEL_HIGH_FB" comment="High foveation (lower periphery visual fidelity, higher performance)"/> + </enums> + <enums name="XrFoveationDynamicFB" type="enum"> + <enum value="0" name="XR_FOVEATION_DYNAMIC_DISABLED_FB" comment="Static foveation at the maximum desired level"/> + <enum value="1" name="XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB" comment="Dynamic changing foveation based on performance headroom available up to the maximum desired level"/> + </enums> + <!-- SECTION: OpenXR command definitions --> <commands> <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY"> @@ -2652,7 +2805,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </command> <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID"> <proto><type>XrResult</type> <name>xrDestroySpatialAnchorMSFT</name></proto> - <param><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param> + <param externsync="true_with_children"><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param> </command> <!-- commands for XR_EXT_conformance_automation --> @@ -2900,6 +3053,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <param>const <type>XrColorSpaceFB</type> <name>colorspace</name></param> </command> + <!-- XR_FB_foveation --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED"> + <proto><type>XrResult</type> <name>xrCreateFoveationProfileFB</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrFoveationProfileCreateInfoFB</type>* <name>createInfo</name></param> + <param><type>XrFoveationProfileFB</type>* <name>profile</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID"> + <proto><type>XrResult</type> <name>xrDestroyFoveationProfileFB</name></proto> + <param externsync="true_with_children"><type>XrFoveationProfileFB</type> <name>profile</name></param> + </command> + <!-- commands for XR_VARJO_environment_depth_estimation --> <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED"> <proto><type>XrResult</type> <name>xrSetEnvironmentDepthEstimationVARJO</name></proto> @@ -2930,6 +3095,45 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <param><type>XrInstance</type> <name>instance</name></param> <param><type>wchar_t</type> <name>buffer</name>[<enum>XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS</enum>]</param> </command> + + <!-- XR_MSFT_spatial_anchor_persistence --> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED"> + <proto><type>XrResult</type> <name>xrCreateSpatialAnchorStoreConnectionMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param><type>XrSpatialAnchorStoreConnectionMSFT</type>* <name>spatialAnchorStore</name></param> + </command> + <command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID,XR_ERROR_OUT_OF_MEMORY"> + <proto><type>XrResult</type> <name>xrDestroySpatialAnchorStoreConnectionMSFT</name></proto> + <param externsync="true_with_children"><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT"> + <proto><type>XrResult</type> <name>xrPersistSpatialAnchorMSFT</name></proto> + <param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param> + <param>const <type>XrSpatialAnchorPersistenceInfoMSFT</type>* <name>spatialAnchorPersistenceInfo</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT"> + <proto><type>XrResult</type> <name>xrEnumeratePersistedSpatialAnchorNamesMSFT</name></proto> + <param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param> + <param optional="true"><type>uint32_t</type> <name>spatialAnchorNamesCapacityInput</name></param> + <param optional="true"><type>uint32_t</type>* <name>spatialAnchorNamesCountOutput</name></param> + <param optional="true" len="spatialAnchorNamesCapacityInput"><type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>persistedAnchorNames</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT"> + <proto><type>XrResult</type> <name>xrCreateSpatialAnchorFromPersistedNameMSFT</name></proto> + <param><type>XrSession</type> <name>session</name></param> + <param>const <type>XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT</type>* <name>spatialAnchorCreateInfo</name></param> + <param><type>XrSpatialAnchorMSFT</type>* <name>spatialAnchor</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT"> + <proto><type>XrResult</type> <name>xrUnpersistSpatialAnchorMSFT</name></proto> + <param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param> + <param>const <type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>spatialAnchorPersistenceName</name></param> + </command> + <command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY"> + <proto><type>XrResult</type> <name>xrClearSpatialAnchorStoreMSFT</name></proto> + <param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param> + </command> + </commands> <!-- SECTION: OpenXR API interface definitions --> @@ -3090,7 +3294,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <!-- Core-like basic data types, documented in core spec, though currently only used by KHR extensions: --> - <!-- used in XR_KHR_composition_layer_color_modulation --> + <!-- used in XR_KHR_composition_layer_color_scale_bias --> <type name="XrColor4f"/> <!-- used in XR_KHR_space bounds --> <type name="XrExtent2Df"/> @@ -3452,7 +3656,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <extension name="XR_MSFT_spatial_anchor" number="40" type="instance" supported="openxr"> <require> - <enum value="1" name="XR_MSFT_spatial_anchor_SPEC_VERSION"/> + <enum value="2" name="XR_MSFT_spatial_anchor_SPEC_VERSION"/> <enum value=""XR_MSFT_spatial_anchor"" name="XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME"/> <enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT"/> @@ -3465,17 +3669,22 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_OCULUS_extension_41" number="41" type="instance" supported="disabled"> + <extension name="XR_FB_composition_layer_image_layout" number="41" type="instance" supported="openxr"> <require> - <enum value="1" name="XR_OCULUS_extension_41_SPEC_VERSION"/> - <enum value=""XR_OCULUS_extension_41"" name="XR_OCULUS_EXTENSION_41_EXTENSION_NAME"/> + <enum value="1" name="XR_FB_composition_layer_image_layout_SPEC_VERSION"/> + <enum value=""XR_FB_composition_layer_image_layout"" name="XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME"/> + <type name="XrCompositionLayerImageLayoutFB"/> + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB"/> </require> </extension> - <extension name="XR_OCULUS_extension_42" number="42" type="instance" supported="disabled"> + <extension name="XR_FB_composition_layer_alpha_blend" number="42" type="instance" supported="openxr"> <require> - <enum value="1" name="XR_OCULUS_extension_42_SPEC_VERSION"/> - <enum value=""XR_OCULUS_extension_42"" name="XR_OCULUS_EXTENSION_42_EXTENSION_NAME"/> + <enum value="2" name="XR_FB_composition_layer_alpha_blend_SPEC_VERSION"/> + <enum value=""XR_FB_composition_layer_alpha_blend"" name="XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME"/> + <type name="XrBlendFactorFB"/> + <type name="XrCompositionLayerAlphaBlendFB"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB"/> </require> </extension> @@ -3797,10 +4006,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_FB_extension_73" number="73" type="instance" supported="disabled"> + <extension name="XR_FB_composition_layer_secure_content" number="73" type="instance" supported="openxr"> <require> - <enum value="1" name="XR_FB_extension_73_SPEC_VERSION"/> - <enum value=""XR_FB_extension_73"" name="XR_FB_extension_73_EXTENSION_NAME"/> + <enum value="1" name="XR_FB_composition_layer_secure_content_SPEC_VERSION"/> + <enum value=""XR_FB_composition_layer_secure_content"" name="XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB"/> + <type name="XrCompositionLayerSecureContentFB"/> </require> </extension> @@ -3994,11 +4206,11 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_MND_swapchain_usage_input_attachment_bit" number="97" type="instance" supported="openxr"> + <extension name="XR_MND_swapchain_usage_input_attachment_bit" number="97" type="instance" supported="openxr" promotedto="XR_KHR_swapchain_usage_input_attachment_bit"> <require> <enum value="2" name="XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION"/> <enum value=""XR_MND_swapchain_usage_input_attachment_bit"" name="XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME"/> - <!-- NOTE: This was added before the working group established a process. Future vendor extensions MUST NOT extend core bitmasks. --> + <!-- NOTE: This was added before the working group established a process, and has been normalized by promotion to KHR. Future vendor extensions MUST NOT extend core bitmasks. --> <enum bitpos="7" extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image may: be used as a input attachment."/> </require> </extension> @@ -4222,17 +4434,36 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_FB_extension_115" number="115" type="instance" supported="disabled"> + <extension name="XR_FB_foveation" number="115" type="instance" requires="XR_FB_swapchain_update_state" supported="openxr"> <require> - <enum value="1" name="XR_FB_extension_115_SPEC_VERSION"/> - <enum value=""XR_FB_extension_115"" name="XR_FB_extension_115_EXTENSION_NAME"/> + <enum value="1" name="XR_FB_foveation_SPEC_VERSION"/> + <enum value=""XR_FB_foveation"" name="XR_FB_FOVEATION_EXTENSION_NAME"/> + + <enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_FOVEATION_PROFILE_FB" comment="XrFoveationProfileFB"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB"/> + <enum offset="2" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB"/> + + <type name="XrFoveationProfileCreateInfoFB"/> + <type name="XrSwapchainCreateInfoFoveationFB"/> + <type name="XrSwapchainStateFoveationFB"/> + + <command name="xrCreateFoveationProfileFB"/> + <command name="xrDestroyFoveationProfileFB"/> </require> </extension> - <extension name="XR_FB_extension_116" number="116" type="instance" supported="disabled"> + <extension name="XR_FB_foveation_configuration" number="116" type="instance" requires="XR_FB_foveation" supported="openxr"> <require> - <enum value="1" name="XR_FB_extension_116_SPEC_VERSION"/> - <enum value=""XR_FB_extension_116"" name="XR_FB_extension_116_EXTENSION_NAME"/> + <enum value="1" name="XR_FB_foveation_configuration_SPEC_VERSION"/> + <enum value=""XR_FB_foveation_configuration"" name="XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB"/> + + <type name="XrFoveationLevelFB"/> + <type name="XrFoveationDynamicFB"/> + <type name="XrFoveationLevelProfileCreateInfoFB"/> </require> </extension> @@ -4276,7 +4507,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <extension name="XR_VARJO_foveated_rendering" number="122" type="instance" requires="XR_VARJO_quad_views" supported="openxr"> <require> - <enum value="1" name="XR_VARJO_foveated_rendering_SPEC_VERSION"/> + <enum value="2" name="XR_VARJO_foveated_rendering_SPEC_VERSION"/> <enum value=""XR_VARJO_foveated_rendering"" name="XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME"/> <enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO"/> <enum offset="1" extends="XrStructureType" name="XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO"/> @@ -4292,7 +4523,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. <extension name="XR_VARJO_composition_layer_depth_test" number="123" type="instance" requires="XR_KHR_composition_layer_depth" supported="openxr"> <require> - <enum value="1" name="XR_VARJO_composition_layer_depth_test_SPEC_VERSION"/> + <enum value="2" name="XR_VARJO_composition_layer_depth_test_SPEC_VERSION"/> <enum value=""XR_VARJO_composition_layer_depth_test"" name="XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME"/> <enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO"/> <type name="XrCompositionLayerDepthTestVARJO"/> @@ -4433,13 +4664,35 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_MSFT_extension_143" number="143" type="instance" supported="disabled"> + <extension name="XR_MSFT_spatial_anchor_persistence" number="143" requires="XR_MSFT_spatial_anchor" type="instance" supported="openxr"> <require> - <enum value="1" name="XR_MSFT_extension_143_SPEC_VERSION"/> - <enum value=""XR_MSFT_extension_143"" name="XR_MSFT_extension_143_EXTENSION_NAME"/> + <enum value="2" name="XR_MSFT_spatial_anchor_persistence_SPEC_VERSION"/> + <enum value=""XR_MSFT_spatial_anchor_persistence"" name="XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME"/> + + <type name="XrSpatialAnchorStoreConnectionMSFT"/> + <type name="XrSpatialAnchorPersistenceNameMSFT"/> + <type name="XrSpatialAnchorPersistenceInfoMSFT"/> + <type name="XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT"/> + + <command name="xrCreateSpatialAnchorStoreConnectionMSFT"/> + <command name="xrDestroySpatialAnchorStoreConnectionMSFT"/> + <command name="xrPersistSpatialAnchorMSFT"/> + <command name="xrEnumeratePersistedSpatialAnchorNamesMSFT"/> + <command name="xrCreateSpatialAnchorFromPersistedNameMSFT"/> + <command name="xrUnpersistSpatialAnchorMSFT"/> + <command name="xrClearSpatialAnchorStoreMSFT"/> + + <enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT" comment="XrSpatialAnchorStoreConnectionMSFT"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT"/> + <enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT"/> + + <enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT" comment="A spatial anchor was not found associated with the spatial anchor name provided"/> + <enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT" comment="The spatial anchor name provided was not valid"/> + + <enum value="256" name="XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT"/> </require> </extension> - <extension name="XR_MSFT_extension_144" number="144" type="instance" supported="disabled"> <require> <enum value="1" name="XR_MSFT_extension_144_SPEC_VERSION"/> @@ -4562,14 +4815,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_FB_extension_161" number="161" type="instance" supported="disabled"> + <extension name="XR_FB_foveation_vulkan" number="161" type="instance" requires="XR_FB_foveation" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr"> <require> - <enum value="1" name="XR_FB_extension_161_SPEC_VERSION"/> - <enum value=""XR_FB_extension_161"" name="XR_FB_extension_161_EXTENSION_NAME"/> + <enum value="1" name="XR_FB_foveation_vulkan_SPEC_VERSION"/> + <enum value=""XR_FB_foveation_vulkan"" name="XR_FB_FOVEATION_VULKAN_EXTENSION_NAME"/> + + <enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB"/> + + <type name="XrSwapchainImageFoveationVulkanFB"/> </require> </extension> - <extension name="XR_FB_swapchain_update_state_android_surface" number="162" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_FB_swapchain_update_state"> + <extension name="XR_FB_swapchain_update_state_android_surface" number="162" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_android_surface_swapchain,XR_FB_swapchain_update_state"> <require> <enum value="1" name="XR_FB_swapchain_update_state_android_surface_SPEC_VERSION"/> <enum value=""XR_FB_swapchain_update_state_android_surface"" name="XR_FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME"/> @@ -4578,7 +4835,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_FB_swapchain_update_state_opengl_es" number="163" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_OPENGL_ES" requires="XR_FB_swapchain_update_state"> + <extension name="XR_FB_swapchain_update_state_opengl_es" number="163" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_OPENGL_ES" requires="XR_KHR_opengl_es_enable,XR_FB_swapchain_update_state"> <require> <enum value="1" name="XR_FB_swapchain_update_state_opengl_es_SPEC_VERSION"/> <enum value=""XR_FB_swapchain_update_state_opengl_es"" name="XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME"/> @@ -4587,7 +4844,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_FB_swapchain_update_state_vulkan" number="164" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN" requires="XR_FB_swapchain_update_state"> + <extension name="XR_FB_swapchain_update_state_vulkan" number="164" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN" requires="XR_KHR_vulkan_enable,XR_FB_swapchain_update_state"> <require> <enum value="1" name="XR_FB_swapchain_update_state_vulkan_SPEC_VERSION"/> <enum value=""XR_FB_swapchain_update_state_vulkan"" name="XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME"/> @@ -4603,10 +4860,11 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> - <extension name="XR_KHR_extension_166" number="166" type="instance" supported="disabled"> + <extension name="XR_KHR_swapchain_usage_input_attachment_bit" number="166" type="instance" supported="openxr"> <require> - <enum value="1" name="XR_KHR_extension_166_SPEC_VERSION"/> - <enum value=""XR_KHR_extension_166"" name="XR_KHR_extension_166_EXTENSION_NAME"/> + <enum value="3" name="XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION"/> + <enum value=""XR_KHR_swapchain_usage_input_attachment_bit"" name="XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME"/> + <enum extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR" alias="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image may: be used as a input attachment."/> </require> </extension> @@ -4680,6 +4938,146 @@ maintained in the default branch of the Khronos OpenXR GitHub project. </require> </extension> + <extension name="XR_UNITY_hand_model_pose" number="177" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_hand_model_pose_SPEC_VERSION"/> + <enum value=""XR_UNITY_hand_model_pose"" name="XR_UNITY_HAND_MODEL_POSE_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_178" number="178" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_178_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_178"" name="XR_UNITY_EXTENSION_178_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_179" number="179" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_179_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_179"" name="XR_UNITY_EXTENSION_179_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_180" number="180" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_180_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_180"" name="XR_UNITY_EXTENSION_180_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_181" number="181" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_181_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_181"" name="XR_UNITY_EXTENSION_181_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_182" number="182" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_182_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_182"" name="XR_UNITY_EXTENSION_182_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_183" number="183" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_183_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_183"" name="XR_UNITY_EXTENSION_183_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_184" number="184" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_184_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_184"" name="XR_UNITY_EXTENSION_184_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_185" number="185" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_185_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_185"" name="XR_UNITY_EXTENSION_185_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_UNITY_extension_186" number="186" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_UNITY_extension_186_SPEC_VERSION"/> + <enum value=""XR_UNITY_extension_186"" name="XR_UNITY_EXTENSION_186_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_187" number="187" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_187_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_187"" name="XR_LIV_EXTENSION_187_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_188" number="188" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_188_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_188"" name="XR_LIV_EXTENSION_188_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_189" number="189" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_189_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_189"" name="XR_LIV_EXTENSION_189_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_190" number="190" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_190_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_190"" name="XR_LIV_EXTENSION_190_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_191" number="191" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_191_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_191"" name="XR_LIV_EXTENSION_191_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_192" number="192" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_192_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_192"" name="XR_LIV_EXTENSION_192_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_193" number="193" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_193_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_193"" name="XR_LIV_EXTENSION_193_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_194" number="194" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_194_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_194"" name="XR_LIV_EXTENSION_194_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_195" number="195" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_195_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_195"" name="XR_LIV_EXTENSION_195_EXTENSION_NAME"/> + </require> + </extension> + + <extension name="XR_LIV_extension_196" number="196" type="instance" supported="disabled"> + <require> + <enum value="1" name="XR_LIV_extension_196_SPEC_VERSION"/> + <enum value=""XR_LIV_extension_196"" name="XR_LIV_EXTENSION_196_EXTENSION_NAME"/> + </require> + </extension> + </extensions> </registry> |