ref: f41e71a199011bb01a42c83fb29429d77167b969
parent: 21e046e0c40e25bccf995314bae3dfd7b1e4ba02
author: Werner Lemberg <[email protected]>
date: Thu Dec 20 16:22:02 EST 2001
* src/base/ftobjs.c (FT_Done_Library): Remove compiler warning. Formatting.
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,38 +7,79 @@
ftc_family_table_free, FTC_Manager_Check): Ditto.
* src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
+ * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
+
2001-12-20 David Turner <[email protected]>
- * include/freetype/config/ftoption.h: Disabling bytecode interpreter
- for new release.
+ Added PostScript hinter support to the CFF and CID drivers.
- * docs/CHANGES: Updated for 2.0.6 release.
+ * include/freetype/internal/cfftypes.h (CFF_Font): New member
+ `pshinter'.
+ * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
+ * src/cff/cffload.h: Updated.
+ * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
+ (CFF_Builder_Init): This.
+ Added new argument `hinting'.
+ (CFF_Done_Builder): Renamed to ...
+ (CFF_Builder_Done): This.
+ (CFF_Init_Decoder): Added new argument `hinting'.
+ (CFF_Parse_CharStrings): Implement vstem support.
+ (CFF_Load_Glyph): Updated.
+ Add hinting support.
+ (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
+ (cff_argument_counts): Updated.
+ * src/cff/cffgload.h: Updated.
+ * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+ (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
+ CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
+ functions.
+ (CFF_Init_Face): Renamed to ...
+ (CFF_Face_Init): This.
+ Add hinter support.
+ (CFF_Done_Face): Renamed to ...
+ (CFF_Face_Done): This.
+ (CFF_Init_Driver): Renamed to ...
+ (CFF_Driver_Init): This.
+ (CFF_Done_Driver): Renamed to ...
+ (CFF_Driver_Done): This.
+ * src/cff/cffobjs.h: Updated.
+ * src/cff/cffdrivr.c (cff_driver_class): Updated.
- * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
- to mode the definition of encoding tables within "cffload.c" instead
- of making them part of a shared header (causing problems in "multi"
- builds).
+ * include/freetype/internal/t1types.h (CID_FaceRec): New member
+ `pshinter'.
+ * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
+ * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+ (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
+ CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
+ (CID_Done_Face): Renamed to ...
+ (CID_Face_Done): This.
+ (CID_Init_Face): Renamed to ...
+ (CID_Face_Init): This.
+ Add hinting support.
+ (CID_Init_Driver): Renamed to ...
+ (CID_Driver_Init): This.
+ (CID_Done_Driver): Renamed to ...
+ (CID_Driver_Done): This.
+ * src/cid/cidobjs.h: Updated.
+ * src/cidriver.c: Updated.
- * docs/TODO: Added "stem3 and counter hints support" to the TODO list
- for the Postscript hinter.
+ * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
- * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
+ * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
+ crashed the library on exit.
- * src/pshinter/pshrec.c (t2_hint_stems), src/cff/cffobjs.h,
- src/cff/cffobjs.c, src/cff/cffload.c, src/cff/cffload.h,
- src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffdriver.c,
- include/freetype/internal/cfftypes.h: added Postscript hinter support
- to the CFF driver.
+ * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
+ transformation of hinted glyphs.
- * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that crashed
- the library on exit.
+ * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
+ to move the definition of encoding tables back within "cffload.c"
+ instead of making them part of a shared header (causing problems in
+ "multi" builds). This reverts change 2001-08-08.
- * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix transform
- on hinted glyphs.
-
- * src/cid/cidgload.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
- src/cid/cidriver.c, include/freetype/internal/t1types.h: Added
- Postscript hinter support to the CID font driver.
+ * docs/CHANGES: Updated for 2.0.6 release.
+ * docs/TODO: Added "stem3 and counter hints support" to the TODO
+ list for the Postscript hinter.
+ * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
2001-12-19 David Turner <[email protected]>
--- a/docs/BUGS
+++ b/docs/BUGS
@@ -44,7 +44,7 @@
------------------------------------------------------------------------------
BAD-TTNAMEID.H 12-09-2001 Antoine N/A
BAD-T1-CHARMAP 15-06-2001 David 2.0.5
-BAD-UNIXXX-NAMES 30-07-2001 David 2.0.5
+BAD-UNIXXXX-NAMES 30-07-2001 David 2.0.5
GLYPH_TO_BITMAP-BUG 05-12-2001 David 05-12-2001
AUTOHINT-NO-SBITS 13-09-2001 David 2.0.6
@@ -84,7 +84,7 @@
Which one is correct?
Antoine replied that this was a bug in the TT 1.66 specification, and that
- FreeType followed the most recent TrueType/OpenType specification here!
+ FreeType followed the most recent TrueType/OpenType specification here.
AUTOHINT-SBITS
@@ -98,9 +98,9 @@
efficiently without making a few important internal changes to the
library's design (more importantly, to the font driver interface).
- This has been corrected with a hack in FT_Load_Glyph. More important
- internal changes should help get rid of it with a clean solution in
- a further release like FreeType 2.1
+ This has been corrected with a hack in FT_Load_Glyph(). More important
+ internal changes should help get rid of it with a clean solution in a
+ further release like FreeType 2.1.
BAD-TT-RENDERING
@@ -112,10 +112,10 @@
Tests and comparisons show a _major_ discrepancy of monochrome truetype
bytecode-hinted glyphs! Something seems to be really broken here!
- Some of this has been fixed in 2.0.6, there was a bug in the TrueType
- loader that prevented it from loading composites correctly. However, there
- are still _subtle_ differences between FT1 and FT2 when it comes to
- monochrome TrueType-hinted glyphs..
+ Some of this has been fixed in 2.0.6; there was a bug in the TrueType
+ loader that prevented it from loading composites correctly. However,
+ there are still _subtle_ differences between FT1 and FT2 when it comes to
+ monochrome TrueType-hinted glyphs.
BAD-THIN-LINES
@@ -143,7 +143,7 @@
table of glyph names in 'src/psaux/pstables.h'.)
-BAD-UNIXXX-NAMES
+BAD-UNIXXXX-NAMES
Glyph names like uniXXXX are not recognized as they should be. It seems
that code in psmodule.c for uniXXXX glyph names was never tested. The
@@ -198,14 +198,14 @@
Calling FT_Glyph_To_Bitmap() sometimes modifies the original glyph
outline, creating weird alignment artefacts.
- This subtle bug was really in the file src/smooth/ftsmooth.c. Basically,
- the outline was shifted before rendering it into a new bitmap buffer.
- However, it wasn't properly un-shifted after that operation.
+ This subtle bug was really in the file `src/smooth/ftsmooth.c'.
+ Basically, the outline was shifted before rendering it into a new bitmap
+ buffer. However, it wasn't properly un-shifted after that operation.
This was only noticeable with certain glyphs or certain fonts; it crept in
a long time ago.
- same bug in src/raster/ftrender1.c by the way..
+ The same bug has been fixed in src/raster/ftrender1.c also.
=== end of file ===
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -1,76 +1,80 @@
LATEST CHANGES BETWEEN 2.0.6 and 2.0.5
- *** IMPORTANT BUG FIXES:
-
- - it wasn't possible to load embedded bitmaps when the auto-hinter was
- used. This is now fixed..
-
- - the TrueType font driver didn't load some composites properly
- (the sub-glyphs were slightly shifted, and this was only noticeable
- when using monochrome rendering)
+ I. IMPORTANT BUG FIXES
- - Various fixes to the auto-hinter. They merely improve the output of
- sans-serif fonts. Note that there are still problems with serifed
- fonts and composites (accented characters).
+ - It wasn't possible to load embedded bitmaps when the auto-hinter was
+ used. This is now fixed.
- - all scalable font drivers mistakenly returned un-fitted glyph advances
- when hinting was requested. This created problems for a number of layout
- applications. This is a very old bug that got undetected mainly because
- most test/demo program perform rounding explicitely or implicitely
- (through the cache).
+ - The TrueType font driver didn't load some composites properly (the
+ sub-glyphs were slightly shifted, and this was only noticeable when
+ using monochrome rendering).
- - FT_Glyph_ToBitmap did mistakenly modify the source glyph in certain cases.
+ - Various fixes to the auto-hinter. They merely improve the output of
+ sans-serif fonts. Note that there are still problems with serifed
+ fonts and composites (accented characters).
- - "glnames.py" still contained a bug that made FreeType return invalid
- names for certain glyphs.
+ - All scalable font drivers erroneously returned un-fitted glyph
+ advances when hinting was requested. This created problems for a
+ number of layout applications. This is a very old bug that got
+ undetected mainly because most test/demo program perform rounding
+ explicitly or implicitly (through the cache).
+ - FT_Glyph_To_Bitmap() did erroneously modify the source glyph in
+ certain cases.
- *** IMPORTANT UPDATES & NEW FEATURES:
+ - "glnames.py" still contained a bug that made FreeType return invalid
+ names for certain glyphs.
- - important updates to the Mac-specific parts of the library.
- - The caching sub-system has been completely re-designed, and its API has
- evolved (the old one is still supported for backwards).
-
- The documentation for it will be completed on the next release though..
- For now, you're encouraged to continue using the old API
+ II. IMPORTANT UPDATES AND NEW FEATURES
- - A new charmap cache is provided too. See FTC_CMapCache. This is useful
- to perform character code -> glyph index translations quickly, without
- the need for an opened FT_Face..
+ - Important updates to the Mac-specific parts of the library.
- - A NEW POSTSCRIPT HINTER module has been added to support native hints in
- the following formats: Postscript Type 1, Postscript CID and CFF/CEF.
+ - The caching sub-system has been completely re-designed, and its API
+ has evolved (the old one is still supported for backwards
+ compatibility).
- CHECK THIS OUT !! Note that the auto-hinter produces better results for
- a number of badly-hinted fonts (mostly auto-generated ones) though..
+ The documentation for it is not yet completed, sorry. For now, you
+ are encouraged to continue using the old API. However, the ftview
+ demo program in the ft2demos package has already been updated to use
+ the new caching functions.
+ - A new charmap cache is provided too. See FTC_CMapCache(). This is
+ useful to perform character code -> glyph index translations quickly,
+ without the need for an opened FT_Face.
- - A memory debugger is now part of the standard FreeType sources. To
- enable it, define FT_DEBUG_MEMORY in <freetype/config/ftoption.h>,
- and recompile the library.
-
- Now, define the _environment_ variable FT_DEBUG_MEMORY and run any
- program using FreeType. When the library is exited, a summary of
- memory footprints and eventual leaks will be displayed..
+ - A NEW POSTSCRIPT HINTER module has been added to support native hints
+ in the following formats: PostScript Type 1, PostScript CID, and
+ CFF/CEF.
- this works transparently with _any_ program that uses FreeType..
- you'll need _lots_ of memory to use this however (allocated blocks
- are never released to the heap to detect double deletes easily)
+ Please test! Note that the auto-hinter produces better results for a
+ number of badly-hinted fonts (mostly auto-generated ones) though.
- *** OTHER:
-
- - we're aware of subtle differences between the output of FT 1 and FT 2
- when it comes to monochrome TrueType-hinted glyphs. These are most
- probably due to small differences in the monochrome rasterizers and
- will be worked out in an upcoming release.
+ - A memory debugger is now part of the standard FreeType sources. To
+ enable it, define FT_DEBUG_MEMORY in <freetype/config/ftoption.h>, and
+ recompile the library.
-
- - the next release will be named FreeType 2.1, and will include a
- _major_ rework of the library's internals, both to make the source
- code more consistent, readable, etc.. as well as to implement new
- features like:
-
+ Additionally, define the _environment_ variable FT_DEBUG_MEMORY and
+ run any program using FreeType. When the library is exited, a summary
+ of memory footprints and possible leaks will be displayed.
+
+ This works transparently with _any_ program that uses FreeType.
+ However, you will need a lot of memory to use this (allocated blocks
+ are never released to the heap to detect double deletes easily).
+
+
+ III. MISCELLANEOUS
+
+ - We are aware of subtle differences between the output of FreeType
+ versions 1 and 2 when it comes to monochrome TrueType-hinted glyphs.
+ These are most probably due to small differences in the monochrome
+ rasterizers and will be worked out in an upcoming release.
+
+ - The next release will be named FreeType 2.1, and will include a
+ _major_ rework of the library's internals, both to make the source
+ code more consistent, readable, etc. as well as to implement new
+ features like:
+
- sub-pixel filtering ("ClearType" and "CoolType" like)
- gamma-correction
- dynamic version and features retrieval
@@ -78,9 +82,6 @@
- important enhancements to the monochrome rasterizer
(especially for Postscript-based formats)
-
- Merry XMas :-)
-
============================================================================
LATEST CHANGES BETWEEN 2.0.5 and 2.0.4
@@ -118,9 +119,9 @@
- Added a new function named "FT_Get_Postscript_Name" to retrieve the
"unique" Postscript font name of a given face.
- - Added a new public header size named FT_SIZES_H (or <freetype/ftsizes.h>)
- providing new FT_Size-management functions: FT_New_Size, FT_Activate_Size,
- FT_Done_Size.
+ - Added a new public header size named FT_SIZES_H (or
+ <freetype/ftsizes.h>) providing new FT_Size-management functions:
+ FT_New_Size, FT_Activate_Size, FT_Done_Size.
- Fixed a reallocation bug that generated a dangling pointer (and possibly
memory leaks) with Postscript fonts (in src/psaux/psobjs.c).
--- a/docs/TODO
+++ b/docs/TODO
@@ -6,4 +6,4 @@
* Add synthesized Unicode charmap processing to the CFF driver.
-* Implement stem3/counter hints properly in the Postscript hinter
+* Implement stem3/counter hints properly in the Postscript hinter.
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -190,7 +190,7 @@
CID_Subrs* subrs;
/* since FT 2.1 - interface to PostScript hinter */
- void* pshinter;
+ void* pshinter;
} CID_FaceRec;
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -2633,7 +2633,6 @@
FT_Done_Library( FT_Library library )
{
FT_Memory memory;
- FT_UInt n;
if ( !library )
@@ -2646,19 +2645,24 @@
library->generic.finalizer( library );
/* Close all modules in the library */
-#if 1
+#if 1
while ( library->num_modules > 0 )
FT_Remove_Module( library, library->modules[0] );
-#else
- for ( n = 0; n < library->num_modules; n++ )
+#else
{
- FT_Module module = library->modules[n];
+ FT_UInt n;
- if ( module )
+ for ( n = 0; n < library->num_modules; n++ )
{
- Destroy_Module( module );
- library->modules[n] = 0;
+ FT_Module module = library->modules[n];
+
+
+ if ( module )
+ {
+ Destroy_Module( module );
+ library->modules[n] = 0;
+ }
}
}
#endif
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -543,7 +543,6 @@
if ( charcode < 0 || charcode > 255 )
return -1;
-
/* Get code to SID mapping from `cff_standard_encoding'. */
glyph_sid = CFF_Get_Standard_Encoding( (FT_UInt)charcode );
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -50,8 +50,8 @@
/* */
/* SIZE FUNCTIONS */
/* */
- /* note that we store the global hints in the size's "internal" root */
- /* field */
+ /* Note that we store the global hints in the size's "internal" root */
+ /* field. */
/* */
/*************************************************************************/
@@ -59,7 +59,7 @@
static PSH_Globals_Funcs
CFF_Size_Get_Globals_Funcs( CFF_Size size )
{
- CFF_Face face = (CFF_Face) size->face;
+ CFF_Face face = (CFF_Face)size->face;
CFF_Font* font = face->extra.data;
PSHinter_Interface* pshinter = font->pshinter;
FT_Module module;
@@ -69,7 +69,7 @@
"pshinter" );
return ( module && pshinter && pshinter->get_globals_funcs )
? pshinter->get_globals_funcs( module )
- : 0 ;
+ : 0;
}
@@ -99,23 +99,25 @@
if ( funcs )
{
- PSH_Globals globals;
- CFF_Face face = (CFF_Face)size->face;
- CFF_Font* font = face->extra.data;
- CFF_SubFont* subfont = &font->top_font;
+ PSH_Globals globals;
+ CFF_Face face = (CFF_Face)size->face;
+ CFF_Font* font = face->extra.data;
+ CFF_SubFont* subfont = &font->top_font;
- CFF_Private* cpriv = &subfont->private_dict;
- T1_Private priv;
+ CFF_Private* cpriv = &subfont->private_dict;
+ T1_Private priv;
- /* IMPORTANT: the CFF and Type1 private dictionaries have */
- /* slightly different structures, we need to */
- /* synthetize a type1 dictionary on the fly here !! */
+ /* IMPORTANT: The CFF and Type1 private dictionaries have */
+ /* slightly different structures; we need to */
+ /* synthetize a type1 dictionary on the fly here. */
+
{
- FT_UInt n, count;
+ FT_UInt n, count;
- MEM_Set( &priv, 0, sizeof(priv) );
+ MEM_Set( &priv, 0, sizeof ( priv ) );
+
count = priv.num_blue_values = cpriv->num_blue_values;
for ( n = 0; n < count; n++ )
priv.blue_values[n] = cpriv->blue_values[n];
@@ -136,20 +138,20 @@
priv.blue_shift = cpriv->blue_shift;
priv.blue_fuzz = cpriv->blue_fuzz;
- priv.standard_width[0] = (FT_UShort) cpriv->standard_width;
- priv.standard_height[0] = (FT_UShort) cpriv->standard_height;
-
+ priv.standard_width[0] = (FT_UShort)cpriv->standard_width;
+ priv.standard_height[0] = (FT_UShort)cpriv->standard_height;
+
count = priv.num_snap_widths = cpriv->num_snap_widths;
for ( n = 0; n < count; n++ )
priv.snap_widths[n] = cpriv->snap_widths[n];
-
+
count = priv.num_snap_heights = cpriv->num_snap_heights;
for ( n = 0; n < count; n++ )
priv.snap_heights[n] = cpriv->snap_heights[n];
- priv.force_bold = cpriv->force_bold;
- priv.language_group = cpriv->language_group;
- priv.lenIV = cpriv->lenIV;
+ priv.force_bold = cpriv->force_bold;
+ priv.language_group = cpriv->language_group;
+ priv.lenIV = cpriv->lenIV;
}
error = funcs->create( size->face->memory, &priv, &globals );
@@ -191,31 +193,34 @@
FT_LOCAL_DEF FT_Error
- CFF_GlyphSlot_Init( CFF_GlyphSlot slot )
+ CFF_GlyphSlot_Init( CFF_GlyphSlot slot )
{
- CFF_Face face = (CFF_Face) slot->root.face;
- CFF_Font* font = face->extra.data;
- PSHinter_Interface* pshinter = font->pshinter;
+ CFF_Face face = (CFF_Face)slot->root.face;
+ CFF_Font* font = face->extra.data;
+ PSHinter_Interface* pshinter = font->pshinter;
- if (pshinter)
+
+ if ( pshinter )
{
FT_Module module;
- module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
- if (module)
+
+ module = FT_Get_Module( slot->root.face->driver->root.library,
+ "pshinter" );
+ if ( module )
{
T2_Hints_Funcs funcs;
+
funcs = pshinter->get_t2_funcs( module );
slot->root.internal->glyph_hints = (void*)funcs;
}
}
+
return 0;
}
-
-
/*************************************************************************/
/* */
/* FACE FUNCTIONS */
@@ -440,12 +445,12 @@
FT_Int num_params,
FT_Parameter* params )
{
- FT_Error error;
- SFNT_Interface* sfnt;
- PSNames_Interface* psnames;
- PSHinter_Interface* pshinter;
- FT_Bool pure_cff = 1;
- FT_Bool sfnt_format = 0;
+ FT_Error error;
+ SFNT_Interface* sfnt;
+ PSNames_Interface* psnames;
+ PSHinter_Interface* pshinter;
+ FT_Bool pure_cff = 1;
+ FT_Bool sfnt_format = 0;
sfnt = (SFNT_Interface*)FT_Get_Module_Interface(
@@ -534,13 +539,13 @@
goto Exit;
cff->pshinter = pshinter;
-
+
/* Complement the root flags with some interesting information. */
/* Note that this is only necessary for pure CFF and CEF fonts. */
- root = &face->root;
-
+ root = &face->root;
root->num_glyphs = cff->num_glyphs;
+
if ( pure_cff )
{
CFF_Font_Dict* dict = &cff->top_font.font_dict;
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.c
@@ -38,7 +38,6 @@
#define FT_COMPONENT trace_cidobjs
-
/*************************************************************************/
/* */
/* SLOT FUNCTIONS */
@@ -54,29 +53,35 @@
FT_LOCAL_DEF FT_Error
CID_GlyphSlot_Init( CID_GlyphSlot slot )
- {
+ {
CID_Face face;
PSHinter_Interface* pshinter;
-
+
+
face = (CID_Face) slot->root.face;
pshinter = face->pshinter;
- if (pshinter)
+
+ if ( pshinter )
{
FT_Module module;
-
- module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
- if (module)
+
+
+ module = FT_Get_Module( slot->root.face->driver->root.library,
+ "pshinter" );
+ if ( module )
{
T1_Hints_Funcs funcs;
-
+
+
funcs = pshinter->get_t1_funcs( module );
- slot->root.internal->glyph_hints = (void*)funcs;
+ slot->root.internal->glyph_hints = (void*)funcs;
}
}
+
return 0;
}
-
+
/*************************************************************************/
/* */
/* SIZE FUNCTIONS */
@@ -87,16 +92,16 @@
static PSH_Globals_Funcs
CID_Size_Get_Globals_Funcs( CID_Size size )
{
- CID_Face face = (CID_Face) size->root.face;
+ CID_Face face = (CID_Face)size->root.face;
PSHinter_Interface* pshinter = face->pshinter;
FT_Module module;
-
+
module = FT_Get_Module( size->root.face->driver->root.library,
"pshinter" );
return ( module && pshinter && pshinter->get_globals_funcs )
? pshinter->get_globals_funcs( module )
- : 0 ;
+ : 0;
}
@@ -106,8 +111,8 @@
if ( size->root.internal )
{
PSH_Globals_Funcs funcs;
-
+
funcs = CID_Size_Get_Globals_Funcs( size );
if ( funcs )
funcs->destroy( (PSH_Globals)size->root.internal );
@@ -122,21 +127,21 @@
{
FT_Error error = 0;
PSH_Globals_Funcs funcs = CID_Size_Get_Globals_Funcs( size );
-
+
if ( funcs )
{
- PSH_Globals globals;
- CID_Face face = (CID_Face)size->root.face;
- CID_FontDict* dict = face->cid.font_dicts + face->root.face_index;
- T1_Private* priv = &dict->private_dict;
-
+ PSH_Globals globals;
+ CID_Face face = (CID_Face)size->root.face;
+ CID_FontDict* dict = face->cid.font_dicts + face->root.face_index;
+ T1_Private* priv = &dict->private_dict;
+
error = funcs->create( size->root.face->memory, priv, &globals );
if ( !error )
size->root.internal = (FT_Size_Internal)(void*)globals;
}
-
+
return error;
}
@@ -147,13 +152,13 @@
PSH_Globals_Funcs funcs = CID_Size_Get_Globals_Funcs( size );
FT_Error error = 0;
-
+
if ( funcs )
error = funcs->set_scale( (PSH_Globals)size->root.internal,
size->root.metrics.x_scale,
size->root.metrics.y_scale,
0, 0 );
- return error;
+ return error;
}
@@ -243,10 +248,10 @@
FT_Int num_params,
FT_Parameter* params )
{
- FT_Error error;
- PSNames_Interface* psnames;
- PSAux_Interface* psaux;
- PSHinter_Interface* pshinter;
+ FT_Error error;
+ PSNames_Interface* psnames;
+ PSAux_Interface* psaux;
+ PSHinter_Interface* pshinter;
FT_UNUSED( num_params );
FT_UNUSED( params );
@@ -269,21 +274,19 @@
if ( !psaux )
{
psaux = (PSAux_Interface*)FT_Get_Module_Interface(
- FT_FACE_LIBRARY( face ), "psaux" );
+ FT_FACE_LIBRARY( face ), "psaux" );
face->psaux = psaux;
}
-
pshinter = (PSHinter_Interface*)face->pshinter;
if ( !pshinter )
{
- pshinter = (PSHinter_Interface*)
- FT_Get_Module_Interface( FT_FACE_LIBRARY( face ), "pshinter" );
+ pshinter = (PSHinter_Interface*)FT_Get_Module_Interface(
+ FT_FACE_LIBRARY( face ), "pshinter" );
face->pshinter = pshinter;
}
-
/* open the tokenizer; this will also check the font format */
if ( FILE_Seek( 0 ) )
--- a/src/pshinter/pshrec.c
+++ b/src/pshinter/pshrec.c
@@ -1177,8 +1177,8 @@
}
/* compute lengths */
- for ( n = 0; n < count*2; n += 2 )
- stems[n+1] = stems[n+1] - stems[n];
+ for ( n = 0; n < count * 2; n += 2 )
+ stems[n + 1] = stems[n + 1] - stems[n];
/* add them to the current dimension */
ps_hints_stem( (PS_Hints)hints, dimension, count, stems );