2012-2014
Khronos Group
glShaderStorageBlockBinding
3G

# glShaderStorageBlockBinding

change an active shader storage block binding

## C Specification

                    void glShaderStorageBlockBinding
                    GLuint program
                    GLuint storageBlockIndex
                    GLuint storageBlockBinding

## Parameters

`program`

  The name of the program containing the block whose binding to change.

`storageBlockIndex`

  The index storage block within the program.

`storageBlockBinding`

  The index storage block binding to associate with the specified storage block.

## Description

`glShaderStorageBlockBinding`, changes the active shader storage block with an assigned index of `storageBlockIndex` in program object `program`. `storageBlockIndex` must be an active shader storage block index in `program`. `storageBlockBinding` must be less than the value of `GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`. If successful, `glShaderStorageBinding` specifies that `program` will use the data store of the buffer object bound to the binding point `storageBlockBinding` to read and write the values of the buffer variables in the shader storage block identified by `storageBlockIndex`.

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

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

## Associated Gets

glGet with arguments `GL_SHADER_STORAGE_BUFFER_BINDING`, `GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`, `GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS`, `GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS`, `GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS`, `GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS`, `GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`, or `GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES`.

## API Version Support

`glShaderStorageBlockBinding`

## Copyright

Copyright 2012-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/.