In a previous blog we demonstrated the most straightforward method to optimize Visual Studio Code for a Qt / C++ environment: simply let the tools do all the work! The example GitHub project we discussed automatically installs both the Microsoft C/C++ and clangd extensions into VS Code. You might wonder why you need both C++ […]
Technical Get the RSS Feed
Qt for VS Code, the TL;DR version Using VS Code IDE to work on Qt project
Our colleague Alessandro Ambrosano created a series of blogs (parts 1, 2, and 3) that explain how to get Visual Studio Code configured for Qt development. In that series, Alessandro covers all the details you need to get your VS Code environment configured exactly the way you want it. But there’s a lot there to […]
PSA: QPointer has a terrible name
Today’s blog post is about a small utility class in Qt with a… questionable name: QPointer. If you’re new to Qt, maybe don’t check out QPointer’s documentation just yet, and try to guess what the class does based on its name alone. I’ve seen countless users being very confused by it. Some end up using […]
Optimizing and Sharing Shader Structures
When writing large graphics applications in Vulkan or OpenGL, there’s many data structures that need to be passed from the CPU to the GPU and vice versa. There are subtle differences in alignment, padding and so on between C++ and GLSL to keep track of as well. I’m going to cover a tool I wrote […]
KDGpu v.0.1.0 is released a Vulkan wrapper to make modern graphics easier
We’re pleased to announce we’ve added a new library, KDGpu, to the arsenal of tools we invent to make our lives easier – and then share with you on KDAB’s GitHub. Who is this for? If you want to become more productive with Vulkan or learn the concepts of modern explicit graphics APIs, then KDGpu […]
Object Ownership
Last time we touched upon object lifetime and today we wrap up the basics with a bit of a spicy topic of object ownership. We covered the lifetime quirks, and we found out that manual memory management can be a nightmare, even if we new and delete in the correct order. There must be something […]
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 […]
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.