glGA: an openGL Geometric Application framework for a modern, shader-based computer graphics curriculum