Плохое поведение с выключенным Aero в Vista

У меня есть приложение directx9, которое нужно запускать на машине с отключенным Aero. Приложение работает в оконном режиме. Когда окно создается впервые, оно отлично выглядит на одном экране. Когда я перемещаю окно таким образом, что оно охватывает два экрана, подключенных к одному и тому же графическому адаптеру (и графическому процессору), кажется, что область на одном экране отражает область на другом экране. Когда я соединяю два экрана с разными графическими адаптерами, у меня нет проблем.

Это легко воспроизвести с помощью любого стандартного оконного приложения, такого как «Урок 2: вершины» в DirectX SDK от 09 августа.

Я вижу ту же проблему с оконным приложением OpenGL.

Это не проблема, когда Windows работает с включенным Aero, но мне нужно запускать приложение с отключенным Aero. (Aero вызывает другие проблемы в моем фактическом приложении, в непредсказуемое время переворачивая свой собственный буферный буфер из-за обработки, которую я выполняю в графическом процессоре, и ухудшает плавность моего дисплея способом, который не может быть обнаружен моим потоком рендеринга.)

Я использую Windows Vista Enterprise x64 с видеокартами nVidia Quatro 4800.

- и я только что заметил, что это проблема только тогда, когда я использую повернутые экраны, повернутые на 90 градусов в Панели управления nVidia. Я думаю ... что тогда? Может ли кто-нибудь предложить решение, когда я использую повернутые экраны?

Любые идеи?


person Josh    schedule 12.12.2009    source источник
comment
Может дело в драйвере? Вы пробовали разные графические драйверы или другую видеокарту (в идеале от другого производителя, например, ATI)?   -  person Nifle    schedule 12.12.2009


Ответы (1)


Вы можете получить эту информацию (повернутый экран) и другие настройки, связанные с отображением, с помощью NVAPI (я не знаю, есть ли у ATI подобное).

См. Их онлайн-документацию: http://http.developer.nvidia.com/nvapi/group__dispcontroltypes.html#g979f420611126581415c89112388e4d8

Обратите внимание, что в DX10 и DX11 это обрабатывается через DXGI (DXGI_MODE_ROTATION).

person Stringer    schedule 13.12.2009