Home » openjdk-7 » java » awt » image » [javadoc | source]
java.awt.image
abstract public class: DataBuffer [javadoc | source]
java.lang.Object
   java.awt.image.DataBuffer

Direct Known Subclasses:
    DataBufferByte, DataBufferFloat, DataBufferShort, DataBufferUShort, DataBufferInt, DataBufferDouble

This class exists to wrap one or more data arrays. Each data array in the DataBuffer is referred to as a bank. Accessor methods for getting and setting elements of the DataBuffer's banks exist with and without a bank specifier. The methods without a bank specifier use the default 0th bank. The DataBuffer can optionally take an offset per bank, so that data in an existing array can be used even if the interesting data doesn't start at array location zero. Getting or setting the 0th element of a bank, uses the (0+offset)th element of the array. The size field specifies how much of the data array is available for use. Size + offset for a given bank should never be greater than the length of the associated data array. The data type of a data buffer indicates the type of the data array(s) and may also indicate additional semantics, e.g. storing unsigned 8-bit data in elements of a byte array. The data type may be TYPE_UNDEFINED or one of the types defined below. Other types may be added in the future. Generally, an object of class DataBuffer will be cast down to one of its data type specific subclasses to access data type specific methods for improved performance. Currently, the Java 2D(tm) API image classes use TYPE_BYTE, TYPE_USHORT, TYPE_INT, TYPE_SHORT, TYPE_FLOAT, and TYPE_DOUBLE DataBuffers to store image data.
Field Summary
public static final  int TYPE_BYTE    Tag for unsigned byte data. 
public static final  int TYPE_USHORT    Tag for unsigned short data. 
public static final  int TYPE_SHORT    Tag for signed short data. Placeholder for future use. 
public static final  int TYPE_INT    Tag for int data. 
public static final  int TYPE_FLOAT    Tag for float data. Placeholder for future use. 
public static final  int TYPE_DOUBLE    Tag for double data. Placeholder for future use. 
public static final  int TYPE_UNDEFINED    Tag for undefined data. 
protected  int dataType    The data type of this DataBuffer. 
protected  int banks    The number of banks in this DataBuffer. 
protected  int offset    Offset into default (first) bank from which to get the first element. 
protected  int size    Usable size of all banks. 
protected  int[] offsets    Offsets into all banks. 
 StateTrackableDelegate theTrackable     
Constructor:
 protected DataBuffer(int dataType,
    int size) 
 DataBuffer(State initialState,
    int dataType,
    int size) 
    Constructs a DataBuffer containing one bank of the specified data type and size with the indicated initial State .
    Parameters:
    initialState - the initial State state of the data
    dataType - the data type of this DataBuffer
    size - the size of the banks
    since: 1.7 -
 protected DataBuffer(int dataType,
    int size,
    int numBanks) 
 DataBuffer(State initialState,
    int dataType,
    int size,
    int numBanks) 
    Constructs a DataBuffer containing the specified number of banks with the indicated initial State . Each bank has the specified size and an offset of 0.
    Parameters:
    initialState - the initial State state of the data
    dataType - the data type of this DataBuffer
    size - the size of the banks
    numBanks - the number of banks in this DataBuffer
    since: 1.7 -
 protected DataBuffer(int dataType,
    int size,
    int numBanks,
    int offset) 
 protected DataBuffer(int dataType,
    int size,
    int numBanks,
    int[] offsets) 
 DataBuffer(State initialState,
    int dataType,
    int size,
    int numBanks,
    int offset) 
    Constructs a DataBuffer that contains the specified number of banks with the indicated initial State . Each bank has the specified datatype, size and offset.
    Parameters:
    initialState - the initial State state of the data
    dataType - the data type of this DataBuffer
    size - the size of the banks
    numBanks - the number of banks in this DataBuffer
    offset - the offset for each bank
    since: 1.7 -
 DataBuffer(State initialState,
    int dataType,
    int size,
    int numBanks,
    int[] offsets) 
    Constructs a DataBuffer which contains the specified number of banks with the indicated initial State . Each bank has the specified datatype and size. The offset for each bank is specified by its respective entry in the offsets array.
    Parameters:
    initialState - the initial State state of the data
    dataType - the data type of this DataBuffer
    size - the size of the banks
    numBanks - the number of banks in this DataBuffer
    offsets - an array containing an offset for each bank.
    Throws:
    ArrayIndexOutOfBoundsException - if numBanks does not equal the length of offsets
    since: 1.7 -
Method from java.awt.image.DataBuffer Summary:
getDataType,   getDataTypeSize,   getElem,   getElem,   getElemDouble,   getElemDouble,   getElemFloat,   getElemFloat,   getNumBanks,   getOffset,   getOffsets,   getSize,   setElem,   setElem,   setElemDouble,   setElemDouble,   setElemFloat,   setElemFloat,   toIntArray
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from java.awt.image.DataBuffer Detail:
 public int getDataType() 
    Returns the data type of this DataBuffer.
 public static int getDataTypeSize(int type) 
    Returns the size (in bits) of the data type, given a datatype tag.
 public int getElem(int i) 
    Returns the requested data array element from the first (default) bank as an integer.
 abstract public int getElem(int bank,
    int i)
    Returns the requested data array element from the specified bank as an integer.
 public double getElemDouble(int i) 
    Returns the requested data array element from the first (default) bank as a double. The implementation in this class is to cast #getElem(int) to a double. Subclasses can override this method if another implementation is needed.
 public double getElemDouble(int bank,
    int i) 
    Returns the requested data array element from the specified bank as a double. The implementation in this class is to cast getElem(bank, i) to a double. Subclasses may override this method if another implementation is needed.
 public float getElemFloat(int i) 
    Returns the requested data array element from the first (default) bank as a float. The implementation in this class is to cast getElem(i) to a float. Subclasses may override this method if another implementation is needed.
 public float getElemFloat(int bank,
    int i) 
    Returns the requested data array element from the specified bank as a float. The implementation in this class is to cast #getElem(int, int) to a float. Subclasses can override this method if another implementation is needed.
 public int getNumBanks() 
    Returns the number of banks in this DataBuffer.
 public int getOffset() 
    Returns the offset of the default bank in array elements.
 public int[] getOffsets() 
    Returns the offsets (in array elements) of all the banks.
 public int getSize() 
    Returns the size (in array elements) of all banks.
 public  void setElem(int i,
    int val) 
    Sets the requested data array element in the first (default) bank from the given integer.
 abstract public  void setElem(int bank,
    int i,
    int val)
    Sets the requested data array element in the specified bank from the given integer.
 public  void setElemDouble(int i,
    double val) 
    Sets the requested data array element in the first (default) bank from the given double. The implementation in this class is to cast val to an int and call #setElem(int, int) . Subclasses can override this method if another implementation is needed.
 public  void setElemDouble(int bank,
    int i,
    double val) 
    Sets the requested data array element in the specified bank from the given double. The implementation in this class is to cast val to an int and call #setElem(int, int) . Subclasses can override this method if another implementation is needed.
 public  void setElemFloat(int i,
    float val) 
    Sets the requested data array element in the first (default) bank from the given float. The implementation in this class is to cast val to an int and call #setElem(int, int) . Subclasses can override this method if another implementation is needed.
 public  void setElemFloat(int bank,
    int i,
    float val) 
    Sets the requested data array element in the specified bank from the given float. The implementation in this class is to cast val to an int and call #setElem(int, int) . Subclasses can override this method if another implementation is needed.
 static int[] toIntArray(Object obj)