< prev index next >
src/java.desktop/share/classes/sun/font/TrueTypeFont.java
Print this page
rev 59106 : imported patch client
*** 227,311 ****
}
}
Disposer.addObjectRecord(this, disposerRecord);
}
- /* Enable natives just for fonts picked up from the platform that
- * may have external bitmaps on Solaris. Could do this just for
- * the fonts that are specified in font configuration files which
- * would lighten the burden (think about that).
- * The EBLCTag is used to skip natives for fonts that contain embedded
- * bitmaps as there's no need to use X11 for those fonts.
- * Skip all the latin fonts as they don't need this treatment.
- * Further refine this to fonts that are natively accessible (ie
- * as PCF bitmap fonts on the X11 font path).
- * This method is called when creating the first strike for this font.
- */
- @Override
- protected boolean checkUseNatives() {
- if (checkedNatives) {
- return useNatives;
- }
- if (!FontUtilities.isSolaris || useJavaRasterizer ||
- FontUtilities.useJDKScaler || nativeNames == null ||
- getDirectoryEntry(EBLCTag) != null ||
- GraphicsEnvironment.isHeadless()) {
- checkedNatives = true;
- return false; /* useNatives is false */
- } else if (nativeNames instanceof String) {
- String name = (String)nativeNames;
- /* Don't do this for Latin fonts */
- if (name.indexOf("8859") > 0) {
- checkedNatives = true;
- return false;
- } else if (NativeFont.hasExternalBitmaps(name)) {
- nativeFonts = new NativeFont[1];
- try {
- nativeFonts[0] = new NativeFont(name, true);
- /* If reach here we have an non-latin font that has
- * external bitmaps and we successfully created it.
- */
- useNatives = true;
- } catch (FontFormatException e) {
- nativeFonts = null;
- }
- }
- } else if (nativeNames instanceof String[]) {
- String[] natNames = (String[])nativeNames;
- int numNames = natNames.length;
- boolean externalBitmaps = false;
- for (int nn = 0; nn < numNames; nn++) {
- if (natNames[nn].indexOf("8859") > 0) {
- checkedNatives = true;
- return false;
- } else if (NativeFont.hasExternalBitmaps(natNames[nn])) {
- externalBitmaps = true;
- }
- }
- if (!externalBitmaps) {
- checkedNatives = true;
- return false;
- }
- useNatives = true;
- nativeFonts = new NativeFont[numNames];
- for (int nn = 0; nn < numNames; nn++) {
- try {
- nativeFonts[nn] = new NativeFont(natNames[nn], true);
- } catch (FontFormatException e) {
- useNatives = false;
- nativeFonts = null;
- }
- }
- }
- if (useNatives) {
- glyphToCharMap = new char[getMapper().getNumGlyphs()];
- }
- checkedNatives = true;
- return useNatives;
- }
-
-
private synchronized FileChannel open() throws FontFormatException {
return open(true);
}
/* This is intended to be called, and the returned value used,
--- 227,236 ----
*** 1044,1061 ****
switch (bold|italic) {
case fsSelectionItalicBit:
style = Font.ITALIC;
break;
case fsSelectionBoldBit:
- if (FontUtilities.isSolaris && platName.endsWith("HG-GothicB.ttf")) {
- /* Workaround for Solaris's use of a JA font that's marked as
- * being designed bold, but is used as a PLAIN font.
- */
- style = Font.PLAIN;
- } else {
style = Font.BOLD;
- }
break;
case fsSelectionBoldBit|fsSelectionItalicBit:
style = Font.BOLD|Font.ITALIC;
}
}
--- 969,979 ----
< prev index next >