Окно Direct9.0 (полноэкранное время выполнения)

Как мне выполнить обмен полноэкранного / и оконного режима во время выполнения
s

  1. UnregisterClass
  2. Освободите все устройство DirectX
  3. Повторно инициализировать весь формат класса wc
  4. Реинициализировать все прямые вещи

Однако есть две проблемы.

  1. Мне удалось создать новое окно, но старое окно закрыто или удалено.
  2. Клиент нового окна черный. Это означает, что прямая ссылка не на новый
    клиент.

второй)

0

Решение

Нет, вам не нужно создавать новое окно, просто используйте старое. в основном вы можете вызвать IDirect3DDevice9 :: Reset с новыми параметрами презентации. при входе в полноэкранный режим необходимо выполнить следующие действия.

  1. Установите D3DPRESENT_PARAMETERS.Windowed = true
  2. Изменить размер буфера (мы всегда устанавливаем размер буфера как размер окна рендеринга)
  3. Обновите матрицу проекции с новым соотношением сторон (ширина буферного буфера / высота буферного буфера)
  4. Освободите все явные цели рендеринга, поверхности трафарета глубины, дополнительные цепочки подкачки, блоки состояния и ресурсы D3DPOOL_DEFAULT, связанные с устройством.
  5. Вызовите IDirect3DDevice9 :: Reset (), чтобы войти в полноэкранный режим.

Будьте внимательны, когда ваше приложение перейдет в полноэкранный режим, оно повесит все приложения, включая среду разработки (например, Visual Studio). так что для полноэкранной отладки лучше взять другой монитор.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]