glGetVertexAttrib — Return a generic vertex attribute parameter
void glGetVertexAttribdv(
|
GLuint index, |
GLenum pname, | |
GLdouble *params) ; |
void glGetVertexAttribfv(
|
GLuint index, |
GLenum pname, | |
GLfloat *params) ; |
void glGetVertexAttribiv(
|
GLuint index, |
GLenum pname, | |
GLint *params) ; |
void glGetVertexAttribIiv(
|
GLuint index, |
GLenum pname, | |
GLint *params) ; |
void glGetVertexAttribIuiv(
|
GLuint index, |
GLenum pname, | |
GLuint *params) ; |
void glGetVertexAttribLdv(
|
GLuint index, |
GLenum pname, | |
GLdouble *params) ; |
index
Specifies the generic vertex attribute parameter to be queried.
pname
Specifies the symbolic name of the vertex
attribute parameter to be queried. Accepted values are
GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
,
GL_VERTEX_ATTRIB_ARRAY_ENABLED
,
GL_VERTEX_ATTRIB_ARRAY_SIZE
,
GL_VERTEX_ATTRIB_ARRAY_STRIDE
,
GL_VERTEX_ATTRIB_ARRAY_TYPE
,
GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
,
GL_VERTEX_ATTRIB_ARRAY_INTEGER
,
GL_VERTEX_ATTRIB_ARRAY_DIVISOR
, or
GL_CURRENT_VERTEX_ATTRIB
.
params
Returns the requested data.
glGetVertexAttrib
returns in
params
the value of a generic vertex
attribute parameter. The generic vertex attribute to be queried
is specified by index
, and the parameter
to be queried is specified by pname
.
The accepted parameter names are as follows:
GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
params
returns a
single value, the name of the buffer object currently bound to
the binding point corresponding to generic vertex attribute array
index
. If no buffer object is bound,
0 is returned. The initial value is 0.
GL_VERTEX_ATTRIB_ARRAY_ENABLED
params
returns a
single value that is non-zero (true) if the vertex
attribute array for index
is
enabled and 0 (false) if it is disabled. The initial
value is GL_FALSE
.
GL_VERTEX_ATTRIB_ARRAY_SIZE
params
returns a
single value, the size of the vertex attribute array
for index
. The size is the
number of values for each element of the vertex
attribute array, and it will be 1, 2, 3, or 4. The
initial value is 4.
GL_VERTEX_ATTRIB_ARRAY_STRIDE
params
returns a
single value, the array stride for (number of bytes
between successive elements in) the vertex attribute
array for index
. A value of 0
indicates that the array elements are stored
sequentially in memory. The initial value is 0.
GL_VERTEX_ATTRIB_ARRAY_TYPE
params
returns a
single value, a symbolic constant indicating the
array type for the vertex attribute array for
index
. Possible values are
GL_BYTE
,
GL_UNSIGNED_BYTE
,
GL_SHORT
,
GL_UNSIGNED_SHORT
,
GL_INT
,
GL_UNSIGNED_INT
,
GL_FLOAT
, and
GL_DOUBLE
. The initial value is
GL_FLOAT
.
GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
params
returns a
single value that is non-zero (true) if fixed-point
data types for the vertex attribute array indicated
by index
are normalized when
they are converted to floating point, and 0 (false)
otherwise. The initial value is
GL_FALSE
.
GL_VERTEX_ATTRIB_ARRAY_INTEGER
params
returns a
single value that is non-zero (true) if fixed-point
data types for the vertex attribute array indicated
by index
have integer data types, and 0 (false)
otherwise. The initial value is
0 (GL_FALSE
).
GL_VERTEX_ATTRIB_ARRAY_DIVISOR
params
returns a
single value that is the frequency divisor used for instanced
rendering. See glVertexAttribDivisor.
The initial value is 0.
GL_CURRENT_VERTEX_ATTRIB
params
returns four
values that represent the current value for the
generic vertex attribute specified by index. Generic
vertex attribute 0 is unique in that it has no
current state, so an error will be generated if
index
is 0. The initial value
for all other generic vertex attributes is
(0,0,0,1).
glGetVertexAttribdv
and glGetVertexAttribfv
return the current attribute values as four single-precision floating-point values;
glGetVertexAttribiv
reads them as floating-point values and
converts them to four integer values; glGetVertexAttribIiv
and
glGetVertexAttribIuiv
read and return them as signed or unsigned
integer values, respectively; glGetVertexAttribLdv
reads and returns
them as four double-precision floating-point values.
All of the parameters except GL_CURRENT_VERTEX_ATTRIB
represent state stored in the currently bound vertex array object.
If an error is generated, no change is made to the
contents of params
.
GL_INVALID_OPERATION
is generated if pname
is not GL_CURRENT_VERTEX_ATTRIB
and there is no
currently bound vertex array object.
GL_INVALID_VALUE
is generated if
index
is greater than or equal to
GL_MAX_VERTEX_ATTRIBS
.
GL_INVALID_ENUM
is generated if
pname
is not an accepted value.
GL_INVALID_OPERATION
is generated if
index
is 0 and
pname
is
GL_CURRENT_VERTEX_ATTRIB
.
glGet
with argument GL_MAX_VERTEX_ATTRIBS
glGetVertexAttribPointerv
with arguments index
and
GL_VERTEX_ATTRIB_ARRAY_POINTER
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glGetVertexAttribIiv
|
- | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetVertexAttribIuiv
|
- | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetVertexAttribLdv
|
- | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetVertexAttribdv
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetVertexAttribfv
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetVertexAttribiv
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glBindAttribLocation,
glBindBuffer,
glDisableVertexAttribArray
,
glEnableVertexAttribArray,
glVertexAttrib,
glVertexAttribDivisor,
glVertexAttribPointer
Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010-2014 Khronos Group. 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/.