OpenGL 2D Lighting & Shadows Engine by Jacob Brunson