3
我有一個抽獎程序完全工作如下:調用glDrawArrays問題
glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_MODELVIEW);
{
glBindTexture(GL_TEXTURE_2D, [texture name]);
GLsizei stride = sizeof(quads[0].tl);
glBindBuffer(GL_ARRAY_BUFFER, buffers[0]);
glBufferData(GL_ARRAY_BUFFER, sizeof(TQuad2D), quads, GL_STATIC_DRAW);
glVertexPointer(2, GL_FLOAT, stride, (void *)offsetof(TVertex2D, pos));
glEnableClientState(GL_VERTEX_ARRAY);
glTexCoordPointer(2, GL_FLOAT, stride, (void *)offsetof(TVertex2D, tex));
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
}
glBindTexture(GL_TEXTURE_2D, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_TEXTURE_2D);
而且之前或之後上面,我想畫一個簡單的線條,如下面的一個。這本身工作正常,但如果我將它與上面的例程結合起來,它會給我一個506錯誤,它是GL_INVALID_FRAMEBUFFER_OPERATION
。
GLfloat verts[4];
verts[0] = 0;
verts[1] = 0;
verts[2] = 600;
verts[3] = 600;
glColor4f(0.0f,1.0f,0.0f,1.0f);
glVertexPointer(2, GL_FLOAT, 0, &verts);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_LINES, 0, 2);
glDisableClientState(GL_VERTEX_ARRAY);
GLErrCheck(@"err");
我可能忘記重置GL狀態,但我無法弄清楚。
感謝您的解釋。這正是發生的事情! – Morrowless 2011-01-15 04:05:53