Use corrent font metrics(scaled values instead of global values)
Use float for uniforms in shader
Harfbuzz gives us codepoint, which should be used as index(in FT_Load_Glyph) directly, instead of as char code(in FT_Load_Char). Cleanup logic later.
Minor cleanup. Further optimization: textWidths() should be cached in LineInfo, and render only text/selection in the screen area. Maybe render to different layers and composite?