Перечисление устройств и режимов отображения для рендеринга OpenGL - PullRequest
1 голос
/ 17 декабря 2010

В настоящее время я пишу рендерер OpenGL и нахожусь в процессе написания некоторых классов для перечисления адаптеров дисплея, устройств и режимов для использования в раскрывающихся списках.

Я использую EnumDisplayDevices для получения адаптеров, а затем EnumDisplaySettings для каждого устройства, давая мне bpp, ширину, высоту и частоту обновления. Однако я не уверен, как узнать, какие режимы доступны в полноэкранном режиме (в структуре DEVMODE, похоже, нет флага для этого). Можно ли предположить, что все перечисленные режимы в принципе могут быть созданы в полноэкранном режиме?

В качестве дополнительного вопроса, является ли этот подход к перечислению устройств в целом лучшим способом получения необходимой информации в Windows?

Ответы [ 3 ]

2 голосов
/ 18 декабря 2010

OpenGL не различает оконный и полноэкранный режимы.Если вы хотите, чтобы программа OpenGL была полноэкранной, просто установите окно на верхний уровень, без полей, без декораций, оставайтесь сверху и максимальный размер.

1 голос
/ 20 декабря 2010

Хммм, совсем не правильно и тоже с отношением.У вас есть различные функции, которые можно использовать.

SetPixelFormat, ChoosePixelFormat, ChangeDisplaySettings.

Функции PixelFormat позволят вам перечислить доступные режимы.ChangeDisplaySettings with позволяет вам установить любой режим экрана (включая битовую глубину), который хочет ваше приложение.Ищите их в MSDN.

1 голос
/ 18 декабря 2010

Выше, на самом деле, тупой вопрос.По определению в оконном режиме должны быть текущие настройки дисплея.Все остальные режимы должны быть доступны в полноэкранном режиме (при условии, что ОС поддерживает их, т.е. 640x480 не рекомендуется в Vista / 7).

...