Mi rendo conto di non sapere praticamente nulla del modo in cui i caratteri vengono visualizzati nel mio computer.
Da quello che posso osservare, il rendering dei caratteri è generalmente realizzato in modo coerente in tutto il sistema. Ad esempio, le impostazioni di suggerimento del carattere subpixel che configuro nel mio pannello di controllo DE hanno influenza sul testo che appare sui bordi della finestra, nel mio browser, nel mio editor di testo e così via. (Dovrei osservare che alcune applicazioni Java mostrano una notevole differenza, quindi suppongo che stiano usando un diverso meccanismo di rendering dei caratteri).
Ciò che ottengo da quanto sopra è che probabilmente tutte le applicazioni che richiedono il rendering dei caratteri fanno uso di alcune librerie su tutto il sistema operativo (o DE).
D'altra parte, i browser di solito gestiscono il proprio rendering attraverso un motore di rendering, che si occupa di posizionare vari elementi - incluso il testo - in base a regole di flusso specifiche.
Non sono sicuro di come questi due fatti siano compatibili. Suppongo che il browser dovrebbe chiedere al sistema operativo di disegnare un glifo in una determinata posizione, ma come può gestire il flusso di testo senza sapere in anticipo quanto spazio occuperà il glifo? Esistono chiamate separate per determinare le dimensioni dei glifi, in modo che il browser possa gestire il flusso come se i caratteri fossero piccoli riquadri che verranno successivamente compilati dal sistema operativo? (Anche se questo non si occupa della crenatura). O il sistema operativo è responsabile del disegno di un'intera area di testo, incluso il flusso di testo? Il sistema operativo restituisce il glifo renderizzato come bitmap e lo lascia all'applicazione per disegnarlo sullo schermo?