2013-06-20 2 views
0
  1. Моя игра в оконном режиме, который позволяет пользователям изменять размер окна игры почти свободно, что означает, что отношение ширина/высота, и размер окна может быть произвольным (хотя окно имеет наибольшего и наименьшего ограничения)Как определить, может ли быть создано устройство d3d для определенной ширины/высоты в оконном режиме?

  2. для того, чтобы вынести результат будет отображаться красиво, один и тот же размер d3d устройство было бы предпочтительнее, чтобы создать (таким образом, обратно-буфер пиксел может быть согласован с экрана пикселя, и мы могли бы получить соотношение правый и прозрачное изображение)

  3. Хотя я могу получить Caps и поддерживаемое перечисленное разрешение , я не уверен, что разрешение окна может быть принято системой d3d . (Например, у нас есть 1024х768/800х600 в Колпачках, но мы должны создать 1000x700 обратно-буфер)

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

спасибо!

ответ

0

В оконном режиме вы можете создать любую цепочку подкачки смены (с учетом ограничений максимального размера, которые будут больше, чем любое поддерживаемое разрешение экрана). Только в полноэкранном режиме вы ограничены созданием цепочек подкачки размеров, перечисленных в списке разрешенных разрешений.

+0

"(с учетом ограничений максимального размера, которые будут больше, чем любое поддерживаемое разрешение экрана)." Вы имеете в виду, что я должен держать ширину меньше самой большой, а высота меньше самой большой, даже самая большая ширина и высота не в паре (1024x768, 1000x800, так что я получаю 1024x800?)? Это странно. Я проверил DXUT и другие фрагменты кода, и кажется, что люди просто верят, что устройство всегда можно «перезагрузить», и ошибки не произойдет. Интересно, это спецификация для производителя Direct3D/карты? – karlzhang

+0

В оконном режиме вы должны иметь возможность создавать swapchain размером не менее, чем текущее разрешение экрана. В полноэкранном режиме просто создайте swapchain с тем же разрешением, что и разрешение экрана. Если вы измените режим экрана, вы можете изменить размер swapchain. – mattnewport

Смежные вопросы