blob: 9372ffbe4c26b11404caba715b1fcfcd2a7faf72 [file] [log] [blame]
David Turnerc0f9c4a2007-02-12 14:55:03 +000012007-02-12 David Turner <david@freetype.org>
2
David Turner2ef3e0f2007-02-12 21:28:21 +00003 * src/autofit/afloader.c: improve spacing adjustments for the
4 non-light auto-hinted modes. Gets rid of "inter-letter spacing
5 is too wide"
6
David Turner72a0dd22007-02-12 15:24:51 +00007 * src/truetype/ttinterp.h, src/truetype/ttinterp.c: simplify
8 projection and dual-projection code interface
9
David Turnerc0f9c4a2007-02-12 14:55:03 +000010 * include/freetype/internal/ftmemory.h, src/base/ftutils.c,
11 src/bfd/bfddrivr.c, src/bdf/bdflib.c, src/pcf/pcfread.c,
12 src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffobjs.c,
13 src/sfnt/sfdriver.c, src/type1/t1driver.c, src/type42/t42drivr.c:
14 introduce ft_mem_strdup, ft_mem_dup, ft_mem_strcpyn and the
15 corresponding macros, and modify code to use them. This is to
16 get rid of various uses of strcpy and other "evil" functions,
17 as well as simplify a few things
18
David Turner2ef3e0f2007-02-12 21:28:21 +000019
Werner Lemberg582067d2007-02-11 15:03:05 +0000202007-02-11 Werner Lemberg <wl@gnu.org>
21
22 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
23 non-spacing glyphs.
24
Werner Lemberg8f474532007-02-07 08:31:01 +0000252007-02-07 Tom Parker <palfrey@tevp.net>
26
27 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
28 pointer.
29
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
31
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000032 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
33 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +000034 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000035 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
36 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
37 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
38 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +000039
40 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
41 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000042 * builds/mac/ftmac.c: Ditto.
43
442007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
45
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +000046 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +000047 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +000048 #include <ftmac.c>.
49
502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
51
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +000052 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
53 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
54 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
55 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
56 FT_GetFilePath_From_Mac_ATS_Name.
57 * builds/mac/ftmac.c: Ditto.
58
592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
60
Werner Lembergdcbb7082007-02-08 08:54:09 +000061 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +000062 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
63 for passing to FT_New_Face_From_FSSpec.
64
652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
66
Werner Lembergdcbb7082007-02-08 08:54:09 +000067 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000068 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +000069
70 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
71 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000072 * builds/mac/ftmac.c (OS_INLINE): Ditto.
73
Werner Lemberg313d7772007-02-01 08:10:45 +0000742007-02-01 Werner Lemberg <wl@gnu.org>
75
76 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
77 Explain why applications shouldn't use it. Found by Alexei.
78
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000792007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +000080
81 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
82 message.
83
84 * src/gxvalid/gxvmort1.c
85 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
86 message.
87
David Turnerc0f9c4a2007-02-12 14:55:03 +000088>>>>>>> 1.1514
Werner Lemberg53935932007-01-31 08:53:02 +0000892007-01-31 Werner Lemberg <wl@gnu.org>
90
91
92 * Version 2.3.1 released.
93 =========================
94
95
96 Tag sources with `VER-2-3-1-FINAL'.
97
98 * builds/win32/visualc/freetype.dsp,
99 builds/win32/visualc/freetype.vcproj: s/230/231/.
100 * builds/win32/visualc/index.html: s/221/231/.
101
102 * vms_make.com: Add `ftgasp'.
103
David Turnera7ee6082007-01-30 10:33:53 +00001042007-01-30 David Turner <david@freetype.org>
105
Werner Lemberg53935932007-01-31 08:53:02 +0000106 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000107
Werner Lemberg53935932007-01-31 08:53:02 +0000108 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000109
Werner Lemberg53935932007-01-31 08:53:02 +0000110 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
111 s/2.3.0/2.3.1/.
112
113 * builds/unix/configure.raw (version_info): Set to 9:12:3.
114
115
116 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
117 (af_loader_load_g): Disable the warper (i.e., the light hinting
118 improvements) to make a 2.3.1 bugfix release before introducing a
119 new feature. This should give us more time to tune and improve the
120 warper for the next release.
121
122 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000123
David Turnerd91eebd2007-01-26 15:05:41 +00001242007-01-25 David Turner <david@freetype.org>
125
Werner Lembergbf241762007-01-26 16:08:49 +0000126 For light auto-hinting, improve glyph advance widths and resurrect
127 normal/full hinting to its normal quality.
128
129 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
130 and `xmax_delta'.
131 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
132 and `xmax_delta'.
133
134 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
135 preprocessor conditional with if-clause, handling both light and
136 normal mode.
137
138 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
139 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000140
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00001412007-01-25 Werner Lemberg <wl@gnu.org>
142
143 * docs/release: Updated -- Savannah uses a new uploading scheme.
144
David Turnera42567b2007-01-25 12:23:37 +00001452007-01-25 David Turner <david@freetype.org>
146
Werner Lembergd7855662007-01-25 13:53:56 +0000147 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000148
Werner Lembergd7855662007-01-25 13:53:56 +0000149 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
150 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
151 functions.
David Turnera42567b2007-01-25 12:23:37 +0000152
Werner Lembergd7855662007-01-25 13:53:56 +0000153 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000154
Werner Lembergb1be9e82007-01-25 11:50:00 +00001552007-01-25 Werner Lemberg <wl@gnu.org>
156
157 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000158 correctly in a sanity check. Since this function is only used to
159 load local and global functions, any charstring that called the last
160 local/global function would fail otherwise. This fixes Savannah bug
161 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000162
163 * docs/CHANGES: Document it.
164
David Turnerb6de8d12007-01-23 15:51:50 +00001652007-01-23 David Turner <david@freetype.org>
166
Werner Lembergb1be9e82007-01-25 11:50:00 +0000167 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
168 prevented compilation when disabling both the unpatented and the
169 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000170
Werner Lembergb1be9e82007-01-25 11:50:00 +0000171
172 Fix and enable the warper to improve `light' hinting mode. This is
173 not necessarily a final version, but it seems to work well.
174
175 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
176 Disable code.
177 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
178 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
179
180 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
181 (af_warper_compute_line_best): Fix array size of `scores'.
182 (af_warper_compute): Better handling of border cases.
183 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
184 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000185
Werner Lemberg011d1112007-01-21 09:36:00 +00001862007-01-21 Werner Lemberg <wl@gnu.org>
187
Werner Lemberg42b63b22007-01-21 21:01:33 +0000188 * ChangeLog: Split off older entries into...
189 * ChangeLog.22: This new file.
190
1912007-01-21 Werner Lemberg <wl@gnu.org>
192
Werner Lemberg555258f2007-01-21 09:46:37 +0000193 * docs/CHANGES: Document SHZ fix.
194
1952007-01-21 George Williams <gww@silcom.com>
196
197 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
198 points.
199
2002007-01-21 Werner Lemberg <wl@gnu.org>
201
Werner Lemberg011d1112007-01-21 09:36:00 +0000202 * src/sfnt/ttmtx.c (tt_face_get_metrics)
203 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
204
Werner Lemberg87a5a432007-01-17 12:44:39 +00002052007-01-17 Werner Lemberg <wl@gnu.org>
206
Werner Lembergb8003292007-01-17 12:56:25 +0000207
208 * Version 2.3.0 released.
209 =========================
210
211
212 Tag sources with `VER-2-3-0-FINAL'.
213
2142007-01-17 Werner Lemberg <wl@gnu.org>
215
Werner Lemberg87a5a432007-01-17 12:44:39 +0000216 * docs/release: Updated.
217
David Turner22122722007-01-16 20:06:44 +00002182007-01-16 David Turner <david@freetype.org>
219
Werner Lemberg87a5a432007-01-17 12:44:39 +0000220 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
221 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
222 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
223 warnings.
David Turner22122722007-01-16 20:06:44 +0000224
Werner Lemberg267e1d72007-01-15 07:48:09 +00002252007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
226
227 * builds/amiga/makefile, builds/amiga/makefile.os4,
228 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
229
230 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
231
Werner Lemberg8c4120d2007-01-15 06:42:40 +00002322007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
233
234 Fix various compiler warnings.
235
236 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
237 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
238 s/index/strike_index/.
239 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
240
241 * src/gxvalid/gxvmorx5.c
242 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
243
244 * src/truetype/ttinterp.c (Compute_Point_Displacement),
245 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
246 uninitialized variables.
247
David Turner2ef3e0f2007-02-12 21:28:21 +0000248>>>>>>> 1.1516
Werner Lemberg6164a9d2007-01-13 23:01:36 +00002492007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
250
251 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
252
Werner Lemberg281c1482007-01-13 22:50:51 +00002532007-01-13 Werner Lemberg <wl@gnu.org>
254
255 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
256 versions up to 0x3FF without complaining.
257
Werner Lembergac250b22007-01-13 14:01:36 +00002582007-01-13 Derek Clegg <dclegg@apple.com>
259
260 Add FT_Get_PS_Font_Info interface to CFF driver.
261
262 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
263 (CFF_FontRec): Add `font_info' field.
264
265 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
266 (cff_font_done): Free font->font_info if necessary.
267
268 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
269 (cff_service_ps_info): Register cff_ps_get_font_info.
270
Werner Lemberg23df31a2007-01-13 08:45:00 +00002712007-01-13 Werner Lemberg <wl@gnu.org>
272
273 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
274 with C++ compiler.
275
276 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
277 af_glyph_hints_dump_edges): Ditto.
278
279 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
280 `modules.cfg').
281
282 * src/sfnt/ttsbit0.h: Remove.
283
284 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
285
Werner Lemberg27cf9de2007-01-13 07:34:23 +00002862007-01-12 David Turner <david@freetype.org>
287
288 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
289 bug in the bitmap emboldener if the pitch of the source bitmap is
290 much larger than its width.
David Turner2ef3e0f2007-02-12 21:28:21 +0000291>>>>>>> 1.1484
Werner Lemberg27cf9de2007-01-13 07:34:23 +0000292
293 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
294 compilation warning.
295
Werner Lemberg6d96d312007-01-12 10:30:19 +00002962007-01-12 Werner Lemberg <wl@gnu.org>
297
David Turner2ef3e0f2007-02-12 21:28:21 +00002982007-01-12 Werner Lemberg <wl@gnu.org>
299
Werner Lemberg6d96d312007-01-12 10:30:19 +0000300 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
301 `automake' CVS module from sources.redhat.com.
302
Werner Lemberg17432b52007-01-12 09:28:44 +00003032007-01-11 Werner Lemberg <wl@gnu.org>
304
305 * src/type1/t1load.c (is_space): Removed.
306 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
307 (parse_charstrings): Use IS_PS_TOKEN.
308
309
310 * autogen.sh: Avoid bash specific syntax.
311
David Turner038ace22007-01-11 15:00:59 +00003122007-01-11 David Turner <david@freetype.org>
313
Werner Lemberg17432b52007-01-12 09:28:44 +0000314 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000315
Werner Lemberg17432b52007-01-12 09:28:44 +0000316 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000317
Werner Lemberg17432b52007-01-12 09:28:44 +0000318 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
319 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000320 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000321
Werner Lemberg17432b52007-01-12 09:28:44 +0000322 * autogen.sh: Small fix to get it working on Mac OS X properly:
323 The issue is that GNU libtool is called `glibtool' on this platform,
324 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000325
David Turner2628ea92007-01-10 13:15:56 +00003262007-01-10 David Turner <david@freetype.org>
327
Werner Lemberg17432b52007-01-12 09:28:44 +0000328 * all-sources: Tag all sources with VER-2-3-0-RC1 and
329 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000330
Werner Lemberg17432b52007-01-12 09:28:44 +0000331 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
332 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
333 version number to 2.3.0.
334
335 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
336 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000337
338 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000339 include/freetype/ftlcdfil.h: Update reference documentation with
340 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000341
Werner Lemberg17432b52007-01-12 09:28:44 +0000342 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
343 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000344
Werner Lembergbf02d392007-01-10 07:07:37 +00003452007-01-10 Derek Clegg <dclegg@apple.com>
346
347 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
348 values.
349
David Turnerf48b60e2007-01-08 15:15:32 +00003502007-01-08 David Turner <david@freetype.org>
351
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000352 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000353
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000354 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
355 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000356 corresponding to a given character pixel size.
357
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000358 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
359 `gasp' table, in order to avoid potential problems with later
360 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000361
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000362 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
363 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000364
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000365 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
366 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
367 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
368 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000369
Werner Lemberge6b6f372007-01-07 00:06:47 +00003702007-01-07 Werner Lemberg <wl@gnu.org>
371
Werner Lembergb8004d22007-01-07 09:13:38 +0000372 * src/cid/cidparse.c (cid_parser_new): Improve error message for
373 Type 11 fonts.
374 Scan for `/sfnts' token.
375
3762007-01-07 Werner Lemberg <wl@gnu.org>
377
378 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000379
Werner Lembergbe5f7972007-01-06 07:51:48 +00003802007-01-06 Werner Lemberg <wl@gnu.org>
381
382 * src/cff/cffload.c (cff_index_init): Remove unused variable.
383 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
384
David Turnera8cf42b2007-01-04 16:46:46 +00003852007-01-04 David Turner <david@freetype.org>
386
Werner Lembergf6294392007-01-06 07:47:45 +0000387 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
388 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000389
Werner Lembergf6294392007-01-06 07:47:45 +0000390
391 Do not allocate interpreter-specific tables in memory if we are not
392 going to load glyphs with the bytecode interpreter anyway.
393
394 * src/truetype/ttgload.c (tt_loader_init): Load execution context
395 only if glyph is hinted.
396 Updated.
397 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
398 and `cvs_ready'.
399 Add `tt_size_ready_bytecode' declaration.
400 * src/truetype/ttobjs.c (tt_size_done_bytecode,
401 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
402 (tt_size_init): Move most code into `tt_size_init_bytecode'.
403 (tt_size_done): Move most code into `tt_size_done_bytecode'.
404 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000405
David Turner91a34022007-01-05 14:47:08 +0000406
Werner Lembergf6294392007-01-06 07:47:45 +0000407 Don't extract the metrics table from the SFNT font file. Instead,
408 reparse it on each glyph load. The runtime difference is not
409 noticeable, and it can save a lot of heap memory when memory-mapped
410 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000411
Werner Lembergf6294392007-01-06 07:47:45 +0000412 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
413 `horz_metrics_offset' and `vert_metrics_ofset'.
414 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
415 Updated.
416
417
418 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
419
420
421 Do not load the CFF index offsets into memory, since this wastes a
422 *lot* of heap memory with large Asian CFF fonts. There is no
423 significant performance loss.
424
425 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
426 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
427 `data_size'.
428 (CFF_CharsetRec): Add field `num_glyphs'.
429
430 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
431 cff_charset_cid_to_gindex): New functions.
432 (cff_new_index): Renamed to...
433 (cff_index_init): This. Update all callers.
434 Updated -- some code has been moved to `cff_index_load_offsets'.
435 (cff_done_index): Renamed to...
436 (cff_index_done): This. Update all callers.
437 (cff_index_get_pointers, cff_index_access_element): Updated to use
438 stream offsets.
439 (cff_charset_compute_cids): Set `num_glyphs' field.
440 (cff_encoding_load): Updated.
441
442 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000443
4442007-01-04 David Turner <david@freetype.org>
445
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000446 * docs/INSTALL.UNIX: Simplify some parts, add reference to
447 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000448
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000449 * README.CVS: Add common problem description and solution
450 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000451
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000452 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000453
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000454 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000455
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000456 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000457
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000458 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
459 (TWorker): This.
460 Remove `count_table' and `memory'.
461 Make `grays' a pointer.
462 (TRaster): New structure.
463 (count_table): New static array.
464 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
465 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
466 ft_black_set_mode, ft_black_render): Updated.
467 (ft_black_init): Don't initialize `count_table'.
468 (ft_black_reset): Use the render pool. This saves about 6KB of
469 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000470
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000471 * src/smooth/ftgrays.c (TRaster): Replaced with...
472 (TWorker): This.
473 Remove `memory'.
474 (TRaster): New structure.
475
476 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
477 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
478 gray_render_span, gray_raster_render): Updated.
479 (gray_raster_reset): Use the render pool. This saves about 6KB of
480 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000481
David Turner8a6c44e2007-01-04 17:03:11 +0000482 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
483 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000484 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
485 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
486 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000487
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000488 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
489 Remove a typo that results in no hinting and a memory leak with some
490 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000491
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000492 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000493 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000494 CFF_Faces in it. We need to close all faces before destroying the
495 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000496
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00004972007-01-02 Werner Lemberg <wl@gnu.org>
498
499 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
500 Remove compiler warning.
501
David Turner9207e002007-01-02 16:58:13 +00005022007-01-02 David Turner <david@freetype.org>
503
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000504 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000505
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005062006-12-31 Masatake YAMATO <jet@gyve.org>
507
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000508 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
509 function.
510 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000511 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000512 `gxv_kern_subtable_fmt0_pairs_validate'.
513
David Turner115b4422006-12-22 11:37:05 +00005142006-12-22 David Turner <david@freetype.org>
515
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000516 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
517 warnings.
David Turner115b4422006-12-22 11:37:05 +0000518
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000519 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
520 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000521
Werner Lemberg4755bf72006-12-16 08:58:44 +00005222006-12-16 Anders Kaseorg <anders@kaseorg.com>
523
524 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
525 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
526
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005272006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
528
Werner Lemberg9b774e22007-01-16 06:11:27 +0000529 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000530 sync with the modification by Jens Claudius on 2006-08-22; cf.
531 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +0000532
5332006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
534
535 * src/base/ftmac.c: Specialized for Mac OS X only.
536 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
537 * builds/unix/configure.raw: Ditto. When explicit switches for
538 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
539 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
540
5412006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
542
543 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
544 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
545 instead of src/base/ftmac.c
546 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
547 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
548 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
549 that cannot be built at present.
550
5512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
552
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000553 * src/base/ftobjs.c: Improvement of resource fork handler for
554 POSIX, cf.
555 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000556 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
557 format or .dfont, to simulate the face index number counted by ftmac.c.
558 (IsMacResource): Return the number of scalable faces correctly.
559
Werner Lembergec5b4502006-12-10 07:51:38 +00005602006-12-10 Werner Lemberg <wl@gnu.org>
561
562 * builds/toplevel.mk (version): Protect against `distclean' target.
563
Werner Lembergb26b3142006-12-09 20:01:43 +00005642006-12-09 Werner Lemberg <wl@gnu.org>
565
566 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
567 or `type'.
568
569 * builds/freetype.mk (version): Extracted from freetype.h, using
570 GNU make's built-in string functions.
571 (refdoc): Use $(version) instead of static version number.
572
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00005732006-12-08 Werner Lemberg <wl@gnu.org>
574
575 * builds/toplevel.mk (dist): Extract version number from freetype.h.
576
Werner Lemberg15c29502006-12-09 07:29:54 +00005772006-12-08 Vladimir Volovich <vvv@vsu.ru>
578
579 * src/tools/apinames (State): Remove final comma in structure -- xlc
580 v5 under AIX 4.3 doesn't like this.
581
David Turnerdbf3b432006-12-07 21:18:09 +00005822006-12-07 David Turner <david@freetype.org>
583
Werner Lemberg256a3512006-12-08 06:49:33 +0000584 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
585 to the spacing of auto-fitted glyphs. This only impacts rare
586 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000587
Werner Lemberg11171312006-12-03 09:43:40 +00005882006-12-03 Werner Lemberg <wl@gnu.org>
589
590 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
591
Werner Lemberg960ba592006-12-01 08:20:47 +00005922006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000593
Werner Lemberg960ba592006-12-01 08:20:47 +0000594 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
595 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
596 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000597
David Turner80658e52006-11-28 08:09:20 +0000598
Werner Lemberg960ba592006-12-01 08:20:47 +0000599 * include/freetype/ftxf86.h: Fix and extend comment so that it
600 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000601
Werner Lemberg960ba592006-12-01 08:20:47 +0000602 * include/freetype/ftchapters.h: Add `font_format' section.
603
604
605 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
606 to TOC in index page.
607
6082006-11-28 David Turner <david@freetype.org>
609
610 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
611 trying to render into a zero-width/height bitmap, not an error code.
612
613 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
614
615 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
616 ones instead.
617
618 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
619 variable.
David Turner80658e52006-11-28 08:09:20 +0000620
Werner Lemberg8636c292006-11-26 22:28:13 +00006212006-11-26 Pierre Hanser <hanser@club-internet.fr>
622
623 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
624
Werner Lemberg960ba592006-12-01 08:20:47 +00006252006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000626
Werner Lemberg960ba592006-12-01 08:20:47 +0000627 * src/autofit/afhints.c (af_glyph_hints_dump_points,
628 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
629 Add stubs to link the `ftgrid' test program when debugging is
630 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000631
Werner Lemberg960ba592006-12-01 08:20:47 +00006322006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000633
634 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000635 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
636
637 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
638 Emit more sensible information.
639
640 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
641
642 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
643 rounding of blue values.
644 (af_latin_hints_compute_segments): Hint segment heights.
645 (af_latin_hints_link_segments): Reduce `len_score' value.
646 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
647 value and use `height' member for comparisons.
648 (af_latin_hint_edges): Extend logging message.
649 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000650
Werner Lemberg91959bf2006-11-22 10:36:55 +00006512006-11-22 Werner Lemberg <wl@gnu.org>
652
653 Fix Savannah bug #15553.
654
655 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
656 program after a change from mono to grayscaling (and vice versa).
657 Use correct constant for comparison to get `exec->grayscale'.
658
Werner Lemberg913a3652006-11-19 09:19:17 +00006592006-11-18 Werner Lemberg <wl@gnu.org>
660
661 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000662 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000663 This patch fixes Savannah bug #18301.
664
665 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
666 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
667 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
668 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
669 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
670 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
671 (FNT_Load_Glyph): Check validity of `glyph_index'.
672
David Turner7bab6ae2006-11-13 11:25:06 +00006732006-11-13 David Turner <david@freetype.org>
674
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000675 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
676 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000677
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000678 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
679 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
680 when building the library to change the default LCD filter to be
681 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000682
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000683 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000684
David Turner8765c712006-11-10 16:49:42 +00006852006-11-10 David Turner <david@freetype.org>
686
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000687 * src/smooth/ftsmooth.c: API change for the LCD
688 filter. The FT_LcdFilter value is an enumeration describing which
689 filter to apply, with new values FT_LCD_FILTER_LIGHT and
690 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
691 algorithm which produces strong color fringes for everything
692 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000693
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000694 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
695 second parameter to an enum type.
696
697 * src/base/ftlcdfil.c (USE_LEGACY): Define.
698 (_ft_lcd_filter): Rename to...
699 (_ft_lcd_filter_fir): This.
700 Update parameters.
701 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
702 (FT_Library_Set_LcdFilter): Update parameters.
703 Handle new filter modes.
704
705 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
706 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
707 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
708 callback and update other fields.
709
710 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
711 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
712 Other minor improvements.
713
714 * src/autofit/aflatin.c: Various tiny improvements that drastically
715 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
716 (af_latin_hints_compute_edges): Fix typo.
717 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000718
David Turner4e9cc3c2006-11-09 16:31:52 +00007192006-11-09 David Turner <david@freetype.org>
720
Werner Lemberg49c77a82006-11-09 21:51:57 +0000721 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
722 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000723
Werner Lemberg5e430892006-11-07 09:35:03 +00007242006-11-07 Zhe Su <james.su@gmail.com>
725
726 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
727 also.
728
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007292006-11-03 Werner Lemberg <wl@gnu.org>
730
731 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
732
David Turner40604742006-11-02 16:37:35 +00007332006-11-02 David Turner <david@freetype.org>
734
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000735 Add a few tweaks to better handle serif fonts.
736 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000737
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000738 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
739 segments that are less than 1.5 pixels high. This gets rid of
740 *many* corner cases with serifs.
741 (af_latin_align_linked_edge): Add logging message.
742 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
743 Add logging messages.
744 Handle AF_EDGE_FLAG flag specially.
745
746 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
747 _af_debug_disable_blue_hints, and _af_debug_hints variables.
748
749 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
750 Update external declarations.
751 (af_corner_orientation, af_corner_is_flat): Replaced by...
752
753 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
754 ft_corner_is_flat): These declarations.
755
756 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
757 Comment out. Replaced by...
758
759 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
760 These functions. Update all callers.
761 (FT_Add64) [!FT_LONG64]: Simplify.
762
763 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
764 (af_direction_compute): Add a missing FT_ABS call. This bug caused
765 production of garbage by missing lots of segments.
766
767 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
768
769 * src/autofit/afloader.c (af_loader_init, af_loader_done)
770 [AF_DEBUG]: Set _af_debug_hints.
771
772
773 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
774 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
775 and ft_corner_orientation.
776
777
778 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000779
Werner Lemberge88c5262006-10-24 05:46:26 +00007802006-10-24 Werner Lemberg <wl@gnu.org>
781
782 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
783
784 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
785 as argument.
786
David Turnera1861392006-10-23 16:00:59 +00007872006-10-23 Zhe Su <zsu@novell.com>
788
Werner Lemberg715e96e2006-10-24 05:28:45 +0000789 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
790 better deal with broken Asian fonts with strange glyphs, having
791 self-intersections and other peculiarities. The used algorithm is
792 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000793
David Turnere140f142006-10-23 08:56:57 +00007942006-10-23 David Turner <david@freetype.org>
795
Werner Lemberg715e96e2006-10-24 05:28:45 +0000796 Speed up the CFF font loader. With some large CFF fonts,
797 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000798
Werner Lemberg715e96e2006-10-24 05:28:45 +0000799 * src/cff/cffload.c (cff_get_offset): Removed.
800 (cff_new_index): Inline functionality of `cff_get_offset'.
801 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
802 (cff_charset_done): Call `cff_charset_free_cids'.
803 (cff_charset_load): Call `cff_charset_compute_cids'.
804 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
805
806 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
807 with FT_NEXT_XXX.
808
809
810 Speed up the Postscript hinter, with more than 100% speed increase
811 on my machine.
812
813 * src/pshinter/pshalgo.c (psh_corner_is_flat,
814 psh_corner_orientation): New functions.
815 (psh_glyph_compute_inflections): Merge loops for efficiency.
816 Use `psh_corner_orientation'.
817 (psh_glyph_init): Use `psh_corner_is_flat'.
818 (psh_hint_table_find_strong_point): Renamed to...
819 (psh_hint_table_find_strong_points): This.
820 Rewrite, adding argument to handle all points at once.
821 Update all callers.
822 (PSH_MAX_STRONG_INTERNAL): New macro.
823 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000824
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008252006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
826
827 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000828 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000829
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008302006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
831
832 * docs/INSTALL.CROSS: New document file for cross-building.
833
834 * builds/unix/configure.raw: Preliminary cross-building support.
835 Find native C compiler and pass it by CC_BUILD, and
836 find suffix for native executable and pass it by EXEEXT_BUILD.
837 Also suffix for target executable is passed by EXEEXT.
838
Werner Lembergb9e6d692006-10-15 08:58:40 +0000839 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
840 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000841 CC_BUILD and EXEEXT_BUILD.
842
Werner Lembergb9e6d692006-10-15 08:58:40 +0000843 * builds/exports.mk (APINAMES_EXE): Change the extension for
844 apinames from the suffix for target (E) to that for building host
845 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000846
Werner Lemberg82a07e92006-10-12 06:20:44 +00008472006-10-12 Werner Lemberg <wl@gnu.org>
848
849 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
850 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
851 which reference those files.
852
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00008532006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
854
Werner Lembergb9e6d692006-10-15 08:58:40 +0000855 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
856 embedded in freetype2.pc and freetype-config. Use it to record
857 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000858
859 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
860
861 * builds/unix/freetype-config.in: Ditto.
862
Werner Lemberg28e17d92006-10-11 17:27:47 +00008632006-10-11 Werner Lemberg <wl@gnu.org>
864
865 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
866 development.
867
Jens Claudius336d2292006-10-03 08:53:37 +00008682006-10-03 Jens Claudius <jens.claudius@yahoo.com>
869
870 * include/freetype/config/ftstdlib.h: Cast away volatileness from
871 argument to ft_setjmp.
872
873 * include/freetype/internal/ftvalid.h: Add comment that
874 ft_validator_run must not be used.
875
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008762006-10-01 Werner Lemberg <wl@gnu.org>
877
878 * src/base/ftbase.c: Undo change from 2006-09-30.
879
880 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
881
8822006-09-30 David Turner <david@freetype.org>
883
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000884 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
885 s/unpatented_hinting/ignore_unpatented_hinter/.
886 Update all callers.
887
888 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
889 auto-hinting shall be used or not.
890
891 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000892
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008932006-09-30 Werner Lemberg <wl@gnu.org>
894
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000895 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
896 in use).
897
898 * src/base/ftbase.c: Include `ftlcdfil.c'.
899
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009002006-09-29 Werner Lemberg <wl@gnu.org>
901
902 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
903 overlapping segments. Bug reported by Stefan Koch.
904
David Turnerad830712006-09-27 16:20:59 +00009052006-09-28 David Turner <david@freetype.org>
906
Werner Lemberg2c002e12006-09-29 21:31:53 +0000907 Fix a bug in the automatic unpatented hinting support which prevents
908 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000909
Werner Lemberg2c002e12006-09-29 21:31:53 +0000910 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
911 s/force_autohint/unpatented_hinting/. Update all callers.
912
913 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
914
915 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000916
David Turner8a317cf2006-09-27 07:52:48 +00009172006-09-27 David Turner <david@freetype.org>
918
Werner Lemberg2c002e12006-09-29 21:31:53 +0000919 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000920
David Turner8a317cf2006-09-27 07:52:48 +0000921
David Turnere140f142006-10-23 08:56:57 +0000922 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000923 In a default build, the function `FT_Library_SetLcdFilter' returns
924 `FT_Err_Unimplemented_Feature'; you need to #define
925 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
926 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000927
Werner Lemberg2c002e12006-09-29 21:31:53 +0000928 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000929
Werner Lemberg2c002e12006-09-29 21:31:53 +0000930 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
931 typedef.
932 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
933 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000934
Werner Lemberg2c002e12006-09-29 21:31:53 +0000935 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
936 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000937
Werner Lemberg2c002e12006-09-29 21:31:53 +0000938 Handle subpixel rendering.
939 Simplify function.
940 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
941 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
942
943 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
944 pointing to <freetype/ftlcdfil.h>.
945
946 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
947 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
948
949 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000950
Werner Lemberge20df4a2006-09-27 06:29:21 +00009512006-09-26 David Bustin
952
953 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
954 correctly. Reported as Savannah bug #17843.
955
David Turner6f8c6222006-09-26 15:42:44 +00009562006-09-26 David Turner <david@freetype.org>
957
Werner Lemberg110246c2006-09-26 21:55:44 +0000958 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
959 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
960 horizontal and vertical hinting for the purpose of debugging the
961 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000962
Werner Lemberg110246c2006-09-26 21:55:44 +0000963 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
964 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000965
Werner Lemberg110246c2006-09-26 21:55:44 +0000966 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
967
968 * include/freetype/config/ftoption.h, devel/ftoption.h
969 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
970 we want to compile LCD-optimized rendering code (à la ClearType) or
971 not. The macro *must* be disabled in default builds of the library
972 for patent reasons.
973
974 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
975 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
976 isn't defined at compile time. This only changes the content of the
977 rendered glyph to match the one of normal gray-level rendering,
978 hence clients should not need to be modified.
979
980 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000981
Werner Lemberg745ff2c2006-09-19 05:48:02 +00009822006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
983
984 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
985 LWFN fails and both are available.
986
David Turnerf3050052006-09-11 12:00:32 +00009872006-09-11 David Turner <david@freetype.org>
988
Werner Lembergf9644552006-09-12 13:48:10 +0000989 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
990 report their English names through an Apple Roman
991 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000992
Werner Lembergf9644552006-09-12 13:48:10 +0000993 If the font uses another name entry with language_id == English, it
994 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000995
Werner Lembergf9644552006-09-12 13:48:10 +0000996 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
997 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000998
Werner Lemberg36d2eab2006-09-05 19:24:34 +00009992006-09-05 Werner Lemberg <wl@gnu.org>
1000
1001 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001002 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001003 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1004 `HAN NOM B.ttf').
1005
1006 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1007
David Turner772e55d2006-09-05 09:45:15 +000010082006-09-05 David Turner <david@freetype.org>
1009
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001010 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001011
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001012 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1013 (TRaster): Remove `count_ex' and `count_ey'.
1014 (gray_find_cell): Remove 2nd and 3rd argument.
1015 (gray_alloc_cell): Merged with `gray_find_cell'.
1016 (gray_record_cell): Simplify.
1017 (gray_set_cell): Rewrite.
1018 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1019 (gray_render_span): Don't use FT_MEM_SET for small values.
1020 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1021 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1022 bitmap scanline.
1023 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001024
David Turneraa557a92006-09-04 16:42:44 +000010252006-09-04 David Turner <david@freetype.org>
1026
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001027 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1028 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001029
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010302006-09-03 Werner Lemberg <wl@gnu.org>
1031
1032 * devel/ftoption.h: Synchronize with
1033 include/freetype/config/ftoption.h.
1034
1035 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1036 variable declaration.
1037 (gray_convert_glyph): Fix compiler warnings.
1038
David Turner6d79f212006-09-01 14:09:35 +000010392006-09-01 David Turner <david@freetype.org>
1040
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001041 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1042 to recognize a few fonts that require the automatic unpatented
1043 loader.
David Turnerbd502952006-09-01 19:05:24 +00001044
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001045 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1046 rasterizer. The speed improvement is between 15% and 25%, depending
1047 on the font data.
1048
1049 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1050 (TCell): Redefine.
1051 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1052 (gray_init_cells): Updated.
1053 (gray_find_cell, gray_alloc_cell): New functions.
1054 (gray_record_cell): Rewritten to use `gray_find_cell' and
1055 `gray_alloc_cell'.
1056 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1057 QSORT_THRESHOLD):
1058 Removed.
1059 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1060 gray_dump_cells): Removed.
1061 (gray_sweep): Rewritten.
1062 (gray_convert_glyph): Rewrite code which used one of the sorting
1063 functions.
1064 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001065
Werner Lembergd898aed2006-08-29 09:50:34 +000010662006-08-29 Dr. Werner Fink <werner@suse.de>
1067
1068 * configure: Make it possible to handle configure options which
1069 have strings containing spaces.
1070
10712006-08-27 David Turner <david@freetype.org>
1072
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001073 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1074 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1075 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1076
1077 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1078 src/truetype/truetype.c, src/truetype/ttdriver.c,
1079 src/truetype/ttgload.c, src/truetype/ttgload.h,
1080 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1081 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1082 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1083
1084 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1085 member `force_autohint'.
1086
1087 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1088
1089 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1090 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001091
Jens Claudiusa787f452006-08-27 11:26:18 +000010922006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1093
1094 Fix miscellaneous compiler warnings.
1095
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001096 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1097 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001098
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001099 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1100 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1101 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001102
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001103 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1104 volatileness of argument to ft_longjmp. Spotted by Werner
1105 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001106
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001107 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1108 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001109
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001110 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1111 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001112
Werner Lembergc4c35b72006-08-27 08:03:46 +000011132006-08-27 Werner Lemberg <wl@gnu.org>
1114
1115 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1116 Reported by Jens.
1117
Jens Claudius088e44e2006-08-22 14:24:30 +000011182006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001119
Jens Claudius088e44e2006-08-22 14:24:30 +00001120 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001121 about addresses of volatile objects passed as function arguments as
1122 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001123
Werner Lembergc4c35b72006-08-27 08:03:46 +00001124 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1125 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001126
1127 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1128 argument `table' a pointer to a volatile object.
1129
1130 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1131 argument `table' a pointer to a volatile object.
1132
Jens Claudius2652bd52006-08-18 17:20:37 +000011332006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1134
1135 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1136 variable `_sfnt' as volatile since it must keep its value across
1137 a call to ft_setjmp.
1138 (gxv_validate): Same for local variables `memory' and `valid'.
1139 (classic_kern_validate): Same for local variables `memory',
1140 `ckern', and `valid'.
1141
1142 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1143 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1144 `jstf', and 'valid'.
1145
1146 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1147 local variable `cmap'.
1148
David Turner9fbfc6a2006-08-16 09:11:31 +000011492006-08-16 David Turner <david@freetype.org>
1150
Werner Lemberg12342992006-08-19 11:18:09 +00001151 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1152 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001153
Werner Lemberg12342992006-08-19 11:18:09 +00001154 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1155 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001156
David Turner33f5f242006-08-16 16:50:55 +00001157
Werner Lemberg12342992006-08-19 11:18:09 +00001158 Improvements to native TrueType hinting. This is a first try,
1159 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1160
1161 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1162 `extra_points2'.
1163
1164 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1165 `orus'.
1166
1167 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1168 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1169 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1170 handle `extra_points2'.
1171
1172 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1173 Remove compiler warning.
1174 (cur_to_arg): Remove macro.
1175 (TT_Hint_Glyph): Updated.
1176 (TT_Process_Simple_Glyph): Handle `orus'.
1177
1178 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1179 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1180 (LOC_Ins_IUP): Renamed to...
1181 (IUP_WorkerRec): This.
1182 Add `orus' member.
1183 (Shift): Renamed to...
1184 (_iup_worker_shift): This.
1185 Updated.
1186 (Interp): Renamed to...
1187 (_iup_worker_interpolate): This.
1188 Updated to handle `orus'.
1189 (Ins_IUP): Updated.
1190
1191 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1192 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001193
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000011942006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1195
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001196 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001197 build ftvalid in ft2demos. This has been inadvertedly changed
1198 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001199
12002006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1201
Werner Lemberg12342992006-08-19 11:18:09 +00001202 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1203 Jens:
1204 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001205
Werner Lemberg12342992006-08-19 11:18:09 +00001206 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1207 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001208
1209 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1210
Jens Claudius9950adc2006-08-13 12:14:36 +000012112006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1212
Werner Lemberg12342992006-08-19 11:18:09 +00001213 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1214 T1_TOKEN_TYPE_KEY.
1215 (T1_FieldRec): Add `dict'.
1216 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1217 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1218 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001219
Werner Lemberg12342992006-08-19 11:18:09 +00001220 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1221 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001222
1223 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1224
1225 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001226 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1227 not T1_TOKEN_TYPE_ANY.
1228 (ps_parser_load_field): Make sure a token that should be a string or
1229 name is really a string or name.
1230 Avoid memory leak if a keyword has been already encountered and its
1231 value is overwritten.
1232 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1233 T1_FIELD_XXX.
1234 (parse_dict): Ignore keywords that occur in the wrong dictionary
1235 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001236
Werner Lemberg12342992006-08-19 11:18:09 +00001237 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1238 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001239
Werner Lemberg12342992006-08-19 11:18:09 +00001240 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1241 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001242
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000012432006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1244
1245 Move creation of field `buildchar' of T1_DecoderRec out of
1246 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1247 of it.
1248
1249 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1250 and `T1_Compute_Max_Advance'.
1251
1252 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1253 Remove field `face', add `len_buildchar'.
1254
1255 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1256 field `buildchar'.
1257
1258 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1259 finisher for T1_Decoder.
1260 (cid_slot_load_glyph): Do not ignore failure when initializing the
1261 T1_Decoder.
1262
1263 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1264 Updated.
1265 (t1_decoder_init): Remove initialization of fields `buildchar' and
1266 `len_buildchar'.
1267 (t1_decoder_done): Remove deallocation of field `buildchar'.
1268
1269 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1270 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1271 T1_Decoder.
1272 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1273 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1274 case of error.
1275
1276 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1277 `buildchar' of T1_FaceRec.
1278
1279 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1280 `buildchar' of T1_FaceRec.
1281
Werner Lemberg1a380e02006-07-14 18:28:08 +000012822006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1283
1284 * freetype2/include/freetype/internal/psaux.h: New macros
1285 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1286 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1287 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1288 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1289 (T1_DecoderRec): New fields `buildchar' and `face'.
1290 (IS_PS_TOKEN): New macro.
1291
1292 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1293 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1294
1295 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1296 `default_design_vector' and `num_default_design_vector'.
1297
1298 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1299 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1300 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1301
1302 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1303 `token' argument to be NULL if we want only to count the number of
1304 tokens.
1305 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1306 want to skip the array.
1307 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1308 want to skip the array.
1309
1310 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1311 support for (partially commented out) othersubrs 19-25, 27, and 28.
1312 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1313 (t1_decoder_done): Release new field `buildchar'.
1314
1315 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1316 functions.
1317 (t1_keywords): Register them.
1318 (t1_allocate_blend): Updated.
1319 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1320 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1321 (parse_dict): Remove `keyword_flags' argument.
1322 Use new macro IS_PS_TOKEN.
1323 Changed function so that later PostScript definitions override
1324 earlier ones.
1325 (t1_init_loader): Initialize new field `keywords_encountered'.
1326 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1327 `len_buildchar'.
1328 Remove `keywords_flags'.
1329
1330 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1331 `keywords_encountered'.
1332 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1333
1334 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1335 New entries for parsing /NDV, /CDV, and /DesignVector.
1336
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000013372006-07-07 Werner Lemberg <wl@gnu.org>
1338
1339 Add many checks to protect against malformed PCF files.
1340
1341 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1342 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1343
1344 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1345 data and check that tables don't overlap (using a simple
1346 bubblesort).
1347 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1348 New macros which give the size of data structures in the data
1349 stream.
1350 (pcf_get_properties): Use rough estimates to get array size limits.
1351 Assign `face->nprops' and `face->properties' earlier so that a call
1352 to PCF_Face_Done can do the clean-up in case of error.
1353 Protect against invalid string offsets.
1354 (pcf_get_metrics): Clean up code.
1355 Adjust tracing message levels.
1356 Use rough estimate to get array size limit.
1357 (pcf_get_bitmaps): Clean up code.
1358 Adjust tracing message levels.
1359 Use rough estimates to get offset limits.
1360 (pcf_get_encodings): Adjust tracing message level.
1361 (pcf_get_accel): Clean up code.
1362
Werner Lemberg8eb05252006-06-27 06:20:01 +000013632006-06-26 Werner Lemberg <wl@gnu.org>
1364
1365 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1366 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1367
Werner Lemberg24703f82006-06-26 19:12:51 +000013682006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1369
1370 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1371 (t1_decoder_parse_charstrings): Operator with
1372 opcode 15 pops its two arguments.
1373 Handle the case where the pops of an othersubr may be part of a
1374 subroutine.
1375 Handle unknown othersubrs gracefully: count their operands and let
1376 the following pop operators push the operands as the results onto
1377 the Type1 stack.
1378 Improve handling of setcurrentpoint opcode.
1379
Werner Lembergc011f4c2006-06-26 09:40:00 +000013802006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1381
1382 The Type 1 parser now skips over top-level procedures as required
1383 for a `Simplified Parser'. This makes the parser more robust as it
1384 doesn't poke around in PostScript code. Additionally, it makes the
1385 FontDirectory hackery in src/type1/t1load.c unnecessary.
1386
1387 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1388 (skip_literal_string): Add FT_Error as return value.
1389 Handle escapes better.
1390 (skip_string): Add FT_Error as return value.
1391 Don't set `parser->error' but return error code directly.
1392 (skip_procedure): New function.
1393 (ps_parser_skip_PS_token): Handle procedures.
1394 Update code.
1395 (ps_parser_to_token): Update code.
1396 (ps_parser_load_field_table): Handle bbox entries also.
1397
1398 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1399 Add commented-out code for synthetic fonts.
1400
Werner Lemberga2da05c2006-06-25 06:27:27 +000014012006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1402
1403 Fix two hinting bugs as reported in
1404 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1405
1406 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1407 `first_point' member.
1408
1409 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1410 `first_point'.
1411 (TT_Process_Composite_Glyph): Always untouch points.
1412
1413 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1414 `first_point' and `last_point' in case of composite glyphs.
1415 (Ins_IUP): Fix computation of `end_point'.
1416
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014172006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1418
Werner Lembergef3d2c22006-06-25 06:07:14 +00001419 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1420 Mac. The original patch was written by David Sachitano and Lawrence
1421 Coopet, and modified by Sean McBride for MPW compatibility. Only
1422 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001423
Werner Lembergef3d2c22006-06-25 06:07:14 +00001424 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1425 Mac OS X platforms.
1426 (OS_INLINE): Undefine before definition.
1427 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1428 FontAssociation table in FOND resource.
1429 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1430 and fontSize at each entry of FontAssociation table in FOND
1431 resource.
1432 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1433 ffStylOff of FamilyRecord header of FOND resource, the header,
1434 fontSize, fontID at each entry of FontAssociation table, and
1435 StyleMapping table.
1436 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001437
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000014382006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1439
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001440 Public API of TrueTypeGX, OpenType, and classic kern table validator
1441 should return `FT_Err_Unimplemented_Feature' if validation service
1442 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001443 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001444 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1445
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001446 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1447 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1448 unavailable.
1449 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1450 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001451
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001452 * src/base/ftotval.c (FT_OpenType_Validate): Return
1453 FT_Err_Unimplemented_Feature if OpenType validation service is
1454 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001455
Werner Lembergb10e45a2006-06-08 07:32:56 +000014562006-06-08 Werner Lemberg <wl@gnu.org>
1457
1458 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1459 errors.
1460
David Turner5f1f7502006-06-07 05:11:50 +000014612006-06-07 David Turner <david@freetype.org>
1462
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001463 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1464 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1465 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001466
David Turner457b4a82006-06-06 08:14:14 +000014672006-06-06 David Turner <david@freetype.org>
1468
Werner Lemberg4836f952006-06-06 12:54:08 +00001469 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001470
Werner Lemberg4836f952006-06-06 12:54:08 +00001471 We change `ps_unicodes_init' so that it also takes a
1472 `free_glyph_name' callback to release the glyph names returned by
1473 `get_glyph_name'
1474
1475 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1476 Renamed to ...
1477 (PS_GetGlyphNameFunc): This.
1478 (PS_FreeGlyphNameFunc): New typedef.
1479 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1480
1481 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1482 argument.
1483 (cff_sid_free_glyph_name): New function.
1484 (cff_cmap_unicode_init): Updated.
1485
1486 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1487
1488 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1489 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001490
1491
David Turner09717352006-06-04 14:33:08 +000014922006-06-04 David Turner <david@freetype.org>
1493
Werner Lembergd724f202006-06-04 15:17:41 +00001494 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1495 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001496 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001497
Werner Lembergd724f202006-06-04 15:17:41 +00001498 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1499 of `face->num_glyphs' which missed the last glyph, due to
1500 the offset-by-1 computation, since the PFR format doesn't
1501 guarantee that glyph index 0 corresponds to the `missing
1502 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001503
Werner Lemberg33779662006-05-26 06:30:05 +000015042006-05-25 Werner Lemberg <wl@gnu.org>
1505
1506 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1507 `-no-undefined'. Reported by Christian Biesinger.
1508
Werner Lemberg24773d62006-05-20 08:53:13 +000015092006-05-19 Brian Weed <bw@imaginengine.com>
1510
1511 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1512 have debug information, and debug libraries use `C7 compatible'
1513 debug info.
1514
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015152006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1516
Werner Lemberga6523a62006-05-20 08:47:01 +00001517 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001518 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001519
Werner Lemberga6523a62006-05-20 08:47:01 +00001520 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1521 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001522
1523 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001524 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001525
15262006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1527
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001528 * build/unix/configure.raw: Add a fallback to disable Carbon
1529 dependency, if configured with no options on Mac OS X.
1530
15312006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1532
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001533 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001534 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001535 the second part of Savannah bug #16590.
1536
Werner Lemberg545c4e52006-05-17 22:55:04 +000015372006-05-18 Werner Lemberg <wl@gnu.org>
1538
1539 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1540 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1541
David Turnerdc3ff312006-05-17 12:59:35 +000015422006-05-17 David Turner <david@freetype.org>
1543
Werner Lemberg545c4e52006-05-17 22:55:04 +00001544 This is a major patch used to drastically improve the performance of
1545 loading glyphs. This both speeds up loading the glyph vectors
1546 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001547
Werner Lemberg545c4e52006-05-17 22:55:04 +00001548 We now use inline assembler code with GCC to implement `FT_MulFix',
1549 which is probably the most important function related to the
1550 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001551
Werner Lemberg545c4e52006-05-17 22:55:04 +00001552 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001553
1554
Werner Lemberg545c4e52006-05-17 22:55:04 +00001555 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1556 `cursor' and `limit'.
1557
1558 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1559 New functions.
1560 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1561 [TEST]: Remove.
1562
1563 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1564 code.
1565
1566 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1567 `FT_ZERO'
1568 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1569 (af_glyph_hints_reload: Rewrite recognition of weak points.
1570
1571 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1572 constant values out of the loops.
1573
1574 * src/autofit/aftypes.h: Updated.
1575
1576 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1577
1578 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1579 product to get orientation.
1580
1581 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1582 (FT_Stream_OpenGzip): Use it to handle small files directly in
1583 memory.
1584
1585 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1586 Improve performance.
1587
1588 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1589 `limit'.
1590
1591 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1592 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1593 exceedingly large values of number of contours. Speed up by
1594 reducing the number of loops.
1595
1596 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1597
1598
1599 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1600 used to detect rogue clients from 4 to 16. This is to prevent some
1601 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1602 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001603
Werner Lembergde2d90a2006-05-17 08:54:30 +000016042007-05-17 Werner Lemberg <wl@gnu.org>
1605
1606 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001607 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001608
16092006-05-16 Werner Lemberg <wl@gnu.org>
1610
1611 * docs/PROBLEMS: Updated icl issues.
1612
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001613----------------------------------------------------------------------------
1614
Werner Lemberg42b63b22007-01-21 21:01:33 +00001615Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001616David Turner, Robert Wilhelm, and Werner Lemberg.
1617
1618This file is part of the FreeType project, and may only be used, modified,
1619and distributed under the terms of the FreeType project license,
1620LICENSE.TXT. By continuing to use, modify, or distribute this file you
1621indicate that you have read the license and understand and accept it
1622fully.
1623
1624
1625Local Variables:
1626version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001627coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001628End: