require a `&mut GLContext` where OpenGL state changes.