Class ARBShaderAtomicCounters

java.lang.Object
org.lwjgl.opengl.ARBShaderAtomicCounters

public class ARBShaderAtomicCounters extends 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 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.

  • Field Details

    • GL_ATOMIC_COUNTER_BUFFER

      public static final int GL_ATOMIC_COUNTER_BUFFER
      Accepted by the target parameter of BindBufferBase and BindBufferRange.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_BINDING

      public static final 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.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_START

      public static final int GL_ATOMIC_COUNTER_BUFFER_START
      Accepted by the pname parameter of GetIntegeri_64v.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_SIZE

      public static final int GL_ATOMIC_COUNTER_BUFFER_SIZE
      Accepted by the pname parameter of GetIntegeri_64v.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE

      public static final int GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS

      public static final int GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES

      public static final int GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER

      public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER

      public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER

      public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER

      public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER

      public static final int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
      Accepted by the pname parameter of GetActiveAtomicCounterBufferiv.
      See Also:
    • GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS

      public static final int GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS

      public static final int GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS

      public static final int GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS

      public static final int GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS

      public static final int GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS

      public static final int GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_VERTEX_ATOMIC_COUNTERS

      public static final int GL_MAX_VERTEX_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS

      public static final int GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS

      public static final int GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_GEOMETRY_ATOMIC_COUNTERS

      public static final int GL_MAX_GEOMETRY_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_FRAGMENT_ATOMIC_COUNTERS

      public static final int GL_MAX_FRAGMENT_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_COMBINED_ATOMIC_COUNTERS

      public static final int GL_MAX_COMBINED_ATOMIC_COUNTERS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE

      public static final int GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS

      public static final int GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
      Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
      See Also:
    • GL_ACTIVE_ATOMIC_COUNTER_BUFFERS

      public static final int GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
      Accepted by the pname parameter of GetProgramiv.
      See Also:
    • GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX

      public static final int GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
      Accepted by the pname parameter of GetActiveUniformsiv.
      See Also:
    • GL_UNSIGNED_INT_ATOMIC_COUNTER

      public static final int GL_UNSIGNED_INT_ATOMIC_COUNTER
      Returned in params by GetActiveUniform and GetActiveUniformsiv.
      See Also:
  • Method Details