3

我有一个 Directx9 应用程序,它需要在禁用 Aero 的机器上运行。该应用程序以窗口模式运行。首次创建窗口时,它在单个屏幕中看起来很好。当我以跨越连接到同一个图形适配器(和 GPU)的两个屏幕的方式移动窗口时,一个屏幕上的区域似乎反映了另一个屏幕上的区域。当我跨越连接到不同图形适配器的两个屏幕时,我没有问题。

任何标准的窗口应用程序都可以轻松复制这一点,例如 8 月 9 日 DirectX SDK 中的“教程 2:顶点”。

我在窗口化的 OpenGL 应用程序中看到了同样的问题。

当 Windows 在启用 Aero 的情况下运行时,这不是问题,但我需要在禁用 Aero 的情况下运行应用程序。(Aero 在我的实际应用程序中引起其他问题,由于我在 GPU 中进行的处理,在不可预测的时间翻转它自己的后缓冲区,以我的渲染线程无法检测到的方式搞砸了我的显示平滑度。)

我正在运行带有 nVidia Quatro 4800 显卡的 Windows Vista Enterprise x64。

--而且,我刚刚注意到这只是在我使用旋转屏幕时出现的问题,在 nVidia 控制面板中旋转了 90 度。我想……就这样吧?当我使用旋转屏幕时,任何人都可以提出解决方案吗?

有任何想法吗?

4

1 回答 1

0

你可以用NVAPI检索这个信息(旋转屏幕)和其他显示相关的设置(不知道ATI有没有类似的东西)。

查看他们的在线文档: http ://http.developer.nvidia.com/nvapi/group__dispcontroltypes.html#g979f420611126581415c89112388e4d8

请注意,对于 DX10 和 DX11,这是通过 DXGI ( DXGI_MODE_ROTATION) 处理的。

于 2009-12-13T18:46:59.543 回答