Class ARBShaderAtomicCounters
- java.lang.Object
-
- org.lwjgl.opengl.ARBShaderAtomicCounters
-
public class ARBShaderAtomicCounters extends java.lang.Object
Native bindings to the ARB_shader_atomic_counters extension.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
andGetActiveUniformsiv
.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
orBindBufferRange
.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 inOpenGL 4.2
.
-
-
Field Summary
-
Method Summary
All Methods Static Methods Concrete Methods 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.
-
-
-
Field Detail
-
GL_ATOMIC_COUNTER_BUFFER
Accepted by thetarget
parameter of BindBufferBase and BindBufferRange.
-
GL_ATOMIC_COUNTER_BUFFER_BINDING
Accepted by thepname
parameter of GetBooleani_v, GetIntegeri_v, GetFloati_v, GetDoublei_v, GetInteger64i_v, GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, GetDoublev, and GetActiveAtomicCounterBufferiv.
-
GL_ATOMIC_COUNTER_BUFFER_START, GL_ATOMIC_COUNTER_BUFFER_SIZE
Accepted by thepname
parameter of GetIntegeri_64v.
-
GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE, GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS, GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES, GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER, GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER, GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER, GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER, GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
Accepted by thepname
parameter of GetActiveAtomicCounterBufferiv.
-
GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS, GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS, GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS, GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS, GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS, GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, GL_MAX_GEOMETRY_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE, GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
-
GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
Accepted by thepname
parameter of GetProgramiv.
-
GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
Accepted by thepname
parameter of GetActiveUniformsiv.
-
GL_UNSIGNED_INT_ATOMIC_COUNTER
Returned inparams
by GetActiveUniform and GetActiveUniformsiv.
-
-
Method Detail
-
glGetActiveAtomicCounterBufferiv
public 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.- Parameters:
program
- the name of a program object for which the commandLinkProgram
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 value
-
glGetActiveAtomicCounterBufferi
public static int glGetActiveAtomicCounterBufferi(int program, int bufferIndex, int pname)
Obtains information about the set of active atomic counter buffers for a program.- Parameters:
program
- the name of a program object for which the commandLinkProgram
has been issued in the pastbufferIndex
- the index of an active atomic counter bufferpname
- the parameter to query. One of:
-
glGetActiveAtomicCounterBufferiv
public static void glGetActiveAtomicCounterBufferiv(int program, int bufferIndex, int pname, int[] params)
Array version of:GetActiveAtomicCounterBufferiv
-
-