com.jogamp.opengl.util
Class GLReadBufferUtil

java.lang.Object
  extended by 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 Summary
GLReadBufferUtil(boolean alpha, boolean write2Texture)
           
GLReadBufferUtil(GLPixelBuffer.GLPixelBufferProvider pixelBufferProvider, boolean alpha, boolean write2Texture)
           
 
Method Summary
 void dispose(GL gl)
           
 GLPixelStorageModes getGLPixelStorageModes()
           
 GLPixelBuffer getPixelBuffer()
          Returns the GLPixelBuffer, created and filled by #readPixels(GLAutoDrawable, boolean).
 GLPixelBuffer.GLPixelBufferProvider getPixelBufferProvider()
          Returns the GLPixelBuffer.GLPixelBufferProvider used by this instance.
 Texture getTexture()
           
 TextureData getTextureData()
           
 boolean hasAlpha()
           
 boolean isValid()
           
 boolean readPixels(GL gl, boolean mustFlipVertically)
          Read the drawable's pixels to TextureData and Texture, if requested at construction.
 boolean readPixels(GL gl, int inX, int inY, int[] ioWidth, int[] ioHeight, boolean mustFlipVertically)
          Read the drawable's pixels to TextureData and Texture, if requested at construction.
 void rewindPixelBuffer()
          rewind the raw pixel ByteBuffer
 void write(File dest)
          Write the TextureData filled by #readPixels(GLAutoDrawable, boolean) to file
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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 Detail

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:
GLReadBufferUtil(boolean, boolean)

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:
GLReadBufferUtil(boolean, boolean)

readPixels

public boolean readPixels(GL gl,
                          int inX,
                          int inY,
                          int[] ioWidth,
                          int[] ioHeight,
                          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
ioWidth - readPixel width
ioHeight - readPixel 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:
GLReadBufferUtil(boolean, boolean)

dispose

public void dispose(GL gl)


Copyright 2010 JogAmp Community.