com.metsci.glimpse.gl.texture
Interface Texture

All Known Subinterfaces:
DrawableTexture
All Known Implementing Classes:
AbstractTexture, ByteTextureProjected2D, ColorTexture1D, ColorTextureProjected2D, FloatTexture1D, FloatTexture2D, FloatTextureProjected2D, LuminanceTextureProjected2D, ShortTextureProjected2D, TextureProjected2D

public interface Texture

Wrapper interface for an OpenGL texture. Provides methods for getting its size, marking it as modified, binding it to a texture unit, and disposing of it properly.

Author:
osborn

Method Summary
 void dispose(javax.media.opengl.GLContext context)
          Disposes all Java heap and GPU resources associated with this texture.
 int getDimensionSize(int n)
          Given a dimension index (0, 1, or 2) returns the number of data elements in the texture along that dimension.
 int getNumDimension()
          Returns whether the texture is a 1-dimensional, 2-dimensional, or 3-dimensional texture.
 boolean isDirty()
          Indicates whether makeDirty() has been called.
 boolean isResident(javax.media.opengl.GL gl)
          OpenGL implementations may swap store a "working set" of textures in a very fast cache of texture memory.
 void makeDirty()
          Most Texture implementations are backed by a buffer on the heap which acts as a staging area for data changes to the texture.
 boolean prepare(javax.media.opengl.GL gl, int texUnit)
          Allocates space for the texture in GPU texture memory (once, if this is the first time that prepare( GL, int) has been called), copies texture data from the heap into GPU memory (if isDirty() is true).
 

Method Detail

makeDirty

void makeDirty()
Most Texture implementations are backed by a buffer on the heap which acts as a staging area for data changes to the texture. Calling makeDirty() indicates that the contents of this buffer has changed and the new data should be copied to the GPU.


isDirty

boolean isDirty()
Indicates whether makeDirty() has been called. Once makeDirty() is called, isDirty() will return true until prepare( GL, int ) is called and the tecture data is copied to the GPU.

Returns:
whether the cached texture data has changed

getNumDimension

int getNumDimension()
Returns whether the texture is a 1-dimensional, 2-dimensional, or 3-dimensional texture.

Returns:
1, 2, or 3 depending on the dimension of the texture

getDimensionSize

int getDimensionSize(int n)
Given a dimension index (0, 1, or 2) returns the number of data elements in the texture along that dimension.

Parameters:
n - the texture dimension to query
Returns:
the size of the queried dimension

isResident

boolean isResident(javax.media.opengl.GL gl)
OpenGL implementations may swap store a "working set" of textures in a very fast cache of texture memory. Other textures are swapped out and may take longer to access and display. Calling isResident( GL ) indicates whether this texture is resident in texture memory.

Parameters:
gl - a GL handle for the active GLContext
Returns:
whether this texture is resident in texture memory

prepare

boolean prepare(javax.media.opengl.GL gl,
                int texUnit)
Allocates space for the texture in GPU texture memory (once, if this is the first time that prepare( GL, int) has been called), copies texture data from the heap into GPU memory (if isDirty() is true). This texture is then made active on the provided texture unit (using glActiveTexture()) and bound as the current GL_TEXTURE_1D, GL_TEXTURE_2D, or GL_TEXTURE_3D as appropriate based on getNumDimension(). Once this is complete, the texture is ready to be used by a GlimpsePainter.

Parameters:
gl - a GL handle for the active GLContext
texUnit - the texture unit to bind to this texture
Returns:
whether the preparation succeeded

dispose

void dispose(javax.media.opengl.GLContext context)
Disposes all Java heap and GPU resources associated with this texture.

Parameters:
context - the active GLContext


Copyright © 2012 Metron, Inc.. All Rights Reserved.