src/java.desktop/unix/classes/sun/java2d/xr/XIDGenerator.java

Print this page




  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  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.xr;
  27 
  28 /**
  29  * Class provides unused XIDs, used for creating server-side objects
  30  * created by the java backend.
  31  * It does buffering, to minimize JNI overhead.
  32  *
  33  * @author Clemens Eisserer
  34  */
  35 
  36 public class XIDGenerator {
  37     private final static int XID_BUFFER_SIZE = 512;
  38 
  39     int[] xidBuffer = new int[XID_BUFFER_SIZE];
  40     int currentIndex = XID_BUFFER_SIZE;
  41 
  42     public int getNextXID() {
  43 
  44         if (currentIndex >= XID_BUFFER_SIZE) {
  45             bufferXIDs(xidBuffer, xidBuffer.length);
  46             currentIndex = 0;
  47         }
  48 
  49         return xidBuffer[currentIndex++];
  50     }
  51 
  52     private static native void bufferXIDs(int[] buffer, int arraySize);
  53 }


  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  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.xr;
  27 
  28 /**
  29  * Class provides unused XIDs, used for creating server-side objects
  30  * created by the java backend.
  31  * It does buffering, to minimize JNI overhead.
  32  *
  33  * @author Clemens Eisserer
  34  */
  35 
  36 public class XIDGenerator {
  37     private static final int XID_BUFFER_SIZE = 512;
  38 
  39     int[] xidBuffer = new int[XID_BUFFER_SIZE];
  40     int currentIndex = XID_BUFFER_SIZE;
  41 
  42     public int getNextXID() {
  43 
  44         if (currentIndex >= XID_BUFFER_SIZE) {
  45             bufferXIDs(xidBuffer, xidBuffer.length);
  46             currentIndex = 0;
  47         }
  48 
  49         return xidBuffer[currentIndex++];
  50     }
  51 
  52     private static native void bufferXIDs(int[] buffer, int arraySize);
  53 }