This class provides tools to manage OpenGL Vertex Array Objects.
Vertex array objects represent a collection of sets of vertex attributes. Each set is stored as an array in a buffer object data store, with each element of the array having a specified format and component count. The attributes of the currently bound vertex array object are used as inputs to the vertex shader when executing drawing commands.
Vertex array objects are container objects including references to buffer objects, and are not shared.
The usual programming flow is to bind the VAO, then to bind a set of VBO at some locations and finnaly to unbind the VAO for latter use.