我正在使用Windows Mixed Reality OpenXR
插件/插件在Windows上使用OpenXR
编写应用程序。当我的应用程序运行并且VR设备进入睡眠状态时,我会得到一个状态更改以退出OpenXR应用程序。根据OpenXR的生命周期,没有回头路(我正确地退出了我的应用程序(。我可以唤醒混合现实门户中的眼镜。即使我忽略了应用程序中的退出状态更改并保持其运行,在唤醒眼镜后,我在OpenXR应用程序中也不会收到任何状态更改事件。这是正确的行为吗?我认为我需要在应用程序中正确处理入睡(例如,暂停应用程序并继续唤醒设备(。我还缺少什么吗?
以下是我记录的状态变化(刚刚启动应用程序并等待VR设备进入睡眠状态(:
- XR_SESSION_STATE_IDLE
- XR_SESSION_STATE_READY
- XR_SESSION_STATE_SYNCHRONIZED
- XR_SESSION_STATE_VISIBLE
- XR_SESSION_STATE_SYNCHRONIZED
- XR_SESSION_STATE_STOPPING
- XR_SESSION_STATE_IDLE
- XR_SESSION_STATE_EXITING
所以实际的问题是:当使用OpenXR
和Windows Mixed Reality
时,我如何正确处理VR设备进入睡眠状态?
感谢任何提示:(
感谢您的评论和更新。对于行为,这对于关闭前发送的XR_SESSION_STATE_EXITING是正确的。OpenXR规范中没有恢复状态或挂起状态:
https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrSessionState.html
XR_SESSION_STATE_exitting。
"应用程序应该结束其XR体验,而不是自动重新启动它;
因此,如果您确实要为应用程序执行任何清理,则可以在接收XR_SESSION_STATE_STOPPING 时执行该操作
重新启动后,您应该再次获得标准的XR_SESSION_STATE_READY通知,以执行任何特定于应用程序的启动。这可能是从存储、web服务等读取状态。有一个问题在简历和呈现中得到了修复,但正如评论中所指出的,已经修复
正如您所说,您在设备上安装的OpenXR开发工具版本为107.2106.1002.0。我们注意到在稍后的版本中有稳定性的改进。请参阅适用于Windows混合现实的OpenXR工具-110.2202.10002。
如果您使用了Micrsoft Store应用程序的最新版本,请尝试从Github手动安装110.2202+版本,并告诉我升级后是否仍然存在此状态更改问题。