Class ARBTextureView

java.lang.Object
org.lwjgl.opengl.ARBTextureView

public class ARBTextureView extends Object
Native bindings to the ARB_texture_view extension.

This extension allows a texture's data store to be "viewed" in multiple ways, either reinterpreting the data format/type as a different format/type with the same element size, or by clamping the mipmap level range or array slice range.

The goals of this extension are to avoid having these alternate views become shared mutable containers of shared mutable objects, and to add the views to the API in a minimally invasive way.

No new object types are added. Conceptually, a texture object is split into the following parts:

  • A data store holding texel data.
  • State describing which portions of the data store to use, and how to interpret the data elements.
  • An embedded sampler object.
  • Various other texture parameters.

With this extension, multiple textures can share a data store and have different state describing which portions of the data store to use and how to interpret the data elements. The data store is refcounted and not destroyed until the last texture sharing it is deleted.

This extension leverages the ARB_texture_storage concept of an "immutable texture". Views can only be created of textures created with TexStorage.

Requires OpenGL 4.2 or ARB_texture_storage. Promoted to core in OpenGL 4.3.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
    static final int
    Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
    static final int
    Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
    static final int
    Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
    static final int
    Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    glTextureView(int texture, int target, int origtexture, int internalformat, int minlevel, int numlevels, int minlayer, int numlayers)
    Initializes a texture as a data alias of another texture's data store.

    Methods inherited from class java.lang.Object

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

    • GL_TEXTURE_VIEW_MIN_LEVEL

      public static final int GL_TEXTURE_VIEW_MIN_LEVEL
      Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
      See Also:
    • GL_TEXTURE_VIEW_NUM_LEVELS

      public static final int GL_TEXTURE_VIEW_NUM_LEVELS
      Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
      See Also:
    • GL_TEXTURE_VIEW_MIN_LAYER

      public static final int GL_TEXTURE_VIEW_MIN_LAYER
      Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
      See Also:
    • GL_TEXTURE_VIEW_NUM_LAYERS

      public static final int GL_TEXTURE_VIEW_NUM_LAYERS
      Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
      See Also:
    • GL_TEXTURE_IMMUTABLE_LEVELS

      public static final int GL_TEXTURE_IMMUTABLE_LEVELS
      Accepted by the pname parameters of GetTexParameterfv and GetTexParameteriv.
      See Also:
  • Method Details

    • glTextureView

      public static void glTextureView(int texture, int target, int origtexture, int internalformat, int minlevel, int numlevels, int minlayer, int numlayers)
      Initializes a texture as a data alias of another texture's data store.
      Parameters:
      texture - the texture object to be initialized as a view
      target - the target to be used for the newly initialized texture
      origtexture - the name of a texture object of which to make a view
      internalformat - the internal format for the newly created view
      minlevel - the lowest level of detail of the view
      numlevels - the number of levels of detail to include in the view
      minlayer - the index of the first layer to include in the view
      numlayers - the number of layers to include in the view