Bad behavior with Aero off in Vista
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 bac开发者_如何学编程kbuffer 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?
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
).
精彩评论