< prev index next >

src/java.desktop/macosx/classes/sun/java2d/DataBufferNIOInt.java

Print this page




  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.java2d;
  27 
  28 import java.awt.image.DataBuffer;
  29 import java.nio.*;
  30 
  31 public final class DataBufferNIOInt extends DataBuffer {
  32 
  33     /** The default data bank. */
  34     IntBuffer data;
  35 
  36     /** All data banks */
  37     IntBuffer bankdata[];
  38 
  39     /**
  40      * Constructs an integer-based <CODE>DataBuffer</CODE> with a single bank
  41      * and the specified size.
  42      *
  43      * @param size The size of the <CODE>DataBuffer</CODE>.
  44      */
  45     public DataBufferNIOInt(int size) {
  46         super(TYPE_INT,size);
  47         //+++gdb how to get sizeof(int) in java? Using 4 for now.
  48         data = getBufferOfSize(size * 4).asIntBuffer();
  49         bankdata = new IntBuffer[1];
  50         bankdata[0] = data;
  51     }
  52 
  53     /**
  54      * Returns the default (first) IntBuffer in <CODE>DataBuffer</CODE>.
  55      *
  56      * @return The first IntBuffer.
  57      */
  58     public IntBuffer getBuffer() {
  59         return data;
  60     }
  61 
  62     /**
  63      * Returns the Buffer for the specified bank.
  64      *
  65      * @param bank The bank whose Buffer you want to get.
  66      * @return The Buffer for the specified bank.
  67      */
  68     public IntBuffer getBuffer(int bank) {
  69         return bankdata[bank];
  70     }
  71 
  72     /**
  73      * Returns the default (first) int data array in <CODE>DataBuffer</CODE>.
  74      *
  75      * @return The first integer data array.
  76      */
  77     public int[] getData() {
  78         return data.array();
  79     }
  80 
  81     /**
  82      * Returns the data array for the specified bank.
  83      *
  84      * @param bank The bank whose data array you want to get.
  85      * @return The data array for the specified bank.
  86      */
  87     public int[] getData(int bank) {
  88         return bankdata[bank].array();
  89     }
  90 
  91     /**
  92      * Returns the data arrays for all banks.
  93      * @return All of the data arrays.


 120      */
 121     public int getElem(int bank, int i) {
 122         return bankdata[bank].get(i+offsets[bank]);
 123     }
 124 
 125     /**
 126      * Sets the requested data array element in the first (default) bank
 127      * to the specified value.
 128      *
 129      * @param i The data array element you want to set.
 130      * @param val The integer value to which you want to set the data array element.
 131      * @see #getElem(int)
 132      * @see #getElem(int, int)
 133      */
 134     public void setElem(int i, int val) {
 135         data.put(i+offset, val);
 136     }
 137 
 138     /**
 139      * Sets the requested data array element in the specified bank
 140      * to the integer value <CODE>i</CODE>.
 141      * @param bank The bank in which you want to set the data array element.
 142      * @param i The data array element you want to set.
 143      * @param val The integer value to which you want to set the specified data array element.
 144      * @see #getElem(int)
 145      * @see #getElem(int, int)
 146      */
 147     public void setElem(int bank, int i, int val) {
 148         bankdata[bank].put(i+offsets[bank], val);
 149     }
 150 
 151     ByteBuffer getBufferOfSize(int size)
 152     {
 153         ByteBuffer buffer = ByteBuffer.allocateDirect(size);
 154         buffer.order(ByteOrder.nativeOrder());
 155         return buffer;
 156     }
 157 }


  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.java2d;
  27 
  28 import java.awt.image.DataBuffer;
  29 import java.nio.*;
  30 
  31 public final class DataBufferNIOInt extends DataBuffer {
  32 
  33     /** The default data bank. */
  34     IntBuffer data;
  35 
  36     /** All data banks */
  37     IntBuffer bankdata[];
  38 
  39     /**
  40      * Constructs an integer-based {@code DataBuffer} with a single bank
  41      * and the specified size.
  42      *
  43      * @param size The size of the {@code DataBuffer}.
  44      */
  45     public DataBufferNIOInt(int size) {
  46         super(TYPE_INT,size);
  47         //+++gdb how to get sizeof(int) in java? Using 4 for now.
  48         data = getBufferOfSize(size * 4).asIntBuffer();
  49         bankdata = new IntBuffer[1];
  50         bankdata[0] = data;
  51     }
  52 
  53     /**
  54      * Returns the default (first) IntBuffer in {@code DataBuffer}.
  55      *
  56      * @return The first IntBuffer.
  57      */
  58     public IntBuffer getBuffer() {
  59         return data;
  60     }
  61 
  62     /**
  63      * Returns the Buffer for the specified bank.
  64      *
  65      * @param bank The bank whose Buffer you want to get.
  66      * @return The Buffer for the specified bank.
  67      */
  68     public IntBuffer getBuffer(int bank) {
  69         return bankdata[bank];
  70     }
  71 
  72     /**
  73      * Returns the default (first) int data array in {@code DataBuffer}.
  74      *
  75      * @return The first integer data array.
  76      */
  77     public int[] getData() {
  78         return data.array();
  79     }
  80 
  81     /**
  82      * Returns the data array for the specified bank.
  83      *
  84      * @param bank The bank whose data array you want to get.
  85      * @return The data array for the specified bank.
  86      */
  87     public int[] getData(int bank) {
  88         return bankdata[bank].array();
  89     }
  90 
  91     /**
  92      * Returns the data arrays for all banks.
  93      * @return All of the data arrays.


 120      */
 121     public int getElem(int bank, int i) {
 122         return bankdata[bank].get(i+offsets[bank]);
 123     }
 124 
 125     /**
 126      * Sets the requested data array element in the first (default) bank
 127      * to the specified value.
 128      *
 129      * @param i The data array element you want to set.
 130      * @param val The integer value to which you want to set the data array element.
 131      * @see #getElem(int)
 132      * @see #getElem(int, int)
 133      */
 134     public void setElem(int i, int val) {
 135         data.put(i+offset, val);
 136     }
 137 
 138     /**
 139      * Sets the requested data array element in the specified bank
 140      * to the integer value {@code i}.
 141      * @param bank The bank in which you want to set the data array element.
 142      * @param i The data array element you want to set.
 143      * @param val The integer value to which you want to set the specified data array element.
 144      * @see #getElem(int)
 145      * @see #getElem(int, int)
 146      */
 147     public void setElem(int bank, int i, int val) {
 148         bankdata[bank].put(i+offsets[bank], val);
 149     }
 150 
 151     ByteBuffer getBufferOfSize(int size)
 152     {
 153         ByteBuffer buffer = ByteBuffer.allocateDirect(size);
 154         buffer.order(ByteOrder.nativeOrder());
 155         return buffer;
 156     }
 157 }
< prev index next >