molily: Font-Rendering unter Firefox

Hallo Leute,

ich habe eine Off-Topic-Frage zu meinem Bastellinux (Gentoo):

Wenn ich Firefox selbst kompiliere, dann sieht das Anti-Aliasing der Fonts völlig anders aus als wenn ich das vorkompilierte Paket (mozilla-firefox-bin) installiere. Das gilt für andere selbst kompilierte Gtk-Anwendungen auch. Das Anti-Aliasing sieht in Qt-Anwendungen viel besser aus, aber auch wie gesagt bei Firefox-bin.

Binärdistribution:
http://molily.de/temp/ff-bin.png
Vorkompiliert:
http://molily.de/temp/ff-source.png

Gut, ich will jetzt keine Debatte über gute Lesbarkeit lostreten, vielen werden die klareren und weniger verschwommenen, dafür aber schmaleren Glyphen der selbstkompilierten Variante besser gefallen. Mir ist das auch erst wirklich beim Wechsel auf einen größeren Monitors mit höherer Auflösung aufgefallen. Der stellt alles kleiner dar, da kann ich die volleren, dickeren Glyphen besser lesen, während die schmalen vom weißen Hintergrund überblendet werden. Überhaupt wird der Text in der gleichen font-size viel breiter und höher gerendert?!

Wie auch immer - ich würd gerne wissen, warum sich die beiden Firefoxe so unterschiedlich verhalten. Ich habe übrigens Cairo 1.4.12 und Pango 1.20.0 installiert.

Mathias

  1. per about:buildconfig kannst du dir anzeigen lassen, was beim Compilieren eingestellt war. Vergleich das mal mit deinen Optionen.

    1. Hallo,

      per about:buildconfig kannst du dir anzeigen lassen, was beim Compilieren eingestellt war. Vergleich das mal mit deinen Optionen.

      i686-pc-linux-gnu (vorkompiliert):

      --enable-application=browser --enable-update-channel=release --enable-update-packaging --enable-official-branding --disable-debug '--enable-optimize=-Os -freorder-blocks -fno-reorder-functions -gstabs+' --disable-tests --enable-default-toolkit=gtk2 --enable-xft --disable-freetype2 --enable-svg --enable-canvas --enable-static --disable-shared

      x86_64-pc-linux-gnu (selbstkompiliert):

      --enable-application=browser --enable-optimize=-O2 --disable-installer --disable-pedantic --enable-crypto --with-system-jpeg --with-system-png --with-system-zlib --disable-updater --enable-default-toolkit=gtk2 --enable-pango --enable-svg --enable-svg-renderer=cairo --enable-system-cairo --disable-strip --disable-strip-libs --enable-single-profile --disable-profilesharing --disable-profilelocking --disable-ipv6 --disable-xinerama --disable-xprint --disable-freetype2 --disable-debug --disable-tests --enable-reorder --enable-application=browser --enable-image-encoder=all --enable-canvas --with-system-nspr --with-system-nss --enable-official-branding --enable-oji --enable-mathml --enable-jsd --enable-xpctools --with-default-mozilla-five-home=/usr/lib64/mozilla-firefox --enable-extensions=default,typeaheadfind,venkman --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu

      Hmm... ist jetzt nicht sonderlich aufschlussreich, oder?
      Beide verwenden kein freetype, dafür gtk2, und an cairo und pango liegts nicht?

      Mathias

      1. Nachtrag: Bei der selbstkompilierten steht nichts von Xft, ist mir aufgefallen.

  2. Hallo Mathias,

    Wie auch immer - ich würd gerne wissen, warum sich die beiden Firefoxe so unterschiedlich verhalten. Ich habe übrigens Cairo 1.4.12 und Pango 1.20.0 installiert.

    Das hat vermutlich weniger etwas mit Cairo oder Pango zu tun als mit dem Font rendering subsystem.

    Die firefox-bin-Variante nutzt auf jeden Fall das fontconfig-Subsystem. Um das endgültig zu überprüfen kannst Du ja in der ~/.fonts.conf ein <match target="font"><edit mode="assign" name="antialias"><bool>false</bool></edit></match> einfügen (bzw. das bestehende editieren) und den firefox-bin neu starten. Dann sollte er Antialiasing genausowenig verwenden, wie der selbstkompilierte.

    Warum der selbstkompilierte allerdings kein Antialiasing verwendet, ist mir allerdings etwas ein Rätsel.

    Folgende Informationen *könnten* hilfreich zur Bestimmung der Lösungsursache sein:

    * Der Inhalt der Umgebungsvariable $GDK_USE_XFT auf der Konsole.
     * Der Inhalt der ~/.fonts.conf
     * Die USE-Flags der folgenden Pakete:
           x11-libs/gtk+
           www-client/mozilla-firefox

    Viele Grüße,
    Christian

    1. Hallo,

      Warum der selbstkompilierte allerdings kein Antialiasing verwendet, ist mir allerdings etwas ein Rätsel.

      Beide verwenden Anti-Aliasing, aber unterschiedliches.
      Ich kompiliere gerade neu, aber ich vermute, die selbstkompilierte Variante verwendet auch .fonts.conf und wenn ich Anti-Aliasing dort ausschalte, siehts zumindest in beiden gleich schlecht aus. ;) (Werde ich gleich nochmal überprüfen.)

      * Der Inhalt der Umgebungsvariable $GDK_USE_XFT auf der Konsole.

      1

      * Der Inhalt der ~/.fonts.conf

      rgba: none
      hinting: true
      hintstyle: hintmedium
      antialias: true

      (Natürlich als XML.)

      * Die USE-Flags der folgenden Pakete:
             x11-libs/gtk+

      X jpeg tiff -cups -debug -doc -vim-syntax -xinerama

      www-client/mozilla-firefox

      gnome mozdevelop -bindist -debug -filepicker -iceweasel -ipv6 -java -moznopango -restrict-javascript -xforms -xinerama -xprint

      Mathias

      1. Hallo,

        die selbstkompilierte Variante verwendet auch .fonts.conf und wenn ich Anti-Aliasing dort ausschalte, siehts zumindest in beiden gleich schlecht aus

        Das stimmt teilweise. Beide reagieren auf .fonts.conf in der Hinsicht. Aber wenn ich Anti-Aliasing ausschalte, sieht es kurioserweise im vorkompilierten Build schlechter aus.
        Da wird also anscheinend einfach ein anderer Renderer verwendet, beide reagieren auf .fonts.conf.

        Mathias

        1. Hallo Mathias,

          Das stimmt teilweise. Beide reagieren auf .fonts.conf in der Hinsicht. Aber wenn ich Anti-Aliasing ausschalte, sieht es kurioserweise im vorkompilierten Build schlechter aus.
          Da wird also anscheinend einfach ein anderer Renderer verwendet, beide reagieren auf .fonts.conf.

          Sorry, aber keine Ahnung, was da genau los ist.

          Viele Grüße,
          Christian