Freetype changes

Matthew Garrett mjg59 at srcf.ucam.org
Thu Sep 20 17:42:00 BST 2007


Ok, Tobias has produced a very helpful image at 
ftp://ftp.tuebingen.mpg.de/kyb/towolf/screenshot1.png - from left to 
right, they're gutsy before I reverted the changes, gutsy with altered 
hinting settings and gutsy post-revert.

I find the left-hand column the most attractive, but the right-hand 
column the most readable. The difference is clearest under 
magnification. Vertical strokes tend to be fully pixel aligned in the 
right-hand column, but blur out into adjacent subpixels in the left-hand 
column. The advantage of allowing this blurring is that it permits more 
accurate positioning of the characters, allowing for more even spacing 
and correct rendering of the shapes. The disadvantage is that what used 
to be a solid black line rendered on a pixel boundary is now a grey line 
with a slight colour fringe. More importantly to me, it also gives me a 
headache (something of an irritation given that my work requires me to 
be using terminals for most of the day)

The issue becomes more obvious as DPI[1] reduces. On a 14" 
screen at 1024x768 (still not uncommon, sadly), the colour fringing is 
very noticable[2]. This is less of a problem if we reduce the 
agressiveness of the hinting, as seen in the middle column of the image 
- the downside is that you get reduced contrast as a result, which also 
has an unfortunate impact for people using the terminal.

I suspect that there isn't actually a "one size fits all" solution here. 
Contrast is the most important factor in some applications, while in 
others correctness is much more important. It may be possible to achieve 
this at the fontconfig level by choosing different defaults for 
monospace compared to other fonts, but right now with the new filtering 
there's no way to obtain the old behaviour.

It may be obvious that I'm concentrating on the terminal use case here, 
to the arguable exclusion of the (more common) graphical user interface 
case. The main reason I'm doing that is that I perceive the benefit to 
the general desktop case to be aesthetic rather than functional, and the 
degredation to the terminal case to be functional rather than aesthetic. 
Most of our developer base still use terminals for a lot of work, and 
making changes that impact their ability to do that has the potential to 
reduce our ability to develop the distribution.

Anyway. I agree with Scott that this change does provide benefits for 
many use cases, and I think we should look into it further. However, I'd 
rather do that at the beginning of a development cycle where we have 
enough time to fine-tune it properly - doing it at beta time is only 
really going to give us the options of shipping it as-is or reverting it 
entirely, and the general userbase is going to be unhappy if we revert 
it between beta and release. I'd prefer to defer it until we have the 
confidence that we can get it into a more workable state.

[1] Actual screen DPI, rather than the logical DPI that X uses
[2] Cleartype also behaves pathologically in that case - I find XP 
almost unusable on that sort of hardware
-- 
Matthew Garrett | mjg59 at srcf.ucam.org



More information about the ubuntu-devel mailing list