linux - 如何使用 Qt 4 创建 OpenGL 3 上下文?

标签 linux qt opengl qt4

我想学习使用 OpenGL 进行图形编程。由于我将刚刚开始学习它,所以我决定学习新的/OpenGL3 做事方式。据我所知,必须为此创建一个 OpenGL 3 上下文(如果我理解正确的话,新 OpenGL 3.2 中的核心配置文件).好吧,我考虑过为此使用 Qt,目前使用的是 4.5.2 版,因为我已经知道它并且喜欢它,并且它支持创建 OpenGL 小部件。我遇到的问题是,看起来 OpenGL 小部件总是与旧的 OpenGL 2 上下文一起装箱,我看不到将其加入/切换到 OpenGL 3 方式的选项。我在这里遗漏了一些明显的东西还是我需要一些更棘手的东西来使用 Qt 创建 OpenGL 3 上下文?当前版本的 Qt 甚至支持它吗?我正在使用 Linux,如果它有任何不同的话。

最佳答案

Mesa 软件渲染仍然停留在 OpenGL 2.1 上。如果您使用的是二进制 NVidia 驱动程序,它们会提供 OpenGL 3.2 support在足够新的硬件上。 AMD的latest fglrx支持 3.1。开源驱动程序似乎在 1.3-1.4 左右达到顶峰。

如果你已经走到这一步,你可能必须破解 Qt 源代码才能使用 GLX_ARB_create_context 而不是 GLXCreateContext 来获取 OpenGL 3.2 Core 上下文。

This guy似乎已经取得了部分成功,如果您还没有通过 Google 找到该主题的话。

关于linux - 如何使用 Qt 4 创建 OpenGL 3 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1370577/

相关文章:

opengl - 立方体贴图时OpenGL旋转纹理的原因是什么?

c++ - GtkGLArea 清除背景但不绘制

c++ - 带有 SOIL 的 OpenGL 纹理

linux - linux中检测设备驱动的过程

linux - 对于初学者 Yokto 项目或 OpenEmbedded 构建自己的嵌入式发行版哪个更好?

qt - 使用 QSettings 保存 64 位整数

qt - 在 Qt 中查找 QGridLayout 元素

c - C中如何使用寄存器?

java - 无法将值从 Bash 脚本传递到 Java 程序

c++ - 在 Qt 中分配对象时处理异常