Opengl es glBindBuffer是否使以前的gl*指针调用无效?

Opengl es glBindBuffer是否使以前的gl*指针调用无效?,opengl-es,vertex-buffer,opengl-es-1.1,Opengl Es,Vertex Buffer,Opengl Es 1.1,我希望我的代码如下所示: glVertexPointer( 3, GL_FLOAT, sizeof( Vertex ), (GLvoid*)offsetof( Vertex, Position ) ); glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof( Vertex ), (GLvoid*)offsetof( Vertex, Color ) ); for ( /* each buffer */ ) { glBindBuffer( GL_VERTE

我希望我的代码如下所示:

glVertexPointer( 3, GL_FLOAT, sizeof( Vertex ), (GLvoid*)offsetof( Vertex, Position ) );
glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof( Vertex ), (GLvoid*)offsetof( Vertex, Color ) );

for ( /* each buffer */ )
{
    glBindBuffer( GL_VERTEX_ARRAY, buffer );
    glDrawArrays( GL_TRIANGLE_STRIP, 0, buffer_size );
}
这样行吗


或者我需要为每个缓冲区调用gl*指针吗?

在调用glXYZPointer调用之前,必须调用glBindBuffer


OpenGL是一个状态机。当您调用glVertexPointer(或其他gl..Pointer)时,它会将顶点指针设置到当前绑定的缓冲区中。指针调用后的glBindBuffer将不起任何作用(除非它会影响下一个指针调用)。

在调用glXYZPointer调用之前,必须调用glBindBuffer

OpenGL是一个状态机。当您调用glVertexPointer(或其他gl..Pointer)时,它会将顶点指针设置到当前绑定的缓冲区中。指针调用后的glBindBuffer将不起任何作用(除非它将影响下一个指针调用)