forked from minhngoc25a/freetype2
* TODO: Updated.
* src/cid/cidload.c (parse_font_matrix): Added units_per_EM * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
This commit is contained in:
parent
21fed911e2
commit
29bac136cb
16
ChangeLog
16
ChangeLog
|
@ -1,29 +1,29 @@
|
|||
2001-03-11 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* TODO: Updated.
|
||||
|
||||
2001-03-10 Tom Kacvinsky <tjk@ams.org>
|
||||
|
||||
* TODO: New file.
|
||||
|
||||
|
||||
* include/freetype/freetype.h: Added prototypes and notes for
|
||||
three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix.
|
||||
|
||||
* src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added
|
||||
implementation code.
|
||||
|
||||
* src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM,
|
||||
and if that is not available, default to 1000 units per EM. Changed
|
||||
assignment code for ascender and descender values.
|
||||
|
||||
* src/cid/cidload.c (parse_font_matrix): Added units_per_EM
|
||||
* src/cid/cidload.c (parse_font_matrix): Added units_per_EM
|
||||
processing.
|
||||
|
||||
(parse_font_bbox): Changed to use FT_Fixed number handling.
|
||||
|
||||
* src/type1/t1objs.c (T1_Init_Face): Changed the assignment code
|
||||
for ascender, descender, and max_advance_width.
|
||||
|
||||
* src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
|
||||
* src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
|
||||
number handling.
|
||||
|
||||
2001-03-10 Henrik Grubbström <grubba@roxen.com>
|
||||
2001-03-10 Henrik Grubbström <grubba@roxen.com>
|
||||
|
||||
* src/*/*.c: Added many casts to make code more 64bit-safe.
|
||||
|
||||
|
|
14
TODO
14
TODO
|
@ -1,10 +1,12 @@
|
|||
Here is a list of items that need to be addressed in FreeType 2:
|
||||
|
||||
* Add synthesized Unicode charmap processing to the CFF driver.
|
||||
* Add synthesized Unicode charmap processing to the CFF driver.
|
||||
|
||||
* Investigate usage of casts and bit width of integer types used. The idea is
|
||||
to typedef FT_Fixed, FT_Long, FT_Int, etc... to use the appropriate built in
|
||||
integer types. This is so that we may avoid unnecessary explict typecasts and
|
||||
side affects inherent in implict casts. This is mostly an issue on platforms
|
||||
where long integers are 64 bits wide (instead of 32 bits wide).
|
||||
* Investigate usage of casts and bit width of integer types used. The idea is
|
||||
to typedef FT_Fixed, FT_Long, FT_Int, etc. to use the appropriate built in
|
||||
integer types. This is so that we may avoid unnecessary explict typecasts
|
||||
and side affects inherent in implict casts. This is mostly an issue on
|
||||
platforms where long integers are 64 bits wide (instead of 32 bits wide).
|
||||
|
||||
* Fix exact bbox calculation. The current code uses an iterative algorithm
|
||||
which can fail miserably.
|
||||
|
|
|
@ -2331,7 +2331,7 @@ FT_BEGIN_HEADER
|
|||
/* FT_RoundFix */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A very simple function used to round a 16.16 fixed number */
|
||||
/* A very simple function used to round a 16.16 fixed number. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* a :: The number to be rounded. */
|
||||
|
@ -2340,10 +2340,10 @@ FT_BEGIN_HEADER
|
|||
/* The result of `(a + 0x8000) & -0x10000'. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This function assumes that the target platform supports 32 bit */
|
||||
/* This function assumes that the target platform supports 32-bit */
|
||||
/* signed integers. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Fixed ) FT_RoundFix( FT_Fixed a );
|
||||
FT_EXPORT( FT_Fixed ) FT_RoundFix( FT_Fixed a );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
@ -2353,7 +2353,7 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* <Description> */
|
||||
/* A very simple function used to compute the ceiling function of a */
|
||||
/* 16.16 fixed number */
|
||||
/* 16.16 fixed number. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* a :: The number for which the ceiling function is to be computed. */
|
||||
|
@ -2362,10 +2362,10 @@ FT_BEGIN_HEADER
|
|||
/* The result of `(a + 0x10000 - 1) & -0x10000'. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This function assumes that the target platform supports 32 bit */
|
||||
/* This function assumes that the target platform supports 32-bit */
|
||||
/* signed integers. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Fixed ) FT_CeilFix( FT_Fixed a );
|
||||
FT_EXPORT( FT_Fixed ) FT_CeilFix( FT_Fixed a );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
@ -2375,7 +2375,7 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* <Description> */
|
||||
/* A very simple function used to compute the floor function of a */
|
||||
/* 16.16 fixed number */
|
||||
/* 16.16 fixed number. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* a :: The number for which the floor function is to be computed. */
|
||||
|
@ -2384,10 +2384,10 @@ FT_BEGIN_HEADER
|
|||
/* The result of `a & -0x10000'. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This function assumes that the target platform supports 32 bit */
|
||||
/* This function assumes that the target platform supports 32-bit */
|
||||
/* signed integers. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Fixed ) FT_FloorFix( FT_Fixed a );
|
||||
FT_EXPORT( FT_Fixed ) FT_FloorFix( FT_Fixed a );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
|
|
@ -47,12 +47,13 @@
|
|||
#undef FT_COMPONENT
|
||||
#define FT_COMPONENT trace_calc
|
||||
|
||||
|
||||
/* The following three functions are available regardless of whether */
|
||||
/* FT_LONG64 or FT_CONFIG_OPTION_OLD_CALCS is defined. */
|
||||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_Fixed ) FT_RoundFix( FT_Fixed a )
|
||||
FT_EXPORT_DEF( FT_Fixed ) FT_RoundFix( FT_Fixed a )
|
||||
{
|
||||
return( ( a + 0x8000L ) & -0x10000L );
|
||||
}
|
||||
|
@ -60,7 +61,7 @@
|
|||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_Fixed ) FT_CeilFix( FT_Fixed a )
|
||||
FT_EXPORT_DEF( FT_Fixed ) FT_CeilFix( FT_Fixed a )
|
||||
{
|
||||
return( ( a + 0x10000L - 1 ) & -0x10000L );
|
||||
}
|
||||
|
@ -68,7 +69,7 @@
|
|||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_Fixed ) FT_FloorFix( FT_Fixed a )
|
||||
FT_EXPORT_DEF( FT_Fixed ) FT_FloorFix( FT_Fixed a )
|
||||
{
|
||||
return( a & -0x10000L );
|
||||
}
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
FT_Fixed temp[6];
|
||||
FT_Fixed temp_scale;
|
||||
|
||||
|
||||
if ( parser->num_dict >= 0 )
|
||||
{
|
||||
dict = face->cid.font_dicts + parser->num_dict;
|
||||
|
@ -196,10 +197,11 @@
|
|||
|
||||
temp_scale = ABS( temp[3] );
|
||||
|
||||
/* Set Units per EM based on FontMatrix values. We set the value to */
|
||||
/* 1000 / temp_scale, because temp_scale was already multiplied by */
|
||||
/* 1000 (in t1_tofixed, from psobjs.c). */
|
||||
root->units_per_EM = FT_DivFix( 0x10000L, FT_DivFix( temp_scale, 1000 ) );
|
||||
/* Set Units per EM based on FontMatrix values. We set the value to */
|
||||
/* `1000/temp_scale', because temp_scale was already multiplied by */
|
||||
/* 1000 (in t1_tofixed(), from psobjs.c). */
|
||||
root->units_per_EM = FT_DivFix( 0x10000L,
|
||||
FT_DivFix( temp_scale, 1000 ) );
|
||||
|
||||
/* we need to scale the values by 1.0/temp[3] */
|
||||
if ( temp_scale != 0x10000L )
|
||||
|
|
Loading…
Reference in New Issue