fontAscender
横向排版
auto& metrics = _fontRef->glyph->metrics; outRect.origin.x = metrics.horiBearingX >> 6; // 字符轮廓 与 字符位置 之间的水平距离。 outRect.origin.y = -(metrics.horiBearingY >> 6);// 字符轮廓 与 字符基线 之间的垂直距离 outRect.size.width = (metrics.width >> 6); // 字形的宽度 outRect.size.height = (metrics.height >> 6);// 字形的高度
outRect存储的是字符纹理的矩形包围盒
- ascender: 从
水平基线
到最高字符
的顶部距离 advance
:表示字符的前进值,即字符的渲染后应该向前移动的距离
纵向排版
- 字符纹理会扩边1像素
- 相邻的字符纹理间隔2像素
struct FontLetterDefinition { float U; float V; float width; float height; float offsetX; float offsetY; int textureID; bool validDefinition; int xAdvance; }