Package com.jogamp.opengl.util
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 Summary
Constructors Constructor Description GLReadBufferUtil(boolean requestAlpha, boolean write2Texture)
Using the defaultGLPixelBuffer
:GLPixelBuffer.defaultProviderNoRowStride
.GLReadBufferUtil(GLPixelBuffer.GLPixelBufferProvider pixelBufferProvider, boolean requestAlpha, boolean write2Texture)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose(GL gl)
GLPixelStorageModes
getGLPixelStorageModes()
GLPixelBuffer
getPixelBuffer()
Returns theGLPixelBuffer
, created and filled by#readPixels(GLAutoDrawable, boolean)
.GLPixelBuffer.GLPixelBufferProvider
getPixelBufferProvider()
Returns theGLPixelBuffer.GLPixelBufferProvider
used by this instance.Texture
getTexture()
TextureData
getTextureData()
boolean
hasAlpha()
Returns true if the OpenGL read data contains alpha.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 inWidth, int inHeight, boolean mustFlipVertically)
Read the drawable's pixels to TextureData and Texture, if requested at construction.void
rewindPixelBuffer()
rewind the raw pixel ByteBuffervoid
write(File dest)
Write the TextureData filled by#readPixels(GLAutoDrawable, boolean)
to file
-
-
-
Constructor Detail
-
GLReadBufferUtil
public GLReadBufferUtil(boolean requestAlpha, boolean write2Texture)
Using the defaultGLPixelBuffer
:GLPixelBuffer.defaultProviderNoRowStride
.- Parameters:
requestAlpha
- true for RGBA readPixels, otherwise RGB readPixels. Disclaimer:hasAlpha()
==true maybe forced depending on the usedGLPixelBuffer.GLPixelBufferProvider
, i.e. on ES platforms, when callingreadPixels
.write2Texture
- true if readPixel's TextureData shall be written to a 2d Texture
-
GLReadBufferUtil
public GLReadBufferUtil(GLPixelBuffer.GLPixelBufferProvider pixelBufferProvider, boolean requestAlpha, boolean write2Texture)
- Parameters:
pixelBufferProvider
- customGLPixelBuffer
requestAlpha
- true for RGBA readPixels, otherwise RGB readPixels. Disclaimer:hasAlpha()
==true maybe forced depending on the usedGLPixelBuffer.GLPixelBufferProvider
, i.e. on ES platforms, when callingreadPixels
.write2Texture
- true if readPixel's TextureData shall be written to a 2d Texture
-
-
Method Detail
-
getPixelBufferProvider
public GLPixelBuffer.GLPixelBufferProvider getPixelBufferProvider()
Returns theGLPixelBuffer.GLPixelBufferProvider
used by this instance.
-
isValid
public boolean isValid()
-
hasAlpha
public boolean hasAlpha()
Returns true if the OpenGL read data contains alpha. This value is lazily determined after the first call ofreadPixels
-
getGLPixelStorageModes
public GLPixelStorageModes getGLPixelStorageModes()
-
getPixelBuffer
public GLPixelBuffer getPixelBuffer()
Returns theGLPixelBuffer
, 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 drawableGLDrawable.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 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 offsetinY
- readPixel y offsetinWidth
- optional readPixel width value, used if [1 .. drawable.width], otherwise using drawable.widthinHeight
- optional readPixel height, used if [1 .. drawable.height], otherwise using drawable.heightmustFlipVertically
- indicates whether to flip the data vertically or not. The context's drawableGLDrawable.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)
-
-