一个face表示一直字体,一个字体文件中可能包含多个face,即包含多种字体
一个face中包含glyph集合,可以根据字符编码(如Unicode)来检索glyph
一个glyph包含(或者可以生成)一直字符图片image和许多用于渲染文本的参数
如上图,glyph包含的字符图片为(xMin,yMin)到(xMax,yMax)的区域,包含的参数(Metrics)为bearingX,advance …
按理来说,我们只有得到一张字符图片就行了
比如从 origin(100,0)开始水平渲染文本,则只要将image的左上角与origin对齐进行贴图就行,完了将origin的x坐标加上image宽度和文字间隔,再进行下一个字符的渲染。
如果是汉字的话,貌似这样做也没问题,我们是方块字,每张字符图片的宽高差不多,按这种方法渲染出来的文本也比较整齐
然而英文不行,所以他们发明了各种各样的参数来确定字符图片的渲染位置
比如我们仍然从origin(100,0)处开始水平渲染文本,则要将image的左上角与
(originX + bearingX ,originY - bearingY)
对齐进行渲染,然后再将origin右移advance进行下一个字符渲染