blob: 6ba919af9cc43b3a8e38f300205ce94c1620abb7 [file] [log] [blame]
David Turnera7ee6082007-01-30 10:33:53 +000012007-01-30 David Turner <david@freetype.org>
2
3 * src/autofit/aftypes.h, src/autofit/afloader.c: disabling the
4 warper (i.e. light hinting improvements) to make a 2.3.1 bugfix
5 release before introducing a new feature. This should give us
6 more time to tune and improve the warper for the next release
7
David Turnerd91eebd2007-01-26 15:05:41 +000082007-01-25 David Turner <david@freetype.org>
9
Werner Lembergbf241762007-01-26 16:08:49 +000010 For light auto-hinting, improve glyph advance widths and resurrect
11 normal/full hinting to its normal quality.
12
13 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
14 and `xmax_delta'.
15 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
16 and `xmax_delta'.
17
18 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
19 preprocessor conditional with if-clause, handling both light and
20 normal mode.
21
22 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
23 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000024
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000252007-01-25 Werner Lemberg <wl@gnu.org>
26
27 * docs/release: Updated -- Savannah uses a new uploading scheme.
28
David Turnera42567b2007-01-25 12:23:37 +0000292007-01-25 David Turner <david@freetype.org>
30
Werner Lembergd7855662007-01-25 13:53:56 +000031 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +000032
Werner Lembergd7855662007-01-25 13:53:56 +000033 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
34 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
35 functions.
David Turnera42567b2007-01-25 12:23:37 +000036
Werner Lembergd7855662007-01-25 13:53:56 +000037 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000038
Werner Lembergb1be9e82007-01-25 11:50:00 +0000392007-01-25 Werner Lemberg <wl@gnu.org>
40
41 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000042 correctly in a sanity check. Since this function is only used to
43 load local and global functions, any charstring that called the last
44 local/global function would fail otherwise. This fixes Savannah bug
45 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000046
47 * docs/CHANGES: Document it.
48
David Turnerb6de8d12007-01-23 15:51:50 +0000492007-01-23 David Turner <david@freetype.org>
50
Werner Lembergb1be9e82007-01-25 11:50:00 +000051 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
52 prevented compilation when disabling both the unpatented and the
53 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000054
Werner Lembergb1be9e82007-01-25 11:50:00 +000055
56 Fix and enable the warper to improve `light' hinting mode. This is
57 not necessarily a final version, but it seems to work well.
58
59 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
60 Disable code.
61 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
62 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
63
64 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
65 (af_warper_compute_line_best): Fix array size of `scores'.
66 (af_warper_compute): Better handling of border cases.
67 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
68 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +000069
Werner Lemberg011d1112007-01-21 09:36:00 +0000702007-01-21 Werner Lemberg <wl@gnu.org>
71
Werner Lemberg42b63b22007-01-21 21:01:33 +000072 * ChangeLog: Split off older entries into...
73 * ChangeLog.22: This new file.
74
752007-01-21 Werner Lemberg <wl@gnu.org>
76
Werner Lemberg555258f2007-01-21 09:46:37 +000077 * docs/CHANGES: Document SHZ fix.
78
792007-01-21 George Williams <gww@silcom.com>
80
81 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
82 points.
83
842007-01-21 Werner Lemberg <wl@gnu.org>
85
Werner Lemberg011d1112007-01-21 09:36:00 +000086 * src/sfnt/ttmtx.c (tt_face_get_metrics)
87 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
88
Werner Lemberg87a5a432007-01-17 12:44:39 +0000892007-01-17 Werner Lemberg <wl@gnu.org>
90
Werner Lembergb8003292007-01-17 12:56:25 +000091
92 * Version 2.3.0 released.
93 =========================
94
95
96 Tag sources with `VER-2-3-0-FINAL'.
97
982007-01-17 Werner Lemberg <wl@gnu.org>
99
Werner Lemberg87a5a432007-01-17 12:44:39 +0000100 * docs/release: Updated.
101
David Turner22122722007-01-16 20:06:44 +00001022007-01-16 David Turner <david@freetype.org>
103
Werner Lemberg87a5a432007-01-17 12:44:39 +0000104 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
105 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
106 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
107 warnings.
David Turner22122722007-01-16 20:06:44 +0000108
Werner Lemberg267e1d72007-01-15 07:48:09 +00001092007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
110
111 * builds/amiga/makefile, builds/amiga/makefile.os4,
112 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
113
114 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
115
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001162007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
117
118 Fix various compiler warnings.
119
120 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
121 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
122 s/index/strike_index/.
123 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
124
125 * src/gxvalid/gxvmorx5.c
126 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
127
128 * src/truetype/ttinterp.c (Compute_Point_Displacement),
129 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
130 uninitialized variables.
131
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001322007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
133
134 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
135
Werner Lemberg281c1482007-01-13 22:50:51 +00001362007-01-13 Werner Lemberg <wl@gnu.org>
137
138 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
139 versions up to 0x3FF without complaining.
140
Werner Lembergac250b22007-01-13 14:01:36 +00001412007-01-13 Derek Clegg <dclegg@apple.com>
142
143 Add FT_Get_PS_Font_Info interface to CFF driver.
144
145 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
146 (CFF_FontRec): Add `font_info' field.
147
148 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
149 (cff_font_done): Free font->font_info if necessary.
150
151 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
152 (cff_service_ps_info): Register cff_ps_get_font_info.
153
Werner Lemberg23df31a2007-01-13 08:45:00 +00001542007-01-13 Werner Lemberg <wl@gnu.org>
155
156 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
157 with C++ compiler.
158
159 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
160 af_glyph_hints_dump_edges): Ditto.
161
162 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
163 `modules.cfg').
164
165 * src/sfnt/ttsbit0.h: Remove.
166
167 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
168
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001692007-01-12 David Turner <david@freetype.org>
170
171 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
172 bug in the bitmap emboldener if the pitch of the source bitmap is
173 much larger than its width.
174
175 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
176 compilation warning.
177
Werner Lemberg6d96d312007-01-12 10:30:19 +00001782007-01-12 Werner Lemberg <wl@gnu.org>
179
180 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
181 `automake' CVS module from sources.redhat.com.
182
Werner Lemberg17432b52007-01-12 09:28:44 +00001832007-01-11 Werner Lemberg <wl@gnu.org>
184
185 * src/type1/t1load.c (is_space): Removed.
186 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
187 (parse_charstrings): Use IS_PS_TOKEN.
188
189
190 * autogen.sh: Avoid bash specific syntax.
191
David Turner038ace22007-01-11 15:00:59 +00001922007-01-11 David Turner <david@freetype.org>
193
Werner Lemberg17432b52007-01-12 09:28:44 +0000194 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000195
Werner Lemberg17432b52007-01-12 09:28:44 +0000196 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000197
Werner Lemberg17432b52007-01-12 09:28:44 +0000198 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
199 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000200 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000201
Werner Lemberg17432b52007-01-12 09:28:44 +0000202 * autogen.sh: Small fix to get it working on Mac OS X properly:
203 The issue is that GNU libtool is called `glibtool' on this platform,
204 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000205
David Turner2628ea92007-01-10 13:15:56 +00002062007-01-10 David Turner <david@freetype.org>
207
Werner Lemberg17432b52007-01-12 09:28:44 +0000208 * all-sources: Tag all sources with VER-2-3-0-RC1 and
209 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000210
Werner Lemberg17432b52007-01-12 09:28:44 +0000211 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
212 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
213 version number to 2.3.0.
214
215 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
216 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000217
218 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000219 include/freetype/ftlcdfil.h: Update reference documentation with
220 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000221
Werner Lemberg17432b52007-01-12 09:28:44 +0000222 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
223 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000224
Werner Lembergbf02d392007-01-10 07:07:37 +00002252007-01-10 Derek Clegg <dclegg@apple.com>
226
227 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
228 values.
229
David Turnerf48b60e2007-01-08 15:15:32 +00002302007-01-08 David Turner <david@freetype.org>
231
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000232 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000233
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000234 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
235 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000236 corresponding to a given character pixel size.
237
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000238 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
239 `gasp' table, in order to avoid potential problems with later
240 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000241
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000242 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
243 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000244
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000245 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
246 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
247 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
248 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000249
Werner Lemberge6b6f372007-01-07 00:06:47 +00002502007-01-07 Werner Lemberg <wl@gnu.org>
251
Werner Lembergb8004d22007-01-07 09:13:38 +0000252 * src/cid/cidparse.c (cid_parser_new): Improve error message for
253 Type 11 fonts.
254 Scan for `/sfnts' token.
255
2562007-01-07 Werner Lemberg <wl@gnu.org>
257
258 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000259
Werner Lembergbe5f7972007-01-06 07:51:48 +00002602007-01-06 Werner Lemberg <wl@gnu.org>
261
262 * src/cff/cffload.c (cff_index_init): Remove unused variable.
263 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
264
David Turnera8cf42b2007-01-04 16:46:46 +00002652007-01-04 David Turner <david@freetype.org>
266
Werner Lembergf6294392007-01-06 07:47:45 +0000267 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
268 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000269
Werner Lembergf6294392007-01-06 07:47:45 +0000270
271 Do not allocate interpreter-specific tables in memory if we are not
272 going to load glyphs with the bytecode interpreter anyway.
273
274 * src/truetype/ttgload.c (tt_loader_init): Load execution context
275 only if glyph is hinted.
276 Updated.
277 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
278 and `cvs_ready'.
279 Add `tt_size_ready_bytecode' declaration.
280 * src/truetype/ttobjs.c (tt_size_done_bytecode,
281 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
282 (tt_size_init): Move most code into `tt_size_init_bytecode'.
283 (tt_size_done): Move most code into `tt_size_done_bytecode'.
284 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000285
David Turner91a34022007-01-05 14:47:08 +0000286
Werner Lembergf6294392007-01-06 07:47:45 +0000287 Don't extract the metrics table from the SFNT font file. Instead,
288 reparse it on each glyph load. The runtime difference is not
289 noticeable, and it can save a lot of heap memory when memory-mapped
290 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000291
Werner Lembergf6294392007-01-06 07:47:45 +0000292 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
293 `horz_metrics_offset' and `vert_metrics_ofset'.
294 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
295 Updated.
296
297
298 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
299
300
301 Do not load the CFF index offsets into memory, since this wastes a
302 *lot* of heap memory with large Asian CFF fonts. There is no
303 significant performance loss.
304
305 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
306 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
307 `data_size'.
308 (CFF_CharsetRec): Add field `num_glyphs'.
309
310 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
311 cff_charset_cid_to_gindex): New functions.
312 (cff_new_index): Renamed to...
313 (cff_index_init): This. Update all callers.
314 Updated -- some code has been moved to `cff_index_load_offsets'.
315 (cff_done_index): Renamed to...
316 (cff_index_done): This. Update all callers.
317 (cff_index_get_pointers, cff_index_access_element): Updated to use
318 stream offsets.
319 (cff_charset_compute_cids): Set `num_glyphs' field.
320 (cff_encoding_load): Updated.
321
322 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000323
3242007-01-04 David Turner <david@freetype.org>
325
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000326 * docs/INSTALL.UNIX: Simplify some parts, add reference to
327 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000328
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000329 * README.CVS: Add common problem description and solution
330 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000331
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000332 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000333
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000334 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000335
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000336 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000337
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000338 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
339 (TWorker): This.
340 Remove `count_table' and `memory'.
341 Make `grays' a pointer.
342 (TRaster): New structure.
343 (count_table): New static array.
344 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
345 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
346 ft_black_set_mode, ft_black_render): Updated.
347 (ft_black_init): Don't initialize `count_table'.
348 (ft_black_reset): Use the render pool. This saves about 6KB of
349 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000350
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000351 * src/smooth/ftgrays.c (TRaster): Replaced with...
352 (TWorker): This.
353 Remove `memory'.
354 (TRaster): New structure.
355
356 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
357 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
358 gray_render_span, gray_raster_render): Updated.
359 (gray_raster_reset): Use the render pool. This saves about 6KB of
360 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000361
David Turner8a6c44e2007-01-04 17:03:11 +0000362 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
363 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000364 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
365 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
366 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000367
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000368 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
369 Remove a typo that results in no hinting and a memory leak with some
370 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000371
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000372 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000373 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000374 CFF_Faces in it. We need to close all faces before destroying the
375 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000376
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003772007-01-02 Werner Lemberg <wl@gnu.org>
378
379 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
380 Remove compiler warning.
381
David Turner9207e002007-01-02 16:58:13 +00003822007-01-02 David Turner <david@freetype.org>
383
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000384 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000385
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003862006-12-31 Masatake YAMATO <jet@gyve.org>
387
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000388 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
389 function.
390 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000391 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000392 `gxv_kern_subtable_fmt0_pairs_validate'.
393
David Turner115b4422006-12-22 11:37:05 +00003942006-12-22 David Turner <david@freetype.org>
395
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000396 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
397 warnings.
David Turner115b4422006-12-22 11:37:05 +0000398
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000399 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
400 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000401
Werner Lemberg4755bf72006-12-16 08:58:44 +00004022006-12-16 Anders Kaseorg <anders@kaseorg.com>
403
404 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
405 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
406
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004072006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
408
Werner Lemberg9b774e22007-01-16 06:11:27 +0000409 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000410 sync with the modification by Jens Claudius on 2006-08-22; cf.
411 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 +0000412
4132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
414
415 * src/base/ftmac.c: Specialized for Mac OS X only.
416 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
417 * builds/unix/configure.raw: Ditto. When explicit switches for
418 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
419 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
420
4212006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
422
423 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
424 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
425 instead of src/base/ftmac.c
426 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
427 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
428 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
429 that cannot be built at present.
430
4312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
432
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000433 * src/base/ftobjs.c: Improvement of resource fork handler for
434 POSIX, cf.
435 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000436 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
437 format or .dfont, to simulate the face index number counted by ftmac.c.
438 (IsMacResource): Return the number of scalable faces correctly.
439
Werner Lembergec5b4502006-12-10 07:51:38 +00004402006-12-10 Werner Lemberg <wl@gnu.org>
441
442 * builds/toplevel.mk (version): Protect against `distclean' target.
443
Werner Lembergb26b3142006-12-09 20:01:43 +00004442006-12-09 Werner Lemberg <wl@gnu.org>
445
446 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
447 or `type'.
448
449 * builds/freetype.mk (version): Extracted from freetype.h, using
450 GNU make's built-in string functions.
451 (refdoc): Use $(version) instead of static version number.
452
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004532006-12-08 Werner Lemberg <wl@gnu.org>
454
455 * builds/toplevel.mk (dist): Extract version number from freetype.h.
456
Werner Lemberg15c29502006-12-09 07:29:54 +00004572006-12-08 Vladimir Volovich <vvv@vsu.ru>
458
459 * src/tools/apinames (State): Remove final comma in structure -- xlc
460 v5 under AIX 4.3 doesn't like this.
461
David Turnerdbf3b432006-12-07 21:18:09 +00004622006-12-07 David Turner <david@freetype.org>
463
Werner Lemberg256a3512006-12-08 06:49:33 +0000464 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
465 to the spacing of auto-fitted glyphs. This only impacts rare
466 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000467
Werner Lemberg11171312006-12-03 09:43:40 +00004682006-12-03 Werner Lemberg <wl@gnu.org>
469
470 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
471
Werner Lemberg960ba592006-12-01 08:20:47 +00004722006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000473
Werner Lemberg960ba592006-12-01 08:20:47 +0000474 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
475 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
476 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000477
David Turner80658e52006-11-28 08:09:20 +0000478
Werner Lemberg960ba592006-12-01 08:20:47 +0000479 * include/freetype/ftxf86.h: Fix and extend comment so that it
480 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000481
Werner Lemberg960ba592006-12-01 08:20:47 +0000482 * include/freetype/ftchapters.h: Add `font_format' section.
483
484
485 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
486 to TOC in index page.
487
4882006-11-28 David Turner <david@freetype.org>
489
490 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
491 trying to render into a zero-width/height bitmap, not an error code.
492
493 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
494
495 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
496 ones instead.
497
498 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
499 variable.
David Turner80658e52006-11-28 08:09:20 +0000500
Werner Lemberg8636c292006-11-26 22:28:13 +00005012006-11-26 Pierre Hanser <hanser@club-internet.fr>
502
503 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
504
Werner Lemberg960ba592006-12-01 08:20:47 +00005052006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000506
Werner Lemberg960ba592006-12-01 08:20:47 +0000507 * src/autofit/afhints.c (af_glyph_hints_dump_points,
508 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
509 Add stubs to link the `ftgrid' test program when debugging is
510 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000511
Werner Lemberg960ba592006-12-01 08:20:47 +00005122006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000513
514 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000515 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
516
517 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
518 Emit more sensible information.
519
520 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
521
522 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
523 rounding of blue values.
524 (af_latin_hints_compute_segments): Hint segment heights.
525 (af_latin_hints_link_segments): Reduce `len_score' value.
526 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
527 value and use `height' member for comparisons.
528 (af_latin_hint_edges): Extend logging message.
529 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000530
Werner Lemberg91959bf2006-11-22 10:36:55 +00005312006-11-22 Werner Lemberg <wl@gnu.org>
532
533 Fix Savannah bug #15553.
534
535 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
536 program after a change from mono to grayscaling (and vice versa).
537 Use correct constant for comparison to get `exec->grayscale'.
538
Werner Lemberg913a3652006-11-19 09:19:17 +00005392006-11-18 Werner Lemberg <wl@gnu.org>
540
541 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000542 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000543 This patch fixes Savannah bug #18301.
544
545 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
546 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
547 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
548 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
549 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
550 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
551 (FNT_Load_Glyph): Check validity of `glyph_index'.
552
David Turner7bab6ae2006-11-13 11:25:06 +00005532006-11-13 David Turner <david@freetype.org>
554
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000555 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
556 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000557
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000558 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
559 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
560 when building the library to change the default LCD filter to be
561 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000562
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000563 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000564
David Turner8765c712006-11-10 16:49:42 +00005652006-11-10 David Turner <david@freetype.org>
566
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000567 * src/smooth/ftsmooth.c: API change for the LCD
568 filter. The FT_LcdFilter value is an enumeration describing which
569 filter to apply, with new values FT_LCD_FILTER_LIGHT and
570 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
571 algorithm which produces strong color fringes for everything
572 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000573
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000574 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
575 second parameter to an enum type.
576
577 * src/base/ftlcdfil.c (USE_LEGACY): Define.
578 (_ft_lcd_filter): Rename to...
579 (_ft_lcd_filter_fir): This.
580 Update parameters.
581 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
582 (FT_Library_Set_LcdFilter): Update parameters.
583 Handle new filter modes.
584
585 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
586 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
587 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
588 callback and update other fields.
589
590 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
591 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
592 Other minor improvements.
593
594 * src/autofit/aflatin.c: Various tiny improvements that drastically
595 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
596 (af_latin_hints_compute_edges): Fix typo.
597 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000598
David Turner4e9cc3c2006-11-09 16:31:52 +00005992006-11-09 David Turner <david@freetype.org>
600
Werner Lemberg49c77a82006-11-09 21:51:57 +0000601 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
602 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000603
Werner Lemberg5e430892006-11-07 09:35:03 +00006042006-11-07 Zhe Su <james.su@gmail.com>
605
606 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
607 also.
608
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006092006-11-03 Werner Lemberg <wl@gnu.org>
610
611 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
612
David Turner40604742006-11-02 16:37:35 +00006132006-11-02 David Turner <david@freetype.org>
614
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000615 Add a few tweaks to better handle serif fonts.
616 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000617
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000618 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
619 segments that are less than 1.5 pixels high. This gets rid of
620 *many* corner cases with serifs.
621 (af_latin_align_linked_edge): Add logging message.
622 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
623 Add logging messages.
624 Handle AF_EDGE_FLAG flag specially.
625
626 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
627 _af_debug_disable_blue_hints, and _af_debug_hints variables.
628
629 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
630 Update external declarations.
631 (af_corner_orientation, af_corner_is_flat): Replaced by...
632
633 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
634 ft_corner_is_flat): These declarations.
635
636 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
637 Comment out. Replaced by...
638
639 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
640 These functions. Update all callers.
641 (FT_Add64) [!FT_LONG64]: Simplify.
642
643 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
644 (af_direction_compute): Add a missing FT_ABS call. This bug caused
645 production of garbage by missing lots of segments.
646
647 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
648
649 * src/autofit/afloader.c (af_loader_init, af_loader_done)
650 [AF_DEBUG]: Set _af_debug_hints.
651
652
653 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
654 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
655 and ft_corner_orientation.
656
657
658 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000659
Werner Lemberge88c5262006-10-24 05:46:26 +00006602006-10-24 Werner Lemberg <wl@gnu.org>
661
662 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
663
664 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
665 as argument.
666
David Turnera1861392006-10-23 16:00:59 +00006672006-10-23 Zhe Su <zsu@novell.com>
668
Werner Lemberg715e96e2006-10-24 05:28:45 +0000669 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
670 better deal with broken Asian fonts with strange glyphs, having
671 self-intersections and other peculiarities. The used algorithm is
672 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000673
David Turnere140f142006-10-23 08:56:57 +00006742006-10-23 David Turner <david@freetype.org>
675
Werner Lemberg715e96e2006-10-24 05:28:45 +0000676 Speed up the CFF font loader. With some large CFF fonts,
677 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000678
Werner Lemberg715e96e2006-10-24 05:28:45 +0000679 * src/cff/cffload.c (cff_get_offset): Removed.
680 (cff_new_index): Inline functionality of `cff_get_offset'.
681 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
682 (cff_charset_done): Call `cff_charset_free_cids'.
683 (cff_charset_load): Call `cff_charset_compute_cids'.
684 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
685
686 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
687 with FT_NEXT_XXX.
688
689
690 Speed up the Postscript hinter, with more than 100% speed increase
691 on my machine.
692
693 * src/pshinter/pshalgo.c (psh_corner_is_flat,
694 psh_corner_orientation): New functions.
695 (psh_glyph_compute_inflections): Merge loops for efficiency.
696 Use `psh_corner_orientation'.
697 (psh_glyph_init): Use `psh_corner_is_flat'.
698 (psh_hint_table_find_strong_point): Renamed to...
699 (psh_hint_table_find_strong_points): This.
700 Rewrite, adding argument to handle all points at once.
701 Update all callers.
702 (PSH_MAX_STRONG_INTERNAL): New macro.
703 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000704
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00007052006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
706
707 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000708 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000709
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007102006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
711
712 * docs/INSTALL.CROSS: New document file for cross-building.
713
714 * builds/unix/configure.raw: Preliminary cross-building support.
715 Find native C compiler and pass it by CC_BUILD, and
716 find suffix for native executable and pass it by EXEEXT_BUILD.
717 Also suffix for target executable is passed by EXEEXT.
718
Werner Lembergb9e6d692006-10-15 08:58:40 +0000719 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
720 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000721 CC_BUILD and EXEEXT_BUILD.
722
Werner Lembergb9e6d692006-10-15 08:58:40 +0000723 * builds/exports.mk (APINAMES_EXE): Change the extension for
724 apinames from the suffix for target (E) to that for building host
725 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000726
Werner Lemberg82a07e92006-10-12 06:20:44 +00007272006-10-12 Werner Lemberg <wl@gnu.org>
728
729 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
730 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
731 which reference those files.
732
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007332006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
734
Werner Lembergb9e6d692006-10-15 08:58:40 +0000735 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
736 embedded in freetype2.pc and freetype-config. Use it to record
737 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000738
739 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
740
741 * builds/unix/freetype-config.in: Ditto.
742
Werner Lemberg28e17d92006-10-11 17:27:47 +00007432006-10-11 Werner Lemberg <wl@gnu.org>
744
745 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
746 development.
747
Jens Claudius336d2292006-10-03 08:53:37 +00007482006-10-03 Jens Claudius <jens.claudius@yahoo.com>
749
750 * include/freetype/config/ftstdlib.h: Cast away volatileness from
751 argument to ft_setjmp.
752
753 * include/freetype/internal/ftvalid.h: Add comment that
754 ft_validator_run must not be used.
755
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007562006-10-01 Werner Lemberg <wl@gnu.org>
757
758 * src/base/ftbase.c: Undo change from 2006-09-30.
759
760 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
761
7622006-09-30 David Turner <david@freetype.org>
763
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000764 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
765 s/unpatented_hinting/ignore_unpatented_hinter/.
766 Update all callers.
767
768 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
769 auto-hinting shall be used or not.
770
771 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000772
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007732006-09-30 Werner Lemberg <wl@gnu.org>
774
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000775 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
776 in use).
777
778 * src/base/ftbase.c: Include `ftlcdfil.c'.
779
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007802006-09-29 Werner Lemberg <wl@gnu.org>
781
782 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
783 overlapping segments. Bug reported by Stefan Koch.
784
David Turnerad830712006-09-27 16:20:59 +00007852006-09-28 David Turner <david@freetype.org>
786
Werner Lemberg2c002e12006-09-29 21:31:53 +0000787 Fix a bug in the automatic unpatented hinting support which prevents
788 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000789
Werner Lemberg2c002e12006-09-29 21:31:53 +0000790 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
791 s/force_autohint/unpatented_hinting/. Update all callers.
792
793 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
794
795 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000796
David Turner8a317cf2006-09-27 07:52:48 +00007972006-09-27 David Turner <david@freetype.org>
798
Werner Lemberg2c002e12006-09-29 21:31:53 +0000799 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000800
David Turner8a317cf2006-09-27 07:52:48 +0000801
David Turnere140f142006-10-23 08:56:57 +0000802 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000803 In a default build, the function `FT_Library_SetLcdFilter' returns
804 `FT_Err_Unimplemented_Feature'; you need to #define
805 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
806 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000807
Werner Lemberg2c002e12006-09-29 21:31:53 +0000808 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000809
Werner Lemberg2c002e12006-09-29 21:31:53 +0000810 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
811 typedef.
812 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
813 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000814
Werner Lemberg2c002e12006-09-29 21:31:53 +0000815 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
816 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000817
Werner Lemberg2c002e12006-09-29 21:31:53 +0000818 Handle subpixel rendering.
819 Simplify function.
820 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
821 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
822
823 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
824 pointing to <freetype/ftlcdfil.h>.
825
826 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
827 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
828
829 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000830
Werner Lemberge20df4a2006-09-27 06:29:21 +00008312006-09-26 David Bustin
832
833 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
834 correctly. Reported as Savannah bug #17843.
835
David Turner6f8c6222006-09-26 15:42:44 +00008362006-09-26 David Turner <david@freetype.org>
837
Werner Lemberg110246c2006-09-26 21:55:44 +0000838 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
839 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
840 horizontal and vertical hinting for the purpose of debugging the
841 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000842
Werner Lemberg110246c2006-09-26 21:55:44 +0000843 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
844 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000845
Werner Lemberg110246c2006-09-26 21:55:44 +0000846 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
847
848 * include/freetype/config/ftoption.h, devel/ftoption.h
849 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
850 we want to compile LCD-optimized rendering code (à la ClearType) or
851 not. The macro *must* be disabled in default builds of the library
852 for patent reasons.
853
854 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
855 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
856 isn't defined at compile time. This only changes the content of the
857 rendered glyph to match the one of normal gray-level rendering,
858 hence clients should not need to be modified.
859
860 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000861
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008622006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
863
864 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
865 LWFN fails and both are available.
866
David Turnerf3050052006-09-11 12:00:32 +00008672006-09-11 David Turner <david@freetype.org>
868
Werner Lembergf9644552006-09-12 13:48:10 +0000869 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
870 report their English names through an Apple Roman
871 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000872
Werner Lembergf9644552006-09-12 13:48:10 +0000873 If the font uses another name entry with language_id == English, it
874 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000875
Werner Lembergf9644552006-09-12 13:48:10 +0000876 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
877 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000878
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008792006-09-05 Werner Lemberg <wl@gnu.org>
880
881 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000882 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000883 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
884 `HAN NOM B.ttf').
885
886 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
887
David Turner772e55d2006-09-05 09:45:15 +00008882006-09-05 David Turner <david@freetype.org>
889
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000890 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000891
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000892 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
893 (TRaster): Remove `count_ex' and `count_ey'.
894 (gray_find_cell): Remove 2nd and 3rd argument.
895 (gray_alloc_cell): Merged with `gray_find_cell'.
896 (gray_record_cell): Simplify.
897 (gray_set_cell): Rewrite.
898 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
899 (gray_render_span): Don't use FT_MEM_SET for small values.
900 (gray_dump_cells) [DEBUG_GRAYS]: New function.
901 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
902 bitmap scanline.
903 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000904
David Turneraa557a92006-09-04 16:42:44 +00009052006-09-04 David Turner <david@freetype.org>
906
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000907 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
908 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000909
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009102006-09-03 Werner Lemberg <wl@gnu.org>
911
912 * devel/ftoption.h: Synchronize with
913 include/freetype/config/ftoption.h.
914
915 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
916 variable declaration.
917 (gray_convert_glyph): Fix compiler warnings.
918
David Turner6d79f212006-09-01 14:09:35 +00009192006-09-01 David Turner <david@freetype.org>
920
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000921 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
922 to recognize a few fonts that require the automatic unpatented
923 loader.
David Turnerbd502952006-09-01 19:05:24 +0000924
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000925 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
926 rasterizer. The speed improvement is between 15% and 25%, depending
927 on the font data.
928
929 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
930 (TCell): Redefine.
931 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
932 (gray_init_cells): Updated.
933 (gray_find_cell, gray_alloc_cell): New functions.
934 (gray_record_cell): Rewritten to use `gray_find_cell' and
935 `gray_alloc_cell'.
936 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
937 QSORT_THRESHOLD):
938 Removed.
939 (gray_shell_sort, gray_quick_sort, gray_check_sort,
940 gray_dump_cells): Removed.
941 (gray_sweep): Rewritten.
942 (gray_convert_glyph): Rewrite code which used one of the sorting
943 functions.
944 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000945
Werner Lembergd898aed2006-08-29 09:50:34 +00009462006-08-29 Dr. Werner Fink <werner@suse.de>
947
948 * configure: Make it possible to handle configure options which
949 have strings containing spaces.
950
9512006-08-27 David Turner <david@freetype.org>
952
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000953 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
954 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
955 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
956
957 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
958 src/truetype/truetype.c, src/truetype/ttdriver.c,
959 src/truetype/ttgload.c, src/truetype/ttgload.h,
960 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
961 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
962 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
963
964 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
965 member `force_autohint'.
966
967 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
968
969 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
970 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000971
Jens Claudiusa787f452006-08-27 11:26:18 +00009722006-08-27 Jens Claudius <jens.claudius@yahoo.com>
973
974 Fix miscellaneous compiler warnings.
975
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000976 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
977 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000978
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000979 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
980 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
981 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000982
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000983 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
984 volatileness of argument to ft_longjmp. Spotted by Werner
985 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000986
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000987 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
988 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000989
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000990 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
991 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000992
Werner Lembergc4c35b72006-08-27 08:03:46 +00009932006-08-27 Werner Lemberg <wl@gnu.org>
994
995 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
996 Reported by Jens.
997
Jens Claudius088e44e2006-08-22 14:24:30 +00009982006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000999
Jens Claudius088e44e2006-08-22 14:24:30 +00001000 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001001 about addresses of volatile objects passed as function arguments as
1002 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001003
Werner Lembergc4c35b72006-08-27 08:03:46 +00001004 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1005 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001006
1007 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1008 argument `table' a pointer to a volatile object.
1009
1010 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1011 argument `table' a pointer to a volatile object.
1012
Jens Claudius2652bd52006-08-18 17:20:37 +000010132006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1014
1015 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1016 variable `_sfnt' as volatile since it must keep its value across
1017 a call to ft_setjmp.
1018 (gxv_validate): Same for local variables `memory' and `valid'.
1019 (classic_kern_validate): Same for local variables `memory',
1020 `ckern', and `valid'.
1021
1022 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1023 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1024 `jstf', and 'valid'.
1025
1026 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1027 local variable `cmap'.
1028
David Turner9fbfc6a2006-08-16 09:11:31 +000010292006-08-16 David Turner <david@freetype.org>
1030
Werner Lemberg12342992006-08-19 11:18:09 +00001031 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1032 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001033
Werner Lemberg12342992006-08-19 11:18:09 +00001034 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1035 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001036
David Turner33f5f242006-08-16 16:50:55 +00001037
Werner Lemberg12342992006-08-19 11:18:09 +00001038 Improvements to native TrueType hinting. This is a first try,
1039 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1040
1041 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1042 `extra_points2'.
1043
1044 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1045 `orus'.
1046
1047 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1048 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1049 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1050 handle `extra_points2'.
1051
1052 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1053 Remove compiler warning.
1054 (cur_to_arg): Remove macro.
1055 (TT_Hint_Glyph): Updated.
1056 (TT_Process_Simple_Glyph): Handle `orus'.
1057
1058 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1059 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1060 (LOC_Ins_IUP): Renamed to...
1061 (IUP_WorkerRec): This.
1062 Add `orus' member.
1063 (Shift): Renamed to...
1064 (_iup_worker_shift): This.
1065 Updated.
1066 (Interp): Renamed to...
1067 (_iup_worker_interpolate): This.
1068 Updated to handle `orus'.
1069 (Ins_IUP): Updated.
1070
1071 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1072 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001073
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010742006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1075
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001076 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001077 build ftvalid in ft2demos. This has been inadvertedly changed
1078 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001079
10802006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1081
Werner Lemberg12342992006-08-19 11:18:09 +00001082 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1083 Jens:
1084 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001085
Werner Lemberg12342992006-08-19 11:18:09 +00001086 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1087 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001088
1089 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1090
Jens Claudius9950adc2006-08-13 12:14:36 +000010912006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1092
Werner Lemberg12342992006-08-19 11:18:09 +00001093 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1094 T1_TOKEN_TYPE_KEY.
1095 (T1_FieldRec): Add `dict'.
1096 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1097 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1098 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001099
Werner Lemberg12342992006-08-19 11:18:09 +00001100 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1101 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001102
1103 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1104
1105 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001106 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1107 not T1_TOKEN_TYPE_ANY.
1108 (ps_parser_load_field): Make sure a token that should be a string or
1109 name is really a string or name.
1110 Avoid memory leak if a keyword has been already encountered and its
1111 value is overwritten.
1112 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1113 T1_FIELD_XXX.
1114 (parse_dict): Ignore keywords that occur in the wrong dictionary
1115 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001116
Werner Lemberg12342992006-08-19 11:18:09 +00001117 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1118 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001119
Werner Lemberg12342992006-08-19 11:18:09 +00001120 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1121 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001122
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011232006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1124
1125 Move creation of field `buildchar' of T1_DecoderRec out of
1126 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1127 of it.
1128
1129 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1130 and `T1_Compute_Max_Advance'.
1131
1132 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1133 Remove field `face', add `len_buildchar'.
1134
1135 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1136 field `buildchar'.
1137
1138 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1139 finisher for T1_Decoder.
1140 (cid_slot_load_glyph): Do not ignore failure when initializing the
1141 T1_Decoder.
1142
1143 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1144 Updated.
1145 (t1_decoder_init): Remove initialization of fields `buildchar' and
1146 `len_buildchar'.
1147 (t1_decoder_done): Remove deallocation of field `buildchar'.
1148
1149 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1150 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1151 T1_Decoder.
1152 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1153 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1154 case of error.
1155
1156 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1157 `buildchar' of T1_FaceRec.
1158
1159 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1160 `buildchar' of T1_FaceRec.
1161
Werner Lemberg1a380e02006-07-14 18:28:08 +000011622006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1163
1164 * freetype2/include/freetype/internal/psaux.h: New macros
1165 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1166 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1167 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1168 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1169 (T1_DecoderRec): New fields `buildchar' and `face'.
1170 (IS_PS_TOKEN): New macro.
1171
1172 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1173 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1174
1175 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1176 `default_design_vector' and `num_default_design_vector'.
1177
1178 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1179 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1180 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1181
1182 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1183 `token' argument to be NULL if we want only to count the number of
1184 tokens.
1185 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1186 want to skip the array.
1187 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1188 want to skip the array.
1189
1190 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1191 support for (partially commented out) othersubrs 19-25, 27, and 28.
1192 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1193 (t1_decoder_done): Release new field `buildchar'.
1194
1195 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1196 functions.
1197 (t1_keywords): Register them.
1198 (t1_allocate_blend): Updated.
1199 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1200 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1201 (parse_dict): Remove `keyword_flags' argument.
1202 Use new macro IS_PS_TOKEN.
1203 Changed function so that later PostScript definitions override
1204 earlier ones.
1205 (t1_init_loader): Initialize new field `keywords_encountered'.
1206 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1207 `len_buildchar'.
1208 Remove `keywords_flags'.
1209
1210 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1211 `keywords_encountered'.
1212 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1213
1214 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1215 New entries for parsing /NDV, /CDV, and /DesignVector.
1216
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012172006-07-07 Werner Lemberg <wl@gnu.org>
1218
1219 Add many checks to protect against malformed PCF files.
1220
1221 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1222 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1223
1224 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1225 data and check that tables don't overlap (using a simple
1226 bubblesort).
1227 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1228 New macros which give the size of data structures in the data
1229 stream.
1230 (pcf_get_properties): Use rough estimates to get array size limits.
1231 Assign `face->nprops' and `face->properties' earlier so that a call
1232 to PCF_Face_Done can do the clean-up in case of error.
1233 Protect against invalid string offsets.
1234 (pcf_get_metrics): Clean up code.
1235 Adjust tracing message levels.
1236 Use rough estimate to get array size limit.
1237 (pcf_get_bitmaps): Clean up code.
1238 Adjust tracing message levels.
1239 Use rough estimates to get offset limits.
1240 (pcf_get_encodings): Adjust tracing message level.
1241 (pcf_get_accel): Clean up code.
1242
Werner Lemberg8eb05252006-06-27 06:20:01 +000012432006-06-26 Werner Lemberg <wl@gnu.org>
1244
1245 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1246 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1247
Werner Lemberg24703f82006-06-26 19:12:51 +000012482006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1249
1250 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1251 (t1_decoder_parse_charstrings): Operator with
1252 opcode 15 pops its two arguments.
1253 Handle the case where the pops of an othersubr may be part of a
1254 subroutine.
1255 Handle unknown othersubrs gracefully: count their operands and let
1256 the following pop operators push the operands as the results onto
1257 the Type1 stack.
1258 Improve handling of setcurrentpoint opcode.
1259
Werner Lembergc011f4c2006-06-26 09:40:00 +000012602006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1261
1262 The Type 1 parser now skips over top-level procedures as required
1263 for a `Simplified Parser'. This makes the parser more robust as it
1264 doesn't poke around in PostScript code. Additionally, it makes the
1265 FontDirectory hackery in src/type1/t1load.c unnecessary.
1266
1267 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1268 (skip_literal_string): Add FT_Error as return value.
1269 Handle escapes better.
1270 (skip_string): Add FT_Error as return value.
1271 Don't set `parser->error' but return error code directly.
1272 (skip_procedure): New function.
1273 (ps_parser_skip_PS_token): Handle procedures.
1274 Update code.
1275 (ps_parser_to_token): Update code.
1276 (ps_parser_load_field_table): Handle bbox entries also.
1277
1278 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1279 Add commented-out code for synthetic fonts.
1280
Werner Lemberga2da05c2006-06-25 06:27:27 +000012812006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1282
1283 Fix two hinting bugs as reported in
1284 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1285
1286 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1287 `first_point' member.
1288
1289 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1290 `first_point'.
1291 (TT_Process_Composite_Glyph): Always untouch points.
1292
1293 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1294 `first_point' and `last_point' in case of composite glyphs.
1295 (Ins_IUP): Fix computation of `end_point'.
1296
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012972006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1298
Werner Lembergef3d2c22006-06-25 06:07:14 +00001299 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1300 Mac. The original patch was written by David Sachitano and Lawrence
1301 Coopet, and modified by Sean McBride for MPW compatibility. Only
1302 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001303
Werner Lembergef3d2c22006-06-25 06:07:14 +00001304 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1305 Mac OS X platforms.
1306 (OS_INLINE): Undefine before definition.
1307 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1308 FontAssociation table in FOND resource.
1309 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1310 and fontSize at each entry of FontAssociation table in FOND
1311 resource.
1312 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1313 ffStylOff of FamilyRecord header of FOND resource, the header,
1314 fontSize, fontID at each entry of FontAssociation table, and
1315 StyleMapping table.
1316 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001317
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013182006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1319
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001320 Public API of TrueTypeGX, OpenType, and classic kern table validator
1321 should return `FT_Err_Unimplemented_Feature' if validation service
1322 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001323 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001324 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1325
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001326 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1327 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1328 unavailable.
1329 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1330 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001331
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001332 * src/base/ftotval.c (FT_OpenType_Validate): Return
1333 FT_Err_Unimplemented_Feature if OpenType validation service is
1334 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001335
Werner Lembergb10e45a2006-06-08 07:32:56 +000013362006-06-08 Werner Lemberg <wl@gnu.org>
1337
1338 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1339 errors.
1340
David Turner5f1f7502006-06-07 05:11:50 +000013412006-06-07 David Turner <david@freetype.org>
1342
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001343 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1344 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1345 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001346
David Turner457b4a82006-06-06 08:14:14 +000013472006-06-06 David Turner <david@freetype.org>
1348
Werner Lemberg4836f952006-06-06 12:54:08 +00001349 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001350
Werner Lemberg4836f952006-06-06 12:54:08 +00001351 We change `ps_unicodes_init' so that it also takes a
1352 `free_glyph_name' callback to release the glyph names returned by
1353 `get_glyph_name'
1354
1355 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1356 Renamed to ...
1357 (PS_GetGlyphNameFunc): This.
1358 (PS_FreeGlyphNameFunc): New typedef.
1359 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1360
1361 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1362 argument.
1363 (cff_sid_free_glyph_name): New function.
1364 (cff_cmap_unicode_init): Updated.
1365
1366 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1367
1368 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1369 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001370
1371
David Turner09717352006-06-04 14:33:08 +000013722006-06-04 David Turner <david@freetype.org>
1373
Werner Lembergd724f202006-06-04 15:17:41 +00001374 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1375 `item_size == 0' as well -- though this sounds weird, it can
1376 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001377
Werner Lembergd724f202006-06-04 15:17:41 +00001378 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1379 of `face->num_glyphs' which missed the last glyph, due to
1380 the offset-by-1 computation, since the PFR format doesn't
1381 guarantee that glyph index 0 corresponds to the `missing
1382 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001383
Werner Lemberg33779662006-05-26 06:30:05 +000013842006-05-25 Werner Lemberg <wl@gnu.org>
1385
1386 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1387 `-no-undefined'. Reported by Christian Biesinger.
1388
Werner Lemberg24773d62006-05-20 08:53:13 +000013892006-05-19 Brian Weed <bw@imaginengine.com>
1390
1391 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1392 have debug information, and debug libraries use `C7 compatible'
1393 debug info.
1394
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1396
Werner Lemberga6523a62006-05-20 08:47:01 +00001397 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001398 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001399
Werner Lemberga6523a62006-05-20 08:47:01 +00001400 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1401 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001402
1403 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001404 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001405
14062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1407
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001408 * build/unix/configure.raw: Add a fallback to disable Carbon
1409 dependency, if configured with no options on Mac OS X.
1410
14112006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1412
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001413 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001414 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001415 the second part of Savannah bug #16590.
1416
Werner Lemberg545c4e52006-05-17 22:55:04 +000014172006-05-18 Werner Lemberg <wl@gnu.org>
1418
1419 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1420 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1421
David Turnerdc3ff312006-05-17 12:59:35 +000014222006-05-17 David Turner <david@freetype.org>
1423
Werner Lemberg545c4e52006-05-17 22:55:04 +00001424 This is a major patch used to drastically improve the performance of
1425 loading glyphs. This both speeds up loading the glyph vectors
1426 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001427
Werner Lemberg545c4e52006-05-17 22:55:04 +00001428 We now use inline assembler code with GCC to implement `FT_MulFix',
1429 which is probably the most important function related to the
1430 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001431
Werner Lemberg545c4e52006-05-17 22:55:04 +00001432 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001433
1434
Werner Lemberg545c4e52006-05-17 22:55:04 +00001435 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1436 `cursor' and `limit'.
1437
1438 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1439 New functions.
1440 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1441 [TEST]: Remove.
1442
1443 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1444 code.
1445
1446 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1447 `FT_ZERO'
1448 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1449 (af_glyph_hints_reload: Rewrite recognition of weak points.
1450
1451 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1452 constant values out of the loops.
1453
1454 * src/autofit/aftypes.h: Updated.
1455
1456 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1457
1458 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1459 product to get orientation.
1460
1461 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1462 (FT_Stream_OpenGzip): Use it to handle small files directly in
1463 memory.
1464
1465 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1466 Improve performance.
1467
1468 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1469 `limit'.
1470
1471 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1472 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1473 exceedingly large values of number of contours. Speed up by
1474 reducing the number of loops.
1475
1476 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1477
1478
1479 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1480 used to detect rogue clients from 4 to 16. This is to prevent some
1481 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1482 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001483
Werner Lembergde2d90a2006-05-17 08:54:30 +000014842007-05-17 Werner Lemberg <wl@gnu.org>
1485
1486 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001487 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001488
14892006-05-16 Werner Lemberg <wl@gnu.org>
1490
1491 * docs/PROBLEMS: Updated icl issues.
1492
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001493----------------------------------------------------------------------------
1494
Werner Lemberg42b63b22007-01-21 21:01:33 +00001495Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001496David Turner, Robert Wilhelm, and Werner Lemberg.
1497
1498This file is part of the FreeType project, and may only be used, modified,
1499and distributed under the terms of the FreeType project license,
1500LICENSE.TXT. By continuing to use, modify, or distribute this file you
1501indicate that you have read the license and understand and accept it
1502fully.
1503
1504
1505Local Variables:
1506version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001507coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001508End: