Working on an opengl abstraction so we can map it to whatever underlying render engine we want.