All the macros are there so that the single source file can not only be compiled for the CPU, but also be used on all of OpenGL, Vulkan and Direct3D....