Api 在没有包装器的QT上使用OpenGL

Api 在没有包装器的QT上使用OpenGL,api,qt,opengl,wrapper,Api,Qt,Opengl,Wrapper,我正在寻找一个与OpenGL结合使用的GUI工具包。QT看起来很有前途,但不幸的是它将大多数OpenGL函数封装在QT类中。有什么方法可以让我在QT中创建OpenGL 3.3上下文并只使用标准的C API吗?您不需要使用大多数QT特定的OpenGL类。您需要QGLWidget上下文本身、告诉QT何时重新绘制小部件的内容(可以是一个计时器,它每秒在QTGLWidget上调用updateGL()60次)和事件处理。只需创建一个继承自QGLWiget的类,并将您的C类型OpenGL代码放入paintG

我正在寻找一个与OpenGL结合使用的GUI工具包。QT看起来很有前途,但不幸的是它将大多数OpenGL函数封装在QT类中。有什么方法可以让我在QT中创建OpenGL 3.3上下文并只使用标准的C API吗?

您不需要使用大多数QT特定的OpenGL类。您需要QGLWidget上下文本身、告诉QT何时重新绘制小部件的内容(可以是一个计时器,它每秒在QTGLWidget上调用updateGL()60次)和事件处理。只需创建一个继承自QGLWiget的类,并将您的C类型OpenGL代码放入paintGL()函数中

如果您需要一些示例代码:
签入src/Application/QT*

QopenGL小部件为您提供了上下文,然后您只需覆盖initialiseGL、paintGL方法,就可以直接使用原始openGL调用


PBO和VBO周围的Qt包装器可以方便地保存在Windows上进行所有手动DLL加载,但实际上并不需要

谢谢。你的代码似乎很方便。我想我还是有点难以理解OpenGL上下文是如何初始化的。我相信我很快就会变得更有意义。知道我在编译代码时为什么会出现这样的错误吗:CMakeFiles/g3test qt.dir/src/Renderable/DemoScene.cpp.o:In function
Program::getuniformblockdex(char const*)const':/home/rickert/Workspace/g3test/src/Renderable/。/OpenGL/Program.hpp:94:未定义的引用