2015-02-17 19 views
5

Sto imparando le basi dell'API di FreeType per l'uso in OpenGL e sono confuso su una cosa. Carichiamo il carattere, quindi caricate ciascun glifo uno alla volta nello slot del glifo del font. Il glifo ha un numero di campi, tra cui advance, che ha un campo x e un . Ora, capisco che si dice che non viene usato molto, ma in caso di utilizzo di , ciò che non capisco è che ogni personaggio viene reso in isolamento nello slot del glifo , quindi, come può il glifo sapere che tutti i personaggi successivi dovrebbero essere resi con uno specifico offset frazionale? Cosa succederebbe se si eseguisse il rendering molto dello stesso personaggio in successione? Non ti ritroverai con una leggera inclinazione o declino diagonale nel tuo blocco di testo finale?FreeType - aiutami a comprendere la proprietà advance.y di glifo

risposta

1

Storicamente advance.y è principalmente per il testo verticale, come utilizzato in Asia (FT_LOAD_VERTICAL_LAYOUT si innescherà esso.) In un normale caso di rendering, non si dovrebbe ottenere al tempo stesso valori diversi da zero per advance.x e advance.y.

Ma è anche utile utilizzare Freetype in un modo più generico. Se si desidera scrivere il testo verticale latino in un modo inclinato di 30 °, è ancora possibile utilizzare le stesse strutture: si applica (tramite FT_Set_Transform) la matrice di inclinazione di 30 ° a ciascun glifo, ma anche al vettore di avanzamento; e il risultato avrà effettivamente una pendenza diagonale; come inteso!

+0

Grazie, era quello che stavo cercando. –