Friday, May 27, 2011

glGenBuffers example c c++ objc java

Name

glGenBuffers — generate buffer object names

C Specification

void glGenBuffers(GLsizei  n,
GLuint *  buffers);

Parameters


n
Specifies the number of buffer object names to be generated.
buffers
Specifies an array in which the generated buffer object names are stored.

Description

glGenBuffers returns n buffer object names in buffers. There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to glGenBuffers.
Buffer object names returned by a call to glGenBuffers are not returned by subsequent calls, unless they are first deleted with glDeleteBuffers.
No buffer objects are associated with the returned buffer object names until they are first bound by calling glBindBuffer.

Notes

glGenBuffers is available only if the GL version is 1.5 or greater.

Errors

GL_INVALID_VALUE is generated if n is negative.
GL_INVALID_OPERATION is generated if glGenBuffers is executed between the execution of glBegin and the corresponding execution of glEnd.

Associated Gets

glIsBuffer

Copyright

Copyright © 2005 Addison-Wesley. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

Example

1GLfloat afVertices[] = {    -0.4f,-0.4f,0.0f// Position
2                                0.4f ,-0.4f,0.0f,
3                                0.0f ,0.4f ,0.0f};
4GLuint ui32Vbo;
5// Generate and Bind  the vertex buffer object (VBO)
6glGenBuffers(1&ui32Vbo);
7glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);
8
9unsigned int uiSize = 3 * (sizeof(GLfloat) * 3);
10glBufferData(GL_ARRAY_BUFFER, uiSize, afVertices, GL_STATIC_DRAW);
11
12// Frame 
13glClear(GL_COLOR_BUFFER_BIT);
14
15// First gets the location of that variable in the shader using its name
16        int i32Location = glGetUniformLocation(uiProgramObject, "myPMVMatrix");
17glUniformMatrix4fv( i32Location, 1, GL_FALSE, pfIdentity);
18
19glEnableVertexAttribArray(VERTEX_ARRAY);
20glVertexAttribPointer(VERTEX_ARRAY, 3, GL_FLOAT, GL_FALSE, 00);
21
22glDrawArrays(GL_TRIANGLES, 03);
23eglSwapBuffers(eglDisplay, eglSurface);