FreeType - 帮助我理解glyph的advance.y属性

时间:2015-02-17 18:45:30

标签: freetype

我正在学习用于OpenGL的FreeType API的基础知识,而且我对一件事情感到困惑。加载字体,然后将每个字形逐个加载到字体的字形槽中。字形包含许多字段,包括advance,其中包含xy字段。现在,我知道有人说y使用不多,但是在我使用y的情况下,我不明白的是每个字符都是单独渲染到字形槽,那么字形怎么知道所有后续字符都应该用特定的小数偏移来渲染?如果你连续渲染了很多相同的角色怎么办?你不会以最慢的对角倾斜或最终文本块的下降结束吗?

1 个答案:

答案 0 :(得分:2)

历史上advance.y主要用于垂直文本,就像在亚洲使用一样(FT_LOAD_VERTICAL_LAYOUT会触发它。)在正常的渲染情况下,你不应该同时获得两个非零值advance.xadvance.y

但是以更通用的方式使用Freetype也很有用。如果你想以30°倾斜方式书写拉丁文直立文本,你仍然可以使用相同的结构:你将(通过FT_Set_Transform)30°倾角矩阵应用于每个字形,但也应用于高级向量;结果确实会有斜向倾斜;如预期的那样!