Portal:OpenGL Objects/Buffer Object
A buffer object is a linear array of memory, who's storage is managed by the OpenGL context. There are many OpenGL APIs that use buffer objects as source or destination data for reading/writing operations. There are many functions for allocating buffer object storage, updating its contents, and for efficiently loading data continuously.
Buffer objects have a wide variety of uses, with each target roughly corresponding to a specific usage of a buffer object. An important thing to remember is that, subject to the limits of the OpenGL Memory Model, you may freely interchange buffer objects. A buffer object can be used as the source of vertex data in one instance, then used as the destination for vertex writing in another, then used as the source for pixel data transfers, etc.