Class GLReadBufferUtil

java.lang.Object
com.jogamp.opengl.util.GLReadBufferUtil
Direct Known Subclasses:
AWTGLReadBufferUtil

public class GLReadBufferUtil extends Object
Utility to read out the current FB to TextureData, optionally writing the data back to a texture object.

May be used directly to write the TextureData to file (screenshot).

  • Constructor Details

    • GLReadBufferUtil

      public GLReadBufferUtil(boolean alpha, boolean write2Texture)
      Parameters:
      alpha - true for RGBA readPixels, otherwise RGB readPixels. Disclaimer: Alpha maybe forced on ES platforms!
      write2Texture - true if readPixel's TextureData shall be written to a 2d Texture
    • GLReadBufferUtil

      public GLReadBufferUtil(GLPixelBuffer.GLPixelBufferProvider pixelBufferProvider, boolean alpha, boolean write2Texture)
  • Method Details

    • getPixelBufferProvider

      public GLPixelBuffer.GLPixelBufferProvider getPixelBufferProvider()
      Returns the GLPixelBuffer.GLPixelBufferProvider used by this instance.
    • isValid

      public boolean isValid()
    • hasAlpha

      public boolean hasAlpha()
    • getGLPixelStorageModes

      public GLPixelStorageModes getGLPixelStorageModes()
    • getPixelBuffer

      public GLPixelBuffer getPixelBuffer()
      Returns the GLPixelBuffer, created and filled by #readPixels(GLAutoDrawable, boolean).
    • rewindPixelBuffer

      public void rewindPixelBuffer()
      rewind the raw pixel ByteBuffer
    • getTextureData

      public TextureData getTextureData()
      Returns:
      the resulting TextureData, filled by #readPixels(GLAutoDrawable, boolean)
    • getTexture

      public Texture getTexture()
      Returns:
      the Texture object filled by #readPixels(GLAutoDrawable, boolean), if this instance writes to a 2d Texture, otherwise null.
      See Also:
    • write

      public void write(File dest)
      Write the TextureData filled by #readPixels(GLAutoDrawable, boolean) to file
    • readPixels

      public boolean readPixels(GL gl, boolean mustFlipVertically)
      Read the drawable's pixels to TextureData and Texture, if requested at construction.
      Parameters:
      gl - the current GL context object. It's read drawable is being used as the pixel source.
      mustFlipVertically - indicates whether to flip the data vertically or not. The context's drawable GLDrawable.isGLOriented() state is taken into account. Vertical flipping is propagated to TextureData and handled in a efficient manner there (TextureCoordinates and TextureIO writer).
      See Also:
    • readPixels

      public boolean readPixels(GL gl, int inX, int inY, int inWidth, int inHeight, boolean mustFlipVertically)
      Read the drawable's pixels to TextureData and Texture, if requested at construction.
      Parameters:
      gl - the current GL context object. It's read drawable is being used as the pixel source.
      inX - readPixel x offset
      inY - readPixel y offset
      inWidth - optional readPixel width value, used if [1 .. drawable.width], otherwise using drawable.width
      inHeight - optional readPixel height, used if [1 .. drawable.height], otherwise using drawable.height
      mustFlipVertically - indicates whether to flip the data vertically or not. The context's drawable GLDrawable.isGLOriented() state is taken into account. Vertical flipping is propagated to TextureData and handled in a efficient manner there (TextureCoordinates and TextureIO writer).
      See Also:
    • dispose

      public void dispose(GL gl)