freetype
[Top][All Lists]
Advanced

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

Re: [ft] Why is hinting stronger with subpixel rendering?


From: David Turner
Subject: Re: [ft] Why is hinting stronger with subpixel rendering?
Date: Tue, 04 Apr 2006 15:13:56 +0200
User-agent: Thunderbird 1.5 (Windows/20051201)

Roberto Ragusa a écrit :
It is not well understood why font render quality on Fedora Core 5 appears 
worse than on
Fedora Core 4.

I don't understand why the width of lowercase "i" or "l" is quantized to an 
exact pixel
when subpixel rendering is on and not quantized to an exact pixel when subpixel 
rendering
is off.
It should happen the opposite, shouldn't it?

Yes, it should, but this isn't the case for the moment, mainly for historical reasons.
My main concern is that non-quantized LCD rendering produces many unpleasant
blue and yellow bleeds that a lot of people don't stand.

The culprit is really the algorithm used in libXft (and now Cairo, which duplicates the feature) which doesn't do a proper job when filtering the RGB-pixmap generated
by FreeType.

Until a patch is provided to fix this, I prefer to keep the current behaviour to avoid
too much people complaining. We're trying to have a smooth 2.2 release here.

There are a few other things to fix in libXft/Cairo, but that will be for later.
I hope I'll find the time to provide the necessary fixes myself.

Regards,

- David Turner
- The FreeType Project  (www.freetype.org)

PS: By the way, it's possible to disable this quantization by applying the following
patch:


---------------------------------------------------------------------------------------------
Index: src/autofit/aflatin.c
===================================================================
RCS file: /cvsroot/freetype/freetype2/src/autofit/aflatin.c,v
retrieving revision 1.34
diff -u -r1.34 aflatin.c
--- src/autofit/aflatin.c    21 Mar 2006 16:30:04 -0000    1.34
+++ src/autofit/aflatin.c    4 Apr 2006 13:11:06 -0000
@@ -1344,14 +1344,14 @@
     *  We snap the width of vertical stems for the monochrome and
     *  horizontal LCD rendering targets only.
     */
-    if ( mode == FT_RENDER_MODE_MONO || mode == FT_RENDER_MODE_LCD )
+    if ( mode == FT_RENDER_MODE_MONO )
      other_flags |= AF_LATIN_HINTS_HORZ_SNAP;

    /*
     *  We snap the width of horizontal stems for the monochrome and
     *  vertical LCD rendering targets only.
     */
-    if ( mode == FT_RENDER_MODE_MONO || mode == FT_RENDER_MODE_LCD_V )
+    if ( mode == FT_RENDER_MODE_MONO )
      other_flags |= AF_LATIN_HINTS_VERT_SNAP;

    /*
---------------------------------------------------------------------------------------------



Please have a look at this picture

  https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=127209

and feel free to post a comment on this bug if you have any idea on what's 
happening

  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187688

Thank you. Please CC replies to me as I'm not subscribed.

Best regards.


***********************************************************************************
Information contained in this email message is confidential and may be 
privileged, and is intended only for use of the individual or entity named 
above. If the reader of this message is not the intended recipient, or the 
employee or agent responsible to deliver it to the intended recipient, you are 
hereby notified that any dissemination, distribution or copying of this 
communication is strictly prohibited. If you have received this communication 
in error, please immediately notify the address@hidden and destroy the original 
message.
***********************************************************************************




reply via email to

[Prev in Thread] Current Thread [Next in Thread]