Name
glGenBuffers — generate buffer object namesC 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.
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.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);
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);
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");
16 int i32Location = glGetUniformLocation(uiProgramObject, "myPMVMatrix");
17glUniformMatrix4fv( i32Location, 1, GL_FALSE, pfIdentity);
18
19glEnableVertexAttribArray(VERTEX_ARRAY);
20glVertexAttribPointer(VERTEX_ARRAY, 3, GL_FLOAT, GL_FALSE, 0, 0);
21
22glDrawArrays(GL_TRIANGLES, 0, 3);
23eglSwapBuffers(eglDisplay, eglSurface);