updated changes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
diff --git a/CHANGES b/CHANGES
index 7703536..e381488 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,18 +1,126 @@
LATEST CHANGES BETWEEN 2.0.2 and 2.0.1
- - changed the library header files inclusion scheme. Right now,
- a client application can do something like this:
-
- #include <ft2build.h> -- include build and setup configuration file
- #include FT_FREETYPE_H -- main API file
- #include FT_GLYPH_H -- abstract glyph image handling, etc..
+ I. CHANGES TO THE MODULES / FONT DRIVERS:
+
+ - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to
+ avoid legal problems with the Apple patents. It seems that we
+ mistakenly turned this option on in previous releases of the build.
+
+ note that if you want to use the bytecode interpreter, in order to
+ get high-quality TrueType rendering, you'll need to toggle by hand
+ the definition of the TT_CONFIG_OPTION_BYTECODE_INTERPRETER macro
+ in the file "include/freetype/config/ftoption.h"
+
+ - The CFF driver has been improved by Tom Kacvinsky:
+
+ * support for "seac" emulation
+ * support for "dotsection"
+ * support for retrieving glyph names through "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.
+
+
+ - the Type 1 driver was also improved by Tom:
+
+ * 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"
+
+
+ - various other bugfixes, including the following:
+
+ * fixed a nasty memory leak in the Type 1 driver
+
+ * the autohinter and the pcf driver used static writable data
+ 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. FT2 now compiles on Epoc again..
+
+
+ II. CHANGES TO THE HIGH-LEVEL API
+
+ - the library header files inclusion scheme has been changed. The old
+ scheme looked like:
+
+ #include <freetype/freetype.h>
+ #include <freetype/ftglyph.h>
+ #include <freetype/ftcache.h>
+ #include <freetype/cache/ftimage.h>
+
+ use:
+
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+ #include FT_GLYPH_H
+ #include FT_CACHE_H
+ #include FT_CACHE_IMAGE_H
+
+ NOTE THAT THE OLD INCLUSION SCHEME WILL STILL WORK WITH THIS RELEASE.
+ HOWEVER, WE DON'T GUARANTEE THAT THIS WILL STILL BE TRUE IN THE NEXT
+ ONE (A.K.A. FREETYPE 2.1)
+
+ the file <ft2build.h> 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 Chapter I.
+
+ - 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.
+
+ The latter has been updated to support the grouping of sections
+ in chapters, and better index sort. See:
+
+ http://www.freetype.org/freetype2/docs/reference/ft2-toc.html
+
+
+ III. CHANGES TO THE BUILD PROCESS
+
+
+ - if you're not building FreeType 2 with our own build system (i.e. with
+ your own Makefiles or project files), you'll need to be aware that the
+ build process as changed a little bit. Namely:
+
+ - 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.
+
+ So, if you were doing something like:
+
+ cc -c -Iinclude -Isrc src/base/ftbase.c
+
+ change the line to:
+
+ cc -c -Iinclude -Isrc/base src/base/ftbase.c
+
+
+ If you were doing something like:
+
+ cd src/base
+ cc -c -I../../include -I.. ftbase.c
+
+ change it to:
+
+ cd src/base
+ cc -c -I../../include ftbase.c
+
+
- the build system has changed slightly when compiling by hand (either
from the command line or from an IDE). You don't need to put the "src"
directory in the include path anymore. Rather, place each component's
path.. See INSTALL and "docs/BUILD" for details..
+
=========================================================================
LATEST CHANGES BETWEEN 2.0.1 and 2.0:
diff --git a/TODO b/TODO
index 8849e6c..0c17aca 100644
--- a/TODO
+++ b/TODO
@@ -2,11 +2,11 @@ Here is a list of items that need to be addressed in FreeType 2:
* Add synthesized Unicode charmap processing to the CFF driver.
-* Investigate usage of casts and bit width of integer types used. The idea is
- to typedef FT_Fixed, FT_Long, FT_Int, etc. to use the appropriate built in
- integer types. This is so that we may avoid unnecessary explict typecasts
- and side affects inherent in implict casts. This is mostly an issue on
- platforms where long integers are 64 bits wide (instead of 32 bits wide).
-
-* Fix exact bbox calculation. The current code uses an iterative algorithm
- which can fail miserably.
+* Fix Visual C++ project file
+
+* Fix a bug in the TrueType driver: linear horizontal advances of composites
+ are not returned properly.
+
+* Change the build system to work with the "Jam" tool instead of the
+ terribly complex and error-prone GNU Makefiles we're currently using
+