diff options
Diffstat (limited to 'libjava/java/awt/image/DataBufferInt.java')
-rw-r--r-- | libjava/java/awt/image/DataBufferInt.java | 118 |
1 files changed, 114 insertions, 4 deletions
diff --git a/libjava/java/awt/image/DataBufferInt.java b/libjava/java/awt/image/DataBufferInt.java index 54308fefd02..c5f08530d2b 100644 --- a/libjava/java/awt/image/DataBufferInt.java +++ b/libjava/java/awt/image/DataBufferInt.java @@ -54,12 +54,27 @@ public final class DataBufferInt extends DataBuffer private int[] data; private int[][] bankData; + /** + * Creates a new data buffer with a single data bank containing the + * specified number of <code>int</code> elements. + * + * @param size the number of elements in the data bank. + */ public DataBufferInt(int size) { - super(TYPE_INT, size); + super(TYPE_INT, size, 1, 0); + bankData = new int[1][]; data = new int[size]; + bankData[0] = data; } + /** + * Creates a new data buffer with the specified number of data banks, + * each containing the specified number of <code>int</code> elements. + * + * @param size the number of elements in the data bank. + * @param numBanks the number of data banks. + */ public DataBufferInt(int size, int numBanks) { super(TYPE_INT, size, numBanks); @@ -67,18 +82,53 @@ public final class DataBufferInt extends DataBuffer data = bankData[0]; } + /** + * Creates a new data buffer backed by the specified data bank. + * <p> + * Note: there is no exception when <code>dataArray</code> is + * <code>null</code>, but in that case an exception will be thrown + * later if you attempt to access the data buffer. + * + * @param dataArray the data bank. + * @param size the number of elements in the data bank. + */ public DataBufferInt(int[] dataArray, int size) { - super(TYPE_INT, size); + super(TYPE_INT, size, 1, 0); + bankData = new int[1][]; data = dataArray; + bankData[0] = data; } + /** + * Creates a new data buffer backed by the specified data bank, with + * the specified offset to the first element. + * <p> + * Note: there is no exception when <code>dataArray</code> is + * <code>null</code>, but in that case an exception will be thrown + * later if you attempt to access the data buffer. + * + * @param dataArray the data bank. + * @param size the number of elements in the data bank. + * @param offset the offset to the first element in the array. + */ public DataBufferInt(int[] dataArray, int size, int offset) { super(TYPE_INT, size, 1, offset); + bankData = new int[1][]; data = dataArray; + bankData[0] = data; } + /** + * Creates a new data buffer backed by the specified data banks. + * + * @param dataArray the data banks. + * @param size the number of elements in the data bank. + * + * @throws NullPointerException if <code>dataArray</code> is + * <code>null</code>. + */ public DataBufferInt(int[][] dataArray, int size) { super(TYPE_INT, size, dataArray.length); @@ -86,6 +136,17 @@ public final class DataBufferInt extends DataBuffer data = bankData[0]; } + /** + * Creates a new data buffer backed by the specified data banks, with + * the specified offsets to the first element in each bank. + * + * @param dataArray the data banks. + * @param size the number of elements in the data bank. + * @param offsets the offsets to the first element in each data bank. + * + * @throws NullPointerException if <code>dataArray</code> is + * <code>null</code>. + */ public DataBufferInt(int[][] dataArray, int size, int[] offsets) { super(TYPE_INT, size, dataArray.length, offsets); @@ -93,39 +154,88 @@ public final class DataBufferInt extends DataBuffer data = bankData[0]; } + /** + * Returns the first data bank. + * + * @return The first data bank. + */ public int[] getData() { return data; } + /** + * Returns a data bank. + * + * @param bank the bank index. + * @return A data bank. + */ public int[] getData(int bank) { return bankData[bank]; } + /** + * Returns the array underlying this <code>DataBuffer</code>. + * + * @return The data banks. + */ public int[][] getBankData() { return bankData; } + /** + * Returns an element from the first data bank. The <code>offset</code> is + * added to the specified index before accessing the underlying data array. + * + * @param i the element index. + * @return The element. + */ public int getElem(int i) { return data[i+offset]; } + /** + * Returns an element from a particular data bank. The <code>offset</code> + * is added to the specified index before accessing the underlying data + * array. + * + * @param bank the bank index. + * @param i the element index. + * @return The element. + */ public int getElem(int bank, int i) { // get unsigned int as int return bankData[bank][i+offsets[bank]]; } + /** + * Sets an element in the first data bank. The offset (specified in the + * constructor) is added to <code>i</code> before updating the underlying + * data array. + * + * @param i the element index. + * @param val the new element value. + */ public void setElem(int i, int val) { - data[i+offset] = (int) val; + data[i+offset] = val; } + /** + * Sets an element in a particular data bank. The offset (specified in the + * constructor) is added to <code>i</code> before updating the underlying + * data array. + * + * @param bank the data bank index. + * @param i the element index. + * @param val the new element value. + */ public void setElem(int bank, int i, int val) { - bankData[bank][i+offsets[bank]] = (int) val; + bankData[bank][i+offsets[bank]] = val; } } |