01: /*
02: * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04: *
05: * This code is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU General Public License version 2 only, as
07: * published by the Free Software Foundation. Sun designates this
08: * particular file as subject to the "Classpath" exception as provided
09: * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22: * CA 95054 USA or visit www.sun.com if you need additional information or
23: * have any questions.
24: */
25:
26: package sun.java2d.loops;
27:
28: import java.awt.Font;
29: import java.awt.geom.AffineTransform;
30:
31: import sun.font.Font2D;
32: import sun.font.FontStrike;
33: import sun.font.FontStrikeDesc;
34:
35: /*
36: * A FontInfo object holds all calculated or derived data needed
37: * to handle rendering operations based on a particular set of
38: * Graphics2D rendering attributes.
39: * Note that this does not use a Font2DHandle, and also has a reference
40: * to the strike which also references the Font2D.
41: * So presently, until SG2D objects no longer reference this FontInfo,
42: * there is still some potential for a bad Font2D to be used for a short
43: * time. I am reluctant to add the overhead of that machinery here without
44: * a proven benefit.
45: */
46: public class FontInfo implements Cloneable {
47: public Font font;
48: public Font2D font2D;
49: public FontStrike fontStrike;
50: public double[] devTx;
51: public double[] glyphTx;
52: public int pixelHeight;
53: public float originX;
54: public float originY;
55: public int aaHint;
56: public boolean lcdRGBOrder;
57: /* lcdSubPixPos is used if FM is ON for HRGB/HBGR LCD text mode */
58: public boolean lcdSubPixPos;
59:
60: public String mtx(double[] matrix) {
61: return ("[" + matrix[0] + ", " + matrix[1] + ", " + matrix[2]
62: + ", " + matrix[3] + "]");
63: }
64:
65: public Object clone() {
66: try {
67: return super .clone();
68: } catch (CloneNotSupportedException e) {
69: return null;
70: }
71: }
72:
73: public String toString() {
74: return ("FontInfo[" + "font=" + font + ", " + "devTx="
75: + mtx(devTx) + ", " + "glyphTx=" + mtx(glyphTx) + ", "
76: + "pixelHeight=" + pixelHeight + ", " + "origin=("
77: + originX + "," + originY + "), " + "aaHint=" + aaHint
78: + ", " + "lcdRGBOrder=" + (lcdRGBOrder ? "RGB" : "BGR")
79: + "lcdSubPixPos=" + lcdSubPixPos + "]");
80: }
81: }
|