Class OESTextureBuffer

java.lang.Object
org.lwjgl.opengles.OESTextureBuffer

public class OESTextureBuffer extends Object
Native bindings to the OES_texture_buffer extension.

This extension provides a new texture type, called a buffer texture. Buffer textures are one-dimensional arrays of texels whose storage comes from an attached buffer object. When a buffer object is bound to a buffer texture, a format is specified, and the data in the buffer object is treated as an array of texels of the specified format.

The use of a buffer object to provide storage allows the texture data to be specified in a number of different ways: via buffer object loads (BufferData), direct CPU writes (MapBuffer), or framebuffer readbacks to pixel buffer objects (ReadPixels). A buffer object can also be loaded by transform feedback, which captures selected transformed attributes of vertices processed by the GL. Several of these mechanisms do not require an extra data copy, which would be required when using conventional TexImage-like entry points.

Buffer textures do not support mipmapping, texture lookups with normalized floating-point texture coordinates, and texture filtering of any sort. They can be accessed via single texel fetch operations in programmable shaders, using a new sampler type and texel fetch function, and access can be controlled using the same memory barrier operations as for other texture types.

Buffer textures are treated as (potentially large) one-dimensional textures; the maximum texture size supported for buffer textures in the initial implementation of this extension is 227 texels (note that this extension only guarantees support for buffer textures with 216 texels, but we expect most implementations to exceed that substantially). When a buffer object is attached to a buffer texture, a size is not specified; rather, the number of texels in the texture is taken by dividing the size of the buffer object by the size of each texel.

This extension also allows a sub-range of the buffer's data store to be attached to a texture. This can be used, for example, to allow multiple buffer textures to be backed by independent sub-ranges of the same buffer object, or for different sub-ranges of a single buffer object to be used for different purposes.

Requires GLES 3.1.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points).
    static final int
    (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points).
    static final int
    (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points).
    static final int
    (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points).
    static final int
    Accepted by the pname parameters of GetBooleanv, GetFloatv, and GetIntegerv.
    static final int
    Accepted by the pname parameter of GetTexLevelParameter.
    static final int
    Accepted by the target parameter of BindBuffer, BufferData, BufferSubData, MapBufferRange, BindTexture, UnmapBuffer, GetBufferParameteriv, GetBufferPointerv, TexBufferOES, and TexBufferRangeOES.
    static final int
    Accepted by the pname parameter of GetTexLevelParameter.
    static final int
    Accepted by the pname parameter of GetTexLevelParameter.
    static final int
    (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points).
    static final int
    (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points).
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    glTexBufferOES(int target, int internalformat, int buffer)
     
    static void
    glTexBufferRangeOES(int target, int internalformat, int buffer, long offset, long size)
     

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • GL_TEXTURE_BUFFER_OES

      public static final int GL_TEXTURE_BUFFER_OES
      Accepted by the target parameter of BindBuffer, BufferData, BufferSubData, MapBufferRange, BindTexture, UnmapBuffer, GetBufferParameteriv, GetBufferPointerv, TexBufferOES, and TexBufferRangeOES.
      See Also:
    • GL_TEXTURE_BUFFER_BINDING_OES

      public static final int GL_TEXTURE_BUFFER_BINDING_OES
      Accepted by the pname parameters of GetBooleanv, GetFloatv, and GetIntegerv.
      See Also:
    • GL_SAMPLER_BUFFER_OES

      public static final int GL_SAMPLER_BUFFER_OES
      (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points). MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B TEXTURE_BINDING_BUFFER_OES 0x8C2C TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F Returned in the type parameter of GetActiveUniform, the params parameter of GetActiveUniformsiv, and the params parameter of GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface.
      See Also:
    • GL_INT_SAMPLER_BUFFER_OES

      public static final int GL_INT_SAMPLER_BUFFER_OES
      (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points). MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B TEXTURE_BINDING_BUFFER_OES 0x8C2C TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F Returned in the type parameter of GetActiveUniform, the params parameter of GetActiveUniformsiv, and the params parameter of GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface.
      See Also:
    • GL_UNSIGNED_INT_SAMPLER_BUFFER_OES

      public static final int GL_UNSIGNED_INT_SAMPLER_BUFFER_OES
      (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points). MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B TEXTURE_BINDING_BUFFER_OES 0x8C2C TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F Returned in the type parameter of GetActiveUniform, the params parameter of GetActiveUniformsiv, and the params parameter of GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface.
      See Also:
    • GL_IMAGE_BUFFER_OES

      public static final int GL_IMAGE_BUFFER_OES
      (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points). MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B TEXTURE_BINDING_BUFFER_OES 0x8C2C TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F Returned in the type parameter of GetActiveUniform, the params parameter of GetActiveUniformsiv, and the params parameter of GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface.
      See Also:
    • GL_INT_IMAGE_BUFFER_OES

      public static final int GL_INT_IMAGE_BUFFER_OES
      (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points). MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B TEXTURE_BINDING_BUFFER_OES 0x8C2C TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F Returned in the type parameter of GetActiveUniform, the params parameter of GetActiveUniformsiv, and the params parameter of GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface.
      See Also:
    • GL_UNSIGNED_INT_IMAGE_BUFFER_OES

      public static final int GL_UNSIGNED_INT_IMAGE_BUFFER_OES
      (note that this token name is an alias for TEXTURE_BUFFER_OES, and is used for naming consistency with queries for the buffers bound to other buffer binding points). MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B TEXTURE_BINDING_BUFFER_OES 0x8C2C TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F Returned in the type parameter of GetActiveUniform, the params parameter of GetActiveUniformsiv, and the params parameter of GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface.
      See Also:
    • GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES

      public static final int GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES
      Accepted by the pname parameter of GetTexLevelParameter.
      See Also:
    • GL_TEXTURE_BUFFER_OFFSET_OES

      public static final int GL_TEXTURE_BUFFER_OFFSET_OES
      Accepted by the pname parameter of GetTexLevelParameter.
      See Also:
    • GL_TEXTURE_BUFFER_SIZE_OES

      public static final int GL_TEXTURE_BUFFER_SIZE_OES
      Accepted by the pname parameter of GetTexLevelParameter.
      See Also:
  • Method Details

    • glTexBufferOES

      public static void glTexBufferOES(int target, int internalformat, int buffer)
    • glTexBufferRangeOES

      public static void glTexBufferRangeOES(int target, int internalformat, int buffer, long offset, long size)