java.lang.Object
java.awt.image.DataBuffer
- Direct Known Subclasses:
- DataBufferByte,- DataBufferDouble,- DataBufferFloat,- DataBufferInt,- DataBufferShort,- DataBufferUShort
public abstract class DataBuffer extends Object
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.
- See Also:
- Raster,- SampleModel
- 
Field SummaryFields Modifier and Type Field Description protected intbanksThe number of banks in this DataBuffer.protected intdataTypeThe data type of this DataBuffer.protected intoffsetOffset into default (first) bank from which to get the first element.protected int[]offsetsOffsets into all banks.protected intsizeUsable size of all banks.static intTYPE_BYTETag for unsigned byte data.static intTYPE_DOUBLETag for double data.static intTYPE_FLOATTag for float data.static intTYPE_INTTag for int data.static intTYPE_SHORTTag for signed short data.static intTYPE_UNDEFINEDTag for undefined data.static intTYPE_USHORTTag for unsigned short data.
- 
Constructor SummaryConstructors Modifier Constructor Description protectedDataBuffer(int dataType, int size)Constructs a DataBuffer containing one bank of the specified data type and size.protectedDataBuffer(int dataType, int size, int numBanks)Constructs a DataBuffer containing the specified number of banks.protectedDataBuffer(int dataType, int size, int numBanks, int offset)Constructs a DataBuffer that contains the specified number of banks.protectedDataBuffer(int dataType, int size, int numBanks, int[] offsets)Constructs a DataBuffer which contains the specified number of banks.
- 
Method SummaryModifier and Type Method Description intgetDataType()Returns the data type of this DataBuffer.static intgetDataTypeSize(int type)Returns the size (in bits) of the data type, given a datatype tag.intgetElem(int i)Returns the requested data array element from the first (default) bank as an integer.abstract intgetElem(int bank, int i)Returns the requested data array element from the specified bank as an integer.doublegetElemDouble(int i)Returns the requested data array element from the first (default) bank as a double.doublegetElemDouble(int bank, int i)Returns the requested data array element from the specified bank as a double.floatgetElemFloat(int i)Returns the requested data array element from the first (default) bank as a float.floatgetElemFloat(int bank, int i)Returns the requested data array element from the specified bank as a float.intgetNumBanks()Returns the number of banks in this DataBuffer.intgetOffset()Returns the offset of the default bank in array elements.int[]getOffsets()Returns the offsets (in array elements) of all the banks.intgetSize()Returns the size (in array elements) of all banks.voidsetElem(int i, int val)Sets the requested data array element in the first (default) bank from the given integer.abstract voidsetElem(int bank, int i, int val)Sets the requested data array element in the specified bank from the given integer.voidsetElemDouble(int i, double val)Sets the requested data array element in the first (default) bank from the given double.voidsetElemDouble(int bank, int i, double val)Sets the requested data array element in the specified bank from the given double.voidsetElemFloat(int i, float val)Sets the requested data array element in the first (default) bank from the given float.voidsetElemFloat(int bank, int i, float val)Sets the requested data array element in the specified bank from the given float.
- 
Field Details- 
TYPE_BYTETag for unsigned byte data.- See Also:
- Constant Field Values
 
- 
TYPE_USHORTTag for unsigned short data.- See Also:
- Constant Field Values
 
- 
TYPE_SHORTTag for signed short data. Placeholder for future use.- See Also:
- Constant Field Values
 
- 
TYPE_INTTag for int data.- See Also:
- Constant Field Values
 
- 
TYPE_FLOATTag for float data. Placeholder for future use.- See Also:
- Constant Field Values
 
- 
TYPE_DOUBLETag for double data. Placeholder for future use.- See Also:
- Constant Field Values
 
- 
TYPE_UNDEFINEDTag for undefined data.- See Also:
- Constant Field Values
 
- 
dataTypeprotected int dataTypeThe data type of this DataBuffer.
- 
banksprotected int banksThe number of banks in this DataBuffer.
- 
offsetprotected int offsetOffset into default (first) bank from which to get the first element.
- 
sizeprotected int sizeUsable size of all banks.
- 
offsetsprotected int[] offsetsOffsets into all banks.
 
- 
- 
Constructor Details- 
DataBufferprotected DataBuffer(int dataType, int size)Constructs a DataBuffer containing one bank of the specified data type and size.- Parameters:
- dataType- the data type of this- DataBuffer
- size- the size of the banks
 
- 
DataBufferprotected DataBuffer(int dataType, int size, int numBanks)Constructs a DataBuffer containing the specified number of banks. Each bank has the specified size and an offset of 0.- Parameters:
- dataType- the data type of this- DataBuffer
- size- the size of the banks
- numBanks- the number of banks in this- DataBuffer
 
- 
DataBufferprotected DataBuffer(int dataType, int size, int numBanks, int offset)Constructs a DataBuffer that contains the specified number of banks. Each bank has the specified datatype, size and offset.- Parameters:
- 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
 
- 
DataBufferprotected DataBuffer(int dataType, int size, int numBanks, int[] offsets)Constructs a DataBuffer which contains the specified number of banks. Each bank has the specified datatype and size. The offset for each bank is specified by its respective entry in the offsets array.- Parameters:
- 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- numBanksdoes not equal the length of- offsets
 
 
- 
- 
Method Details- 
getDataTypeSizepublic static int getDataTypeSize(int type)Returns the size (in bits) of the data type, given a datatype tag.- Parameters:
- type- the value of one of the defined datatype tags
- Returns:
- the size of the data type
- Throws:
- IllegalArgumentException- if- typeis less than zero or greater than- TYPE_DOUBLE
 
- 
getDataTypepublic int getDataType()Returns the data type of this DataBuffer.- Returns:
- the data type of this DataBuffer.
 
- 
getSizepublic int getSize()Returns the size (in array elements) of all banks.- Returns:
- the size of all banks.
 
- 
getOffsetpublic int getOffset()Returns the offset of the default bank in array elements.- Returns:
- the offset of the default bank.
 
- 
getOffsetspublic int[] getOffsets()Returns the offsets (in array elements) of all the banks.- Returns:
- the offsets of all banks.
 
- 
getNumBankspublic int getNumBanks()Returns the number of banks in this DataBuffer.- Returns:
- the number of banks.
 
- 
getElempublic int getElem(int i)Returns the requested data array element from the first (default) bank as an integer.- Parameters:
- i- the index of the requested data array element
- Returns:
- the data array element at the specified index.
- See Also:
- setElem(int, int),- setElem(int, int, int)
 
- 
getElempublic abstract int getElem(int bank, int i)Returns the requested data array element from the specified bank as an integer.- Parameters:
- bank- the specified bank
- i- the index of the requested data array element
- Returns:
- the data array element at the specified index from the specified bank at the specified index.
- See Also:
- setElem(int, int),- setElem(int, int, int)
 
- 
setElempublic void setElem(int i, int val)Sets the requested data array element in the first (default) bank from the given integer.- Parameters:
- i- the specified index into the data array
- val- the data to set the element at the specified index in the data array
- See Also:
- getElem(int),- getElem(int, int)
 
- 
setElempublic abstract void setElem(int bank, int i, int val)Sets the requested data array element in the specified bank from the given integer.- Parameters:
- bank- the specified bank
- i- the specified index into the data array
- val- the data to set the element in the specified bank at the specified index in the data array
- See Also:
- getElem(int),- getElem(int, int)
 
- 
getElemFloatpublic 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.- Parameters:
- i- the index of the requested data array element
- Returns:
- a float value representing the data array element at the specified index.
- See Also:
- setElemFloat(int, float),- setElemFloat(int, int, float)
 
- 
getElemFloatpublic 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 castgetElem(int, int)to a float. Subclasses can override this method if another implementation is needed.- Parameters:
- bank- the specified bank
- i- the index of the requested data array element
- Returns:
- a float value representing the data array element from the specified bank at the specified index.
- See Also:
- setElemFloat(int, float),- setElemFloat(int, int, float)
 
- 
setElemFloatpublic 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 callsetElem(int, int). Subclasses can override this method if another implementation is needed.- Parameters:
- i- the specified index
- val- the value to set the element at the specified index in the data array
- See Also:
- getElemFloat(int),- getElemFloat(int, int)
 
- 
setElemFloatpublic 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 callsetElem(int, int). Subclasses can override this method if another implementation is needed.- Parameters:
- bank- the specified bank
- i- the specified index
- val- the value to set the element in the specified bank at the specified index in the data array
- See Also:
- getElemFloat(int),- getElemFloat(int, int)
 
- 
getElemDoublepublic 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 castgetElem(int)to a double. Subclasses can override this method if another implementation is needed.- Parameters:
- i- the specified index
- Returns:
- a double value representing the element at the specified index in the data array.
- See Also:
- setElemDouble(int, double),- setElemDouble(int, int, double)
 
- 
getElemDoublepublic 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.- Parameters:
- bank- the specified bank
- i- the specified index
- Returns:
- a double value representing the element from the specified bank at the specified index in the data array.
- See Also:
- setElemDouble(int, double),- setElemDouble(int, int, double)
 
- 
setElemDoublepublic 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 callsetElem(int, int). Subclasses can override this method if another implementation is needed.- Parameters:
- i- the specified index
- val- the value to set the element at the specified index in the data array
- See Also:
- getElemDouble(int),- getElemDouble(int, int)
 
- 
setElemDoublepublic 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 callsetElem(int, int). Subclasses can override this method if another implementation is needed.- Parameters:
- bank- the specified bank
- i- the specified index
- val- the value to set the element in the specified bank at the specified index of the data array
- See Also:
- getElemDouble(int),- getElemDouble(int, int)
 
 
-