我正在学习用于OpenGL的FreeType API的基础知识,而且我对一件事情感到困惑。加载字体,然后将每个字形逐个加载到字体的字形槽中。字形包含许多字段,包括advance
,其中包含x
和y
字段。现在,我知道有人说y
使用不多,但是在我使用y
的情况下,我不明白的是每个字符都是单独渲染到字形槽,那么字形怎么知道所有后续字符都应该用特定的小数偏移来渲染?如果你连续渲染了很多相同的角色怎么办?你不会以最慢的对角倾斜或最终文本块的下降结束吗?
答案 0 :(得分:2)
历史上advance.y
主要用于垂直文本,就像在亚洲使用一样(FT_LOAD_VERTICAL_LAYOUT
会触发它。)在正常的渲染情况下,你不应该同时获得两个非零值advance.x
和advance.y
。
但是以更通用的方式使用Freetype也很有用。如果你想以30°倾斜方式书写拉丁文直立文本,你仍然可以使用相同的结构:你将(通过FT_Set_Transform
)30°倾角矩阵应用于每个字形,但也应用于高级向量;结果确实会有斜向倾斜;如预期的那样!