15 Nov 2001 freetype   » (Master)

Fucked

For a long time, my office/work machine had the unpleasant habit of rebooting unexpectedly. I always thought that this was due to a flaky install. I thus decided last week to re-partition my disk in order to re- install Windows as well as a recent Linux distrib.. This machine is equipped with a backup hard-drive where I did save all my important data. I then re-partitioned my main drive and launched the Windows CD install. For some reason, the installation program did format the backup disk as well.

I basically lost one month of work, and I'm extremely pissed about it (I suppose I'll burn backup CDs more often now). Not only that, but I also discovered that my original Windows crashes were still there, and that Linux failed to boot sporadically, due to unexpected segmentation faults in random locations of the boot sequence..

After some heavy testing, and buying a new motherboard+CPU combo, things are back to stable. However, don't expect me to work on open-source in the following month since I have a lot to recover from :-(


Linux

I however managed to get Mandrake 8.1 installed on both my laptop and work machine (RedHat 7.2 installed but never worked correctly on both of them), and I have mixed feelings about them.

First, the latest KDE is really nice, but it is incredibly slow on a Mobile 266MHz Pentium with 160 MB ram. Launching any KDE program takes several seconds, and everything feels rather unresponsive, especially in the user interface.. Gnome feels a lot faster, though clearly less polished. I haven't tried installing Ximian yet but I've heard good things about it.. Nautilus is a dog (much worse than Konq) and I fail to see any interest int it for me.. I'd never put my mother in front of it, she's going to scream :o)

On the other hand, on the office machine (700 MHz Duron, 256 MB), things are, unsurprisingly, much more responsive..


Fonts

Of course, I couldn't resist testing fonts ! My experience has been rather unpleasant however:


  • Quality

    Many people have complained about the quality (or lack of) of fonts under XFree86. The standard disclaimer regarding this problem is to "use better fonts". Actually, I want to make it clear that fonts are not the culprits here, font engines are, and a modern XFree86 server will use no less than 3 distinct ones to render glyphs !!

    The problem lies in the fact that the renderers used for Type 1 fonts (which are T1Lib used in the X Font server, and FreeType 2 from "libXft") both produce low-to-medium quality glyphs for now.

    Fortunately, I'm enhancing the FT2 Postscript hinter, though it still needs some tweaks to work properly with all fonts.. and I'm out of free time :-( :-(


  • Anti-aliasing

    Nice to see anti-aliased fonts widely deployed. After all, FreeType supported this in 1997, it was about time that XFree86 could support them :-) More seriously, the legibility of anti-aliased fonts vary greatly with the type of screen your using (LCD or CRT) as well as the resolution you're using. I've tried to play with gamma correction by making small modifications in the FreeType sources and it seems that it's difficult to get one solution that works on any kind of display. This means I'll need to add some sort of gamma/alpha lookup support in the anti-aliased renderer, which shouldn't be especially hard (finding good tables is a different topic :-)

    I'm very impressed by Keith Packard's work on LCD-optimised rendering. On my LCD display, I virtually see _no_ color fringes at all (I do with Adobe's CoolType and even MS Reader) and it _definitely_ improves the legibility of text. I need to find time to review the ClearType patents to see if his code conflicts with them. If not, I'm looking forward to add this kind of feature to the core FreeType renderer to let other projects like GtkFB benefit from it..

  • Listing fonts :

    As always, font listing is sadly highly inconsistent. First, KDE and Gnome will not return the same list of installed fonts in their respective font dialogs. Second, enabling anti-aliased fonts in KDE (which uses libXft) completely changes the list of installed fonts (since it uses a completely different configuration file than the X font server). Third, many applications provide font dialogs but fail to properly filter mono-width ones (for example, "fixed" is the only available font in the Konsole font dialog on my machine, even though Courier, Andale, Lucida Console, etc.. are installed)

    Finally, all font dialogs seem to request or provide 'X11 encoding' fields. Isn't it time to drop this aberration from our toolkits (I mean GTK and Qt ??) and hide this from users.. ?? Windows does it pretty well even though it supports (more abstract) encodings too..


  • Installation

    Installing new fonts is still very arcane apparently. Even when using helper tools like DrakFont, it seems that the font name aliasing scheme fools everything. For example, even if I installed "Verdana", I always get its alias during display when I select it in any font dialog.. It seems that installing several versions of the same font typeface will produce unexpected results too.. though I need to dig the issue more deeply.


Excuse me if I seem to rant a lot here, but I'm clearly not satisfied with Unix's font capabilities (if not to say about rendering and printing). I do believe that a unified font & type service is really needed in order to support advanced capabilities like font embedding as well as simplify system-wide and user font management.

I believe that our current infrastructure (including libXft) is just too limited and needs some serious effort. I'd love to work on this topic and have even started designing a few things, but I lack any kind of free time for the moment to do that satisfyingly.. sick.. :-(

Bah.. this has been a long diary entry.. I probably won't post here before one week or two..

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!