home *** CD-ROM | disk | FTP | other *** search
- package sun.java2d.loops;
-
- public class GraphicsPrimitiveMgr {
- private static final boolean debugTrace = false;
- private static GraphicsPrimitive[][] deviceFunctions;
- private static GraphicsPrimitive[] collection;
- private static String[] deviceAtoms;
- private static GraphicsPrimitiveMgr mgr = new GraphicsPrimitiveMgr();
-
- private GraphicsPrimitiveMgr() {
- deviceFunctions = new GraphicsPrimitive[1][];
- }
-
- public static final synchronized void register(GraphicsPrimitives var0, String var1) {
- if (var1 != null) {
- int var2 = devAtomIndex(var1);
- if (var2 >= deviceFunctions.length) {
- GraphicsPrimitive[][] var3 = new GraphicsPrimitive[var2 + 1][];
- System.arraycopy(deviceFunctions, 0, var3, 0, deviceFunctions.length);
- var3[var2] = null;
- deviceFunctions = var3;
- }
-
- deviceFunctions[var2] = register(var0, var2);
- } else {
- deviceFunctions[0] = register(var0, 0);
- }
-
- }
-
- private static final GraphicsPrimitive[] register(GraphicsPrimitives var0, int var1) {
- writeLog("Registering " + var0);
- GraphicsPrimitive[] var2 = var0.getPrimitives();
- GraphicsPrimitive[] var3 = deviceFunctions[var1];
- if (var2 == null) {
- return var3;
- } else {
- int var4 = 0;
- int var5 = var2.length;
- if (var3 != null) {
- var4 = var3.length;
- }
-
- GraphicsPrimitive[] var6 = new GraphicsPrimitive[var4 + var5];
- if (var3 != null) {
- System.arraycopy(var3, 0, var6, 0, var4);
- }
-
- System.arraycopy(var2, 0, var6, var4, var5);
- return var6;
- }
- }
-
- private static int devAtomIndex(String var0) {
- if (deviceAtoms == null) {
- deviceAtoms = new String[1];
- deviceAtoms[0] = var0;
- return 1;
- } else if (deviceAtoms.length == 1 && deviceAtoms[0].equals(var0)) {
- return 1;
- } else {
- int var1 = deviceAtoms.length;
-
- for(int var2 = 0; var2 < var1; ++var2) {
- if (deviceAtoms[var2].equals(var0)) {
- return var2 + 1;
- }
- }
-
- String[] var3 = new String[var1 + 1];
- System.arraycopy(deviceAtoms, 0, var3, 0, var1);
- var3[var1] = var0;
- deviceAtoms = var3;
- return var1 + 1;
- }
- }
-
- public static final synchronized GraphicsPrimitive locate(String var0, int[] var1, String var2) {
- GraphicsPrimitive var3 = null;
- if (var2 != null) {
- int var4 = devAtomIndex(var2);
- if (var4 < deviceFunctions.length) {
- var3 = locate(var0, var1, var4);
- }
- }
-
- if (var3 == null) {
- var3 = locate(var0, var1, 0);
- }
-
- return var3;
- }
-
- private static final GraphicsPrimitive locate(String var0, int[] var1, int var2) {
- GraphicsPrimitive[] var3 = deviceFunctions[var2];
- if (var3 == null) {
- return null;
- } else {
- int var4 = var3.length;
-
- for(int var5 = var4 - 1; var5 >= 0; --var5) {
- GraphicsPrimitive var6 = var3[var5];
- if (var6.satisfies(var0, var1)) {
- if (var6 instanceof GraphicsPrimitiveProxy) {
- var6 = ((GraphicsPrimitiveProxy)var6).instantiate();
- var3[var5] = var6;
- }
-
- promoteMatchingEntry(var5, var2);
- return var6;
- }
- }
-
- writeLog("Lookup found nothing for:");
- writeLog(" " + var0);
-
- for(int var7 = 0; var7 < var1.length; ++var7) {
- writeLog(" " + GraphicsPrimitive.typeStr(var1[var7]));
- }
-
- return null;
- }
- }
-
- private static void promoteMatchingEntry(int var0, int var1) {
- GraphicsPrimitive[] var2 = deviceFunctions[var1];
- int var3 = var2.length;
- if (var0 < var3 - 10) {
- GraphicsPrimitive[] var4 = new GraphicsPrimitive[var3];
- System.arraycopy(var2, 0, var4, 0, var0);
- System.arraycopy(var2, var0 + 1, var4, var0, var3 - var0 - 1);
- var4[var3 - 1] = var2[var0];
- deviceFunctions[var1] = var4;
- }
-
- }
-
- private static void writeLog(String var0) {
- }
-
- public static void testPrimitiveInstantiation() {
- int var0 = 0;
-
- for(int var1 = 0; var1 < deviceFunctions.length; ++var1) {
- GraphicsPrimitive[] var2 = deviceFunctions[var1];
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- GraphicsPrimitive var4 = var2[var3];
- if (var4 instanceof GraphicsPrimitiveProxy) {
- GraphicsPrimitive var5 = ((GraphicsPrimitiveProxy)var4).instantiate();
- ++var0;
- } else {
- System.out.println(var4 + " has already been resolved.");
- }
- }
- }
-
- System.out.println(var0 + " graphics primitives resolved correctly.");
- }
- }
-