2011-2014
Khronos Group.
glGetActiveAtomicCounterBufferiv
3G

# glGetActiveAtomicCounterBufferiv

retrieve information about the set of active atomic counter buffers for a program

## C Specification

                    void glGetActiveAtomicCounterBufferiv
                    Gluint program
                    GLuint bufferIndex
                    GLenum pname
                    GLint *params

## Parameters

`program`

  The name of a program object from which to retrieve information.

`bufferIndex`

  Specifies index of an active atomic counter buffer.

`pname`

  Specifies which parameter of the atomic counter buffer to retrieve.

`params`

  Specifies the address of a variable into which to write the retrieved information.

## Description

`glGetActiveAtomicCounterBufferiv` retrieves information about the set of active atomic counter buffers for a program object. `program` is the name of a program object for which the command glLinkProgram has been issued in the past. It is not necessary for `program` to have been linked successfully. The link may have failed because the number of active atomic counters exceeded the limits.

`bufferIndex` specifies the index of an active atomic counter buffer and must be in the range zero to the value of `GL_ACTIVE_ATOMIC_COUNTER_BUFFERS` minus one. The value of `GL_ACTIVE_ATOMIC_COUNTER_BUFFERS` for `program` indicates the number of active atomic counter buffer and can be queried with glGetProgram.

If no error occurs, the parameter(s) specified by `pname` are returned in `params`. If an error is generated, the contents of `params` are not modified.

If `pname` is `GL_ATOMIC_COUNTER_BUFFER_BINDING`, then the index of the counter buffer binding point associated with the active atomic counter buffer `bufferIndex` for `program` is returned.

If `pname` is `GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE`, then the implementation-dependent minimum total buffer object size, in basic machine units, required to hold all active atomic counters in the atomic counter binding point identified by `bufferIndex` is returned.

If `pname` is `GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS`, then the number of active atomic counters for the atomic counter buffer identified by `bufferIndex` is returned.

If `pname` is `GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES`, then a list of the active atomic counter indices for the atomic counter buffer identified by `bufferIndex` is returned. The number of elements that will be written into `params` is the value of `GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS` for `bufferIndex`.

If `pname` is `GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER`, `GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER`, or `GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER` then a boolean value indicating whether the atomic counter buffer identified by `bufferIndex` is referenced by the vertex, fragment or compute processing stages of `program`, respectively, is returned.

## Errors

`GL_INVALID_VALUE` is generated if `program` is not the name of a program object for which glLinkProgram has been called in the past.

`GL_INVALID_VALUE` is generated if `bufferIndex` is greater than or equal to the value of `GL_ACTIVE_ATOMIC_COUNTER_BUFFERS` for `program`.

`GL_INVALID_ENUM` is generated if `pname` is not one of the accepted tokens.

## API Version Support

`glGetActiveAtomicCounterBufferiv`

## See Also

glGetProgram, glGetUniformLocation

## Copyright

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