1

我有一个 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 上运行。

4

1 回答 1

1

自从我为 OSVR 编写任何代码以来已经有一段时间了,但这是我记得的:如果您在扩展模式下运行,OSVR 将被视为常规显示器。您可以将其重新排列为任何其他屏幕。可以在 OSVR 配置文件中配置输出位置。我使用以下(Java)检索位置和大小来设置我的窗口:

osvrContext.getRenderManagerConfig().getXPosition()
osvrContext.getRenderManagerConfig().getYPosition()
osvrContext.getDisplayParameters().getResolution(0).getWidth()
osvrContext.getDisplayParameters().getResolution(0).getHeight()

澄清一下:我不知道您是否可以在扩展模式下检索显示器的 ID。据我所知,它只定义为桌面上的位置和大小。我希望它对你有所帮助。

于 2016-11-08T13:40:41.713 回答