Честно говоря, впервые использую VBO и, возможно, поэтому не вижу причину ошибки. Лишь закомментировав glDrawElements, я не наблюдаю мерцаний на экране, иначе мерцает не только окно приложения, но и вся остальная область экрана, затем падает видеодрайвер. В чём может быть ошибка?
Код такой:
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
Gl.glBindBuffer(Gl.GL_ARRAY_BUFFER, bufs[0]);
Gl.glColorPointer(4, Gl.GL_FLOAT, 0, 0);
Gl.glBindBuffer(Gl.GL_ARRAY_BUFFER, bufs[1]);
Gl.glVertexPointer(3, Gl.GL_FLOAT, 0, 0);
Gl.glBindBuffer(Gl.GL_ARRAY_BUFFER, bufs[2]);
Gl.glNormalPointer(Gl.GL_FLOAT, 0, 0);
Gl.glBindBuffer(Gl.GL_ELEMENT_ARRAY_BUFFER, bufs[3]);
Gl.glEnableClientState(Gl.GL_VERTEX_ARRAY);
Gl.glEnableClientState(Gl.GL_COLOR_ARRAY);
Gl.glEnableClientState(Gl.GL_NORMAL_ARRAY);
Gl.glDrawElements(Gl.GL_TRIANGLES,
ElementData.Length,Gl.GL_UNSIGNED_INT, 0);//!!!!
Gl.glDisableClientState(Gl.GL_VERTEX_ARRAY);
Gl.glDisableClientState(Gl.GL_COLOR_ARRAY);
Gl.glDisableClientState(Gl.GL_NORMAL_ARRAY);
OpenGlControl.Invalidate();