枚举OpenGL渲染的设备和显示模式

时间:2010-12-17 20:41:42

标签: windows opengl enumerate

我正在编写一个OpenGL渲染器,并且通过编写一些类来枚举用于下拉列表的显示适配器,设备和模式。

我正在使用EnumDisplayDevices获取适配器,然后为每个设备获取EnumDisplaySettings,为我提供bpp,宽度,高度和刷新率。但是我不知道如何找出全屏可用的模式(在DEVMODE结构中似乎没有标记)。我可以假设列出的所有模式原则上都可以全屏实例化吗?

作为后续问题,这种设备枚举方法通常是在Windows上获取所需信息的最佳方式吗?

3 个答案:

答案 0 :(得分:2)

OpenGL在窗口模式和全屏模式之间没有区别。如果你想要一个全屏的OpenGL程序你只需将窗口设置为顶部,无边框,没有装饰,保持顶部和最大尺寸。

答案 1 :(得分:1)

以上实际上是一个愚蠢的问题。根据定义,窗口模式必须是当前的显示设置。所有其他模式必须全屏显示(如果操作系统支持它们,即在Vista / 7中不建议使用640x480)。

答案 2 :(得分:1)

Hmmph,根本不正确,也有态度。您可以使用各种功能。

SetPixelFormat,ChoosePixelFormat,ChangeDisplaySettings。

PixelFormat函数将为您提供枚举器可用模式。 ChangeDisplaySettings允许您设置应用所需的任何屏幕模式(包括位深度)。在MSDN中查找它们。