summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype/freetype-1.5/docs/changes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype/freetype-1.5/docs/changes.txt')
-rw-r--r--Build/source/libs/freetype/freetype-1.5/docs/changes.txt1031
1 files changed, 0 insertions, 1031 deletions
diff --git a/Build/source/libs/freetype/freetype-1.5/docs/changes.txt b/Build/source/libs/freetype/freetype-1.5/docs/changes.txt
deleted file mode 100644
index e76cf6fce66..00000000000
--- a/Build/source/libs/freetype/freetype-1.5/docs/changes.txt
+++ /dev/null
@@ -1,1031 +0,0 @@
-Changes between FreeType version 1.3.1 and version 1.5
-======================================================
-**
-** WARNING: Because of the Apple patents problem, the TrueType
-** bytecode interpreter is now turned *OFF* by default. Edit
-** ft_conf.h if you want to (and can) use grid-fitting.
-**
-
-Note: Version 1.4 has never been released officially.
-
-
-Documentation
--------------
-
- apiref.txt has been again revised.
-
-
- apirefx.txt has been extended to document the GPOS interface.
-
-
- TODO has been dropped (since we consider there will be no
- further development).
-
-
-API functions
--------------
-
- TT_Char_Index() now uses TT_ULong for character codes. It now
- supports cmap tables in format 8 and 12.
-
-
- New error code (TT_Err_Too_Many_FDefs) when a font defines too
- many functions.
-
-
-Architectures
--------------
-
- Support files for BeOS have been contributed by Chris Herborth
- <cherborth@vdelta.com>.
-
-
- The EXPORT_DEF/EXPORT_FUNC/etc. stuff has been replaced with a
- more elaborate scheme (coming from the Freetype 2 experience)
- that allows more complex cases of interface to be handled. See
- ttconfig.h for details.
-
-
- Cleaning up of the ft_conf.h files to remove obsolete stuff.
-
-
-Extensions
-----------
-**
-** Full support for the GPOS table has been implemented. As usual,
-** the documentation is available in apirefx.txt, and ftstrtto
-** demonstrates how to use it.
-**
-
- TT_GSUB_Add_String() has two additional parameters needed for
- GPOS support.
-
-
- TT_CharMap_Next() of the ftxcmap extension now uses `TT_ULong'
- as the second parameter.
-
-
- A long-lived bug in ftxpost.c (with 2.0 format, when the
- additional names were out of order, the names were incorrectly
- assigned) has been extermined. Thanks to Jean-Christophe Dubacq
- <Jean-Christophe.Dubacq@lri.fr>.
-
-
-Test programs
--------------
-
- ftstrtto now uses `S' instead of `G' to toggle activation of
- GSUB. `P' will toggle GPOS activation (this is new). UTF-8
- values greater than U+FFFF are supported.
-
-
- ftdump will dump some information about the GPOS table also.
-
-
- ftstrpnm now supports coloured text.
-
-
-Miscellaneous
--------------
-**
-** You can now at your option use either the FreeType license
-** (usable in commercial products) or the GPL license (usable with
-** other free software, but this requires any further development
-** to be released to the public).
-**
-
- The library has been updated to use libtool 1.3.4.
-
-
- Fixed a mutex bug in the ttraster module.
-
-
- The FreeType license has been reworded to improve legibility
- (thanks to Ruthanna Wilson <ruthanna@us.ibm.com>).
-
-
- Fixed a property bug in the arabic module.
-
-
- Various small fixes to reduce compiler warnings.
-
-
- Fixed the thread-safe build. The following files didn't compile
- properly when TT_CONFIG_OPTION_THREAD_SAFE is defined:
-
- lib/arch/unix/ttmmap.c
- lib/extend/ftxsbit.c
- lib/extend/ftxgpos.c
- lib/extend/ftxgdef.c
- lib/extend/ftxgsub.c
-
-
- More tests to prevent division by zero.
-
-
- <ttnameid.h> has been updated.
-
-
- OS/2 table version 2 is now recognized.
-
-
-Contributed programs
---------------------
-
- ttf2bdf:
- Changed bitmap generation for outline glyphs to Flow_Down.
-
-
- Added support for strikes (bitmaps).
-
-
- Added missing parameter documentation.
-
-
- Minor documentation changes and compatibility with latest
- Freetype.
-
-
- ttf2pk:
- Added support for multiple SFD files.
-
- New option `-L' to provide a ligature mapping file (patch from
- CHO Jin-Hwan <chofchof@kias.re.kr>).
-
- New option `-w' to emit PostScript encoding vectors for
- subfont files to be used with pdfLaTeX (patch from CHO
- Jin-Hwan <chofchof@kias.re.kr>).
-
- Add support for a configuration file (ttf2pk.cfg) which can
- read more than a single map file, similar to pdfTeX (patch
- from CHO Jin-Hwan <chofchof@kias.re.kr>).
-
- Support for character codes greater than 0xFFFF (patch from
- Dominique Unruh <dominique@unruh.de>).
-
- ttf2tfm no longer assumes that the x-height is always 400 PS
- units.
-
-
-Pascal source code
-------------------
-**
-** The Pascal source files have been completely removed from the
-** FreeType distribution. It is now available as an extra package;
-** for more information please visit http://www.freetype.org.
-**
-
-
-Changes between FreeType version 1.3 and version 1.3.1
-======================================================
-
- Bug fixes.
-
-
-
-Changes between FreeType version 1.2 and version 1.3
-====================================================
-
-
-Documentation
--------------
-
- Improved installation instructions.
-
-
- Complete revision of almost all documentation files.
-
-**
-** Added the file apirefx.txt to document all extensions to the
-** FreeType library. Consequently, errstr.txt has been removed.
-**
-
- Added the file optimize.txt, explaining how to improve FreeType
- on a given architecture.
-
-**
-** Documentation about possible patent restrictions added.
-**
-
- Added howto/mac.txt (stating basically that the FreeType team
- can't support the Macintosh platform because of lack of
- knowledge).
-
-
- Added howto/msdos.txt, documenting compilation for various 16bit
- and 32bit compilers.
-
-
-API functions
--------------
-
- TT_Load_Kerning_Table() now returns TT_Err_Invalid_Argument
- instead of TT_Err_Bad_Argument (which is used for an internal
- error only) for an invalid argument. The same holds for
- TT_Get_Face_Widths() and TT_Get_Glyph_Big_Metrics().
-
-
- If the glyf table is missing, the new error code
- TT_Err_Glyf_Table_Missing is returned instead of
- TT_Err_Table_Missing. This affects TT_Get_Face_Widths(),
- TT_Load_Glyph(), and TT_Open_Face().
-
-**
-** New function TT_FreeType_Version() to get the major and minor
-** version dynamically.
-**
-
- TT_Load_Glyph() has now two additional flags. TTLOAD_PEDANTIC
- will force pedantic handling of the glyph instructions, and
- TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH is needed for some fonts
- which have correct advance width values for the glyphs but an
- incorrect global advance width value.
-
-
- TT_Get_Glyph_Big_Metrics() now returns correct vertical bearing
- values (both linear and pixel values).
-
-
- New error code TT_Err_Glyf_Table_Missing (0x89) used to indicate
- a missing `glyf' table.
-
-
- The following macros have been shortened to stay within the
- limit of 32 characters (the longer macro names are still
- available if HAVE_LIMITS_ON_IDENTS is not defined).
-
- TT_UCR_ARABIC_PRESENTATION_FORMS_A ->
- TT_UCR_ARABIC_PRESENTATIONS_A
- TT_UCR_ARABIC_PRESENTATION_FORMS_B ->
- TT_UCR_ARABIC_PRESENTATIONS_B
-
- TT_UCR_COMBINING_DIACRITICAL_MARKS ->
- TT_UCR_COMBINING_DIACRITICS
- TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB ->
- TT_UCR_COMBINING_DIACRITICS_SYMB
-
-
- freetype.h:
-
- TT_Bool is now typedef'ed as `typedef int'.
-
- New typedefs: TT_Int and TT_UInt.
-
- Declarations of TT_Matrix_Multiply() and TT_Matrix_Invert()
- have been removed since these functions were never
- implemented.
-
-
-Architectures
--------------
-
- Added `ansi' directory to the supported architectures -- any
- ANSI C compiler should compile FreeType with these files.
-
-
- Added `debugger' directory to the architectures. Use this to
- build a special version of FreeType for bytecode debugging
- (tested with OS/2 and Unix).
-
-
- Added more files to the `mac' architecture directory to make
- basic support complete.
-
-
- Support for VMS added (to compile the library only).
- Contributed by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
-
-
- Added `win16' architecture directory for older Windows versions.
- A graphics driver (gw_win16.c) for the example programs is
- available also.
-
-**
-** Antoine Leca contributed support for many MS-DOS and Windows
-** compilers (including library fixes to make it 16bit compliant):
-**
- Borland C++ for MS-DOS (tested with v. 3.1, 4.02, 5.0),
- Microsoft C for MS-DOS,
- Turbo C (versions 1.5 and 2.0 -- version 1.0 is too old),
- Borland C++ 4.0 and 5.0 for Windows (both 16bit and 32bit
- versions),
- gcc under Win32 (Cygwin32 or MinGW32),
- Microsoft Visual C++ 2.x, 4.x, 5.0, and 6.0 for Windows
-
-
- Support for the gettext package with DJGPP compiler has been
- added.
-
-
- Since many older compilers on both MS-DOS and Windows platforms
- have problems to build dependency files automatically, scripts
- for gcc under Unix have been added to do this. Similarly, a
- script to produce a DLL definition file is now included in the
- distribution.
-
-
- Moved old win32 support to contrib/win32, replacing all CR/LF
- with LF, and using only lowercase file names for consistency.
- Additionally, some missing files in the FreeType 1.2
- distribution have been added. Antoine Leca has written a new,
- light-weight graphics driver (gw_win32.c) which fits better into
- the current scheme.
-
-
- Small additions have been made to the Amiga graphics driver.
-
-
- The use of the ARM macro (intended for this architecture) has
- been completely removed due to lack of support.
-
-
- Checks for endianness have been removed completely since
- FreeType isn't dependent on it.
-
-
-Global compilation macros
--------------------------
-
- The TT_HUGE_PTR macro has been added to support fonts with more
- than 16000 characters or so with 16bit MS-DOS compilers.
- Consequently, the files hugefile.c and hugemem.c have been added
- which provide special versions for these compilers.
-
-
- HAVE_LIMITS_ON_IDENTS has been introduced to overcome
- restrictions with old compilers which can't digest identifiers
- longer than 32 characters.
-
-**
-** Added option TT_CONFIG_OPTION_NO_INTERPRETER to desactivate the
-** bytecode interpreter completely. This option is off by default.
-**
-
- Added options TT_CONFIG_OPTION_STATIC_RASTER and
- TT_CONFIG_OPTION_STATIC_INTERPRETER to build static versions of
- the respective components. Off by default. (It was formerly
- called TT_STATIC_RASTER.)
-
- Better debugging support (see ttconfig.h for details):
- DEBUG_LEVEL_TRACE, DEBUG_LEVEL_ERROR, DEBUG_INTERPRETER,
- DEBUG_MEMORY, DEBUG_FILE.
-
- Added TT_MAX_EXTENSIONS to define the maximal number of
- extensions (currently set to 8 -- this macro was previously in
- ttextend.c).
-
-
-Extensions
-----------
-**
-** Full support for TrueType Open resp. OpenType GSUB tables has
-** been implemented. It uses a GDEF table if available; otherwise,
-** a method to construct an artificial GDEF table has been added
-** (note that GDEF parts not related to GSUB are loaded but not
-** further handled). An example how to use it can be found in the
-** new test program ftstrtto.
-**
-
- Rudimentary GPOS support -- currently, you can load the GPOS
- subtables but nothing more.
-
-**
-** Documentation for all extensions can be found in the file
-** apirefx.txt.
-**
-
- Fixed a bug in TT_Load_PS_Names() which returned a local, thus
- invalid pointer.
-
-**
-** Support for embedded bitmaps has been added (thanks to
-** YAMANO'UCHI Hidetoshi <mer@interlink.or.jp> who has contributed
-** a lot of the code). It can handle `bloc', `bdat', `EBLC', and
-** `EBDT' tables. [TrueType embedded bitmaps are also called
-** `sbits' (for `scaler bitmaps').]
-**
-
-Test programs
--------------
-**
-** A new test program called ftstrtto has been added to test
-** TrueType Open features. Almost all available FreeType
-** extensions are used in this program -- it displays a UTF 8
-** encoded string on screen, allowing to toggle kerning, embedded
-** bitmaps, GSUB support, and hinting. Additionally, it has a
-** special module to handle the Arabic script properly (in
-** arabic.c), i.e., it treats initial, medial, final, and isolated
-** glyphs correctly.
-**
-
- The new module `blitter.c' provides the blitting function
- Blit_Bitmap() for bitmaps of various depth.
-
-
- The debugging program `fdebug' has been rewritten to provide a
- better user interface.
-
-
- ftdump has been extended to show information about embedded
- bitmaps and GSUB data. It will now also show the PostScript
- name of the font.
-
-
- The new test program ftmetric can dump metrics and glyphs -- it
- uses the gettext package for i18n support.
-
-
- Another new test program is ftsbit to dump embedded bitmaps
- contained in a font.
-
-
- A small bug has been fixed in ftstring to compute the right
- bounding box of the string.
-
-
- ftview has been extended to display embedded bitmaps also
- (switch `-B').
-
-
- The maximal point size of glyphs in ftview has been increased to
- 5000pt -- this has shown some clipping bugs in the engine which
- have been fixed meanwhile. As a demonstration, it also
- activates tracing of the raster and gload component if
- DEBUG_LEVEL_TRACE (see above) is defined.
-
-
-Miscellaneous
--------------
-
- The library has been updated to use autoconf 2.13 and libtool
- 1.3.3 throughout.
-
-**
-** FreeType will now install its header files in
-** <prefix>/freetype/... since the number of files has grown again.
-**
-
- Added a lot of EXPORT_FUNC/EXPORT_DEF macros to functions for
- correct exporting in DLLs.
-
-**
-** FreeType can now successfully load Mac fonts which don't have an
-** `OS/2' table.
-**
-
- Fixed a bug in handling composite glyphs where the composite
- elements use attached points.
-
-
- Better debugging support for instructions.
-
-
- Various workarounds have been implemented to support slightly
- broken fonts (or rather, fonts not following exactly the
- TrueType specifications).
-
-
-Contributed programs
---------------------
-
- ttf2bdf:
-**
-** Swapped all the columns in the mapping files.
-**
-
- Changed the mapping table loader to index on the second column
- instead of the first.
-
-
- Changed the includes to deal with compilation on Windows.
-
-
- Added some new mapping tables.
-
-
- Fixed an incorrect parameter for Traditional C compilers.
-
-
- Added generation of the _XFREE86_GLYPH_RANGES properties.
-
-
- Change all CRLF's, CR's, or LF's in copyright strings to
- double spaces.
-
-
- Changed it so gcc 2.8.1 likes the return type of main() again.
-
-
- Changed Makefile.in a bit to make installation more
- consistent.
-
-
- Changed the lower limit for the vertical and horizontal
- resolutions to be 10dpi instead of 50dpi.
-
-
- ttf2pfb:
-
- Has now rudimentary support for mapping tables (switch `-m')
- and better PostScript name support for ordinary Type 1 fonts
- -- nevertheless, it is far from finished, and there are some
- plans to merge it with ttf2pt1.
-
- configure script added.
-
- Option `-k' added to keep output file in case of error.
-
- `-v' is now really verbose.
-
- ttf2pk:
-**
-** Support for MiKTeX's file searching mechanism added (ttf2pk
-** and ttf2tfm are now part of the MiKTeX).
-**
-**
-** Support for rotated glyphs added (only for subfonts; switches
-** `-x' and `-y' to activate rotation resp. controlling the y
-** offset). If a GSUB table with the `vert' feature is available
-** in the font, vertical glyph presentation forms are used.
-**
-
- Added warning message to the configure script in case the
- kpathsea library isn't used.
-
-
- Fixed an omission in Bg5.sfd.
-
-**
-** Added UBg5plus.sfd for mapping Unicode to Bg5+ encoding.
-** Similar SFD files now available: UBg5.sfd, UGB.sfd, UGBK.sfd,
-** UJIS.sfd, UKS.sfd.
-**
-
- Added documentation for dvidrv.btm.
-
-
- Will now compile with kpathsea version 3.3 or newer also.
-
-
- Subfont ligature support added as needed in the HLaTeX package
- for Korean (switch `-l').
-
-**
-** Since ttf2pk support has been added to teTeX version 1.0 and
-** newer, no patch are necessary.
-**
-
- Fixed a string initialization bug in buildtfm() (file
- tfmaux.c).
-
-
- Added more documentation about file searching and a full
- example how to use ttf2tfm.
-
-
- Fixed a small bug in ttf2tfm.c which printed `(null)' instead
- of nothing for the ttfonts.map entry if the font name prefix
- string was empty.
-
-
- ttf2tfm will now use the first type 0 kerning table only
- (instead of the first kerning table only).
-
-
- Both ttf2pk and ttf2tfm will now apply stretching and slanting
- directly to the outline. This usually yields smaller bounding
- boxes.
-
-
- ttf2tfm will now output a comment string to the VPL file to
- illustrate the meaning of the `HEADER' lines.
-
-
- ttfbanner:
-
- Added Makefile for emx+gcc compiler.
-
-
- Added autoconf support.
-
-
- Fixed a lot of compilation warnings.
-
-
-Pascal source code
-------------------
-
- The Pascal source code has been seriously updated since 1.2.
- Here are the most important changes.
-
-**
-** A. Support for charmaps and the name table
-**
-**
-** The Charmap functions were not correctly implemented before
-** 1.3. They are now available in the Pascal API.
-**
-**
-** Similarly, the `name' table was not loaded, and the
-** TT_Get_Name function wasn't implemented before 1.3. It is now
-** done.
-**
-**
-** The Pascal engine is now feature-complete, except that it
-** provides no extensions like the C source code.
-**
-
- B. Improvements in the glyph loader and the interpreter
-
-
- Several changes were made in order to be able to load more
- broken fonts, as well as old Apple fonts which happened to use
- some very rarely-used aspects of the specification.
-
-
- Note that the Pascal bytecode interpreter, contrary to the C
- version, is not able to silently accept broken glyphs yet, or
- even use the flag TTLOAD_PEDANTIC. Implementing this in
- Pascal would require some serious work (unlike to C, where
- this feature was introduced easily with the use of a few
- macros to minimize source changes). So TT_Load_Glyph might
- return an error with the Pascal engine while the C one accept
- the same request successfully.
-
-
- C. Ports to Delphi and Free Pascal
-
- This release has been compiled on the following compilers:
-
- - Free Pascal 0.9 (Dos,Linux,Win32,OS/2)
- - Virtual Pascal 1.1 and 2.0 (Win32 and OS/2)
- - Turbo Pascal 6.0 and Borland Pascal 7.0 (Dos)
- - Delphi 1, 2, and 3. It should work with D4 and D5 also.
- (Windows)
-
- Note that most of the test programs will not compile on
- anything except MS-DOS or OS/2. The debugger also needs the
- Turbo Vision library. The library, however, should compile
- fine with all tools cited above.
-
-
-
-Changes between FreeType 1.1 and 1.2
-====================================
-
-Mostly bug fixes and build fixes.
-
-
-
-Changes between FreeType 1.0 and 1.1
-====================================
-
-There were various changes since the 1.0 release. Here they are
-summarized:
-
-- Added vertical layout support
-
- The engine now loads the vertical header and metrics if available
- and makes them visible through the new `vertical' field of the
- face properties (it is set to NULL if no vertical data was found
- in the font file).
-
- The glyph loader now loads all metrics (horizontal and vertical),
- but still returns the horizontal ones only with the API
- TT_Get_Glyph_Metrics(). However, TT_Get_Glyph_Bit_Metrics() has
- been added to extract them from a glyph container.
-
-
-- Serialization of coordinates arrays in TT_Outline()
-
- As announced in the previous API reference, the structure of
- TT_Outline changed slightly, as well as the naming of its fields.
- The points are now stored in a single array of TT_Vector, instead
- of two parallel arrays (one for the Xs, the other for the Ys).
-
-
-- New API function TT_Get_Face_Metrics()
-
- Useful to access unscaled metrics like left side bearings, advance
- widths, top side bearings, and advance height, for a given range
- of glyphs.
-
-
-- New extension: ftxcmap.c
-
- Used by some applications to enumerate and parse the charmap
- tables in an easier way.
-
-
-- New extension: ftxpost.c
-
- With this extension you can access the PostScript glyph names
- given in the `post' table.
-
-
-- New extension: ftxwidth.c
-
- This extension is used to parse the `glyf' table to extract the
- bounding boxes of a given range of glyphs. This is much faster
- than loading individual glyphs.
-
-
-- The FreeType engine is now THREAD-SAFE and REENTRANT
-
- However, the implementation of ttmutex must be refined for your
- system -- the default one is a dummy and doesn't do anything!
- Beware! THIS IS STILL IN BETA.
-
- The thread-safe and reentrant builds now compile and seem to run
- well when used with a single thread. Some efforts have been spent
- to check the coherency of the lock contentions within the engine,
- but we haven't tested multi-threading heavily.
-
-
-- Large internal re-organization
-
- Too technical to explain shortly, but results in a much better
- memory footprint and smaller code, especially when opening
- multiple faces.
-
-
-- Fixes/enhancements to the interpreter
-
- The infamous Monotype.com bug (a new free font released by
- Microsoft Typography a few days after the FreeType 1.0 release!)
- is fixed, of course, as well as few other little and unpleasant
- artifacts...
-
- The interpreter was also seriously re-organized to allow the use
- of a very large `switch' statement, instead of a jump table, which
- results in smaller and faster code on some systems (depending of
- the compiler too). Users of the library can experiment with the
- TT_CONFIG_OPTION_INTERPRETER_SWITCH configuration macro to test
- this.
-
-
-- Single object compilation mode
-
- The core engine can now be compiled into a single object file.
- This allows optimizing compilers to do more global optimizations,
- and get rid of many of the `intermediate' internal symbols used to
- link internal engine components together.
-
- The engine now takes only 48kByte of stripped Intel object code!
-
-
-- DLL compilation mode
-
- In order to allow the compilation of the library as a DLL, the
- keyword EXPORT has been added as a prefix to all high-level API
- functions found in `freetype.h'. Define it to the value you need
- before `#include "freetype.h"' when building the DLL (if undefined
- it will default to nothing within this header file).
-
- (Apparently, this is only useful on Win32, maybe on OS/2.)
-
-
-- Renamed configuration macros
-
- These were renamed to forms of TT_CONFIG_OPTION_XXXXX_YYYYY.
- They're located in ttconfig.h and can be defined/undefined
- manually by developers who want to tune the compilation of the
- engine:
-
- TT_CONFIG_OPTION_EXTEND_ENGINE
-
- Allows extensions to be linked with the single object engine.
- If you don't need any of them, you may save one or more
- kilobytes by undefining it.
-
-
- TT_CONFIG_OPTION_GRAY_SCALING
-
- Allows the compilation of the gray-scaling (font smoothing)
- code in ttraster. If undefined, some APIs won't be available:
-
- TT_Set_Raster_Palette(),
- TT_Get_Glyph_Pixmap(),
- TT_Get_Outline_Pixmap()
-
-
- TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
- Uses a large `switch' statement in the bytecode interpreter
- instead of a constant call-table. Depending on your processor
- and compiler, this can lead to significant reduction of code
- size and/or increase of performance.
-
-
- TT_CONFIG_OPTION_THREAD_SAFE
-
- When defined, a thread-safe version of the engine is built. A
- thread-safe version is a bit bigger, probably not slower, than
- a non-threaded build. ATTENTION: You must redefine the file
- `lib/ttmutex.c' for your own platform to get it to work
- correctly.
-
-
- Some more options may come in the future...
-
-
-- New API functions TT_MulDiv() and TT_MulFix()"
-
- To help you compute `a*b/c' with 64-bit intermediate precision, or
- `a*b/0x10000' with the same one...
-
- These are not necessarily the fastest functions but they are
- clearly portable and overflow-safe. Your runtime/compiler may
- provide better replacements, though...
-
-
-
-Changes between FreeType Beta and 1.0
-=====================================
-
-There were a number of changes since the public beta:
-
-
-I. Bug fixes
-------------
-
- The following bugs have been fixed in this release:
-
-
- - Incorrect advance width and left side bearings
-
- The glyph loader has been re-designed to match the values found
- in the pre-calc tables...
-
-
- - Problems when opening multiple fonts
-
- Fixed. A stupid bug in the i/o component.
-
-
- - Problems with some Georgian fonts
-
- Fixed. Discovered some new undocumented opcodes behaviour...
-
-
- - Buglets in the test programs which made them return invalid
- error codes
-
- Fixed.
-
-
- - Memory leaks when trying to open broken some font files
-
- Fixed. Waiting for more broken fonts to test...
-
-
- - Non-square resolutions don't work or display correctly
-
- They now work very well!
-
-
- - The scan-line converter, while in font-smoothing mode, doesn't
- perform horizontal drop-out control
-
- This wasn't really bug, but the feature has been correctly
- added.
-
-
-The remaining `features' persist, as they're not essential yet:
-
- - The `rotated' and `stretched' flags do not work (glyph loading
- will then return errors). However, it is still possible to
- rotate or transform any outline without setting these flags.
-
- - We always use drop-out mode number 2, as some of the values
- returned by some `cvt programs' seem invalid for now...
-
-
-Note also that an `event hook/callback' has been introduced in this
-release, but is still under alpha (not even beta; it is commented
-out currently). You should not rely on this...
-
-
-II. Code changes
-----------------
-
- 1. API Changes
-
- A few API changes were necessary in order to support important
- features, or future improvements which will come in later
- releases.
-
-
- - TT_Set_Instance_Resolution() was renamed to
- TT_Set_Instance_Resolutions().
-
-
- - TT_Set_Instance_PointSize() has disappeared. Instead, the
- following APIs have been defined:
-
- TT_Set_Instance_CharSize()
- TT_Set_Instance_CharSizes()
- TT_Set_Instance_PixelSizes()
-
-
- - The TT_Engine class has been introduced. It models one
- instance of the library, and is used to allow re-entrance and
- shared library code. The functions which now depend on a
- TT_Engine parameter are:
-
- TT_Init_FreeType()
- TT_Done_FreeType()
- TT_Open_Face()
- TT_Open_Collection()
- TT_Set_Raster_Palette()
- TT_Get_Outline_Bitmap()
- TT_Get_Outline_Pixmap()
-
- Note that there is _no_ sharing of objects between distinct
- engines.
-
-
- - Each face and instance object have an inside pointer which use
- is reserved to client application. Several functions are
- defined to set and read it:
-
- TT_Set_Face_Pointer() / TT_Get_Face_Pointer()
- TT_Set_Instance_Pointer() / TT_Get_Instance_Pointer()
-
-
- - TT_Apply_Outline_Matrix() has been renamed to
- TT_Transform_Outline().
- TT_Apply_Outline_Translation() has been renamed to
- TT_Translate_Outline()
- TT_Apply_Vector_Matrix() has been renamed to
- TT_Transform_Vector()
-
- all for the sake of clarity.
-
-
- 2. Structural changes
-
- Some structures have evolved.
-
-
- - The instance metrics have now two new fields which are
- `x_scale' and `y_scale'. Each one is a scaling factor,
- expressed in the 16.16 fixed float format (TT_Fixed), used to
- convert one distance expressed in font units into the same
- distance in fractional (26.6) pixels.
-
-
- - A new structure TT_BBox has been defined to describe an
- outline's bounding box.
-
-
- - The outlines are now full-class citizen. It is possible to
- create new outlines, copy, clone, transform, translate and
- render them through specific methods of the TT_Outline class
- (previously called TT_Glyph_Outline). Read the API reference
- for a complete listing.
-
-
- - The glyph metrics have a new structure: they contain a TT_BBox
- field, a TT_Outline field, as well as three metrics values,
- which are `bearingX', `bearingY', and `advance'. Read the
- file `glyphs.txt' for more information about their definitions
- and uses.
-
-
- 3. Small but IMPORTANT changes
-
-
- - The `max_Faces' field of a face's properties has disappeared.
- It is replaced by `num_Faces' which gives the total number of
- fonts embedded in a collection (the previous field gave the
- total minus one).
-
-
- - TT_Load_Glyph() now returns correctly placed outlines, and
- computes advance widths which match the pre-calc values in the
- "hdmx" table in nearly all cases.
-
-
- - TT_Get_Glyph_Metrics() returns grid-fitted metrics for hinted
- glyphs (i.e., loaded with the TTLOAD_HINT_GLYPH, or
- TTLOAD_DEFAULT, flags). This includes the bounding box. To
- get the exact bounding box of a hinted glyph, you should
- extract its outline, then call TT_Get_Outline_BBox().
-
-
- - Some improvements in the glyph loader, which improves
- drastically the placement of glyphs (especially composite
- ones) which previously caused trouble for some fonts
- (e.g. goudy.ttf).
-
-
- - Several minor improvements in the interpreter to improve
- rendering and bounds checking...
-
-
- - Up-to-date Pascal source code, with output equivalent to the C
- tree...
-
-
---- END ---