glVertexAttribFormat

glVertexArrayAttribFormat: man4/glVertexAttribFormat.xml

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.

GL_UNSIGNED_INT_10F_11F_11F_REV is accepted for type only if the GL version is 4.4 or higher.

@OpenGL_Version(OGLIntroducedIn.V4P3)
@OpenGL_Extension("GL_ARB_vertex_attrib_binding")
fn_glVertexAttribFormat glVertexAttribFormat;

See Also

glBindVertexBuffer, glVertexAttribBinding, glVertexAttribPointer, glVertexBindingDivisor, glVertexAttribPointer.

Meta