GLfloat tri_vert[36]={ 0.0, 2.0, 0.0, -1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 2.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0,-1.0, 0.0, 2.0, 0.0, 1.0, 0.0,-1.0, -1.0, 0.0,-1.0, 0.0, 2.0, 0.0, -1.0, 0.0,-1.0, -1.0, 0.0, 1.0, }; GLfloat tri_tex[24]={ 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, }; int pyrid; glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glGenBuffersARB(1,&pyrid); glBindBufferARB(GL_ARRAY_BUFFER_ARB,pyrid); glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(tri_vert)+sizeof(tri_tex),NULL,GL_STATIC_DRAW_ARB); glBufferSubDataARB(GL_ARRAY_BUFFER_ARB,0,sizeof(tri_vert),tri_vert); glBufferSubDataARB(GL_ARRAY_BUFFER_ARB,sizeof(tri_vert),sizeof(tri_tex),tri_tex); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,brick.id); glVertexPointer(3,GL_FLOAT,0,NULL); glTexCoordPointer(2,GL_FLOAT,0,(void *)sizeof(tri_vert)); glDrawArrays(GL_TRIANGLES,0,12);