object oriented wrapper for opengl