[Top][All Lists]
[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.
***********************************************************************************