< 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 >