Font terms - baseline - line at bottom that letters 'sit' on - xMin,yMin,xMax,yMax - the tight bounds around the glyph - left side bearing - (lsb) space to left of xMin (when drawing this after another glyph) - think letters like D,E,F,K,L,M,N,P,R with a flat left side to them - then think of letters like C,G,O,Q with a curved left side - they have different amounts of space to the left of them - right side bearing - (rsb) space to right of xMax (space to leave on right side of glyph) - H,N,M with flat right sides, and D,P,B etc with rounded right sides, they have different amounts of space to the right of them - advance width - (rsb - lsb) how much the cursor position moves forward from this glyph to the next - tracking - a uniform amount of space to add between letters of a word (in addition to the advance width) - kerning - adjustment of spacing between particular letter pairs - Think of A followed by V or T. AV or AT or VA or 74. These letter pairs can be pushed closer together. The lsb,rsb alone is not enough, this is specific for particular combinations of letters. - some font design software allows class based kerning - classes like left-side-curve and left-side-flat letters - italics - leaning text - italic versions of glyphs will need its own different set of metrics and kerning - hinting - hints to the rasterizer so that at small point sizes, important details aren't ignored and proportions of the font are maintained. This involves a type of VM and instructions. There were patents that have expired, but an alternative approach is to use anti-aliasing instead and there are other patents related to clear-type / lcd sub-pixel aware rasterization which may not have expired yet. This can give sub-pixel positioning of glyphs on the screen, but that has an effect on cachability of glyphs. - musings - I wonder if it is possible to find for latin-1 text, some cross-font common kerning strategies and letter classes that hold true, and also to be able to tween between the non-italic to italic metrics and kerning to be able to skew the glyphs by arbitary angles without needing different fonts. - it seems unfortunate that a whole new font is needed for an italic version when the original is in vector form and easy to skew, all but for the metric and kerning tables. I wonder if the same can be applied to bold fonts, with tweening between weights. Another type of font called a stroke based font may solve some of these. I'm aware of Arphic that provides a stroke based font for CJK fonts. Another technology is SDF - signed distance fields, which are bitmaps of distances so that smooth outline can be made from a texture mapped description. A SDF might be more GPU friendly as the rendering can be done by a shader, it doesn't address the issue of changing italic angle - although that might be achieved by angling the quads, but it might be able to change weights by adjusting a threshold distance to draw a point at. I wonder then if an idea might be to rasterize a TTF font in to a SDF rather than directly to a regular bitmap/texture?