2

我想使用模拟器窗口内的 GLWidget,并想使用帧缓冲区对象将数据发送到主窗口的 glwidget。

我已经使用信号/插槽来实现这一点,但是我在多线程问题和异常方面遇到了很多问题。

实现这种情况的最佳方法是什么。![附上我想做的场景图片][1]

4

1 回答 1

2

如果要共享帧缓冲区对象,则应使用 GL 上下文资源共享,而不是 Signal/Slot。后者在主存中运行,而上下文共享发生在 GPU 上。因此不涉及数据副本(通过总线传输并返回!)。

在 QGLWidget 文档中,解释了两个小部件如何共享上下文:

如果 shareWidget 是一个有效的 QGLWidget,这个小部件将与 shareWidget 共享 OpenGL 显示列表和纹理对象。但是如果 shareWidget 和这个小部件的格式不同,则可能无法共享。您可以通过调用 isSharing() 来检查共享是否生效。

http://doc.qt.nokia.com/4.7-snapshot/qglwidget.html#QGLWidget

于 2012-07-21T20:50:42.010 回答