[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#448555: fonts are not hinted, therefore blurry and ugly



Hello,

the proposed patch is not ideal, as it ignores the Fontconfig LCD filter settings and produces quite severe color fringes for many fonts.

First, this is not a hinting issue, but an LCD filtering issue. For Qt to honor the Fontconfig filtering settings in 4.5.0 it needed Freetype to be built with subpixel rendering support. In that case Freetype does all the font rendering and filtering and Qt is only used to display the fonts in the end.

However, if Freetype is not built with subpixel rendering support Qt does subpixel rendering by using Freetype's gray antialiasing into a mask that's three times wider than the width of the glyph, and applying a smoothing filter on the resulting mask. The proposed patch simply disables the smoothing filter which causes severe color fringes on certain fonts (especially visible with FreeSans or FreeSerif).

The correct solution when Freetype is built without subpixel antialiasing support is to fall back to the Qt 3 intrapixel LCD filter instead of the Qt 4 smoothing filter when the legacy LCD filter setting is specified in Fontconfig. This will be fixed in Qt 4.5.1 (ref http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=248387).

The following comparison page shows the differences between no LCD filtering (as per the proposed patch), default LCD filtering (close to Qt 4's smoothing filter), and legacy LCD filtering (close to Qt 3's intrapixel filter): http://www.spasche.net/files/lcdfiltering/

In conclusion I hope you do not include the proposed patch in Debian or in qt-copy :)

Cheers,
Samuel Rødal



Reply to: