diff --git a/CHANGES b/CHANGES index 9bb65c372..e3f1720fc 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,43 @@ LATEST CHANGES + - CHANGES TO THE HIGH-LEVEL API + + o FT_Get_Kerning has a new parameter that allows you to select + the coordinates of the kerning vector ( font units, scaled, + scaled + grid-fitted ). + + o the outline functions are now in and not + part of anymore + + o now contains declarations for + FT_New_Library, FT_Done_Library, FT_Add_Default_Modules + + o the so-called convenience functions have moved from "ftoutln.c" + to "ftglyph.c", and are thus available with this optional component + of the library. They are declared in now.. + + o anti-aliased rendering is now the default for FT_Render_Glyph + (i.e. corresponds to render_mode == 0 == ft_render_mode_normal). + To generate a monochrome bitmap, use ft_render_mode_mono, or the + FT_LOAD_MONOCHROME flag in FT_Load_Glyph/FT_Load_Char. + + FT_LOAD_ANTI_ALIAS is still defined, but values to 0. + + o now include , + solving a few headaches :-) + + o the type FT_GlyphSlotRec has now a "library" field. + + + + - CHANGES TO THE "ftglyph.h" API + + This API has been severely modified in order to make it simpler, + clearer, and more efficient. It certainly now looks like a real + "glyph factory" object, and allows client applications to manage + (i.e. transform, bbox and render) glyph images without ever knowing + their original format. + - added support for CID-keyed fonts to the CFF driver. maybe support for pure CFF + CEF fonts should come in ?? @@ -13,6 +51,22 @@ LATEST CHANGES Also removed the use of "cidafm" for now, even if the source files are still there. This functionality will certainly go into a specific module.. + + + + - ADDED SUPPORT FOR THE AUTO-HINTER + + It works :-) I have a demo program which simply is a copy of "ftview" + that does a FT_Add_Module( library, &autohinter_module_class ) after + library initialisation, and Type 1 & OpenType/CFF fonts are now hinted. + + CID fonts are not hinted, as they include no charmap and the auto-hinter + doesn't include "generic" global metrics computations yet.. + + Now, I need to release this thing to the FreeType 2 source.. + + + - CHANGES TO THE RENDERER MODULES diff --git a/demos/src/ftstring.c b/demos/src/ftstring.c index 61c7c7579..2f434aed2 100644 --- a/demos/src/ftstring.c +++ b/demos/src/ftstring.c @@ -188,48 +188,6 @@ } - /************************************************************** - * - * Compute the dimension of a string of glyphs in pixels - * - */ - static void compute_bbox( FT_BBox* abbox ) - { - PGlyph glyph = glyphs; - FT_BBox bbox; - int n; - - bbox.xMin = 32000; bbox.xMax = -32000; - bbox.yMin = 32000; bbox.yMax = -32000; - - for ( n = 0; n < num_glyphs; n++, glyph++ ) - { - FT_BBox cbox; - FT_Pos x, y; - - if (!glyph->image) continue; - - x = glyph->pos.x; - y = glyph->pos.y; - - FT_Glyph_Get_CBox( glyph->image, - ft_glyph_bbox_gridfit, - &cbox ); - - cbox.xMin += x; - cbox.yMin += y; - cbox.xMax += x; - cbox.yMax += y; - - if (cbox.xMin < bbox.xMin) bbox.xMin = cbox.xMin; - if (cbox.xMax > bbox.xMax) bbox.xMax = cbox.xMax; - if (cbox.yMin < bbox.yMin) bbox.yMin = cbox.yMin; - if (cbox.yMax > bbox.yMax) bbox.yMax = cbox.yMax; - } - *abbox = bbox; - } - - /************************************************************** * * Layout a string of glyphs, the glyphs are untransformed.. @@ -346,7 +304,8 @@ { /* convert to a bitmap - destroy native image */ error = FT_Glyph_To_Bitmap( &image, - ft_render_mode_normal, + antialias ? ft_render_mode_normal + : ft_render_mode_mono, 0, 1 ); if (!error) { @@ -586,8 +545,8 @@ static void usage( char* execname ) { fprintf( stderr, "\n" ); - fprintf( stderr, "ftview: simple string viewer -- part of the FreeType project\n" ); - fprintf( stderr, "------------------------------------------------------------\n" ); + fprintf( stderr, "ftstring: string viewer -- part of the FreeType project\n" ); + fprintf( stderr, "-------------------------------------------------------\n" ); fprintf( stderr, "\n" ); fprintf( stderr, "Usage: %s [options below] ppem fontname[.ttf|.ttc] ...\n", execname ); @@ -679,6 +638,10 @@ strncpy( filename, argv[file], 128 ); strncpy( alt_filename, argv[file], 128 ); + /* first, try to load the glyph name as-is */ + error = FT_New_Face( library, filename, 0, &face ); + if (!error) goto Success; + #ifndef macintosh if ( i >= 0 ) { @@ -687,11 +650,11 @@ } #endif - /* Load face */ - + /* if it didn't work, try to add ".ttf" at the end */ error = FT_New_Face( library, filename, 0, &face ); if (error) goto Display_Font; + Success: /* prepare the text to be rendered */ prepare_text( (unsigned char*)Text ); @@ -733,11 +696,8 @@ { /* layout & render string */ { - FT_BBox bbox; - reset_transform(); layout_glyphs(); - compute_bbox( &bbox ); render_string( bit.width/2, bit.rows/2 ); } diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h index bc101caaf..ac765d5ae 100644 --- a/include/freetype/freetype.h +++ b/include/freetype/freetype.h @@ -1822,7 +1822,7 @@ /* FT_Render_Glyph. */ /* */ /* */ -#define FT_LOAD_MONOCHROME 0 /* this is the default */ +#define FT_LOAD_MONOCHROME 4096 /*************************************************************************/