diff --git a/wineopenxr/make_openxr b/wineopenxr/make_openxr index ff7bd67b..6f73ce1a 100755 --- a/wineopenxr/make_openxr +++ b/wineopenxr/make_openxr @@ -178,6 +178,11 @@ FUNCTION_OVERRIDES = { "xrCreateSwapchain" : {"dispatch" : True, "driver" : True, "thunk" : False}, "xrDestroySwapchain" : {"dispatch" : True, "driver" : True, "thunk" : False}, "xrEndFrame" : {"dispatch" : True, "driver" : True, "thunk" : False}, + + "xrCreateSceneObserverMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrDestroySceneObserverMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrCreateSceneMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, + "xrDestroySceneMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False}, } STRUCT_CHAIN_CONVERSIONS = [ @@ -831,6 +836,8 @@ class XrHandle(object): return "wine_session->wine_instance->funcs" if self.parent in ["XrActionSet"]: return "wine_action_set->wine_instance->funcs" + if self.parent in ["XrSceneObserverMSFT"]: + return "wine_scene_observer_msft->wine_session->wine_instance->funcs" LOGGER.error("Unhandled dispatchable parent: {0}".format(self.parent)) @@ -881,6 +888,10 @@ class XrHandle(object): return None if self.name == "XrSpace": return None + if self.name == "XrSceneObserverMSFT": + native_handle_name = "scene_observer_msft" + if self.name == "XrSceneMSFT": + native_handle_name = "scene_msft" if native_handle_name: return "((wine_{0} *){1})->{2}".format(self.name, name, native_handle_name) @@ -1616,10 +1627,15 @@ class XrStruct(Sequence): if self.is_alias() and not conv: return "" - if self.union: - text = "union {0}".format(self.name) + if conv: + text = "typedef " else: - text = "struct {0}".format(self.name) + text = "" + + if self.union: + text += "union {0}".format(self.name) + else: + text += "struct {0}".format(self.name) if postfix is not None: text += postfix @@ -1635,7 +1651,10 @@ class XrStruct(Sequence): text += " {0};\n".format(m.definition()) if postfix is not None: - text += "}} {1};\n\n".format(self.name, postfix) + if conv: + text += "}} {0}{1};\n\n".format(self.name, postfix) + else: + text += "}} {1};\n\n".format(self.name, postfix) else: text += "}};\n".format(self.name) diff --git a/wineopenxr/openxr.c b/wineopenxr/openxr.c index 45b7045e..4a0014c4 100644 --- a/wineopenxr/openxr.c +++ b/wineopenxr/openxr.c @@ -1022,12 +1022,108 @@ XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor) return XR_SUCCESS; } +XrResult WINAPI wine_xrCreateSceneObserverMSFT(XrSession session, + const XrSceneObserverCreateInfoMSFT *createInfo, XrSceneObserverMSFT *observer) +{ + wine_XrSession *wine_session = (wine_XrSession *)session; + wine_XrSceneObserverMSFT *wine_scene_observer_msft; + XrResult res; + + WINE_TRACE("%p, %p, %p\n", session, createInfo, observer); + + wine_scene_observer_msft = heap_alloc_zero(sizeof(*wine_scene_observer_msft)); + + res = wine_session->wine_instance->funcs.p_xrCreateSceneObserverMSFT(wine_session->session, + createInfo, &wine_scene_observer_msft->scene_observer_msft); + if(res != XR_SUCCESS){ + WINE_WARN("xrCreateSceneObserverMSFT failed: %d\n", res); + heap_free(wine_scene_observer_msft); + return res; + } + + wine_scene_observer_msft->wine_session = wine_session; + + *observer = (XrSceneObserverMSFT)wine_scene_observer_msft; + + WINE_TRACE("allocated wine sceneObserver %p for native sceneObserver %p\n", + wine_scene_observer_msft, wine_scene_observer_msft->scene_observer_msft); + + return XR_SUCCESS; +} + +XrResult WINAPI wine_xrDestroySceneObserverMSFT(XrSceneObserverMSFT observer) +{ + wine_XrSceneObserverMSFT *wine_observer = (wine_XrSceneObserverMSFT *)observer; + XrResult res; + + WINE_TRACE("%p\n", observer); + + res = wine_observer->wine_session->wine_instance->funcs.p_xrDestroySceneObserverMSFT(wine_observer->scene_observer_msft); + if(res != XR_SUCCESS){ + WINE_WARN("xrDestroySceneObserverMSFT failed: %d\n", res); + return res; + } + + heap_free(wine_observer); + + return XR_SUCCESS; +} + +XrResult WINAPI wine_xrCreateSceneMSFT(XrSceneObserverMSFT observer, + const XrSceneCreateInfoMSFT *createInfo, XrSceneMSFT *scene) +{ + wine_XrSceneObserverMSFT *wine_observer = (wine_XrSceneObserverMSFT *)observer; + wine_XrSceneMSFT *wine_scene_msft; + XrResult res; + + WINE_TRACE("%p, %p, %p\n", observer, createInfo, scene); + + wine_scene_msft = heap_alloc_zero(sizeof(*wine_scene_msft)); + + res = wine_observer->wine_session->wine_instance->funcs.p_xrCreateSceneMSFT(wine_observer->scene_observer_msft, + createInfo, &wine_scene_msft->scene_msft); + if(res != XR_SUCCESS){ + WINE_WARN("xrCreateSceneMSFT failed: %d\n", res); + heap_free(wine_scene_msft); + return res; + } + + wine_scene_msft->wine_scene_observer_msft = wine_observer; + + *scene = (XrSceneMSFT)wine_scene_msft; + + WINE_TRACE("allocated wine sceneMSFT %p for native sceneMSFT %p\n", + wine_scene_msft, wine_scene_msft->scene_msft); + + return XR_SUCCESS; +} + +XrResult WINAPI wine_xrDestroySceneMSFT(XrSceneMSFT scene) +{ + wine_XrSceneMSFT *wine_scene = (wine_XrSceneMSFT *)scene; + XrResult res; + + WINE_TRACE("%p\n", scene); + + res = wine_scene->wine_scene_observer_msft->wine_session->wine_instance->funcs.p_xrDestroySceneMSFT(wine_scene->scene_msft); + if(res != XR_SUCCESS){ + WINE_WARN("xrDestroySceneMSFT failed: %d\n", res); + return res; + } + + heap_free(wine_scene); + + return XR_SUCCESS; +} + XrResult WINAPI wine_xrNegotiateLoaderRuntimeInterface( const XrNegotiateLoaderInfo_win *loaderInfo, XrNegotiateRuntimeRequest_win *runtimeRequest) { XrResult res; + WINE_TRACE("%p %p\n", loaderInfo, runtimeRequest); + if(!loaderInfo || !runtimeRequest) return XR_ERROR_INITIALIZATION_FAILED; diff --git a/wineopenxr/openxr_private.h b/wineopenxr/openxr_private.h index 6d937444..4a0c0f42 100644 --- a/wineopenxr/openxr_private.h +++ b/wineopenxr/openxr_private.h @@ -50,6 +50,16 @@ typedef struct wine_XrSpatialAnchorMSFT { struct wine_XrSession *wine_session; } wine_XrSpatialAnchorMSFT; +typedef struct wine_XrSceneObserverMSFT { + XrSceneObserverMSFT scene_observer_msft; + struct wine_XrSession *wine_session; +} wine_XrSceneObserverMSFT; + +typedef struct wine_XrSceneMSFT { + XrSceneMSFT scene_msft; + struct wine_XrSceneObserverMSFT *wine_scene_observer_msft; +} wine_XrSceneMSFT; + typedef struct wine_XrSwapchain{ XrSwapchain swapchain; struct wine_XrSession *wine_session; diff --git a/wineopenxr/openxr_thunks.c b/wineopenxr/openxr_thunks.c index 1f12adc7..86d59f95 100644 --- a/wineopenxr/openxr_thunks.c +++ b/wineopenxr/openxr_thunks.c @@ -30,6 +30,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(openxr); #if defined(USE_STRUCT_CONVERSION) +static inline void convert_XrSceneMeshBuffersGetInfoMSFT_win_to_host(const XrSceneMeshBuffersGetInfoMSFT *in, XrSceneMeshBuffersGetInfoMSFT_host *out) +{ + if (!in) return; + + out->type = in->type; + out->next = in->next; + out->meshBufferId = in->meshBufferId; +} + #endif /* USE_STRUCT_CONVERSION */ XrResult convert_XrInstanceCreateInfo_struct_chain(const void *next, XrInstanceCreateInfo *out_struct) @@ -98,6 +107,12 @@ XrResult WINAPI wine_xrBeginSession(XrSession session, const XrSessionBeginInfo return xrBeginSession(((wine_XrSession *)session)->session, beginInfo); } +static XrResult WINAPI wine_xrComputeNewSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT *computeInfo) +{ + WINE_TRACE("%p, %p\n", sceneObserver, computeInfo); + return ((wine_XrSceneObserverMSFT *)sceneObserver)->wine_session->wine_instance->funcs.p_xrComputeNewSceneMSFT(((wine_XrSceneObserverMSFT *)sceneObserver)->scene_observer_msft, computeInfo); +} + XrResult WINAPI wine_xrCreateAction(XrActionSet actionSet, const XrActionCreateInfo *createInfo, XrAction *action) { WINE_TRACE("%p, %p, %p\n", actionSet, createInfo, action); @@ -140,6 +155,12 @@ static XrResult WINAPI wine_xrCreateSpatialGraphNodeSpaceMSFT(XrSession session, return ((wine_XrSession *)session)->wine_instance->funcs.p_xrCreateSpatialGraphNodeSpaceMSFT(((wine_XrSession *)session)->session, createInfo, space); } +static XrResult WINAPI wine_xrDeserializeSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT *deserializeInfo) +{ + WINE_TRACE("%p, %p\n", sceneObserver, deserializeInfo); + return ((wine_XrSceneObserverMSFT *)sceneObserver)->wine_session->wine_instance->funcs.p_xrDeserializeSceneMSFT(((wine_XrSceneObserverMSFT *)sceneObserver)->scene_observer_msft, deserializeInfo); +} + XrResult WINAPI wine_xrDestroyAction(XrAction action) { WINE_TRACE("%p\n", action); @@ -200,6 +221,18 @@ XrResult WINAPI wine_xrEnumerateReferenceSpaces(XrSession session, uint32_t spac return xrEnumerateReferenceSpaces(((wine_XrSession *)session)->session, spaceCapacityInput, spaceCountOutput, spaces); } +static XrResult WINAPI wine_xrEnumerateReprojectionModesMSFT(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t *modeCountOutput, XrReprojectionModeMSFT *modes) +{ + WINE_TRACE("%p, 0x%s, %#x, %u, %p, %p\n", instance, wine_dbgstr_longlong(systemId), viewConfigurationType, modeCapacityInput, modeCountOutput, modes); + return ((wine_XrInstance *)instance)->funcs.p_xrEnumerateReprojectionModesMSFT(((wine_XrInstance *)instance)->instance, systemId, viewConfigurationType, modeCapacityInput, modeCountOutput, modes); +} + +static XrResult WINAPI wine_xrEnumerateSceneComputeFeaturesMSFT(XrInstance instance, XrSystemId systemId, uint32_t featureCapacityInput, uint32_t *featureCountOutput, XrSceneComputeFeatureMSFT *features) +{ + WINE_TRACE("%p, 0x%s, %u, %p, %p\n", instance, wine_dbgstr_longlong(systemId), featureCapacityInput, featureCountOutput, features); + return ((wine_XrInstance *)instance)->funcs.p_xrEnumerateSceneComputeFeaturesMSFT(((wine_XrInstance *)instance)->instance, systemId, featureCapacityInput, featureCountOutput, features); +} + XrResult WINAPI wine_xrEnumerateViewConfigurationViews(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t *viewCountOutput, XrViewConfigurationView *views) { WINE_TRACE("%p, 0x%s, %#x, %u, %p, %p\n", instance, wine_dbgstr_longlong(systemId), viewConfigurationType, viewCapacityInput, viewCountOutput, views); @@ -236,6 +269,18 @@ XrResult WINAPI wine_xrGetActionStateVector2f(XrSession session, const XrActionS return xrGetActionStateVector2f(((wine_XrSession *)session)->session, getInfo, state); } +static XrResult WINAPI wine_xrGetAudioInputDeviceGuidOculus(XrInstance instance, wchar_t buffer[]) +{ + WINE_TRACE("%p, %p\n", instance, buffer); + return ((wine_XrInstance *)instance)->funcs.p_xrGetAudioInputDeviceGuidOculus(((wine_XrInstance *)instance)->instance, buffer); +} + +static XrResult WINAPI wine_xrGetAudioOutputDeviceGuidOculus(XrInstance instance, wchar_t buffer[]) +{ + WINE_TRACE("%p, %p\n", instance, buffer); + return ((wine_XrInstance *)instance)->funcs.p_xrGetAudioOutputDeviceGuidOculus(((wine_XrInstance *)instance)->instance, buffer); +} + static XrResult WINAPI wine_xrGetControllerModelKeyMSFT(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT *controllerModelKeyState) { WINE_TRACE("%p, 0x%s, %p\n", session, wine_dbgstr_longlong(topLevelUserPath), controllerModelKeyState); @@ -290,6 +335,47 @@ XrResult WINAPI wine_xrGetReferenceSpaceBoundsRect(XrSession session, XrReferenc return xrGetReferenceSpaceBoundsRect(((wine_XrSession *)session)->session, referenceSpaceType, bounds); } +static XrResult WINAPI wine_xrGetSceneComponentsMSFT(XrSceneMSFT scene, const XrSceneComponentsGetInfoMSFT *getInfo, XrSceneComponentsMSFT *components) +{ + WINE_TRACE("%p, %p, %p\n", scene, getInfo, components); + return ((wine_XrSceneMSFT *)scene)->wine_scene_observer_msft->wine_session->wine_instance->funcs.p_xrGetSceneComponentsMSFT(((wine_XrSceneMSFT *)scene)->scene_msft, getInfo, components); +} + +static XrResult WINAPI wine_xrGetSceneComputeStateMSFT(XrSceneObserverMSFT sceneObserver, XrSceneComputeStateMSFT *state) +{ + WINE_TRACE("%p, %p\n", sceneObserver, state); + return ((wine_XrSceneObserverMSFT *)sceneObserver)->wine_session->wine_instance->funcs.p_xrGetSceneComputeStateMSFT(((wine_XrSceneObserverMSFT *)sceneObserver)->scene_observer_msft, state); +} + +static XrResult WINAPI wine_xrGetSceneMeshBuffersMSFT(XrSceneMSFT scene, const XrSceneMeshBuffersGetInfoMSFT *getInfo, XrSceneMeshBuffersMSFT *buffers) +{ +#if defined(USE_STRUCT_CONVERSION) + XrResult result; + XrSceneMeshBuffersGetInfoMSFT_host getInfo_host; + WINE_TRACE("%p, %p, %p\n", scene, getInfo, buffers); + + convert_XrSceneMeshBuffersGetInfoMSFT_win_to_host(getInfo, &getInfo_host); + result = ((wine_XrSceneMSFT *)scene)->wine_scene_observer_msft->wine_session->wine_instance->funcs.p_xrGetSceneMeshBuffersMSFT(((wine_XrSceneMSFT *)scene)->scene_msft, &getInfo_host, buffers); + + return result; +#else + WINE_TRACE("%p, %p, %p\n", scene, getInfo, buffers); + return ((wine_XrSceneMSFT *)scene)->wine_scene_observer_msft->wine_session->wine_instance->funcs.p_xrGetSceneMeshBuffersMSFT(((wine_XrSceneMSFT *)scene)->scene_msft, getInfo, buffers); +#endif +} + +static XrResult WINAPI wine_xrGetSerializedSceneFragmentDataMSFT(XrSceneMSFT scene, const XrSerializedSceneFragmentDataGetInfoMSFT *getInfo, uint32_t countInput, uint32_t *readOutput, uint8_t *buffer) +{ + WINE_TRACE("%p, %p, %u, %p, %p\n", scene, getInfo, countInput, readOutput, buffer); + return ((wine_XrSceneMSFT *)scene)->wine_scene_observer_msft->wine_session->wine_instance->funcs.p_xrGetSerializedSceneFragmentDataMSFT(((wine_XrSceneMSFT *)scene)->scene_msft, getInfo, countInput, readOutput, buffer); +} + +static XrResult WINAPI wine_xrGetSwapchainStateFB(XrSwapchain swapchain, XrSwapchainStateBaseHeaderFB *state) +{ + WINE_TRACE("%p, %p\n", swapchain, state); + return ((wine_XrSwapchain *)swapchain)->wine_session->wine_instance->funcs.p_xrGetSwapchainStateFB(((wine_XrSwapchain *)swapchain)->swapchain, state); +} + XrResult WINAPI wine_xrGetSystemProperties(XrInstance instance, XrSystemId systemId, XrSystemProperties *properties) { WINE_TRACE("%p, 0x%s, %p\n", instance, wine_dbgstr_longlong(systemId), properties); @@ -332,6 +418,12 @@ static XrResult WINAPI wine_xrLocateHandJointsEXT(XrHandTrackerEXT handTracker, return ((wine_XrHandTrackerEXT *)handTracker)->wine_session->wine_instance->funcs.p_xrLocateHandJointsEXT(((wine_XrHandTrackerEXT *)handTracker)->hand_tracker, locateInfo, locations); } +static XrResult WINAPI wine_xrLocateSceneComponentsMSFT(XrSceneMSFT scene, const XrSceneComponentsLocateInfoMSFT *locateInfo, XrSceneComponentLocationsMSFT *locations) +{ + WINE_TRACE("%p, %p, %p\n", scene, locateInfo, locations); + return ((wine_XrSceneMSFT *)scene)->wine_scene_observer_msft->wine_session->wine_instance->funcs.p_xrLocateSceneComponentsMSFT(((wine_XrSceneMSFT *)scene)->scene_msft, locateInfo, locations); +} + XrResult WINAPI wine_xrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation *location) { WINE_TRACE("%p, %p, 0x%s, %p\n", space, baseSpace, wine_dbgstr_longlong(time), location); @@ -464,6 +556,12 @@ static XrResult WINAPI wine_xrUpdateHandMeshMSFT(XrHandTrackerEXT handTracker, c return ((wine_XrHandTrackerEXT *)handTracker)->wine_session->wine_instance->funcs.p_xrUpdateHandMeshMSFT(((wine_XrHandTrackerEXT *)handTracker)->hand_tracker, updateInfo, handMesh); } +static XrResult WINAPI wine_xrUpdateSwapchainFB(XrSwapchain swapchain, const XrSwapchainStateBaseHeaderFB *state) +{ + WINE_TRACE("%p, %p\n", swapchain, state); + return ((wine_XrSwapchain *)swapchain)->wine_session->wine_instance->funcs.p_xrUpdateSwapchainFB(((wine_XrSwapchain *)swapchain)->swapchain, state); +} + XrResult WINAPI wine_xrWaitFrame(XrSession session, const XrFrameWaitInfo *frameWaitInfo, XrFrameState *frameState) { WINE_TRACE("%p, %p, %p\n", session, frameWaitInfo, frameState); @@ -483,6 +581,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrAttachSessionActionSets", &wine_xrAttachSessionActionSets}, {"xrBeginFrame", &wine_xrBeginFrame}, {"xrBeginSession", &wine_xrBeginSession}, + {"xrComputeNewSceneMSFT", &wine_xrComputeNewSceneMSFT}, {"xrConvertTimeToWin32PerformanceCounterKHR", &wine_xrConvertTimeToWin32PerformanceCounterKHR}, {"xrConvertWin32PerformanceCounterToTimeKHR", &wine_xrConvertWin32PerformanceCounterToTimeKHR}, {"xrCreateAction", &wine_xrCreateAction}, @@ -492,6 +591,8 @@ static const struct openxr_func xr_dispatch_table[] = {"xrCreateHandTrackerEXT", &wine_xrCreateHandTrackerEXT}, {"xrCreateInstance", &wine_xrCreateInstance}, {"xrCreateReferenceSpace", &wine_xrCreateReferenceSpace}, + {"xrCreateSceneMSFT", &wine_xrCreateSceneMSFT}, + {"xrCreateSceneObserverMSFT", &wine_xrCreateSceneObserverMSFT}, {"xrCreateSession", &wine_xrCreateSession}, {"xrCreateSpatialAnchorMSFT", &wine_xrCreateSpatialAnchorMSFT}, {"xrCreateSpatialAnchorSpaceMSFT", &wine_xrCreateSpatialAnchorSpaceMSFT}, @@ -499,10 +600,13 @@ static const struct openxr_func xr_dispatch_table[] = {"xrCreateSwapchain", &wine_xrCreateSwapchain}, {"xrCreateVulkanDeviceKHR", &wine_xrCreateVulkanDeviceKHR}, {"xrCreateVulkanInstanceKHR", &wine_xrCreateVulkanInstanceKHR}, + {"xrDeserializeSceneMSFT", &wine_xrDeserializeSceneMSFT}, {"xrDestroyAction", &wine_xrDestroyAction}, {"xrDestroyActionSet", &wine_xrDestroyActionSet}, {"xrDestroyHandTrackerEXT", &wine_xrDestroyHandTrackerEXT}, {"xrDestroyInstance", &wine_xrDestroyInstance}, + {"xrDestroySceneMSFT", &wine_xrDestroySceneMSFT}, + {"xrDestroySceneObserverMSFT", &wine_xrDestroySceneObserverMSFT}, {"xrDestroySession", &wine_xrDestroySession}, {"xrDestroySpace", &wine_xrDestroySpace}, {"xrDestroySpatialAnchorMSFT", &wine_xrDestroySpatialAnchorMSFT}, @@ -516,6 +620,8 @@ static const struct openxr_func xr_dispatch_table[] = {"xrEnumerateEnvironmentBlendModes", &wine_xrEnumerateEnvironmentBlendModes}, {"xrEnumerateInstanceExtensionProperties", &wine_xrEnumerateInstanceExtensionProperties}, {"xrEnumerateReferenceSpaces", &wine_xrEnumerateReferenceSpaces}, + {"xrEnumerateReprojectionModesMSFT", &wine_xrEnumerateReprojectionModesMSFT}, + {"xrEnumerateSceneComputeFeaturesMSFT", &wine_xrEnumerateSceneComputeFeaturesMSFT}, {"xrEnumerateSwapchainFormats", &wine_xrEnumerateSwapchainFormats}, {"xrEnumerateSwapchainImages", &wine_xrEnumerateSwapchainImages}, {"xrEnumerateViewConfigurationViews", &wine_xrEnumerateViewConfigurationViews}, @@ -524,6 +630,8 @@ static const struct openxr_func xr_dispatch_table[] = {"xrGetActionStateFloat", &wine_xrGetActionStateFloat}, {"xrGetActionStatePose", &wine_xrGetActionStatePose}, {"xrGetActionStateVector2f", &wine_xrGetActionStateVector2f}, + {"xrGetAudioInputDeviceGuidOculus", &wine_xrGetAudioInputDeviceGuidOculus}, + {"xrGetAudioOutputDeviceGuidOculus", &wine_xrGetAudioOutputDeviceGuidOculus}, {"xrGetControllerModelKeyMSFT", &wine_xrGetControllerModelKeyMSFT}, {"xrGetControllerModelPropertiesMSFT", &wine_xrGetControllerModelPropertiesMSFT}, {"xrGetControllerModelStateMSFT", &wine_xrGetControllerModelStateMSFT}, @@ -536,6 +644,11 @@ static const struct openxr_func xr_dispatch_table[] = {"xrGetInstanceProperties", &wine_xrGetInstanceProperties}, {"xrGetOpenGLGraphicsRequirementsKHR", &wine_xrGetOpenGLGraphicsRequirementsKHR}, {"xrGetReferenceSpaceBoundsRect", &wine_xrGetReferenceSpaceBoundsRect}, + {"xrGetSceneComponentsMSFT", &wine_xrGetSceneComponentsMSFT}, + {"xrGetSceneComputeStateMSFT", &wine_xrGetSceneComputeStateMSFT}, + {"xrGetSceneMeshBuffersMSFT", &wine_xrGetSceneMeshBuffersMSFT}, + {"xrGetSerializedSceneFragmentDataMSFT", &wine_xrGetSerializedSceneFragmentDataMSFT}, + {"xrGetSwapchainStateFB", &wine_xrGetSwapchainStateFB}, {"xrGetSystem", &wine_xrGetSystem}, {"xrGetSystemProperties", &wine_xrGetSystemProperties}, {"xrGetViewConfigurationProperties", &wine_xrGetViewConfigurationProperties}, @@ -548,6 +661,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrGetVulkanInstanceExtensionsKHR", &wine_xrGetVulkanInstanceExtensionsKHR}, {"xrLoadControllerModelMSFT", &wine_xrLoadControllerModelMSFT}, {"xrLocateHandJointsEXT", &wine_xrLocateHandJointsEXT}, + {"xrLocateSceneComponentsMSFT", &wine_xrLocateSceneComponentsMSFT}, {"xrLocateSpace", &wine_xrLocateSpace}, {"xrLocateViews", &wine_xrLocateViews}, {"xrPathToString", &wine_xrPathToString}, @@ -571,6 +685,7 @@ static const struct openxr_func xr_dispatch_table[] = {"xrSyncActions", &wine_xrSyncActions}, {"xrThermalGetTemperatureTrendEXT", &wine_xrThermalGetTemperatureTrendEXT}, {"xrUpdateHandMeshMSFT", &wine_xrUpdateHandMeshMSFT}, + {"xrUpdateSwapchainFB", &wine_xrUpdateSwapchainFB}, {"xrWaitFrame", &wine_xrWaitFrame}, {"xrWaitSwapchainImage", &wine_xrWaitSwapchainImage}, }; @@ -595,6 +710,7 @@ static const char * const xr_extensions[] = "XR_EXTX_overlay", "XR_EXT_conformance_automation", "XR_EXT_eye_gaze_interaction", + "XR_EXT_hand_joints_motion_range", "XR_EXT_hand_tracking", "XR_EXT_hp_mixed_reality_controller", "XR_EXT_performance_settings", @@ -604,6 +720,8 @@ static const char * const xr_extensions[] = "XR_EXT_win32_appcontainer_compatible", "XR_FB_color_space", "XR_FB_display_refresh_rate", + "XR_FB_swapchain_update_state", + "XR_FB_swapchain_update_state_vulkan", "XR_HTC_vive_cosmos_controller_interaction", "XR_HUAWEI_controller_interaction", "XR_KHR_D3D11_enable", @@ -623,16 +741,20 @@ static const char * const xr_extensions[] = "XR_KHR_win32_convert_performance_counter_time", "XR_MND_headless", "XR_MND_swapchain_usage_input_attachment_bit", + "XR_MSFT_composition_layer_reprojection", "XR_MSFT_controller_model", "XR_MSFT_first_person_observer", "XR_MSFT_hand_interaction", "XR_MSFT_hand_tracking_mesh", "XR_MSFT_holographic_window_attachment", + "XR_MSFT_scene_understanding", + "XR_MSFT_scene_understanding_serialization", "XR_MSFT_secondary_view_configuration", "XR_MSFT_spatial_anchor", "XR_MSFT_spatial_graph_bridge", "XR_MSFT_unbounded_reference_space", "XR_OCULUS_android_session_state_enable", + "XR_OCULUS_audio_device_guid", "XR_VALVE_analog_threshold", "XR_VARJO_composition_layer_depth_test", "XR_VARJO_environment_depth_estimation", diff --git a/wineopenxr/openxr_thunks.h b/wineopenxr/openxr_thunks.h index 16358b9c..30de03fb 100644 --- a/wineopenxr/openxr_thunks.h +++ b/wineopenxr/openxr_thunks.h @@ -29,6 +29,8 @@ XrResult WINAPI wine_xrConvertTimeToWin32PerformanceCounterKHR(XrInstance instan XrResult WINAPI wine_xrConvertWin32PerformanceCounterToTimeKHR(XrInstance instance, const LARGE_INTEGER *performanceCounter, XrTime *time) 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_xrCreateSpatialAnchorMSFT(XrSession session, const XrSpatialAnchorCreateInfoMSFT *createInfo, XrSpatialAnchorMSFT *anchor) DECLSPEC_HIDDEN; XrResult WINAPI wine_xrCreateSwapchain(XrSession session, const XrSwapchainCreateInfo *createInfo, XrSwapchain *swapchain); @@ -36,6 +38,8 @@ XrResult WINAPI wine_xrCreateVulkanDeviceKHR(XrInstance instance, const XrVulkan XrResult WINAPI wine_xrCreateVulkanInstanceKHR(XrInstance instance, const XrVulkanInstanceCreateInfoKHR *createInfo, VkInstance *vulkanInstance, VkResult *vulkanResult) 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_xrDestroySwapchain(XrSwapchain swapchain); @@ -55,6 +59,14 @@ XrResult WINAPI wine_xrPollEvent(XrInstance instance, XrEventDataBuffer *eventDa /* Private thunks */ +typedef struct XrSceneMeshBuffersGetInfoMSFT_host +{ + XrStructureType type; + const void *next; + uint64_t meshBufferId; +} XrSceneMeshBuffersGetInfoMSFT_host; + + XrResult convert_XrInstanceCreateInfo_struct_chain(const void *next, XrInstanceCreateInfo *out_struct) DECLSPEC_HIDDEN; void free_XrInstanceCreateInfo_struct_chain(XrInstanceCreateInfo *s) DECLSPEC_HIDDEN; @@ -67,12 +79,15 @@ struct openxr_instance_funcs XrResult (*p_xrAttachSessionActionSets)(XrSession, const XrSessionActionSetsAttachInfo *); XrResult (*p_xrBeginFrame)(XrSession, const XrFrameBeginInfo *); XrResult (*p_xrBeginSession)(XrSession, const XrSessionBeginInfo *); + 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_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_xrCreateSpatialAnchorMSFT)(XrSession, const XrSpatialAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *); XrResult (*p_xrCreateSpatialAnchorSpaceMSFT)(XrSession, const XrSpatialAnchorSpaceCreateInfoMSFT *, XrSpace *); @@ -80,9 +95,12 @@ struct openxr_instance_funcs XrResult (*p_xrCreateSwapchain)(XrSession, const XrSwapchainCreateInfo *, XrSwapchain *); XrResult (*p_xrCreateVulkanDeviceKHR)(XrInstance, const XrVulkanDeviceCreateInfoKHR *, VkDevice *, VkResult *); XrResult (*p_xrCreateVulkanInstanceKHR)(XrInstance, const XrVulkanInstanceCreateInfoKHR *, VkInstance *, VkResult *); + XrResult (*p_xrDeserializeSceneMSFT)(XrSceneObserverMSFT, const XrSceneDeserializeInfoMSFT *); XrResult (*p_xrDestroyAction)(XrAction); XrResult (*p_xrDestroyActionSet)(XrActionSet); XrResult (*p_xrDestroyHandTrackerEXT)(XrHandTrackerEXT); + XrResult (*p_xrDestroySceneMSFT)(XrSceneMSFT); + XrResult (*p_xrDestroySceneObserverMSFT)(XrSceneObserverMSFT); XrResult (*p_xrDestroySession)(XrSession); XrResult (*p_xrDestroySpace)(XrSpace); XrResult (*p_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT); @@ -95,6 +113,8 @@ struct openxr_instance_funcs XrResult (*p_xrEnumerateDisplayRefreshRatesFB)(XrSession, uint32_t, uint32_t *, float *); XrResult (*p_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *); XrResult (*p_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *); + XrResult (*p_xrEnumerateReprojectionModesMSFT)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrReprojectionModeMSFT *); + XrResult (*p_xrEnumerateSceneComputeFeaturesMSFT)(XrInstance, XrSystemId, uint32_t, uint32_t *, XrSceneComputeFeatureMSFT *); XrResult (*p_xrEnumerateSwapchainFormats)(XrSession, uint32_t, uint32_t *, int64_t *); XrResult (*p_xrEnumerateSwapchainImages)(XrSwapchain, uint32_t, uint32_t *, XrSwapchainImageBaseHeader *); XrResult (*p_xrEnumerateViewConfigurationViews)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrViewConfigurationView *); @@ -103,6 +123,8 @@ struct openxr_instance_funcs XrResult (*p_xrGetActionStateFloat)(XrSession, const XrActionStateGetInfo *, XrActionStateFloat *); XrResult (*p_xrGetActionStatePose)(XrSession, const XrActionStateGetInfo *, XrActionStatePose *); XrResult (*p_xrGetActionStateVector2f)(XrSession, const XrActionStateGetInfo *, XrActionStateVector2f *); + XrResult (*p_xrGetAudioInputDeviceGuidOculus)(XrInstance, wchar_t[]); + XrResult (*p_xrGetAudioOutputDeviceGuidOculus)(XrInstance, wchar_t[]); XrResult (*p_xrGetControllerModelKeyMSFT)(XrSession, XrPath, XrControllerModelKeyStateMSFT *); XrResult (*p_xrGetControllerModelPropertiesMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelPropertiesMSFT *); XrResult (*p_xrGetControllerModelStateMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelStateMSFT *); @@ -112,6 +134,15 @@ struct openxr_instance_funcs XrResult (*p_xrGetInstanceProperties)(XrInstance, XrInstanceProperties *); XrResult (*p_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsOpenGLKHR *); XrResult (*p_xrGetReferenceSpaceBoundsRect)(XrSession, XrReferenceSpaceType, XrExtent2Df *); + XrResult (*p_xrGetSceneComponentsMSFT)(XrSceneMSFT, const XrSceneComponentsGetInfoMSFT *, XrSceneComponentsMSFT *); + XrResult (*p_xrGetSceneComputeStateMSFT)(XrSceneObserverMSFT, XrSceneComputeStateMSFT *); +#if defined(USE_STRUCT_CONVERSION) + XrResult (*p_xrGetSceneMeshBuffersMSFT)(XrSceneMSFT, const XrSceneMeshBuffersGetInfoMSFT_host *, XrSceneMeshBuffersMSFT *); +#else + XrResult (*p_xrGetSceneMeshBuffersMSFT)(XrSceneMSFT, const XrSceneMeshBuffersGetInfoMSFT *, XrSceneMeshBuffersMSFT *); +#endif + XrResult (*p_xrGetSerializedSceneFragmentDataMSFT)(XrSceneMSFT, const XrSerializedSceneFragmentDataGetInfoMSFT *, uint32_t, uint32_t *, uint8_t *); + XrResult (*p_xrGetSwapchainStateFB)(XrSwapchain, XrSwapchainStateBaseHeaderFB *); XrResult (*p_xrGetSystem)(XrInstance, const XrSystemGetInfo *, XrSystemId *); XrResult (*p_xrGetSystemProperties)(XrInstance, XrSystemId, XrSystemProperties *); XrResult (*p_xrGetViewConfigurationProperties)(XrInstance, XrSystemId, XrViewConfigurationType, XrViewConfigurationProperties *); @@ -124,6 +155,7 @@ struct openxr_instance_funcs XrResult (*p_xrGetVulkanInstanceExtensionsKHR)(XrInstance, XrSystemId, uint32_t, uint32_t *, char *); XrResult (*p_xrLoadControllerModelMSFT)(XrSession, XrControllerModelKeyMSFT, uint32_t, uint32_t *, uint8_t *); XrResult (*p_xrLocateHandJointsEXT)(XrHandTrackerEXT, const XrHandJointsLocateInfoEXT *, XrHandJointLocationsEXT *); + XrResult (*p_xrLocateSceneComponentsMSFT)(XrSceneMSFT, const XrSceneComponentsLocateInfoMSFT *, XrSceneComponentLocationsMSFT *); XrResult (*p_xrLocateSpace)(XrSpace, XrSpace, XrTime, XrSpaceLocation *); XrResult (*p_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *); XrResult (*p_xrPathToString)(XrInstance, XrPath, uint32_t, uint32_t *, char *); @@ -147,6 +179,7 @@ struct openxr_instance_funcs XrResult (*p_xrSyncActions)(XrSession, const XrActionsSyncInfo *); XrResult (*p_xrThermalGetTemperatureTrendEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsNotificationLevelEXT *, float *, float *); XrResult (*p_xrUpdateHandMeshMSFT)(XrHandTrackerEXT, const XrHandMeshUpdateInfoMSFT *, XrHandMeshMSFT *); + XrResult (*p_xrUpdateSwapchainFB)(XrSwapchain, const XrSwapchainStateBaseHeaderFB *); XrResult (*p_xrWaitFrame)(XrSession, const XrFrameWaitInfo *, XrFrameState *); XrResult (*p_xrWaitSwapchainImage)(XrSwapchain, const XrSwapchainImageWaitInfo *); }; @@ -157,12 +190,15 @@ struct openxr_instance_funcs USE_XR_FUNC(xrAttachSessionActionSets) \ USE_XR_FUNC(xrBeginFrame) \ USE_XR_FUNC(xrBeginSession) \ + USE_XR_FUNC(xrComputeNewSceneMSFT) \ USE_XR_FUNC(xrCreateAction) \ USE_XR_FUNC(xrCreateActionSet) \ USE_XR_FUNC(xrCreateActionSpace) \ 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(xrCreateSpatialAnchorMSFT) \ USE_XR_FUNC(xrCreateSpatialAnchorSpaceMSFT) \ @@ -170,9 +206,12 @@ struct openxr_instance_funcs USE_XR_FUNC(xrCreateSwapchain) \ USE_XR_FUNC(xrCreateVulkanDeviceKHR) \ USE_XR_FUNC(xrCreateVulkanInstanceKHR) \ + USE_XR_FUNC(xrDeserializeSceneMSFT) \ USE_XR_FUNC(xrDestroyAction) \ USE_XR_FUNC(xrDestroyActionSet) \ USE_XR_FUNC(xrDestroyHandTrackerEXT) \ + USE_XR_FUNC(xrDestroySceneMSFT) \ + USE_XR_FUNC(xrDestroySceneObserverMSFT) \ USE_XR_FUNC(xrDestroySession) \ USE_XR_FUNC(xrDestroySpace) \ USE_XR_FUNC(xrDestroySpatialAnchorMSFT) \ @@ -185,6 +224,8 @@ struct openxr_instance_funcs USE_XR_FUNC(xrEnumerateDisplayRefreshRatesFB) \ USE_XR_FUNC(xrEnumerateEnvironmentBlendModes) \ USE_XR_FUNC(xrEnumerateReferenceSpaces) \ + USE_XR_FUNC(xrEnumerateReprojectionModesMSFT) \ + USE_XR_FUNC(xrEnumerateSceneComputeFeaturesMSFT) \ USE_XR_FUNC(xrEnumerateSwapchainFormats) \ USE_XR_FUNC(xrEnumerateSwapchainImages) \ USE_XR_FUNC(xrEnumerateViewConfigurationViews) \ @@ -193,6 +234,8 @@ struct openxr_instance_funcs USE_XR_FUNC(xrGetActionStateFloat) \ USE_XR_FUNC(xrGetActionStatePose) \ USE_XR_FUNC(xrGetActionStateVector2f) \ + USE_XR_FUNC(xrGetAudioInputDeviceGuidOculus) \ + USE_XR_FUNC(xrGetAudioOutputDeviceGuidOculus) \ USE_XR_FUNC(xrGetControllerModelKeyMSFT) \ USE_XR_FUNC(xrGetControllerModelPropertiesMSFT) \ USE_XR_FUNC(xrGetControllerModelStateMSFT) \ @@ -202,6 +245,11 @@ struct openxr_instance_funcs USE_XR_FUNC(xrGetInstanceProperties) \ USE_XR_FUNC(xrGetOpenGLGraphicsRequirementsKHR) \ USE_XR_FUNC(xrGetReferenceSpaceBoundsRect) \ + USE_XR_FUNC(xrGetSceneComponentsMSFT) \ + USE_XR_FUNC(xrGetSceneComputeStateMSFT) \ + USE_XR_FUNC(xrGetSceneMeshBuffersMSFT) \ + USE_XR_FUNC(xrGetSerializedSceneFragmentDataMSFT) \ + USE_XR_FUNC(xrGetSwapchainStateFB) \ USE_XR_FUNC(xrGetSystem) \ USE_XR_FUNC(xrGetSystemProperties) \ USE_XR_FUNC(xrGetViewConfigurationProperties) \ @@ -214,6 +262,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrGetVulkanInstanceExtensionsKHR) \ USE_XR_FUNC(xrLoadControllerModelMSFT) \ USE_XR_FUNC(xrLocateHandJointsEXT) \ + USE_XR_FUNC(xrLocateSceneComponentsMSFT) \ USE_XR_FUNC(xrLocateSpace) \ USE_XR_FUNC(xrLocateViews) \ USE_XR_FUNC(xrPathToString) \ @@ -237,6 +286,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrSyncActions) \ USE_XR_FUNC(xrThermalGetTemperatureTrendEXT) \ USE_XR_FUNC(xrUpdateHandMeshMSFT) \ + USE_XR_FUNC(xrUpdateSwapchainFB) \ USE_XR_FUNC(xrWaitFrame) \ USE_XR_FUNC(xrWaitSwapchainImage) diff --git a/wineopenxr/wineopenxr.h b/wineopenxr/wineopenxr.h index bca5cf3d..8616a187 100644 --- a/wineopenxr/wineopenxr.h +++ b/wineopenxr/wineopenxr.h @@ -67,9 +67,9 @@ #define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth" #define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 4 #define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list" -#define XR_EXT_performance_settings_SPEC_VERSION 2 +#define XR_EXT_performance_settings_SPEC_VERSION 3 #define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings" -#define XR_EXT_thermal_query_SPEC_VERSION 1 +#define XR_EXT_thermal_query_SPEC_VERSION 2 #define XR_EXT_THERMAL_QUERY_EXTENSION_NAME "XR_EXT_thermal_query" #define XR_KHR_composition_layer_cylinder_SPEC_VERSION 4 #define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME "XR_KHR_composition_layer_cylinder" @@ -105,13 +105,13 @@ #define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME "XR_OCULUS_android_session_state_enable" #define XR_EXT_view_configuration_depth_range_SPEC_VERSION 1 #define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME "XR_EXT_view_configuration_depth_range" -#define XR_EXT_conformance_automation_SPEC_VERSION 2 +#define XR_EXT_conformance_automation_SPEC_VERSION 3 #define XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME "XR_EXT_conformance_automation" #define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 1 #define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge" #define XR_MSFT_hand_interaction_SPEC_VERSION 1 #define XR_MSFT_HAND_INTERACTION_EXTENSION_NAME "XR_MSFT_hand_interaction" -#define XR_EXT_hand_tracking_SPEC_VERSION 3 +#define XR_EXT_hand_tracking_SPEC_VERSION 4 #define XR_EXT_HAND_TRACKING_EXTENSION_NAME "XR_EXT_hand_tracking" #define XR_MSFT_hand_tracking_mesh_SPEC_VERSION 3 #define XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME "XR_MSFT_hand_tracking_mesh" @@ -128,10 +128,16 @@ #define XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME "XR_EPIC_view_configuration_fov" #define XR_MSFT_holographic_window_attachment_SPEC_VERSION 1 #define XR_MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME "XR_MSFT_holographic_window_attachment" +#define XR_MSFT_composition_layer_reprojection_SPEC_VERSION 1 +#define XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME "XR_MSFT_composition_layer_reprojection" #define XR_HUAWEI_controller_interaction_SPEC_VERSION 1 #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_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 +#define XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME "XR_EXT_hand_joints_motion_range" #define XR_KHR_vulkan_enable2_SPEC_VERSION 2 #define XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME "XR_KHR_vulkan_enable2" #define XR_KHR_composition_layer_equirect2_SPEC_VERSION 1 @@ -142,6 +148,10 @@ #define XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME "XR_EXT_hp_mixed_reality_controller" #define XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION 2 #define XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME "XR_MND_swapchain_usage_input_attachment_bit" +#define XR_MSFT_scene_understanding_SPEC_VERSION 1 +#define XR_MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME "XR_MSFT_scene_understanding" +#define XR_MSFT_scene_understanding_serialization_SPEC_VERSION 1 +#define XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME "XR_MSFT_scene_understanding_serialization" #define XR_FB_display_refresh_rate_SPEC_VERSION 1 #define XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME "XR_FB_display_refresh_rate" #define XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION 1 @@ -156,6 +166,11 @@ #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_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_swapchain_update_state_vulkan_SPEC_VERSION 1 +#define XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME "XR_FB_swapchain_update_state_vulkan" #define XR_MAKE_VERSION(major, minor, patch) \ @@ -168,7 +183,7 @@ #define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 15) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 17) #if !defined(XR_MAY_ALIAS) @@ -244,6 +259,8 @@ XR_DEFINE_HANDLE(XrAction) XR_DEFINE_HANDLE(XrActionSet) XR_DEFINE_HANDLE(XrHandTrackerEXT) XR_DEFINE_HANDLE(XrInstance) +XR_DEFINE_HANDLE(XrSceneMSFT) +XR_DEFINE_HANDLE(XrSceneObserverMSFT) XR_DEFINE_HANDLE(XrSession) XR_DEFINE_HANDLE(XrSpace) XR_DEFINE_HANDLE(XrSpatialAnchorMSFT) @@ -365,6 +382,13 @@ typedef enum XrHandJointSetEXT XR_HAND_JOINT_SET_EXT_MAX_ENUM = 0x7fffffff, } XrHandJointSetEXT; +typedef enum XrHandJointsMotionRangeEXT +{ + XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT = 1, + XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_EXT = 2, + XR_HAND_JOINTS_MOTION_RANGE_EXT_MAX_ENUM = 0x7fffffff, +} XrHandJointsMotionRangeEXT; + typedef enum XrHandPoseTypeMSFT { XR_HAND_POSE_TYPE_TRACKED_MSFT = 0, @@ -372,6 +396,15 @@ typedef enum XrHandPoseTypeMSFT XR_HAND_POSE_TYPE_MSFT_MAX_ENUM = 0x7fffffff, } XrHandPoseTypeMSFT; +typedef enum XrMeshComputeLodMSFT +{ + XR_MESH_COMPUTE_LOD_COARSE_MSFT = 1, + XR_MESH_COMPUTE_LOD_MEDIUM_MSFT = 2, + XR_MESH_COMPUTE_LOD_FINE_MSFT = 3, + XR_MESH_COMPUTE_LOD_UNLIMITED_MSFT = 4, + XR_MESH_COMPUTE_LOD_MSFT_MAX_ENUM = 0x7fffffff, +} XrMeshComputeLodMSFT; + typedef enum XrObjectType { XR_OBJECT_TYPE_UNKNOWN = 0, @@ -383,6 +416,8 @@ typedef enum XrObjectType XR_OBJECT_TYPE_ACTION = 6, XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000, + XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000, + XR_OBJECT_TYPE_SCENE_MSFT = 1000097001, XR_OBJECT_TYPE_MAX_ENUM = 0x7fffffff, } XrObjectType; @@ -428,13 +463,30 @@ typedef enum XrReferenceSpaceType XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7fffffff, } XrReferenceSpaceType; +typedef enum XrReprojectionModeMSFT +{ + XR_REPROJECTION_MODE_DEPTH_MSFT = 1, + XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT = 2, + XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT = 3, + XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT = 4, + XR_REPROJECTION_MODE_MSFT_MAX_ENUM = 0x7fffffff, +} XrReprojectionModeMSFT; + typedef enum XrResult { XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, + XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005, + XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004, + XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003, + XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002, + XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001, + XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000, + XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000, XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000, XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000, XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, + XR_ERROR_RUNTIME_UNAVAILABLE = -51, XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50, XR_ERROR_LOCALIZED_NAME_INVALID = -49, XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48, @@ -492,6 +544,64 @@ typedef enum XrResult XR_RESULT_MAX_ENUM = 0x7fffffff, } XrResult; +typedef enum XrSceneComponentTypeMSFT +{ + XR_SCENE_COMPONENT_TYPE_INVALID_MSFT = -1, + XR_SCENE_COMPONENT_TYPE_OBJECT_MSFT = 1, + XR_SCENE_COMPONENT_TYPE_PLANE_MSFT = 2, + XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT = 3, + XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT = 4, + XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT = 1000098000, + XR_SCENE_COMPONENT_TYPE_MSFT_MAX_ENUM = 0x7fffffff, +} XrSceneComponentTypeMSFT; + +typedef enum XrSceneComputeConsistencyMSFT +{ + XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_COMPLETE_MSFT = 1, + XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_INCOMPLETE_FAST_MSFT = 2, + XR_SCENE_COMPUTE_CONSISTENCY_OCCLUSION_OPTIMIZED_MSFT = 3, + XR_SCENE_COMPUTE_CONSISTENCY_MSFT_MAX_ENUM = 0x7fffffff, +} XrSceneComputeConsistencyMSFT; + +typedef enum XrSceneComputeFeatureMSFT +{ + XR_SCENE_COMPUTE_FEATURE_PLANE_MSFT = 1, + XR_SCENE_COMPUTE_FEATURE_PLANE_MESH_MSFT = 2, + XR_SCENE_COMPUTE_FEATURE_VISUAL_MESH_MSFT = 3, + XR_SCENE_COMPUTE_FEATURE_COLLIDER_MESH_MSFT = 4, + XR_SCENE_COMPUTE_FEATURE_SERIALIZE_SCENE_MSFT = 1000098000, + XR_SCENE_COMPUTE_FEATURE_MSFT_MAX_ENUM = 0x7fffffff, +} XrSceneComputeFeatureMSFT; + +typedef enum XrSceneComputeStateMSFT +{ + XR_SCENE_COMPUTE_STATE_NONE_MSFT = 0, + XR_SCENE_COMPUTE_STATE_UPDATING_MSFT = 1, + XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT = 2, + XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT = 3, + XR_SCENE_COMPUTE_STATE_MSFT_MAX_ENUM = 0x7fffffff, +} XrSceneComputeStateMSFT; + +typedef enum XrSceneObjectTypeMSFT +{ + XR_SCENE_OBJECT_TYPE_UNCATEGORIZED_MSFT = -1, + XR_SCENE_OBJECT_TYPE_BACKGROUND_MSFT = 1, + XR_SCENE_OBJECT_TYPE_WALL_MSFT = 2, + XR_SCENE_OBJECT_TYPE_FLOOR_MSFT = 3, + XR_SCENE_OBJECT_TYPE_CEILING_MSFT = 4, + XR_SCENE_OBJECT_TYPE_PLATFORM_MSFT = 5, + XR_SCENE_OBJECT_TYPE_INFERRED_MSFT = 6, + XR_SCENE_OBJECT_TYPE_MSFT_MAX_ENUM = 0x7fffffff, +} XrSceneObjectTypeMSFT; + +typedef enum XrScenePlaneAlignmentTypeMSFT +{ + XR_SCENE_PLANE_ALIGNMENT_TYPE_NON_ORTHOGONAL_MSFT = 0, + XR_SCENE_PLANE_ALIGNMENT_TYPE_HORIZONTAL_MSFT = 1, + XR_SCENE_PLANE_ALIGNMENT_TYPE_VERTICAL_MSFT = 2, + XR_SCENE_PLANE_ALIGNMENT_TYPE_MSFT_MAX_ENUM = 0x7fffffff, +} XrScenePlaneAlignmentTypeMSFT; + typedef enum XrSessionState { XR_SESSION_STATE_UNKNOWN = 0, @@ -620,11 +730,35 @@ typedef enum XrStructureType XR_TYPE_CONTROLLER_MODEL_STATE_MSFT = 1000055004, XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC = 1000059000, 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_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000, + XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000, XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000, XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR = 1000090001, XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR = 1000090003, XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR = 1000091000, + XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT = 1000097000, + XR_TYPE_SCENE_CREATE_INFO_MSFT = 1000097001, + XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT = 1000097002, + XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT = 1000097003, + XR_TYPE_SCENE_COMPONENTS_MSFT = 1000097004, + XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT = 1000097005, + XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT = 1000097006, + XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT = 1000097007, + XR_TYPE_SCENE_OBJECTS_MSFT = 1000097008, + XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT = 1000097009, + XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT = 1000097010, + XR_TYPE_SCENE_PLANES_MSFT = 1000097011, + XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT = 1000097012, + XR_TYPE_SCENE_MESHES_MSFT = 1000097013, + XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT = 1000097014, + XR_TYPE_SCENE_MESH_BUFFERS_MSFT = 1000097015, + XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT = 1000097016, + XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT = 1000097017, + XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT = 1000097018, + XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT = 1000098000, + 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_BINDING_MODIFICATIONS_KHR = 1000120000, @@ -632,6 +766,7 @@ typedef enum XrStructureType 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_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, XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR, @@ -665,12 +800,14 @@ typedef struct XrBaseOutStructure XrBaseOutStructure; typedef struct XrBoundSourcesForActionEnumerateInfo XrBoundSourcesForActionEnumerateInfo; typedef struct XrCompositionLayerBaseHeader XrCompositionLayerBaseHeader; typedef struct XrCompositionLayerDepthTestVARJO XrCompositionLayerDepthTestVARJO; +typedef struct XrCompositionLayerReprojectionInfoMSFT XrCompositionLayerReprojectionInfoMSFT; typedef struct XrControllerModelKeyStateMSFT XrControllerModelKeyStateMSFT; typedef struct XrDebugUtilsLabelEXT XrDebugUtilsLabelEXT; -typedef struct XrEventDataBaseHeader XrEventDataBaseHeader; -typedef struct XrEventDataDisplayRefreshRateChangedFB XrEventDataDisplayRefreshRateChangedFB; -typedef struct XrEventDataInstanceLossPending XrEventDataInstanceLossPending; -typedef struct XrEventDataMainSessionVisibilityChangedEXTX XrEventDataMainSessionVisibilityChangedEXTX; +typedef struct XrDeserializeSceneFragmentMSFT XrDeserializeSceneFragmentMSFT; +typedef struct XrEventDataBuffer XrEventDataBuffer; +typedef struct XrEventDataEventsLost XrEventDataEventsLost; +typedef struct XrEventDataInteractionProfileChanged XrEventDataInteractionProfileChanged; +typedef struct XrEventDataPerfSettingsEXT XrEventDataPerfSettingsEXT; typedef struct XrEventDataSessionStateChanged XrEventDataSessionStateChanged; typedef struct XrExtensionProperties XrExtensionProperties; typedef struct XrExtent2Di XrExtent2Di; @@ -680,6 +817,7 @@ typedef struct XrFrameState XrFrameState; typedef struct XrGraphicsBindingD3D11KHR XrGraphicsBindingD3D11KHR; typedef struct XrGraphicsRequirementsD3D11KHR XrGraphicsRequirementsD3D11KHR; typedef struct XrHandJointsLocateInfoEXT XrHandJointsLocateInfoEXT; +typedef struct XrHandMeshIndexBufferMSFT XrHandMeshIndexBufferMSFT; typedef struct XrHandMeshUpdateInfoMSFT XrHandMeshUpdateInfoMSFT; typedef struct XrHandPoseTypeInfoMSFT XrHandPoseTypeInfoMSFT; typedef struct XrHapticActionInfo XrHapticActionInfo; @@ -688,6 +826,15 @@ typedef struct XrInputSourceLocalizedNameGetInfo XrInputSourceLocalizedNameGetIn typedef struct XrInteractionProfileState XrInteractionProfileState; typedef struct XrOffset2Df XrOffset2Df; typedef struct XrQuaternionf XrQuaternionf; +typedef struct XrSceneComponentsGetInfoMSFT XrSceneComponentsGetInfoMSFT; +typedef struct XrSceneCreateInfoMSFT XrSceneCreateInfoMSFT; +typedef struct XrSceneMeshBuffersGetInfoMSFT XrSceneMeshBuffersGetInfoMSFT; +typedef struct XrSceneMeshIndicesUint16MSFT XrSceneMeshIndicesUint16MSFT; +typedef struct XrSceneMeshMSFT XrSceneMeshMSFT; +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 XrSessionActionSetsAttachInfo XrSessionActionSetsAttachInfo; @@ -702,24 +849,27 @@ typedef struct XrSystemFoveatedRenderingPropertiesVARJO XrSystemFoveatedRenderin typedef struct XrSystemGraphicsProperties XrSystemGraphicsProperties; typedef struct XrSystemHandTrackingPropertiesEXT XrSystemHandTrackingPropertiesEXT; typedef struct XrSystemTrackingProperties XrSystemTrackingProperties; -typedef struct XrVector3f XrVector3f; +typedef struct XrVector2f XrVector2f; +typedef struct XrVector4f XrVector4f; typedef struct XrViewConfigurationDepthRangeEXT XrViewConfigurationDepthRangeEXT; typedef struct XrViewConfigurationView XrViewConfigurationView; typedef struct XrViewLocateFoveatedRenderingVARJO XrViewLocateFoveatedRenderingVARJO; typedef struct XrViewState XrViewState; -typedef struct XrVulkanDeviceCreateInfoKHR XrVulkanDeviceCreateInfoKHR; -typedef struct XrVulkanInstanceCreateInfoKHR XrVulkanInstanceCreateInfoKHR; +typedef struct XrVisualMeshComputeLodInfoMSFT XrVisualMeshComputeLodInfoMSFT; +typedef struct XrVulkanGraphicsDeviceGetInfoKHR XrVulkanGraphicsDeviceGetInfoKHR; +typedef struct XrVulkanSwapchainFormatListCreateInfoKHR XrVulkanSwapchainFormatListCreateInfoKHR; typedef struct XrActionSetCreateInfo XrActionSetCreateInfo; typedef struct XrActionStateFloat XrActionStateFloat; -typedef struct XrActionsSyncInfo XrActionsSyncInfo; -typedef struct XrBaseInStructure XrBaseInStructure; +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 XrDebugUtilsObjectNameInfoEXT XrDebugUtilsObjectNameInfoEXT; -typedef struct XrEventDataEventsLost XrEventDataEventsLost; -typedef struct XrEventDataPerfSettingsEXT XrEventDataPerfSettingsEXT; +typedef struct XrEventDataDisplayRefreshRateChangedFB XrEventDataDisplayRefreshRateChangedFB; +typedef struct XrEventDataMainSessionVisibilityChangedEXTX XrEventDataMainSessionVisibilityChangedEXTX; typedef struct XrEventDataVisibilityMaskChangedKHR XrEventDataVisibilityMaskChangedKHR; typedef struct XrEyeGazeSampleTimeEXT XrEyeGazeSampleTimeEXT; typedef struct XrFrameEndInfo XrFrameEndInfo; @@ -727,84 +877,106 @@ typedef struct XrGraphicsBindingD3D12KHR XrGraphicsBindingD3D12KHR; typedef struct XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkanKHR; typedef XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkan2KHR; typedef struct XrGraphicsRequirementsOpenGLKHR XrGraphicsRequirementsOpenGLKHR; -typedef struct XrHandJointVelocityEXT XrHandJointVelocityEXT; -typedef struct XrHandMeshVertexMSFT XrHandMeshVertexMSFT; -typedef struct XrHapticBaseHeader XrHapticBaseHeader; -typedef struct XrInstanceCreateInfo XrInstanceCreateInfo; -typedef struct XrInteractionProfileAnalogThresholdVALVE XrInteractionProfileAnalogThresholdVALVE; -typedef struct XrPosef XrPosef; -typedef struct XrReferenceSpaceCreateInfo XrReferenceSpaceCreateInfo; -typedef struct XrSecondaryViewConfigurationFrameStateMSFT XrSecondaryViewConfigurationFrameStateMSFT; -typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; -typedef struct XrSessionCreateInfoOverlayEXTX XrSessionCreateInfoOverlayEXTX; -typedef struct XrSpaceVelocity XrSpaceVelocity; -typedef struct XrSpatialAnchorSpaceCreateInfoMSFT XrSpatialAnchorSpaceCreateInfoMSFT; +typedef struct XrHandJointsMotionRangeInfoEXT XrHandJointsMotionRangeInfoEXT; +typedef struct XrHandTrackerCreateInfoEXT XrHandTrackerCreateInfoEXT; +typedef struct XrHolographicWindowAttachmentMSFT XrHolographicWindowAttachmentMSFT; +typedef struct XrInstanceProperties XrInstanceProperties; +typedef struct XrInteractionProfileSuggestedBinding XrInteractionProfileSuggestedBinding; +typedef struct XrOffset2Di XrOffset2Di; +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 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 XrVector2f XrVector2f; +typedef struct XrUuidMSFT XrUuidMSFT; typedef struct XrViewConfigurationProperties XrViewConfigurationProperties; typedef struct XrViewLocateInfo XrViewLocateInfo; -typedef struct XrVulkanGraphicsDeviceGetInfoKHR XrVulkanGraphicsDeviceGetInfoKHR; -typedef struct XrActionSpaceCreateInfo XrActionSpaceCreateInfo; -typedef struct XrActionStateVector2f XrActionStateVector2f; -typedef struct XrBindingModificationBaseHeaderKHR XrBindingModificationBaseHeaderKHR; +typedef struct XrVulkanDeviceCreateInfoKHR XrVulkanDeviceCreateInfoKHR; +typedef struct XrActionStatePose XrActionStatePose; +typedef struct XrBaseInStructure XrBaseInStructure; typedef struct XrCompositionLayerColorScaleBiasKHR XrCompositionLayerColorScaleBiasKHR; -typedef struct XrControllerModelNodeStateMSFT XrControllerModelNodeStateMSFT; typedef struct XrDebugUtilsMessengerCallbackDataEXT XrDebugUtilsMessengerCallbackDataEXT; -typedef struct XrEventDataInteractionProfileChanged XrEventDataInteractionProfileChanged; +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 XrHandJointVelocityEXT XrHandJointVelocityEXT; +typedef struct XrHandMeshVertexMSFT XrHandMeshVertexMSFT; +typedef struct XrPosef XrPosef; +typedef struct XrSceneComponentLocationMSFT XrSceneComponentLocationMSFT; +typedef struct XrSceneComponentParentFilterInfoMSFT XrSceneComponentParentFilterInfoMSFT; +typedef struct XrSceneFrustumBoundMSFT XrSceneFrustumBoundMSFT; +typedef struct XrSceneOrientedBoxBoundMSFT XrSceneOrientedBoxBoundMSFT; +typedef struct XrSceneSphereBoundMSFT XrSceneSphereBoundMSFT; +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 XrActionSpaceCreateInfo XrActionSpaceCreateInfo; +typedef struct XrControllerModelNodeStateMSFT XrControllerModelNodeStateMSFT; +typedef struct XrEventDataReferenceSpaceChangePending XrEventDataReferenceSpaceChangePending; typedef struct XrHandJointLocationEXT XrHandJointLocationEXT; typedef struct XrHandJointVelocitiesEXT XrHandJointVelocitiesEXT; typedef struct XrHandMeshSpaceCreateInfoMSFT XrHandMeshSpaceCreateInfoMSFT; -typedef struct XrHandTrackerCreateInfoEXT XrHandTrackerCreateInfoEXT; -typedef struct XrInstanceProperties XrInstanceProperties; -typedef struct XrOffset2Di XrOffset2Di; -typedef struct XrRect2Di XrRect2Di; -typedef struct XrSecondaryViewConfigurationSessionBeginInfoMSFT XrSecondaryViewConfigurationSessionBeginInfoMSFT; -typedef struct XrSpaceLocation XrSpaceLocation; -typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT XrSpatialGraphNodeSpaceCreateInfoMSFT; -typedef struct XrSwapchainImageReleaseInfo XrSwapchainImageReleaseInfo; -typedef struct XrSystemGetInfo XrSystemGetInfo; -typedef struct XrVector4f XrVector4f; -typedef struct XrVisibilityMaskKHR XrVisibilityMaskKHR; -typedef struct XrActionStatePose XrActionStatePose; -typedef struct XrBindingModificationsKHR XrBindingModificationsKHR; -typedef struct XrControllerModelStateMSFT XrControllerModelStateMSFT; -typedef struct XrEventDataReferenceSpaceChangePending XrEventDataReferenceSpaceChangePending; -typedef struct XrGraphicsBindingOpenGLWin32KHR XrGraphicsBindingOpenGLWin32KHR; -typedef struct XrHandJointLocationsEXT XrHandJointLocationsEXT; -typedef struct XrHandMeshVertexBufferMSFT XrHandMeshVertexBufferMSFT; -typedef struct XrInteractionProfileSuggestedBinding XrInteractionProfileSuggestedBinding; -typedef struct XrSecondaryViewConfigurationFrameEndInfoMSFT XrSecondaryViewConfigurationFrameEndInfoMSFT; +typedef struct XrInstanceCreateInfo XrInstanceCreateInfo; +typedef struct XrReferenceSpaceCreateInfo XrReferenceSpaceCreateInfo; +typedef struct XrSceneComponentLocationsMSFT XrSceneComponentLocationsMSFT; +typedef struct XrSceneMeshVertexBufferMSFT XrSceneMeshVertexBufferMSFT; +typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT XrSecondaryViewConfigurationSwapchainCreateInfoMSFT; typedef struct XrSpatialAnchorCreateInfoMSFT XrSpatialAnchorCreateInfoMSFT; typedef struct XrSwapchainSubImage XrSwapchainSubImage; -typedef struct XrVulkanSwapchainFormatListCreateInfoKHR XrVulkanSwapchainFormatListCreateInfoKHR; -typedef struct XrApiLayerProperties XrApiLayerProperties; +typedef struct XrVulkanInstanceCreateInfoKHR XrVulkanInstanceCreateInfoKHR; +typedef struct XrBindingModificationsKHR XrBindingModificationsKHR; typedef struct XrCompositionLayerDepthInfoKHR XrCompositionLayerDepthInfoKHR; typedef struct XrCompositionLayerEquirectKHR XrCompositionLayerEquirectKHR; -typedef struct XrCompositionLayerQuad XrCompositionLayerQuad; -typedef struct XrFovf XrFovf; -typedef struct XrHandMeshIndexBufferMSFT XrHandMeshIndexBufferMSFT; -typedef struct XrHolographicWindowAttachmentMSFT XrHolographicWindowAttachmentMSFT; -typedef struct XrSessionBeginInfo XrSessionBeginInfo; -typedef struct XrSystemProperties XrSystemProperties; -typedef struct XrViewConfigurationViewFovEPIC XrViewConfigurationViewFovEPIC; -typedef struct XrCompositionLayerCylinderKHR XrCompositionLayerCylinderKHR; typedef struct XrCompositionLayerProjectionView XrCompositionLayerProjectionView; -typedef struct XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkanKHR; -typedef XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkan2KHR; -typedef struct XrRect2Df XrRect2Df; -typedef struct XrView XrView; -typedef struct XrCompositionLayerEquirect2KHR XrCompositionLayerEquirect2KHR; -typedef struct XrEventDataBuffer XrEventDataBuffer; -typedef struct XrSwapchainImageD3D11KHR XrSwapchainImageD3D11KHR; +typedef struct XrControllerModelStateMSFT XrControllerModelStateMSFT; +typedef struct XrHandJointLocationsEXT XrHandJointLocationsEXT; +typedef struct XrHandMeshVertexBufferMSFT XrHandMeshVertexBufferMSFT; +typedef struct XrSceneBoundsMSFT XrSceneBoundsMSFT; +typedef struct XrScenePlanesMSFT XrScenePlanesMSFT; +typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT XrSpatialGraphNodeSpaceCreateInfoMSFT; +typedef struct XrCompositionLayerCylinderKHR XrCompositionLayerCylinderKHR; 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 XrBool32 (XRAPI_PTR * PFN_xrDebugUtilsMessengerCallbackEXT)( XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, @@ -892,6 +1064,13 @@ struct XrCompositionLayerDepthTestVARJO float depthTestRangeFarZ; }; +struct XrCompositionLayerReprojectionInfoMSFT +{ + XrStructureType type; + const void *next; + XrReprojectionModeMSFT reprojectionMode; +}; + struct XrControllerModelKeyStateMSFT { XrStructureType type; @@ -906,33 +1085,41 @@ struct XrDebugUtilsLabelEXT const char *labelName; }; -struct XrEventDataBaseHeader +struct XrDeserializeSceneFragmentMSFT { - XrStructureType type; - const void *next; + uint32_t bufferSize; + const uint8_t *buffer; }; -struct XrEventDataDisplayRefreshRateChangedFB +struct XrEventDataBuffer { XrStructureType type; const void *next; - float fromDisplayRefreshRate; - float toDisplayRefreshRate; + uint8_t varying[4000]; }; -struct XrEventDataInstanceLossPending +struct XrEventDataEventsLost { XrStructureType type; const void *next; - XrTime lossTime; + uint32_t lostEventCount; }; -struct XrEventDataMainSessionVisibilityChangedEXTX +struct XrEventDataInteractionProfileChanged { XrStructureType type; const void *next; - XrBool32 visible; - XrOverlayMainSessionFlagsEXTX flags; + XrSession session; +}; + +struct XrEventDataPerfSettingsEXT +{ + XrStructureType type; + const void *next; + XrPerfSettingsDomainEXT domain; + XrPerfSettingsSubDomainEXT subDomain; + XrPerfSettingsNotificationLevelEXT fromLevel; + XrPerfSettingsNotificationLevelEXT toLevel; }; struct XrEventDataSessionStateChanged @@ -1003,6 +1190,14 @@ struct XrHandJointsLocateInfoEXT XrTime time; }; +struct XrHandMeshIndexBufferMSFT +{ + uint32_t indexBufferKey; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint32_t *indices; +}; + struct XrHandMeshUpdateInfoMSFT { XrStructureType type; @@ -1064,6 +1259,71 @@ struct XrQuaternionf float w; }; +struct XrSceneComponentsGetInfoMSFT +{ + XrStructureType type; + const void *next; + XrSceneComponentTypeMSFT componentType; +}; + +struct XrSceneCreateInfoMSFT +{ + XrStructureType type; + const void *next; +}; + +struct XrSceneMeshBuffersGetInfoMSFT +{ + XrStructureType type; + const void *next; + uint64_t WINE_XR_ALIGN(8) meshBufferId; +}; + +struct XrSceneMeshIndicesUint16MSFT +{ + XrStructureType type; + void *next; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint16_t *indices; +}; + +struct XrSceneMeshMSFT +{ + uint64_t WINE_XR_ALIGN(8) meshBufferId; + XrBool32 supportsIndicesUint16; +}; + +struct XrSceneMeshesMSFT +{ + XrStructureType type; + void *next; + uint32_t sceneMeshCount; + XrSceneMeshMSFT *sceneMeshes; +}; + +struct XrSceneObjectTypesFilterInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t objectTypeCount; + const XrSceneObjectTypeMSFT *objectTypes; +}; + +struct XrSceneObserverCreateInfoMSFT +{ + XrStructureType type; + const void *next; +}; + +struct XrScenePlaneAlignmentFilterInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t alignmentCount; + const XrScenePlaneAlignmentTypeMSFT *alignments; +}; + struct XrSecondaryViewConfigurationLayerInfoMSFT { XrStructureType type; @@ -1174,11 +1434,18 @@ struct XrSystemTrackingProperties XrBool32 positionTracking; }; -struct XrVector3f +struct XrVector2f +{ + float x; + float y; +}; + +struct XrVector4f { float x; float y; float z; + float w; }; struct XrViewConfigurationDepthRangeEXT @@ -1217,27 +1484,27 @@ struct XrViewState XrViewStateFlags viewStateFlags; }; -struct XrVulkanDeviceCreateInfoKHR +struct XrVisualMeshComputeLodInfoMSFT { XrStructureType type; const void *next; - XrSystemId systemId; - XrVulkanDeviceCreateFlagsKHR createFlags; - PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; - VkPhysicalDevice vulkanPhysicalDevice; - const VkDeviceCreateInfo *vulkanCreateInfo; - const VkAllocationCallbacks *vulkanAllocator; + XrMeshComputeLodMSFT lod; }; -struct XrVulkanInstanceCreateInfoKHR +struct XrVulkanGraphicsDeviceGetInfoKHR { XrStructureType type; const void *next; XrSystemId systemId; - XrVulkanInstanceCreateFlagsKHR createFlags; - PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; - const VkInstanceCreateInfo *vulkanCreateInfo; - const VkAllocationCallbacks *vulkanAllocator; + VkInstance vulkanInstance; +}; + +struct XrVulkanSwapchainFormatListCreateInfoKHR +{ + XrStructureType type; + const void *next; + uint32_t viewFormatCount; + const VkFormat *viewFormats; }; struct XrActionSetCreateInfo @@ -1259,18 +1526,30 @@ struct XrActionStateFloat XrBool32 isActive; }; -struct XrActionsSyncInfo +struct XrActionStateVector2f +{ + XrStructureType type; + void *next; + XrVector2f currentState; + XrBool32 changedSinceLastSync; + XrTime lastChangeTime; + XrBool32 isActive; +}; + +struct XrApiLayerProperties +{ + XrStructureType type; + void *next; + char layerName[XR_MAX_API_LAYER_NAME_SIZE]; + XrVersion specVersion; + uint32_t layerVersion; + char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; +}; + +struct XrBindingModificationBaseHeaderKHR { XrStructureType type; const void *next; - uint32_t countActiveActionSets; - const XrActiveActionSet *activeActionSets; -}; - -struct XrBaseInStructure -{ - XrStructureType type; - const struct XrBaseInStructure *next; }; struct XrColor4f @@ -1319,21 +1598,20 @@ struct XrDebugUtilsObjectNameInfoEXT const char *objectName; }; -struct XrEventDataEventsLost +struct XrEventDataDisplayRefreshRateChangedFB { XrStructureType type; const void *next; - uint32_t lostEventCount; + float fromDisplayRefreshRate; + float toDisplayRefreshRate; }; -struct XrEventDataPerfSettingsEXT +struct XrEventDataMainSessionVisibilityChangedEXTX { XrStructureType type; const void *next; - XrPerfSettingsDomainEXT domain; - XrPerfSettingsSubDomainEXT subDomain; - XrPerfSettingsNotificationLevelEXT fromLevel; - XrPerfSettingsNotificationLevelEXT toLevel; + XrBool32 visible; + XrOverlayMainSessionFlagsEXTX flags; }; struct XrEventDataVisibilityMaskChangedKHR @@ -1389,17 +1667,239 @@ struct XrGraphicsRequirementsOpenGLKHR XrVersion maxApiVersionSupported; }; -struct XrHandJointVelocityEXT +struct XrHandJointsMotionRangeInfoEXT { - XrSpaceVelocityFlags velocityFlags; - XrVector3f linearVelocity; - XrVector3f angularVelocity; + XrStructureType type; + const void *next; + XrHandJointsMotionRangeEXT handJointsMotionRange; }; -struct XrHandMeshVertexMSFT +struct XrHandTrackerCreateInfoEXT { - XrVector3f position; - XrVector3f normal; + XrStructureType type; + const void *next; + XrHandEXT hand; + XrHandJointSetEXT handJointSet; +}; + +struct XrHolographicWindowAttachmentMSFT +{ + XrStructureType type; + const void *next; + IUnknown *holographicSpace; + IUnknown *coreWindow; +}; + +struct XrInstanceProperties +{ + XrStructureType type; + void *next; + XrVersion runtimeVersion; + char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; +}; + +struct XrInteractionProfileSuggestedBinding +{ + XrStructureType type; + const void *next; + XrPath interactionProfile; + uint32_t countSuggestedBindings; + const XrActionSuggestedBinding *suggestedBindings; +}; + +struct XrOffset2Di +{ + int32_t x; + int32_t y; +}; + +struct XrRect2Di +{ + XrOffset2Di offset; + XrExtent2Di extent; +}; + +struct XrSceneDeserializeInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t fragmentCount; + const XrDeserializeSceneFragmentMSFT *fragments; +}; + +struct XrSceneMeshBuffersMSFT +{ + XrStructureType type; + void *next; +}; + +struct XrSceneObjectMSFT +{ + XrSceneObjectTypeMSFT objectType; +}; + +struct XrSecondaryViewConfigurationFrameEndInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t viewConfigurationCount; + const XrSecondaryViewConfigurationLayerInfoMSFT *viewConfigurationLayersInfo; +}; + +struct XrSecondaryViewConfigurationSessionBeginInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t viewConfigurationCount; + const XrViewConfigurationType *enabledViewConfigurationTypes; +}; + +struct XrSessionBeginInfo +{ + XrStructureType type; + const void *next; + XrViewConfigurationType primaryViewConfigurationType; +}; + +struct XrSwapchainImageAcquireInfo +{ + XrStructureType type; + const void *next; +}; + +struct XrSwapchainImageVulkanKHR +{ + XrStructureType type; + void *next; + VkImage image; +}; + +struct XrSwapchainStateSamplerVulkanFB +{ + 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; +}; + +struct XrSystemEyeGazeInteractionPropertiesEXT +{ + XrStructureType type; + void *next; + XrBool32 supportsEyeGazeInteraction; +}; + +struct XrSystemHandTrackingMeshPropertiesMSFT +{ + XrStructureType type; + void *next; + XrBool32 supportsHandTrackingMesh; + uint32_t maxHandMeshIndexCount; + uint32_t maxHandMeshVertexCount; +}; + +struct XrUuidMSFT +{ + uint8_t bytes[16]; +}; + +struct XrViewConfigurationProperties +{ + XrStructureType type; + void *next; + XrViewConfigurationType viewConfigurationType; + XrBool32 fovMutable; +}; + +struct XrViewLocateInfo +{ + XrStructureType type; + const void *next; + XrViewConfigurationType viewConfigurationType; + XrTime displayTime; + XrSpace space; +}; + +struct XrVulkanDeviceCreateInfoKHR +{ + XrStructureType type; + const void *next; + XrSystemId systemId; + XrVulkanDeviceCreateFlagsKHR createFlags; + PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; + VkPhysicalDevice vulkanPhysicalDevice; + const VkDeviceCreateInfo *vulkanCreateInfo; + const VkAllocationCallbacks *vulkanAllocator; +}; + +struct XrActionStatePose +{ + XrStructureType type; + void *next; + XrBool32 isActive; +}; + +struct XrBaseInStructure +{ + XrStructureType type; + const struct XrBaseInStructure *next; +}; + +struct XrCompositionLayerColorScaleBiasKHR +{ + XrStructureType type; + const void *next; + XrColor4f colorScale; + XrColor4f colorBias; +}; + +struct XrDebugUtilsMessengerCallbackDataEXT +{ + XrStructureType type; + const void *next; + const char *messageId; + const char *functionName; + const char *message; + uint32_t objectCount; + XrDebugUtilsObjectNameInfoEXT *objects; + uint32_t sessionLabelCount; + XrDebugUtilsLabelEXT *sessionLabels; +}; + +struct XrEventDataInstanceLossPending +{ + XrStructureType type; + const void *next; + XrTime lossTime; +}; + +struct XrExtent2Df +{ + float width; + float height; +}; + +struct XrFrameWaitInfo +{ + XrStructureType type; + const void *next; +}; + +struct XrGraphicsRequirementsD3D12KHR +{ + XrStructureType type; + void *next; + LUID adapterLuid; + D3D_FEATURE_LEVEL minFeatureLevel; }; struct XrHapticBaseHeader @@ -1408,18 +1908,6 @@ struct XrHapticBaseHeader const void *next; }; -struct XrInstanceCreateInfo -{ - XrStructureType type; - const void *next; - XrInstanceCreateFlags createFlags; - XrApplicationInfo applicationInfo; - uint32_t enabledApiLayerCount; - const char * const*enabledApiLayerNames; - uint32_t enabledExtensionCount; - const char * const*enabledExtensionNames; -}; - struct XrInteractionProfileAnalogThresholdVALVE { XrStructureType type; @@ -1432,18 +1920,53 @@ struct XrInteractionProfileAnalogThresholdVALVE const XrHapticBaseHeader *offHaptic; }; -struct XrPosef +struct XrRect2Df { - XrQuaternionf orientation; - XrVector3f position; + XrOffset2Df offset; + XrExtent2Df extent; }; -struct XrReferenceSpaceCreateInfo +struct XrSceneComponentMSFT +{ + XrSceneComponentTypeMSFT componentType; + XrUuidMSFT id; + XrUuidMSFT parentId; + XrTime updateTime; +}; + +struct XrSceneComponentsLocateInfoMSFT { XrStructureType type; const void *next; - XrReferenceSpaceType referenceSpaceType; - XrPosef poseInReferenceSpace; + XrSpace baseSpace; + XrTime time; + uint32_t componentIdCount; + const XrUuidMSFT *componentIds; +}; + +struct XrSceneMeshIndicesUint32MSFT +{ + XrStructureType type; + void *next; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint32_t *indices; +}; + +struct XrSceneObjectsMSFT +{ + XrStructureType type; + void *next; + uint32_t sceneObjectCount; + XrSceneObjectMSFT *sceneObjects; +}; + +struct XrScenePlaneMSFT +{ + XrScenePlaneAlignmentTypeMSFT alignment; + XrExtent2Df size; + uint64_t WINE_XR_ALIGN(8) meshBufferId; + XrBool32 supportsIndicesUint16; }; struct XrSecondaryViewConfigurationFrameStateMSFT @@ -1454,11 +1977,140 @@ struct XrSecondaryViewConfigurationFrameStateMSFT XrSecondaryViewConfigurationStateMSFT *viewConfigurationStates; }; -struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT +struct XrSerializedSceneFragmentDataGetInfoMSFT { XrStructureType type; const void *next; - XrViewConfigurationType viewConfigurationType; + XrUuidMSFT sceneFragmentId; +}; + +struct XrSwapchainImageD3D11KHR +{ + XrStructureType type; + void *next; + ID3D11Texture2D *texture; +}; + +struct XrSwapchainStateBaseHeaderFB +{ + XrStructureType type; + void *next; +}; + +struct XrSystemGetInfo +{ + XrStructureType type; + const void *next; + XrFormFactor formFactor; +}; + +struct XrVector3f +{ + float x; + float y; + float z; +}; + +struct XrVisibilityMaskKHR +{ + XrStructureType type; + void *next; + uint32_t vertexCapacityInput; + uint32_t vertexCountOutput; + XrVector2f *vertices; + uint32_t indexCapacityInput; + uint32_t indexCountOutput; + uint32_t *indices; +}; + +struct XrActionsSyncInfo +{ + XrStructureType type; + const void *next; + uint32_t countActiveActionSets; + const XrActiveActionSet *activeActionSets; +}; + +struct XrCompositionLayerReprojectionPlaneOverrideMSFT +{ + XrStructureType type; + const void *next; + XrVector3f position; + XrVector3f normal; + XrVector3f velocity; +}; + +struct XrEventDataBaseHeader +{ + XrStructureType type; + const void *next; +}; + +struct XrFovf +{ + float angleLeft; + float angleRight; + float angleUp; + float angleDown; +}; + +struct XrGraphicsRequirementsVulkanKHR +{ + 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; +}; + +struct XrSceneComponentParentFilterInfoMSFT +{ + XrStructureType type; + const void *next; + XrUuidMSFT parentId; +}; + +struct XrSceneFrustumBoundMSFT +{ + XrPosef pose; + XrFovf fov; + float farDistance; +}; + +struct XrSceneOrientedBoxBoundMSFT +{ + XrPosef pose; + XrVector3f extents; +}; + +struct XrSceneSphereBoundMSFT +{ + XrVector3f center; + float radius; }; struct XrSessionCreateInfoOverlayEXTX @@ -1486,64 +2138,29 @@ struct XrSpatialAnchorSpaceCreateInfoMSFT XrPosef poseInAnchorSpace; }; -struct XrSwapchainImageAcquireInfo +struct XrSwapchainImageReleaseInfo { XrStructureType type; const void *next; }; -struct XrSwapchainImageVulkanKHR +struct XrSystemProperties { XrStructureType type; void *next; - VkImage image; -}; - -struct XrSystemEyeGazeInteractionPropertiesEXT -{ - XrStructureType type; - void *next; - XrBool32 supportsEyeGazeInteraction; -}; - -struct XrSystemHandTrackingMeshPropertiesMSFT -{ - XrStructureType type; - void *next; - XrBool32 supportsHandTrackingMesh; - uint32_t maxHandMeshIndexCount; - uint32_t maxHandMeshVertexCount; -}; - -struct XrVector2f -{ - float x; - float y; -}; - -struct XrViewConfigurationProperties -{ - XrStructureType type; - void *next; - XrViewConfigurationType viewConfigurationType; - XrBool32 fovMutable; -}; - -struct XrViewLocateInfo -{ - XrStructureType type; - const void *next; - XrViewConfigurationType viewConfigurationType; - XrTime displayTime; - XrSpace space; -}; - -struct XrVulkanGraphicsDeviceGetInfoKHR -{ - XrStructureType type; - const void *next; XrSystemId systemId; - VkInstance vulkanInstance; + uint32_t vendorId; + char systemName[XR_MAX_SYSTEM_NAME_SIZE]; + XrSystemGraphicsProperties graphicsProperties; + XrSystemTrackingProperties trackingProperties; +}; + +struct XrViewConfigurationViewFovEPIC +{ + XrStructureType type; + const void *next; + XrFovf recommendedFov; + XrFovf maxMutableFov; }; struct XrActionSpaceCreateInfo @@ -1555,30 +2172,6 @@ struct XrActionSpaceCreateInfo XrPosef poseInActionSpace; }; -struct XrActionStateVector2f -{ - XrStructureType type; - void *next; - XrVector2f currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -}; - -struct XrBindingModificationBaseHeaderKHR -{ - XrStructureType type; - const void *next; -}; - -struct XrCompositionLayerColorScaleBiasKHR -{ - XrStructureType type; - const void *next; - XrColor4f colorScale; - XrColor4f colorBias; -}; - struct XrControllerModelNodeStateMSFT { XrStructureType type; @@ -1586,44 +2179,15 @@ struct XrControllerModelNodeStateMSFT XrPosef nodePose; }; -struct XrDebugUtilsMessengerCallbackDataEXT -{ - XrStructureType type; - const void *next; - const char *messageId; - const char *functionName; - const char *message; - uint32_t objectCount; - XrDebugUtilsObjectNameInfoEXT *objects; - uint32_t sessionLabelCount; - XrDebugUtilsLabelEXT *sessionLabels; -}; - -struct XrEventDataInteractionProfileChanged +struct XrEventDataReferenceSpaceChangePending { XrStructureType type; const void *next; XrSession session; -}; - -struct XrExtent2Df -{ - float width; - float height; -}; - -struct XrFrameWaitInfo -{ - XrStructureType type; - const void *next; -}; - -struct XrGraphicsRequirementsD3D12KHR -{ - XrStructureType type; - void *next; - LUID adapterLuid; - D3D_FEATURE_LEVEL minFeatureLevel; + XrReferenceSpaceType referenceSpaceType; + XrTime changeTime; + XrBool32 poseValid; + XrPosef poseInPreviousSpace; }; struct XrHandJointLocationEXT @@ -1649,167 +2213,48 @@ struct XrHandMeshSpaceCreateInfoMSFT XrPosef poseInHandMeshSpace; }; -struct XrHandTrackerCreateInfoEXT +struct XrInstanceCreateInfo { XrStructureType type; const void *next; - XrHandEXT hand; - XrHandJointSetEXT handJointSet; + XrInstanceCreateFlags createFlags; + XrApplicationInfo applicationInfo; + uint32_t enabledApiLayerCount; + const char * const*enabledApiLayerNames; + uint32_t enabledExtensionCount; + const char * const*enabledExtensionNames; }; -struct XrInstanceProperties -{ - XrStructureType type; - void *next; - XrVersion runtimeVersion; - char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; -}; - -struct XrOffset2Di -{ - int32_t x; - int32_t y; -}; - -struct XrRect2Di -{ - XrOffset2Di offset; - XrExtent2Di extent; -}; - -struct XrSecondaryViewConfigurationSessionBeginInfoMSFT +struct XrReferenceSpaceCreateInfo { XrStructureType type; const void *next; - uint32_t viewConfigurationCount; - const XrViewConfigurationType *enabledViewConfigurationTypes; -}; - -struct XrSpaceLocation -{ - XrStructureType type; - void *next; - XrSpaceLocationFlags locationFlags; - XrPosef pose; -}; - -struct XrSpatialGraphNodeSpaceCreateInfoMSFT -{ - XrStructureType type; - const void *next; - XrSpatialGraphNodeTypeMSFT nodeType; - uint8_t nodeId[16]; - XrPosef pose; -}; - -struct XrSwapchainImageReleaseInfo -{ - XrStructureType type; - const void *next; -}; - -struct XrSystemGetInfo -{ - XrStructureType type; - const void *next; - XrFormFactor formFactor; -}; - -struct XrVector4f -{ - float x; - float y; - float z; - float w; -}; - -struct XrVisibilityMaskKHR -{ - XrStructureType type; - void *next; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrVector2f *vertices; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t *indices; -}; - -struct XrActionStatePose -{ - XrStructureType type; - void *next; - XrBool32 isActive; -}; - -struct XrBindingModificationsKHR -{ - XrStructureType type; - const void *next; - uint32_t bindingModificationCount; - const XrBindingModificationBaseHeaderKHR * const*bindingModifications; -}; - -struct XrControllerModelStateMSFT -{ - XrStructureType type; - void *next; - uint32_t nodeCapacityInput; - uint32_t nodeCountOutput; - XrControllerModelNodeStateMSFT *nodeStates; -}; - -struct XrEventDataReferenceSpaceChangePending -{ - XrStructureType type; - const void *next; - XrSession session; XrReferenceSpaceType referenceSpaceType; - XrTime changeTime; - XrBool32 poseValid; - XrPosef poseInPreviousSpace; + XrPosef poseInReferenceSpace; }; -struct XrGraphicsBindingOpenGLWin32KHR -{ - XrStructureType type; - const void *next; - HDC hDC; - HGLRC hGLRC; -}; - -struct XrHandJointLocationsEXT +struct XrSceneComponentLocationsMSFT { XrStructureType type; void *next; - XrBool32 isActive; - uint32_t jointCount; - XrHandJointLocationEXT *jointLocations; + uint32_t locationCount; + XrSceneComponentLocationMSFT *locations; }; -struct XrHandMeshVertexBufferMSFT +struct XrSceneMeshVertexBufferMSFT { - XrTime vertexUpdateTime; + XrStructureType type; + void *next; uint32_t vertexCapacityInput; uint32_t vertexCountOutput; - XrHandMeshVertexMSFT *vertices; + XrVector3f *vertices; }; -struct XrInteractionProfileSuggestedBinding +struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT { XrStructureType type; const void *next; - XrPath interactionProfile; - uint32_t countSuggestedBindings; - const XrActionSuggestedBinding *suggestedBindings; -}; - -struct XrSecondaryViewConfigurationFrameEndInfoMSFT -{ - XrStructureType type; - const void *next; - uint32_t viewConfigurationCount; - const XrSecondaryViewConfigurationLayerInfoMSFT *viewConfigurationLayersInfo; + XrViewConfigurationType viewConfigurationType; }; struct XrSpatialAnchorCreateInfoMSFT @@ -1828,22 +2273,23 @@ struct XrSwapchainSubImage uint32_t imageArrayIndex; }; -struct XrVulkanSwapchainFormatListCreateInfoKHR +struct XrVulkanInstanceCreateInfoKHR { XrStructureType type; const void *next; - uint32_t viewFormatCount; - const VkFormat *viewFormats; + XrSystemId systemId; + XrVulkanInstanceCreateFlagsKHR createFlags; + PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; + const VkInstanceCreateInfo *vulkanCreateInfo; + const VkAllocationCallbacks *vulkanAllocator; }; -struct XrApiLayerProperties +struct XrBindingModificationsKHR { XrStructureType type; - void *next; - char layerName[XR_MAX_API_LAYER_NAME_SIZE]; - XrVersion specVersion; - uint32_t layerVersion; - char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; + const void *next; + uint32_t bindingModificationCount; + const XrBindingModificationBaseHeaderKHR * const*bindingModifications; }; struct XrCompositionLayerDepthInfoKHR @@ -1871,66 +2317,68 @@ struct XrCompositionLayerEquirectKHR XrVector2f bias; }; -struct XrCompositionLayerQuad +struct XrCompositionLayerProjectionView { XrStructureType type; const void *next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; XrPosef pose; - XrExtent2Df size; + XrFovf fov; + XrSwapchainSubImage subImage; }; -struct XrFovf -{ - float angleLeft; - float angleRight; - float angleUp; - float angleDown; -}; - -struct XrHandMeshIndexBufferMSFT -{ - uint32_t indexBufferKey; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t *indices; -}; - -struct XrHolographicWindowAttachmentMSFT -{ - XrStructureType type; - const void *next; - IUnknown *holographicSpace; - IUnknown *coreWindow; -}; - -struct XrSessionBeginInfo -{ - XrStructureType type; - const void *next; - XrViewConfigurationType primaryViewConfigurationType; -}; - -struct XrSystemProperties +struct XrControllerModelStateMSFT { XrStructureType type; void *next; - XrSystemId systemId; - uint32_t vendorId; - char systemName[XR_MAX_SYSTEM_NAME_SIZE]; - XrSystemGraphicsProperties graphicsProperties; - XrSystemTrackingProperties trackingProperties; + uint32_t nodeCapacityInput; + uint32_t nodeCountOutput; + XrControllerModelNodeStateMSFT *nodeStates; }; -struct XrViewConfigurationViewFovEPIC +struct XrHandJointLocationsEXT +{ + XrStructureType type; + void *next; + XrBool32 isActive; + uint32_t jointCount; + XrHandJointLocationEXT *jointLocations; +}; + +struct XrHandMeshVertexBufferMSFT +{ + XrTime vertexUpdateTime; + uint32_t vertexCapacityInput; + uint32_t vertexCountOutput; + XrHandMeshVertexMSFT *vertices; +}; + +struct XrSceneBoundsMSFT +{ + XrSpace space; + XrTime time; + uint32_t sphereCount; + const XrSceneSphereBoundMSFT *spheres; + uint32_t boxCount; + const XrSceneOrientedBoxBoundMSFT *boxes; + uint32_t frustumCount; + const XrSceneFrustumBoundMSFT *frustums; +}; + +struct XrScenePlanesMSFT +{ + XrStructureType type; + void *next; + uint32_t scenePlaneCount; + XrScenePlaneMSFT *scenePlanes; +}; + +struct XrSpatialGraphNodeSpaceCreateInfoMSFT { XrStructureType type; const void *next; - XrFovf recommendedFov; - XrFovf maxMutableFov; + XrSpatialGraphNodeTypeMSFT nodeType; + uint8_t nodeId[16]; + XrPosef pose; }; struct XrCompositionLayerCylinderKHR @@ -1947,35 +2395,40 @@ struct XrCompositionLayerCylinderKHR float aspectRatio; }; -struct XrCompositionLayerProjectionView +struct XrCompositionLayerProjection { XrStructureType type; const void *next; - XrPosef pose; - XrFovf fov; - XrSwapchainSubImage subImage; + XrCompositionLayerFlags layerFlags; + XrSpace space; + uint32_t viewCount; + const XrCompositionLayerProjectionView *views; }; -struct XrGraphicsRequirementsVulkanKHR -{ - XrStructureType type; - void *next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -}; - -struct XrRect2Df -{ - XrOffset2Df offset; - XrExtent2Df extent; -}; - -struct XrView +struct XrGraphicsBindingOpenGLWin32KHR +{ + XrStructureType type; + const void *next; + HDC hDC; + HGLRC hGLRC; +}; + +struct XrNewSceneComputeInfoMSFT +{ + XrStructureType type; + const void *next; + uint32_t requestedFeatureCount; + const XrSceneComputeFeatureMSFT *requestedFeatures; + XrSceneComputeConsistencyMSFT consistency; + XrSceneBoundsMSFT bounds; +}; + +struct XrSpaceLocation { XrStructureType type; void *next; + XrSpaceLocationFlags locationFlags; XrPosef pose; - XrFovf fov; }; struct XrCompositionLayerEquirect2KHR @@ -1993,30 +2446,6 @@ struct XrCompositionLayerEquirect2KHR float lowerVerticalAngle; }; -struct XrEventDataBuffer -{ - XrStructureType type; - const void *next; - uint8_t varying[4000]; -}; - -struct XrSwapchainImageD3D11KHR -{ - XrStructureType type; - void *next; - ID3D11Texture2D *texture; -}; - -struct XrCompositionLayerProjection -{ - XrStructureType type; - const void *next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - uint32_t viewCount; - const XrCompositionLayerProjectionView *views; -}; - struct XrHandMeshMSFT { XrStructureType type; @@ -2028,11 +2457,41 @@ struct XrHandMeshMSFT XrHandMeshVertexBufferMSFT vertexBuffer; }; +struct XrView +{ + XrStructureType type; + void *next; + XrPosef pose; + XrFovf fov; +}; + +struct XrCompositionLayerQuad +{ + XrStructureType type; + const void *next; + XrCompositionLayerFlags layerFlags; + XrSpace space; + XrEyeVisibility eyeVisibility; + XrSwapchainSubImage subImage; + XrPosef pose; + XrExtent2Df size; +}; + +struct XrSceneComponentsMSFT +{ + XrStructureType type; + void *next; + uint32_t componentCapacityInput; + uint32_t componentCountOutput; + XrSceneComponentMSFT *components; +}; + typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain, const XrSwapchainImageAcquireInfo *, uint32_t *); typedef XrResult (XRAPI_PTR *PFN_xrApplyHapticFeedback)(XrSession, const XrHapticActionInfo *, const XrHapticBaseHeader *); 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_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 *); @@ -2042,6 +2501,8 @@ typedef XrResult (XRAPI_PTR *PFN_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT, co typedef XrResult (XRAPI_PTR *PFN_xrCreateHandTrackerEXT)(XrSession, const XrHandTrackerCreateInfoEXT *, XrHandTrackerEXT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateInstance)(const XrInstanceCreateInfo *, XrInstance *); typedef XrResult (XRAPI_PTR *PFN_xrCreateReferenceSpace)(XrSession, const XrReferenceSpaceCreateInfo *, XrSpace *); +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_xrCreateSpatialAnchorMSFT)(XrSession, const XrSpatialAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession, const XrSpatialAnchorSpaceCreateInfoMSFT *, XrSpace *); @@ -2049,10 +2510,13 @@ typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession, c typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchain)(XrSession, const XrSwapchainCreateInfo *, XrSwapchain *); typedef XrResult (XRAPI_PTR *PFN_xrCreateVulkanDeviceKHR)(XrInstance, const XrVulkanDeviceCreateInfoKHR *, VkDevice *, VkResult *); typedef XrResult (XRAPI_PTR *PFN_xrCreateVulkanInstanceKHR)(XrInstance, const XrVulkanInstanceCreateInfoKHR *, VkInstance *, VkResult *); +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_xrDestroyHandTrackerEXT)(XrHandTrackerEXT); typedef XrResult (XRAPI_PTR *PFN_xrDestroyInstance)(XrInstance); +typedef XrResult (XRAPI_PTR *PFN_xrDestroySceneMSFT)(XrSceneMSFT); +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); @@ -2066,6 +2530,8 @@ typedef XrResult (XRAPI_PTR *PFN_xrEnumerateDisplayRefreshRatesFB)(XrSession, ui typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char *, uint32_t, uint32_t *, XrExtensionProperties *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *); +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 *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainFormats)(XrSession, uint32_t, uint32_t *, int64_t *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainImages)(XrSwapchain, uint32_t, uint32_t *, XrSwapchainImageBaseHeader *); typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurationViews)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrViewConfigurationView *); @@ -2074,6 +2540,8 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateBoolean)(XrSession, const XrAct typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateFloat)(XrSession, const XrActionStateGetInfo *, XrActionStateFloat *); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStatePose)(XrSession, const XrActionStateGetInfo *, XrActionStatePose *); typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateVector2f)(XrSession, const XrActionStateGetInfo *, XrActionStateVector2f *); +typedef XrResult (XRAPI_PTR *PFN_xrGetAudioInputDeviceGuidOculus)(XrInstance, wchar_t[]); +typedef XrResult (XRAPI_PTR *PFN_xrGetAudioOutputDeviceGuidOculus)(XrInstance, wchar_t[]); typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelKeyMSFT)(XrSession, XrPath, XrControllerModelKeyStateMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelPropertiesMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelPropertiesMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrGetControllerModelStateMSFT)(XrSession, XrControllerModelKeyMSFT, XrControllerModelStateMSFT *); @@ -2086,6 +2554,11 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance, const char * typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProperties)(XrInstance, XrInstanceProperties *); typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance, XrSystemId, XrGraphicsRequirementsOpenGLKHR *); typedef XrResult (XRAPI_PTR *PFN_xrGetReferenceSpaceBoundsRect)(XrSession, XrReferenceSpaceType, XrExtent2Df *); +typedef XrResult (XRAPI_PTR *PFN_xrGetSceneComponentsMSFT)(XrSceneMSFT, const XrSceneComponentsGetInfoMSFT *, XrSceneComponentsMSFT *); +typedef XrResult (XRAPI_PTR *PFN_xrGetSceneComputeStateMSFT)(XrSceneObserverMSFT, XrSceneComputeStateMSFT *); +typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMeshBuffersMSFT)(XrSceneMSFT, const XrSceneMeshBuffersGetInfoMSFT *, XrSceneMeshBuffersMSFT *); +typedef XrResult (XRAPI_PTR *PFN_xrGetSerializedSceneFragmentDataMSFT)(XrSceneMSFT, const XrSerializedSceneFragmentDataGetInfoMSFT *, uint32_t, uint32_t *, uint8_t *); +typedef XrResult (XRAPI_PTR *PFN_xrGetSwapchainStateFB)(XrSwapchain, XrSwapchainStateBaseHeaderFB *); typedef XrResult (XRAPI_PTR *PFN_xrGetSystem)(XrInstance, const XrSystemGetInfo *, XrSystemId *); typedef XrResult (XRAPI_PTR *PFN_xrGetSystemProperties)(XrInstance, XrSystemId, XrSystemProperties *); typedef XrResult (XRAPI_PTR *PFN_xrGetViewConfigurationProperties)(XrInstance, XrSystemId, XrViewConfigurationType, XrViewConfigurationProperties *); @@ -2098,6 +2571,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirementsKHR)(XrInstance, typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanInstanceExtensionsKHR)(XrInstance, XrSystemId, uint32_t, uint32_t *, char *); typedef XrResult (XRAPI_PTR *PFN_xrLoadControllerModelMSFT)(XrSession, XrControllerModelKeyMSFT, uint32_t, uint32_t *, uint8_t *); typedef XrResult (XRAPI_PTR *PFN_xrLocateHandJointsEXT)(XrHandTrackerEXT, const XrHandJointsLocateInfoEXT *, XrHandJointLocationsEXT *); +typedef XrResult (XRAPI_PTR *PFN_xrLocateSceneComponentsMSFT)(XrSceneMSFT, const XrSceneComponentsLocateInfoMSFT *, XrSceneComponentLocationsMSFT *); typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace, XrSpace, XrTime, XrSpaceLocation *); typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *); typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance, XrPath, uint32_t, uint32_t *, char *); @@ -2121,6 +2595,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrSuggestInteractionProfileBindings)(XrInstance 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_xrUpdateHandMeshMSFT)(XrHandTrackerEXT, const XrHandMeshUpdateInfoMSFT *, XrHandMeshMSFT *); +typedef XrResult (XRAPI_PTR *PFN_xrUpdateSwapchainFB)(XrSwapchain, const XrSwapchainStateBaseHeaderFB *); typedef XrResult (XRAPI_PTR *PFN_xrWaitFrame)(XrSession, const XrFrameWaitInfo *, XrFrameState *); typedef XrResult (XRAPI_PTR *PFN_xrWaitSwapchainImage)(XrSwapchain, const XrSwapchainImageWaitInfo *); @@ -2130,6 +2605,7 @@ 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 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); @@ -2139,6 +2615,8 @@ XrResult XRAPI_CALL xrCreateHandMeshSpaceMSFT(XrHandTrackerEXT handTracker, cons XrResult XRAPI_CALL xrCreateHandTrackerEXT(XrSession session, const XrHandTrackerCreateInfoEXT *createInfo, XrHandTrackerEXT *handTracker); XrResult XRAPI_CALL xrCreateInstance(const XrInstanceCreateInfo *createInfo, XrInstance *instance); XrResult XRAPI_CALL xrCreateReferenceSpace(XrSession session, const XrReferenceSpaceCreateInfo *createInfo, XrSpace *space); +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 xrCreateSpatialAnchorMSFT(XrSession session, const XrSpatialAnchorCreateInfoMSFT *createInfo, XrSpatialAnchorMSFT *anchor); XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT *createInfo, XrSpace *space); @@ -2146,10 +2624,13 @@ XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT(XrSession session, const X XrResult XRAPI_CALL xrCreateSwapchain(XrSession session, const XrSwapchainCreateInfo *createInfo, XrSwapchain *swapchain); XrResult XRAPI_CALL xrCreateVulkanDeviceKHR(XrInstance instance, const XrVulkanDeviceCreateInfoKHR *createInfo, VkDevice *vulkanDevice, VkResult *vulkanResult); XrResult XRAPI_CALL xrCreateVulkanInstanceKHR(XrInstance instance, const XrVulkanInstanceCreateInfoKHR *createInfo, VkInstance *vulkanInstance, VkResult *vulkanResult); +XrResult XRAPI_CALL xrDeserializeSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrSceneDeserializeInfoMSFT *deserializeInfo); XrResult XRAPI_CALL xrDestroyAction(XrAction action); XrResult XRAPI_CALL xrDestroyActionSet(XrActionSet actionSet); XrResult XRAPI_CALL xrDestroyHandTrackerEXT(XrHandTrackerEXT handTracker); XrResult XRAPI_CALL xrDestroyInstance(XrInstance instance); +XrResult XRAPI_CALL xrDestroySceneMSFT(XrSceneMSFT scene); +XrResult XRAPI_CALL xrDestroySceneObserverMSFT(XrSceneObserverMSFT sceneObserver); XrResult XRAPI_CALL xrDestroySession(XrSession session); XrResult XRAPI_CALL xrDestroySpace(XrSpace space); XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor); @@ -2163,6 +2644,8 @@ XrResult XRAPI_CALL xrEnumerateDisplayRefreshRatesFB(XrSession session, uint32_t XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t *environmentBlendModeCountOutput, XrEnvironmentBlendMode *environmentBlendModes); XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties(const char *layerName, uint32_t propertyCapacityInput, uint32_t *propertyCountOutput, XrExtensionProperties *properties); XrResult XRAPI_CALL xrEnumerateReferenceSpaces(XrSession session, uint32_t spaceCapacityInput, uint32_t *spaceCountOutput, XrReferenceSpaceType *spaces); +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); XrResult XRAPI_CALL xrEnumerateSwapchainFormats(XrSession session, uint32_t formatCapacityInput, uint32_t *formatCountOutput, int64_t *formats); XrResult XRAPI_CALL xrEnumerateSwapchainImages(XrSwapchain swapchain, uint32_t imageCapacityInput, uint32_t *imageCountOutput, XrSwapchainImageBaseHeader *images); XrResult XRAPI_CALL xrEnumerateViewConfigurationViews(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t *viewCountOutput, XrViewConfigurationView *views); @@ -2171,6 +2654,8 @@ XrResult XRAPI_CALL xrGetActionStateBoolean(XrSession session, const XrActionSta XrResult XRAPI_CALL xrGetActionStateFloat(XrSession session, const XrActionStateGetInfo *getInfo, XrActionStateFloat *state); XrResult XRAPI_CALL xrGetActionStatePose(XrSession session, const XrActionStateGetInfo *getInfo, XrActionStatePose *state); XrResult XRAPI_CALL xrGetActionStateVector2f(XrSession session, const XrActionStateGetInfo *getInfo, XrActionStateVector2f *state); +XrResult XRAPI_CALL xrGetAudioInputDeviceGuidOculus(XrInstance instance, wchar_t buffer[]); +XrResult XRAPI_CALL xrGetAudioOutputDeviceGuidOculus(XrInstance instance, wchar_t buffer[]); XrResult XRAPI_CALL xrGetControllerModelKeyMSFT(XrSession session, XrPath topLevelUserPath, XrControllerModelKeyStateMSFT *controllerModelKeyState); XrResult XRAPI_CALL xrGetControllerModelPropertiesMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelPropertiesMSFT *properties); XrResult XRAPI_CALL xrGetControllerModelStateMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, XrControllerModelStateMSFT *state); @@ -2183,6 +2668,11 @@ XrResult XRAPI_CALL xrGetInstanceProcAddr(XrInstance instance, const char *name, XrResult XRAPI_CALL xrGetInstanceProperties(XrInstance instance, XrInstanceProperties *instanceProperties); XrResult XRAPI_CALL xrGetOpenGLGraphicsRequirementsKHR(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLKHR *graphicsRequirements); XrResult XRAPI_CALL xrGetReferenceSpaceBoundsRect(XrSession session, XrReferenceSpaceType referenceSpaceType, XrExtent2Df *bounds); +XrResult XRAPI_CALL xrGetSceneComponentsMSFT(XrSceneMSFT scene, const XrSceneComponentsGetInfoMSFT *getInfo, XrSceneComponentsMSFT *components); +XrResult XRAPI_CALL xrGetSceneComputeStateMSFT(XrSceneObserverMSFT sceneObserver, XrSceneComputeStateMSFT *state); +XrResult XRAPI_CALL xrGetSceneMeshBuffersMSFT(XrSceneMSFT scene, const XrSceneMeshBuffersGetInfoMSFT *getInfo, XrSceneMeshBuffersMSFT *buffers); +XrResult XRAPI_CALL xrGetSerializedSceneFragmentDataMSFT(XrSceneMSFT scene, const XrSerializedSceneFragmentDataGetInfoMSFT *getInfo, uint32_t countInput, uint32_t *readOutput, uint8_t *buffer); +XrResult XRAPI_CALL xrGetSwapchainStateFB(XrSwapchain swapchain, XrSwapchainStateBaseHeaderFB *state); XrResult XRAPI_CALL xrGetSystem(XrInstance instance, const XrSystemGetInfo *getInfo, XrSystemId *systemId); XrResult XRAPI_CALL xrGetSystemProperties(XrInstance instance, XrSystemId systemId, XrSystemProperties *properties); XrResult XRAPI_CALL xrGetViewConfigurationProperties(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, XrViewConfigurationProperties *configurationProperties); @@ -2195,6 +2685,7 @@ XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR(XrInstance instance, XrSy XrResult XRAPI_CALL xrGetVulkanInstanceExtensionsKHR(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, char *buffer); XrResult XRAPI_CALL xrLoadControllerModelMSFT(XrSession session, XrControllerModelKeyMSFT modelKey, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, uint8_t *buffer); XrResult XRAPI_CALL xrLocateHandJointsEXT(XrHandTrackerEXT handTracker, const XrHandJointsLocateInfoEXT *locateInfo, XrHandJointLocationsEXT *locations); +XrResult XRAPI_CALL xrLocateSceneComponentsMSFT(XrSceneMSFT scene, const XrSceneComponentsLocateInfoMSFT *locateInfo, XrSceneComponentLocationsMSFT *locations); XrResult XRAPI_CALL xrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation *location); XrResult XRAPI_CALL xrLocateViews(XrSession session, const XrViewLocateInfo *viewLocateInfo, XrViewState *viewState, uint32_t viewCapacityInput, uint32_t *viewCountOutput, XrView *views); XrResult XRAPI_CALL xrPathToString(XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t *bufferCountOutput, char *buffer); @@ -2218,6 +2709,7 @@ XrResult XRAPI_CALL xrSuggestInteractionProfileBindings(XrInstance instance, con 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 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); XrResult XRAPI_CALL xrWaitSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageWaitInfo *waitInfo); #endif /* XR_NO_PROTOTYPES */ diff --git a/wineopenxr/xr.xml b/wineopenxr/xr.xml index 41c4b5fe..4570a1e7 100644 --- a/wineopenxr/xr.xml +++ b/wineopenxr/xr.xml @@ -18,38 +18,38 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + @@ -68,6 +68,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. + @@ -89,14 +90,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project. + + + + #define XR_MAKE_VERSION(major, minor, patch) \ @@ -111,7 +116,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. updates them automatically by processing a line at a time. --> // OpenXR current version number. -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 15) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 17) #if !defined(XR_MAY_ALIAS) -#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4)) +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4)) #define XR_MAY_ALIAS __attribute__((__may_alias__)) #else #define XR_MAY_ALIAS @@ -208,6 +213,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. + @@ -220,30 +226,30 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - typedef XrFlags64 XrInstanceCreateFlags; - typedef XrFlags64 XrSessionCreateFlags; - typedef XrFlags64 XrSwapchainCreateFlags; - typedef XrFlags64 XrSwapchainUsageFlags; - typedef XrFlags64 XrViewStateFlags; - typedef XrFlags64 XrCompositionLayerFlags; - typedef XrFlags64 XrSpaceLocationFlags; - typedef XrFlags64 XrSpaceVelocityFlags; - typedef XrFlags64 XrInputSourceLocalizedNameFlags; + typedef XrFlags64 XrInstanceCreateFlags; + typedef XrFlags64 XrSessionCreateFlags; + typedef XrFlags64 XrSwapchainCreateFlags; + typedef XrFlags64 XrSwapchainUsageFlags; + typedef XrFlags64 XrViewStateFlags; + typedef XrFlags64 XrCompositionLayerFlags; + typedef XrFlags64 XrSpaceLocationFlags; + typedef XrFlags64 XrSpaceVelocityFlags; + typedef XrFlags64 XrInputSourceLocalizedNameFlags; - typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR; - typedef XrFlags64 XrVulkanDeviceCreateFlagsKHR; + typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR; + typedef XrFlags64 XrVulkanDeviceCreateFlagsKHR; - typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT; - typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT; + typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT; + typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT; - typedef XrFlags64 XrOverlayMainSessionFlagsEXTX; - typedef XrFlags64 XrOverlaySessionCreateFlagsEXTX; + typedef XrFlags64 XrOverlayMainSessionFlagsEXTX; + typedef XrFlags64 XrOverlaySessionCreateFlagsEXTX; - typedef XrFlags64 XrAndroidSurfaceSwapchainFlagsFB; + typedef XrFlags64 XrAndroidSurfaceSwapchainFlagsFB; @@ -1015,15 +1021,15 @@ maintained in the default branch of the Khronos OpenXR GitHub project. const VkDeviceCreateInfo* vulkanCreateInfo const VkAllocationCallbacks* vulkanAllocator - + XrStructureType type const void* next XrSystemId systemId VkInstance vulkanInstance - - + + @@ -1194,6 +1200,14 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrHandJointVelocityEXT* jointVelocities + + + + XrStructureType type + const void* next + XrHandJointsMotionRangeEXT handJointsMotionRange + + @@ -1295,9 +1309,56 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - XrStructureType type - const void* next - XrAndroidSurfaceSwapchainFlagsFB createFlags + XrStructureType type + const void* next + XrAndroidSurfaceSwapchainFlagsFB createFlags + + + + + XrStructureType type + void* next + + + + + XrStructureType type + void* next + uint32_t width + uint32_t height + + + + + XrStructureType type + void* next + EGLenum minFilter + EGLenum magFilter + EGLenum wrapModeS + EGLenum wrapModeT + EGLenum swizzleRed + EGLenum swizzleGreen + EGLenum swizzleBlue + EGLenum swizzleAlpha + float maxAnisotropy + XrColor4f borderColor + + + + + 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 @@ -1369,12 +1430,203 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrControllerModelNodeStateMSFT* nodeStates + + + XR_DEFINE_HANDLE(XrSceneObserverMSFT) + + XR_DEFINE_HANDLE(XrSceneMSFT) + + + + + + + + + uint8_t bytes[16] + + + XrStructureType type + const void* next + + + XrStructureType type + const void* next + + + XrStructureType type + const void* next + uint32_t requestedFeatureCount + const XrSceneComputeFeatureMSFT* requestedFeatures + XrSceneComputeConsistencyMSFT consistency + XrSceneBoundsMSFT bounds + + + XrStructureType type + const void* next + XrMeshComputeLodMSFT lod + + + XrVector3f center + float radius + + + XrPosef pose + XrVector3f extents + + + XrPosef pose + XrFovf fov + float farDistance + + + XrSpace space + XrTime time + uint32_t sphereCount + const XrSceneSphereBoundMSFT* spheres + uint32_t boxCount + const XrSceneOrientedBoxBoundMSFT* boxes + uint32_t frustumCount + const XrSceneFrustumBoundMSFT* frustums + + + XrSceneComponentTypeMSFT componentType + XrUuidMSFT id + XrUuidMSFT parentId + XrTime updateTime + + + XrStructureType type + void* next + uint32_t componentCapacityInput + uint32_t componentCountOutput + XrSceneComponentMSFT* components + + + XrStructureType type + const void* next + XrSceneComponentTypeMSFT componentType + + + XrSpaceLocationFlags flags + XrPosef pose + + + XrStructureType type + void* next + uint32_t locationCount + XrSceneComponentLocationMSFT* locations + + + XrStructureType type + const void* next + XrSpace baseSpace + XrTime time + uint32_t componentIdCount + const XrUuidMSFT* componentIds + + + XrSceneObjectTypeMSFT objectType + + + XrStructureType type + void* next + uint32_t sceneObjectCount + XrSceneObjectMSFT* sceneObjects + + + XrStructureType type + const void* next + XrUuidMSFT parentId + + + XrStructureType type + const void* next + uint32_t objectTypeCount + const XrSceneObjectTypeMSFT* objectTypes + + + XrScenePlaneAlignmentTypeMSFT alignment + XrExtent2Df size + uint64_t meshBufferId + XrBool32 supportsIndicesUint16 + + + XrStructureType type + void* next + uint32_t scenePlaneCount + XrScenePlaneMSFT* scenePlanes + + + XrStructureType type + const void* next + uint32_t alignmentCount + const XrScenePlaneAlignmentTypeMSFT* alignments + + + uint64_t meshBufferId + XrBool32 supportsIndicesUint16 + + + XrStructureType type + void* next + uint32_t sceneMeshCount + XrSceneMeshMSFT* sceneMeshes + + + XrStructureType type + const void* next + uint64_t meshBufferId + + + XrStructureType type + void* next + + + XrStructureType type + void* next + uint32_t vertexCapacityInput + uint32_t vertexCountOutput + XrVector3f* vertices + + + XrStructureType type + void* next + uint32_t indexCapacityInput + uint32_t indexCountOutput + uint32_t* indices + + + XrStructureType type + void* next + uint32_t indexCapacityInput + uint32_t indexCountOutput + uint16_t* indices + + + + + XrStructureType type + const void* next + XrUuidMSFT sceneFragmentId + + + uint32_t bufferSize + const uint8_t* buffer + + + XrStructureType type + const void* next + uint32_t fragmentCount + const XrDeserializeSceneFragmentMSFT* fragments + + - XrStructureType type - void* next - XrColorSpaceFB colorSpace + XrStructureType type + void* next + XrColorSpaceFB colorSpace @@ -1387,12 +1639,12 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - XrStructureType type - const void* next - XrBool32 foveatedRenderingActive + XrStructureType type + const void* next + XrBool32 foveatedRenderingActive - + XrStructureType type void* next XrBool32 foveatedRenderingActive @@ -1404,12 +1656,27 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrBool32 supportsFoveatedRendering + + + + XrStructureType type + const void* next + XrReprojectionModeMSFT reprojectionMode + + + XrStructureType type + const void* next + XrVector3f position + XrVector3f normal + XrVector3f velocity + + - + @@ -1438,135 +1705,136 @@ maintained in the default branch of the Khronos OpenXR GitHub project. be generated inside an appropriate definition. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - + + + @@ -1576,38 +1844,38 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - + + + - - + + - - + + - - - + + + - - - - - - - - - + + + + + + + + + - - - + + - - - + + + - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + - - + + - - - - - - - - + + + + + + + + + + + + + + + + @@ -1716,45 +1998,45 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - + + - - - - - - - + + + + + + + - - - - + + + + - - - + + + - - - - + + + + - - + + - - - + + + @@ -1767,59 +2049,105 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - - + + + + - - - - + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + XrResult xrGetInstanceProcAddr XrInstance instance const char* name PFN_xrVoidFunction* function - + XrResult xrEnumerateApiLayerProperties uint32_t propertyCapacityInput uint32_t* propertyCountOutput XrApiLayerProperties* properties - + XrResult xrEnumerateInstanceExtensionProperties const char* layerName uint32_t propertyCapacityInput uint32_t* propertyCountOutput XrExtensionProperties* properties - + XrResult xrCreateInstance const XrInstanceCreateInfo* createInfo XrInstance* instance @@ -1828,36 +2156,36 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrResult xrDestroyInstance XrInstance instance - + XrResult xrResultToString XrInstance instance XrResult value char buffer[XR_MAX_RESULT_STRING_SIZE] - + XrResult xrStructureTypeToString XrInstance instance XrStructureType value char buffer[XR_MAX_STRUCTURE_NAME_SIZE] - + XrResult xrGetInstanceProperties XrInstance instance XrInstanceProperties* instanceProperties - + XrResult xrGetSystem XrInstance instance const XrSystemGetInfo* getInfo XrSystemId* systemId - + XrResult xrGetSystemProperties XrInstance instance XrSystemId systemId XrSystemProperties* properties - + XrResult xrCreateSession XrInstance instance const XrSessionCreateInfo* createInfo @@ -1870,15 +2198,15 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrResult xrDestroySpace XrSpace space - - + + XrResult xrEnumerateSwapchainFormats XrSession session uint32_t formatCapacityInput uint32_t* formatCountOutput int64_t* formats - + XrResult xrCreateSwapchain XrSession session const XrSwapchainCreateInfo* createInfo @@ -1888,69 +2216,69 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrResult xrDestroySwapchain XrSwapchain swapchain - + XrResult xrEnumerateSwapchainImages XrSwapchain swapchain uint32_t imageCapacityInput uint32_t* imageCountOutput XrSwapchainImageBaseHeader* images - + XrResult xrAcquireSwapchainImage XrSwapchain swapchain const XrSwapchainImageAcquireInfo* acquireInfo uint32_t* index - + XrResult xrWaitSwapchainImage XrSwapchain swapchain const XrSwapchainImageWaitInfo* waitInfo - + XrResult xrReleaseSwapchainImage XrSwapchain swapchain const XrSwapchainImageReleaseInfo* releaseInfo - + XrResult xrBeginSession XrSession session const XrSessionBeginInfo* beginInfo - + XrResult xrEndSession XrSession session - + XrResult xrRequestExitSession XrSession session - + XrResult xrEnumerateReferenceSpaces XrSession session uint32_t spaceCapacityInput uint32_t* spaceCountOutput XrReferenceSpaceType* spaces - + XrResult xrCreateReferenceSpace XrSession session const XrReferenceSpaceCreateInfo* createInfo XrSpace* space - + XrResult xrCreateActionSpace XrSession session const XrActionSpaceCreateInfo* createInfo XrSpace* space - + XrResult xrLocateSpace XrSpace space XrSpace baseSpace XrTime time XrSpaceLocation* location - + XrResult xrEnumerateViewConfigurations XrInstance instance XrSystemId systemId @@ -1958,7 +2286,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* viewConfigurationTypeCountOutput XrViewConfigurationType* viewConfigurationTypes - + XrResult xrEnumerateEnvironmentBlendModes XrInstance instance XrSystemId systemId @@ -1967,14 +2295,14 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* environmentBlendModeCountOutput XrEnvironmentBlendMode* environmentBlendModes - + XrResult xrGetViewConfigurationProperties XrInstance instance XrSystemId systemId XrViewConfigurationType viewConfigurationType XrViewConfigurationProperties* configurationProperties - + XrResult xrEnumerateViewConfigurationViews XrInstance instance XrSystemId systemId @@ -1983,12 +2311,12 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* viewCountOutput XrViewConfigurationView* views - + XrResult xrBeginFrame XrSession session const XrFrameBeginInfo* frameBeginInfo - + XrResult xrLocateViews XrSession session const XrViewLocateInfo* viewLocateInfo @@ -1997,12 +2325,12 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* viewCountOutput XrView* views - + XrResult xrEndFrame XrSession session const XrFrameEndInfo* frameEndInfo - + XrResult xrWaitFrame XrSession session const XrFrameWaitInfo* frameWaitInfo @@ -2011,29 +2339,29 @@ maintained in the default branch of the Khronos OpenXR GitHub project. the pname:session parameter by any other flink:xrWaitFrame call - + XrResult xrApplyHapticFeedback XrSession session const XrHapticActionInfo* hapticActionInfo const XrHapticBaseHeader* hapticFeedback - + XrResult xrStopHapticFeedback XrSession session const XrHapticActionInfo* hapticActionInfo - + XrResult xrPollEvent XrInstance instance XrEventDataBuffer* eventData - + XrResult xrStringToPath XrInstance instance const char* pathString XrPath* path - + XrResult xrPathToString XrInstance instance XrPath path @@ -2041,50 +2369,50 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* bufferCountOutput char* buffer - + XrResult xrGetReferenceSpaceBoundsRect XrSession session XrReferenceSpaceType referenceSpaceType XrExtent2Df* bounds - + XrResult xrSetAndroidApplicationThreadKHR XrSession session XrAndroidThreadTypeKHR threadType uint32_t threadId - + XrResult xrCreateSwapchainAndroidSurfaceKHR XrSession session const XrSwapchainCreateInfo* info XrSwapchain* swapchain jobject* surface - + XrResult xrGetActionStateBoolean XrSession session const XrActionStateGetInfo* getInfo XrActionStateBoolean* state - + XrResult xrGetActionStateFloat XrSession session const XrActionStateGetInfo* getInfo XrActionStateFloat* state - + XrResult xrGetActionStateVector2f XrSession session const XrActionStateGetInfo* getInfo XrActionStateVector2f* state - + XrResult xrGetActionStatePose XrSession session const XrActionStateGetInfo* getInfo XrActionStatePose* state - + XrResult xrCreateActionSet XrInstance instance const XrActionSetCreateInfo* createInfo @@ -2094,7 +2422,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrResult xrDestroyActionSet XrActionSet actionSet - + XrResult xrCreateAction XrActionSet actionSet const XrActionCreateInfo* createInfo @@ -2104,28 +2432,28 @@ maintained in the default branch of the Khronos OpenXR GitHub project. XrResult xrDestroyAction XrAction action - + XrResult xrSuggestInteractionProfileBindings XrInstance instance const XrInteractionProfileSuggestedBinding* suggestedBindings - + XrResult xrAttachSessionActionSets XrSession session const XrSessionActionSetsAttachInfo* attachInfo - + XrResult xrGetCurrentInteractionProfile XrSession session XrPath topLevelUserPath XrInteractionProfileState* interactionProfile - + XrResult xrSyncActions XrSession session const XrActionsSyncInfo* syncInfo - + XrResult xrEnumerateBoundSourcesForAction XrSession session const XrBoundSourcesForActionEnumerateInfo* enumerateInfo @@ -2133,7 +2461,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* sourceCountOutput XrPath* sources - + XrResult xrGetInputSourceLocalizedName XrSession session const XrInputSourceLocalizedNameGetInfo* getInfo @@ -2141,7 +2469,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* bufferCountOutput char* buffer - + XrResult xrGetVulkanInstanceExtensionsKHR XrInstance instance XrSystemId systemId @@ -2149,7 +2477,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* bufferCountOutput char* buffer - + XrResult xrGetVulkanDeviceExtensionsKHR XrInstance instance XrSystemId systemId @@ -2157,50 +2485,50 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* bufferCountOutput char* buffer - + XrResult xrGetVulkanGraphicsDeviceKHR XrInstance instance XrSystemId systemId VkInstance vkInstance VkPhysicalDevice* vkPhysicalDevice - + XrResult xrGetOpenGLGraphicsRequirementsKHR XrInstance instance XrSystemId systemId XrGraphicsRequirementsOpenGLKHR* graphicsRequirements - + XrResult xrGetOpenGLESGraphicsRequirementsKHR XrInstance instance XrSystemId systemId XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements - + XrResult xrGetVulkanGraphicsRequirementsKHR XrInstance instance XrSystemId systemId XrGraphicsRequirementsVulkanKHR* graphicsRequirements - + XrResult xrGetD3D11GraphicsRequirementsKHR XrInstance instance XrSystemId systemId XrGraphicsRequirementsD3D11KHR* graphicsRequirements - + XrResult xrGetD3D12GraphicsRequirementsKHR XrInstance instance XrSystemId systemId XrGraphicsRequirementsD3D12KHR* graphicsRequirements - + XrResult xrPerfSettingsSetPerformanceLevelEXT XrSession session XrPerfSettingsDomainEXT domain XrPerfSettingsLevelEXT level - + XrResult xrThermalGetTemperatureTrendEXT XrSession session XrPerfSettingsDomainEXT domain @@ -2208,54 +2536,54 @@ maintained in the default branch of the Khronos OpenXR GitHub project. float* tempHeadroom float* tempSlope - + XrResult xrSetDebugUtilsObjectNameEXT XrInstance instance const XrDebugUtilsObjectNameInfoEXT* nameInfo - + XrResult xrCreateDebugUtilsMessengerEXT XrInstance instance const XrDebugUtilsMessengerCreateInfoEXT* createInfo XrDebugUtilsMessengerEXT* messenger - + XrResult xrDestroyDebugUtilsMessengerEXT XrDebugUtilsMessengerEXT messenger the slink:XrInstance used to create pname:messenger, and all of its child handles - + XrResult xrSubmitDebugUtilsMessageEXT XrInstance instance XrDebugUtilsMessageSeverityFlagsEXT messageSeverity XrDebugUtilsMessageTypeFlagsEXT messageTypes const XrDebugUtilsMessengerCallbackDataEXT* callbackData - + XrResult xrSessionBeginDebugUtilsLabelRegionEXT XrSession session const XrDebugUtilsLabelEXT* labelInfo - + XrResult xrSessionEndDebugUtilsLabelRegionEXT XrSession session - + XrResult xrSessionInsertDebugUtilsLabelEXT XrSession session const XrDebugUtilsLabelEXT* labelInfo - + XrResult xrConvertTimeToWin32PerformanceCounterKHR XrInstance instance XrTime time LARGE_INTEGER* performanceCounter - + XrResult xrConvertWin32PerformanceCounterToTimeKHR XrInstance instance const LARGE_INTEGER* performanceCounter @@ -2263,36 +2591,36 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrCreateVulkanInstanceKHR XrInstance instance const XrVulkanInstanceCreateInfoKHR*createInfo VkInstance* vulkanInstance VkResult* vulkanResult - + XrResult xrCreateVulkanDeviceKHR XrInstance instance const XrVulkanDeviceCreateInfoKHR* createInfo VkDevice* vulkanDevice VkResult* vulkanResult - + XrResult xrGetVulkanGraphicsDevice2KHR XrInstance instance const XrVulkanGraphicsDeviceGetInfoKHR* getInfo VkPhysicalDevice* vulkanPhysicalDevice - + - + XrResult xrConvertTimeToTimespecTimeKHR XrInstance instance XrTime time struct timespec* timespecTime - + XrResult xrConvertTimespecTimeToTimeKHR XrInstance instance const struct timespec* timespecTime @@ -2300,7 +2628,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrGetVisibilityMaskKHR XrSession session XrViewConfigurationType viewConfigurationType @@ -2310,58 +2638,53 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrCreateSpatialAnchorMSFT XrSession session const XrSpatialAnchorCreateInfoMSFT* createInfo XrSpatialAnchorMSFT* anchor - + XrResult xrCreateSpatialAnchorSpaceMSFT XrSession session const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo XrSpace* space - + XrResult xrDestroySpatialAnchorMSFT XrSpatialAnchorMSFT anchor - + XrResult xrSetInputDeviceActiveEXT XrSession session XrPath interactionProfile XrPath topLevelPath XrBool32 isActive - + XrResult xrSetInputDeviceStateBoolEXT XrSession session XrPath topLevelPath XrPath inputSourcePath XrBool32 state - + XrResult xrSetInputDeviceStateFloatEXT XrSession session XrPath topLevelPath XrPath inputSourcePath float state - + XrResult xrSetInputDeviceStateVector2fEXT XrSession session XrPath topLevelPath XrPath inputSourcePath XrVector2f state - + XrResult xrSetInputDeviceLocationEXT XrSession session XrPath topLevelPath @@ -2371,14 +2694,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrInitializeLoaderKHR const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo - + XrResult xrCreateSpatialGraphNodeSpaceMSFT XrSession session const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo @@ -2386,18 +2708,17 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrCreateHandTrackerEXT XrSession session const XrHandTrackerCreateInfoEXT* createInfo XrHandTrackerEXT* handTracker - + XrResult xrDestroyHandTrackerEXT XrHandTrackerEXT handTracker - + XrResult xrLocateHandJointsEXT XrHandTrackerEXT handTracker const XrHandJointsLocateInfoEXT* locateInfo @@ -2405,15 +2726,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrCreateHandMeshSpaceMSFT XrHandTrackerEXT handTracker const XrHandMeshSpaceCreateInfoMSFT* createInfo XrSpace* space - + XrResult xrUpdateHandMeshMSFT XrHandTrackerEXT handTracker const XrHandMeshUpdateInfoMSFT* updateInfo @@ -2421,13 +2740,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + XrResult xrGetControllerModelKeyMSFT XrSession session XrPath topLevelUserPath XrControllerModelKeyStateMSFT* controllerModelKeyState - + XrResult xrLoadControllerModelMSFT XrSession session XrControllerModelKeyMSFT modelKey @@ -2435,72 +2754,182 @@ maintained in the default branch of the Khronos OpenXR GitHub project. uint32_t* bufferCountOutput uint8_t* buffer - + XrResult xrGetControllerModelPropertiesMSFT XrSession session XrControllerModelKeyMSFT modelKey XrControllerModelPropertiesMSFT* properties - + XrResult xrGetControllerModelStateMSFT XrSession session XrControllerModelKeyMSFT modelKey XrControllerModelStateMSFT* state - - - XrResult xrEnumerateDisplayRefreshRatesFB - XrSession session - uint32_t displayRefreshRateCapacityInput - uint32_t* displayRefreshRateCountOutput - float* displayRefreshRates - - - XrResult xrGetDisplayRefreshRateFB - XrSession session - float* displayRefreshRate - - - XrResult xrRequestDisplayRefreshRateFB - XrSession session - float displayRefreshRate - + + + XrResult xrEnumerateSceneComputeFeaturesMSFT + XrInstance instance + XrSystemId systemId + uint32_t featureCapacityInput + uint32_t* featureCountOutput + XrSceneComputeFeatureMSFT* features + + + XrResult xrCreateSceneObserverMSFT + XrSession session + const XrSceneObserverCreateInfoMSFT* createInfo + XrSceneObserverMSFT* sceneObserver + + + XrResult xrDestroySceneObserverMSFT + XrSceneObserverMSFT sceneObserver + + + XrResult xrCreateSceneMSFT + XrSceneObserverMSFT sceneObserver + const XrSceneCreateInfoMSFT* createInfo + XrSceneMSFT* scene + + + XrResult xrDestroySceneMSFT + XrSceneMSFT scene + + + XrResult xrComputeNewSceneMSFT + XrSceneObserverMSFT sceneObserver + const XrNewSceneComputeInfoMSFT* computeInfo + + + XrResult xrGetSceneComputeStateMSFT + XrSceneObserverMSFT sceneObserver + XrSceneComputeStateMSFT* state + + + XrResult xrGetSceneComponentsMSFT + XrSceneMSFT scene + const XrSceneComponentsGetInfoMSFT* getInfo + XrSceneComponentsMSFT* components + + + XrResult xrLocateSceneComponentsMSFT + XrSceneMSFT scene + const XrSceneComponentsLocateInfoMSFT* locateInfo + XrSceneComponentLocationsMSFT* locations + + + XrResult xrGetSceneMeshBuffersMSFT + XrSceneMSFT scene + const XrSceneMeshBuffersGetInfoMSFT* getInfo + XrSceneMeshBuffersMSFT* buffers + - - - XrResult xrCreateSpatialAnchorFromPerceptionAnchorMSFT - XrSession session - IUnknown* perceptionAnchor - XrSpatialAnchorMSFT* anchor - - - XrResult xrTryGetPerceptionAnchorFromSpatialAnchorMSFT - XrSession session - XrSpatialAnchorMSFT anchor - IUnknown** perceptionAnchor - + + + XrResult xrDeserializeSceneMSFT + XrSceneObserverMSFT sceneObserver + const XrSceneDeserializeInfoMSFT* deserializeInfo + + + XrResult xrGetSerializedSceneFragmentDataMSFT + XrSceneMSFT scene + const XrSerializedSceneFragmentDataGetInfoMSFT* getInfo + uint32_t countInput + uint32_t* readOutput + uint8_t* buffer + - - - XrResult xrEnumerateColorSpacesFB - XrSession session - uint32_t colorSpaceCapacityInput - uint32_t* colorSpaceCountOutput - XrColorSpaceFB* colorSpaces - - - XrResult xrSetColorSpaceFB - XrSession session - const XrColorSpaceFB colorspace - + + + XrResult xrEnumerateDisplayRefreshRatesFB + XrSession session + uint32_t displayRefreshRateCapacityInput + uint32_t* displayRefreshRateCountOutput + float* displayRefreshRates + + + XrResult xrGetDisplayRefreshRateFB + XrSession session + float* displayRefreshRate + + + XrResult xrRequestDisplayRefreshRateFB + XrSession session + float displayRefreshRate + - - - XrResult xrSetEnvironmentDepthEstimationVARJO - XrSession session - XrBool32 enabled - + + + XrResult xrCreateSpatialAnchorFromPerceptionAnchorMSFT + XrSession session + IUnknown* perceptionAnchor + XrSpatialAnchorMSFT* anchor + + + XrResult xrTryGetPerceptionAnchorFromSpatialAnchorMSFT + XrSession session + XrSpatialAnchorMSFT anchor + IUnknown** perceptionAnchor + + + + + XrResult xrUpdateSwapchainFB + XrSwapchain swapchain + const XrSwapchainStateBaseHeaderFB* state + + + + XrResult xrGetSwapchainStateFB + XrSwapchain swapchain + XrSwapchainStateBaseHeaderFB* state + + + + + XrResult xrEnumerateColorSpacesFB + XrSession session + uint32_t colorSpaceCapacityInput + uint32_t* colorSpaceCountOutput + XrColorSpaceFB* colorSpaces + + + XrResult xrSetColorSpaceFB + XrSession session + const XrColorSpaceFB colorspace + + + + + XrResult xrSetEnvironmentDepthEstimationVARJO + XrSession session + XrBool32 enabled + + + + + XrResult xrEnumerateReprojectionModesMSFT + XrInstance instance + XrSystemId systemId + XrViewConfigurationType viewConfigurationType + uint32_t modeCapacityInput + uint32_t* modeCountOutput + XrReprojectionModeMSFT* modes + + + + + XrResult xrGetAudioOutputDeviceGuidOculus + XrInstance instance + wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS] + + + + XrResult xrGetAudioInputDeviceGuidOculus + XrInstance instance + wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS] + @@ -2679,7 +3108,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2708,7 +3137,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2737,7 +3166,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2745,7 +3174,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2760,7 +3189,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2791,7 +3220,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2816,7 +3245,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -2855,9 +3284,9 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - + + + @@ -2931,14 +3360,14 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - - - - - - + + + + + + + + @@ -2967,9 +3396,9 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - + + + @@ -2981,7 +3410,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -3028,11 +3457,11 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - - - + + + + + @@ -3089,7 +3518,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -3112,9 +3541,9 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - + + + @@ -3128,7 +3557,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -3189,18 +3618,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - + + - - - - - - - + + + + + + + @@ -3219,26 +3648,26 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - - - + + + + + - - - - + + + + - - - - - + + + + + @@ -3264,8 +3693,8 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - + + @@ -3289,7 +3718,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -3308,10 +3737,21 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + - - + + + + + + + + + + + + + @@ -3342,14 +3782,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + - + - - + + + + + + @@ -3411,10 +3855,15 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + - - + + + + + + + @@ -3481,7 +3930,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -3549,21 +3998,105 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + @@ -3583,16 +4116,16 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - + + - - + + - - - - + + + + @@ -3650,7 +4183,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + @@ -3758,19 +4291,19 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - - - - - - + + + + + + - + @@ -4019,10 +4552,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + - - + + + + + @@ -4033,24 +4569,30 @@ maintained in the default branch of the Khronos OpenXR GitHub project. - + - - + + + + - + - - + + + + - + - - + + + + @@ -4061,6 +4603,83 @@ maintained in the default branch of the Khronos OpenXR GitHub project. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +