< prev index next >

src/java.desktop/share/classes/sun/font/SunLayoutEngine.java

Print this page

        

*** 159,181 **** private SunLayoutEngine(LayoutEngineKey key) { this.key = key; } - private boolean isAAT(Font2D font) { - if (font instanceof TrueTypeFont) { - TrueTypeFont ttf = (TrueTypeFont)font; - return ttf.getDirectoryEntry(TrueTypeFont.morxTag) != null || - ttf.getDirectoryEntry(TrueTypeFont.mortTag) != null; - } else if (font instanceof PhysicalFont) { - PhysicalFont pf = (PhysicalFont)font; - return pf.getTableBytes(TrueTypeFont.morxTag) != null || - pf.getTableBytes(TrueTypeFont.mortTag) != null; - } - return false; - } - public void layout(FontStrikeDesc desc, float[] mat, float ptSize, int gmask, int baseIndex, TextRecord tr, int typo_flags, Point2D.Float pt, GVData data) { Font2D font = key.font(); FontStrike strike = font.getStrike(desc); --- 159,168 ----
*** 184,200 **** nativeLayout(font, strike, mat, gmask, baseIndex, tr.text, tr.start, tr.limit, tr.min, tr.max, key.script(), key.lang(), typo_flags, pt, data, font.getUnitsPerEm(), layoutTables); } else { ! long pNativeFont = font.getPlatformNativeFontPtr(); // used on OSX ! // pScaler probably not needed long term. ! long pScaler = 0L; ! if (font instanceof FileFont) { ! pScaler = ((FileFont)font).getScaler().nativeScaler; ! } ! shape(font, strike, ptSize, mat, pScaler, pNativeFont, isAAT(font), tr.text, data, key.script(), tr.start, tr.limit, baseIndex, pt, typo_flags, gmask); } } --- 171,182 ---- nativeLayout(font, strike, mat, gmask, baseIndex, tr.text, tr.start, tr.limit, tr.min, tr.max, key.script(), key.lang(), typo_flags, pt, data, font.getUnitsPerEm(), layoutTables); } else { ! shape(font, strike, ptSize, mat, ! font.getHarfbuzzFacePtr(), font.getPlatformNativeFontPtr(), font.isAAT(), tr.text, data, key.script(), tr.start, tr.limit, baseIndex, pt, typo_flags, gmask); } }
*** 208,217 **** /* Native method to invoke harfbuzz layout engine */ private static native boolean shape(Font2D font, FontStrike strike, float ptSize, float[] mat, ! long pscaler, long pNativeFont, boolean aat, char[] chars, GVData data, int script, int offset, int limit, int baseIndex, Point2D.Float pt, int typo_flags, int slot); } --- 190,199 ---- /* Native method to invoke harfbuzz layout engine */ private static native boolean shape(Font2D font, FontStrike strike, float ptSize, float[] mat, ! long pFace, long pNativeFont, boolean aat, char[] chars, GVData data, int script, int offset, int limit, int baseIndex, Point2D.Float pt, int typo_flags, int slot); }
< prev index next >