我有一个WPF + SharpDX Windows应用程序,它通过HDK屏幕上的全屏窗口显示给OSVR HDK。此设置运行良好,但它要求用户说明HDK所在的屏幕。
我希望能够自动检测到这一点,但在API的哪个屏幕上没有看到任何内容。
目前我在一个窗口中渲染:
var bounds = dxgiDevice.Adapter.Outputs[_selectedOutput].Description.DesktopBounds;
form.DesktopBounds = new System.Drawing.Rectangle(
bounds.X, bounds.Y, bounds.Width, bounds.Height);
_selectedOutput
是我正在寻找的东西。
我目前不支持直接模式,而且我正在使用Managed-OSVR。该应用程序将在Windows 8 / 8.1 / 10上运行。
答案 0 :(得分:1)
自从我为OSVR编写任何内容以来,已经有一段时间了,但这是我记得的: 如果您在扩展模式下运行,OSVR将被视为常规显示。您可以将其重新排列为任何其他屏幕。可以在OSVR配置文件中配置输出位置。 我使用以下(Java)来检索设置窗口的位置和大小:
osvrContext.getRenderManagerConfig().getXPosition()
osvrContext.getRenderManagerConfig().getYPosition()
osvrContext.getDisplayParameters().getResolution(0).getWidth()
osvrContext.getDisplayParameters().getResolution(0).getHeight()
澄清一下:我不知道您是否可以在扩展模式下检索显示的ID。据我所知,它只被定义为桌面上的位置和大小。 我希望它有点帮助你。