Wie werden unter Linux die Schriften gerendert? Der X-Server scheint dafür ja eigene Befehle für das anzeigen (rendern) von Text zu haben. Dennoch wird in den meisten Programm die "libfreetype.so" gelinkt was darauf hindeutet, dass sich das Programm die Buchstaben selbst rendert. Nur müssten in diesem Fall die einzelnen Buchstaben, Sätze oder ganze Absätze als Bitmaps zum X-Server übertragen werden was einen enormen Bandbreiten- und Speicherbedarf hätte. Also wo (welcher Komponente) werden nun die Schriften gerendert?
Linux Fontrendering?
|
Anmeldungsdatum: Beiträge: 356 |
|
|
Supporter
Anmeldungsdatum: Beiträge: 8556 |
|
|
Anmeldungsdatum: Beiträge: 77 |
|
|
Anmeldungsdatum: Beiträge: 345 |
wo wir eh schon voll an der frage des threadstarters vorbei sind: ich mag die mac fonts ur gern ☺ http://www.ubuntu-unleashed.com/2008/05/howto-install-mac-fonts-on-ubuntu.html |
|
Anmeldungsdatum: Beiträge: 361 |
Ich danke desperado666 trotzdem für den Link. ☺ Habe dadurch heute zum ersten mal "Autohinting" eingestellt. Vorher hatte ich immer nur über System –> Einstellungen –> Erscheinungsbild "Subpixelglättung" und "starkes Hinting" eingestellt. Speziell asiatische Fonts sehen aber mit "autohinting" nochmal besser aus. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 356 |
der frager schrieb:
Wäre aber dennoch toll wenn wir wieder zu der Frage zurück kommen würden. 😉 |
|
Supporter
Anmeldungsdatum: Beiträge: 8556 |
steht doch im zitiertem wiki artikel. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 356 |
desperado666 schrieb:
Und wie werden dann diese Schriften zum X-server übertragen? Bzw. Warum muss man dem X-Server dann auch den Pfad zu den Schriftarten konfigurieren wenn diese eh von der Anwendung selbst gerendert wird? |
|
Anmeldungsdatum: Beiträge: 48 |
Den Pfad braucht X um seine eigenen Schriften zu finden denn nicht jede Anwendung nutzt eine eigene Vektorengine. Häufig ist das auf jedem System ziemlich bunt gemischt - "echte" Gnome-Anwendungen nutzen Cairo und andere benutzen die eingebaute Fontengine des X-Servers (zB. Mozilla). Egal wo bzw von welcher Bibliothek die Schrift gezeichnet wird ist der Ablauf immer gleich: Die Schriften werden auf eine Bitmap gerendert und diese Bitmap wird dann auf den Bildschirm kopiert (die Spezialisten mögen mir diese Vereinfachung verzeihen ☺ ). Das geht gar nicht anders denn keine Grafikkarte dieser Welt kann direkt Schriften rendern - mehr als einfache Texturen, Punkte, Linien und Dreiecke sind da nicht zu holen. Den Speicherverbrauch kann man durch geschickte Strategien bei der Wiederverwendung und mit Hilfe von Datenkompression ziemlich klein halten ohne dass die Geschwindigkeit darunter leiden würde. Die Engines sind ziemlich ausgereift in dieser Beziehung. Normalerweise (bzw zum Glück) braucht man sich mit solchen Details aber nicht selbst herumzuschlagen. Das läuft alles unter der Haube ab. Wenn es Dich die Details dennoch interessieren, kannst Du ja mal einen Blick in die Sourcen von Cairo wagen. ☺ |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 356 |
@Rome: Ich habe mich noch nicht mit der X-Server-programmierung beschäftigt, aber ist es einem Programm möglich mehrere Bitmaps zum Server zu schicken und diese dann innerhalb seines Fensters mehrmals zu blitten? PS: Firefox scheint die Schriften auch selbst zu rendern (hat die libfreetype.so gelinkt). |
|
Anmeldungsdatum: Beiträge: 2690 |
Firefox überlässt seit Version 3 das Rendern des Bildschirminhaltes auch Cairo. Ansonsten, schau mal hier nach : |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 356 |
Nach langem suchen bin ich auf diese 2 Artikel gestoßen in denen es kurz und bündig erklärt wird. http://en.wikipedia.org/wiki/Xft http://en.wikipedia.org/wiki/XRender Tja, nach dem logischsten sucht man halt zum Schluß. |