Signature
glVertexArrayAttribFormat(
GLuint (
vaobj
)
,
GLuint (
attribindex
)
,
GLint (
size
)
,
GLenum (
type
)
,
GLboolean (
normalized
)
,
GLuint (
relativeoffset
)
)-> void
glVertexArrayAttribIFormat(
GLuint (
vaobj
)
,
GLuint (
attribindex
)
,
GLint (
size
)
,
GLenum (
type
)
,
GLuint (
relativeoffset
)
)-> void
glVertexArrayAttribLFormat(
GLuint (
vaobj
)
,
GLuint (
attribindex
)
,
GLint (
size
)
,
GLenum (
type
)
,
GLuint (
relativeoffset
)
)-> void
glVertexAttribFormat(
GLuint (
attribindex
)
,
GLint (
size
)
,
GLenum (
type
)
,
GLboolean (
normalized
)
,
GLuint (
relativeoffset
)
)-> void
glVertexAttribIFormat(
GLuint (
attribindex
)
,
GLint (
size
)
,
GLenum (
type
)
,
GLuint (
relativeoffset
)
)-> void
glVertexAttribLFormat(
GLuint (
attribindex
)
,
GLint (
size
)
,
GLenum (
type
)
,
GLuint (
relativeoffset
)
)-> void
Parameters
Variables | Description |
---|---|
vaobj |
Specifies the name of the vertex array object for
glVertexArrayAttrib{I, L}Format
functions.
|
attribindex |
The generic vertex attribute array being described.
|
size |
The number of values per vertex that are stored in the
array.
|
type |
The type of the data stored in the array.
|
normalized |
Specifies whether fixed-point data values should be normalized (
GL_TRUE
) or
converted directly as fixed-point values (
GL_FALSE
) when they are accessed. This parameter is ignored if
type
is
GL_FIXED
.
|
relativeoffset |
The distance between elements within the buffer.
|
Description
glVertexAttribFormat
,
glVertexAttribIFormat
and
glVertexAttribLFormat
, as well as
glVertexArrayAttribFormat
,
glVertexArrayAttribIFormat
and
glVertexArrayAttribLFormat
specify the organization
of data in vertex arrays. The first three calls operate on the bound
vertex array object, whereas the last three ones modify the state of a
vertex array object with ID
vaobj
.
attribindex
specifies the index of the generic
vertex attribute array whose data layout is being described, and must be
less than the value of
GL_MAX_VERTEX_ATTRIBS
.
size
determines the number of components per
vertex are allocated to the specified attribute and must be 1, 2, 3 or 4.
type
indicates the type of the data. If
type
is one of
GL_BYTE
,
GL_SHORT
,
GL_INT
,
GL_FIXED
,
GL_FLOAT
,
GL_HALF_FLOAT
, and
GL_DOUBLE
indicate types
GLbyte
,
GLshort
,
GLint
,
GLfixed
,
GLfloat
,
GLhalf
, and
GLdouble
, respectively; the values
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_SHORT
, and
GL_UNSIGNED_INT
indicate types
GLubyte
,
GLushort
, and
GLuint
, respectively; the values
GL_INT_2_10_10_10_REV
and
GL_UNSIGNED_INT_2_10_10_10_REV
indicating
respectively four signed or unsigned elements packed into a single
GLuint
; and the value
GL_UNSIGNED_INT_10F_11F_11F_REV
indicating three
floating point values packed into a single
GLuint
.
glVertexAttribLFormat
and
glVertexArrayAttribLFormat
is used to specify layout
for data associated with a generic attribute variable declared as 64-bit
double precision components. For
glVertexAttribLFormat
and
glVertexArrayAttribLFormat
,
type
must be
GL_DOUBLE
. In
contrast to
glVertexAttribFormat
or
glVertexArrayAttribFormat
, which will cause data
declared as
GL_DOUBLE
to be converted to 32-bit
representation,
glVertexAttribLFormat
and
glVertexArrayAttribLFormat
cause such data to be left
in its natural, 64-bit representation.
For
glVertexAttribFormat
and
glVertexArrayAttribFormat
, if
normalized
is
GL_TRUE
, then
integer data is normalized to the range [-1, 1] or [0, 1] if it is signed
or unsigned, respectively. If
normalized
is
GL_FALSE
then integer data is directly converted to
floating point.
relativeoffset
is the offset, measured in
basic machine units of the first element relative to the start of the
vertex buffer binding this attribute fetches from.
glVertexAttribFormat
and
glVertexArrayAttribFormat
should be used to describe
vertex attribute layout for floating-point vertex attributes,
glVertexAttribIFormat
and
glVertexArrayAttribIFormat
should be used to describe
vertex attribute layout for integer vertex attribute, and
glVertexAttribLFormat
and
glVertexArrayAttribLFormat
should be used to describe
the layout for 64-bit vertex attributes. Data for an array specified by
glVertexAttribIFormat
and
glVertexArrayAttribIFormat
will always be left as
integer values; such data are referred to as pure integers.
Notes
GL_UNSIGNED_INT_10F_11F_11F_REV
is accepted for
type
only if the GL version is 4.4 or
higher.
Errors
GL_INVALID_VALUE
is generated if
attribindex
is greater than or equal to the value
of
GL_MAX_VERTEX_ATTRIBS
.
GL_INVALID_VALUE
is generated if
size
is not one of the accepted values.
GL_INVALID_VALUE
is generated if
relativeoffset
is greater than the value of
GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
.
GL_INVALID_ENUM
is generated if
type
is not one of the accepted tokens.
GL_INVALID_ENUM
is generated by
glVertexAttribIFormat
,
glVertexAttribLFormat
,
glVertexArrayAttribIFormat
and
glVertexArrayAttribLFormat
if
type
is
GL_UNSIGNED_INT_10F_11F_11F_REV
.
GL_INVALID_OPERATION
is generated by
glVertexAttribFormat
,
glVertexAttribIFormat
and
glVertexAttribLFormat
if no vertex array object is
bound.
GL_INVALID_OPERATION
is generated by
glVertexArrayAttribFormat
,
glVertexArrayAttribIFormat
and
glVertexArrayAttribLFormat
if
vaobj
is not the name of an existing vertex array
object.
GL_INVALID_OPERATION
is generated under any of
the following conditions:
Associated Gets
glGetVertexAttrib
with argument
GL_VERTEX_ATTRIB_RELATIVE_OFFSET
.
Version Support
glVertexArrayAttribFormat | |
glVertexArrayAttribIFormat | |
glVertexArrayAttribLFormat | |
glVertexAttribFormat | |
glVertexAttribIFormat | |
glVertexAttribLFormat |
See Also
Copyright
Copyright
2013-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/
.