Qt - 将OpenGL渲染从主线程移动到另一个线程

时间:2014-03-20 15:02:28

标签: multithreading qt opengl rendering

我知道QWidgets无法从主线程移动到Qt中的另一个线程。我有一个主GUI,它有三个不同的QGLWidgets,可以呈现不同的OpenGl内容。正如预期的那样,QGLWidgets的帧速率在同时显示所有三个时显着受到影响,但GUI本身响应速度非常快,当我查看CPU使用情况时,我发现主线程仅在50%CPU负载下运行。如果我可以将渲染移动到不同的线程,我会期望更好的性能但是我怎么能这样做,因为Qt不允许这样做?

PS:我使用不同的计时器,以期望的帧速率调用animate()方法。那是问题吗?定时器没有达到其配置的发射频率(=所需的fps),最大运行时间。约为15Hz,但正如我所说,GUI不会滞后,主线程不会在完全CPU负载下运行。

1 个答案:

答案 0 :(得分:0)

您可以将渲染方法放在不同的线程中:QtConcurrent::run http://qt-project.org/doc/qt-4.8/qtconcurrentrun.html#run