Hi,
I am trying to find out how threads works in the graphics scene .
Using the Scene Graph – OpenGL Under QML [qt-project.org] example.
It’s a QQuickItem with OpenGL within its paint function.
Reading the Qt Quick Scene Graph [qt-project.org] , it says that the rendering is done in a separate thread.
So, I have monitored the threads during execution:
[D] Ogl::handleWindowChanged:30 : 0×6c835740
[D] Ogl::handleWindowChanged:38 : 0×6c835740
[D] Ogl::handleWindowChanged:40 : 0×6c835740
[D] Ogl::handleWindowChanged:44 : 0×6c835740
[D] Ogl::sync:118 – sync: 0×67fffb40
So, starting from the ‘sync’ function in my (QQuickItem based) ogl object, all is executed in another thread.
Is this change caused by (win = the QQuickView object):
connect(win, SIGNAL(beforeSynchronizing()), this, SLOT(sync()), Qt::DirectConnection);
?
Forcing to run the sync slot in the new thread?
More general: how do I know what is run in which thread?
My final ogl object needs lots of data (from objects in the main/GUI thread) to be used during rendering…
Thanks.
↧