1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
3 <!-- saved from url=(0013)about:internet -->
4 <?xml-stylesheet type=
"text/xsl" href=
"mathml.xsl"?><html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:
pref=
"http://www.w3.org/2002/Math/preference" pref:
renderer=
"mathplayer-dl"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><link rel=
"stylesheet" type=
"text/css" href=
"opengl-man.css" /><title>glVertexAttribFormat - OpenGL
4 Reference Pages
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.69.1" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"glVertexAttribFormat"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>glVertexAttribFormat — specify the organization of vertex arrays
</p></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glVertexAttribFormat
</b>(
</code></td><td>GLuint
</td><td><var class=
"pdparam">attribindex
</var>,
</td></tr><tr><td> </td><td>GLint
</td><td><var class=
"pdparam">size
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">type
</var>,
</td></tr><tr><td> </td><td>GLboolean
</td><td><var class=
"pdparam">normalized
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">relativeoffset
</var><code>)
</code>;
</td></tr></table></div><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glVertexAttribIFormat
</b>(
</code></td><td>GLuint
</td><td><var class=
"pdparam">attribindex
</var>,
</td></tr><tr><td> </td><td>GLint
</td><td><var class=
"pdparam">size
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">type
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">relativeoffset
</var><code>)
</code>;
</td></tr></table></div><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glVertexAttribLFormat
</b>(
</code></td><td>GLuint
</td><td><var class=
"pdparam">attribindex
</var>,
</td></tr><tr><td> </td><td>GLint
</td><td><var class=
"pdparam">size
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">type
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">relativeoffset
</var><code>)
</code>;
</td></tr></table></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"parameters"></a><h2>Parameters
</h2><div class=
"variablelist"><dl><dt><span class=
"term"><em class=
"parameter"><code>attribindex
</code></em></span></dt><dd><p>
5 The generic vertex attribute array being described.
6 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>size
</code></em></span></dt><dd><p>
7 The number of values per vertex that are stored in the array.
8 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>type
</code></em></span></dt><dd><p>
9 The type of the data stored in the array.
10 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>normalized
</code></em></span></dt><dd><p>
11 The distance between elements within the buffer.
12 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>relativeoffset
</code></em></span></dt><dd><p>
13 The distance between elements within the buffer.
14 </p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
15 <code class=
"function">glVertexAttribFormat
</code>,
<code class=
"function">glVertexAttribIFormat
</code> and
16 <code class=
"function">glVertexAttribLFormat
</code> specify the organization of data in vertex arrays.
17 <em class=
"parameter"><code>attribindex
</code></em> specifies the index of the generic vertex attribute
18 array whose data layout is being described, and must be less
19 than the value of
<code class=
"constant">GL_MAX_VERTEX_ATTRIBS
</code>.
21 <em class=
"parameter"><code>size
</code></em> determines the number of components per vertex are allocated
22 to the specifed attribute and must be
1,
2,
3 or
4.
<em class=
"parameter"><code>type
</code></em> indicates
23 the type of the data. If
<em class=
"parameter"><code>type
</code></em> is one of
<code class=
"constant">GL_BYTE
</code>,
24 <code class=
"constant">GL_SHORT
</code>,
<code class=
"constant">GL_INT
</code>,
<code class=
"constant">GL_FIXED
</code>,
25 <code class=
"constant">GL_FLOAT
</code>,
<code class=
"constant">GL_HALF_FLOAT
</code>, and
26 <code class=
"constant">GL_DOUBLE
</code> indicate types
<code class=
"code">GLbyte
</code>,
<code class=
"code">GLshort
</code>,
27 <code class=
"code">GLint
</code>,
<code class=
"code">GLfixed
</code>,
<code class=
"code">GLfloat
</code>,
<code class=
"code">GLhalf
</code>, and
28 <code class=
"code">GLdouble
</code>, respectively; the values
<code class=
"constant">GL_UNSIGNED_BYTE
</code>,
29 <code class=
"constant">GL_UNSIGNED_SHORT
</code>, and
<code class=
"constant">GL_UNSIGNED_INT
</code> indicate types
30 <code class=
"code">GLubyte
</code>,
<code class=
"code">GLushort
</code>, and
<code class=
"code">GLuint
</code>,
31 respectively; and the values
<code class=
"constant">GL_INT_2_10_10_10_REV
</code> and
32 <code class=
"constant">GL_UNSIGNED_INT_2_10_10_10_REV
</code> indicating respectively four signed or
33 unsigned elements packed into a single
<code class=
"code">GLuint
</code>.
35 <code class=
"function">glVertexAttribLFormat
</code> is used to specify layout for
36 data associated with a generic attribute variable declared as
64-bit double precision
37 components. For
<code class=
"function">glVertexAttribLFormat
</code>,
<em class=
"parameter"><code>type
</code></em>
38 must be
<code class=
"constant">GL_DOUBLE
</code>. In contrast to
<code class=
"function">glVertexAttribFormat
</code>,
39 which will cause data declared as
<code class=
"constant">GL_DOUBLE
</code> to be converted to
32-bit
40 representation,
<code class=
"function">glVertexAttribLFormat
</code> causes such data to be left
41 in its natural,
64-bit representation.
43 For
<code class=
"function">glVertexAttribFormat
</code>, if
<em class=
"parameter"><code>normalized
</code></em> is
44 <code class=
"constant">GL_TRUE
</code>, then integer data is normalized to the range [-
1,
1] or
45 [
0,
1] if it is signed or unsigned, respectively. If
<em class=
"parameter"><code>noramlized
</code></em> is
46 <code class=
"constant">GL_FALSE
</code> then integer data is directly converted to floating point.
48 <em class=
"parameter"><code>relativeoffset
</code></em> is the offset, measured in basic machine units
49 of the first element relative to the start of the vertex buffer binding this attribute
52 <code class=
"function">glVertexAttribFormat
</code> should be used to describe vertex attribute
53 layout for floating-point vertex attributes,
<code class=
"function">glVertexAttribIFormat
</code>
54 should be used to describe vertex attribute layout for integer vertex attribute
55 and
<code class=
"function">glVertexAttribLFormat
</code> should be used to describe the layout
56 for
64-bit vertex attributes. Data for an array specified by
57 <code class=
"function">glVertexAttribIFormat
</code> will always be left as integer values;
58 such data are referred to as pure integers.
59 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"errors"></a><h2>Errors
</h2><p>
60 <code class=
"constant">GL_INVAILD_VALUE
</code> is generated if
<em class=
"parameter"><code>attribindex
</code></em> is greater than
61 or equal to the value of
<code class=
"constant">GL_MAX_VERTEX_ATTRIBS
</code>.
63 <code class=
"constant">GL_INVALID_VALUE
</code> is generated if
<em class=
"parameter"><code>size
</code></em> is not
64 one of the accepted values.
66 <code class=
"constant">GL_INVALID_VALUE
</code> is generated if
<em class=
"parameter"><code>relativeoffset
</code></em> is greater
67 than the value of
<code class=
"constant">GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
</code>.
69 <code class=
"constant">GL_INVALID_ENUM
</code> is generated if
<em class=
"parameter"><code>type
</code></em> is not
70 one of the accepted tokens.
72 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if no vertex array object is bound.
73 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"associatedgets"></a><h2>Associated Gets
</h2><p>
74 <a href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with arguments
<code class=
"constant">GL_MAX_VERTEX_ATTRIB_BINDINGS
</code>,
75 or
<code class=
"constant">GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
</code>.
77 <a href=
"glGetVertexAttrib.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetVertexAttrib
</span></span></a> with argument
<code class=
"constant">GL_VERTEX_ATTRIB_RELATIVE_OFFSET
</code>.
78 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
79 <a href=
"glBindVertexBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBindVertexBuffer
</span></span></a>,
80 <a href=
"glVertexAttribBinding.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glVertexAttribBinding
</span></span></a>,
81 <a href=
"glVertexAttribPointer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glVertexAttribPointer
</span></span></a>,
82 <a href=
"glVertexBindingDivisor.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glVertexBindingDivisor
</span></span></a>,
83 <a href=
"glVertexAttribPointer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glVertexAttribPointer
</span></span></a>.
84 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
85 Copyright
<span class=
"trademark"></span>©
2012 Khronos Group.
86 This material may be distributed subject to the terms and conditions set forth in
87 the Open Publication License, v
1.0,
8 June
1999.
88 <a href=
"http://opencontent.org/openpub/" target=
"_top">http://opencontent.org/openpub/
</a>.
89 </p></div></div></body></html>