public class ARBShaderAtomicCounters
extends java.lang.Object
This extension provides a set of atomic counters.
This extension provides GLSL built-in functions to query and increment/decrement these atomic counters.
This enables a shader to write to unique offsets (append to a buffer object) or read from unique offsets (consume from a buffer object).
Opaque handles to atomic counters are declared at global scope and are qualified with the uniform qualifier.
Unlike other user-defined uniforms declared at global scope, they take NO storage from the default partition, they have NO location, and they may NOT be set with the Uniform* commands. Atomic counters may also NOT be grouped into uniform blocks.
Active atomic counters can be discovered by the commands GetUniformIndices, GetActiveUniformName, GetActiveUniform and
GetActiveUniformsiv.
Like samplers, the opaque handles of the atomic counters and are ONLY used in some GLSL built-in functions.
The atomic counters pointed to by the opaque handles are bound to buffer binding points and buffer offsets through the layout qualifiers in the shading language, or they are implicitly assigned by the compiler.
Through the OpenGL API, buffer objects may be bound to these binding points with BindBufferBase or BindBufferRange.
The contents of the atomic counters are stored in the buffer objects. The contents of atomic counters may be set and queried with buffer object manipulation functions (e.g. BufferData, BufferSubData, MapBuffer or MapBufferRange).
Requires OpenGL 3.0. Promoted to core in OpenGL 4.2.
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetProgramiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER
Accepted by the
target parameter of BindBufferBase and BindBufferRange. |
static int |
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_BINDING
Accepted by the
pname parameter of GetBooleani_v, GetIntegeri_v, GetFloati_v, GetDoublei_v, GetInteger64i_v, GetBooleanv, GetIntegerv,
GetInteger64v, GetFloatv, GetDoublev, and GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
Accepted by the
pname parameter of GetActiveAtomicCounterBufferiv. |
static int |
GL_ATOMIC_COUNTER_BUFFER_SIZE
Accepted by the
pname parameter of GetIntegeri_64v. |
static int |
GL_ATOMIC_COUNTER_BUFFER_START
Accepted by the
pname parameter of GetIntegeri_64v. |
static int |
GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_COMBINED_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_FRAGMENT_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_GEOMETRY_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_MAX_VERTEX_ATOMIC_COUNTERS
Accepted by the
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev. |
static int |
GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
Accepted by the
pname parameter of GetActiveUniformsiv. |
static int |
GL_UNSIGNED_INT_ATOMIC_COUNTER
Returned in
params by GetActiveUniform and GetActiveUniformsiv. |
| Modifier and Type | Method and Description |
|---|---|
static int |
glGetActiveAtomicCounterBufferi(int program,
int bufferIndex,
int pname)
Obtains information about the set of active atomic counter buffers for a program.
|
static void |
glGetActiveAtomicCounterBufferiv(int program,
int bufferIndex,
int pname,
int[] params)
Array version of:
GetActiveAtomicCounterBufferiv |
static void |
glGetActiveAtomicCounterBufferiv(int program,
int bufferIndex,
int pname,
java.nio.IntBuffer params)
Obtains information about the set of active atomic counter buffers for a program.
|
static void |
nglGetActiveAtomicCounterBufferiv(int program,
int bufferIndex,
int pname,
long params)
Unsafe version of:
GetActiveAtomicCounterBufferiv |
public static final int GL_ATOMIC_COUNTER_BUFFER
target parameter of BindBufferBase and BindBufferRange.public static final int GL_ATOMIC_COUNTER_BUFFER_BINDING
pname parameter of GetBooleani_v, GetIntegeri_v, GetFloati_v, GetDoublei_v, GetInteger64i_v, GetBooleanv, GetIntegerv,
GetInteger64v, GetFloatv, GetDoublev, and GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_START
pname parameter of GetIntegeri_64v.public static final int GL_ATOMIC_COUNTER_BUFFER_SIZE
pname parameter of GetIntegeri_64v.public static final int GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
pname parameter of GetActiveAtomicCounterBufferiv.public static final int GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_VERTEX_ATOMIC_COUNTERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_GEOMETRY_ATOMIC_COUNTERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_FRAGMENT_ATOMIC_COUNTERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_COMBINED_ATOMIC_COUNTERS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.public static final int GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
pname parameter of GetProgramiv.public static final int GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
pname parameter of GetActiveUniformsiv.public static final int GL_UNSIGNED_INT_ATOMIC_COUNTER
params by GetActiveUniform and GetActiveUniformsiv.public static void nglGetActiveAtomicCounterBufferiv(int program,
int bufferIndex,
int pname,
long params)
GetActiveAtomicCounterBufferivpublic static void glGetActiveAtomicCounterBufferiv(int program,
int bufferIndex,
int pname,
java.nio.IntBuffer params)
program - the name of a program object for which the command LinkProgram has been issued in the pastbufferIndex - the index of an active atomic counter bufferpname - the parameter to query. One of:params - a buffer in which to place the returned valuepublic static int glGetActiveAtomicCounterBufferi(int program,
int bufferIndex,
int pname)
program - the name of a program object for which the command LinkProgram has been issued in the pastbufferIndex - the index of an active atomic counter bufferpname - the parameter to query. One of:public static void glGetActiveAtomicCounterBufferiv(int program,
int bufferIndex,
int pname,
int[] params)
GetActiveAtomicCounterBufferivCopyright LWJGL. All Rights Reserved. License terms.