* include/freetype/t1tables.h (PS_PrivateRec): Add

`expansion_factor'.

* src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
of blues->no_overshoots -- `blues_scale' is stored with a
magnification of 1000, and `scale' returns fractional pixels.

* src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
`blue_fuzz', `expansion_factor', and `blue_scale' according to the
Type 1 specification.

* src/type1/t1tokens.h: Handle `ExpansionFactor'.

* docs/CHANGES: Updated.
This commit is contained in:
Werner Lemberg 2004-02-25 21:17:49 +00:00
parent 754353343e
commit 675431bec1
6 changed files with 48 additions and 12 deletions

View File

@ -1,4 +1,21 @@
2004-02-17 Masatake YAMATO <jet@gyve.org>
2004-02-24 Werner Lemberg <wl@gnu.org>
* include/freetype/t1tables.h (PS_PrivateRec): Add
`expansion_factor'.
* src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
of blues->no_overshoots -- `blues_scale' is stored with a
magnification of 1000, and `scale' returns fractional pixels.
* src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
`blue_fuzz', `expansion_factor', and `blue_scale' according to the
Type 1 specification.
* src/type1/t1tokens.h: Handle `ExpansionFactor'.
* docs/CHANGES: Updated.
2004-02-24 Masatake YAMATO <jet@gyve.org>
Provide generic access to MacOS resource forks.

View File

@ -63,6 +63,10 @@ LATEST CHANGES BETWEEN 2.1.8 and 2.1.7
mechanism if compiled with FT_DEBUG_LEVEL_TRACE. See the file
`ftdebug.h' for more details.
- YAMATO Masatake contributed improved handling of MacOS resource
forks on non-MacOS platforms (for example, Linux can mount MacOS
file systems).
- The cache sub-system has been rewritten.
- There is now support for deinstallation of faces.

View File

@ -5,7 +5,7 @@
/* Basic Type 1/Type 2 tables definitions and interface (specification */
/* only). */
/* */
/* Copyright 1996-2001, 2002, 2003 by */
/* Copyright 1996-2001, 2002, 2003, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@ -135,6 +135,8 @@ FT_BEGIN_HEADER
FT_Short snap_widths [13]; /* including std width */
FT_Short snap_heights[13]; /* including std height */
FT_Fixed expansion_factor;
FT_Long language_group;
FT_Long password;
@ -163,7 +165,7 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* A set of flags used to indicate which fields are present in a */
/* given blen dictionary (font info or private). Used to support */
/* given blend dictionary (font info or private). Used to support */
/* Multiple Masters fonts. */
/* */
typedef enum

View File

@ -5,7 +5,7 @@
/* PostScript hinter global hinting management (body). */
/* Inspired by the new auto-hinter module. */
/* */
/* Copyright 2001, 2002, 2003 by */
/* Copyright 2001, 2002, 2003, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used */
@ -377,7 +377,7 @@
/* parameter to the raw bluescale value. Here is why: */
/* */
/* We need to suppress overshoots for all pointsizes. */
/* At 300dpi that satisfy: */
/* At 300dpi that satisfies: */
/* */
/* pointsize < 240*bluescale + 0.49 */
/* */
@ -396,7 +396,16 @@
/* */
/* "scale < bluescale" */
/* */
blues->no_overshoots = FT_BOOL( scale < blues->blue_scale );
/* Note that `blue_scale' is stored 1000 times its real */
/* real value, and that `scale' converts from font units */
/* to fractional pixels. */
/* */
/* 1000 / 64 = 125 / 8 */
if ( scale >= 0x20C49BAL )
blues->no_overshoots = FT_BOOL( scale < blues->blue_scale * 8 / 125 );
else
blues->no_overshoots = FT_BOOL( scale * 125 < blues->blue_scale * 8 );
/* */
/* The blue threshold is the font units distance under */

View File

@ -1736,6 +1736,7 @@
T1_LoaderRec loader;
T1_Parser parser;
T1_Font type1 = &face->type1;
PS_Private priv = &type1->private_dict;
FT_Error error;
FT_Byte keyword_flags[T1_FIELD_COUNT];
@ -1744,11 +1745,12 @@
t1_init_loader( &loader, face );
/* default lenIV */
type1->private_dict.lenIV = 4;
/* default blue fuzz, we put it there since 0 is a valid value */
type1->private_dict.blue_fuzz = 1;
/* default values */
priv->blue_shift = 7;
priv->blue_fuzz = 1;
priv->lenIV = 4;
priv->expansion_factor = (FT_Fixed)( 0.06 * 0x10000L );
priv->blue_scale = (FT_Fixed)( 0.039625 * 0x10000L * 1000 );
parser = &loader.parser;
error = T1_New_Parser( parser,

View File

@ -4,7 +4,7 @@
/* */
/* Type 1 tokenizer (specification). */
/* */
/* Copyright 1996-2001, 2002, 2003 by */
/* Copyright 1996-2001, 2002, 2003, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@ -60,6 +60,8 @@
T1_FIELD_NUM_TABLE ( "StemSnapH", snap_widths, 12 )
T1_FIELD_NUM_TABLE ( "StemSnapV", snap_heights, 12 )
T1_FIELD_FIXED ( "ExpansionFactor", expansion_factor )
#undef FT_STRUCTURE
#define FT_STRUCTURE T1_FontRec