С одним монитором моя программа работает как в оконном, так и в полноэкранном режиме (с использованием любого разрешения, выбранного из EnumAdapterModes), но когда я подключаю свой второй монитор (запуск одного и того же кода). Я могу создать полноэкранное устройство с любым разрешением от EnumAdapterModes, но только в собственном разрешении (1600 x 900) оно отображает сцену, иначе экран будет черным среди других проблем, перечисленных ниже.Полноэкранное устройство Direct3D9 отображается только при собственном разрешении, когда второй монитор подключен к
То, что я обнаружил, до сих пор:
- Эта проблема не возникает в оконном или мультиголовочного режиме
- Я все еще могу оказать текстуру (я должен был переключить режимы, чтобы отобразить его, хотя)
- Все вызовы функций возвращают коды успеха (в том числе TestCooperativeLevel)
- Если я попытаюсь провести обратный буфер с использованием функций Clear или DrawPrimitive или вызвать Present (который все еще оставляет черный экран), то вызовы GetRenderTargetData завершаются с ошибкой и пытаются заблокировать громкость текстура будет возвращать различные смолы ломтика на подуровней
- Коммерческие игры, которые используют Direct3D9 (Portal) не имеют каких-либо проблем переключения между разрешением с моим вторым монитором подключенного к сети, так что должно быть решение
Проблема, кажется, чтобы быть связанным с обратным буфером, созданным временем выполнения Direct3D9, но единственным решением, которое я могу придумать, является принудительный режим multihead на устройствах с несколькими мониторами, любые идеи?
Вопрос, который, кажется, есть та же проблема, но не хватает решение: How do I render a fullscreen frame with a different resolution than my display?
Я бы не беспокоился о том, что XP в апреле 2014 года не поддерживается. Также большинство геймеров находятся в Windows 7 и имеют аппаратное обеспечение для соответствия. – Mgetz
Я в основном консольный геймер, поэтому у меня все еще есть XP (мой рабочий стол), и я знаю несколько человек, которые все еще имеют его, но я начинаю разработку игр для ПК, и в основном я использую свой ноутбук для разработки сейчас (Windows 7), но мой ноутбук - не совсем игровой автомат. – Alex
Напомним, что Microsoft не будет исправлять XP после этого апреля, а DirectX 9 официально не рекомендуется в этом вопросе, я бы не ожидал, что он будет действовать так же надежно, как DirectX 10/11 – Mgetz