Я понимаю, что ничего не знаю о том, как шрифты отображаются на моем компьютере.
Из того, что я могу заметить, рендеринг шрифтов обычно выполняется единообразно во всей системе. Например, настройки хинтинга субпиксельного шрифта, которые я настраиваю на панели управления DE, влияют на текст, который появляется на границах окна, в моем браузере, в моем текстовом редакторе и так далее. (Я должен заметить, что некоторые Java-приложения показывают заметную разницу, поэтому я предполагаю, что они используют другой механизм рендеринга шрифтов).
Что я понял из вышесказанного, так это то, что, вероятно, все приложения, которые нуждаются в рендеринге шрифтов, используют какую-либо библиотеку для ОС (или DE).
С другой стороны, браузеры обычно управляют своим собственным рендерингом через механизм рендеринга, который заботится о расположении различных элементов, включая текст, в соответствии с определенными правилами потока.
Я не уверен, насколько эти два факта совместимы. Я бы предположил, что браузер должен будет попросить ОС нарисовать глиф в заданной позиции, но как он может управлять потоком текста, не зная заранее, сколько места займет глиф? Существуют ли отдельные вызовы для определения размеров глифов, чтобы браузер мог управлять потоком, как если бы символы были небольшими прямоугольниками, которые позже заполняются ОС? (Хотя об этом не заботится кернинг). Или ОС отвечает за рисование всей текстовой области, включая текстовый поток? Возвращает ли ОС визуализированный глиф как растровое изображение и оставляет его приложению, чтобы нарисовать его на экране?