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

发布于 2024-10-08 19:17:41 字数 271 浏览 8 评论 0原文

我目前正在编写一个 OpenGL 渲染器,并且正在编写一些用于枚举显示适配器、设备和模式的类,以便在下拉列表中使用。

我使用 EnumDisplayDevices 获取适配器,然后使用每个设备的 EnumDisplaySettings 获取 bpp、宽度、高度和刷新率。但是我不确定如何找出哪些模式可全屏使用(DEVMODE 结构中似乎没有相应的标志)。我是否可以假设列出的所有模式原则上都可以全屏实例化?

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

I'm currently writing an OpenGL renderer and am part-way through writing some classes for enumerating display adaptors, devices and modes for use in drop-down lists.

I'm using EnumDisplayDevices to get the adaptors and then EnumDisplaySettings for each device, giving me bpp, width, height and refresh rate. However I'm not sure how to find out which modes are available full-screen (there doesn't appear to be a flag for it in the DEVMODE structure). Can I assume all modes listed can in-principle be instantiated full-screen?

As a follow up question, is this approach to device enumeration generally the best way of getting the required information on Windows?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

红尘作伴 2024-10-15 19:17:41

OpenGL 没有区分窗口模式和全屏模式。如果您希望 OpenGL 程序全屏显示,您只需将窗口设置为顶层、无边框、无装饰、保持在顶部和最大尺寸。

OpenGL has not this distinction between windowed and fullscreen mode. If you want an OpenGL program to be fullscreen you just set the window to be toplevel, borderless, without decoration, stay on top and maximum size.

孤云独去闲 2024-10-15 19:17:41

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

The above is actually a dumb question. By definition windowed mode must be the current display settings. All other modes must be available full-screen (provided the OS supports them, i.e. 640x480 not advisable in Vista/7).

ˉ厌 2024-10-15 19:17:41

哼,一点也不正确,而且也有态度。您有多种可以使用的功能。

设置像素格式、选择像素格式、更改显示设置。

PixelFormat 函数将让您枚举可用模式。 ChangeDisplaySettings 允许您设置应用程序想要的任何屏幕模式(包括位深度)。在 MSDN 中查找它们。

Hmmph, not correct at all, and with an attitude too. You have variety of functions that can be used.

SetPixelFormat, ChoosePixelFormat, ChangeDisplaySettings.

The PixelFormat functions will let you enumerator available modes. ChangeDisplaySettings with allow you to set whatever screen mode (including bit depth) your app wants. Look them up in MSDN.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文