<!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&#8217;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>
&gt; First, you seem to be largely arguing for a change in the default filtering,<BR>
&gt; beyond just adding code to allow for the freetype filtering to be used. That's<BR>
&gt; certainly a useful discussion to have. But oddly, the images on the page don't<BR>
&gt; actually show direct comparisons of the different choices we have here for a<BR>
&gt; default. I'd like to see the results of cairo's current code compared to<BR>
&gt; freetype's LEGACY and that compared to FIR3 and FIR3 compared to FIR5. Things<BR>
&gt; like that.<BR>
<BR>
Yes, I do. Unfortunately my own points were dispersed across some posts here&#185; and on that page&#178;. And I agree that my comparison is not exhaustive wrt the four modes. It wasn&#8217;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&#8217;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 &#8220;good hinting&#8221;. I&#8217;m saying that&#8217;s a bad assumption, for Cairo.<BR>
<BR>
&gt; You also limit the presentation by saying &quot;This is not a test of the boring<BR>
&gt; canonical high contrast scenario with bytecode hinted DejaVu Sans, 8pt text,<BR>
&gt; and pixel-fitted stems.&quot;. As &quot;boring&quot; as that scenario might be, it's a<BR>
&gt; terribly important one, so I would really like to see some examples of that<BR>
&gt; added if you would. I'd like to ensure a &quot;do no harm&quot; 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 &#8220;Best contrast&#8221; then enable LEGACY, If user requests &#8220;Best shapes&#8221; 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&#8217;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>
&gt; Meanwhile, another problem I had with the original patch series was that it<BR>
&gt; simply exported all of the freetype filters as-is up to the user level through<BR>
&gt; cairo's public API. One problem with this is that the filters are all obviously<BR>
&gt; freetype-specific while cairo provides a cross-platform API. An argument for<BR>
&gt; providing the API is for someone like Behdad to be able to write a<BR>
&gt; font-preferences dialog that presents (unnamed) font-rendering samples to the<BR>
&gt; 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>
&gt; But for that kind of font-preferences dialog, we already have 3 different<BR>
&gt; ANTIALIAS font options and 4 different HINT_STYLE options. So that's 12<BR>
&gt; different necessary samples now, and adding 4 different filters expands that to<BR>
&gt; 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>
&gt; Meanwhile, the descriptions on your page seem to argue for specific filters<BR>
&gt; being best in specific situations. For example, there seems to be an implicit<BR>
&gt; preference for FIR5, (no FIR3 examples, and a link to an Ubuntu poll favoring<BR>
&gt; FIR5). So is there any reason to provide FIR3 at all?<BR>
<BR>
Well, I&#8217;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>
&gt; Also, you argue that<BR>
&gt; LEGACY doesn't do well in anything but the strongly-hinted case, but does it<BR>
&gt; (or cairo's code?) actually do best there?<BR>
<BR>
Sometimes it does. This is obvious looking through Sylvain&#8217;s page. Ignoring that this is the old BCI-vs-Autohinter taste issue (de gustibus, etc), it&#8217;s a lot more contingent on the particular font and size whether it /is/ best.<BR>
<BR>
&gt; I'm wondering if we shouldn't automatically choose a filter based on the<BR>
&gt; HINT_STYLE option. I'm also wondering that if we do decide to expose these in<BR>
&gt; the API whether we should just export two options absed on their general<BR>
&gt; characteristics, (INTER_PIXEL and INTRA_PIXEL ?), rather than so much about<BR>
&gt; 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&#8217;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&#8217;t think any one of them should be removed.<BR>
<BR>
--Tobias<BR>
<BR>
&#185; <A HREF="http://bugs.freedesktop.org/show_bug.cgi?id=10301">http://bugs.freedesktop.org/show_bug.cgi?id=10301</A><BR>
&#178; <A HREF="http://www.alice-dsl.net/towolf/cairo/">http://www.alice-dsl.net/towolf/cairo/</A><BR>
<BR>
<BR>
&gt; Well, this is all a little bit off-topic for the specific bug here, and it's<BR>
&gt; getting into API discussion that really needs to take place on the cairo list.<BR>
&gt; <BR>
&gt; Let's move the discussion there. Feel free to quote my stuff liberally or<BR>
&gt; completely if you'd like to reply on the list.<BR>
&gt; <BR>
&gt; Thanks,<BR>
&gt; <BR>
&gt; -Carl<BR>
&gt; <BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>