【问题标题】:Is WGL required for initializing OpenGL on Windows?在 Windows 上初始化 OpenGL 是否需要 WGL?
【发布时间】:2014-05-04 19:46:41
【问题描述】:

WGL 似乎依赖于现在已弃用的 GDI。是否需要 WGL,如果不需要,如何以不推荐的方式在没有它的情况下初始化 OpenGL?

【问题讨论】:

  • 公平地说,AMD 在其 Windows 驱动程序中独立于 WGL 实现了 EGL API,但使用它不会获得 OpenGL 上下文;相反,您将收到一个 OpenGL ES 上下文。对于现代 Windows 中的所有意图和目的,您都需要 WGL ICD。

标签: opengl


【解决方案1】:

是的,WGL 是在 Windows 中创建 OpenGL 上下文的唯一 API。

现在已弃用的 GDI

说谁?微软营销部门。但同样的人也声称 OpenGL 已经过时了。

GDI+ 建立在 GDI 之上,而 WPF 具有不同的目标受众。

如何在没有它的情况下以非弃用方式初始化 OpenGL?

使用 WGL。您可能会在某个地方找到一个 EGL 包装器,但它仍会退回到 WGL。

【讨论】:

  • Windows 背后的公司如是说。而且我不认为他们声称 OpenGL 已经过时,而是他们自己的实现是 1.1 版本。 GDI+ 慢了 10 倍?所以我认为微软肯定是在尝试摆脱这个非常古老的 api,我不想在那时使用它。但很好,这是唯一的方法。感谢您的帮助。但基本上 OpenGL 目前依赖于已弃用的功能,我对 Windows 的了解还不够,无法知道 OpenGL 是否可以在未来轻松解决这个问题,但我们希望如此。
  • @user1594138:说实话,没有必要修复任何东西。是的,WGL 与 GDI 密切相关,而 GDI 已被弃用,但一旦创建(硬件加速)渲染上下文,供应商编写的 OpenGL ICD(可安装客户端驱动程序)接管。这些 ICD 非常现代,事实上,像 GPU 内存管理/调度之类的东西通过与 Windows Vista+ 上的现代 D3D10/11 驱动程序相同的低级 DXGI(DirectX 图形基础结构)接口。您看到的部分可能位于一些古老且已弃用的技术之上,但在引擎盖下却是闪亮的和新的。
猜你喜欢
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
相关资源
最近更新 更多