gpt4 book ai didi

c++ - 在 C++ 中具有单个 openGL 上下文的多个 QGLWidgets

转载 作者:太空狗 更新时间:2023-10-29 21:06:01 25 4
gpt4 key购买 nike

我正在编写一个由多个 (16-32) 绘图组成的应用程序,这些绘图每秒更新几次并使用 openGL 绘制。到目前为止,我已经用 GLUT 完成了大部分情节的原型(prototype)制作。但是我想采用像 QT 这样的完整框架,并且我正准备编写一个测试 QGLWidget。

在开始之前,我想弄清楚是否有可能让多个 QGLWidgets 共享一个 openGL 上下文?如果是这样,在小部件之间共享 openGL 上下文时,我需要跟踪什么细节吗?

最佳答案

if its possible for multiple QGLWidgets to share a single openGL context?

现在一般来说这不可能回答,因为它取决于所讨论的平台:在 X11/GLX 上,确实可以在多个可绘制对象上使用间接上下文,但是上下文只能在一个可绘制对象上激活一次。

但是:

让多个上下文共享数据也是可能的(这是推荐的方法)。在 OpenGL 的第一个版本中,这只是显示列表,因此这仍然称为列表共享。但对于当前版本的 OpenGL,这还包括纹理、像素缓冲区对象和顶点缓冲区对象。然而,帧缓冲区对象不能共享,但由于纹理可以用作 FBO 附件,所以这没什么大不了的。

QGLWidget 提供了一个直接的 API 来在 QGLWidgests 的上下文之间共享上下文数据。

关于c++ - 在 C++ 中具有单个 openGL 上下文的多个 QGLWidgets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com