【发布时间】:2016-02-11 15:01:53
【问题描述】:
我有一个现有的 OpenGL 上下文,我想与一个新的 QOpenGLWidget 共享。
我知道我能做到:
- 创建 QOpenGLWidget
- 等到调用 initializeGL 并保存上下文
- 创建新的 QOpenGLContext,并使其与保存的上下文共享
但是,我想按其他顺序进行:
- 创建 QOpenGLContext
- 创建 QOpenGLWidget,提供现有上下文并使其共享
这可能吗?
【问题讨论】:
-
你也可以在initGL调用中进行分享
-
@ratchetfreak 怎么样?我认为,当调用 initGL 时,OpenGL 上下文已经创建并且不能设置为共享另一个上下文...
-
它在哪里说创建后不能共享上下文?
-
我认为你根本不需要
QOpenGLWidget。您可以将QWindow与自定义 gl 表面(或您的上下文)一起使用 +QWidget::createWindowContainer将其用作小部件。 -
@SaZ:谢谢你的想法。我实际上是先尝试这样做的。然而,使用 QWindow 作为 WindowContainer 会带来其他布局和东西的问题,因为它不是一个合适的小部件。所以我宁愿留在小部件上......
标签: c++ multithreading qt opengl qt5.5