这个是普通的方式,但是由于es2.0之后所有的绘制都在shader中,所以下面的方式行不通。oF应该是鼓励使用ofMesh吧。
/*
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, posbuf);
glTexCoordPointer(2, GL_FLOAT, 0, texcoordbuf);
glDrawArrays(GL_POINTS, 0, sz);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
*/
下面是正确的方式,至于其他属性就是同理了,可以参看 draw(ofMesh&..)
glEnableVertexAttribArray(ofShader::POSITION_ATTRIBUTE);
glVertexAttribPointer(ofShader::POSITION_ATTRIBUTE, 2, GL_FLOAT, GL_FALSE, 0, posbuf);
glEnableVertexAttribArray(ofShader::TEXCOORD_ATTRIBUTE);
glVertexAttribPointer(ofShader::TEXCOORD_ATTRIBUTE,2, GL_FLOAT, GL_FALSE, 0, texcoordbuf);
glDrawArrays(GL_POINTS, 0, sz);
glDisableVertexAttribArray(ofShader::POSITION_ATTRIBUTE);
glDisableVertexAttribArray(ofShader::TEXCOORD_ATTRIBUTE);