2

最近我使用了一些需要现代 OpenGL 上下文的功能(特别是 ARB_debug_output 需要通过 wglCreateContextAttribs 使用 WGL_CONTEXT_DEBUG_BIT_ARB 创建上下文)并遇到了一些影响(glew 无法收集现代上下文的扩展,我遇到了一些将新上下文集成到 wx 小部件中的影响)。所以出现了明显的问题:

  • 使用现代opengl上下文是否合理?
  • 是否有许多功能无法通过扩展与旧上下文一起使用?
  • 现代语境更快吗?
4

1 回答 1

1

以下只是我在使用 OpenGL 3.3核心配置文件上下文一段时间后的考虑:


使用现代opengl上下文是否合理?

这取决于。有许多库和中间件仍然不支持wglCreateContextAttribs等,但有些是开放的/足够小的,您可以访问代码并更改您需要的内容。

我个人认为没有“弃用”功能是一件幸事,因为人们可以专注于我们这个时代多汁的 gpu 硬件功能。

如果您正在编写一种中间件,您必须在其中支持大多数 OpenGL 功能,那么使用“现代”上下文不仅仅是一种祝福:它是一种救命稻草。


是否有许多功能无法通过扩展与旧上下文一起使用?

几乎没有,只要硬件相同。然而,扩展的数量如此之多,以至于可能有很多极端情况。


现代语境是否更快

当然不能再慢了。

于 2012-12-21T02:07:17.240 回答