## Name

glVertexAttribBinding — associate a vertex attribute and a vertex buffer binding for a vertex array object

## C Specification

`void glVertexAttribBinding(` | GLuint attribindex,
| GLuint bindingindex`)`;

`void glVertexArrayAttribBinding(` | GLuint vaobj,
| GLuint attribindex,
| GLuint bindingindex`)`;

## Parameters

`vaobj`

  Specifies the name of the vertex array object for `glVertexArrayAttribBinding`.

`attribindex`

  The index of the attribute to associate with a vertex buffer binding.

`bindingindex`

  The index of the vertex buffer binding with which to associate the generic vertex attribute.

## Description

`glVertexAttribBinding` and `glVertexArrayAttribBinding` establishes an association between the generic vertex attribute of a vertex array object whose index is given by `attribindex`, and a vertex buffer binding whose index is given by `bindingindex`. For `glVertexAttribBinding`, the vertex array object affected is that currently bound. For `glVertexArrayAttribBinding`, `vaobj` is the name of the vertex array object.

`attribindex` must be less than the value of `GL_MAX_VERTEX_ATTRIBS` and `bindingindex` must be less than the value of `GL_MAX_VERTEX_ATTRIB_BINDINGS`.

## Errors

`GL_INVALID_OPERATION` is generated by `glVertexAttribBinding` if no vertex array object is bound.

`GL_INVALID_OPERATION` is generated by `glVertexArrayAttribBinding` if `vaobj` is not the name of an existing vertex array object.

`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 `bindingindex` is greater than or equal to the value of `GL_MAX_VERTEX_ATTRIB_BINDINGS`.

## Associated Gets

glGet with arguments `GL_MAX_VERTEX_ATTRIB_BINDINGS`, `GL_VERTEX_BINDING_DIVISOR`.

## Version Support

| 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
`glVertexArrayAttribBinding` | - | - | - | - | - | - | - | - | - | - | - | ✔
`glVertexAttribBinding` | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔

## See Also

glBindVertexBuffer, glVertexAttribFormat, glVertexBindingDivisor, glVertexAttribPointer.

## 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/.