com.jme3.texture
Class Image

java.lang.Object
  extended by com.jme3.util.NativeObject
      extended by com.jme3.texture.Image
All Implemented Interfaces:
Savable, java.lang.Cloneable

public class Image
extends NativeObject
implements Savable

Image defines a data format for a graphical image. The image is defined by a format, a height and width, and the image data. The width and height must be greater than 0. The data is contained in a byte buffer, and should be packed before creation of the image object.


Nested Class Summary
static class Image.Format
           
 
Field Summary
protected  java.util.ArrayList<java.nio.ByteBuffer> data
           
protected  int depth
           
protected  java.lang.Object efficientData
           
protected  Image.Format format
           
protected  int height
           
protected  int[] mipMapSizes
           
protected  int multiSamples
           
protected  int width
           
 
Fields inherited from class com.jme3.util.NativeObject
handleRef, id, type, updateNeeded
 
Constructor Summary
  Image()
          Constructor instantiates a new Image object.
  Image(Image.Format format, int width, int height, java.nio.ByteBuffer data)
          Constructor instantiates a new Image object.
  Image(Image.Format format, int width, int height, java.nio.ByteBuffer data, int[] mipMapSizes)
          Constructor instantiates a new Image object.
  Image(Image.Format format, int width, int height, int depth, java.util.ArrayList<java.nio.ByteBuffer> data)
          Constructor instantiates a new Image object.
  Image(Image.Format format, int width, int height, int depth, java.util.ArrayList<java.nio.ByteBuffer> data, int[] mipMapSizes)
          Constructor instantiates a new Image object.
protected Image(int id)
           
 
Method Summary
 void addData(java.nio.ByteBuffer data)
           
 Image clone()
          This should create a deep clone.
 NativeObject createDestructableClone()
          Creates a shallow clone of this GL Object.
 void deleteObject(java.lang.Object rendererObject)
          Deletes the GL object from the GPU when it is no longer used.
 boolean equals(java.lang.Object other)
           
 java.util.List<java.nio.ByteBuffer> getData()
          getData returns the data for this image.
 java.nio.ByteBuffer getData(int index)
          getData returns the data for this image.
 int getDepth()
          getDepth returns the depth of this image (for 3d images).
 java.lang.Object getEfficentData()
           
 Image.Format getFormat()
          getFormat returns the image format for this image.
 int getHeight()
          getHeight returns the height of this image.
 int[] getMipMapSizes()
          Returns the mipmap sizes for this image.
 int getMultiSamples()
           
 int getWidth()
          getWidth returns the width of this image.
 int hashCode()
           
 boolean hasMipmaps()
          Returns whether the image data contains mipmaps.
 void read(JmeImporter e)
           
 void resetObject()
          Called when the GL context is restarted to reset all IDs.
 void setData(java.util.ArrayList<java.nio.ByteBuffer> data)
          setData sets the data that makes up the image.
 void setData(java.nio.ByteBuffer data)
          setData sets the data that makes up the image.
 void setData(int index, java.nio.ByteBuffer data)
           
 void setDepth(int depth)
          setDepth sets the depth value of the image.
 void setEfficentData(java.lang.Object efficientData)
          Set the efficient data representation of this image.
 void setFormat(Image.Format format)
          setFormat sets the image format for this image.
 void setHeight(int height)
          setHeight sets the height value of the image.
 void setMipMapSizes(int[] mipMapSizes)
          Sets the mipmap sizes stored in this image's data buffer.
 void setMultiSamples(int multiSamples)
           
 void setWidth(int width)
          setWidth sets the width value of the image.
 java.lang.String toString()
           
 void write(JmeExporter e)
           
 
Methods inherited from class com.jme3.util.NativeObject
clearUpdateNeeded, getId, isUpdateNeeded, setId, setUpdateNeeded
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

format

protected Image.Format format

width

protected int width

height

protected int height

depth

protected int depth

mipMapSizes

protected int[] mipMapSizes

data

protected java.util.ArrayList<java.nio.ByteBuffer> data

efficientData

protected transient java.lang.Object efficientData

multiSamples

protected int multiSamples
Constructor Detail

Image

public Image()
Constructor instantiates a new Image object. All values are undefined.


Image

protected Image(int id)

Image

public Image(Image.Format format,
             int width,
             int height,
             int depth,
             java.util.ArrayList<java.nio.ByteBuffer> data,
             int[] mipMapSizes)
Constructor instantiates a new Image object. The attributes of the image are defined during construction.

Parameters:
format - the data format of the image.
width - the width of the image.
height - the height of the image.
data - the image data.
mipMapSizes - the array of mipmap sizes, or null for no mipmaps.

Image

public Image(Image.Format format,
             int width,
             int height,
             java.nio.ByteBuffer data,
             int[] mipMapSizes)
Constructor instantiates a new Image object. The attributes of the image are defined during construction.

Parameters:
format - the data format of the image.
width - the width of the image.
height - the height of the image.
data - the image data.
mipMapSizes - the array of mipmap sizes, or null for no mipmaps.

Image

public Image(Image.Format format,
             int width,
             int height,
             int depth,
             java.util.ArrayList<java.nio.ByteBuffer> data)
Constructor instantiates a new Image object. The attributes of the image are defined during construction.

Parameters:
format - the data format of the image.
width - the width of the image.
height - the height of the image.
data - the image data.

Image

public Image(Image.Format format,
             int width,
             int height,
             java.nio.ByteBuffer data)
Constructor instantiates a new Image object. The attributes of the image are defined during construction.

Parameters:
format - the data format of the image.
width - the width of the image.
height - the height of the image.
data - the image data.
Method Detail

resetObject

public void resetObject()
Description copied from class: NativeObject
Called when the GL context is restarted to reset all IDs. Prevents "white textures" on display restart.

Specified by:
resetObject in class NativeObject

deleteObject

public void deleteObject(java.lang.Object rendererObject)
Description copied from class: NativeObject
Deletes the GL object from the GPU when it is no longer used. Called automatically by the GL object manager.

Specified by:
deleteObject in class NativeObject
Parameters:
rendererObject - The renderer to be used to delete the object

createDestructableClone

public NativeObject createDestructableClone()
Description copied from class: NativeObject
Creates a shallow clone of this GL Object. The deleteObject method should be functional for this object.

Specified by:
createDestructableClone in class NativeObject

clone

public Image clone()
Description copied from class: NativeObject
This should create a deep clone. For a shallow clone, use createDestructableClone().

Overrides:
clone in class NativeObject
Returns:
A shallow clone of this image. The data is not cloned.

getMultiSamples

public int getMultiSamples()
Returns:
The number of samples (for multisampled textures).
See Also:
setMultiSamples(int)

setMultiSamples

public void setMultiSamples(int multiSamples)
Parameters:
multiSamples - Set the number of samples to use for this image, setting this to a value higher than 1 turns this image/texture into a multisample texture (on OpenGL3.1 and higher).

setData

public void setData(java.util.ArrayList<java.nio.ByteBuffer> data)
setData sets the data that makes up the image. This data is packed into an array of ByteBuffer objects.

Parameters:
data - the data that contains the image information.

setData

public void setData(java.nio.ByteBuffer data)
setData sets the data that makes up the image. This data is packed into a single ByteBuffer.

Parameters:
data - the data that contains the image information.

addData

public void addData(java.nio.ByteBuffer data)

setData

public void setData(int index,
                    java.nio.ByteBuffer data)

setEfficentData

public void setEfficentData(java.lang.Object efficientData)
Set the efficient data representation of this image.

Some system implementations are more efficient at operating on data other than ByteBuffers, in that case, this method can be used.

Parameters:
efficientData -

getEfficentData

public java.lang.Object getEfficentData()
Returns:
The efficient data representation of this image.
See Also:
setEfficentData(java.lang.Object)

setMipMapSizes

public void setMipMapSizes(int[] mipMapSizes)
Sets the mipmap sizes stored in this image's data buffer. Mipmaps are stored sequentially, and the first mipmap is the main image data. To specify no mipmaps, pass null and this will automatically be expanded into a single mipmap of the full

Parameters:
mipMapSizes - the mipmap sizes array, or null for a single image map.

setHeight

public void setHeight(int height)
setHeight sets the height value of the image. It is typically a good idea to try to keep this as a multiple of 2.

Parameters:
height - the height of the image.

setDepth

public void setDepth(int depth)
setDepth sets the depth value of the image. It is typically a good idea to try to keep this as a multiple of 2. This is used for 3d images.

Parameters:
depth - the depth of the image.

setWidth

public void setWidth(int width)
setWidth sets the width value of the image. It is typically a good idea to try to keep this as a multiple of 2.

Parameters:
width - the width of the image.

setFormat

public void setFormat(Image.Format format)
setFormat sets the image format for this image.

Parameters:
format - the image format.
Throws:
java.lang.NullPointerException - if format is null
See Also:
Image.Format

getFormat

public Image.Format getFormat()
getFormat returns the image format for this image.

Returns:
the image format.
See Also:
Image.Format

getWidth

public int getWidth()
getWidth returns the width of this image.

Returns:
the width of this image.

getHeight

public int getHeight()
getHeight returns the height of this image.

Returns:
the height of this image.

getDepth

public int getDepth()
getDepth returns the depth of this image (for 3d images).

Returns:
the depth of this image.

getData

public java.util.List<java.nio.ByteBuffer> getData()
getData returns the data for this image. If the data is undefined, null will be returned.

Returns:
the data for this image.

getData

public java.nio.ByteBuffer getData(int index)
getData returns the data for this image. If the data is undefined, null will be returned.

Returns:
the data for this image.

hasMipmaps

public boolean hasMipmaps()
Returns whether the image data contains mipmaps.

Returns:
true if the image data contains mipmaps, false if not.

getMipMapSizes

public int[] getMipMapSizes()
Returns the mipmap sizes for this image.

Returns:
the mipmap sizes for this image.

toString

public java.lang.String toString()
Overrides:
toString in class NativeObject

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

write

public void write(JmeExporter e)
           throws java.io.IOException
Specified by:
write in interface Savable
Throws:
java.io.IOException

read

public void read(JmeImporter e)
          throws java.io.IOException
Specified by:
read in interface Savable
Throws:
java.io.IOException