blob: 1519712e50185e20a3ea644043f5f85550973e81 [file] [log] [blame]
Werner Lemberg4b2e83d2007-02-01 07:58:02 +000012007-02-01 Alexei Podtelezhnikov >apodtele@gmail.com>
2
3 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
4 message.
5
6 * src/gxvalid/gxvmort1.c
7 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
8 message.
9
Werner Lemberg53935932007-01-31 08:53:02 +0000102007-01-31 Werner Lemberg <wl@gnu.org>
11
12
13 * Version 2.3.1 released.
14 =========================
15
16
17 Tag sources with `VER-2-3-1-FINAL'.
18
19 * builds/win32/visualc/freetype.dsp,
20 builds/win32/visualc/freetype.vcproj: s/230/231/.
21 * builds/win32/visualc/index.html: s/221/231/.
22
23 * vms_make.com: Add `ftgasp'.
24
David Turnera7ee6082007-01-30 10:33:53 +0000252007-01-30 David Turner <david@freetype.org>
26
Werner Lemberg53935932007-01-31 08:53:02 +000027 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +000028
Werner Lemberg53935932007-01-31 08:53:02 +000029 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +000030
Werner Lemberg53935932007-01-31 08:53:02 +000031 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
32 s/2.3.0/2.3.1/.
33
34 * builds/unix/configure.raw (version_info): Set to 9:12:3.
35
36
37 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
38 (af_loader_load_g): Disable the warper (i.e., the light hinting
39 improvements) to make a 2.3.1 bugfix release before introducing a
40 new feature. This should give us more time to tune and improve the
41 warper for the next release.
42
43 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +000044
David Turnerd91eebd2007-01-26 15:05:41 +0000452007-01-25 David Turner <david@freetype.org>
46
Werner Lembergbf241762007-01-26 16:08:49 +000047 For light auto-hinting, improve glyph advance widths and resurrect
48 normal/full hinting to its normal quality.
49
50 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
51 and `xmax_delta'.
52 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
53 and `xmax_delta'.
54
55 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
56 preprocessor conditional with if-clause, handling both light and
57 normal mode.
58
59 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
60 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000061
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000622007-01-25 Werner Lemberg <wl@gnu.org>
63
64 * docs/release: Updated -- Savannah uses a new uploading scheme.
65
David Turnera42567b2007-01-25 12:23:37 +0000662007-01-25 David Turner <david@freetype.org>
67
Werner Lembergd7855662007-01-25 13:53:56 +000068 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +000069
Werner Lembergd7855662007-01-25 13:53:56 +000070 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
71 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
72 functions.
David Turnera42567b2007-01-25 12:23:37 +000073
Werner Lembergd7855662007-01-25 13:53:56 +000074 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000075
Werner Lembergb1be9e82007-01-25 11:50:00 +0000762007-01-25 Werner Lemberg <wl@gnu.org>
77
78 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000079 correctly in a sanity check. Since this function is only used to
80 load local and global functions, any charstring that called the last
81 local/global function would fail otherwise. This fixes Savannah bug
82 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000083
84 * docs/CHANGES: Document it.
85
David Turnerb6de8d12007-01-23 15:51:50 +0000862007-01-23 David Turner <david@freetype.org>
87
Werner Lembergb1be9e82007-01-25 11:50:00 +000088 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
89 prevented compilation when disabling both the unpatented and the
90 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000091
Werner Lembergb1be9e82007-01-25 11:50:00 +000092
93 Fix and enable the warper to improve `light' hinting mode. This is
94 not necessarily a final version, but it seems to work well.
95
96 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
97 Disable code.
98 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
99 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
100
101 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
102 (af_warper_compute_line_best): Fix array size of `scores'.
103 (af_warper_compute): Better handling of border cases.
104 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
105 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000106
Werner Lemberg011d1112007-01-21 09:36:00 +00001072007-01-21 Werner Lemberg <wl@gnu.org>
108
Werner Lemberg42b63b22007-01-21 21:01:33 +0000109 * ChangeLog: Split off older entries into...
110 * ChangeLog.22: This new file.
111
1122007-01-21 Werner Lemberg <wl@gnu.org>
113
Werner Lemberg555258f2007-01-21 09:46:37 +0000114 * docs/CHANGES: Document SHZ fix.
115
1162007-01-21 George Williams <gww@silcom.com>
117
118 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
119 points.
120
1212007-01-21 Werner Lemberg <wl@gnu.org>
122
Werner Lemberg011d1112007-01-21 09:36:00 +0000123 * src/sfnt/ttmtx.c (tt_face_get_metrics)
124 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
125
Werner Lemberg87a5a432007-01-17 12:44:39 +00001262007-01-17 Werner Lemberg <wl@gnu.org>
127
Werner Lembergb8003292007-01-17 12:56:25 +0000128
129 * Version 2.3.0 released.
130 =========================
131
132
133 Tag sources with `VER-2-3-0-FINAL'.
134
1352007-01-17 Werner Lemberg <wl@gnu.org>
136
Werner Lemberg87a5a432007-01-17 12:44:39 +0000137 * docs/release: Updated.
138
David Turner22122722007-01-16 20:06:44 +00001392007-01-16 David Turner <david@freetype.org>
140
Werner Lemberg87a5a432007-01-17 12:44:39 +0000141 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
142 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
143 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
144 warnings.
David Turner22122722007-01-16 20:06:44 +0000145
Werner Lemberg267e1d72007-01-15 07:48:09 +00001462007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
147
148 * builds/amiga/makefile, builds/amiga/makefile.os4,
149 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
150
151 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
152
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001532007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
154
155 Fix various compiler warnings.
156
157 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
158 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
159 s/index/strike_index/.
160 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
161
162 * src/gxvalid/gxvmorx5.c
163 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
164
165 * src/truetype/ttinterp.c (Compute_Point_Displacement),
166 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
167 uninitialized variables.
168
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001692007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
170
171 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
172
Werner Lemberg281c1482007-01-13 22:50:51 +00001732007-01-13 Werner Lemberg <wl@gnu.org>
174
175 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
176 versions up to 0x3FF without complaining.
177
Werner Lembergac250b22007-01-13 14:01:36 +00001782007-01-13 Derek Clegg <dclegg@apple.com>
179
180 Add FT_Get_PS_Font_Info interface to CFF driver.
181
182 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
183 (CFF_FontRec): Add `font_info' field.
184
185 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
186 (cff_font_done): Free font->font_info if necessary.
187
188 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
189 (cff_service_ps_info): Register cff_ps_get_font_info.
190
Werner Lemberg23df31a2007-01-13 08:45:00 +00001912007-01-13 Werner Lemberg <wl@gnu.org>
192
193 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
194 with C++ compiler.
195
196 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
197 af_glyph_hints_dump_edges): Ditto.
198
199 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
200 `modules.cfg').
201
202 * src/sfnt/ttsbit0.h: Remove.
203
204 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
205
Werner Lemberg27cf9de2007-01-13 07:34:23 +00002062007-01-12 David Turner <david@freetype.org>
207
208 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
209 bug in the bitmap emboldener if the pitch of the source bitmap is
210 much larger than its width.
211
212 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
213 compilation warning.
214
Werner Lemberg6d96d312007-01-12 10:30:19 +00002152007-01-12 Werner Lemberg <wl@gnu.org>
216
217 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
218 `automake' CVS module from sources.redhat.com.
219
Werner Lemberg17432b52007-01-12 09:28:44 +00002202007-01-11 Werner Lemberg <wl@gnu.org>
221
222 * src/type1/t1load.c (is_space): Removed.
223 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
224 (parse_charstrings): Use IS_PS_TOKEN.
225
226
227 * autogen.sh: Avoid bash specific syntax.
228
David Turner038ace22007-01-11 15:00:59 +00002292007-01-11 David Turner <david@freetype.org>
230
Werner Lemberg17432b52007-01-12 09:28:44 +0000231 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000232
Werner Lemberg17432b52007-01-12 09:28:44 +0000233 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000234
Werner Lemberg17432b52007-01-12 09:28:44 +0000235 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
236 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000237 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000238
Werner Lemberg17432b52007-01-12 09:28:44 +0000239 * autogen.sh: Small fix to get it working on Mac OS X properly:
240 The issue is that GNU libtool is called `glibtool' on this platform,
241 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000242
David Turner2628ea92007-01-10 13:15:56 +00002432007-01-10 David Turner <david@freetype.org>
244
Werner Lemberg17432b52007-01-12 09:28:44 +0000245 * all-sources: Tag all sources with VER-2-3-0-RC1 and
246 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000247
Werner Lemberg17432b52007-01-12 09:28:44 +0000248 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
249 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
250 version number to 2.3.0.
251
252 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
253 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000254
255 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000256 include/freetype/ftlcdfil.h: Update reference documentation with
257 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000258
Werner Lemberg17432b52007-01-12 09:28:44 +0000259 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
260 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000261
Werner Lembergbf02d392007-01-10 07:07:37 +00002622007-01-10 Derek Clegg <dclegg@apple.com>
263
264 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
265 values.
266
David Turnerf48b60e2007-01-08 15:15:32 +00002672007-01-08 David Turner <david@freetype.org>
268
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000269 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000270
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000271 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
272 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000273 corresponding to a given character pixel size.
274
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000275 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
276 `gasp' table, in order to avoid potential problems with later
277 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000278
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000279 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
280 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000281
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000282 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
283 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
284 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
285 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000286
Werner Lemberge6b6f372007-01-07 00:06:47 +00002872007-01-07 Werner Lemberg <wl@gnu.org>
288
Werner Lembergb8004d22007-01-07 09:13:38 +0000289 * src/cid/cidparse.c (cid_parser_new): Improve error message for
290 Type 11 fonts.
291 Scan for `/sfnts' token.
292
2932007-01-07 Werner Lemberg <wl@gnu.org>
294
295 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000296
Werner Lembergbe5f7972007-01-06 07:51:48 +00002972007-01-06 Werner Lemberg <wl@gnu.org>
298
299 * src/cff/cffload.c (cff_index_init): Remove unused variable.
300 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
301
David Turnera8cf42b2007-01-04 16:46:46 +00003022007-01-04 David Turner <david@freetype.org>
303
Werner Lembergf6294392007-01-06 07:47:45 +0000304 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
305 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000306
Werner Lembergf6294392007-01-06 07:47:45 +0000307
308 Do not allocate interpreter-specific tables in memory if we are not
309 going to load glyphs with the bytecode interpreter anyway.
310
311 * src/truetype/ttgload.c (tt_loader_init): Load execution context
312 only if glyph is hinted.
313 Updated.
314 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
315 and `cvs_ready'.
316 Add `tt_size_ready_bytecode' declaration.
317 * src/truetype/ttobjs.c (tt_size_done_bytecode,
318 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
319 (tt_size_init): Move most code into `tt_size_init_bytecode'.
320 (tt_size_done): Move most code into `tt_size_done_bytecode'.
321 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000322
David Turner91a34022007-01-05 14:47:08 +0000323
Werner Lembergf6294392007-01-06 07:47:45 +0000324 Don't extract the metrics table from the SFNT font file. Instead,
325 reparse it on each glyph load. The runtime difference is not
326 noticeable, and it can save a lot of heap memory when memory-mapped
327 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000328
Werner Lembergf6294392007-01-06 07:47:45 +0000329 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
330 `horz_metrics_offset' and `vert_metrics_ofset'.
331 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
332 Updated.
333
334
335 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
336
337
338 Do not load the CFF index offsets into memory, since this wastes a
339 *lot* of heap memory with large Asian CFF fonts. There is no
340 significant performance loss.
341
342 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
343 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
344 `data_size'.
345 (CFF_CharsetRec): Add field `num_glyphs'.
346
347 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
348 cff_charset_cid_to_gindex): New functions.
349 (cff_new_index): Renamed to...
350 (cff_index_init): This. Update all callers.
351 Updated -- some code has been moved to `cff_index_load_offsets'.
352 (cff_done_index): Renamed to...
353 (cff_index_done): This. Update all callers.
354 (cff_index_get_pointers, cff_index_access_element): Updated to use
355 stream offsets.
356 (cff_charset_compute_cids): Set `num_glyphs' field.
357 (cff_encoding_load): Updated.
358
359 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000360
3612007-01-04 David Turner <david@freetype.org>
362
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000363 * docs/INSTALL.UNIX: Simplify some parts, add reference to
364 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000365
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000366 * README.CVS: Add common problem description and solution
367 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000368
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000369 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000370
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000371 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000372
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000373 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000374
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000375 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
376 (TWorker): This.
377 Remove `count_table' and `memory'.
378 Make `grays' a pointer.
379 (TRaster): New structure.
380 (count_table): New static array.
381 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
382 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
383 ft_black_set_mode, ft_black_render): Updated.
384 (ft_black_init): Don't initialize `count_table'.
385 (ft_black_reset): Use the render pool. This saves about 6KB of
386 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000387
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000388 * src/smooth/ftgrays.c (TRaster): Replaced with...
389 (TWorker): This.
390 Remove `memory'.
391 (TRaster): New structure.
392
393 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
394 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
395 gray_render_span, gray_raster_render): Updated.
396 (gray_raster_reset): Use the render pool. This saves about 6KB of
397 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000398
David Turner8a6c44e2007-01-04 17:03:11 +0000399 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
400 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000401 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
402 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
403 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000404
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000405 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
406 Remove a typo that results in no hinting and a memory leak with some
407 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000408
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000409 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000410 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000411 CFF_Faces in it. We need to close all faces before destroying the
412 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000413
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00004142007-01-02 Werner Lemberg <wl@gnu.org>
415
416 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
417 Remove compiler warning.
418
David Turner9207e002007-01-02 16:58:13 +00004192007-01-02 David Turner <david@freetype.org>
420
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000421 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000422
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00004232006-12-31 Masatake YAMATO <jet@gyve.org>
424
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000425 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
426 function.
427 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000428 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000429 `gxv_kern_subtable_fmt0_pairs_validate'.
430
David Turner115b4422006-12-22 11:37:05 +00004312006-12-22 David Turner <david@freetype.org>
432
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000433 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
434 warnings.
David Turner115b4422006-12-22 11:37:05 +0000435
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000436 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
437 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000438
Werner Lemberg4755bf72006-12-16 08:58:44 +00004392006-12-16 Anders Kaseorg <anders@kaseorg.com>
440
441 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
442 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
443
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004442006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
445
Werner Lemberg9b774e22007-01-16 06:11:27 +0000446 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000447 sync with the modification by Jens Claudius on 2006-08-22; cf.
448 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 +0000449
4502006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
451
452 * src/base/ftmac.c: Specialized for Mac OS X only.
453 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
454 * builds/unix/configure.raw: Ditto. When explicit switches for
455 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
456 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
457
4582006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
459
460 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
461 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
462 instead of src/base/ftmac.c
463 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
464 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
465 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
466 that cannot be built at present.
467
4682006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
469
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000470 * src/base/ftobjs.c: Improvement of resource fork handler for
471 POSIX, cf.
472 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000473 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
474 format or .dfont, to simulate the face index number counted by ftmac.c.
475 (IsMacResource): Return the number of scalable faces correctly.
476
Werner Lembergec5b4502006-12-10 07:51:38 +00004772006-12-10 Werner Lemberg <wl@gnu.org>
478
479 * builds/toplevel.mk (version): Protect against `distclean' target.
480
Werner Lembergb26b3142006-12-09 20:01:43 +00004812006-12-09 Werner Lemberg <wl@gnu.org>
482
483 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
484 or `type'.
485
486 * builds/freetype.mk (version): Extracted from freetype.h, using
487 GNU make's built-in string functions.
488 (refdoc): Use $(version) instead of static version number.
489
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004902006-12-08 Werner Lemberg <wl@gnu.org>
491
492 * builds/toplevel.mk (dist): Extract version number from freetype.h.
493
Werner Lemberg15c29502006-12-09 07:29:54 +00004942006-12-08 Vladimir Volovich <vvv@vsu.ru>
495
496 * src/tools/apinames (State): Remove final comma in structure -- xlc
497 v5 under AIX 4.3 doesn't like this.
498
David Turnerdbf3b432006-12-07 21:18:09 +00004992006-12-07 David Turner <david@freetype.org>
500
Werner Lemberg256a3512006-12-08 06:49:33 +0000501 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
502 to the spacing of auto-fitted glyphs. This only impacts rare
503 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000504
Werner Lemberg11171312006-12-03 09:43:40 +00005052006-12-03 Werner Lemberg <wl@gnu.org>
506
507 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
508
Werner Lemberg960ba592006-12-01 08:20:47 +00005092006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000510
Werner Lemberg960ba592006-12-01 08:20:47 +0000511 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
512 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
513 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000514
David Turner80658e52006-11-28 08:09:20 +0000515
Werner Lemberg960ba592006-12-01 08:20:47 +0000516 * include/freetype/ftxf86.h: Fix and extend comment so that it
517 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000518
Werner Lemberg960ba592006-12-01 08:20:47 +0000519 * include/freetype/ftchapters.h: Add `font_format' section.
520
521
522 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
523 to TOC in index page.
524
5252006-11-28 David Turner <david@freetype.org>
526
527 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
528 trying to render into a zero-width/height bitmap, not an error code.
529
530 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
531
532 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
533 ones instead.
534
535 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
536 variable.
David Turner80658e52006-11-28 08:09:20 +0000537
Werner Lemberg8636c292006-11-26 22:28:13 +00005382006-11-26 Pierre Hanser <hanser@club-internet.fr>
539
540 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
541
Werner Lemberg960ba592006-12-01 08:20:47 +00005422006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000543
Werner Lemberg960ba592006-12-01 08:20:47 +0000544 * src/autofit/afhints.c (af_glyph_hints_dump_points,
545 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
546 Add stubs to link the `ftgrid' test program when debugging is
547 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000548
Werner Lemberg960ba592006-12-01 08:20:47 +00005492006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000550
551 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000552 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
553
554 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
555 Emit more sensible information.
556
557 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
558
559 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
560 rounding of blue values.
561 (af_latin_hints_compute_segments): Hint segment heights.
562 (af_latin_hints_link_segments): Reduce `len_score' value.
563 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
564 value and use `height' member for comparisons.
565 (af_latin_hint_edges): Extend logging message.
566 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000567
Werner Lemberg91959bf2006-11-22 10:36:55 +00005682006-11-22 Werner Lemberg <wl@gnu.org>
569
570 Fix Savannah bug #15553.
571
572 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
573 program after a change from mono to grayscaling (and vice versa).
574 Use correct constant for comparison to get `exec->grayscale'.
575
Werner Lemberg913a3652006-11-19 09:19:17 +00005762006-11-18 Werner Lemberg <wl@gnu.org>
577
578 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000579 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000580 This patch fixes Savannah bug #18301.
581
582 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
583 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
584 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
585 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
586 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
587 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
588 (FNT_Load_Glyph): Check validity of `glyph_index'.
589
David Turner7bab6ae2006-11-13 11:25:06 +00005902006-11-13 David Turner <david@freetype.org>
591
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000592 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
593 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000594
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000595 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
596 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
597 when building the library to change the default LCD filter to be
598 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000599
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000600 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000601
David Turner8765c712006-11-10 16:49:42 +00006022006-11-10 David Turner <david@freetype.org>
603
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000604 * src/smooth/ftsmooth.c: API change for the LCD
605 filter. The FT_LcdFilter value is an enumeration describing which
606 filter to apply, with new values FT_LCD_FILTER_LIGHT and
607 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
608 algorithm which produces strong color fringes for everything
609 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000610
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000611 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
612 second parameter to an enum type.
613
614 * src/base/ftlcdfil.c (USE_LEGACY): Define.
615 (_ft_lcd_filter): Rename to...
616 (_ft_lcd_filter_fir): This.
617 Update parameters.
618 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
619 (FT_Library_Set_LcdFilter): Update parameters.
620 Handle new filter modes.
621
622 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
623 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
624 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
625 callback and update other fields.
626
627 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
628 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
629 Other minor improvements.
630
631 * src/autofit/aflatin.c: Various tiny improvements that drastically
632 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
633 (af_latin_hints_compute_edges): Fix typo.
634 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000635
David Turner4e9cc3c2006-11-09 16:31:52 +00006362006-11-09 David Turner <david@freetype.org>
637
Werner Lemberg49c77a82006-11-09 21:51:57 +0000638 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
639 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000640
Werner Lemberg5e430892006-11-07 09:35:03 +00006412006-11-07 Zhe Su <james.su@gmail.com>
642
643 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
644 also.
645
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006462006-11-03 Werner Lemberg <wl@gnu.org>
647
648 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
649
David Turner40604742006-11-02 16:37:35 +00006502006-11-02 David Turner <david@freetype.org>
651
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000652 Add a few tweaks to better handle serif fonts.
653 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000654
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000655 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
656 segments that are less than 1.5 pixels high. This gets rid of
657 *many* corner cases with serifs.
658 (af_latin_align_linked_edge): Add logging message.
659 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
660 Add logging messages.
661 Handle AF_EDGE_FLAG flag specially.
662
663 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
664 _af_debug_disable_blue_hints, and _af_debug_hints variables.
665
666 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
667 Update external declarations.
668 (af_corner_orientation, af_corner_is_flat): Replaced by...
669
670 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
671 ft_corner_is_flat): These declarations.
672
673 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
674 Comment out. Replaced by...
675
676 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
677 These functions. Update all callers.
678 (FT_Add64) [!FT_LONG64]: Simplify.
679
680 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
681 (af_direction_compute): Add a missing FT_ABS call. This bug caused
682 production of garbage by missing lots of segments.
683
684 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
685
686 * src/autofit/afloader.c (af_loader_init, af_loader_done)
687 [AF_DEBUG]: Set _af_debug_hints.
688
689
690 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
691 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
692 and ft_corner_orientation.
693
694
695 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000696
Werner Lemberge88c5262006-10-24 05:46:26 +00006972006-10-24 Werner Lemberg <wl@gnu.org>
698
699 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
700
701 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
702 as argument.
703
David Turnera1861392006-10-23 16:00:59 +00007042006-10-23 Zhe Su <zsu@novell.com>
705
Werner Lemberg715e96e2006-10-24 05:28:45 +0000706 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
707 better deal with broken Asian fonts with strange glyphs, having
708 self-intersections and other peculiarities. The used algorithm is
709 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000710
David Turnere140f142006-10-23 08:56:57 +00007112006-10-23 David Turner <david@freetype.org>
712
Werner Lemberg715e96e2006-10-24 05:28:45 +0000713 Speed up the CFF font loader. With some large CFF fonts,
714 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000715
Werner Lemberg715e96e2006-10-24 05:28:45 +0000716 * src/cff/cffload.c (cff_get_offset): Removed.
717 (cff_new_index): Inline functionality of `cff_get_offset'.
718 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
719 (cff_charset_done): Call `cff_charset_free_cids'.
720 (cff_charset_load): Call `cff_charset_compute_cids'.
721 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
722
723 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
724 with FT_NEXT_XXX.
725
726
727 Speed up the Postscript hinter, with more than 100% speed increase
728 on my machine.
729
730 * src/pshinter/pshalgo.c (psh_corner_is_flat,
731 psh_corner_orientation): New functions.
732 (psh_glyph_compute_inflections): Merge loops for efficiency.
733 Use `psh_corner_orientation'.
734 (psh_glyph_init): Use `psh_corner_is_flat'.
735 (psh_hint_table_find_strong_point): Renamed to...
736 (psh_hint_table_find_strong_points): This.
737 Rewrite, adding argument to handle all points at once.
738 Update all callers.
739 (PSH_MAX_STRONG_INTERNAL): New macro.
740 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000741
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00007422006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
743
744 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000745 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000746
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007472006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
748
749 * docs/INSTALL.CROSS: New document file for cross-building.
750
751 * builds/unix/configure.raw: Preliminary cross-building support.
752 Find native C compiler and pass it by CC_BUILD, and
753 find suffix for native executable and pass it by EXEEXT_BUILD.
754 Also suffix for target executable is passed by EXEEXT.
755
Werner Lembergb9e6d692006-10-15 08:58:40 +0000756 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
757 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000758 CC_BUILD and EXEEXT_BUILD.
759
Werner Lembergb9e6d692006-10-15 08:58:40 +0000760 * builds/exports.mk (APINAMES_EXE): Change the extension for
761 apinames from the suffix for target (E) to that for building host
762 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000763
Werner Lemberg82a07e92006-10-12 06:20:44 +00007642006-10-12 Werner Lemberg <wl@gnu.org>
765
766 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
767 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
768 which reference those files.
769
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007702006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
771
Werner Lembergb9e6d692006-10-15 08:58:40 +0000772 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
773 embedded in freetype2.pc and freetype-config. Use it to record
774 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000775
776 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
777
778 * builds/unix/freetype-config.in: Ditto.
779
Werner Lemberg28e17d92006-10-11 17:27:47 +00007802006-10-11 Werner Lemberg <wl@gnu.org>
781
782 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
783 development.
784
Jens Claudius336d2292006-10-03 08:53:37 +00007852006-10-03 Jens Claudius <jens.claudius@yahoo.com>
786
787 * include/freetype/config/ftstdlib.h: Cast away volatileness from
788 argument to ft_setjmp.
789
790 * include/freetype/internal/ftvalid.h: Add comment that
791 ft_validator_run must not be used.
792
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007932006-10-01 Werner Lemberg <wl@gnu.org>
794
795 * src/base/ftbase.c: Undo change from 2006-09-30.
796
797 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
798
7992006-09-30 David Turner <david@freetype.org>
800
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000801 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
802 s/unpatented_hinting/ignore_unpatented_hinter/.
803 Update all callers.
804
805 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
806 auto-hinting shall be used or not.
807
808 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000809
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008102006-09-30 Werner Lemberg <wl@gnu.org>
811
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000812 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
813 in use).
814
815 * src/base/ftbase.c: Include `ftlcdfil.c'.
816
Werner Lemberg9b15ea32006-09-29 18:22:11 +00008172006-09-29 Werner Lemberg <wl@gnu.org>
818
819 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
820 overlapping segments. Bug reported by Stefan Koch.
821
David Turnerad830712006-09-27 16:20:59 +00008222006-09-28 David Turner <david@freetype.org>
823
Werner Lemberg2c002e12006-09-29 21:31:53 +0000824 Fix a bug in the automatic unpatented hinting support which prevents
825 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000826
Werner Lemberg2c002e12006-09-29 21:31:53 +0000827 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
828 s/force_autohint/unpatented_hinting/. Update all callers.
829
830 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
831
832 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000833
David Turner8a317cf2006-09-27 07:52:48 +00008342006-09-27 David Turner <david@freetype.org>
835
Werner Lemberg2c002e12006-09-29 21:31:53 +0000836 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000837
David Turner8a317cf2006-09-27 07:52:48 +0000838
David Turnere140f142006-10-23 08:56:57 +0000839 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000840 In a default build, the function `FT_Library_SetLcdFilter' returns
841 `FT_Err_Unimplemented_Feature'; you need to #define
842 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
843 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000844
Werner Lemberg2c002e12006-09-29 21:31:53 +0000845 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000846
Werner Lemberg2c002e12006-09-29 21:31:53 +0000847 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
848 typedef.
849 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
850 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000851
Werner Lemberg2c002e12006-09-29 21:31:53 +0000852 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
853 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000854
Werner Lemberg2c002e12006-09-29 21:31:53 +0000855 Handle subpixel rendering.
856 Simplify function.
857 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
858 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
859
860 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
861 pointing to <freetype/ftlcdfil.h>.
862
863 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
864 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
865
866 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000867
Werner Lemberge20df4a2006-09-27 06:29:21 +00008682006-09-26 David Bustin
869
870 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
871 correctly. Reported as Savannah bug #17843.
872
David Turner6f8c6222006-09-26 15:42:44 +00008732006-09-26 David Turner <david@freetype.org>
874
Werner Lemberg110246c2006-09-26 21:55:44 +0000875 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
876 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
877 horizontal and vertical hinting for the purpose of debugging the
878 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000879
Werner Lemberg110246c2006-09-26 21:55:44 +0000880 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
881 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000882
Werner Lemberg110246c2006-09-26 21:55:44 +0000883 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
884
885 * include/freetype/config/ftoption.h, devel/ftoption.h
886 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
887 we want to compile LCD-optimized rendering code la ClearType) or
888 not. The macro *must* be disabled in default builds of the library
889 for patent reasons.
890
891 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
892 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
893 isn't defined at compile time. This only changes the content of the
894 rendered glyph to match the one of normal gray-level rendering,
895 hence clients should not need to be modified.
896
897 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000898
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008992006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
900
901 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
902 LWFN fails and both are available.
903
David Turnerf3050052006-09-11 12:00:32 +00009042006-09-11 David Turner <david@freetype.org>
905
Werner Lembergf9644552006-09-12 13:48:10 +0000906 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
907 report their English names through an Apple Roman
908 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000909
Werner Lembergf9644552006-09-12 13:48:10 +0000910 If the font uses another name entry with language_id == English, it
911 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000912
Werner Lembergf9644552006-09-12 13:48:10 +0000913 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
914 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000915
Werner Lemberg36d2eab2006-09-05 19:24:34 +00009162006-09-05 Werner Lemberg <wl@gnu.org>
917
918 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000919 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000920 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
921 `HAN NOM B.ttf').
922
923 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
924
David Turner772e55d2006-09-05 09:45:15 +00009252006-09-05 David Turner <david@freetype.org>
926
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000927 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000928
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000929 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
930 (TRaster): Remove `count_ex' and `count_ey'.
931 (gray_find_cell): Remove 2nd and 3rd argument.
932 (gray_alloc_cell): Merged with `gray_find_cell'.
933 (gray_record_cell): Simplify.
934 (gray_set_cell): Rewrite.
935 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
936 (gray_render_span): Don't use FT_MEM_SET for small values.
937 (gray_dump_cells) [DEBUG_GRAYS]: New function.
938 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
939 bitmap scanline.
940 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000941
David Turneraa557a92006-09-04 16:42:44 +00009422006-09-04 David Turner <david@freetype.org>
943
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000944 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
945 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000946
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009472006-09-03 Werner Lemberg <wl@gnu.org>
948
949 * devel/ftoption.h: Synchronize with
950 include/freetype/config/ftoption.h.
951
952 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
953 variable declaration.
954 (gray_convert_glyph): Fix compiler warnings.
955
David Turner6d79f212006-09-01 14:09:35 +00009562006-09-01 David Turner <david@freetype.org>
957
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000958 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
959 to recognize a few fonts that require the automatic unpatented
960 loader.
David Turnerbd502952006-09-01 19:05:24 +0000961
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000962 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
963 rasterizer. The speed improvement is between 15% and 25%, depending
964 on the font data.
965
966 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
967 (TCell): Redefine.
968 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
969 (gray_init_cells): Updated.
970 (gray_find_cell, gray_alloc_cell): New functions.
971 (gray_record_cell): Rewritten to use `gray_find_cell' and
972 `gray_alloc_cell'.
973 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
974 QSORT_THRESHOLD):
975 Removed.
976 (gray_shell_sort, gray_quick_sort, gray_check_sort,
977 gray_dump_cells): Removed.
978 (gray_sweep): Rewritten.
979 (gray_convert_glyph): Rewrite code which used one of the sorting
980 functions.
981 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000982
Werner Lembergd898aed2006-08-29 09:50:34 +00009832006-08-29 Dr. Werner Fink <werner@suse.de>
984
985 * configure: Make it possible to handle configure options which
986 have strings containing spaces.
987
9882006-08-27 David Turner <david@freetype.org>
989
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000990 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
991 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
992 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
993
994 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
995 src/truetype/truetype.c, src/truetype/ttdriver.c,
996 src/truetype/ttgload.c, src/truetype/ttgload.h,
997 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
998 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
999 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1000
1001 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1002 member `force_autohint'.
1003
1004 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1005
1006 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1007 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001008
Jens Claudiusa787f452006-08-27 11:26:18 +000010092006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1010
1011 Fix miscellaneous compiler warnings.
1012
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001013 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1014 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001015
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001016 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1017 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1018 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001019
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001020 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1021 volatileness of argument to ft_longjmp. Spotted by Werner
1022 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001023
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001024 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1025 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001026
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001027 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1028 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001029
Werner Lembergc4c35b72006-08-27 08:03:46 +000010302006-08-27 Werner Lemberg <wl@gnu.org>
1031
1032 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1033 Reported by Jens.
1034
Jens Claudius088e44e2006-08-22 14:24:30 +000010352006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001036
Jens Claudius088e44e2006-08-22 14:24:30 +00001037 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001038 about addresses of volatile objects passed as function arguments as
1039 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001040
Werner Lembergc4c35b72006-08-27 08:03:46 +00001041 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1042 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001043
1044 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1045 argument `table' a pointer to a volatile object.
1046
1047 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1048 argument `table' a pointer to a volatile object.
1049
Jens Claudius2652bd52006-08-18 17:20:37 +000010502006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1051
1052 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1053 variable `_sfnt' as volatile since it must keep its value across
1054 a call to ft_setjmp.
1055 (gxv_validate): Same for local variables `memory' and `valid'.
1056 (classic_kern_validate): Same for local variables `memory',
1057 `ckern', and `valid'.
1058
1059 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1060 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1061 `jstf', and 'valid'.
1062
1063 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1064 local variable `cmap'.
1065
David Turner9fbfc6a2006-08-16 09:11:31 +000010662006-08-16 David Turner <david@freetype.org>
1067
Werner Lemberg12342992006-08-19 11:18:09 +00001068 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1069 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001070
Werner Lemberg12342992006-08-19 11:18:09 +00001071 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1072 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001073
David Turner33f5f242006-08-16 16:50:55 +00001074
Werner Lemberg12342992006-08-19 11:18:09 +00001075 Improvements to native TrueType hinting. This is a first try,
1076 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1077
1078 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1079 `extra_points2'.
1080
1081 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1082 `orus'.
1083
1084 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1085 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1086 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1087 handle `extra_points2'.
1088
1089 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1090 Remove compiler warning.
1091 (cur_to_arg): Remove macro.
1092 (TT_Hint_Glyph): Updated.
1093 (TT_Process_Simple_Glyph): Handle `orus'.
1094
1095 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1096 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1097 (LOC_Ins_IUP): Renamed to...
1098 (IUP_WorkerRec): This.
1099 Add `orus' member.
1100 (Shift): Renamed to...
1101 (_iup_worker_shift): This.
1102 Updated.
1103 (Interp): Renamed to...
1104 (_iup_worker_interpolate): This.
1105 Updated to handle `orus'.
1106 (Ins_IUP): Updated.
1107
1108 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1109 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001110
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000011112006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1112
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001113 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001114 build ftvalid in ft2demos. This has been inadvertedly changed
1115 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001116
11172006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1118
Werner Lemberg12342992006-08-19 11:18:09 +00001119 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1120 Jens:
1121 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001122
Werner Lemberg12342992006-08-19 11:18:09 +00001123 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1124 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001125
1126 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1127
Jens Claudius9950adc2006-08-13 12:14:36 +000011282006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1129
Werner Lemberg12342992006-08-19 11:18:09 +00001130 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1131 T1_TOKEN_TYPE_KEY.
1132 (T1_FieldRec): Add `dict'.
1133 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1134 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1135 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001136
Werner Lemberg12342992006-08-19 11:18:09 +00001137 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1138 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001139
1140 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1141
1142 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001143 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1144 not T1_TOKEN_TYPE_ANY.
1145 (ps_parser_load_field): Make sure a token that should be a string or
1146 name is really a string or name.
1147 Avoid memory leak if a keyword has been already encountered and its
1148 value is overwritten.
1149 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1150 T1_FIELD_XXX.
1151 (parse_dict): Ignore keywords that occur in the wrong dictionary
1152 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001153
Werner Lemberg12342992006-08-19 11:18:09 +00001154 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1155 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001156
Werner Lemberg12342992006-08-19 11:18:09 +00001157 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1158 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001159
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011602006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1161
1162 Move creation of field `buildchar' of T1_DecoderRec out of
1163 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1164 of it.
1165
1166 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1167 and `T1_Compute_Max_Advance'.
1168
1169 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1170 Remove field `face', add `len_buildchar'.
1171
1172 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1173 field `buildchar'.
1174
1175 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1176 finisher for T1_Decoder.
1177 (cid_slot_load_glyph): Do not ignore failure when initializing the
1178 T1_Decoder.
1179
1180 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1181 Updated.
1182 (t1_decoder_init): Remove initialization of fields `buildchar' and
1183 `len_buildchar'.
1184 (t1_decoder_done): Remove deallocation of field `buildchar'.
1185
1186 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1187 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1188 T1_Decoder.
1189 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1190 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1191 case of error.
1192
1193 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1194 `buildchar' of T1_FaceRec.
1195
1196 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1197 `buildchar' of T1_FaceRec.
1198
Werner Lemberg1a380e02006-07-14 18:28:08 +000011992006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1200
1201 * freetype2/include/freetype/internal/psaux.h: New macros
1202 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1203 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1204 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1205 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1206 (T1_DecoderRec): New fields `buildchar' and `face'.
1207 (IS_PS_TOKEN): New macro.
1208
1209 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1210 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1211
1212 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1213 `default_design_vector' and `num_default_design_vector'.
1214
1215 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1216 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1217 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1218
1219 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1220 `token' argument to be NULL if we want only to count the number of
1221 tokens.
1222 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1223 want to skip the array.
1224 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1225 want to skip the array.
1226
1227 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1228 support for (partially commented out) othersubrs 19-25, 27, and 28.
1229 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1230 (t1_decoder_done): Release new field `buildchar'.
1231
1232 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1233 functions.
1234 (t1_keywords): Register them.
1235 (t1_allocate_blend): Updated.
1236 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1237 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1238 (parse_dict): Remove `keyword_flags' argument.
1239 Use new macro IS_PS_TOKEN.
1240 Changed function so that later PostScript definitions override
1241 earlier ones.
1242 (t1_init_loader): Initialize new field `keywords_encountered'.
1243 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1244 `len_buildchar'.
1245 Remove `keywords_flags'.
1246
1247 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1248 `keywords_encountered'.
1249 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1250
1251 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1252 New entries for parsing /NDV, /CDV, and /DesignVector.
1253
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012542006-07-07 Werner Lemberg <wl@gnu.org>
1255
1256 Add many checks to protect against malformed PCF files.
1257
1258 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1259 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1260
1261 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1262 data and check that tables don't overlap (using a simple
1263 bubblesort).
1264 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1265 New macros which give the size of data structures in the data
1266 stream.
1267 (pcf_get_properties): Use rough estimates to get array size limits.
1268 Assign `face->nprops' and `face->properties' earlier so that a call
1269 to PCF_Face_Done can do the clean-up in case of error.
1270 Protect against invalid string offsets.
1271 (pcf_get_metrics): Clean up code.
1272 Adjust tracing message levels.
1273 Use rough estimate to get array size limit.
1274 (pcf_get_bitmaps): Clean up code.
1275 Adjust tracing message levels.
1276 Use rough estimates to get offset limits.
1277 (pcf_get_encodings): Adjust tracing message level.
1278 (pcf_get_accel): Clean up code.
1279
Werner Lemberg8eb05252006-06-27 06:20:01 +000012802006-06-26 Werner Lemberg <wl@gnu.org>
1281
1282 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1283 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1284
Werner Lemberg24703f82006-06-26 19:12:51 +000012852006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1286
1287 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1288 (t1_decoder_parse_charstrings): Operator with
1289 opcode 15 pops its two arguments.
1290 Handle the case where the pops of an othersubr may be part of a
1291 subroutine.
1292 Handle unknown othersubrs gracefully: count their operands and let
1293 the following pop operators push the operands as the results onto
1294 the Type1 stack.
1295 Improve handling of setcurrentpoint opcode.
1296
Werner Lembergc011f4c2006-06-26 09:40:00 +000012972006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1298
1299 The Type 1 parser now skips over top-level procedures as required
1300 for a `Simplified Parser'. This makes the parser more robust as it
1301 doesn't poke around in PostScript code. Additionally, it makes the
1302 FontDirectory hackery in src/type1/t1load.c unnecessary.
1303
1304 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1305 (skip_literal_string): Add FT_Error as return value.
1306 Handle escapes better.
1307 (skip_string): Add FT_Error as return value.
1308 Don't set `parser->error' but return error code directly.
1309 (skip_procedure): New function.
1310 (ps_parser_skip_PS_token): Handle procedures.
1311 Update code.
1312 (ps_parser_to_token): Update code.
1313 (ps_parser_load_field_table): Handle bbox entries also.
1314
1315 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1316 Add commented-out code for synthetic fonts.
1317
Werner Lemberga2da05c2006-06-25 06:27:27 +000013182006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1319
1320 Fix two hinting bugs as reported in
1321 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1322
1323 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1324 `first_point' member.
1325
1326 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1327 `first_point'.
1328 (TT_Process_Composite_Glyph): Always untouch points.
1329
1330 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1331 `first_point' and `last_point' in case of composite glyphs.
1332 (Ins_IUP): Fix computation of `end_point'.
1333
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000013342006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1335
Werner Lembergef3d2c22006-06-25 06:07:14 +00001336 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1337 Mac. The original patch was written by David Sachitano and Lawrence
1338 Coopet, and modified by Sean McBride for MPW compatibility. Only
1339 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001340
Werner Lembergef3d2c22006-06-25 06:07:14 +00001341 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1342 Mac OS X platforms.
1343 (OS_INLINE): Undefine before definition.
1344 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1345 FontAssociation table in FOND resource.
1346 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1347 and fontSize at each entry of FontAssociation table in FOND
1348 resource.
1349 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1350 ffStylOff of FamilyRecord header of FOND resource, the header,
1351 fontSize, fontID at each entry of FontAssociation table, and
1352 StyleMapping table.
1353 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001354
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013552006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1356
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001357 Public API of TrueTypeGX, OpenType, and classic kern table validator
1358 should return `FT_Err_Unimplemented_Feature' if validation service
1359 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001360 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001361 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1362
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001363 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1364 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1365 unavailable.
1366 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1367 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001368
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001369 * src/base/ftotval.c (FT_OpenType_Validate): Return
1370 FT_Err_Unimplemented_Feature if OpenType validation service is
1371 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001372
Werner Lembergb10e45a2006-06-08 07:32:56 +000013732006-06-08 Werner Lemberg <wl@gnu.org>
1374
1375 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1376 errors.
1377
David Turner5f1f7502006-06-07 05:11:50 +000013782006-06-07 David Turner <david@freetype.org>
1379
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001380 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1381 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1382 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001383
David Turner457b4a82006-06-06 08:14:14 +000013842006-06-06 David Turner <david@freetype.org>
1385
Werner Lemberg4836f952006-06-06 12:54:08 +00001386 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001387
Werner Lemberg4836f952006-06-06 12:54:08 +00001388 We change `ps_unicodes_init' so that it also takes a
1389 `free_glyph_name' callback to release the glyph names returned by
1390 `get_glyph_name'
1391
1392 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1393 Renamed to ...
1394 (PS_GetGlyphNameFunc): This.
1395 (PS_FreeGlyphNameFunc): New typedef.
1396 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1397
1398 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1399 argument.
1400 (cff_sid_free_glyph_name): New function.
1401 (cff_cmap_unicode_init): Updated.
1402
1403 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1404
1405 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1406 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001407
1408
David Turner09717352006-06-04 14:33:08 +000014092006-06-04 David Turner <david@freetype.org>
1410
Werner Lembergd724f202006-06-04 15:17:41 +00001411 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1412 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001413 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001414
Werner Lembergd724f202006-06-04 15:17:41 +00001415 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1416 of `face->num_glyphs' which missed the last glyph, due to
1417 the offset-by-1 computation, since the PFR format doesn't
1418 guarantee that glyph index 0 corresponds to the `missing
1419 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001420
Werner Lemberg33779662006-05-26 06:30:05 +000014212006-05-25 Werner Lemberg <wl@gnu.org>
1422
1423 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1424 `-no-undefined'. Reported by Christian Biesinger.
1425
Werner Lemberg24773d62006-05-20 08:53:13 +000014262006-05-19 Brian Weed <bw@imaginengine.com>
1427
1428 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1429 have debug information, and debug libraries use `C7 compatible'
1430 debug info.
1431
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000014322006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1433
Werner Lemberga6523a62006-05-20 08:47:01 +00001434 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001435 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001436
Werner Lemberga6523a62006-05-20 08:47:01 +00001437 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1438 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001439
1440 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001441 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001442
14432006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1444
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001445 * build/unix/configure.raw: Add a fallback to disable Carbon
1446 dependency, if configured with no options on Mac OS X.
1447
14482006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1449
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001450 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001451 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001452 the second part of Savannah bug #16590.
1453
Werner Lemberg545c4e52006-05-17 22:55:04 +000014542006-05-18 Werner Lemberg <wl@gnu.org>
1455
1456 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1457 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1458
David Turnerdc3ff312006-05-17 12:59:35 +000014592006-05-17 David Turner <david@freetype.org>
1460
Werner Lemberg545c4e52006-05-17 22:55:04 +00001461 This is a major patch used to drastically improve the performance of
1462 loading glyphs. This both speeds up loading the glyph vectors
1463 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001464
Werner Lemberg545c4e52006-05-17 22:55:04 +00001465 We now use inline assembler code with GCC to implement `FT_MulFix',
1466 which is probably the most important function related to the
1467 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001468
Werner Lemberg545c4e52006-05-17 22:55:04 +00001469 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001470
1471
Werner Lemberg545c4e52006-05-17 22:55:04 +00001472 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1473 `cursor' and `limit'.
1474
1475 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1476 New functions.
1477 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1478 [TEST]: Remove.
1479
1480 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1481 code.
1482
1483 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1484 `FT_ZERO'
1485 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1486 (af_glyph_hints_reload: Rewrite recognition of weak points.
1487
1488 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1489 constant values out of the loops.
1490
1491 * src/autofit/aftypes.h: Updated.
1492
1493 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1494
1495 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1496 product to get orientation.
1497
1498 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1499 (FT_Stream_OpenGzip): Use it to handle small files directly in
1500 memory.
1501
1502 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1503 Improve performance.
1504
1505 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1506 `limit'.
1507
1508 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1509 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1510 exceedingly large values of number of contours. Speed up by
1511 reducing the number of loops.
1512
1513 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1514
1515
1516 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1517 used to detect rogue clients from 4 to 16. This is to prevent some
1518 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1519 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001520
Werner Lembergde2d90a2006-05-17 08:54:30 +000015212007-05-17 Werner Lemberg <wl@gnu.org>
1522
1523 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001524 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001525
15262006-05-16 Werner Lemberg <wl@gnu.org>
1527
1528 * docs/PROBLEMS: Updated icl issues.
1529
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001530----------------------------------------------------------------------------
1531
Werner Lemberg42b63b22007-01-21 21:01:33 +00001532Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001533David Turner, Robert Wilhelm, and Werner Lemberg.
1534
1535This file is part of the FreeType project, and may only be used, modified,
1536and distributed under the terms of the FreeType project license,
1537LICENSE.TXT. By continuing to use, modify, or distribute this file you
1538indicate that you have read the license and understand and accept it
1539fully.
1540
1541
1542Local Variables:
1543version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001544coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001545End: