< prev index next >
src/java.desktop/share/classes/sun/font/SunLayoutEngine.java
Print this page
@@ -159,23 +159,10 @@
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);
@@ -184,17 +171,12 @@
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),
+ 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,10 +190,10 @@
/* 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,
+ 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 >