blob: 62bba20840a3e0d20a2cea5cea99460dc4fa72a5 [file] [log] [blame]
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000012007-01-25 Werner Lemberg <wl@gnu.org>
2
3 * docs/release: Updated -- Savannah uses a new uploading scheme.
4
David Turnera42567b2007-01-25 12:23:37 +000052007-01-25 David Turner <david@freetype.org>
6
Werner Lembergd7855662007-01-25 13:53:56 +00007 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00008
Werner Lembergd7855662007-01-25 13:53:56 +00009 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
10 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
11 functions.
David Turnera42567b2007-01-25 12:23:37 +000012
Werner Lembergd7855662007-01-25 13:53:56 +000013 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +000014
Werner Lembergb1be9e82007-01-25 11:50:00 +0000152007-01-25 Werner Lemberg <wl@gnu.org>
16
17 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +000018 correctly in a sanity check. Since this function is only used to
19 load local and global functions, any charstring that called the last
20 local/global function would fail otherwise. This fixes Savannah bug
21 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +000022
23 * docs/CHANGES: Document it.
24
David Turnerb6de8d12007-01-23 15:51:50 +0000252007-01-23 David Turner <david@freetype.org>
26
Werner Lembergb1be9e82007-01-25 11:50:00 +000027 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
28 prevented compilation when disabling both the unpatented and the
29 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +000030
Werner Lembergb1be9e82007-01-25 11:50:00 +000031
32 Fix and enable the warper to improve `light' hinting mode. This is
33 not necessarily a final version, but it seems to work well.
34
35 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
36 Disable code.
37 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
38 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
39
40 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
41 (af_warper_compute_line_best): Fix array size of `scores'.
42 (af_warper_compute): Better handling of border cases.
43 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
44 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +000045
Werner Lemberg011d1112007-01-21 09:36:00 +0000462007-01-21 Werner Lemberg <wl@gnu.org>
47
Werner Lemberg42b63b22007-01-21 21:01:33 +000048 * ChangeLog: Split off older entries into...
49 * ChangeLog.22: This new file.
50
512007-01-21 Werner Lemberg <wl@gnu.org>
52
Werner Lemberg555258f2007-01-21 09:46:37 +000053 * docs/CHANGES: Document SHZ fix.
54
552007-01-21 George Williams <gww@silcom.com>
56
57 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
58 points.
59
602007-01-21 Werner Lemberg <wl@gnu.org>
61
Werner Lemberg011d1112007-01-21 09:36:00 +000062 * src/sfnt/ttmtx.c (tt_face_get_metrics)
63 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
64
Werner Lemberg87a5a432007-01-17 12:44:39 +0000652007-01-17 Werner Lemberg <wl@gnu.org>
66
Werner Lembergb8003292007-01-17 12:56:25 +000067
68 * Version 2.3.0 released.
69 =========================
70
71
72 Tag sources with `VER-2-3-0-FINAL'.
73
742007-01-17 Werner Lemberg <wl@gnu.org>
75
Werner Lemberg87a5a432007-01-17 12:44:39 +000076 * docs/release: Updated.
77
David Turner22122722007-01-16 20:06:44 +0000782007-01-16 David Turner <david@freetype.org>
79
Werner Lemberg87a5a432007-01-17 12:44:39 +000080 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
81 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
82 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
83 warnings.
David Turner22122722007-01-16 20:06:44 +000084
Werner Lemberg267e1d72007-01-15 07:48:09 +0000852007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
86
87 * builds/amiga/makefile, builds/amiga/makefile.os4,
88 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
89
90 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
91
Werner Lemberg8c4120d2007-01-15 06:42:40 +0000922007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
93
94 Fix various compiler warnings.
95
96 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
97 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
98 s/index/strike_index/.
99 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
100
101 * src/gxvalid/gxvmorx5.c
102 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
103
104 * src/truetype/ttinterp.c (Compute_Point_Displacement),
105 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
106 uninitialized variables.
107
Werner Lemberg6164a9d2007-01-13 23:01:36 +00001082007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
109
110 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
111
Werner Lemberg281c1482007-01-13 22:50:51 +00001122007-01-13 Werner Lemberg <wl@gnu.org>
113
114 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
115 versions up to 0x3FF without complaining.
116
Werner Lembergac250b22007-01-13 14:01:36 +00001172007-01-13 Derek Clegg <dclegg@apple.com>
118
119 Add FT_Get_PS_Font_Info interface to CFF driver.
120
121 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
122 (CFF_FontRec): Add `font_info' field.
123
124 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
125 (cff_font_done): Free font->font_info if necessary.
126
127 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
128 (cff_service_ps_info): Register cff_ps_get_font_info.
129
Werner Lemberg23df31a2007-01-13 08:45:00 +00001302007-01-13 Werner Lemberg <wl@gnu.org>
131
132 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
133 with C++ compiler.
134
135 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
136 af_glyph_hints_dump_edges): Ditto.
137
138 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
139 `modules.cfg').
140
141 * src/sfnt/ttsbit0.h: Remove.
142
143 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
144
Werner Lemberg27cf9de2007-01-13 07:34:23 +00001452007-01-12 David Turner <david@freetype.org>
146
147 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
148 bug in the bitmap emboldener if the pitch of the source bitmap is
149 much larger than its width.
150
151 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
152 compilation warning.
153
Werner Lemberg6d96d312007-01-12 10:30:19 +00001542007-01-12 Werner Lemberg <wl@gnu.org>
155
156 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
157 `automake' CVS module from sources.redhat.com.
158
Werner Lemberg17432b52007-01-12 09:28:44 +00001592007-01-11 Werner Lemberg <wl@gnu.org>
160
161 * src/type1/t1load.c (is_space): Removed.
162 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
163 (parse_charstrings): Use IS_PS_TOKEN.
164
165
166 * autogen.sh: Avoid bash specific syntax.
167
David Turner038ace22007-01-11 15:00:59 +00001682007-01-11 David Turner <david@freetype.org>
169
Werner Lemberg17432b52007-01-12 09:28:44 +0000170 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000171
Werner Lemberg17432b52007-01-12 09:28:44 +0000172 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000173
Werner Lemberg17432b52007-01-12 09:28:44 +0000174 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
175 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000176 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000177
Werner Lemberg17432b52007-01-12 09:28:44 +0000178 * autogen.sh: Small fix to get it working on Mac OS X properly:
179 The issue is that GNU libtool is called `glibtool' on this platform,
180 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000181
David Turner2628ea92007-01-10 13:15:56 +00001822007-01-10 David Turner <david@freetype.org>
183
Werner Lemberg17432b52007-01-12 09:28:44 +0000184 * all-sources: Tag all sources with VER-2-3-0-RC1 and
185 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000186
Werner Lemberg17432b52007-01-12 09:28:44 +0000187 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
188 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
189 version number to 2.3.0.
190
191 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
192 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000193
194 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000195 include/freetype/ftlcdfil.h: Update reference documentation with
196 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000197
Werner Lemberg17432b52007-01-12 09:28:44 +0000198 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
199 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000200
Werner Lembergbf02d392007-01-10 07:07:37 +00002012007-01-10 Derek Clegg <dclegg@apple.com>
202
203 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
204 values.
205
David Turnerf48b60e2007-01-08 15:15:32 +00002062007-01-08 David Turner <david@freetype.org>
207
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000208 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000209
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000210 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
211 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000212 corresponding to a given character pixel size.
213
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000214 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
215 `gasp' table, in order to avoid potential problems with later
216 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000217
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000218 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
219 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000220
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000221 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
222 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
223 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
224 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000225
Werner Lemberge6b6f372007-01-07 00:06:47 +00002262007-01-07 Werner Lemberg <wl@gnu.org>
227
Werner Lembergb8004d22007-01-07 09:13:38 +0000228 * src/cid/cidparse.c (cid_parser_new): Improve error message for
229 Type 11 fonts.
230 Scan for `/sfnts' token.
231
2322007-01-07 Werner Lemberg <wl@gnu.org>
233
234 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000235
Werner Lembergbe5f7972007-01-06 07:51:48 +00002362007-01-06 Werner Lemberg <wl@gnu.org>
237
238 * src/cff/cffload.c (cff_index_init): Remove unused variable.
239 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
240
David Turnera8cf42b2007-01-04 16:46:46 +00002412007-01-04 David Turner <david@freetype.org>
242
Werner Lembergf6294392007-01-06 07:47:45 +0000243 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
244 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000245
Werner Lembergf6294392007-01-06 07:47:45 +0000246
247 Do not allocate interpreter-specific tables in memory if we are not
248 going to load glyphs with the bytecode interpreter anyway.
249
250 * src/truetype/ttgload.c (tt_loader_init): Load execution context
251 only if glyph is hinted.
252 Updated.
253 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
254 and `cvs_ready'.
255 Add `tt_size_ready_bytecode' declaration.
256 * src/truetype/ttobjs.c (tt_size_done_bytecode,
257 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
258 (tt_size_init): Move most code into `tt_size_init_bytecode'.
259 (tt_size_done): Move most code into `tt_size_done_bytecode'.
260 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000261
David Turner91a34022007-01-05 14:47:08 +0000262
Werner Lembergf6294392007-01-06 07:47:45 +0000263 Don't extract the metrics table from the SFNT font file. Instead,
264 reparse it on each glyph load. The runtime difference is not
265 noticeable, and it can save a lot of heap memory when memory-mapped
266 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000267
Werner Lembergf6294392007-01-06 07:47:45 +0000268 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
269 `horz_metrics_offset' and `vert_metrics_ofset'.
270 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
271 Updated.
272
273
274 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
275
276
277 Do not load the CFF index offsets into memory, since this wastes a
278 *lot* of heap memory with large Asian CFF fonts. There is no
279 significant performance loss.
280
281 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
282 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
283 `data_size'.
284 (CFF_CharsetRec): Add field `num_glyphs'.
285
286 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
287 cff_charset_cid_to_gindex): New functions.
288 (cff_new_index): Renamed to...
289 (cff_index_init): This. Update all callers.
290 Updated -- some code has been moved to `cff_index_load_offsets'.
291 (cff_done_index): Renamed to...
292 (cff_index_done): This. Update all callers.
293 (cff_index_get_pointers, cff_index_access_element): Updated to use
294 stream offsets.
295 (cff_charset_compute_cids): Set `num_glyphs' field.
296 (cff_encoding_load): Updated.
297
298 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000299
3002007-01-04 David Turner <david@freetype.org>
301
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000302 * docs/INSTALL.UNIX: Simplify some parts, add reference to
303 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000304
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000305 * README.CVS: Add common problem description and solution
306 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000307
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000308 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000309
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000310 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000311
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000312 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000313
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000314 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
315 (TWorker): This.
316 Remove `count_table' and `memory'.
317 Make `grays' a pointer.
318 (TRaster): New structure.
319 (count_table): New static array.
320 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
321 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
322 ft_black_set_mode, ft_black_render): Updated.
323 (ft_black_init): Don't initialize `count_table'.
324 (ft_black_reset): Use the render pool. This saves about 6KB of
325 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000326
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000327 * src/smooth/ftgrays.c (TRaster): Replaced with...
328 (TWorker): This.
329 Remove `memory'.
330 (TRaster): New structure.
331
332 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
333 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
334 gray_render_span, gray_raster_render): Updated.
335 (gray_raster_reset): Use the render pool. This saves about 6KB of
336 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000337
David Turner8a6c44e2007-01-04 17:03:11 +0000338 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
339 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000340 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
341 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
342 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000343
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000344 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
345 Remove a typo that results in no hinting and a memory leak with some
346 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000347
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000348 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000349 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000350 CFF_Faces in it. We need to close all faces before destroying the
351 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000352
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00003532007-01-02 Werner Lemberg <wl@gnu.org>
354
355 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
356 Remove compiler warning.
357
David Turner9207e002007-01-02 16:58:13 +00003582007-01-02 David Turner <david@freetype.org>
359
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000360 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000361
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00003622006-12-31 Masatake YAMATO <jet@gyve.org>
363
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000364 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
365 function.
366 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000367 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000368 `gxv_kern_subtable_fmt0_pairs_validate'.
369
David Turner115b4422006-12-22 11:37:05 +00003702006-12-22 David Turner <david@freetype.org>
371
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000372 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
373 warnings.
David Turner115b4422006-12-22 11:37:05 +0000374
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000375 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
376 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000377
Werner Lemberg4755bf72006-12-16 08:58:44 +00003782006-12-16 Anders Kaseorg <anders@kaseorg.com>
379
380 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
381 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
382
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00003832006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
384
Werner Lemberg9b774e22007-01-16 06:11:27 +0000385 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000386 sync with the modification by Jens Claudius on 2006-08-22; cf.
387 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 +0000388
3892006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
390
391 * src/base/ftmac.c: Specialized for Mac OS X only.
392 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
393 * builds/unix/configure.raw: Ditto. When explicit switches for
394 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
395 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
396
3972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
398
399 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
400 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
401 instead of src/base/ftmac.c
402 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
403 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
404 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
405 that cannot be built at present.
406
4072006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
408
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000409 * src/base/ftobjs.c: Improvement of resource fork handler for
410 POSIX, cf.
411 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000412 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
413 format or .dfont, to simulate the face index number counted by ftmac.c.
414 (IsMacResource): Return the number of scalable faces correctly.
415
Werner Lembergec5b4502006-12-10 07:51:38 +00004162006-12-10 Werner Lemberg <wl@gnu.org>
417
418 * builds/toplevel.mk (version): Protect against `distclean' target.
419
Werner Lembergb26b3142006-12-09 20:01:43 +00004202006-12-09 Werner Lemberg <wl@gnu.org>
421
422 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
423 or `type'.
424
425 * builds/freetype.mk (version): Extracted from freetype.h, using
426 GNU make's built-in string functions.
427 (refdoc): Use $(version) instead of static version number.
428
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00004292006-12-08 Werner Lemberg <wl@gnu.org>
430
431 * builds/toplevel.mk (dist): Extract version number from freetype.h.
432
Werner Lemberg15c29502006-12-09 07:29:54 +00004332006-12-08 Vladimir Volovich <vvv@vsu.ru>
434
435 * src/tools/apinames (State): Remove final comma in structure -- xlc
436 v5 under AIX 4.3 doesn't like this.
437
David Turnerdbf3b432006-12-07 21:18:09 +00004382006-12-07 David Turner <david@freetype.org>
439
Werner Lemberg256a3512006-12-08 06:49:33 +0000440 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
441 to the spacing of auto-fitted glyphs. This only impacts rare
442 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000443
Werner Lemberg11171312006-12-03 09:43:40 +00004442006-12-03 Werner Lemberg <wl@gnu.org>
445
446 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
447
Werner Lemberg960ba592006-12-01 08:20:47 +00004482006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000449
Werner Lemberg960ba592006-12-01 08:20:47 +0000450 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
451 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
452 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000453
David Turner80658e52006-11-28 08:09:20 +0000454
Werner Lemberg960ba592006-12-01 08:20:47 +0000455 * include/freetype/ftxf86.h: Fix and extend comment so that it
456 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000457
Werner Lemberg960ba592006-12-01 08:20:47 +0000458 * include/freetype/ftchapters.h: Add `font_format' section.
459
460
461 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
462 to TOC in index page.
463
4642006-11-28 David Turner <david@freetype.org>
465
466 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
467 trying to render into a zero-width/height bitmap, not an error code.
468
469 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
470
471 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
472 ones instead.
473
474 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
475 variable.
David Turner80658e52006-11-28 08:09:20 +0000476
Werner Lemberg8636c292006-11-26 22:28:13 +00004772006-11-26 Pierre Hanser <hanser@club-internet.fr>
478
479 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
480
Werner Lemberg960ba592006-12-01 08:20:47 +00004812006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000482
Werner Lemberg960ba592006-12-01 08:20:47 +0000483 * src/autofit/afhints.c (af_glyph_hints_dump_points,
484 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
485 Add stubs to link the `ftgrid' test program when debugging is
486 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000487
Werner Lemberg960ba592006-12-01 08:20:47 +00004882006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000489
490 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000491 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
492
493 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
494 Emit more sensible information.
495
496 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
497
498 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
499 rounding of blue values.
500 (af_latin_hints_compute_segments): Hint segment heights.
501 (af_latin_hints_link_segments): Reduce `len_score' value.
502 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
503 value and use `height' member for comparisons.
504 (af_latin_hint_edges): Extend logging message.
505 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000506
Werner Lemberg91959bf2006-11-22 10:36:55 +00005072006-11-22 Werner Lemberg <wl@gnu.org>
508
509 Fix Savannah bug #15553.
510
511 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
512 program after a change from mono to grayscaling (and vice versa).
513 Use correct constant for comparison to get `exec->grayscale'.
514
Werner Lemberg913a3652006-11-19 09:19:17 +00005152006-11-18 Werner Lemberg <wl@gnu.org>
516
517 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000518 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000519 This patch fixes Savannah bug #18301.
520
521 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
522 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
523 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
524 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
525 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
526 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
527 (FNT_Load_Glyph): Check validity of `glyph_index'.
528
David Turner7bab6ae2006-11-13 11:25:06 +00005292006-11-13 David Turner <david@freetype.org>
530
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000531 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
532 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000533
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000534 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
535 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
536 when building the library to change the default LCD filter to be
537 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000538
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000539 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000540
David Turner8765c712006-11-10 16:49:42 +00005412006-11-10 David Turner <david@freetype.org>
542
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000543 * src/smooth/ftsmooth.c: API change for the LCD
544 filter. The FT_LcdFilter value is an enumeration describing which
545 filter to apply, with new values FT_LCD_FILTER_LIGHT and
546 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
547 algorithm which produces strong color fringes for everything
548 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000549
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000550 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
551 second parameter to an enum type.
552
553 * src/base/ftlcdfil.c (USE_LEGACY): Define.
554 (_ft_lcd_filter): Rename to...
555 (_ft_lcd_filter_fir): This.
556 Update parameters.
557 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
558 (FT_Library_Set_LcdFilter): Update parameters.
559 Handle new filter modes.
560
561 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
562 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
563 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
564 callback and update other fields.
565
566 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
567 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
568 Other minor improvements.
569
570 * src/autofit/aflatin.c: Various tiny improvements that drastically
571 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
572 (af_latin_hints_compute_edges): Fix typo.
573 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000574
David Turner4e9cc3c2006-11-09 16:31:52 +00005752006-11-09 David Turner <david@freetype.org>
576
Werner Lemberg49c77a82006-11-09 21:51:57 +0000577 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
578 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000579
Werner Lemberg5e430892006-11-07 09:35:03 +00005802006-11-07 Zhe Su <james.su@gmail.com>
581
582 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
583 also.
584
Werner Lemberg111b5ae2006-11-03 09:40:12 +00005852006-11-03 Werner Lemberg <wl@gnu.org>
586
587 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
588
David Turner40604742006-11-02 16:37:35 +00005892006-11-02 David Turner <david@freetype.org>
590
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000591 Add a few tweaks to better handle serif fonts.
592 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000593
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000594 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
595 segments that are less than 1.5 pixels high. This gets rid of
596 *many* corner cases with serifs.
597 (af_latin_align_linked_edge): Add logging message.
598 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
599 Add logging messages.
600 Handle AF_EDGE_FLAG flag specially.
601
602 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
603 _af_debug_disable_blue_hints, and _af_debug_hints variables.
604
605 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
606 Update external declarations.
607 (af_corner_orientation, af_corner_is_flat): Replaced by...
608
609 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
610 ft_corner_is_flat): These declarations.
611
612 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
613 Comment out. Replaced by...
614
615 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
616 These functions. Update all callers.
617 (FT_Add64) [!FT_LONG64]: Simplify.
618
619 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
620 (af_direction_compute): Add a missing FT_ABS call. This bug caused
621 production of garbage by missing lots of segments.
622
623 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
624
625 * src/autofit/afloader.c (af_loader_init, af_loader_done)
626 [AF_DEBUG]: Set _af_debug_hints.
627
628
629 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
630 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
631 and ft_corner_orientation.
632
633
634 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000635
Werner Lemberge88c5262006-10-24 05:46:26 +00006362006-10-24 Werner Lemberg <wl@gnu.org>
637
638 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
639
640 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
641 as argument.
642
David Turnera1861392006-10-23 16:00:59 +00006432006-10-23 Zhe Su <zsu@novell.com>
644
Werner Lemberg715e96e2006-10-24 05:28:45 +0000645 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
646 better deal with broken Asian fonts with strange glyphs, having
647 self-intersections and other peculiarities. The used algorithm is
648 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000649
David Turnere140f142006-10-23 08:56:57 +00006502006-10-23 David Turner <david@freetype.org>
651
Werner Lemberg715e96e2006-10-24 05:28:45 +0000652 Speed up the CFF font loader. With some large CFF fonts,
653 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000654
Werner Lemberg715e96e2006-10-24 05:28:45 +0000655 * src/cff/cffload.c (cff_get_offset): Removed.
656 (cff_new_index): Inline functionality of `cff_get_offset'.
657 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
658 (cff_charset_done): Call `cff_charset_free_cids'.
659 (cff_charset_load): Call `cff_charset_compute_cids'.
660 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
661
662 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
663 with FT_NEXT_XXX.
664
665
666 Speed up the Postscript hinter, with more than 100% speed increase
667 on my machine.
668
669 * src/pshinter/pshalgo.c (psh_corner_is_flat,
670 psh_corner_orientation): New functions.
671 (psh_glyph_compute_inflections): Merge loops for efficiency.
672 Use `psh_corner_orientation'.
673 (psh_glyph_init): Use `psh_corner_is_flat'.
674 (psh_hint_table_find_strong_point): Renamed to...
675 (psh_hint_table_find_strong_points): This.
676 Rewrite, adding argument to handle all points at once.
677 Update all callers.
678 (PSH_MAX_STRONG_INTERNAL): New macro.
679 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000680
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00006812006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
682
683 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000684 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000685
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00006862006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
687
688 * docs/INSTALL.CROSS: New document file for cross-building.
689
690 * builds/unix/configure.raw: Preliminary cross-building support.
691 Find native C compiler and pass it by CC_BUILD, and
692 find suffix for native executable and pass it by EXEEXT_BUILD.
693 Also suffix for target executable is passed by EXEEXT.
694
Werner Lembergb9e6d692006-10-15 08:58:40 +0000695 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
696 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000697 CC_BUILD and EXEEXT_BUILD.
698
Werner Lembergb9e6d692006-10-15 08:58:40 +0000699 * builds/exports.mk (APINAMES_EXE): Change the extension for
700 apinames from the suffix for target (E) to that for building host
701 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000702
Werner Lemberg82a07e92006-10-12 06:20:44 +00007032006-10-12 Werner Lemberg <wl@gnu.org>
704
705 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
706 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
707 which reference those files.
708
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00007092006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
710
Werner Lembergb9e6d692006-10-15 08:58:40 +0000711 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
712 embedded in freetype2.pc and freetype-config. Use it to record
713 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000714
715 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
716
717 * builds/unix/freetype-config.in: Ditto.
718
Werner Lemberg28e17d92006-10-11 17:27:47 +00007192006-10-11 Werner Lemberg <wl@gnu.org>
720
721 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
722 development.
723
Jens Claudius336d2292006-10-03 08:53:37 +00007242006-10-03 Jens Claudius <jens.claudius@yahoo.com>
725
726 * include/freetype/config/ftstdlib.h: Cast away volatileness from
727 argument to ft_setjmp.
728
729 * include/freetype/internal/ftvalid.h: Add comment that
730 ft_validator_run must not be used.
731
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007322006-10-01 Werner Lemberg <wl@gnu.org>
733
734 * src/base/ftbase.c: Undo change from 2006-09-30.
735
736 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
737
7382006-09-30 David Turner <david@freetype.org>
739
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000740 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
741 s/unpatented_hinting/ignore_unpatented_hinter/.
742 Update all callers.
743
744 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
745 auto-hinting shall be used or not.
746
747 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000748
Werner Lemberg2863cfa2006-10-01 17:04:00 +00007492006-09-30 Werner Lemberg <wl@gnu.org>
750
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000751 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
752 in use).
753
754 * src/base/ftbase.c: Include `ftlcdfil.c'.
755
Werner Lemberg9b15ea32006-09-29 18:22:11 +00007562006-09-29 Werner Lemberg <wl@gnu.org>
757
758 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
759 overlapping segments. Bug reported by Stefan Koch.
760
David Turnerad830712006-09-27 16:20:59 +00007612006-09-28 David Turner <david@freetype.org>
762
Werner Lemberg2c002e12006-09-29 21:31:53 +0000763 Fix a bug in the automatic unpatented hinting support which prevents
764 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000765
Werner Lemberg2c002e12006-09-29 21:31:53 +0000766 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
767 s/force_autohint/unpatented_hinting/. Update all callers.
768
769 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
770
771 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000772
David Turner8a317cf2006-09-27 07:52:48 +00007732006-09-27 David Turner <david@freetype.org>
774
Werner Lemberg2c002e12006-09-29 21:31:53 +0000775 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000776
David Turner8a317cf2006-09-27 07:52:48 +0000777
David Turnere140f142006-10-23 08:56:57 +0000778 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000779 In a default build, the function `FT_Library_SetLcdFilter' returns
780 `FT_Err_Unimplemented_Feature'; you need to #define
781 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
782 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000783
Werner Lemberg2c002e12006-09-29 21:31:53 +0000784 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000785
Werner Lemberg2c002e12006-09-29 21:31:53 +0000786 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
787 typedef.
788 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
789 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000790
Werner Lemberg2c002e12006-09-29 21:31:53 +0000791 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
792 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000793
Werner Lemberg2c002e12006-09-29 21:31:53 +0000794 Handle subpixel rendering.
795 Simplify function.
796 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
797 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
798
799 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
800 pointing to <freetype/ftlcdfil.h>.
801
802 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
803 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
804
805 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000806
Werner Lemberge20df4a2006-09-27 06:29:21 +00008072006-09-26 David Bustin
808
809 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
810 correctly. Reported as Savannah bug #17843.
811
David Turner6f8c6222006-09-26 15:42:44 +00008122006-09-26 David Turner <david@freetype.org>
813
Werner Lemberg110246c2006-09-26 21:55:44 +0000814 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
815 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
816 horizontal and vertical hinting for the purpose of debugging the
817 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000818
Werner Lemberg110246c2006-09-26 21:55:44 +0000819 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
820 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000821
Werner Lemberg110246c2006-09-26 21:55:44 +0000822 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
823
824 * include/freetype/config/ftoption.h, devel/ftoption.h
825 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
826 we want to compile LCD-optimized rendering code (à la ClearType) or
827 not. The macro *must* be disabled in default builds of the library
828 for patent reasons.
829
830 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
831 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
832 isn't defined at compile time. This only changes the content of the
833 rendered glyph to match the one of normal gray-level rendering,
834 hence clients should not need to be modified.
835
836 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000837
Werner Lemberg745ff2c2006-09-19 05:48:02 +00008382006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
839
840 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
841 LWFN fails and both are available.
842
David Turnerf3050052006-09-11 12:00:32 +00008432006-09-11 David Turner <david@freetype.org>
844
Werner Lembergf9644552006-09-12 13:48:10 +0000845 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
846 report their English names through an Apple Roman
847 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +0000848
Werner Lembergf9644552006-09-12 13:48:10 +0000849 If the font uses another name entry with language_id == English, it
850 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +0000851
Werner Lembergf9644552006-09-12 13:48:10 +0000852 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
853 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +0000854
Werner Lemberg36d2eab2006-09-05 19:24:34 +00008552006-09-05 Werner Lemberg <wl@gnu.org>
856
857 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +0000858 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000859 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
860 `HAN NOM B.ttf').
861
862 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
863
David Turner772e55d2006-09-05 09:45:15 +00008642006-09-05 David Turner <david@freetype.org>
865
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000866 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +0000867
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000868 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
869 (TRaster): Remove `count_ex' and `count_ey'.
870 (gray_find_cell): Remove 2nd and 3rd argument.
871 (gray_alloc_cell): Merged with `gray_find_cell'.
872 (gray_record_cell): Simplify.
873 (gray_set_cell): Rewrite.
874 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
875 (gray_render_span): Don't use FT_MEM_SET for small values.
876 (gray_dump_cells) [DEBUG_GRAYS]: New function.
877 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
878 bitmap scanline.
879 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +0000880
David Turneraa557a92006-09-04 16:42:44 +00008812006-09-04 David Turner <david@freetype.org>
882
Werner Lembergd1fc7d42006-09-05 07:55:42 +0000883 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
884 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +0000885
Werner Lemberg2d8629b2006-09-03 06:18:45 +00008862006-09-03 Werner Lemberg <wl@gnu.org>
887
888 * devel/ftoption.h: Synchronize with
889 include/freetype/config/ftoption.h.
890
891 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
892 variable declaration.
893 (gray_convert_glyph): Fix compiler warnings.
894
David Turner6d79f212006-09-01 14:09:35 +00008952006-09-01 David Turner <david@freetype.org>
896
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000897 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
898 to recognize a few fonts that require the automatic unpatented
899 loader.
David Turnerbd502952006-09-01 19:05:24 +0000900
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000901 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
902 rasterizer. The speed improvement is between 15% and 25%, depending
903 on the font data.
904
905 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
906 (TCell): Redefine.
907 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
908 (gray_init_cells): Updated.
909 (gray_find_cell, gray_alloc_cell): New functions.
910 (gray_record_cell): Rewritten to use `gray_find_cell' and
911 `gray_alloc_cell'.
912 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
913 QSORT_THRESHOLD):
914 Removed.
915 (gray_shell_sort, gray_quick_sort, gray_check_sort,
916 gray_dump_cells): Removed.
917 (gray_sweep): Rewritten.
918 (gray_convert_glyph): Rewrite code which used one of the sorting
919 functions.
920 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000921
Werner Lembergd898aed2006-08-29 09:50:34 +00009222006-08-29 Dr. Werner Fink <werner@suse.de>
923
924 * configure: Make it possible to handle configure options which
925 have strings containing spaces.
926
9272006-08-27 David Turner <david@freetype.org>
928
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000929 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
930 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
931 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
932
933 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
934 src/truetype/truetype.c, src/truetype/ttdriver.c,
935 src/truetype/ttgload.c, src/truetype/ttgload.h,
936 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
937 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
938 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
939
940 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
941 member `force_autohint'.
942
943 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
944
945 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
946 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000947
Jens Claudiusa787f452006-08-27 11:26:18 +00009482006-08-27 Jens Claudius <jens.claudius@yahoo.com>
949
950 Fix miscellaneous compiler warnings.
951
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000952 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
953 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000954
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000955 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
956 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
957 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000958
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000959 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
960 volatileness of argument to ft_longjmp. Spotted by Werner
961 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000962
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000963 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
964 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000965
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000966 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
967 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000968
Werner Lembergc4c35b72006-08-27 08:03:46 +00009692006-08-27 Werner Lemberg <wl@gnu.org>
970
971 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
972 Reported by Jens.
973
Jens Claudius088e44e2006-08-22 14:24:30 +00009742006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000975
Jens Claudius088e44e2006-08-22 14:24:30 +0000976 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000977 about addresses of volatile objects passed as function arguments as
978 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000979
Werner Lembergc4c35b72006-08-27 08:03:46 +0000980 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
981 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000982
983 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
984 argument `table' a pointer to a volatile object.
985
986 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
987 argument `table' a pointer to a volatile object.
988
Jens Claudius2652bd52006-08-18 17:20:37 +00009892006-08-18 Jens Claudius <jens.claudius@yahoo.com>
990
991 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
992 variable `_sfnt' as volatile since it must keep its value across
993 a call to ft_setjmp.
994 (gxv_validate): Same for local variables `memory' and `valid'.
995 (classic_kern_validate): Same for local variables `memory',
996 `ckern', and `valid'.
997
998 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
999 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1000 `jstf', and 'valid'.
1001
1002 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1003 local variable `cmap'.
1004
David Turner9fbfc6a2006-08-16 09:11:31 +000010052006-08-16 David Turner <david@freetype.org>
1006
Werner Lemberg12342992006-08-19 11:18:09 +00001007 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1008 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001009
Werner Lemberg12342992006-08-19 11:18:09 +00001010 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1011 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001012
David Turner33f5f242006-08-16 16:50:55 +00001013
Werner Lemberg12342992006-08-19 11:18:09 +00001014 Improvements to native TrueType hinting. This is a first try,
1015 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1016
1017 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1018 `extra_points2'.
1019
1020 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1021 `orus'.
1022
1023 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1024 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1025 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1026 handle `extra_points2'.
1027
1028 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1029 Remove compiler warning.
1030 (cur_to_arg): Remove macro.
1031 (TT_Hint_Glyph): Updated.
1032 (TT_Process_Simple_Glyph): Handle `orus'.
1033
1034 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1035 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1036 (LOC_Ins_IUP): Renamed to...
1037 (IUP_WorkerRec): This.
1038 Add `orus' member.
1039 (Shift): Renamed to...
1040 (_iup_worker_shift): This.
1041 Updated.
1042 (Interp): Renamed to...
1043 (_iup_worker_interpolate): This.
1044 Updated to handle `orus'.
1045 (Ins_IUP): Updated.
1046
1047 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1048 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001049
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000010502006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1051
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001052 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001053 build ftvalid in ft2demos. This has been inadvertedly changed
1054 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001055
10562006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1057
Werner Lemberg12342992006-08-19 11:18:09 +00001058 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1059 Jens:
1060 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001061
Werner Lemberg12342992006-08-19 11:18:09 +00001062 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1063 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001064
1065 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1066
Jens Claudius9950adc2006-08-13 12:14:36 +000010672006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1068
Werner Lemberg12342992006-08-19 11:18:09 +00001069 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1070 T1_TOKEN_TYPE_KEY.
1071 (T1_FieldRec): Add `dict'.
1072 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1073 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1074 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001075
Werner Lemberg12342992006-08-19 11:18:09 +00001076 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1077 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001078
1079 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1080
1081 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001082 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1083 not T1_TOKEN_TYPE_ANY.
1084 (ps_parser_load_field): Make sure a token that should be a string or
1085 name is really a string or name.
1086 Avoid memory leak if a keyword has been already encountered and its
1087 value is overwritten.
1088 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1089 T1_FIELD_XXX.
1090 (parse_dict): Ignore keywords that occur in the wrong dictionary
1091 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001092
Werner Lemberg12342992006-08-19 11:18:09 +00001093 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1094 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001095
Werner Lemberg12342992006-08-19 11:18:09 +00001096 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1097 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001098
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000010992006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1100
1101 Move creation of field `buildchar' of T1_DecoderRec out of
1102 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1103 of it.
1104
1105 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1106 and `T1_Compute_Max_Advance'.
1107
1108 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1109 Remove field `face', add `len_buildchar'.
1110
1111 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1112 field `buildchar'.
1113
1114 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1115 finisher for T1_Decoder.
1116 (cid_slot_load_glyph): Do not ignore failure when initializing the
1117 T1_Decoder.
1118
1119 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1120 Updated.
1121 (t1_decoder_init): Remove initialization of fields `buildchar' and
1122 `len_buildchar'.
1123 (t1_decoder_done): Remove deallocation of field `buildchar'.
1124
1125 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1126 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1127 T1_Decoder.
1128 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1129 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1130 case of error.
1131
1132 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1133 `buildchar' of T1_FaceRec.
1134
1135 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1136 `buildchar' of T1_FaceRec.
1137
Werner Lemberg1a380e02006-07-14 18:28:08 +000011382006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1139
1140 * freetype2/include/freetype/internal/psaux.h: New macros
1141 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1142 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1143 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1144 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1145 (T1_DecoderRec): New fields `buildchar' and `face'.
1146 (IS_PS_TOKEN): New macro.
1147
1148 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1149 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1150
1151 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1152 `default_design_vector' and `num_default_design_vector'.
1153
1154 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1155 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1156 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1157
1158 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1159 `token' argument to be NULL if we want only to count the number of
1160 tokens.
1161 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1162 want to skip the array.
1163 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1164 want to skip the array.
1165
1166 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1167 support for (partially commented out) othersubrs 19-25, 27, and 28.
1168 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1169 (t1_decoder_done): Release new field `buildchar'.
1170
1171 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1172 functions.
1173 (t1_keywords): Register them.
1174 (t1_allocate_blend): Updated.
1175 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1176 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1177 (parse_dict): Remove `keyword_flags' argument.
1178 Use new macro IS_PS_TOKEN.
1179 Changed function so that later PostScript definitions override
1180 earlier ones.
1181 (t1_init_loader): Initialize new field `keywords_encountered'.
1182 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1183 `len_buildchar'.
1184 Remove `keywords_flags'.
1185
1186 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1187 `keywords_encountered'.
1188 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1189
1190 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1191 New entries for parsing /NDV, /CDV, and /DesignVector.
1192
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000011932006-07-07 Werner Lemberg <wl@gnu.org>
1194
1195 Add many checks to protect against malformed PCF files.
1196
1197 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1198 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1199
1200 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1201 data and check that tables don't overlap (using a simple
1202 bubblesort).
1203 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1204 New macros which give the size of data structures in the data
1205 stream.
1206 (pcf_get_properties): Use rough estimates to get array size limits.
1207 Assign `face->nprops' and `face->properties' earlier so that a call
1208 to PCF_Face_Done can do the clean-up in case of error.
1209 Protect against invalid string offsets.
1210 (pcf_get_metrics): Clean up code.
1211 Adjust tracing message levels.
1212 Use rough estimate to get array size limit.
1213 (pcf_get_bitmaps): Clean up code.
1214 Adjust tracing message levels.
1215 Use rough estimates to get offset limits.
1216 (pcf_get_encodings): Adjust tracing message level.
1217 (pcf_get_accel): Clean up code.
1218
Werner Lemberg8eb05252006-06-27 06:20:01 +000012192006-06-26 Werner Lemberg <wl@gnu.org>
1220
1221 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1222 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1223
Werner Lemberg24703f82006-06-26 19:12:51 +000012242006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1225
1226 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1227 (t1_decoder_parse_charstrings): Operator with
1228 opcode 15 pops its two arguments.
1229 Handle the case where the pops of an othersubr may be part of a
1230 subroutine.
1231 Handle unknown othersubrs gracefully: count their operands and let
1232 the following pop operators push the operands as the results onto
1233 the Type1 stack.
1234 Improve handling of setcurrentpoint opcode.
1235
Werner Lembergc011f4c2006-06-26 09:40:00 +000012362006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1237
1238 The Type 1 parser now skips over top-level procedures as required
1239 for a `Simplified Parser'. This makes the parser more robust as it
1240 doesn't poke around in PostScript code. Additionally, it makes the
1241 FontDirectory hackery in src/type1/t1load.c unnecessary.
1242
1243 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1244 (skip_literal_string): Add FT_Error as return value.
1245 Handle escapes better.
1246 (skip_string): Add FT_Error as return value.
1247 Don't set `parser->error' but return error code directly.
1248 (skip_procedure): New function.
1249 (ps_parser_skip_PS_token): Handle procedures.
1250 Update code.
1251 (ps_parser_to_token): Update code.
1252 (ps_parser_load_field_table): Handle bbox entries also.
1253
1254 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1255 Add commented-out code for synthetic fonts.
1256
Werner Lemberga2da05c2006-06-25 06:27:27 +000012572006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1258
1259 Fix two hinting bugs as reported in
1260 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1261
1262 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1263 `first_point' member.
1264
1265 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1266 `first_point'.
1267 (TT_Process_Composite_Glyph): Always untouch points.
1268
1269 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1270 `first_point' and `last_point' in case of composite glyphs.
1271 (Ins_IUP): Fix computation of `end_point'.
1272
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012732006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1274
Werner Lembergef3d2c22006-06-25 06:07:14 +00001275 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1276 Mac. The original patch was written by David Sachitano and Lawrence
1277 Coopet, and modified by Sean McBride for MPW compatibility. Only
1278 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001279
Werner Lembergef3d2c22006-06-25 06:07:14 +00001280 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1281 Mac OS X platforms.
1282 (OS_INLINE): Undefine before definition.
1283 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1284 FontAssociation table in FOND resource.
1285 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1286 and fontSize at each entry of FontAssociation table in FOND
1287 resource.
1288 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1289 ffStylOff of FamilyRecord header of FOND resource, the header,
1290 fontSize, fontID at each entry of FontAssociation table, and
1291 StyleMapping table.
1292 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001293
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000012942006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1295
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001296 Public API of TrueTypeGX, OpenType, and classic kern table validator
1297 should return `FT_Err_Unimplemented_Feature' if validation service
1298 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001299 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001300 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1301
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001302 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1303 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1304 unavailable.
1305 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1306 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001307
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001308 * src/base/ftotval.c (FT_OpenType_Validate): Return
1309 FT_Err_Unimplemented_Feature if OpenType validation service is
1310 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001311
Werner Lembergb10e45a2006-06-08 07:32:56 +000013122006-06-08 Werner Lemberg <wl@gnu.org>
1313
1314 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1315 errors.
1316
David Turner5f1f7502006-06-07 05:11:50 +000013172006-06-07 David Turner <david@freetype.org>
1318
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001319 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1320 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1321 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001322
David Turner457b4a82006-06-06 08:14:14 +000013232006-06-06 David Turner <david@freetype.org>
1324
Werner Lemberg4836f952006-06-06 12:54:08 +00001325 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001326
Werner Lemberg4836f952006-06-06 12:54:08 +00001327 We change `ps_unicodes_init' so that it also takes a
1328 `free_glyph_name' callback to release the glyph names returned by
1329 `get_glyph_name'
1330
1331 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1332 Renamed to ...
1333 (PS_GetGlyphNameFunc): This.
1334 (PS_FreeGlyphNameFunc): New typedef.
1335 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1336
1337 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1338 argument.
1339 (cff_sid_free_glyph_name): New function.
1340 (cff_cmap_unicode_init): Updated.
1341
1342 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1343
1344 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1345 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001346
1347
David Turner09717352006-06-04 14:33:08 +000013482006-06-04 David Turner <david@freetype.org>
1349
Werner Lembergd724f202006-06-04 15:17:41 +00001350 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1351 `item_size == 0' as well -- though this sounds weird, it can
1352 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001353
Werner Lembergd724f202006-06-04 15:17:41 +00001354 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1355 of `face->num_glyphs' which missed the last glyph, due to
1356 the offset-by-1 computation, since the PFR format doesn't
1357 guarantee that glyph index 0 corresponds to the `missing
1358 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001359
Werner Lemberg33779662006-05-26 06:30:05 +000013602006-05-25 Werner Lemberg <wl@gnu.org>
1361
1362 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1363 `-no-undefined'. Reported by Christian Biesinger.
1364
Werner Lemberg24773d62006-05-20 08:53:13 +000013652006-05-19 Brian Weed <bw@imaginengine.com>
1366
1367 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1368 have debug information, and debug libraries use `C7 compatible'
1369 debug info.
1370
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000013712006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1372
Werner Lemberga6523a62006-05-20 08:47:01 +00001373 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001374 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001375
Werner Lemberga6523a62006-05-20 08:47:01 +00001376 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1377 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001378
1379 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001380 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001381
13822006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1383
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001384 * build/unix/configure.raw: Add a fallback to disable Carbon
1385 dependency, if configured with no options on Mac OS X.
1386
13872006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1388
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001389 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001390 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001391 the second part of Savannah bug #16590.
1392
Werner Lemberg545c4e52006-05-17 22:55:04 +000013932006-05-18 Werner Lemberg <wl@gnu.org>
1394
1395 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1396 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1397
David Turnerdc3ff312006-05-17 12:59:35 +000013982006-05-17 David Turner <david@freetype.org>
1399
Werner Lemberg545c4e52006-05-17 22:55:04 +00001400 This is a major patch used to drastically improve the performance of
1401 loading glyphs. This both speeds up loading the glyph vectors
1402 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001403
Werner Lemberg545c4e52006-05-17 22:55:04 +00001404 We now use inline assembler code with GCC to implement `FT_MulFix',
1405 which is probably the most important function related to the
1406 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001407
Werner Lemberg545c4e52006-05-17 22:55:04 +00001408 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001409
1410
Werner Lemberg545c4e52006-05-17 22:55:04 +00001411 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1412 `cursor' and `limit'.
1413
1414 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1415 New functions.
1416 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1417 [TEST]: Remove.
1418
1419 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1420 code.
1421
1422 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1423 `FT_ZERO'
1424 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1425 (af_glyph_hints_reload: Rewrite recognition of weak points.
1426
1427 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1428 constant values out of the loops.
1429
1430 * src/autofit/aftypes.h: Updated.
1431
1432 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1433
1434 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1435 product to get orientation.
1436
1437 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1438 (FT_Stream_OpenGzip): Use it to handle small files directly in
1439 memory.
1440
1441 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1442 Improve performance.
1443
1444 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1445 `limit'.
1446
1447 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1448 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1449 exceedingly large values of number of contours. Speed up by
1450 reducing the number of loops.
1451
1452 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1453
1454
1455 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1456 used to detect rogue clients from 4 to 16. This is to prevent some
1457 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1458 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001459
Werner Lembergde2d90a2006-05-17 08:54:30 +000014602007-05-17 Werner Lemberg <wl@gnu.org>
1461
1462 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001463 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001464
14652006-05-16 Werner Lemberg <wl@gnu.org>
1466
1467 * docs/PROBLEMS: Updated icl issues.
1468
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001469----------------------------------------------------------------------------
1470
Werner Lemberg42b63b22007-01-21 21:01:33 +00001471Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001472David Turner, Robert Wilhelm, and Werner Lemberg.
1473
1474This file is part of the FreeType project, and may only be used, modified,
1475and distributed under the terms of the FreeType project license,
1476LICENSE.TXT. By continuing to use, modify, or distribute this file you
1477indicate that you have read the license and understand and accept it
1478fully.
1479
1480
1481Local Variables:
1482version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001483coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001484End: