Light | Dark

# docs.GL

OpenGL 4
OpenGL 3
OpenGL ES 3

# glUniformBlockBinding

## Name

glUniformBlockBinding — assign a binding point to an active uniform block

## C Specification

`void glUniformBlockBinding(` | GLuint program,
| GLuint uniformBlockIndex,
| GLuint uniformBlockBinding`)`;

## Parameters

`program`

  The name of a program object containing the active uniform block whose binding to assign.

`uniformBlockIndex`

  The index of the active uniform block within `program` whose binding to assign.

`uniformBlockBinding`

  Specifies the binding point to which to bind the uniform block with index `uniformBlockIndex` within `program`.

## Description

Binding points for active uniform blocks are assigned using `glUniformBlockBinding`. Each of a program's active uniform blocks has a corresponding uniform buffer binding point. `program` is the name of a program object for which the command glLinkProgram has been issued in the past.

If successful, `glUniformBlockBinding` specifies that `program` will use the data store of the buffer object bound to the binding point `uniformBlockBinding` to extract the values of the uniforms in the uniform block identified by `uniformBlockIndex`.

When a program object is linked or re-linked, the uniform buffer object binding point assigned to each of its active uniform blocks is reset to zero.

## Errors

`GL_INVALID_VALUE` is generated if `uniformBlockIndex` is not an active uniform block index of `program`.

`GL_INVALID_VALUE` is generated if `uniformBlockBinding` is greater than or equal to the value of `GL_MAX_UNIFORM_BUFFER_BINDINGS`.

`GL_INVALID_VALUE` is generated if `program` is not the name of a program object generated by the GL.

## Notes

`glUniformBlockBinding` is available only if the GL version is 3.1 or greater.

## Associated Gets

glGetActiveUniformBlock with argument `GL_UNIFORM_BLOCK_BINDING`

## 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
`glUniformBlockBinding` | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glLinkProgram, glBindBufferBase, glBindBufferRange, glGetActiveUniformBlock

## Copyright

Copyright © 2010-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. https://opencontent.org/openpub/.

Think you can improve this page? Edit this page on GitHub.