在某些场合需要快速的将Video Frame stream到GPU texture, 比如要使用GPU渲染从相机过来的帧数据。这时候就可以将数据直接写入pixel unpack buffer object.
Pixel unpack buffer object
OpenGL 支持几种buffer objects, 其中用的最多的大概就是vertex buffer object (VBO) 用来存储顶点相关数据。 创建和绑定buffer object的函数:
void glGenBuffers(GLsizei n, GLuint *buffers);
void glBindBuffer(GLenum target, GLuint buffer);
target
: 可以是以下任一个,
- GL_ARRAY_BUFFER
- GL_ELEMENT_ARRAY_BUFFER
- GL_COPY_READ_BUFFER
- GL_COPY_WRITE_BUFFER
- GL_PIXEL_PACK_BUFFER
- GL_PIXEL_UNPACK_BUFFER
- GL_TRANSFORM_FEEDBACK_BUFFER
- GL_UNIFORM_BUFFER
在绑定buffer object之后,下一步就是分配GPU存储空间了:
void glBufferDa