我正在编写一个由多个(16-32)绘图组成的应用程序,这些绘图每秒更新几次并使用openGL绘制。到目前为止,我已经完成了大部分使用GLUT绘制原型的原型。但是我想采用像QT这样的完整的fledge框架,我正准备编写测试QGLWidget。
在开始之前,我想弄清楚多个QGLWidgets是否可以共享一个openGL上下文?如果有的话,我需要跟踪在小部件之间共享openGL上下文时需要跟踪的内容吗?
答案 0 :(得分:3)
如果多个QGLWidgets可以共享一个openGL上下文吗?
现在这是不可能回答的,因为它取决于所讨论的平台:在X11 / GLX上,确实可以在多个drawable上使用间接上下文,但是上下文只能在一个drawable上激活一段时间。
然而:
也可以(并且建议的方法)让多个上下文共享其数据。在OpenGL的第一个版本中,这只是显示列表,因此这仍称为列表共享。但是对于当前版本的OpenGL,它还包括纹理,像素缓冲对象和顶点缓冲对象。然而,帧缓冲对象无法共享,但由于纹理可以用作FBO附件,这没什么大不了的。
QGLWidget提供了一个直接的API,用于在QGLWidgests的上下文之间共享上下文数据。
答案 1 :(得分:1)