The KDAB Training Day will be back in Berlin on November 27th this year, right before the annual Qt World Summit, which will happen November 28-29th. KDAB Training Day will be held at the H4 Hotel Berlin Alexanderplatz, just down the road from the bcc Berlin Congress Centre where The Qt World Summit takes place, […]
KDAB Blogs Get the RSS Feed
Stay up-to-date and get inspiration from KDAB’s expert insights into Qt, C++ and OpenGL development.
Our engineers and designers share cutting-edge technology news and ideas with regard to Qt, QML, Qt on Android, OpenGL, Qt 3D, Vulkan, Scalable UIs and more embedded, mobile and desktop-related topics.
Synchronization in Vulkan Learn about what Vulkan needs us to synchronize and how to achieve it
An important part of working with Vulkan and other modern explicit rendering APIs is the synchronization of GPU/GPU and CPU/GPU workloads. In this article we will learn about what Vulkan needs us to synchronize and how to achieve it. We will talk about two high-level parts of the synchronization domain that we, as application and […]
Object Lifetime
Last time we discussed Value Semantics. However, I missed one topic that is super important for a better understanding of basic building blocks of C++. Today, we are going to talk about an object. Without further ado, let’s dive deeper! Object What is an object? According to the C++ standard, part 3.9.8 under the name […]
Value Semantics
C++ is an old language. Many aspects of our programming styles have become habits that we do not think about too much today. In this blog, I’m going to address one major issue that has resulted from such habits and get you prepared for a new bright world of C++2b. So without further ado, let’s […]
KDDockWidgets 1.7.0 Released
We are happy to announce the release of KDDockWidgets version 1.7.0! What is KDDockWidgets? KDDockWidgets is a development framework for custom-tailored docking systems in Qt, to use when you need advanced docking that is not supported by QDockWidgets. It was created by Sérgio Martins as a time-saving alternative to QDockWidgets. The ease-of-use of KDDockWidgets can save […]
Shader Variants Explosions of the Combinatorial Kind
If you have bought an AAA game in recent years and wondered what it is doing when it says it is compiling shaders for a long time (up to an hour or more), then this blog will explain it a little.
Pimpl for Small Classes
The familiar solution for thick value classes that want to preserve binary compatibility is to use the pimpl pattern (private implementation), also known as d-pointer (pointer to data). In future versions of our class, we can freely change the contents of the pimpl (i.e. adding, removing, and/or modifying data members) but the binary compatibility of […]
CXX-Qt 0.5 Released
We just released CXX-Qt version 0.5! CXX-Qt is a set of Rust crates for creating bidirectional Rust ⇄ C++ bindings with Qt. It can be used to integrate Rust into C++ applications using CMake or build Rust applications with Cargo. CXX-Qt provides tools for implementing QObject subclasses in Rust that can be used from C++, […]
Qt 6 Debugging in Visual Studio and VS Code Show More Qt Value Types in the Debugger
Not all Qt developers are using Qt Creator as their main IDE for development. Some of us are using other IDEs, like Visual Studio, Visual Studio Code or CLion, per choice or because a project requires it. On Windows, with the MSVC compiler, the debugging experience with Qt 6 can be quite frustrating for some […]
FMA Woes
Floating-point math is hard, and compilers will exploit every language loophole to make our FP calculations go faster, sometimes with surprising results.