Template Metaprogramming in C++

Template metaprogramming is a form of metaprogramming. In a nutshell, metaprogramming is the technique of programming where the application is capable of using another program as its data (read and/or write) or even modifying itself.

Read More

Multithreading in C++

According to cplusplus, a thread is a sequence of instructions that can be executed concurrently with other such sequences in multithreading environments, while sharing a same address space. But what does this mean and why would we want to use this?

Read More

Vulkan Engine - Part 3

In this part we will create our own abstracted layer on top of the Vulkan instance. We will extend this with support for Vulkan validation layers which will help us tremendously when debugging.

Read More

Vulkan Engine - Part 2

In the previous part we covered the basic setup of Vulkan and compiled our first Vulkan example using Bazel. In this second part we will connect Vulkan to GLFW, an open source API which allows you to easily create windows and integrate them with Vulkan. There are alternatives (such as SDL), however I found that GLFW works well, is well supported and rather simple in use.

Read More

Vulkan Engine - Part 1

When it comes to computer science, computer graphics has always been one of my favorite topics. Initially I started off with playing around in OpenGL, but as soon as I discovered what Vulkan was, I had to try it.

Read More

Smart Pointers in C++

Smart pointers are nothing more than a simple wrapper around regular pointer types in C++, which ensure that an object is automatically deleted when it’s not being used anymore. Long story short, they are an extremely powerful tool to prevent memory leaks.

Read More