C++ OpenGL 2D Component Game Engine