- glGenBuffersARB(1, @VertexBufferObject);
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, VertexBufferObject);
- glEnableClientState(GL_VERTEX_ARRAY);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, length(Triangles)*3*SizeOf(TVBO_Skydome_Vertex), nil, GL_STATIC_DRAW_ARB);
- VBOPointer := glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
- VBOSize:=length(Triangles)*3*SizeOf(TVBO_Skydome_Vertex);
- for i := 0 to length(Triangles)-1 do
- begin
- VBOPointer^.S:=Vertices[Triangles[i].v1].tx;
- VBOPointer^.T:=Vertices[Triangles[i].v1].ty;
- VBOPointer^.X:=Vertices[Triangles[i].v1].p[0];
- VBOPointer^.Y:=Vertices[Triangles[i].v1].p[1];
- VBOPointer^.Z:=Vertices[Triangles[i].v1].p[2];
- inc(Integer(VBOPointer), SizeOf(TVBO_Skydome_Vertex));
- VBOPointer^.S:=Vertices[Triangles[i].v2].tx;
- VBOPointer^.T:=Vertices[Triangles[i].v2].ty;
- VBOPointer^.X:=Vertices[Triangles[i].v2].p[0];
- VBOPointer^.Y:=Vertices[Triangles[i].v2].p[1];
- VBOPointer^.Z:=Vertices[Triangles[i].v2].p[2];
- inc(Integer(VBOPointer), SizeOf(TVBO_Skydome_Vertex));
- VBOPointer^.S:=Vertices[Triangles[i].v3].tx;
- VBOPointer^.T:=Vertices[Triangles[i].v3].ty;
- VBOPointer^.X:=Vertices[Triangles[i].v3].p[0];
- VBOPointer^.Y:=Vertices[Triangles[i].v3].p[1];
- VBOPointer^.Z:=Vertices[Triangles[i].v3].p[2];
- inc(Integer(VBOPointer), SizeOf(TVBO_Skydome_Vertex));
- end;
- glUnMapBufferARB(GL_ARRAY_BUFFER_ARB);