Deep Tech Qt Quick Qt Roadmap Today

Qt Quick Scene Graph Advancements in Qt 5.8 and Beyond

Tokyo Room October 20, 2016 12:00 pm - 12:25 pm

Bookmark and Share

Laszlo Agocs
Andy Nichols

As announced earlier this year, the Qt graphics stack – and first and foremost, Qt Quick – is undergoing the most significant changes since its introduction in Qt 5.0. The aim of the modularization process is to remove the strong OpenGL dependency, paving the way for other graphics APIs in the future, and to strengthen support for environments where accelerated graphics is not feasible. The previously standalone Qt Quick 2D Renderer is going to become a core part of Qt Quick, with the license changing to LGPLv3 to be in line with Qt’s main modules. This makes the 2D Renderer available out of the box on every platform. In addition to a number of internal changes and enhancements, the introduction of partial updates will be visible to every user of this backend since the expensive full-screen updates plaguing earlier releases are now eliminated. To prove that the changed Qt Quick Scenegraph interfaces are suitable to handle graphics APIs different from OpenGL, an additional, proof-of-concept backend using Direct3D 12 is being developed in parallel with the rest of the changes. This also provides the foundations for potential future support for APIs like Vulkan or Metal. OpenGL is not left behind either. Modern techniques based on AZDO and OpenGL ES 3.2, potential vector graphics enhancements, as well as optimizations benefitting embedded and mobile environments, like pre-compiled shaders or compressed textures, are being researched for future Qt releases. While OpenGL remains the default, number one choice, and many Qt Quick applications are expected to be able to run on a different backend without changes, there are cases, typically involving custom QQuickItems or shader effects, that will need attention and potentially a few changes from the applications. The first set of the Qt Quick improvements are expected to get integrated into Qt 5.8, due H2/2016. It is now therefore time to take a look at what these changes mean in practice and which direction Qt Quick is heading in the future.