X-Git-Url: http://git.hcoop.net/clinton/guile-figl.git/blobdiff_plain/b002944dd992dc5a273e0067504beb48e1ae3d1c..a6a00658f26c164551287799b194cc2f07eb78be:/upstream-doc/man3/glBindAttribLocation.xml diff --git a/upstream-doc/man3/glBindAttribLocation.xml b/upstream-doc/man3/glBindAttribLocation.xml new file mode 100644 index 0000000..21e5000 --- /dev/null +++ b/upstream-doc/man3/glBindAttribLocation.xml @@ -0,0 +1,186 @@ + + + + + glBindAttribLocation + 3G + + + glBindAttribLocation + Associates a generic vertex attribute index with a named attribute variable + + C Specification + + + void glBindAttribLocation + GLuint program + GLuint index + const GLchar *name + + + + Parameters + + + program + + Specifies the handle of the program object in + which the association is to be made. + + + + index + + Specifies the index of the generic vertex + attribute to be bound. + + + + name + + Specifies a null terminated string containing + the name of the vertex shader attribute variable to + which index is to be + bound. + + + + + Description + glBindAttribLocation is used to + associate a user-defined attribute variable in the program + object specified by program with a + generic vertex attribute index. The name of the user-defined + attribute variable is passed as a null terminated string in + name. The generic vertex attribute index + to be bound to this variable is specified by + index. When + program is made part of current state, + values provided via the generic vertex attribute + index will modify the value of the + user-defined attribute variable specified by + name. + + If name refers to a matrix + attribute variable, index refers to the + first column of the matrix. Other matrix columns are then + automatically bound to locations index+1 + for a matrix of type mat2; index+1 and + index+2 for a matrix of type mat3; and + index+1, index+2, + and index+3 for a matrix of type + mat4. + + This command makes it possible for vertex shaders to use + descriptive names for attribute variables rather than generic + variables that are numbered from 0 to + GL_MAX_VERTEX_ATTRIBS -1. The values sent + to each generic attribute index are part of current state. + If a different program object is made current by calling + glUseProgram, + the generic vertex attributes are tracked in such a way that the + same values will be observed by attributes in the new program + object that are also bound to + index. Attribute variable + name-to-generic attribute index bindings for a program object + can be explicitly assigned at any time by calling + glBindAttribLocation. Attribute bindings do + not go into effect until + glLinkProgram + is called. After a program object has been linked successfully, + the index values for generic attributes remain fixed (and their + values can be queried) until the next link command + occurs. + + Any attribute binding that occurs after the program object has been linked will not take effect + until the next time the program object is linked. + + Notes + glBindAttribLocation can be called + before any vertex shader objects are bound to the specified + program object. It is also permissible to bind a generic + attribute index to an attribute variable name that is never used + in a vertex shader. + + If name was bound previously, that + information is lost. Thus you cannot bind one user-defined + attribute variable to multiple indices, but you can bind + multiple user-defined attribute variables to the same + index. + + Applications are allowed to bind more than one + user-defined attribute variable to the same generic vertex + attribute index. This is called aliasing, + and it is allowed only if just one of the aliased attributes is + active in the executable program, or if no path through the + shader consumes more than one attribute of a set of attributes + aliased to the same location. The compiler and linker are + allowed to assume that no aliasing is done and are free to + employ optimizations that work only in the absence of aliasing. + OpenGL implementations are not required to do error checking to + detect aliasing. + + Active attributes that are not explicitly bound will be + bound by the linker when + glLinkProgram + is called. The locations assigned can be queried by calling + glGetAttribLocation. + + OpenGL copies the name string when + glBindAttribLocation is called, so an + application may free its copy of the name + string immediately after the function returns. + + Generic attribute locations may be specified in the shader source + text using a location layout qualifier. In this case, + the location of the attribute specified in the shader's source takes precedence + and may be queried by calling glGetAttribLocation. + + + Errors + GL_INVALID_VALUE is generated if + index is greater than or equal to + GL_MAX_VERTEX_ATTRIBS. + + GL_INVALID_OPERATION is generated if + name starts with the reserved prefix + "gl_". + + GL_INVALID_VALUE is generated if + program is not a value generated by + OpenGL. + + GL_INVALID_OPERATION is generated if + program is not a program object. + + + Associated Gets + glGet + with argument GL_MAX_VERTEX_ATTRIBS + + glGetActiveAttrib + with argument program + + glGetAttribLocation + with arguments program and + name + + glIsProgram + + See Also + glDisableVertexAttribArray, + glEnableVertexAttribArray, + glUseProgram, + glVertexAttrib, + glVertexAttribPointer + + Copyright + + Copyright 2003-2005 3Dlabs Inc. Ltd. + 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/. + + +