1 /*
2 * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
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
24 */
25
26 /*
27 * @author Charlton Innovations, Inc.
28 */
29
30 package sun.java2d.loops;
31
32 import java.util.Comparator;
33 import java.util.Arrays;
34 import sun.java2d.SunGraphics2D;
35
36 /**
37 * GraphicsComponentMgr provides services to
38 * 1. register primitives for later use
39 * 2. locate an instance of a primitve based on characteristics
40 */
41 public final class GraphicsPrimitiveMgr {
42
43 private static final boolean debugTrace = false;
44 private static GraphicsPrimitive primitives[];
45 private static GraphicsPrimitive generalPrimitives[];
46 private static boolean needssort = true;
47
48 private static native void initIDs(Class<?> GP, Class<?> ST, Class<?> CT,
49 Class<?> SG2D, Class<?> Color, Class<?> AT,
50 Class<?> XORComp, Class<?> AlphaComp,
51 Class<?> Path2D, Class<?> Path2DFloat,
52 Class<?> SHints);
53 private static native void registerNativeLoops();
54
55 static {
56 initIDs(GraphicsPrimitive.class,
57 SurfaceType.class,
58 CompositeType.class,
59 SunGraphics2D.class,
60 java.awt.Color.class,
61 java.awt.geom.AffineTransform.class,
62 XORComposite.class,
63 java.awt.AlphaComposite.class,
64 java.awt.geom.Path2D.class,
65 java.awt.geom.Path2D.Float.class,
303 unresolved++;
304 p = r;
305 if (verbose) {
306 System.out.println(p);
307 }
308 } else {
309 if (verbose) {
310 System.out.println(p + " (not proxied).");
311 }
312 resolved++;
313 }
314 }
315 System.out.println(resolved+
316 " graphics primitives were not proxied.");
317 System.out.println(unresolved+
318 " proxied graphics primitives resolved correctly.");
319 System.out.println(resolved+unresolved+
320 " total graphics primitives");
321 }
322
323 public static void main(String argv[]) {
324 // REMIND: Should trigger loading of platform primitives somehow...
325 if (needssort) {
326 Arrays.sort(primitives, primSorter);
327 needssort = false;
328 }
329 testPrimitiveInstantiation(argv.length > 0);
330 }
331 }
|
1 /*
2 * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
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
24 */
25
26 /*
27 * @author Charlton Innovations, Inc.
28 */
29
30 package sun.java2d.loops;
31
32 import java.util.Comparator;
33 import java.util.Arrays;
34 import sun.java2d.SunGraphics2D;
35
36 /**
37 * GraphicsComponentMgr provides services to
38 * 1. register primitives for later use
39 * 2. locate an instance of a primitve based on characteristics
40 */
41 public final class GraphicsPrimitiveMgr {
42
43 private static final boolean debugTrace = false;
44 private static GraphicsPrimitive[] primitives;
45 private static GraphicsPrimitive[] generalPrimitives;
46 private static boolean needssort = true;
47
48 private static native void initIDs(Class<?> GP, Class<?> ST, Class<?> CT,
49 Class<?> SG2D, Class<?> Color, Class<?> AT,
50 Class<?> XORComp, Class<?> AlphaComp,
51 Class<?> Path2D, Class<?> Path2DFloat,
52 Class<?> SHints);
53 private static native void registerNativeLoops();
54
55 static {
56 initIDs(GraphicsPrimitive.class,
57 SurfaceType.class,
58 CompositeType.class,
59 SunGraphics2D.class,
60 java.awt.Color.class,
61 java.awt.geom.AffineTransform.class,
62 XORComposite.class,
63 java.awt.AlphaComposite.class,
64 java.awt.geom.Path2D.class,
65 java.awt.geom.Path2D.Float.class,
303 unresolved++;
304 p = r;
305 if (verbose) {
306 System.out.println(p);
307 }
308 } else {
309 if (verbose) {
310 System.out.println(p + " (not proxied).");
311 }
312 resolved++;
313 }
314 }
315 System.out.println(resolved+
316 " graphics primitives were not proxied.");
317 System.out.println(unresolved+
318 " proxied graphics primitives resolved correctly.");
319 System.out.println(resolved+unresolved+
320 " total graphics primitives");
321 }
322
323 public static void main(String[] argv) {
324 // REMIND: Should trigger loading of platform primitives somehow...
325 if (needssort) {
326 Arrays.sort(primitives, primSorter);
327 needssort = false;
328 }
329 testPrimitiveInstantiation(argv.length > 0);
330 }
331 }
|