parent
c12ec72c2f
commit
fefd874292
68
ChangeLog
68
ChangeLog
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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_
|
||||||
{
|
{
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue