diff --git a/ChangeLog b/ChangeLog index f9a6a26b9..65553aadc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,21 +1,22 @@ 2007-01-08 David Turner - * docs/CHANGES: updating documentation + * docs/CHANGES: Updated. - * include/freetype/ftgasp.h, src/base/ftgasp.c: adding a - new API FT_Get_Gasp to return entries of the GASP table + * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add + a new API `FT_Get_Gasp' to return entries of the `gasp' table corresponding to a given character pixel size. - * src/sfnt/ttload.c: add version check for the GASP table, - in order to be better future-proof + * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the + `gasp' table, in order to avoid potential problems with later + versions. - * include/freetype/config/ftheader.h: add definition of - FT_GASP_H, corresponding to + * include/freetype/config/ftheader.h (FT_GASP_H): New macro for + . - * src/base/rules.mk, src/base/Jamfile, modules.cfg, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: Adding src/base/ftgasp.c - to the default build + * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources), + modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the + default build. 2007-01-07 Werner Lemberg diff --git a/docs/CHANGES b/docs/CHANGES index 3b6f41272..5d3037ea9 100644 --- a/docs/CHANGES +++ b/docs/CHANGES @@ -7,49 +7,51 @@ CHANGES BETWEEN 2.2.2 and 2.2.1 - Various memory leaks have been found and fixed. - - Fixed the TrueType name loader that didn't deal properly with some - fonts that encode their names in UTF-16 (the spec was vague, and - the code assumed UCS-4) + - The TrueType name loader now deals properly with some fonts that + encode their names in UTF-16 (the specification was vague, and + the code incorrectly assumed UCS-4). - - Fixed the TrueType bytecode loader to deal properly with subtle - monochrome/gray issues when scaling the CVT. Some fonts exhibited - bad rendering artefacts otherwise. + - Fixed the TrueType bytecode loader to deal properly with subtle + monochrome/gray issues when scaling the CVT. Some fonts + exhibited bad rendering artifacts otherwise. + + - FT_GlyphSlot_Embolden now supports vertical layouts correctly + (it mangled the vertical advance height). - - FT_GlyphSlot_Embolden now supports vertical layouts correctly - (it mangled the vertical advance height) II. NEW API FUNCTIONS - - FT_Library_SetLcdFilter allows you to select a special filter to - be applied to the bitmaps generated by FT_Render_Glyph when one - of FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V is used. This - filter is used to reduce color-fringes, several settings are - available through the FT_LCD_FILTER_XXX enum. + - `FT_Library_SetLcdFilter' allows you to select a special filter + to be applied to the bitmaps generated by `FT_Render_Glyph' if + one of the FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V modes has + been selected. This filter is used to reduce color fringes; + several settings are available through the FT_LCD_FILTER_XXX + enumeration. - See its declaration and documentation in FT_LCD_FILTER_H, a.k.a. - include/freetype/ftlcdfil.h. + Its declaration and documentation can be found in file + `include/freetype/ftlcdfil.h' (to be accessed with macro + FT_LCD_FILTER_H). - *IMPORTANT*: note that this function returns an error - (FT_Err_Unimplemented_Feature) in default builds of the library - for patent reasons. See below + *IMPORTANT*: This function returns an error + (FT_Err_Unimplemented_Feature) in default builds of the library + for patent reasons. See below. + - `FT_Get_Gasp' allows you to query the flags of the TrueType + `gasp' table for a given character pixel size. This is useful + to duplicate the text rendering of MS Windows, when the native + bytecode interpreter is enabled (which isn't the default for + other patent reasons). - - FT_Get_Gasp allows you to query the TrueType GASP flags for a - given character pixel size. This is only useful to duplicate - Windows' text rendering, when the native bytecode interpreter is - enabled (which still isn't the default for other patent reasons) - - Declaration and documentation in FT_GASP_H, a.k.a. - include/freetype/ftgasp.h - + Its declaration and documentation can be found in file + `include/freetype/ftgasp.h' (to be accessed with macro + FT_GASP_H). III. IMPORTANT CHANGES - - The auto-hinter has been severely tuned to improve its results - with serif fonts. This results in much better font rendering of - many web pages. - + - The auto-hinter has been tuned a lot to improve its results with + serif fonts, resulting in much better font rendering of many web + pages. - The unpatented hinter is now part of the default build of the library; we have added code to automatically support `tricky' @@ -74,7 +76,6 @@ CHANGES BETWEEN 2.2.2 and 2.2.1 *disable* the feature to save code space by undefining TT_CONFIG_OPTION_UNPATENTED_HINTING in ftoption.h. - - LCD-optimized rendering is now DISABLED in all default builds of the library, mainly due to PATENT issues. For more information see: @@ -93,27 +94,25 @@ CHANGES BETWEEN 2.2.2 and 2.2.1 The displayed result should be equal to normal anti-aliased rendering. - Additionally, if FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - defined, the new FT_Library_SetLcdFilter function will return - the FT_Err_Unimplemented_Feature error code. - + Additionally, if FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + defined, the new `FT_Library_SetLcdFilter' function returns the + FT_Err_Unimplemented_Feature error code. - Some computation bugs in the TrueType bytecode interpreter were found, which allow us to get rid of very subtle and rare differences we had experienced with the Windows renderer. - - - It's now possible to cross-compile the library easily. See the - file docs/INSTALL.CROSS for details + - It is now possible to cross-compile the library easily. See the + file docs/INSTALL.CROSS for details. III. MISCELLANEOUS - Various performance and memory footprint optimizations have been - performed on the TrueType and CFF font loaders, sometimes with - very drastic benefits (e.g. the TrueType loader is now about - 25% faster, FreeType should use less heap memory in nearly all - conditions) + performed on the TrueType and CFF font loaders, sometimes with + very drastic benefits (e.g., the TrueType loader is now about + 25% faster; FreeType should use less heap memory under nearly + all conditions) - The anti-aliased rasterizer has been optimized and is now 15% to 25% percent faster than in previous versions, depending on @@ -122,11 +121,12 @@ CHANGES BETWEEN 2.2.2 and 2.2.1 - The Type 1 loader has been improved; as an example, it now skips top-level dictionaries properly. - - fixed the PFR font loader so that font files without any outlines - are not recognized as FT_FACE_FLAG_SCALABLE anymore + - The PFR font loader no longer erroneously tags font files + without any outlines as FT_FACE_FLAG_SCALABLE. + + - Better support for Mac Fonts on POSIX systems, plus compilation + fixes for PPC64. - - better support for Mac Fonts on POSIX systems, plus compilation - fixes for PPC64 ====================================================================== @@ -244,7 +244,7 @@ CHANGES BETWEEN 2.2 and 2.1.10 used to specify the hinting algorithm, the other to specify the pixel rendering mode. - - FT_New_Face() and FT_New_Face_From_FSSpec() in ftmac.c have been + - `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been changed to count supported scalable faces (sfnt, LWFN) only, and to return the number of available faces via face->num_faces. Unsupported bitmap faces (fbit, NFNT) are ignored. @@ -498,7 +498,7 @@ CHANGES BETWEEN 2.1.8 and 2.1.7 - The WinFNT driver now correctly reports FT_ENCODING_NONE for all but one encoding. Use the new FT_WinFNT_ID_XXX values together - with FT_Get_WinFNT_Header() to get the WinFNT charset ID. + with `FT_Get_WinFNT_Header' to get the WinFNT charset ID. - The descender metrics (face->size->metrics.descender) for WinFNT bitmap fonts had the wrong sign. @@ -825,8 +825,8 @@ CHANGES BETWEEN 2.1.4 and 2.1.3 - The configure script now tries to use the system-wide zlib when it finds one (instead of the copy found in src/gzip). And - "freetype-config" has been updated to return relevant flags in - this case when invoked with "--libs" (e.g. "-lzlib"). + `freetype-config' has been updated to return relevant flags in + this case when invoked with `--libs' (e.g. `-lzlib'). - Certain fonts couldn't be loaded by 2.1.3 because they lacked a Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously @@ -877,13 +877,13 @@ CHANGES BETWEEN 2.1.4 and 2.1.3 - A Windows FNT specific API has been added, mostly to access font headers. This is used by Wine. - - TrueType tables without an "hmtx" table are now tolerated when + - TrueType tables without an `hmtx' table are now tolerated when an incremental interface is used. This happens for certain Type42 fonts passed from Ghostscript to FreeType. - The PFR font driver is now capable of returning the font family and style names when they are available (instead of the sole - "FontID"). This is performed by parsing an *undocumented* + `FontID'). This is performed by parsing an *undocumented* portion of the font file! @@ -901,7 +901,7 @@ CHANGES BETWEEN 2.1.4 and 2.1.3 how to use them in autoconf scripts). - The installation documentation has been seriously revamped. - Everything is now in the "docs" directory. + Everything is now in the `docs' directory. ====================================================================== @@ -928,7 +928,7 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 boxes to be loaded from multiple master fonts. - The SFNT validation code has been rewritten. FreeType can now - load "broken" fonts that were usable on Windows, but not with + load `broken' fonts that were usable on Windows, but not with previous versions of the library. - The computation of bearings in the BDF driver has been fixed. @@ -937,8 +937,8 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 (more precisely, when trying to apply hints to an empty glyph outline). - - The TrueType glyph loader now supports composites in "Apple - format" (they differ slightly from Microsoft/OpenType ones in + - The TrueType glyph loader now supports composites in `Apple + format' (they differ slightly from Microsoft/OpenType ones in the way transformation offsets are computed). - FreeType was very slow at opening certain asian CID/CFF fonts, @@ -964,7 +964,7 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 for additional details on this topic. - - The "load_flags" parameter of FT_Load_Glyph is now an FT_Int32 + - The `load_flags' parameter of `FT_Load_Glyph' is now an FT_Int32 (instead of just being an FT_Int). This breaks source and binary compatibility for 16bit systems only, while retaining both of them for 32 and 64 bit ones. @@ -1008,14 +1008,14 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 by FTC_ImageTypeRec. Note that one of its fields is a `load_flag' parameter for FT_Load_Glyph. - - The field "num_grays" of FT_SBitRec has been changed to - "max_grays" in order to fit within a single byte. Its + - The field `num_grays' of FT_SBitRec has been changed to + `max_grays' in order to fit within a single byte. Its maximum value is thus 255 (instead of 256 as previously). III. MISCELLANEOUS - - Added support for the DESTDIR variable during "make install". + - Added support for the DESTDIR variable during `make install'. This simplifies packaging of FreeType. - Included modified copies of the ZLib sources in `src/gzip' in @@ -1025,14 +1025,14 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 - The DocMaker tool used to generate the on-line API reference has been completely rewritten. It is now located in - "src/tools/docmaker/docmaker.py". Features: + `src/tools/docmaker/docmaker.py'. Features: - better cross-referenced output - more polished output - uses Python regular expressions (though it didn't speed the program) - much more modular structure, which allows for different - "backends" in order to generate HTML, XML, or whatever + `backends' in order to generate HTML, XML, or whatever format. One can regenerate the API reference by calling: @@ -1082,7 +1082,7 @@ CHANGES BETWEEN 2.1.2 and 2.1.1 the first glyph index wasn't 0. - A serious typo in the TrueType composite loader produced - incorrectly placed glyphs in fonts like "Wingdings" and a few + incorrectly placed glyphs in fonts like `Wingdings' and a few others. @@ -1091,7 +1091,7 @@ CHANGES BETWEEN 2.1.2 and 2.1.1 - The Win32 Visual C++ project file has been updated to include the PFR driver as well. - - "freetype.m4" is now installed by default by "make install" on + - `freetype.m4' is now installed by default by `make install' on Unix systems. - The function FT_Get_PS_Font_Info now works with CID and Type42 @@ -1181,7 +1181,7 @@ CHANGES BETWEEN 2.1.0 and 2.0.9 It seems that native TrueType hinting is _extremely_ sensitive to rounding errors. The required vector computation routines - have been optimized and placed within the "ttinterp.c" file. + have been optimized and placed within the `ttinterp.c' file. - Fixed the parsing of accelerator tables in the PCF font driver. @@ -1228,11 +1228,11 @@ CHANGES BETWEEN 2.1.0 and 2.0.9 consistency. The following should be true, except for public types: - * All structure types have a name ending in "Rec" (short + * All structure types have a name ending in `Rec' (short for `record'). * A pointer-to-structure type has the same name as the - structure, _without_ the "Rec" suffix. + structure, _without_ the `Rec' suffix. Example: @@ -1245,7 +1245,7 @@ CHANGES BETWEEN 2.1.0 and 2.0.9 - Many internal macros have been renamed to increase consistency. The following should be true: - * All macros have a name beginning with "FT_". This + * All macros have a name beginning with `FT_'. This required a few changes like ALLOC => FT_ALLOC @@ -1286,7 +1286,7 @@ CHANGES BETWEEN 2.1.0 and 2.0.9 FT_New_Memory_Stream => FT_Stream_OpenMemory FT_Extract_Frame => FT_Stream_ExtractFrame - Note that method names do not contain "_". + Note that method names do not contain `_'. - The FT_ALLOC_ARRAY and FT_REALLOC_ARRAY have been replaced with FT_NEW_ARRAY and FT_RENEW_ARRAY which do not take a @@ -1299,17 +1299,17 @@ CHANGES BETWEEN 2.1.0 and 2.0.9 eases the support of additional charmap types within the engine. - - A new configuration file named "ftstdlib.h" has been added + - A new configuration file named `ftstdlib.h' has been added to `include/freetype/config'. It is used to define aliases for _every_ routine of the ISO C library that the font - engine uses. Each aliases has a "ft_" prefix - (e.g. "ft_strlen" is an alias for "strlen"). + engine uses. Each aliases has a `ft_' prefix + (e.g. `ft_strlen' is an alias for `strlen'). This is used to ease the porting of FreeType 2 to exotic runtime environments where the ISO C Library isn't available (e.g. XFree86 extension modules). - More details are available in the "ChangeLog" file. + More details are available in the `ChangeLog' file. ====================================================================== @@ -1318,7 +1318,7 @@ CHANGES BETWEEN 2.0.9 and 2.0.8 I. IMPORTANT BUG FIXES - - Certain fonts like "foxjump.ttf" contain broken name tables with + - Certain fonts like `foxjump.ttf' contain broken name tables with invalid entries and wild offsets. This caused FreeType to crash when trying to load them. @@ -1333,7 +1333,7 @@ CHANGES BETWEEN 2.0.9 and 2.0.8 - The CID font driver has been fixed. It unfortunately returned a Postscript Font name with a leading slash, as in - "/MunhwaGothic-Regular". + `/MunhwaGothic-Regular'. - FreeType 2 should now compile fine on AIX 4.3.3 as a shared library. @@ -1364,7 +1364,7 @@ CHANGES BETWEEN 2.0.9 and 2.0.8 III. MISCELLANEOUS - The FreeType sources are under heavy internal re-factoring. As - a consequence, we have created a branch named "STABLE" on the + a consequence, we have created a branch named `STABLE' on the CVS to hold all future releases/fixes in the 2.0.x family. The HEAD branch now contains the re-factored sources and @@ -1379,8 +1379,8 @@ CHANGES BETWEEN 2.0.8 and 2.0.7 I. IMPORTANT BUG FIXES - - There was a small but nasty bug in "freetype-config.in" which - caused the "freetype-config" script to fail on Unix. + - There was a small but nasty bug in `freetype-config.in' which + caused the `freetype-config' script to fail on Unix. This didn't prevent the installation of the library or even its execution, but caused problems when trying to compile many Unix @@ -1401,7 +1401,7 @@ CHANGES BETWEEN 2.0.7 and 2.0.6 - Fixed two bugs in the Type 1 font driver. The first one resulted in a memory leak in subtle cases. The other one caused - FreeType to crash when trying to load ".gsf" files (Ghostscript + FreeType to crash when trying to load `.gsf' files (Ghostscript so-called Postscript fonts). (This made _many_ KDE applications crash on certain systems. @@ -1412,22 +1412,22 @@ CHANGES BETWEEN 2.0.7 and 2.0.6 - Fixed a memory leak in the PCF font driver. - Fixed the Visual C++ project file - "builds/win32/visualc/freetype.dsp" since it didn't include the + `builds/win32/visualc/freetype.dsp' since it didn't include the Postscript hinter component, causing errors at build time. - Fixed a small rendering bug in the anti-aliased renderer that only occurred when trying to draw thin (less than 1 pixel) strokes. - - Fixed "builds/unix/freetype2.a4" which is used to generate a - valid "freetype2.m4" for use with autoconf. + - Fixed `builds/unix/freetype2.a4' which is used to generate a + valid `freetype2.m4' for use with autoconf. - Fixed the OpenVMS Makefiles. II. MISCELLANEOUS - - Added "configure" and "install" scripts to the top-level + - Added `configure' and `install' scripts to the top-level directory. A GNU-style installation is thus now easily possible with @@ -1459,14 +1459,14 @@ CHANGES BETWEEN 2.0.6 and 2.0.5 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 + - `FT_Glyph_To_Bitmap' did erroneously modify the source glyph in certain cases. - - "glnames.py" still contained a bug that made FreeType return + - `glnames.py' still contained a bug that made FreeType return invalid names for certain glyphs. - The library crashed when loading certain Type 1 fonts like - "sadn.pfb" ("Stalingrad Normal"), which appear to contain + `sadn.pfb' (`Stalingrad Normal'), which appear to contain pathetic font info dictionaries. - The TrueType glyph loader is now much more paranoid and checks @@ -1488,7 +1488,7 @@ CHANGES BETWEEN 2.0.6 and 2.0.5 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 + - 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. @@ -1523,12 +1523,12 @@ CHANGES BETWEEN 2.0.6 and 2.0.5 differences in the monochrome rasterizers and will be worked out in an upcoming release. - - We have decided to fork the sources in a "stable" branch, and an - "unstable" one, since FreeType is becoming a critical component + - We have decided to fork the sources in a `stable' branch, and an + `unstable' one, since FreeType is becoming a critical component of many Unix systems. The next bug-fix releases of the library will be named 2.0.7, - 2.0.8, etc., while the "2.1" branch will contain a version of + 2.0.8, etc., while the `2.1' branch will contain a version of the sources where we will start major reworking of the library's internals, in order to produce FreeType 2.2.0 (or even 3.0) in a more distant future. @@ -1544,8 +1544,8 @@ CHANGES BETWEEN 2.0.5 and 2.0.4 NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER. THIS MODULE WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1) - - Fixed a bug that made certain glyphs, like "Cacute", "cacute" and - "lslash" unavailable from Unicode charmaps of Postscript fonts. + - Fixed a bug that made certain glyphs, like `Cacute', `cacute' and + `lslash' unavailable from Unicode charmaps of Postscript fonts. This prevented the correct display of Polish text, for example. - The kerning table of Type 1 fonts was loaded by FreeType, when its @@ -1557,7 +1557,7 @@ CHANGES BETWEEN 2.0.5 and 2.0.4 better performance, as well as support for the new formats defined by the OpenType 1.3 specification (8, 10, and 12) - - Fixed a serious typo in "src/base/ftcalc.c" which caused invalid + - Fixed a serious typo in `src/base/ftcalc.c' which caused invalid computations in certain rare cases, producing ugly artefacts. - The size of the EM square is computed with a more accurate @@ -1568,11 +1568,11 @@ CHANGES BETWEEN 2.0.5 and 2.0.4 behaviour within the cache manager, causing unnecessary reloads (for FT_Face and FT_Size objects only). - - Added a new function named "FT_Get_Name_Index" to retrieve the + - Added a new function named `FT_Get_Name_Index' to retrieve the glyph index of a given glyph name, when found in a face. - - Added a new function named "FT_Get_Postscript_Name" to retrieve - the "unique" Postscript font name of a given face. + - 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 ) providing new FT_Size-management functions: @@ -1586,7 +1586,7 @@ CHANGES BETWEEN 2.0.5 and 2.0.4 - Removed many pedantic compiler warnings from the sources. - - Added an Amiga build directory in "builds/amiga". + - Added an Amiga build directory in `builds/amiga'. ====================================================================== @@ -1606,16 +1606,16 @@ CHANGES BETWEEN 2.0.4 and 2.0.3 TrueType glyphs to be correctly returned. - Fixed the Visual C++ project files located in - "builds/win32/visualc" (previous versions used older names of the + `builds/win32/visualc' (previous versions used older names of the library). - - Many 32-bit constants have an "L" appended to their value, in + - Many 32-bit constants have an `L' appended to their value, in order to improve the 16-bitness of the code. Someone is actually trying to use FT2 on an Atari ST machine! - - Updated the "builds/detect.mk" file in order to automatically - build FT2 on AIX systems. AIX uses "/usr/sbin/init" instead of - "/sbin/init" and wasn't previously detected as a Unix platform by + - Updated the `builds/detect.mk' file in order to automatically + build FT2 on AIX systems. AIX uses `/usr/sbin/init' instead of + `/sbin/init' and wasn't previously detected as a Unix platform by the FreeType build system. - Updated the Unix-specific portions of the build system (new @@ -1635,8 +1635,8 @@ CHANGES BETWEEN 2.0.3 and 2.0.2 several annoying artefacts, mainly: - Blue zone alignement of horizontal stems wasn't performed - correctly, resulting in artefacts like the "d" being placed - one pixel below the "b" in some fonts like Time New Roman. + correctly, resulting in artefacts like the `d' being placed + one pixel below the `b' in some fonts like Time New Roman. - Overshoot thresholding wasn't performed correctly, creating unpleasant artefacts at large character pixel sizes. @@ -1702,28 +1702,28 @@ CHANGES BETWEEN 2.0.3 and 2.0.2 accurate. - The build system has been improved and fixed, mainly to support - "make" on Windows 2000 correctly, avoid problems with "make - distclean" on non Unix systems, etc. + `make' on Windows 2000 correctly, avoid problems with `make + distclean' on non Unix systems, etc. - - Hexadecimal constants have been suffixed with "U" to avoid + - Hexadecimal constants have been suffixed with `U' to avoid problems with certain compilers on 64-bit platforms. - - A new directory named "src/tools" has been created. It contains + - A new directory named `src/tools' has been created. It contains Python scripts and simple unit test programs used to develop the library. - - The DocMaker tool has been moved from "docs" to "src/tools" and + - The DocMaker tool has been moved from `docs' to `src/tools' and has been updated with the following: - - Now accepts the "--title=XXXX" or "-t XXXX" option from the + - Now accepts the `--title=XXXX' or `-t XXXX' option from the command line to set the project's name in the generated API reference. - - Now accepts the "--output=DIR" or "-o DIR" option from the + - Now accepts the `--output=DIR' or `-o DIR' option from the command line to set the output directory for all generated HTML files. - - Now accepts the "--prefix=XXXX" or "-p XXX" option from the + - Now accepts the `--prefix=XXXX' or `-p XXX' option from the command line to set the file prefix to use for all generated HTML files. @@ -1749,15 +1749,15 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 to get high-quality TrueType rendering, you will need to toggle by hand the definition of the TT_CONFIG_OPTION_BYTECODE_INTERPRETER macro in the file - "include/freetype/config/ftoption.h". + `include/freetype/config/ftoption.h'. - The CFF driver has been improved by Tom Kacvinsky and Sander van der Wal: - * Support for "seac" emulation. - * Support for "dotsection". + * Support for `seac' emulation. + * Support for `dotsection'. * Support for retrieving glyph names through - "FT_Get_Glyph_Name". + `FT_Get_Glyph_Name'. The first two items are necessary to correctly a large number of Type 1 fonts converted to the CFF formats by Adobe Acrobat. @@ -1767,8 +1767,8 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 * Better EM size computation. * Better support for synthetic (transformed) fonts. * The Type 1 driver returns the charstrings corresponding to - each glyph in the "glyph->control_data" field after a call to - "FT_Load_Glyph" (thanks Ha Shao). + each glyph in the `glyph->control_data' field after a call to + `FT_Load_Glyph' (thanks Ha Shao). - Various other bugfixes, including the following: @@ -1777,8 +1777,8 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 when they shouldn't. * Many casts were added to make the code more 64-bits safe. It also now compiles on Windows XP 64-bits without warnings. - * Some incorrect writable statics were removed in the "autohint" - and "pcf" drivers. FreeType 2 now compiles on Epoc again. + * Some incorrect writable statics were removed in the `autohint' + and `pcf' drivers. FreeType 2 now compiles on Epoc again. II. CHANGES TO THE HIGH-LEVEL API @@ -1805,7 +1805,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 The file is used to define the header filename macros. The complete and commented list of macros is available - in the API reference under the section name "Header File Macros" + in the API reference under the section name `Header File Macros' in Chapter I. For more information, see section I of the following document: @@ -1820,7 +1820,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 - Many, many comments have been added to the public source file in order to automatically generate the API Reference through the - "docmaker.py" Python script. + `docmaker.py' Python script. The latter has been updated to support the grouping of sections in chapters and better index sort. See: @@ -1834,7 +1834,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 (but with your own Makefiles or project files), you will need to be aware that the build process has changed a little bit. - You don't need to put the "src" directory in the include path + You don't need to put the `src' directory in the include path when compiling any FT2 component. Instead, simply put the component's directory in the current include path. @@ -1866,15 +1866,15 @@ CHANGES BETWEEN 2.0.1 and 2.0 - Fixed many bugs related to the support of CFF / OpenType fonts. These formats are now much better supported though there is still work planned to deal with charset tables and PDF-embedded - CFF files that use the old "seac" command. + CFF files that use the old `seac' command. - The library could not be compiled in debug mode with a very small number of C compilers whose pre-processors didn't - implement the "##" directive correctly (i.e. per se the ANSI C + implement the `##' directive correctly (i.e. per se the ANSI C specification!) An elegant fix was found. - Added support for the free Borland command-line C++ Builder - compiler. Use "make setup bcc32". Also fixed a few source + compiler. Use `make setup bcc32'. Also fixed a few source lines that generated new warnings with BCC32. - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of @@ -1886,9 +1886,9 @@ CHANGES BETWEEN 2.0.1 and 2.0 correct support of synthetic (obliqued) fonts in the auto-hinter, better support for embedded bitmaps in a SFNT font. - - Fixed some problems with "freetype-config". + - Fixed some problems with `freetype-config'. - Finally, the "standard" scheme for including FreeType headers is now + Finally, the `standard' scheme for including FreeType headers is now gradually changing, but this will be explained in a later release (probably 2.0.2). @@ -1901,9 +1901,9 @@ CHANGES BETWEEN 2.0.1 and 2.0 CHANGES BETWEEN beta8 and 2.0 - Changed the default installation path for public headers from - "include/freetype" to "include/freetype2". + `include/freetype' to `include/freetype2'. - Also added a new "freetype-config" that is automatically generated + Also added a new `freetype-config' that is automatically generated and installed on Unix and Cygwin systems. The script itself is used to retrieve the current install path, C compilation flags as well as linker flags. @@ -1916,29 +1916,29 @@ CHANGES BETWEEN beta8 and 2.0 called. * The linearHoriAdvance and linerVertAdvance fields were not correctly returned for glyphs processed by the auto-hinter. - * "type1z" renamed back to "type1"; the old "type1" module has + * `type1z' renamed back to `type1'; the old `type1' module has been removed. - Revamped the build system to make it a lot more generic. This will allow us to re-use nearly un-modified in lots of other projects (including FreeType Layout). - - Changed "cid" to use "psaux" too. + - Changed `cid' to use `psaux' too. - Added the cache sub-system. See as well as - the sources in "src/cache". Note that it compiles but is still + the sources in `src/cache'. Note that it compiles but is still untested for now. - - Updated "docs/docmaker.py", a draft API reference is available at + - Updated `docs/docmaker.py', a draft API reference is available at http://www.freetype.org/ft2api.html. - - Changed "type1" to use "psaux". + - Changed `type1' to use `psaux'. - - Created a new module named "psaux" to hold the Type 1 & Type 2 - parsing routines. It should be used by "type1", "cid", and "cff" + - Created a new module named `psaux' to hold the Type 1 & Type 2 + parsing routines. It should be used by `type1', `cid', and `cff' in the future. - - Fixed an important bug in "FT_Glyph_Get_CBox". + - Fixed an important bug in `FT_Glyph_Get_CBox'. - Fixed some compiler warnings that happened since the TrueType bytecode decoder was deactivated by default. @@ -1951,7 +1951,7 @@ CHANGES BETWEEN beta8 and 2.0 never released. - Fixed the auto-hinter by performing automatic computation of the - "filling direction" of each glyph. This is done through a simple + `filling direction' of each glyph. This is done through a simple and fast approximation, and seems to work (problems spotted by Werner though). The Arphic fonts are a lot nicer though there are still a lot of things to do to handle Asian fonts correctly. @@ -1963,29 +1963,29 @@ BETA-8 (RELEASE CANDIDATE) CHANGES - Deactivated the TrueType bytecode interpreter by default. - - Deactivated the "src/type1" font driver. Now "src/type1z" is used + - Deactivated the `src/type1' font driver. Now `src/type1z' is used by default. - Updates to the build system. We now compile the library correctly - under Unix system through "configure" which is automatically - called on the first "make" invocation. + under Unix system through `configure' which is automatically + called on the first `make' invocation. - Added the auto-hinting module! Fixing some bugs here and there. - Found some bugs in the composite loader (seac) of the Type1-based font drivers. - - Renamed the directory "freetype2/config" to "freetype2/builds" and + - Renamed the directory `freetype2/config' to `freetype2/builds' and updated all relevant files. - - Found a memory leak in the "type1" driver. + - Found a memory leak in the `type1' driver. - Incorporated Tom's patches to support flex operators correctly in OpenType/CFF fonts. Now all I need is to support pure CFF and CEF fonts to be done with this driver :-) - - Added the Windows FNT/FON driver in "src/winfonts". For now, it - always "simulates" a Unicode charmap, so it shouldn't be + - Added the Windows FNT/FON driver in `src/winfonts'. For now, it + always `simulates' a Unicode charmap, so it shouldn't be considered completed right now. It is there to be more a proof of concept than anything else @@ -2004,8 +2004,8 @@ BETA-8 (RELEASE CANDIDATE) CHANGES part of anymore. * now contains declarations for FT_New_Library, FT_Done_Library, FT_Add_Default_Modules. - * The so-called convenience functions have moved from "ftoutln.c" - to "ftglyph.c", and are thus available with this optional + * 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. * Anti-aliased rendering is now the default for FT_Render_Glyph @@ -2015,13 +2015,13 @@ BETA-8 (RELEASE CANDIDATE) CHANGES FT_LOAD_ANTI_ALIAS is still defined, but values to 0. * now include , solving a few headaches :-) - * The type FT_GlyphSlotRec has now a "library" field. + * The type FT_GlyphSlotRec has now a `library' field. - - CHANGES TO THE "ftglyph.h" API + - 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 + `glyph factory' object, and allows client applications to manage (i.e. transform, bbox and render) glyph images without ever knowing their original format. @@ -2029,24 +2029,24 @@ BETA-8 (RELEASE CANDIDATE) CHANGES support for pure CFF + CEF fonts should come in? - Cleaned up source code in order to avoid two functions with the - same name. Also changed the names of the files in "type1z" from - "t1XXXX" to "z1XXXX" in order to avoid any conflicts. + same name. Also changed the names of the files in `type1z' from + `t1XXXX' to `z1XXXX' in order to avoid any conflicts. - "make multi" now works well :-) + `make multi' now works well :-) - Also removed the use of "cidafm" for now, even if the source files + 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, + `ftview' that does a `FT_Add_Module(library, &autohinter_module_class)' after library initialization, 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 + auto-hinter doesn't include `generic' global metrics computations yet. Now, I need to release this thing to the FreeType 2 source. @@ -2054,8 +2054,8 @@ BETA-8 (RELEASE CANDIDATE) CHANGES - CHANGES TO THE RENDERER MODULES The monochrome and smooth renderers are now in two distinct - directories, namely "src/raster1" and "src/smooth". Note that the - old "src/renderer" is now gone. + directories, namely `src/raster1' and `src/smooth'. Note that the + old `src/renderer' is now gone. I ditched the 5-gray-levels renderers. Basically, it involved a simple #define toggle in 'src/raster1/ftraster.c'. @@ -2098,12 +2098,12 @@ BETA-8 (RELEASE CANDIDATE) CHANGES - render a glyph image into a bitmap - return the control box (dimensions) of a given glyph image - The scan converters "ftraster.c" and "ftgrays.c" have been moved - to the new directory "src/renderer", and are used to provide two + The scan converters `ftraster.c' and `ftgrays.c' have been moved + to the new directory `src/renderer', and are used to provide two default renderer modules. - One corresponds to the "standard" scan-converter, the other to - the "smooth" one. + One corresponds to the `standard' scan-converter, the other to + the `smooth' one. he current renderer can be set through the new function FT_Set_Renderer. @@ -2148,7 +2148,7 @@ BETA-8 (RELEASE CANDIDATE) CHANGES glyph (relevant in vertical glyph layouts only). This is useful to perform WYSIWYG text. - Note that the two above field replace the removed "metrics2" + Note that the two above field replace the removed `metrics2' field in the glyph slot. advance: @@ -2160,8 +2160,8 @@ BETA-8 (RELEASE CANDIDATE) CHANGES bitmap_left: This field gives the distance in integer pixels from the current pen position to the left-most pixel of a glyph image - IF IT IS A BITMAP. It is only valid when the "format" field - is set to "ft_glyph_format_bitmap", for example, after calling + IF IT IS A BITMAP. It is only valid when the `format' field + is set to `ft_glyph_format_bitmap', for example, after calling the new function FT_Render_Glyph. bitmap_top: @@ -2190,8 +2190,8 @@ BETA-8 (RELEASE CANDIDATE) CHANGES converted to a bitmap by using the new FT_Render_Glyph function. Note that this function takes the glyph image from the glyph slot, and converts it to a bitmap whose properties - are returned in "face.glyph.bitmap", "face.glyph.bitmap_left" - and "face.glyph.bitmap_top". The original native image might + are returned in `face.glyph.bitmap', `face.glyph.bitmap_left' + and `face.glyph.bitmap_top'. The original native image might be lost after the conversion. - When using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph @@ -2199,9 +2199,9 @@ BETA-8 (RELEASE CANDIDATE) CHANGES automatically when needed. - Reformatted all modules source code in order to get rid of the - basic data types redifinitions (i.e. "TT_Int" instead of "FT_Int", - "T1_Fixed" instead of "FT_Fixed"). Hence the format-specific - prefixes like "TT_", "T1_", "T2_" and "CID_" are only used for + basic data types redifinitions (i.e. `TT_Int' instead of `FT_Int', + `T1_Fixed' instead of `FT_Fixed'). Hence the format-specific + prefixes like `TT_', `T1_', `T2_' and `CID_' are only used for relevant structures. @@ -2217,14 +2217,14 @@ OLD CHANGES FOR BETA 7 correctly (well, the accent is not always well placed, but that's another problem..) - - added the CID-keyed Type 1 driver in "src/cid". Works pretty well + - added the CID-keyed Type 1 driver in `src/cid'. Works pretty well for only 13 Kb of code ;-) Doesn't read AFM files though, nor the really useful CMAP files.. - fixed two bugs in the smooth renderer (src/base/ftgrays.c). Thanks to Boris Letocha for spotting them and providing a fix. - - fixed potential "divide by zero" bugs in ftcalc.c. + - fixed potential `divide by zero' bugs in ftcalc.c. - added source code for the OpenType/CFF driver (still incomplete though..) @@ -2232,7 +2232,7 @@ OLD CHANGES FOR BETA 7 - modified the SFNT driver slightly to perform more robust header checks in TT_Load_SFNT_Header. This prevents certain font files (e.g. some Type 1 Multiple Masters) from being incorrectly - "recognized" as TrueType font files.. + `recognized' as TrueType font files.. - moved a lot of stuff from the TrueType driver to the SFNT module, this allows greater code re-use between font drivers @@ -2241,14 +2241,14 @@ OLD CHANGES FOR BETA 7 - added a tiny segment cache to the SFNT Charmap 4 decoder, in order to minimally speed it up.. - - added support for Multiple Master fonts in "type1z". There is + - added support for Multiple Master fonts in `type1z'. There is also a new file named which defines functions to manage them from client applications. - The new file "src/base/ftmm.c" is also optional to the engine.. + The new file `src/base/ftmm.c' is also optional to the engine.. - various formatting changes (e.g. EXPORT_DEF -> FT_EXPORT_DEF) + - small bug fixes in FT_Load_Glyph, the "type1" driver, etc.. + small bug fixes in FT_Load_Glyph, the `type1' driver, etc.. - a minor fix to the Type 1 driver to let them apply the font matrix correctly (used for many oblique fonts..) @@ -2273,7 +2273,7 @@ OLD CHANGES FOR BETA 7 OLD CHANGES 16 May 2000 - - tagged "BETA-6" in the CVS tree. This one is a serious release + - tagged `BETA-6' in the CVS tree. This one is a serious release candidate even though it doesn't incorporate the auto-hinter yet.. - various obsolete files were removed, and copyright header updated @@ -2289,14 +2289,14 @@ OLD CHANGES 16 May 2000 - definition of memory-management macros - - added the "DSIG" (OpenType Digital Signature) tag to + - added the `DSIG' (OpenType Digital Signature) tag to - light update/cleaning of the build system + changes to the sources in order to get rid of _all_ compiler warnings with three compilers, i.e: - gcc with "-ansi -pedantic -Wall -W", Visual C++ with "/W3 /WX" and + gcc with `-ansi -pedantic -Wall -W', Visual C++ with `/W3 /WX' and LCC IMPORTANT NOTE FOR WIN32-LCC USERS: @@ -2341,7 +2341,7 @@ OLD CHANGES 16 May 2000 be useful in a near future.. the FT_Open_Args structure was changes, as well as the internal - driver interface (the specific "init_face" module function has + driver interface (the specific `init_face' module function has now a different signature). - updated the tutorial (not finished though). @@ -2353,7 +2353,7 @@ OLD CHANGES 16 May 2000 - added the declaration of FT_New_Memory_Face in , as it was missing from the public header - (the implementation was already in "ftobjs.c"). + (the implementation was already in `ftobjs.c'). - the file has been seriously updated in order to allow the automatic generation of error message tables. See @@ -2362,7 +2362,7 @@ OLD CHANGES 16 May 2000 - major directory hierarchy re-organisation. This was done for two things: - * first, to ease the "manual" compilation of the library by + * first, to ease the `manual' compilation of the library by requiring at lot less include paths :-) * second, to allow external programs to effectively access @@ -2378,7 +2378,7 @@ OLD CHANGES 16 May 2000 Some new include sub-directories are available: - a. the "freetype/config" directory, contains two files used to + a. the `freetype/config' directory, contains two files used to configure the build of the library. Client applications should not need to look at these normally, but they can if they want. @@ -2386,9 +2386,9 @@ OLD CHANGES 16 May 2000 #include #include - b. the "freetype/internal" directory, contains header files that + b. the `freetype/internal' directory, contains header files that describes library internals. These are the header files that - were previously found in the "src/base" and "src/shared" + were previously found in the `src/base' and `src/shared' directories. @@ -2436,22 +2436,22 @@ OLD CHANGES 16 May 2000 - updated the structure of FT_Outline_Funcs in order to allow direct coordinate scaling within the outline decomposition routine (this - is important for virtual "on" points with TrueType outlines) + + is important for virtual `on' points with TrueType outlines) + updates to the rasters to support this.. - - updated the OS/2 table loading code in "src/sfnt/ttload.c" in + - updated the OS/2 table loading code in `src/sfnt/ttload.c' in order to support version 2 of the table (see OpenType 1.2 spec) - - created "include/tttables.h" and "include/t1tables.h" to allow + - created `include/tttables.h' and `include/t1tables.h' to allow client applications to access some of the SFNT and T1 tables of a - face with a procedural interface (see FT_Get_Sfnt_Table()) + + face with a procedural interface (see `FT_Get_Sfnt_Table') + updates to internal source files to reflect the change.. - some cleanups in the source code to get rid of warnings when - compiling with the "-Wall -W -ansi -pedantic" options in gcc. + compiling with the `-Wall -W -ansi -pedantic' options in gcc. - - debugged and moved the smooth renderer to "src/base/ftgrays.c" and - its header to "include/ftgrays.h" + - debugged and moved the smooth renderer to `src/base/ftgrays.c' and + its header to `include/ftgrays.h' - updated TT_MAX_SUBGLYPHS to 96 as some CJK fonts have composites with up to 80 sub-glyphs !! Thanks to Werner @@ -2464,20 +2464,20 @@ OLD CHANGES - 14-apr-2000 - fixed a bug in the TrueType glyph loader that prevented the correct loading of some CJK glyphs in mingli.ttf - - improved the standard Type 1 hinter in "src/type1" + - improved the standard Type 1 hinter in `src/type1' - - fixed two bugs in the experimental Type 1 driver in "src/type1z" + - fixed two bugs in the experimental Type 1 driver in `src/type1z' to handle the new XFree86 4.0 fonts (and a few other ones..) - the smooth renderer is now complete and supports sub-banding to render large glyphs at high speed. However, it is still located - in "demos/src/ftgrays.c" and should move to the library itself in + in `demos/src/ftgrays.c' and should move to the library itself in the next beta. NOTE: The smooth renderer doesn't compile in stand-alone mode anymore, but this should be fixed RSN.. - introduced convenience functions to more easily deal with glyph - images, see "include/ftglyph.h" for more details, as well as the - new demo program named "demos/src/ftstring.c" that demonstrates + images, see `include/ftglyph.h' for more details, as well as the + new demo program named `demos/src/ftstring.c' that demonstrates its use - implemented FT_LOAD_NO_RECURSE in both the TrueType and Type 1 @@ -2487,7 +2487,7 @@ OLD CHANGES - 14-apr-2000 - changed the raster interface, in order to allow client applications to provide their own span-drawing callbacks. However, only the smooth renderer supports this. See - "FT_Raster_Params" in the file "include/ftimage.h". + `FT_Raster_Params' in the file `include/ftimage.h'. - fixed a small bug in FT_MulFix that caused incorrect transform computation! @@ -2501,21 +2501,21 @@ OLD CHANGES - 12-mar-2000 - changed the layout of configuration files : now, all ANSI configuration files are located in - "freetype2/config". System-specific over-rides can be placed in - "freetype2/config/". + `freetype2/config'. System-specific over-rides can be placed in + `freetype2/config/'. - - moved all configuration macros to "config/ftoption.h" + - moved all configuration macros to `config/ftoption.h' - improvements in the Type 1 driver with AFM support - - changed the fields in the FT_Outline structure : the old "flags" - array is re-named "tags", while all ancient flags are encoded into - a single unsigned int named "flags". + - changed the fields in the FT_Outline structure : the old `flags' + array is re-named `tags', while all ancient flags are encoded into + a single unsigned int named `flags'. - introduced new flags in FT_Outline.flags (see - ft_outline_.... enums in "ftimage.h"). + ft_outline_.... enums in `ftimage.h'). - - changed outline functions to "FT_Outline_" syntax + - changed outline functions to `FT_Outline_' syntax - added a smooth anti-alias renderer to the demonstration programs @@ -2534,7 +2534,7 @@ OLD CHANGES - 12-mar-2000 OLD CHANGES - 22-feb-2000 - - introduced the "psnames" module. It is used to: + - introduced the `psnames' module. It is used to: o convert a Postscript glyph name into the equivalent Unicode character code (used by the Type 1 driver(s) to synthetize on @@ -2546,16 +2546,16 @@ OLD CHANGES - 22-feb-2000 names support routines, while the other two tables are used by the Type 1 driver(s)). - - introduced the "type1z" alternate Type 1 driver. This is a (still + - introduced the `type1z' alternate Type 1 driver. This is a (still experimental) driver for the Type 1 format that will ultimately - replace the one in "src/type1". It uses pattern matching to load + replace the one in `src/type1'. It uses pattern matching to load data from the font, instead of a finite state analyzer. It works - much better than the "old" driver with "broken" fonts. It is also + much better than the `old' driver with `broken' fonts. It is also much smaller (under 15 Kb). - - the Type 1 drivers (both in "src/type1" and "src/type1z") are + - the Type 1 drivers (both in `src/type1' and `src/type1z') are nearly complete. They both provide automatic Unicode charmap - synthesis through the "psnames" module. No re-encoding vector is + synthesis through the `psnames' module. No re-encoding vector is needed. (note that they still leak memory due to some code missing, and I'm getting lazy). @@ -2563,14 +2563,14 @@ OLD CHANGES - 22-feb-2000 wasn't exactly tested as it should ;-) - The TrueType glyph loader has been seriously rewritten (see the - file "src/truetype/ttgload.c". It is now much, much simpler as + file `src/truetype/ttgload.c'. It is now much, much simpler as well as easier to read, maintain and understand :-) Preliminary versions introduced a memory leak that has been reported by Jack Davis, and is now fixed.. - - introduced the new "ft_glyph_format_plotter", used to represent - stroked outlines like Windows "Vector" fonts, and certain Type 1 - fonts like "Hershey". The corresponding raster will be written + - introduced the new `ft_glyph_format_plotter', used to represent + stroked outlines like Windows `Vector' fonts, and certain Type 1 + fonts like `Hershey'. The corresponding raster will be written soon. - FT_New_Memory_Face is gone. Likewise, FT_Open_Face has a new @@ -2610,10 +2610,10 @@ less urgent needs: OLDER CHANGES - 27-jan-2000 - - updated the "sfnt" module interface to allow several SFNT-based + - updated the `sfnt' module interface to allow several SFNT-based drivers to co-exist peacefully - - updated the "T1_Face" type to better separate Postscript font + - updated the `T1_Face' type to better separate Postscript font content from the rest of the FT_Face structure. Might be used later by the CFF/Type2 driver.. @@ -2630,7 +2630,7 @@ OLDER CHANGES - 27-jan-2000 OLD MESSAGE -This file summarizes the changes that occured since the last "beta" of +This file summarizes the changes that occured since the last `beta' of FreeType 2. Because the list is important, it has been divided into separate sections: @@ -2656,17 +2656,17 @@ High-Level Interface: - when calling either FT_New_Face & FT_Open_Face, a size object and a glyph slot object are automatically created for the face, - and can be accessed through "face->glyph" and "face->size" if + and can be accessed through `face->glyph' and `face->size' if one really needs to. In most cases, there's no need to call FT_New_Size or FT_New_Glyph. - - similarly, FT_Load_Glyph now only takes a "face" argument - (instead of a glyph slot and a size). Also, it's "result" + - similarly, FT_Load_Glyph now only takes a `face' argument + (instead of a glyph slot and a size). Also, it's `result' parameter is gone, as the glyph image type is returned in the - field "face->glyph.format" + field `face->glyph.format' - the list of available charmaps is directly accessible through - "face->charmaps", counting "face->num_charmaps" elements. Each + `face->charmaps', counting `face->num_charmaps' elements. Each charmap has an 'encoding' field which specifies which known encoding it deals with. Valid values are, for example: @@ -2677,7 +2677,7 @@ High-Level Interface: ft_encoding_adobe_expert other values may be added in the future. Each charmap still - holds its "platform_id" and "encoding_id" values in case the + holds its `platform_id' and `encoding_id' values in case the encoding is too exotic for the current library @@ -2700,7 +2700,7 @@ Directory Structure: src/ -- sources of the library base/ -- the base layer - sfnt/ -- the sfnt "driver" (see the drivers section + sfnt/ -- the sfnt `driver' (see the drivers section below) truetype/ -- the truetype driver type1/ -- the type1 driver @@ -2725,7 +2725,7 @@ Glyph Image Formats: FT_Raster_Map is gone, and is now replaced by FT_Bitmap, which should encompass all known bitmap types. - Each new image format must provide at least one "raster", i.e. a + Each new image format must provide at least one `raster', i.e. a module capable of transforming the glyph image into a bitmap. It's also possible to change the default raster used for a given glyph image format. @@ -2750,7 +2750,7 @@ Build system: for some platforms. For example, the file `config/win32/lcclib.bat' is invoked by the - build system to create the ".lib" file with LCC-Win32 because its + build system to create the `.lib' file with LCC-Win32 because its librarian has too many flaws to be invoked directly from the Makefile. @@ -2767,7 +2767,7 @@ Build system: default, as well as the library file, but this can easily be changed. - Note that you can run "make setup" to force another host platform + Note that you can run `make setup' to force another host platform detection even if a `config.mk' is present in the current directory. Another solution is simply to delete the file, then re-run make. @@ -2805,7 +2805,7 @@ Portability: really synchronize access to it yourself with a simple mutex. - memory management is performed through a very simple object - called "FT_Memory", which really is a table containing a table + called `FT_Memory', which really is a table containing a table of pointers to functions like malloc, realloc and free as well as some user data (closure). @@ -2821,8 +2821,8 @@ Portability: own streams to achieve the same feature at a lower level (and use FT_Open_Face instead of FT_New_Face to create the face). - See the file "include/ftsystem.h" for more details, as well as the - implementations found in "config/unix" and "config/ansi". + See the file `include/ftsystem.h' for more details, as well as the + implementations found in `config/unix' and `config/ansi'. ---------------------------------------------------------------------- @@ -2839,13 +2839,13 @@ Font Drivers: This file is autogenerated when invoking `make modules'. This target will parse all sub-directories of 'src', looking for a - "module.mk" rules file, used to describe the driver to the build + `module.mk' rules file, used to describe the driver to the build system. Hence, one should call `make modules' each time a font driver is added or removed from the `src' directory. - Finally, this version provides a "pseudo-driver" in `src/sfnt'. + Finally, this version provides a `pseudo-driver' in `src/sfnt'. This driver doesn't support font files directly, but provides services used by all TrueType-like font drivers. Hence, its code is shared between the TrueType & OpenType font formats, and possibly @@ -2858,7 +2858,7 @@ Extensions support: The extensions support is inspired by the one found in 1.x. - Now, each font driver has its own "extension registry", which lists + Now, each font driver has its own `extension registry', which lists which extensions are available for the font faces managed by the driver. @@ -2900,7 +2900,7 @@ Extensions support: ------------------------------------------------------------------------ -Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006 by +Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/include/freetype/config/ftheader.h b/include/freetype/config/ftheader.h index 0bec85073..b957d05be 100644 --- a/include/freetype/config/ftheader.h +++ b/include/freetype/config/ftheader.h @@ -4,7 +4,7 @@ /* */ /* Build macros of the FreeType 2 library. */ /* */ -/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006 by */ +/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -675,7 +675,7 @@ * A macro used in #include statements to name the file containing the * FreeType 2 API which performs color filtering for subpixel rendering. */ -#define FT_LCD_FILTER_H +#define FT_LCD_FILTER_H /************************************************************************* @@ -685,9 +685,9 @@ * * @description: * A macro used in #include statements to name the file containing the - * FreeType 2 API which returns entries from the TrueType GASP table + * FreeType 2 API which returns entries from the TrueType GASP table. */ -#define FT_GASP_H +#define FT_GASP_H /* */ diff --git a/include/freetype/ftgasp.h b/include/freetype/ftgasp.h index f6c14f7db..ae4add35b 100644 --- a/include/freetype/ftgasp.h +++ b/include/freetype/ftgasp.h @@ -1,65 +1,90 @@ +/***************************************************************************/ +/* */ +/* ftgasp.h */ +/* */ +/* Access of TrueType's `gasp' table (specification). */ +/* */ +/* Copyright 2007 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + #ifndef _FT_GASP_H_ #define _FT_GASP_H_ #include #include FT_FREETYPE_H -/** - * @enum: FT_GASP_XXX - * - * @description: - * a list of values and/or bit-flags returned by the - * @FT_Get_Gasp function. - * - * @values: - * FT_GASP_NO_TABLE :: - * this special value means that there is no GASP table - * in this face. It's up to the client to decide what to - * do - * - * FT_GASP_DO_GRIDFIT :: - * indicates that grid-fitting/hinting should be - * performed at the specified ppem. This *really* - * means TrueType bytecode interpretation - * - * FT_GASP_DO_GRAY :: - * indicates that anti-aliased rendering should be - * performed at the specified ppem - * - * FT_GASP_SYMMETRIC_SMOOTHING :: - * indicates that smoothing along multiple axis - * must be used with ClearType. - * - * FT_GASP_SYMMETRIC_GRIDFIT :: - * indicates that grid-fitting must be used with - * ClearType's symmetric smoothing - */ -#define FT_GASP_NO_TABLE -1 -#define FT_GASP_DO_GRIDFIT 0x01 -#define FT_GASP_DO_GRAY 0x02 -#define FT_GASP_SYMMETRIC_SMOOTHING 0x08 -#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 - /** - * @func: FT_Get_Gasp - * - * @description: - * read the GASP table from a TrueType or OpenType font file - * and return the entry corresponding to a given character - * pixel size - * - * @input: - * face :: source face handle - * ppem :: vertical character pixel size - * - * @return: - * bit flags, or @FT_GASP_NO_TABLE is there is no GASP table - * in the face. - */ + /************************************************************************* + * + * @enum: + * FT_GASP_XXX + * + * @description: + * A list of values and/or bit-flags returned by the @FT_Get_Gasp + * function. + * + * @values: + * FT_GASP_NO_TABLE :: + * This special value means that there is no GASP table in this face. + * It is up to the client to decide what to do. + * + * FT_GASP_DO_GRIDFIT :: + * Grid-fitting and hinting should be performed at the specified ppem. + * This *really* means TrueType bytecode interpretation. + * + * FT_GASP_DO_GRAY :: + * Anti-aliased rendering should be performed at the specified ppem. + * + * FT_GASP_SYMMETRIC_SMOOTHING :: + * Smoothing along multiple axes must be used with ClearType. + * + * FT_GASP_SYMMETRIC_GRIDFIT :: + * Grid-fitting must be used with ClearType's symmetric smoothing. + * + * @note: + * `ClearType' is Microsoft's implementation of LCD rendering, partly + * protected by patents. + */ +#define FT_GASP_NO_TABLE -1 +#define FT_GASP_DO_GRIDFIT 0x01 +#define FT_GASP_DO_GRAY 0x02 +#define FT_GASP_SYMMETRIC_SMOOTHING 0x08 +#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 + + + /************************************************************************* + * + * @func: + * FT_Get_Gasp + * + * @description: + * Read the `gasp' table from a TrueType or OpenType font file and + * return the entry corresponding to a given character pixel size. + * + * @input: + * face :: The source face handle. + * ppem :: The vertical character pixel size. + * + * @return: + * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE is there is no + * `gasp' table in the face. + */ FT_EXPORT( FT_Int ) - FT_Get_Gasp( FT_Face face, - FT_UInt ppem ); + FT_Get_Gasp( FT_Face face, + FT_UInt ppem ); /* */ #endif /* _FT_GASP_H_ */ + + +/* END */ diff --git a/modules.cfg b/modules.cfg index 6c924c07b..6f1d084b3 100644 --- a/modules.cfg +++ b/modules.cfg @@ -1,6 +1,6 @@ # modules.cfg # -# Copyright 2005, 2006 by +# Copyright 2005, 2006, 2007 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/src/base/Jamfile b/src/base/Jamfile index 70fbbe841..6f92d4a28 100644 --- a/src/base/Jamfile +++ b/src/base/Jamfile @@ -1,6 +1,6 @@ # FreeType 2 src/base Jamfile # -# Copyright 2001, 2002, 2003, 2004, 2005, 2006 by +# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/src/base/ftgasp.c b/src/base/ftgasp.c index 27797bbff..8485d2925 100644 --- a/src/base/ftgasp.c +++ b/src/base/ftgasp.c @@ -1,22 +1,44 @@ +/***************************************************************************/ +/* */ +/* ftgasp.c */ +/* */ +/* Access of TrueType's `gasp' table (body). */ +/* */ +/* Copyright 2007 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + #include #include FT_GASP_H #include FT_INTERNAL_TRUETYPE_TYPES_H + FT_EXPORT_DEF( FT_Int ) - FT_Get_Gasp( FT_Face face, - FT_UInt ppem ) + FT_Get_Gasp( FT_Face face, + FT_UInt ppem ) { FT_Int result = FT_GASP_NO_TABLE; - if ( face && FT_IS_SFNT(face) ) + + if ( face && FT_IS_SFNT( face ) ) { TT_Face ttface = (TT_Face)face; + if ( ttface->gasp.numRanges > 0 ) { TT_GaspRange range = ttface->gasp.gaspRanges; TT_GaspRange range_end = range + ttface->gasp.numRanges; + while ( ppem > range->maxPPEM ) { range++; @@ -26,7 +48,7 @@ result = range->gaspFlag; - /* ensure we don't have spurious bits */ + /* ensure that we don't have spurious bits */ if ( ttface->gasp.version == 0 ) result &= 3; } @@ -36,3 +58,4 @@ } +/* END */ diff --git a/src/base/rules.mk b/src/base/rules.mk index a3a5ac0de..9079b4e36 100644 --- a/src/base/rules.mk +++ b/src/base/rules.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2000, 2002, 2003, 2004, 2005, 2006 by +# Copyright 1996-2000, 2002, 2003, 2004, 2005, 2006, 2007 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c index 0801f8370..4d2604a10 100644 --- a/src/sfnt/ttload.c +++ b/src/sfnt/ttload.c @@ -5,7 +5,7 @@ /* Load the basic TrueType tables, i.e., tables that can be either in */ /* TTF or OTF fonts (body). */ /* */ -/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006 by */ +/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -1142,7 +1142,7 @@ if ( face->gasp.version >= 2 ) { face->gasp.numRanges = 0; - error = FT_Err_Invalid_Table; + error = SFNT_Err_Invalid_Table; goto Exit; }