I think the reason is something else. Maybe I bad told about my VBO project?
This is a Delphi code:
var vertexBuffer:GLInt;
type
Vertex=array[0…1] of GLFloat;
var
Vertexes:array of Vertex;
Procedure VBOInit;
begin
glGenBuffers(1, @vertexBuffer);
glBindBuffer( GL_ARRAY_BUFFER, vertexBuffer);
glBufferData( GL_ARRAY_BUFFER, sizeof(GLFloat)*(high(Vertexes)+1), @Vertexes[0], GL_STATIC_DRAW );
glVertexPointer( 2, GL_FLOAT, 0, nil);
glBindBuffer( GL_ARRAY_BUFFER, vertexBuffer);
end;
procedure TForm1.GLDirectOpenGLRender(Sender: TObject;
var rci: TRenderContextInfo);
begin
glEnableClientState( GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glVertexPointer( 2, GL_FLOAT, 0, nil);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableClientState(GL_VERTEX_ARRAY);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
setlength(Vertexes,6*2);
Vertexes[0][0]:=-1; Vertexes[0][1]:=-1;
Vertexes[1][0]:=1; Vertexes[1][1]:=-1;
Vertexes[2][0]:=1; Vertexes[2][1]:= 1;
Vertexes[3][0]:=1; Vertexes[3][1]:= 1;
Vertexes[4][0]:=-1; Vertexes[4][1]:= 1;
Vertexes[5][0]:=-1; Vertexes[5][1]:=-1;
VBOInit;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
glDeleteBuffers(1,@vertexBuffer);
end;
Procedure TForm1.FormCreate use once in project start. Procedure GLDirectOpenGLRender use for rending two triangles. I use GLScene (www.glscene.org), but in this project I almost (http://translate.google.ru/translate_t?prev=hp&hl=ru&js=y&text=рассказал&file=&sl=ru&tl=en&history_state0=#ru|en|почти) do not it’s functional.
My project with DL use GLScene only because it do not know about VBO =) and use older display list. if necessary I can show this source code.
“2. The driver will not go through all attributes and compare them to create index buffer internally.”
Sorry, I do not understand, fps would be better if I created indexes for VBO?
Thanks for your answers!!!