Vista 中 Aero 关闭时的不良行为
我有一个 directx9 应用程序,需要在禁用 Aero 的计算机上运行。该应用程序在窗口模式下运行。第一次创建窗口时,它在单个屏幕中看起来很好。当我以跨越连接到同一图形适配器(和 GPU)的两个屏幕的方式移动窗口时,一个屏幕上的区域似乎镜像了另一个屏幕上的区域。当我跨越连接到不同图形适配器的两个屏幕时,没有任何问题。
这可以使用任何标准窗口应用程序轻松复制,例如 8 月 9 日 DirectX SDK 中的“教程 2:顶点”。
我在窗口 OpenGL 应用程序中看到了同样的问题。
当 Windows 在启用 Aero 的情况下运行时,这不是问题,但我需要在禁用 Aero 的情况下运行应用程序。 (Aero 在我的实际应用程序中导致了其他问题,由于我在 GPU 中进行的处理,它会在不可预测的时间翻转自己的后缓冲区,以渲染线程无法检测到的方式破坏显示的平滑度。)
我正在运行 Windows Vista Enterprise x64,配备 nVidia Quatro 4800 显卡。
--而且,我刚刚注意到这只是当我使用旋转屏幕(在 nVidia 控制面板中旋转 90 度)时才会出现的问题。我想……就这样吧?当我使用旋转屏幕时,有人可以提出解决方案吗?
有什么想法吗?
I have a directx9 application which needs to run on a machine with Aero disabled. The app runs in windowed mode. When the window is first created, it looks just fine within a single screen. When I move the window in such a way that it spans two screens attached to the same graphics adapter (and GPU) the region on one screen seems to mirror the region on the other screen. When I span two screens attached to different graphics adapters, I have no problem.
This is easily replicated with any standard windowed app, like "Tutorial 2: Vertices" in the August 09 DirectX SDK.
I see the same problem with a windowed OpenGL application.
This is not a problem when Windows is running with Aero enabled, but I need to run the application with Aero disabled. (Aero causes other issues in my actual application, flipping its own backbuffer at unpredictable times because of processing I'm doing in the GPU, screwing up the smoothness of my display in a manner undetectable to my render thread.)
I'm running Windows Vista Enterprise x64 with nVidia Quatro 4800 graphics cards.
--and, I just noticed this is only a problem when I use rotated screens, rotated 90 degrees in the nVidia Control Panel. I guess... that's it then? Can anyone suggest a solution when I use rotated screens?
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 NVAPI 检索此信息(旋转屏幕)和其他显示相关设置(我不知道 ATI 是否有类似的东西)。
请参阅他们的在线文档:
http://http.developer.nvidia.com/nvapi/group__dispcontroltypes.html# g979f420611126581415c89112388e4d8
请注意,对于 DX10 和 DX11,这是通过 DXGI (
DXGI_MODE_ROTATION
) 处理的。You can retrieve this information (rotated screen) and other display related settings with NVAPI (I don't know if ATI have a similar thing).
See their online documentation:
http://http.developer.nvidia.com/nvapi/group__dispcontroltypes.html#g979f420611126581415c89112388e4d8
Notice that with DX10 and DX11, this is handled via DXGI (
DXGI_MODE_ROTATION
).