A thin layer over OpenGL 3.1+ vertex array objects.
A vertex array object captures OpenGL state needed for drawing a vertex array. It encapsulates the binding of an array buffer and an element buffer, as well as vertex attribute setup.
VertexArrayObject, and initialize it with the
provided action. This action should bind the buffer data, index
data (if necessary), and setup vertex attributes.
VertexArrayObject. Do not use the VAO after running