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
5
A
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!
Problemi correlati
- 1. Aiutami a comprendere WebDAV e Autoversioning
- 2. Problemi Unicode in FreeType
- 3. aiutami a capire cuda
- 4. Compilazione di FreeType a DLL (a differenza della libreria statica)
- 5. Aiutami con la crittografia XOR
- 6. LibGDX FreeType carattere sfocata
- 7. Layout e rendering dei font con cairo e freetype
- 8. Comprendere la removeRange (_ :) documentazione
- 9. Comprendere la funzione `Reduce`
- 10. FreeType conflitto "generico" con la parola chiave C++/cx
- 11. Per cosa usiamo glifo?
- 12. Aiutami a capire questo binario File Format
- 13. Aiutami a rimuovere un Singleton: cercare un'alternativa
- 14. Comprendere la condizione di uscita di un ciclo for
- 15. Compilare l'errore PHP con freetype
- 16. Imparare a comprendere plyr, ddply
- 17. Testo principale - Altezza del glifo
- 18. Comprendere la funzione di regressione in Matlab
- 19. Comprendere la webview di Android addjavascriptinterface
- 20. Tentativo di comprendere la gerarchia delle viste
- 21. Problema di rendering dei caratteri con Freetype e OpenGL
- 22. Comprendere la classe WIndow di WPF
- 23. Comprendere la progettazione di std :: istream :: leggere
- 24. Aiutami a capire questo pezzo di codice Lua
- 25. Comprendere operatori di assegnazione CComBSTR
- 26. Aiutami a connettere concetti di ereditarietà e relazionali
- 27. Per favore aiutami a capire queste tracce di Hclof Clojure
- 28. Aiutami a capire questo utilizzo di boost :: legare
- 29. Aiutami a capire il frammento di codice in C#
- 30. Aiutami a creare una stringa di connessione jTDS
Grazie, era quello che stavo cercando. –