Unifying vertex arrays
Geometry data is submitted into OpenGL using Vertex Buffer Objects (VBO) and Vertex Array Objects (VAO). VBOs are part of both OpenGL versions; however, VAOs are not part of OpenGL ES 2 but are mandatory in the OpenGL 3.2 Core Profile. This means we have to make yet another abstraction to hide the difference between the two APIs behind it.
A Vertex Buffer Object (VBO) is an OpenGL feature that provides methods for uploading vertex data (position, normal vector, color, and so on) to the video device for non-immediate-mode rendering. VBOs offer substantial performance gains over immediate mode rendering, primarily because the data resides in the video device memory rather than the system memory and so it can be rendered directly by the video device.
Courtesy: http://en.wikipedia.org/wiki/Vertex_Buffer_Object
A Vertex Array Object (VAO) is an OpenGL Object that encapsulates the state needed to specify vertex data. They define the format of the vertex data as well as the...