blob: 505625149f8eb6f6d7432271cc8e37801966ef1c [file] [log] [blame]
Werner Lemberg53935932007-01-31 08:53:02 +000012007-01-31 Werner Lemberg <wl@gnu.org>
2
3
4 * Version 2.3.1 released.
5 =========================
6
7
8 Tag sources with `VER-2-3-1-FINAL'.
9
10 * builds/win32/visualc/freetype.dsp,
11 builds/win32/visualc/freetype.vcproj: s/230/231/.
12 * builds/win32/visualc/index.html: s/221/231/.
13
14 * vms_make.com: Add `ftgasp'.
15
David Turnera7ee6082007-01-30 10:33:53 +0000162007-01-30 David Turner <david@freetype.org>
17
Werner Lemberg53935932007-01-31 08:53:02 +000018 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +000019
Werner Lemberg53935932007-01-31 08:53:02 +000020 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +000021
Werner Lemberg53935932007-01-31 08:53:02 +000022 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
23 s/2.3.0/2.3.1/.
24
25 * builds/unix/configure.raw (version_info): Set to 9:12:3.
26
27
28 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
29 (af_loader_load_g): Disable the warper (i.e., the light hinting
30 improvements) to make a 2.3.1 bugfix release before introducing a
31 new feature. This should give us more time to tune and improve the
32 warper for the next release.
33
34 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +000035
David Turnerd91eebd2007-01-26 15:05:41 +0000362007-01-25 David Turner <david@freetype.org>
37
Werner Lembergbf241762007-01-26 16:08:49 +000038 For light auto-hinting, improve glyph advance widths and resurrect
39 normal/full hinting to its normal quality.
40
41 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
42 and `xmax_delta'.
43 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
44 and `xmax_delta'.
45
46 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
47 preprocessor conditional with if-clause, handling both light and
48 normal mode.
49
50 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
51 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000052
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000532007-01-25 Werner Lemberg <wl@gnu.org>
54
55 * docs/release: Updated -- Savannah uses a new uploading scheme.
56
David Turnera42567b2007-01-25 12:23:37 +0000572007-01-25 David Turner <david@freetype.org>
58
Werner Lembergd7855662007-01-25 13:53:56 +000059 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +000060
Werner Lembergd7855662007-01-25 13:53:56 +000061 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
62 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
63 functions.
David Turnera42567b2007-01-25 12:23:37 +000064
Werner Lembergd7855662007-01-25 13:53:56 +000065 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000066
Werner Lembergb1be9e82007-01-25 11:50:00 +0000672007-01-25 Werner Lemberg <wl@gnu.org>
68
69 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000070 correctly in a sanity check. Since this function is only used to
71 load local and global functions, any charstring that called the last
72 local/global function would fail otherwise. This fixes Savannah bug
73 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000074
75 * docs/CHANGES: Document it.
76
David Turnerb6de8d12007-01-23 15:51:50 +0000772007-01-23 David Turner <david@freetype.org>
78
Werner Lembergb1be9e82007-01-25 11:50:00 +000079 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
80 prevented compilation when disabling both the unpatented and the
81 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000082
Werner Lembergb1be9e82007-01-25 11:50:00 +000083
84 Fix and enable the warper to improve `light' hinting mode. This is
85 not necessarily a final version, but it seems to work well.
86
87 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
88 Disable code.
89 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
90 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
91
92 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
93 (af_warper_compute_line_best): Fix array size of `scores'.
94 (af_warper_compute): Better handling of border cases.
95 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
96 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +000097
Werner Lemberg011d1112007-01-21 09:36:00 +0000982007-01-21 Werner Lemberg <wl@gnu.org>
99
Werner Lemberg42b63b22007-01-21 21:01:33 +0000100 * ChangeLog: Split off older entries into...
101 * ChangeLog.22: This new file.
102
1032007-01-21 Werner Lemberg <wl@gnu.org>
104
Werner Lemberg555258f2007-01-21 09:46:37 +0000105 * docs/CHANGES: Document SHZ fix.
106
1072007-01-21 George Williams <gww@silcom.com>
108
109 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
110 points.
111
1122007-01-21 Werner Lemberg <wl@gnu.org>
113
Werner Lemberg011d1112007-01-21 09:36:00 +0000114 * src/sfnt/ttmtx.c (tt_face_get_metrics)
115 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
116
Werner Lemberg87a5a432007-01-17 12:44:39 +00001172007-01-17 Werner Lemberg <wl@gnu.org>
118
Werner Lembergb8003292007-01-17 12:56:25 +0000119
120 * Version 2.3.0 released.
121 =========================
122
123
124 Tag sources with `VER-2-3-0-FINAL'.
125
1262007-01-17 Werner Lemberg <wl@gnu.org>
127
Werner Lemberg87a5a432007-01-17 12:44:39 +0000128 * docs/release: Updated.
129
David Turner22122722007-01-16 20:06:44 +00001302007-01-16 David Turner <david@freetype.org>
131
Werner Lemberg87a5a432007-01-17 12:44:39 +0000132 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
133 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
134 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
135 warnings.
David Turner22122722007-01-16 20:06:44 +0000136
Werner Lemberg267e1d72007-01-15 07:48:09 +00001372007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
138
139 * builds/amiga/makefile, builds/amiga/makefile.os4,
140 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
141
142 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
143
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001442007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
145
146 Fix various compiler warnings.
147
148 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
149 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
150 s/index/strike_index/.
151 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
152
153 * src/gxvalid/gxvmorx5.c
154 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
155
156 * src/truetype/ttinterp.c (Compute_Point_Displacement),
157 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
158 uninitialized variables.
159
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001602007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
161
162 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
163
Werner Lemberg281c1482007-01-13 22:50:51 +00001642007-01-13 Werner Lemberg <wl@gnu.org>
165
166 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
167 versions up to 0x3FF without complaining.
168
Werner Lembergac250b22007-01-13 14:01:36 +00001692007-01-13 Derek Clegg <dclegg@apple.com>
170
171 Add FT_Get_PS_Font_Info interface to CFF driver.
172
173 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
174 (CFF_FontRec): Add `font_info' field.
175
176 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
177 (cff_font_done): Free font->font_info if necessary.
178
179 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
180 (cff_service_ps_info): Register cff_ps_get_font_info.
181
Werner Lemberg23df31a2007-01-13 08:45:00 +00001822007-01-13 Werner Lemberg <wl@gnu.org>
183
184 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
185 with C++ compiler.
186
187 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
188 af_glyph_hints_dump_edges): Ditto.
189
190 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
191 `modules.cfg').
192
193 * src/sfnt/ttsbit0.h: Remove.
194
195 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
196
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001972007-01-12 David Turner <david@freetype.org>
198
199 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
200 bug in the bitmap emboldener if the pitch of the source bitmap is
201 much larger than its width.
202
203 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
204 compilation warning.
205
Werner Lemberg6d96d312007-01-12 10:30:19 +00002062007-01-12 Werner Lemberg <wl@gnu.org>
207
208 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
209 `automake' CVS module from sources.redhat.com.
210
Werner Lemberg17432b52007-01-12 09:28:44 +00002112007-01-11 Werner Lemberg <wl@gnu.org>
212
213 * src/type1/t1load.c (is_space): Removed.
214 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
215 (parse_charstrings): Use IS_PS_TOKEN.
216
217
218 * autogen.sh: Avoid bash specific syntax.
219
David Turner038ace22007-01-11 15:00:59 +00002202007-01-11 David Turner <david@freetype.org>
221
Werner Lemberg17432b52007-01-12 09:28:44 +0000222 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000223
Werner Lemberg17432b52007-01-12 09:28:44 +0000224 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000225
Werner Lemberg17432b52007-01-12 09:28:44 +0000226 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
227 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000228 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000229
Werner Lemberg17432b52007-01-12 09:28:44 +0000230 * autogen.sh: Small fix to get it working on Mac OS X properly:
231 The issue is that GNU libtool is called `glibtool' on this platform,
232 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000233
David Turner2628ea92007-01-10 13:15:56 +00002342007-01-10 David Turner <david@freetype.org>
235
Werner Lemberg17432b52007-01-12 09:28:44 +0000236 * all-sources: Tag all sources with VER-2-3-0-RC1 and
237 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000238
Werner Lemberg17432b52007-01-12 09:28:44 +0000239 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
240 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
241 version number to 2.3.0.
242
243 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
244 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000245
246 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000247 include/freetype/ftlcdfil.h: Update reference documentation with
248 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000249
Werner Lemberg17432b52007-01-12 09:28:44 +0000250 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
251 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000252
Werner Lembergbf02d392007-01-10 07:07:37 +00002532007-01-10 Derek Clegg <dclegg@apple.com>
254
255 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
256 values.
257
David Turnerf48b60e2007-01-08 15:15:32 +00002582007-01-08 David Turner <david@freetype.org>
259
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000260 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000261
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000262 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
263 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000264 corresponding to a given character pixel size.
265
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000266 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
267 `gasp' table, in order to avoid potential problems with later
268 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000269
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000270 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
271 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000272
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000273 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
274 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
275 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
276 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000277
Werner Lemberge6b6f372007-01-07 00:06:47 +00002782007-01-07 Werner Lemberg <wl@gnu.org>
279
Werner Lembergb8004d22007-01-07 09:13:38 +0000280 * src/cid/cidparse.c (cid_parser_new): Improve error message for
281 Type 11 fonts.
282 Scan for `/sfnts' token.
283
2842007-01-07 Werner Lemberg <wl@gnu.org>
285
286 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000287
Werner Lembergbe5f7972007-01-06 07:51:48 +00002882007-01-06 Werner Lemberg <wl@gnu.org>
289
290 * src/cff/cffload.c (cff_index_init): Remove unused variable.
291 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
292
David Turnera8cf42b2007-01-04 16:46:46 +00002932007-01-04 David Turner <david@freetype.org>
294
Werner Lembergf6294392007-01-06 07:47:45 +0000295 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
296 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000297
Werner Lembergf6294392007-01-06 07:47:45 +0000298
299 Do not allocate interpreter-specific tables in memory if we are not
300 going to load glyphs with the bytecode interpreter anyway.
301
302 * src/truetype/ttgload.c (tt_loader_init): Load execution context
303 only if glyph is hinted.
304 Updated.
305 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
306 and `cvs_ready'.
307 Add `tt_size_ready_bytecode' declaration.
308 * src/truetype/ttobjs.c (tt_size_done_bytecode,
309 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
310 (tt_size_init): Move most code into `tt_size_init_bytecode'.
311 (tt_size_done): Move most code into `tt_size_done_bytecode'.
312 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000313
David Turner91a34022007-01-05 14:47:08 +0000314
Werner Lembergf6294392007-01-06 07:47:45 +0000315 Don't extract the metrics table from the SFNT font file. Instead,
316 reparse it on each glyph load. The runtime difference is not
317 noticeable, and it can save a lot of heap memory when memory-mapped
318 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000319
Werner Lembergf6294392007-01-06 07:47:45 +0000320 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
321 `horz_metrics_offset' and `vert_metrics_ofset'.
322 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
323 Updated.
324
325
326 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
327
328
329 Do not load the CFF index offsets into memory, since this wastes a
330 *lot* of heap memory with large Asian CFF fonts. There is no
331 significant performance loss.
332
333 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
334 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
335 `data_size'.
336 (CFF_CharsetRec): Add field `num_glyphs'.
337
338 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
339 cff_charset_cid_to_gindex): New functions.
340 (cff_new_index): Renamed to...
341 (cff_index_init): This. Update all callers.
342 Updated -- some code has been moved to `cff_index_load_offsets'.
343 (cff_done_index): Renamed to...
344 (cff_index_done): This. Update all callers.
345 (cff_index_get_pointers, cff_index_access_element): Updated to use
346 stream offsets.
347 (cff_charset_compute_cids): Set `num_glyphs' field.
348 (cff_encoding_load): Updated.
349
350 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000351
3522007-01-04 David Turner <david@freetype.org>
353
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000354 * docs/INSTALL.UNIX: Simplify some parts, add reference to
355 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000356
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000357 * README.CVS: Add common problem description and solution
358 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000359
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000360 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000361
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000362 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000363
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000364 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000365
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000366 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
367 (TWorker): This.
368 Remove `count_table' and `memory'.
369 Make `grays' a pointer.
370 (TRaster): New structure.
371 (count_table): New static array.
372 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
373 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
374 ft_black_set_mode, ft_black_render): Updated.
375 (ft_black_init): Don't initialize `count_table'.
376 (ft_black_reset): Use the render pool. This saves about 6KB of
377 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000378
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000379 * src/smooth/ftgrays.c (TRaster): Replaced with...
380 (TWorker): This.
381 Remove `memory'.
382 (TRaster): New structure.
383
384 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
385 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
386 gray_render_span, gray_raster_render): Updated.
387 (gray_raster_reset): Use the render pool. This saves about 6KB of
388 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000389
David Turner8a6c44e2007-01-04 17:03:11 +0000390 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
391 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000392 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
393 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
394 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000395
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000396 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
397 Remove a typo that results in no hinting and a memory leak with some
398 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000399
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000400 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000401 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000402 CFF_Faces in it. We need to close all faces before destroying the
403 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000404
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00004052007-01-02 Werner Lemberg <wl@gnu.org>
406
407 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
408 Remove compiler warning.
409
David Turner9207e002007-01-02 16:58:13 +00004102007-01-02 David Turner <david@freetype.org>
411
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000412 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000413
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00004142006-12-31 Masatake YAMATO <jet@gyve.org>
415
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000416 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
417 function.
418 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000419 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000420 `gxv_kern_subtable_fmt0_pairs_validate'.
421
David Turner115b4422006-12-22 11:37:05 +00004222006-12-22 David Turner <david@freetype.org>
423
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000424 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
425 warnings.
David Turner115b4422006-12-22 11:37:05 +0000426
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000427 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
428 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000429
Werner Lemberg4755bf72006-12-16 08:58:44 +00004302006-12-16 Anders Kaseorg <anders@kaseorg.com>
431
432 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
433 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
434
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004352006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
436
Werner Lemberg9b774e22007-01-16 06:11:27 +0000437 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000438 sync with the modification by Jens Claudius on 2006-08-22; cf.
439 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 +0000440
4412006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
442
443 * src/base/ftmac.c: Specialized for Mac OS X only.
444 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
445 * builds/unix/configure.raw: Ditto. When explicit switches for
446 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
447 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
448
4492006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
450
451 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
452 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
453 instead of src/base/ftmac.c
454 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
455 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
456 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
457 that cannot be built at present.
458
4592006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
460
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000461 * src/base/ftobjs.c: Improvement of resource fork handler for
462 POSIX, cf.
463 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000464 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
465 format or .dfont, to simulate the face index number counted by ftmac.c.
466 (IsMacResource): Return the number of scalable faces correctly.
467
Werner Lembergec5b4502006-12-10 07:51:38 +00004682006-12-10 Werner Lemberg <wl@gnu.org>
469
470 * builds/toplevel.mk (version): Protect against `distclean' target.
471
Werner Lembergb26b3142006-12-09 20:01:43 +00004722006-12-09 Werner Lemberg <wl@gnu.org>
473
474 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
475 or `type'.
476
477 * builds/freetype.mk (version): Extracted from freetype.h, using
478 GNU make's built-in string functions.
479 (refdoc): Use $(version) instead of static version number.
480
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004812006-12-08 Werner Lemberg <wl@gnu.org>
482
483 * builds/toplevel.mk (dist): Extract version number from freetype.h.
484
Werner Lemberg15c29502006-12-09 07:29:54 +00004852006-12-08 Vladimir Volovich <vvv@vsu.ru>
486
487 * src/tools/apinames (State): Remove final comma in structure -- xlc
488 v5 under AIX 4.3 doesn't like this.
489
David Turnerdbf3b432006-12-07 21:18:09 +00004902006-12-07 David Turner <david@freetype.org>
491
Werner Lemberg256a3512006-12-08 06:49:33 +0000492 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
493 to the spacing of auto-fitted glyphs. This only impacts rare
494 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000495
Werner Lemberg11171312006-12-03 09:43:40 +00004962006-12-03 Werner Lemberg <wl@gnu.org>
497
498 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
499
Werner Lemberg960ba592006-12-01 08:20:47 +00005002006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000501
Werner Lemberg960ba592006-12-01 08:20:47 +0000502 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
503 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
504 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000505
David Turner80658e52006-11-28 08:09:20 +0000506
Werner Lemberg960ba592006-12-01 08:20:47 +0000507 * include/freetype/ftxf86.h: Fix and extend comment so that it
508 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000509
Werner Lemberg960ba592006-12-01 08:20:47 +0000510 * include/freetype/ftchapters.h: Add `font_format' section.
511
512
513 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
514 to TOC in index page.
515
5162006-11-28 David Turner <david@freetype.org>
517
518 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
519 trying to render into a zero-width/height bitmap, not an error code.
520
521 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
522
523 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
524 ones instead.
525
526 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
527 variable.
David Turner80658e52006-11-28 08:09:20 +0000528
Werner Lemberg8636c292006-11-26 22:28:13 +00005292006-11-26 Pierre Hanser <hanser@club-internet.fr>
530
531 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
532
Werner Lemberg960ba592006-12-01 08:20:47 +00005332006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000534
Werner Lemberg960ba592006-12-01 08:20:47 +0000535 * src/autofit/afhints.c (af_glyph_hints_dump_points,
536 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
537 Add stubs to link the `ftgrid' test program when debugging is
538 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000539
Werner Lemberg960ba592006-12-01 08:20:47 +00005402006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000541
542 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000543 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
544
545 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
546 Emit more sensible information.
547
548 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
549
550 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
551 rounding of blue values.
552 (af_latin_hints_compute_segments): Hint segment heights.
553 (af_latin_hints_link_segments): Reduce `len_score' value.
554 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
555 value and use `height' member for comparisons.
556 (af_latin_hint_edges): Extend logging message.
557 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000558
Werner Lemberg91959bf2006-11-22 10:36:55 +00005592006-11-22 Werner Lemberg <wl@gnu.org>
560
561 Fix Savannah bug #15553.
562
563 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
564 program after a change from mono to grayscaling (and vice versa).
565 Use correct constant for comparison to get `exec->grayscale'.
566
Werner Lemberg913a3652006-11-19 09:19:17 +00005672006-11-18 Werner Lemberg <wl@gnu.org>
568
569 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000570 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000571 This patch fixes Savannah bug #18301.
572
573 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
574 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
575 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
576 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
577 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
578 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
579 (FNT_Load_Glyph): Check validity of `glyph_index'.
580
David Turner7bab6ae2006-11-13 11:25:06 +00005812006-11-13 David Turner <david@freetype.org>
582
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000583 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
584 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000585
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000586 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
587 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
588 when building the library to change the default LCD filter to be
589 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000590
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000591 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000592
David Turner8765c712006-11-10 16:49:42 +00005932006-11-10 David Turner <david@freetype.org>
594
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000595 * src/smooth/ftsmooth.c: API change for the LCD
596 filter. The FT_LcdFilter value is an enumeration describing which
597 filter to apply, with new values FT_LCD_FILTER_LIGHT and
598 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
599 algorithm which produces strong color fringes for everything
600 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000601
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000602 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
603 second parameter to an enum type.
604
605 * src/base/ftlcdfil.c (USE_LEGACY): Define.
606 (_ft_lcd_filter): Rename to...
607 (_ft_lcd_filter_fir): This.
608 Update parameters.
609 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
610 (FT_Library_Set_LcdFilter): Update parameters.
611 Handle new filter modes.
612
613 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
614 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
615 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
616 callback and update other fields.
617
618 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
619 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
620 Other minor improvements.
621
622 * src/autofit/aflatin.c: Various tiny improvements that drastically
623 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
624 (af_latin_hints_compute_edges): Fix typo.
625 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000626
David Turner4e9cc3c2006-11-09 16:31:52 +00006272006-11-09 David Turner <david@freetype.org>
628
Werner Lemberg49c77a82006-11-09 21:51:57 +0000629 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
630 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000631
Werner Lemberg5e430892006-11-07 09:35:03 +00006322006-11-07 Zhe Su <james.su@gmail.com>
633
634 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
635 also.
636
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006372006-11-03 Werner Lemberg <wl@gnu.org>
638
639 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
640
David Turner40604742006-11-02 16:37:35 +00006412006-11-02 David Turner <david@freetype.org>
642
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000643 Add a few tweaks to better handle serif fonts.
644 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000645
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000646 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
647 segments that are less than 1.5 pixels high. This gets rid of
648 *many* corner cases with serifs.
649 (af_latin_align_linked_edge): Add logging message.
650 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
651 Add logging messages.
652 Handle AF_EDGE_FLAG flag specially.
653
654 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
655 _af_debug_disable_blue_hints, and _af_debug_hints variables.
656
657 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
658 Update external declarations.
659 (af_corner_orientation, af_corner_is_flat): Replaced by...
660
661 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
662 ft_corner_is_flat): These declarations.
663
664 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
665 Comment out. Replaced by...
666
667 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
668 These functions. Update all callers.
669 (FT_Add64) [!FT_LONG64]: Simplify.
670
671 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
672 (af_direction_compute): Add a missing FT_ABS call. This bug caused
673 production of garbage by missing lots of segments.
674
675 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
676
677 * src/autofit/afloader.c (af_loader_init, af_loader_done)
678 [AF_DEBUG]: Set _af_debug_hints.
679
680
681 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
682 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
683 and ft_corner_orientation.
684
685
686 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000687
Werner Lemberge88c5262006-10-24 05:46:26 +00006882006-10-24 Werner Lemberg <wl@gnu.org>
689
690 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
691
692 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
693 as argument.
694
David Turnera1861392006-10-23 16:00:59 +00006952006-10-23 Zhe Su <zsu@novell.com>
696
Werner Lemberg715e96e2006-10-24 05:28:45 +0000697 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
698 better deal with broken Asian fonts with strange glyphs, having
699 self-intersections and other peculiarities. The used algorithm is
700 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000701
David Turnere140f142006-10-23 08:56:57 +00007022006-10-23 David Turner <david@freetype.org>
703
Werner Lemberg715e96e2006-10-24 05:28:45 +0000704 Speed up the CFF font loader. With some large CFF fonts,
705 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000706
Werner Lemberg715e96e2006-10-24 05:28:45 +0000707 * src/cff/cffload.c (cff_get_offset): Removed.
708 (cff_new_index): Inline functionality of `cff_get_offset'.
709 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
710 (cff_charset_done): Call `cff_charset_free_cids'.
711 (cff_charset_load): Call `cff_charset_compute_cids'.
712 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
713
714 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
715 with FT_NEXT_XXX.
716
717
718 Speed up the Postscript hinter, with more than 100% speed increase
719 on my machine.
720
721 * src/pshinter/pshalgo.c (psh_corner_is_flat,
722 psh_corner_orientation): New functions.
723 (psh_glyph_compute_inflections): Merge loops for efficiency.
724 Use `psh_corner_orientation'.
725 (psh_glyph_init): Use `psh_corner_is_flat'.
726 (psh_hint_table_find_strong_point): Renamed to...
727 (psh_hint_table_find_strong_points): This.
728 Rewrite, adding argument to handle all points at once.
729 Update all callers.
730 (PSH_MAX_STRONG_INTERNAL): New macro.
731 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000732
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00007332006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
734
735 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000736 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000737
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007382006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
739
740 * docs/INSTALL.CROSS: New document file for cross-building.
741
742 * builds/unix/configure.raw: Preliminary cross-building support.
743 Find native C compiler and pass it by CC_BUILD, and
744 find suffix for native executable and pass it by EXEEXT_BUILD.
745 Also suffix for target executable is passed by EXEEXT.
746
Werner Lembergb9e6d692006-10-15 08:58:40 +0000747 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
748 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000749 CC_BUILD and EXEEXT_BUILD.
750
Werner Lembergb9e6d692006-10-15 08:58:40 +0000751 * builds/exports.mk (APINAMES_EXE): Change the extension for
752 apinames from the suffix for target (E) to that for building host
753 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000754
Werner Lemberg82a07e92006-10-12 06:20:44 +00007552006-10-12 Werner Lemberg <wl@gnu.org>
756
757 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
758 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
759 which reference those files.
760
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007612006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
762
Werner Lembergb9e6d692006-10-15 08:58:40 +0000763 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
764 embedded in freetype2.pc and freetype-config. Use it to record
765 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000766
767 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
768
769 * builds/unix/freetype-config.in: Ditto.
770
Werner Lemberg28e17d92006-10-11 17:27:47 +00007712006-10-11 Werner Lemberg <wl@gnu.org>
772
773 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
774 development.
775
Jens Claudius336d2292006-10-03 08:53:37 +00007762006-10-03 Jens Claudius <jens.claudius@yahoo.com>
777
778 * include/freetype/config/ftstdlib.h: Cast away volatileness from
779 argument to ft_setjmp.
780
781 * include/freetype/internal/ftvalid.h: Add comment that
782 ft_validator_run must not be used.
783
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007842006-10-01 Werner Lemberg <wl@gnu.org>
785
786 * src/base/ftbase.c: Undo change from 2006-09-30.
787
788 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
789
7902006-09-30 David Turner <david@freetype.org>
791
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000792 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
793 s/unpatented_hinting/ignore_unpatented_hinter/.
794 Update all callers.
795
796 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
797 auto-hinting shall be used or not.
798
799 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000800
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008012006-09-30 Werner Lemberg <wl@gnu.org>
802
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000803 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
804 in use).
805
806 * src/base/ftbase.c: Include `ftlcdfil.c'.
807
Werner Lemberg9b15ea32006-09-29 18:22:11 +00008082006-09-29 Werner Lemberg <wl@gnu.org>
809
810 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
811 overlapping segments. Bug reported by Stefan Koch.
812
David Turnerad830712006-09-27 16:20:59 +00008132006-09-28 David Turner <david@freetype.org>
814
Werner Lemberg2c002e12006-09-29 21:31:53 +0000815 Fix a bug in the automatic unpatented hinting support which prevents
816 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000817
Werner Lemberg2c002e12006-09-29 21:31:53 +0000818 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
819 s/force_autohint/unpatented_hinting/. Update all callers.
820
821 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
822
823 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000824
David Turner8a317cf2006-09-27 07:52:48 +00008252006-09-27 David Turner <david@freetype.org>
826
Werner Lemberg2c002e12006-09-29 21:31:53 +0000827 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000828
David Turner8a317cf2006-09-27 07:52:48 +0000829
David Turnere140f142006-10-23 08:56:57 +0000830 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000831 In a default build, the function `FT_Library_SetLcdFilter' returns
832 `FT_Err_Unimplemented_Feature'; you need to #define
833 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
834 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000835
Werner Lemberg2c002e12006-09-29 21:31:53 +0000836 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000837
Werner Lemberg2c002e12006-09-29 21:31:53 +0000838 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
839 typedef.
840 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
841 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000842
Werner Lemberg2c002e12006-09-29 21:31:53 +0000843 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
844 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000845
Werner Lemberg2c002e12006-09-29 21:31:53 +0000846 Handle subpixel rendering.
847 Simplify function.
848 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
849 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
850
851 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
852 pointing to <freetype/ftlcdfil.h>.
853
854 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
855 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
856
857 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000858
Werner Lemberge20df4a2006-09-27 06:29:21 +00008592006-09-26 David Bustin
860
861 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
862 correctly. Reported as Savannah bug #17843.
863
David Turner6f8c6222006-09-26 15:42:44 +00008642006-09-26 David Turner <david@freetype.org>
865
Werner Lemberg110246c2006-09-26 21:55:44 +0000866 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
867 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
868 horizontal and vertical hinting for the purpose of debugging the
869 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000870
Werner Lemberg110246c2006-09-26 21:55:44 +0000871 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
872 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000873
Werner Lemberg110246c2006-09-26 21:55:44 +0000874 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
875
876 * include/freetype/config/ftoption.h, devel/ftoption.h
877 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
878 we want to compile LCD-optimized rendering code la ClearType) or
879 not. The macro *must* be disabled in default builds of the library
880 for patent reasons.
881
882 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
883 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
884 isn't defined at compile time. This only changes the content of the
885 rendered glyph to match the one of normal gray-level rendering,
886 hence clients should not need to be modified.
887
888 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000889
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008902006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
891
892 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
893 LWFN fails and both are available.
894
David Turnerf3050052006-09-11 12:00:32 +00008952006-09-11 David Turner <david@freetype.org>
896
Werner Lembergf9644552006-09-12 13:48:10 +0000897 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
898 report their English names through an Apple Roman
899 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000900
Werner Lembergf9644552006-09-12 13:48:10 +0000901 If the font uses another name entry with language_id == English, it
902 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000903
Werner Lembergf9644552006-09-12 13:48:10 +0000904 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
905 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000906
Werner Lemberg36d2eab2006-09-05 19:24:34 +00009072006-09-05 Werner Lemberg <wl@gnu.org>
908
909 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000910 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000911 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
912 `HAN NOM B.ttf').
913
914 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
915
David Turner772e55d2006-09-05 09:45:15 +00009162006-09-05 David Turner <david@freetype.org>
917
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000918 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000919
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000920 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
921 (TRaster): Remove `count_ex' and `count_ey'.
922 (gray_find_cell): Remove 2nd and 3rd argument.
923 (gray_alloc_cell): Merged with `gray_find_cell'.
924 (gray_record_cell): Simplify.
925 (gray_set_cell): Rewrite.
926 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
927 (gray_render_span): Don't use FT_MEM_SET for small values.
928 (gray_dump_cells) [DEBUG_GRAYS]: New function.
929 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
930 bitmap scanline.
931 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000932
David Turneraa557a92006-09-04 16:42:44 +00009332006-09-04 David Turner <david@freetype.org>
934
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000935 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
936 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000937
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009382006-09-03 Werner Lemberg <wl@gnu.org>
939
940 * devel/ftoption.h: Synchronize with
941 include/freetype/config/ftoption.h.
942
943 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
944 variable declaration.
945 (gray_convert_glyph): Fix compiler warnings.
946
David Turner6d79f212006-09-01 14:09:35 +00009472006-09-01 David Turner <david@freetype.org>
948
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000949 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
950 to recognize a few fonts that require the automatic unpatented
951 loader.
David Turnerbd502952006-09-01 19:05:24 +0000952
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000953 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
954 rasterizer. The speed improvement is between 15% and 25%, depending
955 on the font data.
956
957 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
958 (TCell): Redefine.
959 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
960 (gray_init_cells): Updated.
961 (gray_find_cell, gray_alloc_cell): New functions.
962 (gray_record_cell): Rewritten to use `gray_find_cell' and
963 `gray_alloc_cell'.
964 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
965 QSORT_THRESHOLD):
966 Removed.
967 (gray_shell_sort, gray_quick_sort, gray_check_sort,
968 gray_dump_cells): Removed.
969 (gray_sweep): Rewritten.
970 (gray_convert_glyph): Rewrite code which used one of the sorting
971 functions.
972 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000973
Werner Lembergd898aed2006-08-29 09:50:34 +00009742006-08-29 Dr. Werner Fink <werner@suse.de>
975
976 * configure: Make it possible to handle configure options which
977 have strings containing spaces.
978
9792006-08-27 David Turner <david@freetype.org>
980
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000981 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
982 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
983 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
984
985 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
986 src/truetype/truetype.c, src/truetype/ttdriver.c,
987 src/truetype/ttgload.c, src/truetype/ttgload.h,
988 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
989 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
990 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
991
992 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
993 member `force_autohint'.
994
995 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
996
997 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
998 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000999
Jens Claudiusa787f452006-08-27 11:26:18 +000010002006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1001
1002 Fix miscellaneous compiler warnings.
1003
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001004 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1005 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001006
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001007 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1008 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1009 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001010
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001011 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1012 volatileness of argument to ft_longjmp. Spotted by Werner
1013 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001014
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001015 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1016 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001017
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001018 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1019 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001020
Werner Lembergc4c35b72006-08-27 08:03:46 +000010212006-08-27 Werner Lemberg <wl@gnu.org>
1022
1023 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1024 Reported by Jens.
1025
Jens Claudius088e44e2006-08-22 14:24:30 +000010262006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001027
Jens Claudius088e44e2006-08-22 14:24:30 +00001028 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001029 about addresses of volatile objects passed as function arguments as
1030 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001031
Werner Lembergc4c35b72006-08-27 08:03:46 +00001032 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1033 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001034
1035 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1036 argument `table' a pointer to a volatile object.
1037
1038 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1039 argument `table' a pointer to a volatile object.
1040
Jens Claudius2652bd52006-08-18 17:20:37 +000010412006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1042
1043 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1044 variable `_sfnt' as volatile since it must keep its value across
1045 a call to ft_setjmp.
1046 (gxv_validate): Same for local variables `memory' and `valid'.
1047 (classic_kern_validate): Same for local variables `memory',
1048 `ckern', and `valid'.
1049
1050 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1051 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1052 `jstf', and 'valid'.
1053
1054 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1055 local variable `cmap'.
1056
David Turner9fbfc6a2006-08-16 09:11:31 +000010572006-08-16 David Turner <david@freetype.org>
1058
Werner Lemberg12342992006-08-19 11:18:09 +00001059 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1060 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001061
Werner Lemberg12342992006-08-19 11:18:09 +00001062 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1063 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001064
David Turner33f5f242006-08-16 16:50:55 +00001065
Werner Lemberg12342992006-08-19 11:18:09 +00001066 Improvements to native TrueType hinting. This is a first try,
1067 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1068
1069 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1070 `extra_points2'.
1071
1072 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1073 `orus'.
1074
1075 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1076 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1077 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1078 handle `extra_points2'.
1079
1080 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1081 Remove compiler warning.
1082 (cur_to_arg): Remove macro.
1083 (TT_Hint_Glyph): Updated.
1084 (TT_Process_Simple_Glyph): Handle `orus'.
1085
1086 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1087 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1088 (LOC_Ins_IUP): Renamed to...
1089 (IUP_WorkerRec): This.
1090 Add `orus' member.
1091 (Shift): Renamed to...
1092 (_iup_worker_shift): This.
1093 Updated.
1094 (Interp): Renamed to...
1095 (_iup_worker_interpolate): This.
1096 Updated to handle `orus'.
1097 (Ins_IUP): Updated.
1098
1099 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1100 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001101
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000011022006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1103
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001104 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001105 build ftvalid in ft2demos. This has been inadvertedly changed
1106 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001107
11082006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1109
Werner Lemberg12342992006-08-19 11:18:09 +00001110 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1111 Jens:
1112 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001113
Werner Lemberg12342992006-08-19 11:18:09 +00001114 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1115 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001116
1117 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1118
Jens Claudius9950adc2006-08-13 12:14:36 +000011192006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1120
Werner Lemberg12342992006-08-19 11:18:09 +00001121 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1122 T1_TOKEN_TYPE_KEY.
1123 (T1_FieldRec): Add `dict'.
1124 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1125 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1126 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001127
Werner Lemberg12342992006-08-19 11:18:09 +00001128 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1129 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001130
1131 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1132
1133 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001134 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1135 not T1_TOKEN_TYPE_ANY.
1136 (ps_parser_load_field): Make sure a token that should be a string or
1137 name is really a string or name.
1138 Avoid memory leak if a keyword has been already encountered and its
1139 value is overwritten.
1140 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1141 T1_FIELD_XXX.
1142 (parse_dict): Ignore keywords that occur in the wrong dictionary
1143 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001144
Werner Lemberg12342992006-08-19 11:18:09 +00001145 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1146 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001147
Werner Lemberg12342992006-08-19 11:18:09 +00001148 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1149 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001150
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011512006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1152
1153 Move creation of field `buildchar' of T1_DecoderRec out of
1154 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1155 of it.
1156
1157 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1158 and `T1_Compute_Max_Advance'.
1159
1160 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1161 Remove field `face', add `len_buildchar'.
1162
1163 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1164 field `buildchar'.
1165
1166 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1167 finisher for T1_Decoder.
1168 (cid_slot_load_glyph): Do not ignore failure when initializing the
1169 T1_Decoder.
1170
1171 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1172 Updated.
1173 (t1_decoder_init): Remove initialization of fields `buildchar' and
1174 `len_buildchar'.
1175 (t1_decoder_done): Remove deallocation of field `buildchar'.
1176
1177 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1178 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1179 T1_Decoder.
1180 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1181 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1182 case of error.
1183
1184 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1185 `buildchar' of T1_FaceRec.
1186
1187 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1188 `buildchar' of T1_FaceRec.
1189
Werner Lemberg1a380e02006-07-14 18:28:08 +000011902006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1191
1192 * freetype2/include/freetype/internal/psaux.h: New macros
1193 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1194 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1195 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1196 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1197 (T1_DecoderRec): New fields `buildchar' and `face'.
1198 (IS_PS_TOKEN): New macro.
1199
1200 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1201 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1202
1203 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1204 `default_design_vector' and `num_default_design_vector'.
1205
1206 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1207 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1208 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1209
1210 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1211 `token' argument to be NULL if we want only to count the number of
1212 tokens.
1213 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1214 want to skip the array.
1215 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1216 want to skip the array.
1217
1218 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1219 support for (partially commented out) othersubrs 19-25, 27, and 28.
1220 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1221 (t1_decoder_done): Release new field `buildchar'.
1222
1223 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1224 functions.
1225 (t1_keywords): Register them.
1226 (t1_allocate_blend): Updated.
1227 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1228 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1229 (parse_dict): Remove `keyword_flags' argument.
1230 Use new macro IS_PS_TOKEN.
1231 Changed function so that later PostScript definitions override
1232 earlier ones.
1233 (t1_init_loader): Initialize new field `keywords_encountered'.
1234 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1235 `len_buildchar'.
1236 Remove `keywords_flags'.
1237
1238 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1239 `keywords_encountered'.
1240 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1241
1242 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1243 New entries for parsing /NDV, /CDV, and /DesignVector.
1244
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012452006-07-07 Werner Lemberg <wl@gnu.org>
1246
1247 Add many checks to protect against malformed PCF files.
1248
1249 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1250 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1251
1252 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1253 data and check that tables don't overlap (using a simple
1254 bubblesort).
1255 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1256 New macros which give the size of data structures in the data
1257 stream.
1258 (pcf_get_properties): Use rough estimates to get array size limits.
1259 Assign `face->nprops' and `face->properties' earlier so that a call
1260 to PCF_Face_Done can do the clean-up in case of error.
1261 Protect against invalid string offsets.
1262 (pcf_get_metrics): Clean up code.
1263 Adjust tracing message levels.
1264 Use rough estimate to get array size limit.
1265 (pcf_get_bitmaps): Clean up code.
1266 Adjust tracing message levels.
1267 Use rough estimates to get offset limits.
1268 (pcf_get_encodings): Adjust tracing message level.
1269 (pcf_get_accel): Clean up code.
1270
Werner Lemberg8eb05252006-06-27 06:20:01 +000012712006-06-26 Werner Lemberg <wl@gnu.org>
1272
1273 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1274 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1275
Werner Lemberg24703f82006-06-26 19:12:51 +000012762006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1277
1278 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1279 (t1_decoder_parse_charstrings): Operator with
1280 opcode 15 pops its two arguments.
1281 Handle the case where the pops of an othersubr may be part of a
1282 subroutine.
1283 Handle unknown othersubrs gracefully: count their operands and let
1284 the following pop operators push the operands as the results onto
1285 the Type1 stack.
1286 Improve handling of setcurrentpoint opcode.
1287
Werner Lembergc011f4c2006-06-26 09:40:00 +000012882006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1289
1290 The Type 1 parser now skips over top-level procedures as required
1291 for a `Simplified Parser'. This makes the parser more robust as it
1292 doesn't poke around in PostScript code. Additionally, it makes the
1293 FontDirectory hackery in src/type1/t1load.c unnecessary.
1294
1295 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1296 (skip_literal_string): Add FT_Error as return value.
1297 Handle escapes better.
1298 (skip_string): Add FT_Error as return value.
1299 Don't set `parser->error' but return error code directly.
1300 (skip_procedure): New function.
1301 (ps_parser_skip_PS_token): Handle procedures.
1302 Update code.
1303 (ps_parser_to_token): Update code.
1304 (ps_parser_load_field_table): Handle bbox entries also.
1305
1306 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1307 Add commented-out code for synthetic fonts.
1308
Werner Lemberga2da05c2006-06-25 06:27:27 +000013092006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1310
1311 Fix two hinting bugs as reported in
1312 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1313
1314 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1315 `first_point' member.
1316
1317 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1318 `first_point'.
1319 (TT_Process_Composite_Glyph): Always untouch points.
1320
1321 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1322 `first_point' and `last_point' in case of composite glyphs.
1323 (Ins_IUP): Fix computation of `end_point'.
1324
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000013252006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1326
Werner Lembergef3d2c22006-06-25 06:07:14 +00001327 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1328 Mac. The original patch was written by David Sachitano and Lawrence
1329 Coopet, and modified by Sean McBride for MPW compatibility. Only
1330 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001331
Werner Lembergef3d2c22006-06-25 06:07:14 +00001332 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1333 Mac OS X platforms.
1334 (OS_INLINE): Undefine before definition.
1335 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1336 FontAssociation table in FOND resource.
1337 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1338 and fontSize at each entry of FontAssociation table in FOND
1339 resource.
1340 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1341 ffStylOff of FamilyRecord header of FOND resource, the header,
1342 fontSize, fontID at each entry of FontAssociation table, and
1343 StyleMapping table.
1344 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001345
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013462006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1347
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001348 Public API of TrueTypeGX, OpenType, and classic kern table validator
1349 should return `FT_Err_Unimplemented_Feature' if validation service
1350 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001351 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001352 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1353
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001354 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1355 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1356 unavailable.
1357 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1358 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001359
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001360 * src/base/ftotval.c (FT_OpenType_Validate): Return
1361 FT_Err_Unimplemented_Feature if OpenType validation service is
1362 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001363
Werner Lembergb10e45a2006-06-08 07:32:56 +000013642006-06-08 Werner Lemberg <wl@gnu.org>
1365
1366 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1367 errors.
1368
David Turner5f1f7502006-06-07 05:11:50 +000013692006-06-07 David Turner <david@freetype.org>
1370
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001371 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1372 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1373 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001374
David Turner457b4a82006-06-06 08:14:14 +000013752006-06-06 David Turner <david@freetype.org>
1376
Werner Lemberg4836f952006-06-06 12:54:08 +00001377 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001378
Werner Lemberg4836f952006-06-06 12:54:08 +00001379 We change `ps_unicodes_init' so that it also takes a
1380 `free_glyph_name' callback to release the glyph names returned by
1381 `get_glyph_name'
1382
1383 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1384 Renamed to ...
1385 (PS_GetGlyphNameFunc): This.
1386 (PS_FreeGlyphNameFunc): New typedef.
1387 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1388
1389 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1390 argument.
1391 (cff_sid_free_glyph_name): New function.
1392 (cff_cmap_unicode_init): Updated.
1393
1394 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1395
1396 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1397 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001398
1399
David Turner09717352006-06-04 14:33:08 +000014002006-06-04 David Turner <david@freetype.org>
1401
Werner Lembergd724f202006-06-04 15:17:41 +00001402 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1403 `item_size == 0' as well -- though this sounds weird, it can
1404 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001405
Werner Lembergd724f202006-06-04 15:17:41 +00001406 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1407 of `face->num_glyphs' which missed the last glyph, due to
1408 the offset-by-1 computation, since the PFR format doesn't
1409 guarantee that glyph index 0 corresponds to the `missing
1410 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001411
Werner Lemberg33779662006-05-26 06:30:05 +000014122006-05-25 Werner Lemberg <wl@gnu.org>
1413
1414 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1415 `-no-undefined'. Reported by Christian Biesinger.
1416
Werner Lemberg24773d62006-05-20 08:53:13 +000014172006-05-19 Brian Weed <bw@imaginengine.com>
1418
1419 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1420 have debug information, and debug libraries use `C7 compatible'
1421 debug info.
1422
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000014232006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1424
Werner Lemberga6523a62006-05-20 08:47:01 +00001425 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001426 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001427
Werner Lemberga6523a62006-05-20 08:47:01 +00001428 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1429 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001430
1431 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001432 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001433
14342006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1435
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001436 * build/unix/configure.raw: Add a fallback to disable Carbon
1437 dependency, if configured with no options on Mac OS X.
1438
14392006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1440
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001441 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001442 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001443 the second part of Savannah bug #16590.
1444
Werner Lemberg545c4e52006-05-17 22:55:04 +000014452006-05-18 Werner Lemberg <wl@gnu.org>
1446
1447 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1448 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1449
David Turnerdc3ff312006-05-17 12:59:35 +000014502006-05-17 David Turner <david@freetype.org>
1451
Werner Lemberg545c4e52006-05-17 22:55:04 +00001452 This is a major patch used to drastically improve the performance of
1453 loading glyphs. This both speeds up loading the glyph vectors
1454 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001455
Werner Lemberg545c4e52006-05-17 22:55:04 +00001456 We now use inline assembler code with GCC to implement `FT_MulFix',
1457 which is probably the most important function related to the
1458 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001459
Werner Lemberg545c4e52006-05-17 22:55:04 +00001460 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001461
1462
Werner Lemberg545c4e52006-05-17 22:55:04 +00001463 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1464 `cursor' and `limit'.
1465
1466 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1467 New functions.
1468 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1469 [TEST]: Remove.
1470
1471 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1472 code.
1473
1474 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1475 `FT_ZERO'
1476 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1477 (af_glyph_hints_reload: Rewrite recognition of weak points.
1478
1479 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1480 constant values out of the loops.
1481
1482 * src/autofit/aftypes.h: Updated.
1483
1484 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1485
1486 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1487 product to get orientation.
1488
1489 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1490 (FT_Stream_OpenGzip): Use it to handle small files directly in
1491 memory.
1492
1493 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1494 Improve performance.
1495
1496 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1497 `limit'.
1498
1499 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1500 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1501 exceedingly large values of number of contours. Speed up by
1502 reducing the number of loops.
1503
1504 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1505
1506
1507 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1508 used to detect rogue clients from 4 to 16. This is to prevent some
1509 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1510 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001511
Werner Lembergde2d90a2006-05-17 08:54:30 +000015122007-05-17 Werner Lemberg <wl@gnu.org>
1513
1514 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001515 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001516
15172006-05-16 Werner Lemberg <wl@gnu.org>
1518
1519 * docs/PROBLEMS: Updated icl issues.
1520
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001521----------------------------------------------------------------------------
1522
Werner Lemberg42b63b22007-01-21 21:01:33 +00001523Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001524David Turner, Robert Wilhelm, and Werner Lemberg.
1525
1526This file is part of the FreeType project, and may only be used, modified,
1527and distributed under the terms of the FreeType project license,
1528LICENSE.TXT. By continuing to use, modify, or distribute this file you
1529indicate that you have read the license and understand and accept it
1530fully.
1531
1532
1533Local Variables:
1534version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001535coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001536End: