blob: 85ca9df229a539081d4ea4c8f60057c09b65490d [file] [log] [blame]
David Turnerb6de8d12007-01-23 15:51:50 +000012007-01-23 David Turner <david@freetype.org>
2
David Turner741a17e2007-01-23 16:14:38 +00003 * src/truetype/ttobjs.c: fixed typo that prevented compilation when
4 disabling both the unpatented and the bytecode interpreter in the
5 TrueType font driver
6
David Turnerb6de8d12007-01-23 15:51:50 +00007 * src/autofit/aflatin.c, src/autofit/aftypes.h, src/autofit/afwarp.h,
8 src/autofit/afwarp.c: fix and enable the warper to improve "light"
9 hinting mode. This is not necessarily a final version, but it seems
10 to work well
11
Werner Lemberg011d1112007-01-21 09:36:00 +0000122007-01-21 Werner Lemberg <wl@gnu.org>
13
Werner Lemberg42b63b22007-01-21 21:01:33 +000014 * ChangeLog: Split off older entries into...
15 * ChangeLog.22: This new file.
16
172007-01-21 Werner Lemberg <wl@gnu.org>
18
Werner Lemberg555258f2007-01-21 09:46:37 +000019 * docs/CHANGES: Document SHZ fix.
20
212007-01-21 George Williams <gww@silcom.com>
22
23 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
24 points.
25
262007-01-21 Werner Lemberg <wl@gnu.org>
27
Werner Lemberg011d1112007-01-21 09:36:00 +000028 * src/sfnt/ttmtx.c (tt_face_get_metrics)
29 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
30
Werner Lemberg87a5a432007-01-17 12:44:39 +0000312007-01-17 Werner Lemberg <wl@gnu.org>
32
Werner Lembergb8003292007-01-17 12:56:25 +000033
34 * Version 2.3.0 released.
35 =========================
36
37
38 Tag sources with `VER-2-3-0-FINAL'.
39
402007-01-17 Werner Lemberg <wl@gnu.org>
41
Werner Lemberg87a5a432007-01-17 12:44:39 +000042 * docs/release: Updated.
43
David Turner22122722007-01-16 20:06:44 +0000442007-01-16 David Turner <david@freetype.org>
45
Werner Lemberg87a5a432007-01-17 12:44:39 +000046 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
47 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
48 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
49 warnings.
David Turner22122722007-01-16 20:06:44 +000050
Werner Lemberg267e1d72007-01-15 07:48:09 +0000512007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
52
53 * builds/amiga/makefile, builds/amiga/makefile.os4,
54 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
55
56 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
57
Werner Lemberg8c4120d2007-01-15 06:42:40 +0000582007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
59
60 Fix various compiler warnings.
61
62 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
63 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
64 s/index/strike_index/.
65 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
66
67 * src/gxvalid/gxvmorx5.c
68 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
69
70 * src/truetype/ttinterp.c (Compute_Point_Displacement),
71 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
72 uninitialized variables.
73
Werner Lemberg6164a9d2007-01-13 23:01:36 +0000742007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
75
76 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
77
Werner Lemberg281c1482007-01-13 22:50:51 +0000782007-01-13 Werner Lemberg <wl@gnu.org>
79
80 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
81 versions up to 0x3FF without complaining.
82
Werner Lembergac250b22007-01-13 14:01:36 +0000832007-01-13 Derek Clegg <dclegg@apple.com>
84
85 Add FT_Get_PS_Font_Info interface to CFF driver.
86
87 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
88 (CFF_FontRec): Add `font_info' field.
89
90 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
91 (cff_font_done): Free font->font_info if necessary.
92
93 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
94 (cff_service_ps_info): Register cff_ps_get_font_info.
95
Werner Lemberg23df31a2007-01-13 08:45:00 +0000962007-01-13 Werner Lemberg <wl@gnu.org>
97
98 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
99 with C++ compiler.
100
101 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
102 af_glyph_hints_dump_edges): Ditto.
103
104 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
105 `modules.cfg').
106
107 * src/sfnt/ttsbit0.h: Remove.
108
109 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
110
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001112007-01-12 David Turner <david@freetype.org>
112
113 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
114 bug in the bitmap emboldener if the pitch of the source bitmap is
115 much larger than its width.
116
117 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
118 compilation warning.
119
Werner Lemberg6d96d312007-01-12 10:30:19 +00001202007-01-12 Werner Lemberg <wl@gnu.org>
121
122 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
123 `automake' CVS module from sources.redhat.com.
124
Werner Lemberg17432b52007-01-12 09:28:44 +00001252007-01-11 Werner Lemberg <wl@gnu.org>
126
127 * src/type1/t1load.c (is_space): Removed.
128 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
129 (parse_charstrings): Use IS_PS_TOKEN.
130
131
132 * autogen.sh: Avoid bash specific syntax.
133
David Turner038ace22007-01-11 15:00:59 +00001342007-01-11 David Turner <david@freetype.org>
135
Werner Lemberg17432b52007-01-12 09:28:44 +0000136 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000137
Werner Lemberg17432b52007-01-12 09:28:44 +0000138 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000139
Werner Lemberg17432b52007-01-12 09:28:44 +0000140 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
141 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000142 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000143
Werner Lemberg17432b52007-01-12 09:28:44 +0000144 * autogen.sh: Small fix to get it working on Mac OS X properly:
145 The issue is that GNU libtool is called `glibtool' on this platform,
146 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000147
David Turner2628ea92007-01-10 13:15:56 +00001482007-01-10 David Turner <david@freetype.org>
149
Werner Lemberg17432b52007-01-12 09:28:44 +0000150 * all-sources: Tag all sources with VER-2-3-0-RC1 and
151 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000152
Werner Lemberg17432b52007-01-12 09:28:44 +0000153 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
154 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
155 version number to 2.3.0.
156
157 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
158 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000159
160 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000161 include/freetype/ftlcdfil.h: Update reference documentation with
162 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000163
Werner Lemberg17432b52007-01-12 09:28:44 +0000164 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
165 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000166
Werner Lembergbf02d392007-01-10 07:07:37 +00001672007-01-10 Derek Clegg <dclegg@apple.com>
168
169 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
170 values.
171
David Turnerf48b60e2007-01-08 15:15:32 +00001722007-01-08 David Turner <david@freetype.org>
173
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000174 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000175
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000176 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
177 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000178 corresponding to a given character pixel size.
179
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000180 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
181 `gasp' table, in order to avoid potential problems with later
182 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000183
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000184 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
185 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000186
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000187 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
188 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
189 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
190 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000191
Werner Lemberge6b6f372007-01-07 00:06:47 +00001922007-01-07 Werner Lemberg <wl@gnu.org>
193
Werner Lembergb8004d22007-01-07 09:13:38 +0000194 * src/cid/cidparse.c (cid_parser_new): Improve error message for
195 Type 11 fonts.
196 Scan for `/sfnts' token.
197
1982007-01-07 Werner Lemberg <wl@gnu.org>
199
200 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000201
Werner Lembergbe5f7972007-01-06 07:51:48 +00002022007-01-06 Werner Lemberg <wl@gnu.org>
203
204 * src/cff/cffload.c (cff_index_init): Remove unused variable.
205 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
206
David Turnera8cf42b2007-01-04 16:46:46 +00002072007-01-04 David Turner <david@freetype.org>
208
Werner Lembergf6294392007-01-06 07:47:45 +0000209 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
210 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000211
Werner Lembergf6294392007-01-06 07:47:45 +0000212
213 Do not allocate interpreter-specific tables in memory if we are not
214 going to load glyphs with the bytecode interpreter anyway.
215
216 * src/truetype/ttgload.c (tt_loader_init): Load execution context
217 only if glyph is hinted.
218 Updated.
219 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
220 and `cvs_ready'.
221 Add `tt_size_ready_bytecode' declaration.
222 * src/truetype/ttobjs.c (tt_size_done_bytecode,
223 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
224 (tt_size_init): Move most code into `tt_size_init_bytecode'.
225 (tt_size_done): Move most code into `tt_size_done_bytecode'.
226 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000227
David Turner91a34022007-01-05 14:47:08 +0000228
Werner Lembergf6294392007-01-06 07:47:45 +0000229 Don't extract the metrics table from the SFNT font file. Instead,
230 reparse it on each glyph load. The runtime difference is not
231 noticeable, and it can save a lot of heap memory when memory-mapped
232 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000233
Werner Lembergf6294392007-01-06 07:47:45 +0000234 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
235 `horz_metrics_offset' and `vert_metrics_ofset'.
236 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
237 Updated.
238
239
240 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
241
242
243 Do not load the CFF index offsets into memory, since this wastes a
244 *lot* of heap memory with large Asian CFF fonts. There is no
245 significant performance loss.
246
247 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
248 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
249 `data_size'.
250 (CFF_CharsetRec): Add field `num_glyphs'.
251
252 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
253 cff_charset_cid_to_gindex): New functions.
254 (cff_new_index): Renamed to...
255 (cff_index_init): This. Update all callers.
256 Updated -- some code has been moved to `cff_index_load_offsets'.
257 (cff_done_index): Renamed to...
258 (cff_index_done): This. Update all callers.
259 (cff_index_get_pointers, cff_index_access_element): Updated to use
260 stream offsets.
261 (cff_charset_compute_cids): Set `num_glyphs' field.
262 (cff_encoding_load): Updated.
263
264 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000265
2662007-01-04 David Turner <david@freetype.org>
267
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000268 * docs/INSTALL.UNIX: Simplify some parts, add reference to
269 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000270
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000271 * README.CVS: Add common problem description and solution
272 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000273
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000274 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000275
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000276 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000277
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000278 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000279
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000280 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
281 (TWorker): This.
282 Remove `count_table' and `memory'.
283 Make `grays' a pointer.
284 (TRaster): New structure.
285 (count_table): New static array.
286 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
287 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
288 ft_black_set_mode, ft_black_render): Updated.
289 (ft_black_init): Don't initialize `count_table'.
290 (ft_black_reset): Use the render pool. This saves about 6KB of
291 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000292
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000293 * src/smooth/ftgrays.c (TRaster): Replaced with...
294 (TWorker): This.
295 Remove `memory'.
296 (TRaster): New structure.
297
298 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
299 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
300 gray_render_span, gray_raster_render): Updated.
301 (gray_raster_reset): Use the render pool. This saves about 6KB of
302 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000303
David Turner8a6c44e2007-01-04 17:03:11 +0000304 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
305 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000306 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
307 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
308 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000309
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000310 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
311 Remove a typo that results in no hinting and a memory leak with some
312 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000313
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000314 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000315 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000316 CFF_Faces in it. We need to close all faces before destroying the
317 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000318
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003192007-01-02 Werner Lemberg <wl@gnu.org>
320
321 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
322 Remove compiler warning.
323
David Turner9207e002007-01-02 16:58:13 +00003242007-01-02 David Turner <david@freetype.org>
325
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000326 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000327
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003282006-12-31 Masatake YAMATO <jet@gyve.org>
329
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000330 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
331 function.
332 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000333 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000334 `gxv_kern_subtable_fmt0_pairs_validate'.
335
David Turner115b4422006-12-22 11:37:05 +00003362006-12-22 David Turner <david@freetype.org>
337
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000338 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
339 warnings.
David Turner115b4422006-12-22 11:37:05 +0000340
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000341 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
342 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000343
Werner Lemberg4755bf72006-12-16 08:58:44 +00003442006-12-16 Anders Kaseorg <anders@kaseorg.com>
345
346 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
347 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
348
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003492006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
350
Werner Lemberg9b774e22007-01-16 06:11:27 +0000351 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000352 sync with the modification by Jens Claudius on 2006-08-22; cf.
353 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 +0000354
3552006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
356
357 * src/base/ftmac.c: Specialized for Mac OS X only.
358 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
359 * builds/unix/configure.raw: Ditto. When explicit switches for
360 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
361 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
362
3632006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
364
365 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
366 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
367 instead of src/base/ftmac.c
368 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
369 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
370 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
371 that cannot be built at present.
372
3732006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
374
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000375 * src/base/ftobjs.c: Improvement of resource fork handler for
376 POSIX, cf.
377 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000378 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
379 format or .dfont, to simulate the face index number counted by ftmac.c.
380 (IsMacResource): Return the number of scalable faces correctly.
381
Werner Lembergec5b4502006-12-10 07:51:38 +00003822006-12-10 Werner Lemberg <wl@gnu.org>
383
384 * builds/toplevel.mk (version): Protect against `distclean' target.
385
Werner Lembergb26b3142006-12-09 20:01:43 +00003862006-12-09 Werner Lemberg <wl@gnu.org>
387
388 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
389 or `type'.
390
391 * builds/freetype.mk (version): Extracted from freetype.h, using
392 GNU make's built-in string functions.
393 (refdoc): Use $(version) instead of static version number.
394
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00003952006-12-08 Werner Lemberg <wl@gnu.org>
396
397 * builds/toplevel.mk (dist): Extract version number from freetype.h.
398
Werner Lemberg15c29502006-12-09 07:29:54 +00003992006-12-08 Vladimir Volovich <vvv@vsu.ru>
400
401 * src/tools/apinames (State): Remove final comma in structure -- xlc
402 v5 under AIX 4.3 doesn't like this.
403
David Turnerdbf3b432006-12-07 21:18:09 +00004042006-12-07 David Turner <david@freetype.org>
405
Werner Lemberg256a3512006-12-08 06:49:33 +0000406 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
407 to the spacing of auto-fitted glyphs. This only impacts rare
408 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000409
Werner Lemberg11171312006-12-03 09:43:40 +00004102006-12-03 Werner Lemberg <wl@gnu.org>
411
412 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
413
Werner Lemberg960ba592006-12-01 08:20:47 +00004142006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000415
Werner Lemberg960ba592006-12-01 08:20:47 +0000416 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
417 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
418 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000419
David Turner80658e52006-11-28 08:09:20 +0000420
Werner Lemberg960ba592006-12-01 08:20:47 +0000421 * include/freetype/ftxf86.h: Fix and extend comment so that it
422 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000423
Werner Lemberg960ba592006-12-01 08:20:47 +0000424 * include/freetype/ftchapters.h: Add `font_format' section.
425
426
427 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
428 to TOC in index page.
429
4302006-11-28 David Turner <david@freetype.org>
431
432 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
433 trying to render into a zero-width/height bitmap, not an error code.
434
435 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
436
437 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
438 ones instead.
439
440 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
441 variable.
David Turner80658e52006-11-28 08:09:20 +0000442
Werner Lemberg8636c292006-11-26 22:28:13 +00004432006-11-26 Pierre Hanser <hanser@club-internet.fr>
444
445 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
446
Werner Lemberg960ba592006-12-01 08:20:47 +00004472006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000448
Werner Lemberg960ba592006-12-01 08:20:47 +0000449 * src/autofit/afhints.c (af_glyph_hints_dump_points,
450 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
451 Add stubs to link the `ftgrid' test program when debugging is
452 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000453
Werner Lemberg960ba592006-12-01 08:20:47 +00004542006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000455
456 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000457 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
458
459 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
460 Emit more sensible information.
461
462 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
463
464 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
465 rounding of blue values.
466 (af_latin_hints_compute_segments): Hint segment heights.
467 (af_latin_hints_link_segments): Reduce `len_score' value.
468 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
469 value and use `height' member for comparisons.
470 (af_latin_hint_edges): Extend logging message.
471 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000472
Werner Lemberg91959bf2006-11-22 10:36:55 +00004732006-11-22 Werner Lemberg <wl@gnu.org>
474
475 Fix Savannah bug #15553.
476
477 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
478 program after a change from mono to grayscaling (and vice versa).
479 Use correct constant for comparison to get `exec->grayscale'.
480
Werner Lemberg913a3652006-11-19 09:19:17 +00004812006-11-18 Werner Lemberg <wl@gnu.org>
482
483 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000484 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000485 This patch fixes Savannah bug #18301.
486
487 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
488 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
489 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
490 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
491 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
492 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
493 (FNT_Load_Glyph): Check validity of `glyph_index'.
494
David Turner7bab6ae2006-11-13 11:25:06 +00004952006-11-13 David Turner <david@freetype.org>
496
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000497 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
498 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000499
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000500 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
501 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
502 when building the library to change the default LCD filter to be
503 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000504
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000505 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000506
David Turner8765c712006-11-10 16:49:42 +00005072006-11-10 David Turner <david@freetype.org>
508
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000509 * src/smooth/ftsmooth.c: API change for the LCD
510 filter. The FT_LcdFilter value is an enumeration describing which
511 filter to apply, with new values FT_LCD_FILTER_LIGHT and
512 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
513 algorithm which produces strong color fringes for everything
514 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000515
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000516 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
517 second parameter to an enum type.
518
519 * src/base/ftlcdfil.c (USE_LEGACY): Define.
520 (_ft_lcd_filter): Rename to...
521 (_ft_lcd_filter_fir): This.
522 Update parameters.
523 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
524 (FT_Library_Set_LcdFilter): Update parameters.
525 Handle new filter modes.
526
527 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
528 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
529 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
530 callback and update other fields.
531
532 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
533 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
534 Other minor improvements.
535
536 * src/autofit/aflatin.c: Various tiny improvements that drastically
537 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
538 (af_latin_hints_compute_edges): Fix typo.
539 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000540
David Turner4e9cc3c2006-11-09 16:31:52 +00005412006-11-09 David Turner <david@freetype.org>
542
Werner Lemberg49c77a82006-11-09 21:51:57 +0000543 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
544 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000545
Werner Lemberg5e430892006-11-07 09:35:03 +00005462006-11-07 Zhe Su <james.su@gmail.com>
547
548 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
549 also.
550
Werner Lemberg111b5ae2006-11-03 09:40:12 +00005512006-11-03 Werner Lemberg <wl@gnu.org>
552
553 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
554
David Turner40604742006-11-02 16:37:35 +00005552006-11-02 David Turner <david@freetype.org>
556
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000557 Add a few tweaks to better handle serif fonts.
558 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000559
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000560 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
561 segments that are less than 1.5 pixels high. This gets rid of
562 *many* corner cases with serifs.
563 (af_latin_align_linked_edge): Add logging message.
564 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
565 Add logging messages.
566 Handle AF_EDGE_FLAG flag specially.
567
568 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
569 _af_debug_disable_blue_hints, and _af_debug_hints variables.
570
571 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
572 Update external declarations.
573 (af_corner_orientation, af_corner_is_flat): Replaced by...
574
575 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
576 ft_corner_is_flat): These declarations.
577
578 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
579 Comment out. Replaced by...
580
581 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
582 These functions. Update all callers.
583 (FT_Add64) [!FT_LONG64]: Simplify.
584
585 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
586 (af_direction_compute): Add a missing FT_ABS call. This bug caused
587 production of garbage by missing lots of segments.
588
589 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
590
591 * src/autofit/afloader.c (af_loader_init, af_loader_done)
592 [AF_DEBUG]: Set _af_debug_hints.
593
594
595 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
596 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
597 and ft_corner_orientation.
598
599
600 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000601
Werner Lemberge88c5262006-10-24 05:46:26 +00006022006-10-24 Werner Lemberg <wl@gnu.org>
603
604 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
605
606 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
607 as argument.
608
David Turnera1861392006-10-23 16:00:59 +00006092006-10-23 Zhe Su <zsu@novell.com>
610
Werner Lemberg715e96e2006-10-24 05:28:45 +0000611 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
612 better deal with broken Asian fonts with strange glyphs, having
613 self-intersections and other peculiarities. The used algorithm is
614 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000615
David Turnere140f142006-10-23 08:56:57 +00006162006-10-23 David Turner <david@freetype.org>
617
Werner Lemberg715e96e2006-10-24 05:28:45 +0000618 Speed up the CFF font loader. With some large CFF fonts,
619 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000620
Werner Lemberg715e96e2006-10-24 05:28:45 +0000621 * src/cff/cffload.c (cff_get_offset): Removed.
622 (cff_new_index): Inline functionality of `cff_get_offset'.
623 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
624 (cff_charset_done): Call `cff_charset_free_cids'.
625 (cff_charset_load): Call `cff_charset_compute_cids'.
626 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
627
628 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
629 with FT_NEXT_XXX.
630
631
632 Speed up the Postscript hinter, with more than 100% speed increase
633 on my machine.
634
635 * src/pshinter/pshalgo.c (psh_corner_is_flat,
636 psh_corner_orientation): New functions.
637 (psh_glyph_compute_inflections): Merge loops for efficiency.
638 Use `psh_corner_orientation'.
639 (psh_glyph_init): Use `psh_corner_is_flat'.
640 (psh_hint_table_find_strong_point): Renamed to...
641 (psh_hint_table_find_strong_points): This.
642 Rewrite, adding argument to handle all points at once.
643 Update all callers.
644 (PSH_MAX_STRONG_INTERNAL): New macro.
645 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000646
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00006472006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
648
649 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000650 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000651
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00006522006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
653
654 * docs/INSTALL.CROSS: New document file for cross-building.
655
656 * builds/unix/configure.raw: Preliminary cross-building support.
657 Find native C compiler and pass it by CC_BUILD, and
658 find suffix for native executable and pass it by EXEEXT_BUILD.
659 Also suffix for target executable is passed by EXEEXT.
660
Werner Lembergb9e6d692006-10-15 08:58:40 +0000661 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
662 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000663 CC_BUILD and EXEEXT_BUILD.
664
Werner Lembergb9e6d692006-10-15 08:58:40 +0000665 * builds/exports.mk (APINAMES_EXE): Change the extension for
666 apinames from the suffix for target (E) to that for building host
667 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000668
Werner Lemberg82a07e92006-10-12 06:20:44 +00006692006-10-12 Werner Lemberg <wl@gnu.org>
670
671 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
672 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
673 which reference those files.
674
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00006752006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
676
Werner Lembergb9e6d692006-10-15 08:58:40 +0000677 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
678 embedded in freetype2.pc and freetype-config. Use it to record
679 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000680
681 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
682
683 * builds/unix/freetype-config.in: Ditto.
684
Werner Lemberg28e17d92006-10-11 17:27:47 +00006852006-10-11 Werner Lemberg <wl@gnu.org>
686
687 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
688 development.
689
Jens Claudius336d2292006-10-03 08:53:37 +00006902006-10-03 Jens Claudius <jens.claudius@yahoo.com>
691
692 * include/freetype/config/ftstdlib.h: Cast away volatileness from
693 argument to ft_setjmp.
694
695 * include/freetype/internal/ftvalid.h: Add comment that
696 ft_validator_run must not be used.
697
Werner Lemberg2863cfa2006-10-01 17:04:00 +00006982006-10-01 Werner Lemberg <wl@gnu.org>
699
700 * src/base/ftbase.c: Undo change from 2006-09-30.
701
702 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
703
7042006-09-30 David Turner <david@freetype.org>
705
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000706 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
707 s/unpatented_hinting/ignore_unpatented_hinter/.
708 Update all callers.
709
710 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
711 auto-hinting shall be used or not.
712
713 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000714
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007152006-09-30 Werner Lemberg <wl@gnu.org>
716
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000717 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
718 in use).
719
720 * src/base/ftbase.c: Include `ftlcdfil.c'.
721
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007222006-09-29 Werner Lemberg <wl@gnu.org>
723
724 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
725 overlapping segments. Bug reported by Stefan Koch.
726
David Turnerad830712006-09-27 16:20:59 +00007272006-09-28 David Turner <david@freetype.org>
728
Werner Lemberg2c002e12006-09-29 21:31:53 +0000729 Fix a bug in the automatic unpatented hinting support which prevents
730 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000731
Werner Lemberg2c002e12006-09-29 21:31:53 +0000732 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
733 s/force_autohint/unpatented_hinting/. Update all callers.
734
735 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
736
737 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000738
David Turner8a317cf2006-09-27 07:52:48 +00007392006-09-27 David Turner <david@freetype.org>
740
Werner Lemberg2c002e12006-09-29 21:31:53 +0000741 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000742
David Turner8a317cf2006-09-27 07:52:48 +0000743
David Turnere140f142006-10-23 08:56:57 +0000744 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000745 In a default build, the function `FT_Library_SetLcdFilter' returns
746 `FT_Err_Unimplemented_Feature'; you need to #define
747 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
748 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000749
Werner Lemberg2c002e12006-09-29 21:31:53 +0000750 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000751
Werner Lemberg2c002e12006-09-29 21:31:53 +0000752 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
753 typedef.
754 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
755 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000756
Werner Lemberg2c002e12006-09-29 21:31:53 +0000757 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
758 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000759
Werner Lemberg2c002e12006-09-29 21:31:53 +0000760 Handle subpixel rendering.
761 Simplify function.
762 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
763 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
764
765 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
766 pointing to <freetype/ftlcdfil.h>.
767
768 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
769 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
770
771 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000772
Werner Lemberge20df4a2006-09-27 06:29:21 +00007732006-09-26 David Bustin
774
775 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
776 correctly. Reported as Savannah bug #17843.
777
David Turner6f8c6222006-09-26 15:42:44 +00007782006-09-26 David Turner <david@freetype.org>
779
Werner Lemberg110246c2006-09-26 21:55:44 +0000780 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
781 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
782 horizontal and vertical hinting for the purpose of debugging the
783 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000784
Werner Lemberg110246c2006-09-26 21:55:44 +0000785 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
786 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000787
Werner Lemberg110246c2006-09-26 21:55:44 +0000788 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
789
790 * include/freetype/config/ftoption.h, devel/ftoption.h
791 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
792 we want to compile LCD-optimized rendering code la ClearType) or
793 not. The macro *must* be disabled in default builds of the library
794 for patent reasons.
795
796 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
797 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
798 isn't defined at compile time. This only changes the content of the
799 rendered glyph to match the one of normal gray-level rendering,
800 hence clients should not need to be modified.
801
802 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000803
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008042006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
805
806 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
807 LWFN fails and both are available.
808
David Turnerf3050052006-09-11 12:00:32 +00008092006-09-11 David Turner <david@freetype.org>
810
Werner Lembergf9644552006-09-12 13:48:10 +0000811 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
812 report their English names through an Apple Roman
813 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000814
Werner Lembergf9644552006-09-12 13:48:10 +0000815 If the font uses another name entry with language_id == English, it
816 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000817
Werner Lembergf9644552006-09-12 13:48:10 +0000818 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
819 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000820
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008212006-09-05 Werner Lemberg <wl@gnu.org>
822
823 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000824 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000825 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
826 `HAN NOM B.ttf').
827
828 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
829
David Turner772e55d2006-09-05 09:45:15 +00008302006-09-05 David Turner <david@freetype.org>
831
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000832 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000833
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000834 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
835 (TRaster): Remove `count_ex' and `count_ey'.
836 (gray_find_cell): Remove 2nd and 3rd argument.
837 (gray_alloc_cell): Merged with `gray_find_cell'.
838 (gray_record_cell): Simplify.
839 (gray_set_cell): Rewrite.
840 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
841 (gray_render_span): Don't use FT_MEM_SET for small values.
842 (gray_dump_cells) [DEBUG_GRAYS]: New function.
843 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
844 bitmap scanline.
845 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000846
David Turneraa557a92006-09-04 16:42:44 +00008472006-09-04 David Turner <david@freetype.org>
848
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000849 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
850 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000851
Werner Lemberg2d8629b2006-09-03 06:18:45 +00008522006-09-03 Werner Lemberg <wl@gnu.org>
853
854 * devel/ftoption.h: Synchronize with
855 include/freetype/config/ftoption.h.
856
857 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
858 variable declaration.
859 (gray_convert_glyph): Fix compiler warnings.
860
David Turner6d79f212006-09-01 14:09:35 +00008612006-09-01 David Turner <david@freetype.org>
862
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000863 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
864 to recognize a few fonts that require the automatic unpatented
865 loader.
David Turnerbd502952006-09-01 19:05:24 +0000866
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000867 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
868 rasterizer. The speed improvement is between 15% and 25%, depending
869 on the font data.
870
871 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
872 (TCell): Redefine.
873 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
874 (gray_init_cells): Updated.
875 (gray_find_cell, gray_alloc_cell): New functions.
876 (gray_record_cell): Rewritten to use `gray_find_cell' and
877 `gray_alloc_cell'.
878 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
879 QSORT_THRESHOLD):
880 Removed.
881 (gray_shell_sort, gray_quick_sort, gray_check_sort,
882 gray_dump_cells): Removed.
883 (gray_sweep): Rewritten.
884 (gray_convert_glyph): Rewrite code which used one of the sorting
885 functions.
886 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000887
Werner Lembergd898aed2006-08-29 09:50:34 +00008882006-08-29 Dr. Werner Fink <werner@suse.de>
889
890 * configure: Make it possible to handle configure options which
891 have strings containing spaces.
892
8932006-08-27 David Turner <david@freetype.org>
894
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000895 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
896 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
897 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
898
899 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
900 src/truetype/truetype.c, src/truetype/ttdriver.c,
901 src/truetype/ttgload.c, src/truetype/ttgload.h,
902 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
903 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
904 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
905
906 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
907 member `force_autohint'.
908
909 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
910
911 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
912 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000913
Jens Claudiusa787f452006-08-27 11:26:18 +00009142006-08-27 Jens Claudius <jens.claudius@yahoo.com>
915
916 Fix miscellaneous compiler warnings.
917
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000918 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
919 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000920
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000921 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
922 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
923 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000924
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000925 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
926 volatileness of argument to ft_longjmp. Spotted by Werner
927 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000928
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000929 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
930 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000931
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000932 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
933 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000934
Werner Lembergc4c35b72006-08-27 08:03:46 +00009352006-08-27 Werner Lemberg <wl@gnu.org>
936
937 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
938 Reported by Jens.
939
Jens Claudius088e44e2006-08-22 14:24:30 +00009402006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000941
Jens Claudius088e44e2006-08-22 14:24:30 +0000942 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000943 about addresses of volatile objects passed as function arguments as
944 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000945
Werner Lembergc4c35b72006-08-27 08:03:46 +0000946 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
947 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000948
949 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
950 argument `table' a pointer to a volatile object.
951
952 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
953 argument `table' a pointer to a volatile object.
954
Jens Claudius2652bd52006-08-18 17:20:37 +00009552006-08-18 Jens Claudius <jens.claudius@yahoo.com>
956
957 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
958 variable `_sfnt' as volatile since it must keep its value across
959 a call to ft_setjmp.
960 (gxv_validate): Same for local variables `memory' and `valid'.
961 (classic_kern_validate): Same for local variables `memory',
962 `ckern', and `valid'.
963
964 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
965 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
966 `jstf', and 'valid'.
967
968 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
969 local variable `cmap'.
970
David Turner9fbfc6a2006-08-16 09:11:31 +00009712006-08-16 David Turner <david@freetype.org>
972
Werner Lemberg12342992006-08-19 11:18:09 +0000973 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
974 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000975
Werner Lemberg12342992006-08-19 11:18:09 +0000976 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
977 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000978
David Turner33f5f242006-08-16 16:50:55 +0000979
Werner Lemberg12342992006-08-19 11:18:09 +0000980 Improvements to native TrueType hinting. This is a first try,
981 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
982
983 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
984 `extra_points2'.
985
986 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
987 `orus'.
988
989 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
990 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
991 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
992 handle `extra_points2'.
993
994 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
995 Remove compiler warning.
996 (cur_to_arg): Remove macro.
997 (TT_Hint_Glyph): Updated.
998 (TT_Process_Simple_Glyph): Handle `orus'.
999
1000 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1001 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1002 (LOC_Ins_IUP): Renamed to...
1003 (IUP_WorkerRec): This.
1004 Add `orus' member.
1005 (Shift): Renamed to...
1006 (_iup_worker_shift): This.
1007 Updated.
1008 (Interp): Renamed to...
1009 (_iup_worker_interpolate): This.
1010 Updated to handle `orus'.
1011 (Ins_IUP): Updated.
1012
1013 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1014 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001015
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010162006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1017
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001018 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001019 build ftvalid in ft2demos. This has been inadvertedly changed
1020 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001021
10222006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1023
Werner Lemberg12342992006-08-19 11:18:09 +00001024 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1025 Jens:
1026 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001027
Werner Lemberg12342992006-08-19 11:18:09 +00001028 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1029 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001030
1031 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1032
Jens Claudius9950adc2006-08-13 12:14:36 +000010332006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1034
Werner Lemberg12342992006-08-19 11:18:09 +00001035 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1036 T1_TOKEN_TYPE_KEY.
1037 (T1_FieldRec): Add `dict'.
1038 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1039 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1040 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001041
Werner Lemberg12342992006-08-19 11:18:09 +00001042 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1043 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001044
1045 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1046
1047 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001048 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1049 not T1_TOKEN_TYPE_ANY.
1050 (ps_parser_load_field): Make sure a token that should be a string or
1051 name is really a string or name.
1052 Avoid memory leak if a keyword has been already encountered and its
1053 value is overwritten.
1054 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1055 T1_FIELD_XXX.
1056 (parse_dict): Ignore keywords that occur in the wrong dictionary
1057 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001058
Werner Lemberg12342992006-08-19 11:18:09 +00001059 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1060 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001061
Werner Lemberg12342992006-08-19 11:18:09 +00001062 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1063 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001064
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000010652006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1066
1067 Move creation of field `buildchar' of T1_DecoderRec out of
1068 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1069 of it.
1070
1071 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1072 and `T1_Compute_Max_Advance'.
1073
1074 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1075 Remove field `face', add `len_buildchar'.
1076
1077 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1078 field `buildchar'.
1079
1080 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1081 finisher for T1_Decoder.
1082 (cid_slot_load_glyph): Do not ignore failure when initializing the
1083 T1_Decoder.
1084
1085 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1086 Updated.
1087 (t1_decoder_init): Remove initialization of fields `buildchar' and
1088 `len_buildchar'.
1089 (t1_decoder_done): Remove deallocation of field `buildchar'.
1090
1091 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1092 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1093 T1_Decoder.
1094 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1095 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1096 case of error.
1097
1098 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1099 `buildchar' of T1_FaceRec.
1100
1101 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1102 `buildchar' of T1_FaceRec.
1103
Werner Lemberg1a380e02006-07-14 18:28:08 +000011042006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1105
1106 * freetype2/include/freetype/internal/psaux.h: New macros
1107 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1108 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1109 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1110 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1111 (T1_DecoderRec): New fields `buildchar' and `face'.
1112 (IS_PS_TOKEN): New macro.
1113
1114 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1115 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1116
1117 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1118 `default_design_vector' and `num_default_design_vector'.
1119
1120 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1121 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1122 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1123
1124 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1125 `token' argument to be NULL if we want only to count the number of
1126 tokens.
1127 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1128 want to skip the array.
1129 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1130 want to skip the array.
1131
1132 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1133 support for (partially commented out) othersubrs 19-25, 27, and 28.
1134 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1135 (t1_decoder_done): Release new field `buildchar'.
1136
1137 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1138 functions.
1139 (t1_keywords): Register them.
1140 (t1_allocate_blend): Updated.
1141 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1142 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1143 (parse_dict): Remove `keyword_flags' argument.
1144 Use new macro IS_PS_TOKEN.
1145 Changed function so that later PostScript definitions override
1146 earlier ones.
1147 (t1_init_loader): Initialize new field `keywords_encountered'.
1148 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1149 `len_buildchar'.
1150 Remove `keywords_flags'.
1151
1152 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1153 `keywords_encountered'.
1154 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1155
1156 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1157 New entries for parsing /NDV, /CDV, and /DesignVector.
1158
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000011592006-07-07 Werner Lemberg <wl@gnu.org>
1160
1161 Add many checks to protect against malformed PCF files.
1162
1163 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1164 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1165
1166 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1167 data and check that tables don't overlap (using a simple
1168 bubblesort).
1169 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1170 New macros which give the size of data structures in the data
1171 stream.
1172 (pcf_get_properties): Use rough estimates to get array size limits.
1173 Assign `face->nprops' and `face->properties' earlier so that a call
1174 to PCF_Face_Done can do the clean-up in case of error.
1175 Protect against invalid string offsets.
1176 (pcf_get_metrics): Clean up code.
1177 Adjust tracing message levels.
1178 Use rough estimate to get array size limit.
1179 (pcf_get_bitmaps): Clean up code.
1180 Adjust tracing message levels.
1181 Use rough estimates to get offset limits.
1182 (pcf_get_encodings): Adjust tracing message level.
1183 (pcf_get_accel): Clean up code.
1184
Werner Lemberg8eb05252006-06-27 06:20:01 +000011852006-06-26 Werner Lemberg <wl@gnu.org>
1186
1187 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1188 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1189
Werner Lemberg24703f82006-06-26 19:12:51 +000011902006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1191
1192 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1193 (t1_decoder_parse_charstrings): Operator with
1194 opcode 15 pops its two arguments.
1195 Handle the case where the pops of an othersubr may be part of a
1196 subroutine.
1197 Handle unknown othersubrs gracefully: count their operands and let
1198 the following pop operators push the operands as the results onto
1199 the Type1 stack.
1200 Improve handling of setcurrentpoint opcode.
1201
Werner Lembergc011f4c2006-06-26 09:40:00 +000012022006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1203
1204 The Type 1 parser now skips over top-level procedures as required
1205 for a `Simplified Parser'. This makes the parser more robust as it
1206 doesn't poke around in PostScript code. Additionally, it makes the
1207 FontDirectory hackery in src/type1/t1load.c unnecessary.
1208
1209 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1210 (skip_literal_string): Add FT_Error as return value.
1211 Handle escapes better.
1212 (skip_string): Add FT_Error as return value.
1213 Don't set `parser->error' but return error code directly.
1214 (skip_procedure): New function.
1215 (ps_parser_skip_PS_token): Handle procedures.
1216 Update code.
1217 (ps_parser_to_token): Update code.
1218 (ps_parser_load_field_table): Handle bbox entries also.
1219
1220 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1221 Add commented-out code for synthetic fonts.
1222
Werner Lemberga2da05c2006-06-25 06:27:27 +000012232006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1224
1225 Fix two hinting bugs as reported in
1226 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1227
1228 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1229 `first_point' member.
1230
1231 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1232 `first_point'.
1233 (TT_Process_Composite_Glyph): Always untouch points.
1234
1235 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1236 `first_point' and `last_point' in case of composite glyphs.
1237 (Ins_IUP): Fix computation of `end_point'.
1238
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012392006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1240
Werner Lembergef3d2c22006-06-25 06:07:14 +00001241 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1242 Mac. The original patch was written by David Sachitano and Lawrence
1243 Coopet, and modified by Sean McBride for MPW compatibility. Only
1244 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001245
Werner Lembergef3d2c22006-06-25 06:07:14 +00001246 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1247 Mac OS X platforms.
1248 (OS_INLINE): Undefine before definition.
1249 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1250 FontAssociation table in FOND resource.
1251 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1252 and fontSize at each entry of FontAssociation table in FOND
1253 resource.
1254 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1255 ffStylOff of FamilyRecord header of FOND resource, the header,
1256 fontSize, fontID at each entry of FontAssociation table, and
1257 StyleMapping table.
1258 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001259
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000012602006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1261
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001262 Public API of TrueTypeGX, OpenType, and classic kern table validator
1263 should return `FT_Err_Unimplemented_Feature' if validation service
1264 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001265 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001266 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1267
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001268 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1269 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1270 unavailable.
1271 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1272 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001273
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001274 * src/base/ftotval.c (FT_OpenType_Validate): Return
1275 FT_Err_Unimplemented_Feature if OpenType validation service is
1276 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001277
Werner Lembergb10e45a2006-06-08 07:32:56 +000012782006-06-08 Werner Lemberg <wl@gnu.org>
1279
1280 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1281 errors.
1282
David Turner5f1f7502006-06-07 05:11:50 +000012832006-06-07 David Turner <david@freetype.org>
1284
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001285 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1286 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1287 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001288
David Turner457b4a82006-06-06 08:14:14 +000012892006-06-06 David Turner <david@freetype.org>
1290
Werner Lemberg4836f952006-06-06 12:54:08 +00001291 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001292
Werner Lemberg4836f952006-06-06 12:54:08 +00001293 We change `ps_unicodes_init' so that it also takes a
1294 `free_glyph_name' callback to release the glyph names returned by
1295 `get_glyph_name'
1296
1297 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1298 Renamed to ...
1299 (PS_GetGlyphNameFunc): This.
1300 (PS_FreeGlyphNameFunc): New typedef.
1301 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1302
1303 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1304 argument.
1305 (cff_sid_free_glyph_name): New function.
1306 (cff_cmap_unicode_init): Updated.
1307
1308 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1309
1310 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1311 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001312
1313
David Turner09717352006-06-04 14:33:08 +000013142006-06-04 David Turner <david@freetype.org>
1315
Werner Lembergd724f202006-06-04 15:17:41 +00001316 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1317 `item_size == 0' as well -- though this sounds weird, it can
1318 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001319
Werner Lembergd724f202006-06-04 15:17:41 +00001320 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1321 of `face->num_glyphs' which missed the last glyph, due to
1322 the offset-by-1 computation, since the PFR format doesn't
1323 guarantee that glyph index 0 corresponds to the `missing
1324 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001325
Werner Lemberg33779662006-05-26 06:30:05 +000013262006-05-25 Werner Lemberg <wl@gnu.org>
1327
1328 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1329 `-no-undefined'. Reported by Christian Biesinger.
1330
Werner Lemberg24773d62006-05-20 08:53:13 +000013312006-05-19 Brian Weed <bw@imaginengine.com>
1332
1333 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1334 have debug information, and debug libraries use `C7 compatible'
1335 debug info.
1336
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013372006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1338
Werner Lemberga6523a62006-05-20 08:47:01 +00001339 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001340 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001341
Werner Lemberga6523a62006-05-20 08:47:01 +00001342 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1343 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001344
1345 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001346 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001347
13482006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1349
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001350 * build/unix/configure.raw: Add a fallback to disable Carbon
1351 dependency, if configured with no options on Mac OS X.
1352
13532006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1354
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001355 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001356 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001357 the second part of Savannah bug #16590.
1358
Werner Lemberg545c4e52006-05-17 22:55:04 +000013592006-05-18 Werner Lemberg <wl@gnu.org>
1360
1361 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1362 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1363
David Turnerdc3ff312006-05-17 12:59:35 +000013642006-05-17 David Turner <david@freetype.org>
1365
Werner Lemberg545c4e52006-05-17 22:55:04 +00001366 This is a major patch used to drastically improve the performance of
1367 loading glyphs. This both speeds up loading the glyph vectors
1368 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001369
Werner Lemberg545c4e52006-05-17 22:55:04 +00001370 We now use inline assembler code with GCC to implement `FT_MulFix',
1371 which is probably the most important function related to the
1372 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001373
Werner Lemberg545c4e52006-05-17 22:55:04 +00001374 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001375
1376
Werner Lemberg545c4e52006-05-17 22:55:04 +00001377 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1378 `cursor' and `limit'.
1379
1380 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1381 New functions.
1382 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1383 [TEST]: Remove.
1384
1385 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1386 code.
1387
1388 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1389 `FT_ZERO'
1390 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1391 (af_glyph_hints_reload: Rewrite recognition of weak points.
1392
1393 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1394 constant values out of the loops.
1395
1396 * src/autofit/aftypes.h: Updated.
1397
1398 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1399
1400 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1401 product to get orientation.
1402
1403 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1404 (FT_Stream_OpenGzip): Use it to handle small files directly in
1405 memory.
1406
1407 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1408 Improve performance.
1409
1410 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1411 `limit'.
1412
1413 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1414 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1415 exceedingly large values of number of contours. Speed up by
1416 reducing the number of loops.
1417
1418 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1419
1420
1421 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1422 used to detect rogue clients from 4 to 16. This is to prevent some
1423 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1424 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001425
Werner Lembergde2d90a2006-05-17 08:54:30 +000014262007-05-17 Werner Lemberg <wl@gnu.org>
1427
1428 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001429 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001430
14312006-05-16 Werner Lemberg <wl@gnu.org>
1432
1433 * docs/PROBLEMS: Updated icl issues.
1434
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001435----------------------------------------------------------------------------
1436
Werner Lemberg42b63b22007-01-21 21:01:33 +00001437Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001438David Turner, Robert Wilhelm, and Werner Lemberg.
1439
1440This file is part of the FreeType project, and may only be used, modified,
1441and distributed under the terms of the FreeType project license,
1442LICENSE.TXT. By continuing to use, modify, or distribute this file you
1443indicate that you have read the license and understand and accept it
1444fully.
1445
1446
1447Local Variables:
1448version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001449coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001450End: