It means that when you rebind the VAO
the GL_ARRAY_BUFFER
does not get rebound
However the glVertexAttribPointer
does bind the (then) bound GL_ARRAY_BUFFER
to the correct attribute in the VAO so it does work like you want.
Actually they could have defined glVertexAttribPointer
as:
void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, uint bufferName, const GLvoid * pointer);
and eliminate it's dependency on the bound GL_ARRAY_BUFFER
. But hindsight and all that...
Important to remember is that the GL_ARRAY_BUFFER
is not important to drawing but the how the vertex attributes are bound is.
in contrast the GL_ELEMENT_ARRAY_BUFFER
is stored in the VAO