Integrating QtQuick 2 with 3D renderers
Abstract: “QtQuick in Qt5 uses OpenGL to deliver fluid, performant visuals, and an internal scene-graph structure to permit threaded rendering, decoupling the main application thread from interacting directly with the graphics driver. For developers work with an existing rendering or visualisation technology, this presents both an opportunity but also problems; QtQuick offers a compelling, modern 2D UI with many advantages.
Unfortunately most existing rendering libraries make strong assumptions about how they permit other code (such as Qt) to integrate with their rendering loop and data, and Qt Quick itself was not designed to support efficient integration into foreign rendering environments.
In this presentation will will investigate some of the problems, work-arounds and ultimate solutions encountered in integrating Qt Quick with different 3D renderers, including the changes necessary both in Qt and on the 3rd-party side. This will involve material on threading, OpenGL state management, and the internals of both Qt Quick and scene-graphs in general. To motivate the discussion, some real-world cases will examined and presented, including integration of Qt Quick with OpenSceneGraph, the Visualisation Toolkit (VTK) and (time-permitting) the Open Source Graphics Engine (OGRE).