小背景。。
我正在使用Java和LWJGL制作 OpenGL 游戏。我编写了一个TextRenderer
使用缓存的字形页面呈现文本的类。字形本身在 Java2D 中呈现为BufferedImage
s 并与字形测量一起打包到纹理页面中。TextRenderer
使用缓存的信息将字符绘制为带纹理的四边形。
所有这一切都很好,除了一件事:缺少字距调整。当然,没有必要因为文本看起来很好,但如果我可以访问字体字距调整信息,它会提高质量。
问题是..
是否有可能使用纯 Java 以一种可在 Windows、Linux 和 MacOS X 之间移植的方式获取字距调整信息?当我写这篇文章时,TextRenderer
我短暂地环顾四周,但找不到这样的方式..
一种可能的解决方案
如果在纯 Java 中无法做到这一点,我正在考虑使用Freetype编写一个单独的工具。如其功能页面中所列:
FreeType 2 提供了其他类似字体引擎通常无法提供的信息,例如字距调整、字形名称、垂直度量等。
该工具会将常用字符的字距调整对存储到我的文本渲染器将加载并使用的文件中。所以如果你们没有提出更好的选择,这可能就是我会做的。:)