<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.24.0">
</HEAD>
<BODY>
Salvete, my first post. This is a follow-up to Carl’s comment on bug <BR>
<A HREF="http://bugs.freedesktop.org/show_bug.cgi?id=10301">http://bugs.freedesktop.org/show_bug.cgi?id=10301</A><BR>
<BR>
Thanks for the points you make.<BR>
<BR>
(In reply to comment #67)<BR>
> First, you seem to be largely arguing for a change in the default filtering,<BR>
> beyond just adding code to allow for the freetype filtering to be used. That's<BR>
> certainly a useful discussion to have. But oddly, the images on the page don't<BR>
> actually show direct comparisons of the different choices we have here for a<BR>
> default. I'd like to see the results of cairo's current code compared to<BR>
> freetype's LEGACY and that compared to FIR3 and FIR3 compared to FIR5. Things<BR>
> like that.<BR>
<BR>
Yes, I do. Unfortunately my own points were dispersed across some posts here¹ and on that page². And I agree that my comparison is not exhaustive wrt the four modes. It wasn’t meant to be any-to-any. (You can do that, i.e. an ABX test, by opening the attached Gimp file). <BR>
The comparisons I do have are there for three reasons: <BR>
* To disqualify LEGACY as a default filter. It sucks for unhinted and lightly hinted. Always, so it’s out.<BR>
* To argue that FIR5 is a high quality filter suitable to be default.<BR>
* To show that light or no hinting should be the default assumption for Cairo.<BR>
<BR>
basic logic. <BR>
<BR>
FIR3 was not needed to demonstrate this argument. I can however add it if that helps. Your original comment was that the Cairo-internal filter was written with the assumption of pixel-fitting, and that this were “good hinting”. I’m saying that’s a bad assumption, for Cairo.<BR>
<BR>
> You also limit the presentation by saying "This is not a test of the boring<BR>
> canonical high contrast scenario with bytecode hinted DejaVu Sans, 8pt text,<BR>
> and pixel-fitted stems.". As "boring" as that scenario might be, it's a<BR>
> terribly important one, so I would really like to see some examples of that<BR>
> added if you would. I'd like to ensure a "do no harm" situation here.<BR>
<BR>
Yes. I know that most Cairo text today is DejaVu Sans 8pt. But fortunately this is entirely solvable by desktop integrators with some smart fontconfig setup. If user requests “Best contrast” then enable LEGACY, If user requests “Best shapes” then enable FIR5 or FIR3. But for a generic drawing surface defaulting to the new filter is the best assumption.<BR>
<BR>
Let me remind you of Sylvain’s exhaustive test: <A HREF="http://spasche.net/files/lcdfiltering">http://spasche.net/files/lcdfiltering</A> . Some fonts work better with certain setting combinations than others, contingent on their respective geometry. But again, the new filter wins by virtue of being most versatile and robust.<BR>
<BR>
> Meanwhile, another problem I had with the original patch series was that it<BR>
> simply exported all of the freetype filters as-is up to the user level through<BR>
> cairo's public API. One problem with this is that the filters are all obviously<BR>
> freetype-specific while cairo provides a cross-platform API. An argument for<BR>
> providing the API is for someone like Behdad to be able to write a<BR>
> font-preferences dialog that presents (unnamed) font-rendering samples to the<BR>
> user and lets them simply click on which one they prefer.<BR>
<BR>
There are certainly more conceivable use cases of this API besides generating these previews. I guess also Cairo usage on other platforms would benefit from having access to their respective settings, whatever technology they use and what modes they offer.<BR>
<BR>
> But for that kind of font-preferences dialog, we already have 3 different<BR>
> ANTIALIAS font options and 4 different HINT_STYLE options. So that's 12<BR>
> different necessary samples now, and adding 4 different filters expands that to<BR>
> 48, which seems to go way beyond what any user could ever want to see.<BR>
<BR>
Sorry, but who would want to offer that? The sensible option combinations would reduce the necessary previews to at most half a dozen. All the others are simply incompatible. David Turner drafted a font preferences dialog last year that would only allow good combinations, all reduced to four main options. See here: <A HREF="http://article.gmane.org/gmane.comp.lib.cairo/9347">http://article.gmane.org/gmane.comp.lib.cairo/9347</A><BR>
<BR>
> Meanwhile, the descriptions on your page seem to argue for specific filters<BR>
> being best in specific situations. For example, there seems to be an implicit<BR>
> preference for FIR5, (no FIR3 examples, and a link to an Ubuntu poll favoring<BR>
> FIR5). So is there any reason to provide FIR3 at all?<BR>
<BR>
Well, I’m sold on FIR5. To me the other one has more fringes and worse shapes. But this could be different for the next guy. I see no need to remove it.<BR>
<BR>
> Also, you argue that<BR>
> LEGACY doesn't do well in anything but the strongly-hinted case, but does it<BR>
> (or cairo's code?) actually do best there?<BR>
<BR>
Sometimes it does. This is obvious looking through Sylvain’s page. Ignoring that this is the old BCI-vs-Autohinter taste issue (de gustibus, etc), it’s a lot more contingent on the particular font and size whether it /is/ best.<BR>
<BR>
> I'm wondering if we shouldn't automatically choose a filter based on the<BR>
> HINT_STYLE option. I'm also wondering that if we do decide to expose these in<BR>
> the API whether we should just export two options absed on their general<BR>
> characteristics, (INTER_PIXEL and INTRA_PIXEL ?), rather than so much about<BR>
> their details implementation, (FIR3 and FIR5, etc.).<BR>
<BR>
Well, these are only aliases, the actual names are DEFAULT, LIGHT and LEGACY (or vice versa?). I’ve been using the name FIR5 because DEFAULT would be confusing since at the moment LEGACY is the default and not DEFAULT (sic!). I don’t think any one of them should be removed.<BR>
<BR>
--Tobias<BR>
<BR>
¹ <A HREF="http://bugs.freedesktop.org/show_bug.cgi?id=10301">http://bugs.freedesktop.org/show_bug.cgi?id=10301</A><BR>
² <A HREF="http://www.alice-dsl.net/towolf/cairo/">http://www.alice-dsl.net/towolf/cairo/</A><BR>
<BR>
<BR>
> Well, this is all a little bit off-topic for the specific bug here, and it's<BR>
> getting into API discussion that really needs to take place on the cairo list.<BR>
> <BR>
> Let's move the discussion there. Feel free to quote my stuff liberally or<BR>
> completely if you'd like to reply on the list.<BR>
> <BR>
> Thanks,<BR>
> <BR>
> -Carl<BR>
> <BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>