blob: 89d66a63b430bc3e4a2ab1e8c490f414df230399 [file] [log] [blame]
David Turnerd91eebd2007-01-26 15:05:41 +000012007-01-25 David Turner <david@freetype.org>
2
Werner Lembergbf241762007-01-26 16:08:49 +00003 For light auto-hinting, improve glyph advance widths and resurrect
4 normal/full hinting to its normal quality.
5
6 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
7 and `xmax_delta'.
8 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
9 and `xmax_delta'.
10
11 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
12 preprocessor conditional with if-clause, handling both light and
13 normal mode.
14
15 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
16 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +000017
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000182007-01-25 Werner Lemberg <wl@gnu.org>
19
20 * docs/release: Updated -- Savannah uses a new uploading scheme.
21
David Turnera42567b2007-01-25 12:23:37 +0000222007-01-25 David Turner <david@freetype.org>
23
Werner Lembergd7855662007-01-25 13:53:56 +000024 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +000025
Werner Lembergd7855662007-01-25 13:53:56 +000026 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
27 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
28 functions.
David Turnera42567b2007-01-25 12:23:37 +000029
Werner Lembergd7855662007-01-25 13:53:56 +000030 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000031
Werner Lembergb1be9e82007-01-25 11:50:00 +0000322007-01-25 Werner Lemberg <wl@gnu.org>
33
34 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000035 correctly in a sanity check. Since this function is only used to
36 load local and global functions, any charstring that called the last
37 local/global function would fail otherwise. This fixes Savannah bug
38 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000039
40 * docs/CHANGES: Document it.
41
David Turnerb6de8d12007-01-23 15:51:50 +0000422007-01-23 David Turner <david@freetype.org>
43
Werner Lembergb1be9e82007-01-25 11:50:00 +000044 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
45 prevented compilation when disabling both the unpatented and the
46 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000047
Werner Lembergb1be9e82007-01-25 11:50:00 +000048
49 Fix and enable the warper to improve `light' hinting mode. This is
50 not necessarily a final version, but it seems to work well.
51
52 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
53 Disable code.
54 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
55 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
56
57 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
58 (af_warper_compute_line_best): Fix array size of `scores'.
59 (af_warper_compute): Better handling of border cases.
60 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
61 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +000062
Werner Lemberg011d1112007-01-21 09:36:00 +0000632007-01-21 Werner Lemberg <wl@gnu.org>
64
Werner Lemberg42b63b22007-01-21 21:01:33 +000065 * ChangeLog: Split off older entries into...
66 * ChangeLog.22: This new file.
67
682007-01-21 Werner Lemberg <wl@gnu.org>
69
Werner Lemberg555258f2007-01-21 09:46:37 +000070 * docs/CHANGES: Document SHZ fix.
71
722007-01-21 George Williams <gww@silcom.com>
73
74 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
75 points.
76
772007-01-21 Werner Lemberg <wl@gnu.org>
78
Werner Lemberg011d1112007-01-21 09:36:00 +000079 * src/sfnt/ttmtx.c (tt_face_get_metrics)
80 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
81
Werner Lemberg87a5a432007-01-17 12:44:39 +0000822007-01-17 Werner Lemberg <wl@gnu.org>
83
Werner Lembergb8003292007-01-17 12:56:25 +000084
85 * Version 2.3.0 released.
86 =========================
87
88
89 Tag sources with `VER-2-3-0-FINAL'.
90
912007-01-17 Werner Lemberg <wl@gnu.org>
92
Werner Lemberg87a5a432007-01-17 12:44:39 +000093 * docs/release: Updated.
94
David Turner22122722007-01-16 20:06:44 +0000952007-01-16 David Turner <david@freetype.org>
96
Werner Lemberg87a5a432007-01-17 12:44:39 +000097 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
98 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
99 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
100 warnings.
David Turner22122722007-01-16 20:06:44 +0000101
Werner Lemberg267e1d72007-01-15 07:48:09 +00001022007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
103
104 * builds/amiga/makefile, builds/amiga/makefile.os4,
105 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
106
107 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
108
Werner Lemberg8c4120d2007-01-15 06:42:40 +00001092007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
110
111 Fix various compiler warnings.
112
113 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
114 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
115 s/index/strike_index/.
116 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
117
118 * src/gxvalid/gxvmorx5.c
119 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
120
121 * src/truetype/ttinterp.c (Compute_Point_Displacement),
122 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
123 uninitialized variables.
124
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001252007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
126
127 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
128
Werner Lemberg281c1482007-01-13 22:50:51 +00001292007-01-13 Werner Lemberg <wl@gnu.org>
130
131 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
132 versions up to 0x3FF without complaining.
133
Werner Lembergac250b22007-01-13 14:01:36 +00001342007-01-13 Derek Clegg <dclegg@apple.com>
135
136 Add FT_Get_PS_Font_Info interface to CFF driver.
137
138 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
139 (CFF_FontRec): Add `font_info' field.
140
141 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
142 (cff_font_done): Free font->font_info if necessary.
143
144 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
145 (cff_service_ps_info): Register cff_ps_get_font_info.
146
Werner Lemberg23df31a2007-01-13 08:45:00 +00001472007-01-13 Werner Lemberg <wl@gnu.org>
148
149 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
150 with C++ compiler.
151
152 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
153 af_glyph_hints_dump_edges): Ditto.
154
155 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
156 `modules.cfg').
157
158 * src/sfnt/ttsbit0.h: Remove.
159
160 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
161
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001622007-01-12 David Turner <david@freetype.org>
163
164 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
165 bug in the bitmap emboldener if the pitch of the source bitmap is
166 much larger than its width.
167
168 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
169 compilation warning.
170
Werner Lemberg6d96d312007-01-12 10:30:19 +00001712007-01-12 Werner Lemberg <wl@gnu.org>
172
173 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
174 `automake' CVS module from sources.redhat.com.
175
Werner Lemberg17432b52007-01-12 09:28:44 +00001762007-01-11 Werner Lemberg <wl@gnu.org>
177
178 * src/type1/t1load.c (is_space): Removed.
179 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
180 (parse_charstrings): Use IS_PS_TOKEN.
181
182
183 * autogen.sh: Avoid bash specific syntax.
184
David Turner038ace22007-01-11 15:00:59 +00001852007-01-11 David Turner <david@freetype.org>
186
Werner Lemberg17432b52007-01-12 09:28:44 +0000187 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000188
Werner Lemberg17432b52007-01-12 09:28:44 +0000189 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000190
Werner Lemberg17432b52007-01-12 09:28:44 +0000191 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
192 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000193 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000194
Werner Lemberg17432b52007-01-12 09:28:44 +0000195 * autogen.sh: Small fix to get it working on Mac OS X properly:
196 The issue is that GNU libtool is called `glibtool' on this platform,
197 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000198
David Turner2628ea92007-01-10 13:15:56 +00001992007-01-10 David Turner <david@freetype.org>
200
Werner Lemberg17432b52007-01-12 09:28:44 +0000201 * all-sources: Tag all sources with VER-2-3-0-RC1 and
202 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000203
Werner Lemberg17432b52007-01-12 09:28:44 +0000204 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
205 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
206 version number to 2.3.0.
207
208 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
209 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000210
211 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000212 include/freetype/ftlcdfil.h: Update reference documentation with
213 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000214
Werner Lemberg17432b52007-01-12 09:28:44 +0000215 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
216 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000217
Werner Lembergbf02d392007-01-10 07:07:37 +00002182007-01-10 Derek Clegg <dclegg@apple.com>
219
220 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
221 values.
222
David Turnerf48b60e2007-01-08 15:15:32 +00002232007-01-08 David Turner <david@freetype.org>
224
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000225 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000226
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000227 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
228 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000229 corresponding to a given character pixel size.
230
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000231 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
232 `gasp' table, in order to avoid potential problems with later
233 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000234
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000235 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
236 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000237
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000238 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
239 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
240 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
241 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000242
Werner Lemberge6b6f372007-01-07 00:06:47 +00002432007-01-07 Werner Lemberg <wl@gnu.org>
244
Werner Lembergb8004d22007-01-07 09:13:38 +0000245 * src/cid/cidparse.c (cid_parser_new): Improve error message for
246 Type 11 fonts.
247 Scan for `/sfnts' token.
248
2492007-01-07 Werner Lemberg <wl@gnu.org>
250
251 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000252
Werner Lembergbe5f7972007-01-06 07:51:48 +00002532007-01-06 Werner Lemberg <wl@gnu.org>
254
255 * src/cff/cffload.c (cff_index_init): Remove unused variable.
256 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
257
David Turnera8cf42b2007-01-04 16:46:46 +00002582007-01-04 David Turner <david@freetype.org>
259
Werner Lembergf6294392007-01-06 07:47:45 +0000260 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
261 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000262
Werner Lembergf6294392007-01-06 07:47:45 +0000263
264 Do not allocate interpreter-specific tables in memory if we are not
265 going to load glyphs with the bytecode interpreter anyway.
266
267 * src/truetype/ttgload.c (tt_loader_init): Load execution context
268 only if glyph is hinted.
269 Updated.
270 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
271 and `cvs_ready'.
272 Add `tt_size_ready_bytecode' declaration.
273 * src/truetype/ttobjs.c (tt_size_done_bytecode,
274 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
275 (tt_size_init): Move most code into `tt_size_init_bytecode'.
276 (tt_size_done): Move most code into `tt_size_done_bytecode'.
277 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000278
David Turner91a34022007-01-05 14:47:08 +0000279
Werner Lembergf6294392007-01-06 07:47:45 +0000280 Don't extract the metrics table from the SFNT font file. Instead,
281 reparse it on each glyph load. The runtime difference is not
282 noticeable, and it can save a lot of heap memory when memory-mapped
283 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000284
Werner Lembergf6294392007-01-06 07:47:45 +0000285 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
286 `horz_metrics_offset' and `vert_metrics_ofset'.
287 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
288 Updated.
289
290
291 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
292
293
294 Do not load the CFF index offsets into memory, since this wastes a
295 *lot* of heap memory with large Asian CFF fonts. There is no
296 significant performance loss.
297
298 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
299 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
300 `data_size'.
301 (CFF_CharsetRec): Add field `num_glyphs'.
302
303 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
304 cff_charset_cid_to_gindex): New functions.
305 (cff_new_index): Renamed to...
306 (cff_index_init): This. Update all callers.
307 Updated -- some code has been moved to `cff_index_load_offsets'.
308 (cff_done_index): Renamed to...
309 (cff_index_done): This. Update all callers.
310 (cff_index_get_pointers, cff_index_access_element): Updated to use
311 stream offsets.
312 (cff_charset_compute_cids): Set `num_glyphs' field.
313 (cff_encoding_load): Updated.
314
315 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000316
3172007-01-04 David Turner <david@freetype.org>
318
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000319 * docs/INSTALL.UNIX: Simplify some parts, add reference to
320 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000321
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000322 * README.CVS: Add common problem description and solution
323 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000324
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000325 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000326
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000327 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000328
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000329 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000330
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000331 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
332 (TWorker): This.
333 Remove `count_table' and `memory'.
334 Make `grays' a pointer.
335 (TRaster): New structure.
336 (count_table): New static array.
337 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
338 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
339 ft_black_set_mode, ft_black_render): Updated.
340 (ft_black_init): Don't initialize `count_table'.
341 (ft_black_reset): Use the render pool. This saves about 6KB of
342 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000343
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000344 * src/smooth/ftgrays.c (TRaster): Replaced with...
345 (TWorker): This.
346 Remove `memory'.
347 (TRaster): New structure.
348
349 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
350 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
351 gray_render_span, gray_raster_render): Updated.
352 (gray_raster_reset): Use the render pool. This saves about 6KB of
353 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000354
David Turner8a6c44e2007-01-04 17:03:11 +0000355 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
356 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000357 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
358 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
359 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000360
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000361 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
362 Remove a typo that results in no hinting and a memory leak with some
363 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000364
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000365 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000366 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000367 CFF_Faces in it. We need to close all faces before destroying the
368 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000369
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003702007-01-02 Werner Lemberg <wl@gnu.org>
371
372 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
373 Remove compiler warning.
374
David Turner9207e002007-01-02 16:58:13 +00003752007-01-02 David Turner <david@freetype.org>
376
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000377 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000378
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003792006-12-31 Masatake YAMATO <jet@gyve.org>
380
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000381 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
382 function.
383 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000384 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000385 `gxv_kern_subtable_fmt0_pairs_validate'.
386
David Turner115b4422006-12-22 11:37:05 +00003872006-12-22 David Turner <david@freetype.org>
388
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000389 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
390 warnings.
David Turner115b4422006-12-22 11:37:05 +0000391
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000392 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
393 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000394
Werner Lemberg4755bf72006-12-16 08:58:44 +00003952006-12-16 Anders Kaseorg <anders@kaseorg.com>
396
397 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
398 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
399
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00004002006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
401
Werner Lemberg9b774e22007-01-16 06:11:27 +0000402 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000403 sync with the modification by Jens Claudius on 2006-08-22; cf.
404 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 +0000405
4062006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
407
408 * src/base/ftmac.c: Specialized for Mac OS X only.
409 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
410 * builds/unix/configure.raw: Ditto. When explicit switches for
411 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
412 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
413
4142006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
415
416 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
417 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
418 instead of src/base/ftmac.c
419 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
420 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
421 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
422 that cannot be built at present.
423
4242006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
425
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000426 * src/base/ftobjs.c: Improvement of resource fork handler for
427 POSIX, cf.
428 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000429 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
430 format or .dfont, to simulate the face index number counted by ftmac.c.
431 (IsMacResource): Return the number of scalable faces correctly.
432
Werner Lembergec5b4502006-12-10 07:51:38 +00004332006-12-10 Werner Lemberg <wl@gnu.org>
434
435 * builds/toplevel.mk (version): Protect against `distclean' target.
436
Werner Lembergb26b3142006-12-09 20:01:43 +00004372006-12-09 Werner Lemberg <wl@gnu.org>
438
439 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
440 or `type'.
441
442 * builds/freetype.mk (version): Extracted from freetype.h, using
443 GNU make's built-in string functions.
444 (refdoc): Use $(version) instead of static version number.
445
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004462006-12-08 Werner Lemberg <wl@gnu.org>
447
448 * builds/toplevel.mk (dist): Extract version number from freetype.h.
449
Werner Lemberg15c29502006-12-09 07:29:54 +00004502006-12-08 Vladimir Volovich <vvv@vsu.ru>
451
452 * src/tools/apinames (State): Remove final comma in structure -- xlc
453 v5 under AIX 4.3 doesn't like this.
454
David Turnerdbf3b432006-12-07 21:18:09 +00004552006-12-07 David Turner <david@freetype.org>
456
Werner Lemberg256a3512006-12-08 06:49:33 +0000457 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
458 to the spacing of auto-fitted glyphs. This only impacts rare
459 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000460
Werner Lemberg11171312006-12-03 09:43:40 +00004612006-12-03 Werner Lemberg <wl@gnu.org>
462
463 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
464
Werner Lemberg960ba592006-12-01 08:20:47 +00004652006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000466
Werner Lemberg960ba592006-12-01 08:20:47 +0000467 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
468 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
469 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000470
David Turner80658e52006-11-28 08:09:20 +0000471
Werner Lemberg960ba592006-12-01 08:20:47 +0000472 * include/freetype/ftxf86.h: Fix and extend comment so that it
473 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000474
Werner Lemberg960ba592006-12-01 08:20:47 +0000475 * include/freetype/ftchapters.h: Add `font_format' section.
476
477
478 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
479 to TOC in index page.
480
4812006-11-28 David Turner <david@freetype.org>
482
483 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
484 trying to render into a zero-width/height bitmap, not an error code.
485
486 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
487
488 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
489 ones instead.
490
491 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
492 variable.
David Turner80658e52006-11-28 08:09:20 +0000493
Werner Lemberg8636c292006-11-26 22:28:13 +00004942006-11-26 Pierre Hanser <hanser@club-internet.fr>
495
496 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
497
Werner Lemberg960ba592006-12-01 08:20:47 +00004982006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000499
Werner Lemberg960ba592006-12-01 08:20:47 +0000500 * src/autofit/afhints.c (af_glyph_hints_dump_points,
501 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
502 Add stubs to link the `ftgrid' test program when debugging is
503 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000504
Werner Lemberg960ba592006-12-01 08:20:47 +00005052006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000506
507 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000508 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
509
510 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
511 Emit more sensible information.
512
513 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
514
515 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
516 rounding of blue values.
517 (af_latin_hints_compute_segments): Hint segment heights.
518 (af_latin_hints_link_segments): Reduce `len_score' value.
519 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
520 value and use `height' member for comparisons.
521 (af_latin_hint_edges): Extend logging message.
522 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000523
Werner Lemberg91959bf2006-11-22 10:36:55 +00005242006-11-22 Werner Lemberg <wl@gnu.org>
525
526 Fix Savannah bug #15553.
527
528 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
529 program after a change from mono to grayscaling (and vice versa).
530 Use correct constant for comparison to get `exec->grayscale'.
531
Werner Lemberg913a3652006-11-19 09:19:17 +00005322006-11-18 Werner Lemberg <wl@gnu.org>
533
534 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000535 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000536 This patch fixes Savannah bug #18301.
537
538 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
539 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
540 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
541 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
542 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
543 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
544 (FNT_Load_Glyph): Check validity of `glyph_index'.
545
David Turner7bab6ae2006-11-13 11:25:06 +00005462006-11-13 David Turner <david@freetype.org>
547
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000548 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
549 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000550
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000551 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
552 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
553 when building the library to change the default LCD filter to be
554 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000555
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000556 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000557
David Turner8765c712006-11-10 16:49:42 +00005582006-11-10 David Turner <david@freetype.org>
559
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000560 * src/smooth/ftsmooth.c: API change for the LCD
561 filter. The FT_LcdFilter value is an enumeration describing which
562 filter to apply, with new values FT_LCD_FILTER_LIGHT and
563 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
564 algorithm which produces strong color fringes for everything
565 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000566
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000567 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
568 second parameter to an enum type.
569
570 * src/base/ftlcdfil.c (USE_LEGACY): Define.
571 (_ft_lcd_filter): Rename to...
572 (_ft_lcd_filter_fir): This.
573 Update parameters.
574 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
575 (FT_Library_Set_LcdFilter): Update parameters.
576 Handle new filter modes.
577
578 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
579 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
580 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
581 callback and update other fields.
582
583 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
584 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
585 Other minor improvements.
586
587 * src/autofit/aflatin.c: Various tiny improvements that drastically
588 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
589 (af_latin_hints_compute_edges): Fix typo.
590 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000591
David Turner4e9cc3c2006-11-09 16:31:52 +00005922006-11-09 David Turner <david@freetype.org>
593
Werner Lemberg49c77a82006-11-09 21:51:57 +0000594 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
595 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000596
Werner Lemberg5e430892006-11-07 09:35:03 +00005972006-11-07 Zhe Su <james.su@gmail.com>
598
599 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
600 also.
601
Werner Lemberg111b5ae2006-11-03 09:40:12 +00006022006-11-03 Werner Lemberg <wl@gnu.org>
603
604 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
605
David Turner40604742006-11-02 16:37:35 +00006062006-11-02 David Turner <david@freetype.org>
607
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000608 Add a few tweaks to better handle serif fonts.
609 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000610
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000611 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
612 segments that are less than 1.5 pixels high. This gets rid of
613 *many* corner cases with serifs.
614 (af_latin_align_linked_edge): Add logging message.
615 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
616 Add logging messages.
617 Handle AF_EDGE_FLAG flag specially.
618
619 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
620 _af_debug_disable_blue_hints, and _af_debug_hints variables.
621
622 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
623 Update external declarations.
624 (af_corner_orientation, af_corner_is_flat): Replaced by...
625
626 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
627 ft_corner_is_flat): These declarations.
628
629 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
630 Comment out. Replaced by...
631
632 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
633 These functions. Update all callers.
634 (FT_Add64) [!FT_LONG64]: Simplify.
635
636 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
637 (af_direction_compute): Add a missing FT_ABS call. This bug caused
638 production of garbage by missing lots of segments.
639
640 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
641
642 * src/autofit/afloader.c (af_loader_init, af_loader_done)
643 [AF_DEBUG]: Set _af_debug_hints.
644
645
646 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
647 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
648 and ft_corner_orientation.
649
650
651 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000652
Werner Lemberge88c5262006-10-24 05:46:26 +00006532006-10-24 Werner Lemberg <wl@gnu.org>
654
655 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
656
657 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
658 as argument.
659
David Turnera1861392006-10-23 16:00:59 +00006602006-10-23 Zhe Su <zsu@novell.com>
661
Werner Lemberg715e96e2006-10-24 05:28:45 +0000662 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
663 better deal with broken Asian fonts with strange glyphs, having
664 self-intersections and other peculiarities. The used algorithm is
665 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000666
David Turnere140f142006-10-23 08:56:57 +00006672006-10-23 David Turner <david@freetype.org>
668
Werner Lemberg715e96e2006-10-24 05:28:45 +0000669 Speed up the CFF font loader. With some large CFF fonts,
670 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000671
Werner Lemberg715e96e2006-10-24 05:28:45 +0000672 * src/cff/cffload.c (cff_get_offset): Removed.
673 (cff_new_index): Inline functionality of `cff_get_offset'.
674 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
675 (cff_charset_done): Call `cff_charset_free_cids'.
676 (cff_charset_load): Call `cff_charset_compute_cids'.
677 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
678
679 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
680 with FT_NEXT_XXX.
681
682
683 Speed up the Postscript hinter, with more than 100% speed increase
684 on my machine.
685
686 * src/pshinter/pshalgo.c (psh_corner_is_flat,
687 psh_corner_orientation): New functions.
688 (psh_glyph_compute_inflections): Merge loops for efficiency.
689 Use `psh_corner_orientation'.
690 (psh_glyph_init): Use `psh_corner_is_flat'.
691 (psh_hint_table_find_strong_point): Renamed to...
692 (psh_hint_table_find_strong_points): This.
693 Rewrite, adding argument to handle all points at once.
694 Update all callers.
695 (PSH_MAX_STRONG_INTERNAL): New macro.
696 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000697
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00006982006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
699
700 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000701 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000702
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00007032006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
704
705 * docs/INSTALL.CROSS: New document file for cross-building.
706
707 * builds/unix/configure.raw: Preliminary cross-building support.
708 Find native C compiler and pass it by CC_BUILD, and
709 find suffix for native executable and pass it by EXEEXT_BUILD.
710 Also suffix for target executable is passed by EXEEXT.
711
Werner Lembergb9e6d692006-10-15 08:58:40 +0000712 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
713 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000714 CC_BUILD and EXEEXT_BUILD.
715
Werner Lembergb9e6d692006-10-15 08:58:40 +0000716 * builds/exports.mk (APINAMES_EXE): Change the extension for
717 apinames from the suffix for target (E) to that for building host
718 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000719
Werner Lemberg82a07e92006-10-12 06:20:44 +00007202006-10-12 Werner Lemberg <wl@gnu.org>
721
722 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
723 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
724 which reference those files.
725
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007262006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
727
Werner Lembergb9e6d692006-10-15 08:58:40 +0000728 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
729 embedded in freetype2.pc and freetype-config. Use it to record
730 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000731
732 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
733
734 * builds/unix/freetype-config.in: Ditto.
735
Werner Lemberg28e17d92006-10-11 17:27:47 +00007362006-10-11 Werner Lemberg <wl@gnu.org>
737
738 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
739 development.
740
Jens Claudius336d2292006-10-03 08:53:37 +00007412006-10-03 Jens Claudius <jens.claudius@yahoo.com>
742
743 * include/freetype/config/ftstdlib.h: Cast away volatileness from
744 argument to ft_setjmp.
745
746 * include/freetype/internal/ftvalid.h: Add comment that
747 ft_validator_run must not be used.
748
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007492006-10-01 Werner Lemberg <wl@gnu.org>
750
751 * src/base/ftbase.c: Undo change from 2006-09-30.
752
753 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
754
7552006-09-30 David Turner <david@freetype.org>
756
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000757 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
758 s/unpatented_hinting/ignore_unpatented_hinter/.
759 Update all callers.
760
761 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
762 auto-hinting shall be used or not.
763
764 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000765
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007662006-09-30 Werner Lemberg <wl@gnu.org>
767
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000768 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
769 in use).
770
771 * src/base/ftbase.c: Include `ftlcdfil.c'.
772
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007732006-09-29 Werner Lemberg <wl@gnu.org>
774
775 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
776 overlapping segments. Bug reported by Stefan Koch.
777
David Turnerad830712006-09-27 16:20:59 +00007782006-09-28 David Turner <david@freetype.org>
779
Werner Lemberg2c002e12006-09-29 21:31:53 +0000780 Fix a bug in the automatic unpatented hinting support which prevents
781 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000782
Werner Lemberg2c002e12006-09-29 21:31:53 +0000783 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
784 s/force_autohint/unpatented_hinting/. Update all callers.
785
786 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
787
788 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000789
David Turner8a317cf2006-09-27 07:52:48 +00007902006-09-27 David Turner <david@freetype.org>
791
Werner Lemberg2c002e12006-09-29 21:31:53 +0000792 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000793
David Turner8a317cf2006-09-27 07:52:48 +0000794
David Turnere140f142006-10-23 08:56:57 +0000795 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000796 In a default build, the function `FT_Library_SetLcdFilter' returns
797 `FT_Err_Unimplemented_Feature'; you need to #define
798 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
799 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000800
Werner Lemberg2c002e12006-09-29 21:31:53 +0000801 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000802
Werner Lemberg2c002e12006-09-29 21:31:53 +0000803 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
804 typedef.
805 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
806 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000807
Werner Lemberg2c002e12006-09-29 21:31:53 +0000808 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
809 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000810
Werner Lemberg2c002e12006-09-29 21:31:53 +0000811 Handle subpixel rendering.
812 Simplify function.
813 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
814 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
815
816 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
817 pointing to <freetype/ftlcdfil.h>.
818
819 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
820 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
821
822 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000823
Werner Lemberge20df4a2006-09-27 06:29:21 +00008242006-09-26 David Bustin
825
826 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
827 correctly. Reported as Savannah bug #17843.
828
David Turner6f8c6222006-09-26 15:42:44 +00008292006-09-26 David Turner <david@freetype.org>
830
Werner Lemberg110246c2006-09-26 21:55:44 +0000831 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
832 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
833 horizontal and vertical hinting for the purpose of debugging the
834 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000835
Werner Lemberg110246c2006-09-26 21:55:44 +0000836 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
837 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000838
Werner Lemberg110246c2006-09-26 21:55:44 +0000839 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
840
841 * include/freetype/config/ftoption.h, devel/ftoption.h
842 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
843 we want to compile LCD-optimized rendering code (à la ClearType) or
844 not. The macro *must* be disabled in default builds of the library
845 for patent reasons.
846
847 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
848 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
849 isn't defined at compile time. This only changes the content of the
850 rendered glyph to match the one of normal gray-level rendering,
851 hence clients should not need to be modified.
852
853 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000854
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008552006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
856
857 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
858 LWFN fails and both are available.
859
David Turnerf3050052006-09-11 12:00:32 +00008602006-09-11 David Turner <david@freetype.org>
861
Werner Lembergf9644552006-09-12 13:48:10 +0000862 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
863 report their English names through an Apple Roman
864 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000865
Werner Lembergf9644552006-09-12 13:48:10 +0000866 If the font uses another name entry with language_id == English, it
867 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000868
Werner Lembergf9644552006-09-12 13:48:10 +0000869 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
870 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000871
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008722006-09-05 Werner Lemberg <wl@gnu.org>
873
874 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000875 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000876 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
877 `HAN NOM B.ttf').
878
879 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
880
David Turner772e55d2006-09-05 09:45:15 +00008812006-09-05 David Turner <david@freetype.org>
882
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000883 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000884
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000885 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
886 (TRaster): Remove `count_ex' and `count_ey'.
887 (gray_find_cell): Remove 2nd and 3rd argument.
888 (gray_alloc_cell): Merged with `gray_find_cell'.
889 (gray_record_cell): Simplify.
890 (gray_set_cell): Rewrite.
891 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
892 (gray_render_span): Don't use FT_MEM_SET for small values.
893 (gray_dump_cells) [DEBUG_GRAYS]: New function.
894 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
895 bitmap scanline.
896 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000897
David Turneraa557a92006-09-04 16:42:44 +00008982006-09-04 David Turner <david@freetype.org>
899
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000900 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
901 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000902
Werner Lemberg2d8629b2006-09-03 06:18:45 +00009032006-09-03 Werner Lemberg <wl@gnu.org>
904
905 * devel/ftoption.h: Synchronize with
906 include/freetype/config/ftoption.h.
907
908 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
909 variable declaration.
910 (gray_convert_glyph): Fix compiler warnings.
911
David Turner6d79f212006-09-01 14:09:35 +00009122006-09-01 David Turner <david@freetype.org>
913
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000914 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
915 to recognize a few fonts that require the automatic unpatented
916 loader.
David Turnerbd502952006-09-01 19:05:24 +0000917
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000918 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
919 rasterizer. The speed improvement is between 15% and 25%, depending
920 on the font data.
921
922 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
923 (TCell): Redefine.
924 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
925 (gray_init_cells): Updated.
926 (gray_find_cell, gray_alloc_cell): New functions.
927 (gray_record_cell): Rewritten to use `gray_find_cell' and
928 `gray_alloc_cell'.
929 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
930 QSORT_THRESHOLD):
931 Removed.
932 (gray_shell_sort, gray_quick_sort, gray_check_sort,
933 gray_dump_cells): Removed.
934 (gray_sweep): Rewritten.
935 (gray_convert_glyph): Rewrite code which used one of the sorting
936 functions.
937 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000938
Werner Lembergd898aed2006-08-29 09:50:34 +00009392006-08-29 Dr. Werner Fink <werner@suse.de>
940
941 * configure: Make it possible to handle configure options which
942 have strings containing spaces.
943
9442006-08-27 David Turner <david@freetype.org>
945
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000946 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
947 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
948 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
949
950 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
951 src/truetype/truetype.c, src/truetype/ttdriver.c,
952 src/truetype/ttgload.c, src/truetype/ttgload.h,
953 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
954 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
955 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
956
957 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
958 member `force_autohint'.
959
960 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
961
962 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
963 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000964
Jens Claudiusa787f452006-08-27 11:26:18 +00009652006-08-27 Jens Claudius <jens.claudius@yahoo.com>
966
967 Fix miscellaneous compiler warnings.
968
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000969 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
970 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000971
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000972 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
973 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
974 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000975
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000976 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
977 volatileness of argument to ft_longjmp. Spotted by Werner
978 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000979
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000980 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
981 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000982
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000983 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
984 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000985
Werner Lembergc4c35b72006-08-27 08:03:46 +00009862006-08-27 Werner Lemberg <wl@gnu.org>
987
988 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
989 Reported by Jens.
990
Jens Claudius088e44e2006-08-22 14:24:30 +00009912006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000992
Jens Claudius088e44e2006-08-22 14:24:30 +0000993 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000994 about addresses of volatile objects passed as function arguments as
995 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000996
Werner Lembergc4c35b72006-08-27 08:03:46 +0000997 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
998 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000999
1000 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1001 argument `table' a pointer to a volatile object.
1002
1003 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1004 argument `table' a pointer to a volatile object.
1005
Jens Claudius2652bd52006-08-18 17:20:37 +000010062006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1007
1008 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1009 variable `_sfnt' as volatile since it must keep its value across
1010 a call to ft_setjmp.
1011 (gxv_validate): Same for local variables `memory' and `valid'.
1012 (classic_kern_validate): Same for local variables `memory',
1013 `ckern', and `valid'.
1014
1015 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1016 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1017 `jstf', and 'valid'.
1018
1019 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1020 local variable `cmap'.
1021
David Turner9fbfc6a2006-08-16 09:11:31 +000010222006-08-16 David Turner <david@freetype.org>
1023
Werner Lemberg12342992006-08-19 11:18:09 +00001024 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1025 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001026
Werner Lemberg12342992006-08-19 11:18:09 +00001027 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1028 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001029
David Turner33f5f242006-08-16 16:50:55 +00001030
Werner Lemberg12342992006-08-19 11:18:09 +00001031 Improvements to native TrueType hinting. This is a first try,
1032 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1033
1034 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1035 `extra_points2'.
1036
1037 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1038 `orus'.
1039
1040 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1041 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1042 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1043 handle `extra_points2'.
1044
1045 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1046 Remove compiler warning.
1047 (cur_to_arg): Remove macro.
1048 (TT_Hint_Glyph): Updated.
1049 (TT_Process_Simple_Glyph): Handle `orus'.
1050
1051 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1052 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1053 (LOC_Ins_IUP): Renamed to...
1054 (IUP_WorkerRec): This.
1055 Add `orus' member.
1056 (Shift): Renamed to...
1057 (_iup_worker_shift): This.
1058 Updated.
1059 (Interp): Renamed to...
1060 (_iup_worker_interpolate): This.
1061 Updated to handle `orus'.
1062 (Ins_IUP): Updated.
1063
1064 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1065 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001066
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010672006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1068
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001069 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001070 build ftvalid in ft2demos. This has been inadvertedly changed
1071 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001072
10732006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1074
Werner Lemberg12342992006-08-19 11:18:09 +00001075 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1076 Jens:
1077 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001078
Werner Lemberg12342992006-08-19 11:18:09 +00001079 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1080 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001081
1082 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1083
Jens Claudius9950adc2006-08-13 12:14:36 +000010842006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1085
Werner Lemberg12342992006-08-19 11:18:09 +00001086 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1087 T1_TOKEN_TYPE_KEY.
1088 (T1_FieldRec): Add `dict'.
1089 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1090 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1091 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001092
Werner Lemberg12342992006-08-19 11:18:09 +00001093 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1094 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001095
1096 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1097
1098 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001099 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1100 not T1_TOKEN_TYPE_ANY.
1101 (ps_parser_load_field): Make sure a token that should be a string or
1102 name is really a string or name.
1103 Avoid memory leak if a keyword has been already encountered and its
1104 value is overwritten.
1105 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1106 T1_FIELD_XXX.
1107 (parse_dict): Ignore keywords that occur in the wrong dictionary
1108 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001109
Werner Lemberg12342992006-08-19 11:18:09 +00001110 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1111 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001112
Werner Lemberg12342992006-08-19 11:18:09 +00001113 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1114 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001115
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000011162006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1117
1118 Move creation of field `buildchar' of T1_DecoderRec out of
1119 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1120 of it.
1121
1122 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1123 and `T1_Compute_Max_Advance'.
1124
1125 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1126 Remove field `face', add `len_buildchar'.
1127
1128 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1129 field `buildchar'.
1130
1131 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1132 finisher for T1_Decoder.
1133 (cid_slot_load_glyph): Do not ignore failure when initializing the
1134 T1_Decoder.
1135
1136 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1137 Updated.
1138 (t1_decoder_init): Remove initialization of fields `buildchar' and
1139 `len_buildchar'.
1140 (t1_decoder_done): Remove deallocation of field `buildchar'.
1141
1142 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1143 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1144 T1_Decoder.
1145 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1146 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1147 case of error.
1148
1149 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1150 `buildchar' of T1_FaceRec.
1151
1152 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1153 `buildchar' of T1_FaceRec.
1154
Werner Lemberg1a380e02006-07-14 18:28:08 +000011552006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1156
1157 * freetype2/include/freetype/internal/psaux.h: New macros
1158 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1159 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1160 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1161 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1162 (T1_DecoderRec): New fields `buildchar' and `face'.
1163 (IS_PS_TOKEN): New macro.
1164
1165 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1166 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1167
1168 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1169 `default_design_vector' and `num_default_design_vector'.
1170
1171 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1172 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1173 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1174
1175 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1176 `token' argument to be NULL if we want only to count the number of
1177 tokens.
1178 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1179 want to skip the array.
1180 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1181 want to skip the array.
1182
1183 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1184 support for (partially commented out) othersubrs 19-25, 27, and 28.
1185 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1186 (t1_decoder_done): Release new field `buildchar'.
1187
1188 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1189 functions.
1190 (t1_keywords): Register them.
1191 (t1_allocate_blend): Updated.
1192 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1193 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1194 (parse_dict): Remove `keyword_flags' argument.
1195 Use new macro IS_PS_TOKEN.
1196 Changed function so that later PostScript definitions override
1197 earlier ones.
1198 (t1_init_loader): Initialize new field `keywords_encountered'.
1199 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1200 `len_buildchar'.
1201 Remove `keywords_flags'.
1202
1203 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1204 `keywords_encountered'.
1205 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1206
1207 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1208 New entries for parsing /NDV, /CDV, and /DesignVector.
1209
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000012102006-07-07 Werner Lemberg <wl@gnu.org>
1211
1212 Add many checks to protect against malformed PCF files.
1213
1214 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1215 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1216
1217 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1218 data and check that tables don't overlap (using a simple
1219 bubblesort).
1220 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1221 New macros which give the size of data structures in the data
1222 stream.
1223 (pcf_get_properties): Use rough estimates to get array size limits.
1224 Assign `face->nprops' and `face->properties' earlier so that a call
1225 to PCF_Face_Done can do the clean-up in case of error.
1226 Protect against invalid string offsets.
1227 (pcf_get_metrics): Clean up code.
1228 Adjust tracing message levels.
1229 Use rough estimate to get array size limit.
1230 (pcf_get_bitmaps): Clean up code.
1231 Adjust tracing message levels.
1232 Use rough estimates to get offset limits.
1233 (pcf_get_encodings): Adjust tracing message level.
1234 (pcf_get_accel): Clean up code.
1235
Werner Lemberg8eb05252006-06-27 06:20:01 +000012362006-06-26 Werner Lemberg <wl@gnu.org>
1237
1238 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1239 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1240
Werner Lemberg24703f82006-06-26 19:12:51 +000012412006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1242
1243 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1244 (t1_decoder_parse_charstrings): Operator with
1245 opcode 15 pops its two arguments.
1246 Handle the case where the pops of an othersubr may be part of a
1247 subroutine.
1248 Handle unknown othersubrs gracefully: count their operands and let
1249 the following pop operators push the operands as the results onto
1250 the Type1 stack.
1251 Improve handling of setcurrentpoint opcode.
1252
Werner Lembergc011f4c2006-06-26 09:40:00 +000012532006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1254
1255 The Type 1 parser now skips over top-level procedures as required
1256 for a `Simplified Parser'. This makes the parser more robust as it
1257 doesn't poke around in PostScript code. Additionally, it makes the
1258 FontDirectory hackery in src/type1/t1load.c unnecessary.
1259
1260 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1261 (skip_literal_string): Add FT_Error as return value.
1262 Handle escapes better.
1263 (skip_string): Add FT_Error as return value.
1264 Don't set `parser->error' but return error code directly.
1265 (skip_procedure): New function.
1266 (ps_parser_skip_PS_token): Handle procedures.
1267 Update code.
1268 (ps_parser_to_token): Update code.
1269 (ps_parser_load_field_table): Handle bbox entries also.
1270
1271 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1272 Add commented-out code for synthetic fonts.
1273
Werner Lemberga2da05c2006-06-25 06:27:27 +000012742006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1275
1276 Fix two hinting bugs as reported in
1277 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1278
1279 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1280 `first_point' member.
1281
1282 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1283 `first_point'.
1284 (TT_Process_Composite_Glyph): Always untouch points.
1285
1286 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1287 `first_point' and `last_point' in case of composite glyphs.
1288 (Ins_IUP): Fix computation of `end_point'.
1289
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012902006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1291
Werner Lembergef3d2c22006-06-25 06:07:14 +00001292 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1293 Mac. The original patch was written by David Sachitano and Lawrence
1294 Coopet, and modified by Sean McBride for MPW compatibility. Only
1295 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001296
Werner Lembergef3d2c22006-06-25 06:07:14 +00001297 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1298 Mac OS X platforms.
1299 (OS_INLINE): Undefine before definition.
1300 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1301 FontAssociation table in FOND resource.
1302 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1303 and fontSize at each entry of FontAssociation table in FOND
1304 resource.
1305 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1306 ffStylOff of FamilyRecord header of FOND resource, the header,
1307 fontSize, fontID at each entry of FontAssociation table, and
1308 StyleMapping table.
1309 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001310
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000013112006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1312
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001313 Public API of TrueTypeGX, OpenType, and classic kern table validator
1314 should return `FT_Err_Unimplemented_Feature' if validation service
1315 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001316 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001317 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1318
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001319 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1320 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1321 unavailable.
1322 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1323 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001324
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001325 * src/base/ftotval.c (FT_OpenType_Validate): Return
1326 FT_Err_Unimplemented_Feature if OpenType validation service is
1327 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001328
Werner Lembergb10e45a2006-06-08 07:32:56 +000013292006-06-08 Werner Lemberg <wl@gnu.org>
1330
1331 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1332 errors.
1333
David Turner5f1f7502006-06-07 05:11:50 +000013342006-06-07 David Turner <david@freetype.org>
1335
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001336 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1337 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1338 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001339
David Turner457b4a82006-06-06 08:14:14 +000013402006-06-06 David Turner <david@freetype.org>
1341
Werner Lemberg4836f952006-06-06 12:54:08 +00001342 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001343
Werner Lemberg4836f952006-06-06 12:54:08 +00001344 We change `ps_unicodes_init' so that it also takes a
1345 `free_glyph_name' callback to release the glyph names returned by
1346 `get_glyph_name'
1347
1348 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1349 Renamed to ...
1350 (PS_GetGlyphNameFunc): This.
1351 (PS_FreeGlyphNameFunc): New typedef.
1352 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1353
1354 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1355 argument.
1356 (cff_sid_free_glyph_name): New function.
1357 (cff_cmap_unicode_init): Updated.
1358
1359 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1360
1361 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1362 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001363
1364
David Turner09717352006-06-04 14:33:08 +000013652006-06-04 David Turner <david@freetype.org>
1366
Werner Lembergd724f202006-06-04 15:17:41 +00001367 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1368 `item_size == 0' as well -- though this sounds weird, it can
1369 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001370
Werner Lembergd724f202006-06-04 15:17:41 +00001371 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1372 of `face->num_glyphs' which missed the last glyph, due to
1373 the offset-by-1 computation, since the PFR format doesn't
1374 guarantee that glyph index 0 corresponds to the `missing
1375 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001376
Werner Lemberg33779662006-05-26 06:30:05 +000013772006-05-25 Werner Lemberg <wl@gnu.org>
1378
1379 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1380 `-no-undefined'. Reported by Christian Biesinger.
1381
Werner Lemberg24773d62006-05-20 08:53:13 +000013822006-05-19 Brian Weed <bw@imaginengine.com>
1383
1384 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1385 have debug information, and debug libraries use `C7 compatible'
1386 debug info.
1387
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013882006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1389
Werner Lemberga6523a62006-05-20 08:47:01 +00001390 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001391 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001392
Werner Lemberga6523a62006-05-20 08:47:01 +00001393 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1394 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001395
1396 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001397 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001398
13992006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1400
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001401 * build/unix/configure.raw: Add a fallback to disable Carbon
1402 dependency, if configured with no options on Mac OS X.
1403
14042006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1405
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001406 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001407 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001408 the second part of Savannah bug #16590.
1409
Werner Lemberg545c4e52006-05-17 22:55:04 +000014102006-05-18 Werner Lemberg <wl@gnu.org>
1411
1412 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1413 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1414
David Turnerdc3ff312006-05-17 12:59:35 +000014152006-05-17 David Turner <david@freetype.org>
1416
Werner Lemberg545c4e52006-05-17 22:55:04 +00001417 This is a major patch used to drastically improve the performance of
1418 loading glyphs. This both speeds up loading the glyph vectors
1419 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001420
Werner Lemberg545c4e52006-05-17 22:55:04 +00001421 We now use inline assembler code with GCC to implement `FT_MulFix',
1422 which is probably the most important function related to the
1423 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001424
Werner Lemberg545c4e52006-05-17 22:55:04 +00001425 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001426
1427
Werner Lemberg545c4e52006-05-17 22:55:04 +00001428 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1429 `cursor' and `limit'.
1430
1431 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1432 New functions.
1433 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1434 [TEST]: Remove.
1435
1436 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1437 code.
1438
1439 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1440 `FT_ZERO'
1441 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1442 (af_glyph_hints_reload: Rewrite recognition of weak points.
1443
1444 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1445 constant values out of the loops.
1446
1447 * src/autofit/aftypes.h: Updated.
1448
1449 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1450
1451 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1452 product to get orientation.
1453
1454 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1455 (FT_Stream_OpenGzip): Use it to handle small files directly in
1456 memory.
1457
1458 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1459 Improve performance.
1460
1461 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1462 `limit'.
1463
1464 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1465 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1466 exceedingly large values of number of contours. Speed up by
1467 reducing the number of loops.
1468
1469 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1470
1471
1472 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1473 used to detect rogue clients from 4 to 16. This is to prevent some
1474 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1475 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001476
Werner Lembergde2d90a2006-05-17 08:54:30 +000014772007-05-17 Werner Lemberg <wl@gnu.org>
1478
1479 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001480 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001481
14822006-05-16 Werner Lemberg <wl@gnu.org>
1483
1484 * docs/PROBLEMS: Updated icl issues.
1485
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001486----------------------------------------------------------------------------
1487
Werner Lemberg42b63b22007-01-21 21:01:33 +00001488Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001489David Turner, Robert Wilhelm, and Werner Lemberg.
1490
1491This file is part of the FreeType project, and may only be used, modified,
1492and distributed under the terms of the FreeType project license,
1493LICENSE.TXT. By continuing to use, modify, or distribute this file you
1494indicate that you have read the license and understand and accept it
1495fully.
1496
1497
1498Local Variables:
1499version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001500coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001501End: