KDAB contributions to Qt 5.5
Good news, everyone! Qt 5.5 has just been released!
The release process of Qt 5.5 has been focused on stabilizing and improving performances. Once more KDAB is proud to be a part of the release, with its engineers constantly providing contributions and patches, as demonstrated by the commit graph of the last 16 weeks:
In this blog post I am going to show some of the features developed by KDAB that you are going to find in Qt 5.5.
Qt3D is available as a Technology Preview with Qt 5.5 and is targeting Qt 5.6 for an initial release. Qt3D provides C++ and QML APIs to allow the easy creation and integration of compelling 3D content in your Qt-based applications without having to invest time into writing a generic 3D renderer.
The renderer in Qt3D is completely configurable from QML and C++ APIs by means of providing a so-called, framegraph. This allows Qt3D to be configured dynamically at runtime to control the OpenGL pipeline to achieve customised rendering algorithms, special effects and post processing. Moreover, Qt3D provides more than a 3D renderer. It is also a general purpose, soft-realtime simulation framework built on top of a highly multithreaded architecture.
Your feedback on use cases and APIs is much appreciated! You can get in touch with the engineers developing it on the Qt mailing lists, as well as on the #qt-3d IRC channel on Freenode.
For more information on Qt3D, please refer to our Qt3D blog post series.
Accelerated Qt Quick video rendering on iOS
A major drawback of Qt on iOS has been the inability to properly use video elements in a Qt Quick 2 scene. Video rendering had to be layered on top of the application, making it impossible to have it fully integrated with the other elements in the scene (for instance, placing other elements on top was impossible).
Due to demand by several customers, KDAB engineers managed to resolve the issue and contribute the relevant code upstream. Now the decoding of video elements on iOS is accelerated by the GPU, and they can be freely placed and transformed in a Qt Quick 2 application. For more information, please refer to this blog post.
OpenGL 4.4 and 4.5 versioned functions
The QOpenGLFunctions_4_4_Core, QOpenGLFunctions_4_4_Compatibility, QOpenGLFunctions_4_5_Core and QOpenGLFunctions_4_5_Compatibility classes have been added to QtGui. They provide automatic entry point resolutions for the respective OpenGL version / profiles.
Please refer to the documentation of QOpenGLContext::versionFunctions for more information on how to use these classes.
qtplugininfo is a small utility which dumps a Qt plugin’s meta data. This is extremely convenient in order to debug plugin loading issues.
In no particular order:
- It is now possible to use the Freetype font shaper on Qt on Windows. This allows applications to achieve pixel-exact rendering of text on different operating systems.
- The SSL classes in Qt, as well as QNetworkAccessManager, now support the TLS-PSK ciphersuites when used with the OpenSSL backend. Moreover, it is now possible to select which elliptic curves are used when negotiating an elliptic curve cipher.
- Qt on Android now supports the arm64-v8a, x86_64, and the mips64 architectures.
- Many commits went into fixing long-standing bugs of QColorDialog, especially on Windows. For instance, it is finally possible to pick colors from windows belonging to a different application.
A special mention goes to all the bug fixes and minor enhancements, whose constant stream ultimately make Qt so robust and reliable. The list is too long to be reported here, but you can see how much work by KDAB engineers went in during the last few months here and here for fixes and enhancements respectively.