public abstract class TextureProjected2D extends Object implements DrawableTexture
Modifier and Type | Field and Description |
---|---|
static int |
BYTES_PER_FLOAT |
static int |
NUM_DIMENSIONS |
static int |
VERTICES_PER_QUAD |
Constructor and Description |
---|
TextureProjected2D(int dataSizeX,
int dataSizeY,
boolean useVertexZCoord) |
Modifier and Type | Method and Description |
---|---|
void |
dispose(javax.media.opengl.GLContext context)
Disposes all Java heap and GPU resources associated with this texture.
|
void |
draw(javax.media.opengl.GL2 gl,
int texUnit) |
double |
getDataValue(double coordX,
double coordY) |
float |
getDataValue(int indexX,
int indexY) |
int |
getDimensionSize(int n)
Given a dimension index (0, 1, or 2) returns the number of data
elements in the texture along that dimension.
|
static int |
getMaxGLTextureSize(javax.media.opengl.GL gl) |
int |
getNumDimension()
Returns whether the texture is a 1-dimensional, 2-dimensional,
or 3-dimensional texture.
|
Projection |
getProjection() |
boolean |
isDirty()
Indicates whether
makeDirty() has been called. |
boolean |
isResident(javax.media.opengl.GL2 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.
|
void |
makeProjectionDirty() |
boolean |
prepare(javax.media.opengl.GL2 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). |
void |
resize(int dataSizeX,
int dataSizeY)
Resizes this two dimensional texture to the given new size.
|
void |
setProjection(Projection projection) |
public static final int NUM_DIMENSIONS
public static final int VERTICES_PER_QUAD
public static final int BYTES_PER_FLOAT
public TextureProjected2D(int dataSizeX, int dataSizeY, boolean useVertexZCoord)
public double getDataValue(double coordX, double coordY)
public float getDataValue(int indexX, int indexY)
public void makeProjectionDirty()
public void makeDirty()
Texture
makeDirty()
indicates that the
contents of this buffer has changed and the new data should
be copied to the GPU.public boolean isDirty()
Texture
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.public int getNumDimension()
Texture
getNumDimension
in interface Texture
public int getDimensionSize(int n)
Texture
getDimensionSize
in interface Texture
n
- the texture dimension to querypublic boolean prepare(javax.media.opengl.GL2 gl, int texUnit)
Texture
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
.public void draw(javax.media.opengl.GL2 gl, int texUnit)
draw
in interface DrawableTexture
public void dispose(javax.media.opengl.GLContext context)
Texture
public static int getMaxGLTextureSize(javax.media.opengl.GL gl)
public boolean isResident(javax.media.opengl.GL2 gl)
Texture
isResident( GL )
indicates whether this texture is resident in texture memory.isResident
in interface Texture
gl
- a GL handle for the active GLContextpublic void resize(int dataSizeX, int dataSizeY)
dataSizeX
- the number of texture elements in the 1st, or x, dimensiondataSizeY
- the number of texture elements in the 2nd, or y, dimensionpublic void setProjection(Projection projection)
public Projection getProjection()
Copyright © 2013 Metron, Inc.. All rights reserved.