home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / java2d / loops / GraphicsPrimitiveMgr.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.8 KB  |  161 lines

  1. package sun.java2d.loops;
  2.  
  3. public class GraphicsPrimitiveMgr {
  4.    private static final boolean debugTrace = false;
  5.    private static GraphicsPrimitive[][] deviceFunctions;
  6.    private static GraphicsPrimitive[] collection;
  7.    private static String[] deviceAtoms;
  8.    private static GraphicsPrimitiveMgr mgr = new GraphicsPrimitiveMgr();
  9.  
  10.    private GraphicsPrimitiveMgr() {
  11.       deviceFunctions = new GraphicsPrimitive[1][];
  12.    }
  13.  
  14.    public static final synchronized void register(GraphicsPrimitives var0, String var1) {
  15.       if (var1 != null) {
  16.          int var2 = devAtomIndex(var1);
  17.          if (var2 >= deviceFunctions.length) {
  18.             GraphicsPrimitive[][] var3 = new GraphicsPrimitive[var2 + 1][];
  19.             System.arraycopy(deviceFunctions, 0, var3, 0, deviceFunctions.length);
  20.             var3[var2] = null;
  21.             deviceFunctions = var3;
  22.          }
  23.  
  24.          deviceFunctions[var2] = register(var0, var2);
  25.       } else {
  26.          deviceFunctions[0] = register(var0, 0);
  27.       }
  28.  
  29.    }
  30.  
  31.    private static final GraphicsPrimitive[] register(GraphicsPrimitives var0, int var1) {
  32.       writeLog("Registering " + var0);
  33.       GraphicsPrimitive[] var2 = var0.getPrimitives();
  34.       GraphicsPrimitive[] var3 = deviceFunctions[var1];
  35.       if (var2 == null) {
  36.          return var3;
  37.       } else {
  38.          int var4 = 0;
  39.          int var5 = var2.length;
  40.          if (var3 != null) {
  41.             var4 = var3.length;
  42.          }
  43.  
  44.          GraphicsPrimitive[] var6 = new GraphicsPrimitive[var4 + var5];
  45.          if (var3 != null) {
  46.             System.arraycopy(var3, 0, var6, 0, var4);
  47.          }
  48.  
  49.          System.arraycopy(var2, 0, var6, var4, var5);
  50.          return var6;
  51.       }
  52.    }
  53.  
  54.    private static int devAtomIndex(String var0) {
  55.       if (deviceAtoms == null) {
  56.          deviceAtoms = new String[1];
  57.          deviceAtoms[0] = var0;
  58.          return 1;
  59.       } else if (deviceAtoms.length == 1 && deviceAtoms[0].equals(var0)) {
  60.          return 1;
  61.       } else {
  62.          int var1 = deviceAtoms.length;
  63.  
  64.          for(int var2 = 0; var2 < var1; ++var2) {
  65.             if (deviceAtoms[var2].equals(var0)) {
  66.                return var2 + 1;
  67.             }
  68.          }
  69.  
  70.          String[] var3 = new String[var1 + 1];
  71.          System.arraycopy(deviceAtoms, 0, var3, 0, var1);
  72.          var3[var1] = var0;
  73.          deviceAtoms = var3;
  74.          return var1 + 1;
  75.       }
  76.    }
  77.  
  78.    public static final synchronized GraphicsPrimitive locate(String var0, int[] var1, String var2) {
  79.       GraphicsPrimitive var3 = null;
  80.       if (var2 != null) {
  81.          int var4 = devAtomIndex(var2);
  82.          if (var4 < deviceFunctions.length) {
  83.             var3 = locate(var0, var1, var4);
  84.          }
  85.       }
  86.  
  87.       if (var3 == null) {
  88.          var3 = locate(var0, var1, 0);
  89.       }
  90.  
  91.       return var3;
  92.    }
  93.  
  94.    private static final GraphicsPrimitive locate(String var0, int[] var1, int var2) {
  95.       GraphicsPrimitive[] var3 = deviceFunctions[var2];
  96.       if (var3 == null) {
  97.          return null;
  98.       } else {
  99.          int var4 = var3.length;
  100.  
  101.          for(int var5 = var4 - 1; var5 >= 0; --var5) {
  102.             GraphicsPrimitive var6 = var3[var5];
  103.             if (var6.satisfies(var0, var1)) {
  104.                if (var6 instanceof GraphicsPrimitiveProxy) {
  105.                   var6 = ((GraphicsPrimitiveProxy)var6).instantiate();
  106.                   var3[var5] = var6;
  107.                }
  108.  
  109.                promoteMatchingEntry(var5, var2);
  110.                return var6;
  111.             }
  112.          }
  113.  
  114.          writeLog("Lookup found nothing for:");
  115.          writeLog(" " + var0);
  116.  
  117.          for(int var7 = 0; var7 < var1.length; ++var7) {
  118.             writeLog(" " + GraphicsPrimitive.typeStr(var1[var7]));
  119.          }
  120.  
  121.          return null;
  122.       }
  123.    }
  124.  
  125.    private static void promoteMatchingEntry(int var0, int var1) {
  126.       GraphicsPrimitive[] var2 = deviceFunctions[var1];
  127.       int var3 = var2.length;
  128.       if (var0 < var3 - 10) {
  129.          GraphicsPrimitive[] var4 = new GraphicsPrimitive[var3];
  130.          System.arraycopy(var2, 0, var4, 0, var0);
  131.          System.arraycopy(var2, var0 + 1, var4, var0, var3 - var0 - 1);
  132.          var4[var3 - 1] = var2[var0];
  133.          deviceFunctions[var1] = var4;
  134.       }
  135.  
  136.    }
  137.  
  138.    private static void writeLog(String var0) {
  139.    }
  140.  
  141.    public static void testPrimitiveInstantiation() {
  142.       int var0 = 0;
  143.  
  144.       for(int var1 = 0; var1 < deviceFunctions.length; ++var1) {
  145.          GraphicsPrimitive[] var2 = deviceFunctions[var1];
  146.  
  147.          for(int var3 = 0; var3 < var2.length; ++var3) {
  148.             GraphicsPrimitive var4 = var2[var3];
  149.             if (var4 instanceof GraphicsPrimitiveProxy) {
  150.                GraphicsPrimitive var5 = ((GraphicsPrimitiveProxy)var4).instantiate();
  151.                ++var0;
  152.             } else {
  153.                System.out.println(var4 + " has already been resolved.");
  154.             }
  155.          }
  156.       }
  157.  
  158.       System.out.println(var0 + " graphics primitives resolved correctly.");
  159.    }
  160. }
  161.