Working off the built in go-gl/glfw examples.