我正在将旧的openGL代码(立即模式)迁移到Vertext-Buffer-Objects。 我意识到我需要使用OpenGL3 API调用(GL_ARB_vertex_buffer_object)。 所以我打算用GLEW作为扩展加载库。
我的问题是,是否有一种特殊的方法来初始化OpenGL3 contexT的QGLWidget?
答案 0 :(得分:2)
“OpenGL 3上下文”是什么意思?
通过正常的上下文创建,您可以获得3.1版或更高版本的OpenGL支持。现在,如果你想要一个实现核心规范的 core OpenGL context ,那么你必须做一些工作。
请注意,兼容性上下文完全正常。它仍然可以完成核心环境所做的一切;你没有 来执行以下任何操作来使用缓冲区对象。
哦,缓冲对象不再是扩展对象了。使用核心功能,而不是GL_ARB_vertex_buffer_object
。
注意:以下内容适用于QT 4.7或以上版本:
你必须至少熟悉QGLFormat
;你需要一个才能创建一个QGLWidget
。只需使用QGLFormat::setProfile
在该对象上调用QGLFormat::CoreProfile
即可。
可悲的是,QT不允许您指定特定版本。但这应该足以获得核心OpenGL配置文件,假设您的硬件实现了OpenGL 3.2或更高版本。