* src/autohint/ahtypes.h, src/autohint/ahhint.c, src/pshinter/pshalgo3.h,

src/pshinter/pshalgo3.c: implemented the FT_RENDER_MODE_LIGHT hinting
        mode in the auto and postscript hinters
This commit is contained in:
David Turner 2003-01-08 09:52:32 +00:00
parent 6453a819e8
commit 265799a933
5 changed files with 31 additions and 12 deletions

View File

@ -1,3 +1,9 @@
2003-01-08 Owen Taylor <owen@redhat.com>
* src/autohint/ahtypes.h, src/autohint/ahhint.c, src/pshinter/pshalgo3.h,
src/pshinter/pshalgo3.c: implemented the FT_RENDER_MODE_LIGHT hinting
mode in the auto and postscript hinters
2003-01-08 David Turner <david@freetype.org>
* src/base/ftobjs.c (find_unicode_charmap): fixed the error code

View File

@ -104,7 +104,11 @@
sign = 1;
}
if ( ( vertical && !hinter->do_vert_snapping ) ||
if ( !hinter->do_stem_adjust )
{
/* leave stem widths unchanged */
}
else if ( ( vertical && !hinter->do_vert_snapping ) ||
( !vertical && !hinter->do_horz_snapping ) )
{
/* smooth hinting process, very lightly quantize the stem width */
@ -1427,6 +1431,8 @@
hinter->do_vert_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_MONO ||
hint_mode == FT_RENDER_MODE_LCD_V );
hinter->do_stem_adjust = FT_BOOL( hint_mode != FT_RENDER_MODE_LIGHT );
#if 1
load_flags = FT_LOAD_NO_SCALE
| FT_LOAD_IGNORE_TRANSFORM ;

View File

@ -496,6 +496,7 @@ FT_BEGIN_HEADER
FT_Bool do_vert_hints; /* disable Y hinting */
FT_Bool do_horz_snapping; /* disable X stem size snapping */
FT_Bool do_vert_snapping; /* disable Y stem size snapping */
FT_Bool do_stem_adjust; /* disable light stem snapping */
} AH_HinterRec, *AH_Hinter;

View File

@ -516,6 +516,8 @@
hint->cur_pos = pos;
hint->cur_len = fit_len;
if ( glyph->do_stem_adjust )
{
if ( len <= 64 )
{
/* the stem is less than one pixel, we will center it */
@ -528,6 +530,7 @@
{
len = psh3_dimension_quantize_len( dim, len, 0 );
}
}
/* now that we have a good hinted stem width, try to position */
/* the stem along a pixel grid integer coordinate */
@ -1720,6 +1723,8 @@
glyph->do_vert_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_MONO ||
hint_mode == FT_RENDER_MODE_LCD_V );
glyph->do_stem_adjust = FT_BOOL( hint_mode != FT_RENDER_MODE_LIGHT );
for ( dimension = 0; dimension < 2; dimension++ )
{
/* load outline coordinates into glyph */

View File

@ -221,6 +221,7 @@ FT_BEGIN_HEADER
FT_Bool do_vert_hints;
FT_Bool do_horz_snapping;
FT_Bool do_vert_snapping;
FT_Bool do_stem_adjust;
} PSH3_GlyphRec, *PSH3_Glyph;