Difference between revisions of "GLAPI/glGetVertexAttrib"

From OpenGL Wiki
Jump to navigation Jump to search
m (Bot: Adding better formatting.)
m (Bot: Adding better formatting.)
 
Line 29: Line 29:
  
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING}}
:  
+
: {{param|params}} returns a single value, the name of the buffer object currently bound to the binding point corresponding to generic vertex attribute array {{param|index}}. If no buffer object is bound, 0 is returned. The initial value is 0.
{{param|params}} returns a single value, the name of the buffer object currently bound to the binding point corresponding to generic vertex attribute array {{param|index}}. If no buffer object is bound, 0 is returned. The initial value is 0.
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_ENABLED}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_ENABLED}}
:  
+
: {{param|params}} returns a single value that is non-zero (true) if the vertex attribute array for {{param|index}} is enabled and 0 (false) if it is disabled. The initial value is {{enum|GL_FALSE}}.
{{param|params}} returns a single value that is non-zero (true) if the vertex attribute array for {{param|index}} is enabled and 0 (false) if it is disabled. The initial value is {{enum|GL_FALSE}}.
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_SIZE}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_SIZE}}
:  
+
: {{param|params}} returns a single value, the size of the vertex attribute array for {{param|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.
{{param|params}} returns a single value, the size of the vertex attribute array for {{param|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.
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_STRIDE}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_STRIDE}}
:  
+
: {{param|params}} returns a single value, the array stride for (number of bytes between successive elements in) the vertex attribute array for {{param|index}}. A value of 0 indicates that the array elements are stored sequentially in memory. The initial value is 0.
{{param|params}} returns a single value, the array stride for (number of bytes between successive elements in) the vertex attribute array for {{param|index}}. A value of 0 indicates that the array elements are stored sequentially in memory. The initial value is 0.
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_TYPE}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_TYPE}}
:  
+
: {{param|params}} returns a single value, a symbolic constant indicating the array type for the vertex attribute array for {{param|index}}. Possible values are {{enum|GL_BYTE}}, {{enum|GL_UNSIGNED_BYTE}}, {{enum|GL_SHORT}}, {{enum|GL_UNSIGNED_SHORT}}, {{enum|GL_INT}}, {{enum|GL_UNSIGNED_INT}}, {{enum|GL_FLOAT}}, and {{enum|GL_DOUBLE}}. The initial value is {{enum|GL_FLOAT}}.
{{param|params}} returns a single value, a symbolic constant indicating the array type for the vertex attribute array for {{param|index}}. Possible values are {{enum|GL_BYTE}}, {{enum|GL_UNSIGNED_BYTE}}, {{enum|GL_SHORT}}, {{enum|GL_UNSIGNED_SHORT}}, {{enum|GL_INT}}, {{enum|GL_UNSIGNED_INT}}, {{enum|GL_FLOAT}}, and {{enum|GL_DOUBLE}}. The initial value is {{enum|GL_FLOAT}}.
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_NORMALIZED}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_NORMALIZED}}
:  
+
: {{param|params}} returns a single value that is non-zero (true) if fixed-point data types for the vertex attribute array indicated by {{param|index}} are normalized when they are converted to floating point, and 0 (false) otherwise. The initial value is {{enum|GL_FALSE}}.
{{param|params}} returns a single value that is non-zero (true) if fixed-point data types for the vertex attribute array indicated by {{param|index}} are normalized when they are converted to floating point, and 0 (false) otherwise. The initial value is {{enum|GL_FALSE}}.
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_INTEGER}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_INTEGER}}
:  
+
: {{param|params}} returns a single value that is non-zero (true) if fixed-point data types for the vertex attribute array indicated by {{param|index}} have integer data types, and 0 (false) otherwise. The initial value is 0 ({{enum|GL_FALSE}}).
{{param|params}} returns a single value that is non-zero (true) if fixed-point data types for the vertex attribute array indicated by {{param|index}} have integer data types, and 0 (false) otherwise. The initial value is 0 ({{enum|GL_FALSE}}).
 
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_DIVISOR}}
 
; {{enum|GL_VERTEX_ATTRIB_ARRAY_DIVISOR}}
:  
+
: {{param|params}} returns a single value that is the frequency divisor used for instanced rendering. See {{apifunc|glVertexAttribDivisor}}. The initial value is 0.
{{param|params}} returns a single value that is the frequency divisor used for instanced rendering. See {{apifunc|glVertexAttribDivisor}}. The initial value is 0.
 
 
; {{enum|GL_CURRENT_VERTEX_ATTRIB}}
 
; {{enum|GL_CURRENT_VERTEX_ATTRIB}}
:  
+
: {{param|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 {{param|index}} is 0. The initial value for all other generic vertex attributes is (0,0,0,1).
{{param|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 {{param|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.
 
'''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 {{enum|GL_CURRENT_VERTEX_ATTRIB}} represent state stored in the currently bound vertex array object.
 
All of the parameters except {{enum|GL_CURRENT_VERTEX_ATTRIB}} represent state stored in the currently bound vertex array object.
  
Line 80: Line 73:
 
== See Also ==
 
== See Also ==
  
{{apifunc|glBindAttribLocation}}, {{apifunc|glBindBuffer}}, {{apifunc|glDisableVertexAttribArray}}, {{apifunc|glEnableVertexAttribArray}}, {{apifunc|glVertexAttrib}}, {{apifunc|glVertexAttribDivisor}}, {{apifunc|glVertexAttribPointer}}
+
{{apifunc|glBindVertexArray}}, {{apifunc|glEnableVertexAttribArray}}, {{apifunc|glVertexAttrib}}, {{apifunc|glVertexAttribDivisor}}, {{apifunc|glVertexAttribPointer}}, {{apifunc|glVertexAttribFormat}}
  
 
== Copyright ==
 
== Copyright ==

Latest revision as of 01:50, 27 September 2012

glGetVertexAttrib
Core in version 4.6
Core since version 2.0

glGetVertexAttrib: Return a generic vertex attribute parameter

Function Definition

 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.

Description

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.

Notes

If an error is generated, no change is made to the contents of params​.

Errors

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.

Associated Gets

glGet with argument GL_MAX_VERTEX_ATTRIBS

glGetVertexAttribPointerv with arguments index​ and GL_VERTEX_ATTRIB_ARRAY_POINTER

See Also

glBindVertexArray, glEnableVertexAttribArray, glVertexAttrib, glVertexAttribDivisor, glVertexAttribPointer, glVertexAttribFormat

Copyright

Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010 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/.