* docs/CHANGES: Updated.

Minor clean-ups.
This commit is contained in:
Werner Lemberg 2004-06-12 13:21:20 +00:00
parent c12ec72c2f
commit fefd874292
7 changed files with 102 additions and 68 deletions

View File

@ -1,28 +1,61 @@
2004-06-11 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Updated.
2004-06-10 David Turner <david@freetype.org> 2004-06-10 David Turner <david@freetype.org>
* src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c, * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c,
src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed.
removing obsolete files Obsolete.
* src/raster/ftraster.c (Alignment, PAlignment): New union to fix
problems with 64bit systems.
(AlignProfileSize): Use it.
2004-06-08 David Turner <david@freetype.org> 2004-06-08 David Turner <david@freetype.org>
* include/freetype/freetype.h (FT_Glyph_Metrics, FT_GlyphSlotRec), * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta'
src/autofit/afloader.c, src/autohint/ahhint.c: and `rsb_delta' elements to...
moved the definition of 'lsb_delta' and 'rsb_delta' from FT_GlyphMetrics (FT_GlyphSlotRec): Here to retain binary compatibility with older
to FT_GlyphSlotRec. The old location did BREAK BINARY COMPATIBILITY FreeType versions.
of the library !! Update all users.
* src/sfnt/sfobjs.c: removing compiler warning * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
* src/winfonts/winfnt.c: adding missing initialization of the * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
slot->metrics.width and slot->metrics.height when loading a Windows of slot->metrics.width and slot->metrics.height when loading a
FNT glyph. Thanks to Huw Davies Windows FNT glyph. Thanks to Huw Davies.
* include/freetype/cache/ftcmru.h, src/cache/ftcbasic.c, * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
src/cache/ftccache.c, src/cache/ftcglyph.c, src/cache/ftcmanag.c, return type to FT_Bool.
src/cache/ftcsbits.c:
fixing some annoying bugs and inefficiencies in the cache sub-system.
* src/cache/ftbasic.c (ftc_basic_family_compare): Change return
type to FT_Bool.
* src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
the former call the latter, not vice versa.
(FTC_Cache_Done, ftc_cache_done): Ditto.
* src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
the former call the latter, not vice versa.
(FTC_GCache_Init, ftc_gcache_init): Ditto.
(FTC_GCache_Done, ftc_gcache_done): Ditto.
* src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
former call the latter, not vice versa.
(FTC_INode_Weight, ftc_inode_weight): Ditto.
* src/cache/ftcmanag.c (ftc_size_node_compare,
ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
type to FT_Bool.
* src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
former call the latter, not vice versa.
(FTC_SNode_Weight, ftc_snode_weight): Ditto.
(FTC_SNode_Compare, ftc_snode_compare): Ditto.
* src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
sub-system.
2004-06-05 Werner Lemberg <wl@gnu.org> 2004-06-05 Werner Lemberg <wl@gnu.org>
@ -37,6 +70,9 @@
Improve inter-letter spacing for autohinted glyphs. Improve inter-letter spacing for autohinted glyphs.
* include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
`lsb_delta' and `rsb_delta'.
* src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
`rsb_delta' in slot->metrics and tune side bearings slightly. `rsb_delta' in slot->metrics and tune side bearings slightly.

View File

@ -20,11 +20,11 @@ LATEST CHANGES BETWEEN 2.1.9 and 2.1.8
and `gvar' tables; the Multiple Masters API has been slightly and `gvar' tables; the Multiple Masters API has been slightly
extended to cope with the new functionality). extended to cope with the new functionality).
- The `FT_Glyph_Metrics' structure has been extended: The elements - The `FT_GlyphSlotRec' structure has been extended: The elements
`lsb_delta' and `rsb_delta' give the difference between hinted `lsb_delta' and `rsb_delta' give the difference between hinted
and unhinted left and right side bearings if autohinting is and unhinted left and right side bearings if autohinting is
active. Using those values can improve the inter-letter spacing active. Using those values can improve the inter-letter spacing
considerably. See the documentation of `FT_Glyph_Metrics' and considerably. See the documentation of `FT_GlyphSlotRec' and
the `ftstring' demo program how to use it. the `ftstring' demo program how to use it.

View File

@ -1468,13 +1468,13 @@ FT_BEGIN_HEADER
/* Note that the app will need to know about the */ /* Note that the app will need to know about the */
/* image format. */ /* image format. */
/* */ /* */
/* lsb_delta :: */ /* lsb_delta :: The difference between hinted and unhinted */
/* The difference between hinted and unhinted left side bearing */ /* left side bearing while autohinting is */
/* while autohinting is active. Zero otherwise. */ /* active. Zero otherwise. */
/* */ /* */
/* rsb_delta :: */ /* rsb_delta :: The difference between hinted and unhinted */
/* The difference between hinted and unhinted right side bearing */ /* right side bearing while autohinting is */
/* while autohinting is active. Zero otherwise. */ /* active. Zero otherwise. */
/* */ /* */
/* <Note> */ /* <Note> */
/* If @FT_Load_Glyph is called with default flags (see */ /* If @FT_Load_Glyph is called with default flags (see */
@ -1496,32 +1496,32 @@ FT_BEGIN_HEADER
/* `slot->format' is also changed to `FT_GLYPH_FORMAT_BITMAP' . */ /* `slot->format' is also changed to `FT_GLYPH_FORMAT_BITMAP' . */
/* */ /* */
/* <Note> */ /* <Note> */
/* Here a small pseudo code fragment which shows how to use */ /* Here a small pseudo code fragment which shows how to use */
/* `lsb_delta' and `rsb_delta': */ /* `lsb_delta' and `rsb_delta': */
/* { */ /* */
/* FT_Pos origin_x = 0; */ /* { */
/* FT_Pos prev_rsb_delta = 0; */ /* FT_Pos origin_x = 0; */
/* FT_Pos prev_rsb_delta = 0; */
/* */ /* */
/* */ /* */
/* for all glyphs do */ /* for all glyphs do */
/* <compute kern between current and previous glyph and add it to */ /* <compute kern between current and previous glyph and add it to */
/* `origin_x'> */ /* `origin_x'> */
/* */ /* */
/* <load glyph with `FT_Load_Glyph'> */ /* <load glyph with `FT_Load_Glyph'> */
/* */ /* */
/* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */ /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */
/* origin_x -= 64; */ /* origin_x -= 64; */
/* else if */ /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */
/* ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */ /* origin_x += 64; */
/* origin_x += 64; */
/* */ /* */
/* prev_rsb_delta = face->glyph->rsb_delta; */ /* prev_rsb_delta = face->glyph->rsb_delta; */
/* */ /* */
/* <save glyph image, or render glyph, or ...> */ /* <save glyph image, or render glyph, or ...> */
/* */ /* */
/* origin_x += face->glyph->advance.x; */ /* origin_x += face->glyph->advance.x; */
/* endfor */ /* endfor */
/* } */ /* } */
/* */ /* */
typedef struct FT_GlyphSlotRec_ typedef struct FT_GlyphSlotRec_
{ {

20
src/cache/ftcglyph.c vendored
View File

@ -73,6 +73,7 @@
FTC_GQuery gquery = (FTC_GQuery)ftcgquery; FTC_GQuery gquery = (FTC_GQuery)ftcgquery;
FT_UNUSED( cache ); FT_UNUSED( cache );
return FT_BOOL( gnode->family == gquery->family && return FT_BOOL( gnode->family == gquery->family &&
gnode->gindex == gquery->gindex ); gnode->gindex == gquery->gindex );
} }
@ -82,7 +83,7 @@
FTC_GNode_Compare( FTC_GNode gnode, FTC_GNode_Compare( FTC_GNode gnode,
FTC_GQuery gquery ) FTC_GQuery gquery )
{ {
return ftc_gnode_compare( FTC_NODE(gnode), gquery, NULL ); return ftc_gnode_compare( FTC_NODE( gnode ), gquery, NULL );
} }
@ -113,6 +114,7 @@
FTC_GCache cache = (FTC_GCache)ftccache; FTC_GCache cache = (FTC_GCache)ftccache;
FT_Error error; FT_Error error;
error = FTC_Cache_Init( FTC_CACHE( cache ) ); error = FTC_Cache_Init( FTC_CACHE( cache ) );
if ( !error ) if ( !error )
{ {
@ -132,14 +134,7 @@
FT_EXPORT_DEF( FT_Error ) FT_EXPORT_DEF( FT_Error )
FTC_GCache_Init( FTC_GCache cache ) FTC_GCache_Init( FTC_GCache cache )
{ {
return ftc_gcache_init( FTC_CACHE(cache) ); return ftc_gcache_init( FTC_CACHE( cache ) );
}
FT_EXPORT_DEF( void )
FTC_GCache_Done( FTC_GCache cache )
{
ftc_gcache_done( FTC_CACHE(cache) );
} }
@ -154,6 +149,13 @@
} }
FT_EXPORT_DEF( void )
FTC_GCache_Done( FTC_GCache cache )
{
ftc_gcache_done( FTC_CACHE( cache ) );
}
FT_EXPORT_DEF( FT_Error ) FT_EXPORT_DEF( FT_Error )
FTC_GCache_New( FTC_Manager manager, FTC_GCache_New( FTC_Manager manager,
FTC_GCacheClass clazz, FTC_GCacheClass clazz,

11
src/cache/ftcimage.c vendored
View File

@ -45,13 +45,11 @@
} }
FT_EXPORT_DEF( void ) FT_EXPORT_DEF( void )
FTC_INode_Free( FTC_INode inode, FTC_INode_Free( FTC_INode inode,
FTC_Cache cache ) FTC_Cache cache )
{ {
ftc_inode_free( FTC_NODE(inode), cache ); ftc_inode_free( FTC_NODE( inode ), cache );
} }
@ -108,7 +106,8 @@
FT_ULong size = 0; FT_ULong size = 0;
FT_Glyph glyph = inode->glyph; FT_Glyph glyph = inode->glyph;
FT_UNUSED(ftccache); FT_UNUSED( ftccache );
switch ( glyph->format ) switch ( glyph->format )
{ {
@ -145,12 +144,10 @@
} }
FT_EXPORT_DEF( FT_ULong ) FT_EXPORT_DEF( FT_ULong )
FTC_INode_Weight( FTC_INode inode ) FTC_INode_Weight( FTC_INode inode )
{ {
return ftc_inode_weight( FTC_NODE(inode), NULL ); return ftc_inode_weight( FTC_NODE( inode ), NULL );
} }

11
src/cache/ftcsbits.c vendored
View File

@ -77,13 +77,11 @@
} }
FT_EXPORT_DEF( void ) FT_EXPORT_DEF( void )
FTC_SNode_Free( FTC_SNode snode, FTC_SNode_Free( FTC_SNode snode,
FTC_Cache cache ) FTC_Cache cache )
{ {
ftc_snode_free( FTC_NODE(snode), cache ); ftc_snode_free( FTC_NODE( snode ), cache );
} }
@ -267,6 +265,7 @@
FT_UNUSED( cache ); FT_UNUSED( cache );
FT_ASSERT( snode->count <= FTC_SBIT_ITEMS_PER_NODE ); FT_ASSERT( snode->count <= FTC_SBIT_ITEMS_PER_NODE );
/* the node itself */ /* the node itself */
@ -292,7 +291,7 @@
FT_EXPORT_DEF( FT_ULong ) FT_EXPORT_DEF( FT_ULong )
FTC_SNode_Weight( FTC_SNode snode ) FTC_SNode_Weight( FTC_SNode snode )
{ {
return ftc_snode_weight( FTC_NODE(snode), NULL ); return ftc_snode_weight( FTC_NODE( snode ), NULL );
} }
@ -333,14 +332,12 @@
} }
FT_EXPORT_DEF( FT_Bool ) FT_EXPORT_DEF( FT_Bool )
FTC_SNode_Compare( FTC_SNode snode, FTC_SNode_Compare( FTC_SNode snode,
FTC_GQuery gquery, FTC_GQuery gquery,
FTC_Cache cache ) FTC_Cache cache )
{ {
return ftc_snode_compare( FTC_NODE(snode), gquery, cache ); return ftc_snode_compare( FTC_NODE( snode ), gquery, cache );
} }

View File

@ -251,7 +251,8 @@
typedef unsigned char Byte, *PByte; typedef unsigned char Byte, *PByte;
typedef char Bool; typedef char Bool;
typedef union
typedef union Alignment_
{ {
long l; long l;
void* p; void* p;
@ -259,6 +260,7 @@
} Alignment, *PAlignment; } Alignment, *PAlignment;
typedef struct TPoint_ typedef struct TPoint_
{ {
Long x; Long x;
@ -321,7 +323,7 @@
#define AlignProfileSize \ #define AlignProfileSize \
( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( long ) ) ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( long ) )
#ifdef TT_STATIC_RASTER #ifdef TT_STATIC_RASTER