Qt graphics stack and its usage of Khronos technologies
- Wednesday, August 17, 2016
In 2012 the Qt business got acquired by Digia which led to extending the focus to the leading mobile platforms, and, more importantly, an increased push for creating enablers that allow customers and users all over the world create embedded systems and appliances that feature efficient and fluid user interfaces powered by GPUs and APIs like OpenGL.
Even though OpenGL and windowing system interface APIs like EGL, GLX and WGL are (relatively) well-defined, setting up rendering properly for the windowing system, framebuffer (fbdev, or DRM/KMS with GBM or EGLStream) or vendor-specific display compositor on a specific target hardware and software stack is not always obvious. One of the key benefits of Qt on embedded is the wide support of such vendor and driver specific glues.
Today Qt is developed by The Qt Company, now independent from Digia. The key technology in Qt 5 is QML and Qt Quick. QML is a declarative language that allows user interfaces to be described in terms of their visual components and how they interact and relate with one another. Qt Quick provides the UI primitives, animations, effects, and the core rendering system based on a 2.5D scene graph targeting OpenGL ES 2.0 (with some optional paths for modern OpenGL versions).
OpenGL is not the end however. Currently there is work on-going to further modularize Qt Quick and lay the foundations for supporting other graphics APIs, like Vulkan and Direct 3D. At the same time Qt’s long-going research regarding Wayland support, both as in Qt applications running as Wayland clients, as well as using Qt to create customized Wayland compositors in a rapid manner, are starting to bear fruit. We think it is now therefore a good time to take a look at the Qt graphics stack and see how the pieces fit together.
There will be pizza at 17:45!