Note: This class will be entirely re-written when I find some time, it is very poorly implemented, full of assumptions and creates a new texture for every single frame 🤦.