Java 类com.badlogic.gdx.graphics.g2d.freetype.FreeType.Face 实例源码
项目:gdx-styledtext
文件:GdxFontUtil.java
static UnderlineMetrics deriveUnderlineMetrics(FreeTypeFontGenerator generator, int size) {
try {
// Size metrics aren't publicly accessible (as of 1.9.3). (Ab)use reflection to gain access.
Field faceField = FreeTypeFontGenerator.class.getDeclaredField("face");
faceField.setAccessible(true);
Face face = (Face)faceField.get(generator);
SizeMetrics sizeMetrics = face.getSize().getMetrics();
int yScale = sizeMetrics.getYscale(); // 16.16 fixed point
float position = FreeType.toInt(face.getUnderlinePosition() * yScale >> 16);
float thickness = FreeType.toInt(face.getUnderlineThickness() * yScale >> 16);
return new UnderlineMetrics(position, thickness);
} catch (Exception e) {
LOG.error("Error fetching FreeType underline metrics", e);
}
// Return a reasonable default
return UnderlineMetrics.defaultInstance(size);
}