使用现代 OpenGL 上下文是不是合理?
Posted
技术标签:
【中文标题】使用现代 OpenGL 上下文是不是合理?【英文标题】:Is it reasonable to use modern OpenGL context?使用现代 OpenGL 上下文是否合理? 【发布时间】:2012-12-20 12:06:23 【问题描述】:最近我使用了一些需要现代 OpenGL 上下文的功能(特别是 ARB_debug_output 需要通过 wglCreateContextAttribs 使用 WGL_CONTEXT_DEBUG_BIT_ARB 创建上下文)并遇到了一些影响(glew 无法收集具有现代上下文的扩展,我遇到了一些集成新上下文的影响进入 wx 小部件)。所以出现了明显的问题:
使用现代 opengl 上下文是否合理? 是否有许多功能无法通过扩展与旧上下文一起使用? 现代语境更快吗?【问题讨论】:
【参考方案1】:以下只是我在使用 OpenGL 3.3 核心配置文件上下文一段时间后的考虑:
使用现代 opengl 上下文是否合理?
这取决于。有许多库和中间件仍然不支持 wglCreateContextAttribs 等,但有些是开放的/足够小的,您可以直接访问代码并更改您需要的内容。
我个人认为没有“弃用”功能是一件幸事,因为人们可以专注于我们这个时代多汁的 gpu 硬件功能。
如果您正在编写一种中间件,您必须在其中支持大部分 OpenGL 功能,那么使用“现代”上下文不仅仅是一种祝福:它是一种救命稻草。
是否有许多功能无法通过扩展与旧上下文一起使用?
几乎没有,只要硬件相同。然而,扩展的数量如此之多,以至于可能有很多极端情况。
现代语境是否更快
当然不能再慢了。
【讨论】:
以上是关于使用现代 OpenGL 上下文是不是合理?的主要内容,如果未能解决你的问题,请参考以下文章
glVertexAttribPointer 问题(OpenGL 3.x 前向兼容上下文)
如何使用 fltk 1.3 创建 opengl 3.x 或 4.x 上下文?