Benutzung von FreeType



  • Hallo,

    ich weiß nicht, ob ich hier richtig bin. Ich versuche es einfach mal.
    Hat jemand von Euch Erfahrung mit FreeType2 ?

    Ich habe mir die Beispiel Programme angeschaut, und versuche daraus herauszufinden, wie ich eine Schrift mit FreeType in ein WindowsFenster bringe.

    Die Beispielprogramme bekomme ich bei mir größtenteils nicht zum Laufen.

    Vlt. habe ich ja Glück und einer aus diesem Forum hat schon Erfahrung mit dieser Bibliothek gesammelt?

    Danke und Gruß



  • Hihi. Ein wenig. FreeType2 ist ... naja. Wenn man Humor hat "lustig", sonst eher "lästig".
    Du musst halt die Schirftart direkt als File laden (Windows Font Mapper nutzt dir da nix), dann musste eine Grösse einstellen, einen Glyph auswählen, dir den in einen Puffer (z.B. char Array) rendern lassen, und den Puffer dann irgendwie auf den DC vom Fenster malen.

    Noch lustiger wirds wenn du mehrere Schriftarten in einem File hast, dann musst du die passende mit den FreeType Funktionen suchen, macht auch mächtig Spass, vor allem da FreeType das nicht soweit abstrahiert dass man sich nichtmehr mit Plattformabhängigem Stuff in TrueType Fonts rumplagen müsste. Argh 😞

    Wenn du dann viel Text rendern möchtest, und das alles noch in endlicher Zeit erfolgen soll musst du auch noch feste Cachen, und die FreeType2 eigenen Cachingfunktionen sehen für meine Begriffe nicht erwachsen genug aus um sie zu verwenden. Aber du kannst es ja mal probieren 😉

    Und für Unicode Support brauchst du ne eigene Layout Engine wie sie z.B. in der ICU zu finden ist... FreeType2 kann eben nur Glyphen malen, sonst quasi nix.



  • Hallo hustbaer,

    ich habe mittlerweile ein Paar Testprogramme von FreeType2 bei mir zum Laufen gebracht. Darunter ist auch ein Beispiel wie man Buchstaben in ein Windowsfenster darstellen kann.

    Allerdings bräuchten wir auch Unicode.

    Du schreibst folgendes
    Und für Unicode Support brauchst du ne eigene Layout Engine wie sie z.B. in der ICU zu finden ist

    Kannst Du das noch mal näher erläutern. Was ist ICU?

    Danke und Gruß



  • Ich glaube er mein "International Components for Unicode (ICU)" hier ne page url http://icu-project.org/ und Wiki http://en.wikipedia.org/wiki/International_Components_for_Unicode



  • Jo, die meine ich.

    Da ist eine "ParagraphLayout" Klasse dabei - leider ziemlich unvollständig und man sieht ihr an dass sie nirgends produktiv eingesetzt wird. Bzw. hoffe ich das. (Trotzdem sind die Funktionen als "stable" ausgezeichnet was wohl auch nix gutes verheisst)

    Du musst dann die ICU und die FreeType2 "zusammenknoten", dazu musst du ne Klasse implementieren die nen abstrahierten Font darstellt, z.B. Zugriffe auf diverse Tables und Metrics des Fonts bzw. der darin enthaltenen Glyphen erlaubt etc.

    Alles sehr sehr steinig.

    Natürlich muss man nicht ICU verwenden, es gibt da noch PANGO (mir etwas zu unix-zentrisch) und Uniscribe. PANGO wäre etwas häftig in unsere Projekte einzubeinden gewesen (braucht u.a. die GLib und noch ein paar andere die wir derzeit garnicht in verwendung haben), deswegen haben wir die Idee verworfen. Und Uniscribe braucht nen DC mit reinselektiertem FONT, was wiederum doof ist wenn man zum Rendern dann die FreeType verwenden will, die ja die ganzen Font Geschichten selbst handlet.

    Sollte jmd. eine bessere Lösung für Windows wissen ... wäre ich auch froh davon zu erfahren. Müsste halt einiges können, also "flow" muss man selbst machen können (eben das "paragraph layout"), "hinting" abschaltbar, Unicode Support (inklusive bidi), Rendern in char arrays, schönes Antialiasing etc.


Anmelden zum Antworten