values tell the graphics driver what the primary application of a buffer
object will be. Note that any buffer can be used for any purpose; however, performance may be improved if a buffer object is constructed as the same kind as its primary use case.
|• ||A vertex-buffer is used to store vertex attribute data to be rendered as part of a vertex array.|
|• ||An index-buffer is used to store indexes into a vertex array.|
|• ||A pixel-unpack-buffer is used as a source for updating texture image data.|
|• ||A pixel-pack-buffer is used as a destination for reading texture or framebuffer image data.|
|• ||A transform-feedback-buffer is used as a destination for transform feedback output from a vertex shader.|
kinds require OpenGL 2.1 or the GL_ARB_pixel_buffer_object