Comment 101 for bug 164640

Revision history for this message
In , Carl Worth (cworth) wrote :

(In reply to comment #66)
> Hello again. I was curious, so I added a new section to my comparison page
> juxtaposing Vista and Cairo:
> http://www.alice-dsl.net/towolf/cairo/#vista

Hello again,

While you're adding new images, I'd like to write up a couple quick thoughts based on your presentation so far.

First, you seem to be largely arguing for a change in the default filtering, beyond just adding code to allow for the freetype filtering to be used. That's certainly a useful discussion to have. But oddly, the images on the page don't actually show direct comparisons of the different choices we have here for a default. I'd like to see the results of cairo's current code compared to freetype's LEGACY and that compared to FIR3 and FIR3 compared to FIR5. Things like that.

You also limit the presentation by saying "This is not a test of the boring canonical high contrast scenario with bytecode hinted DejaVu Sans, 8pt text, and pixel-fitted stems.". As "boring" as that scenario might be, it's a terribly important one, so I would really like to see some examples of that added if you would. I'd like to ensure a "do no harm" situation here.

Meanwhile, another problem I had with the original patch series was that it simply exported all of the freetype filters as-is up to the user level through cairo's public API. One problem with this is that the filters are all obviously freetype-specific while cairo provides a cross-platform API. An argument for providing the API is for someone like Behdad to be able to write a font-preferences dialog that presents (unnamed) font-rendering samples to the user and lets them simply click on which one they prefer.

But for that kind of font-preferences dialog, we already have 3 different ANTIALIAS font options and 4 different HINT_STYLE options. So that's 12 different necessary samples now, and adding 4 different filters expands that to 48, which seems to go way beyond what any user could ever want to see.

Meanwhile, the descriptions on your page seem to argue for specific filters being best in specific situations. For example, there seems to be an implicit preference for FIR5, (no FIR3 examples, and a link to an Ubuntu poll favoring FIR5). So is there any reason to provide FIR3 at all? Also, you argue that LEGACY doesn't do well in anything but the strongly-hinted case, but does it (or cairo's code?) actually do best there?

I'm wondering if we shouldn't automatically choose a filter based on the HINT_STYLE option. I'm also wondering that if we do decide to expose these in the API whether we should just export two options absed on their general characteristics, (INTER_PIXEL and INTRA_PIXEL ?), rather than so much about their details implementation, (FIR3 and FIR5, etc.).

Well, this is all a little bit off-topic for the specific bug here, and it's getting into API discussion that really needs to take place on the cairo list.

Let's move the discussion there. Feel free to quote my stuff liberally or completely if you'd like to reply on the list.

Thanks,

-Carl