OpenGL 2D Engine

Let's start with the engine first.