Skip to main content

Code

2018

Adding C/C++ code coverage with CMake and GCC or Clang
·752 words·4 mins
Code Cmake C/Cpp
Code coverage gives the ability to determine which sections of code are used, and how much, helping to prevent issues from sections of code that aren’t run during tests and thus could potentially fail in production.
Integrating clang-tools with CMake
·1229 words·6 mins
Code Cmake
The clang tools, clang-format and clang-tidy can be immensly useful, both for software development on local machines and as passes in a CI pipeline. This is especially true when they are integrated into a CMake script, where new targets ‘format’ and ’tidy’ can be exist.

2017

Fixed Point Precision Type
·854 words·5 mins
Code C/Cpp
One of the most valuable basic types in computer science is the floating point type. The float is that allows for a massive range of storable values, at the cost of some precision after the value becomes large enough, due to the fact that floats can only store ~7.2 decimal digits. Thus, if we wish to keep a certain fixed amount or precision, we need to either put coded limits around the use of particular floats, or just create our own fixed point type.
Typescript All in One Constructor
·274 words·2 mins
Code Typescript Javascript
Because Typescript is just a superset of javascript, having different constructors from C++ is something that I do indeed somtimes miss. In this case, Java/Typescript classes can only have a single constructor, whereas many times I wish to have differing levels of constructor capability.
SPIR-V Shader Binary Converter
·691 words·4 mins
Code Vulkan C/Cpp
To accomplish this, the program reads in the generated SPIR-V binary, and outputs a text file containing the data, but in 4 byte chunks, so that it can be used as if it were a uint32 array.