blob: d83aed1aeeedc66775ba17dc15ddc144a8769310 [file] [log] [blame]
David Turnerc0f9c4a2007-02-12 14:55:03 +000012007-02-12 David Turner <david@freetype.org>
2
Werner Lemberg442bfb82007-02-12 21:44:10 +00003 * src/truetype/ttinterp.h, src/truetype/ttinterp.c: Simplify
4 projection and dual-projection code interface.
David Turner2ef3e0f2007-02-12 21:28:21 +00005
Werner Lemberg442bfb82007-02-12 21:44:10 +00006 * src/autofit/afloader.c: Improve spacing adjustments for the
7 non-light auto-hinted modes. Gets rid of `inter-letter spacing is
8 too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +00009
David Turnerc0f9c4a2007-02-12 14:55:03 +000010
Werner Lemberg442bfb82007-02-12 21:44:10 +000011 Introduce new string functions and the corresponding macros to get
12 rid of various uses of strcpy and other `evil' functions, as well as
13 to simplify a few things.
14
15 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
16 ft_mem_strcpyn): New declarations.
17 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
18 macros.
19 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
20 functions.
21
22 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
23 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
24 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
25 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
26 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
27 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
28 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
29 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000030
Werner Lemberg582067d2007-02-11 15:03:05 +0000312007-02-11 Werner Lemberg <wl@gnu.org>
32
33 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
34 non-spacing glyphs.
35
Werner Lemberg8f474532007-02-07 08:31:01 +0000362007-02-07 Tom Parker <palfrey@tevp.net>
37
38 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
39 pointer.
40
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000412007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
42
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000043 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
44 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +000045 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000046 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
47 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
48 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
49 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +000050
51 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
52 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000053 * builds/mac/ftmac.c: Ditto.
54
552007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
56
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +000057 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +000058 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +000059 #include <ftmac.c>.
60
612007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
62
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +000063 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
64 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
65 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
66 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
67 FT_GetFilePath_From_Mac_ATS_Name.
68 * builds/mac/ftmac.c: Ditto.
69
702007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
71
Werner Lembergdcbb7082007-02-08 08:54:09 +000072 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +000073 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
74 for passing to FT_New_Face_From_FSSpec.
75
762007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
77
Werner Lembergdcbb7082007-02-08 08:54:09 +000078 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000079 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +000080
81 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
82 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +000083 * builds/mac/ftmac.c (OS_INLINE): Ditto.
84
Werner Lemberg313d7772007-02-01 08:10:45 +0000852007-02-01 Werner Lemberg <wl@gnu.org>
86
87 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
88 Explain why applications shouldn't use it. Found by Alexei.
89
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000902007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +000091
92 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
93 message.
94
95 * src/gxvalid/gxvmort1.c
96 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
97 message.
98
Werner Lemberg53935932007-01-31 08:53:02 +0000992007-01-31 Werner Lemberg <wl@gnu.org>
100
101
102 * Version 2.3.1 released.
103 =========================
104
105
106 Tag sources with `VER-2-3-1-FINAL'.
107
108 * builds/win32/visualc/freetype.dsp,
109 builds/win32/visualc/freetype.vcproj: s/230/231/.
110 * builds/win32/visualc/index.html: s/221/231/.
111
112 * vms_make.com: Add `ftgasp'.
113
David Turnera7ee6082007-01-30 10:33:53 +00001142007-01-30 David Turner <david@freetype.org>
115
Werner Lemberg53935932007-01-31 08:53:02 +0000116 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000117
Werner Lemberg53935932007-01-31 08:53:02 +0000118 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000119
Werner Lemberg53935932007-01-31 08:53:02 +0000120 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
121 s/2.3.0/2.3.1/.
122
123 * builds/unix/configure.raw (version_info): Set to 9:12:3.
124
125
126 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
127 (af_loader_load_g): Disable the warper (i.e., the light hinting
128 improvements) to make a 2.3.1 bugfix release before introducing a
129 new feature. This should give us more time to tune and improve the
130 warper for the next release.
131
132 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000133
David Turnerd91eebd2007-01-26 15:05:41 +00001342007-01-25 David Turner <david@freetype.org>
135
Werner Lembergbf241762007-01-26 16:08:49 +0000136 For light auto-hinting, improve glyph advance widths and resurrect
137 normal/full hinting to its normal quality.
138
139 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
140 and `xmax_delta'.
141 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
142 and `xmax_delta'.
143
144 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
145 preprocessor conditional with if-clause, handling both light and
146 normal mode.
147
148 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
149 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000150
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00001512007-01-25 Werner Lemberg <wl@gnu.org>
152
153 * docs/release: Updated -- Savannah uses a new uploading scheme.
154
David Turnera42567b2007-01-25 12:23:37 +00001552007-01-25 David Turner <david@freetype.org>
156
Werner Lembergd7855662007-01-25 13:53:56 +0000157 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000158
Werner Lembergd7855662007-01-25 13:53:56 +0000159 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
160 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
161 functions.
David Turnera42567b2007-01-25 12:23:37 +0000162
Werner Lembergd7855662007-01-25 13:53:56 +0000163 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000164
Werner Lembergb1be9e82007-01-25 11:50:00 +00001652007-01-25 Werner Lemberg <wl@gnu.org>
166
167 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000168 correctly in a sanity check. Since this function is only used to
169 load local and global functions, any charstring that called the last
170 local/global function would fail otherwise. This fixes Savannah bug
171 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000172
173 * docs/CHANGES: Document it.
174
David Turnerb6de8d12007-01-23 15:51:50 +00001752007-01-23 David Turner <david@freetype.org>
176
Werner Lembergb1be9e82007-01-25 11:50:00 +0000177 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
178 prevented compilation when disabling both the unpatented and the
179 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000180
Werner Lembergb1be9e82007-01-25 11:50:00 +0000181
182 Fix and enable the warper to improve `light' hinting mode. This is
183 not necessarily a final version, but it seems to work well.
184
185 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
186 Disable code.
187 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
188 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
189
190 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
191 (af_warper_compute_line_best): Fix array size of `scores'.
192 (af_warper_compute): Better handling of border cases.
193 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
194 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000195
Werner Lemberg011d1112007-01-21 09:36:00 +00001962007-01-21 Werner Lemberg <wl@gnu.org>
197
Werner Lemberg42b63b22007-01-21 21:01:33 +0000198 * ChangeLog: Split off older entries into...
199 * ChangeLog.22: This new file.
200
2012007-01-21 Werner Lemberg <wl@gnu.org>
202
Werner Lemberg555258f2007-01-21 09:46:37 +0000203 * docs/CHANGES: Document SHZ fix.
204
2052007-01-21 George Williams <gww@silcom.com>
206
207 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
208 points.
209
2102007-01-21 Werner Lemberg <wl@gnu.org>
211
Werner Lemberg011d1112007-01-21 09:36:00 +0000212 * src/sfnt/ttmtx.c (tt_face_get_metrics)
213 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
214
Werner Lemberg87a5a432007-01-17 12:44:39 +00002152007-01-17 Werner Lemberg <wl@gnu.org>
216
Werner Lembergb8003292007-01-17 12:56:25 +0000217
218 * Version 2.3.0 released.
219 =========================
220
221
222 Tag sources with `VER-2-3-0-FINAL'.
223
2242007-01-17 Werner Lemberg <wl@gnu.org>
225
Werner Lemberg87a5a432007-01-17 12:44:39 +0000226 * docs/release: Updated.
227
David Turner22122722007-01-16 20:06:44 +00002282007-01-16 David Turner <david@freetype.org>
229
Werner Lemberg87a5a432007-01-17 12:44:39 +0000230 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
231 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
232 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
233 warnings.
David Turner22122722007-01-16 20:06:44 +0000234
Werner Lemberg267e1d72007-01-15 07:48:09 +00002352007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
236
237 * builds/amiga/makefile, builds/amiga/makefile.os4,
238 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
239
240 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
241
Werner Lemberg8c4120d2007-01-15 06:42:40 +00002422007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
243
244 Fix various compiler warnings.
245
246 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
247 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
248 s/index/strike_index/.
249 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
250
251 * src/gxvalid/gxvmorx5.c
252 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
253
254 * src/truetype/ttinterp.c (Compute_Point_Displacement),
255 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
256 uninitialized variables.
257
David Turner2ef3e0f2007-02-12 21:28:21 +0000258>>>>>>> 1.1516
Werner Lemberg6164a9d2007-01-13 23:01:36 +00002592007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
260
261 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
262
Werner Lemberg281c1482007-01-13 22:50:51 +00002632007-01-13 Werner Lemberg <wl@gnu.org>
264
265 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
266 versions up to 0x3FF without complaining.
267
Werner Lembergac250b22007-01-13 14:01:36 +00002682007-01-13 Derek Clegg <dclegg@apple.com>
269
270 Add FT_Get_PS_Font_Info interface to CFF driver.
271
272 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
273 (CFF_FontRec): Add `font_info' field.
274
275 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
276 (cff_font_done): Free font->font_info if necessary.
277
278 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
279 (cff_service_ps_info): Register cff_ps_get_font_info.
280
Werner Lemberg23df31a2007-01-13 08:45:00 +00002812007-01-13 Werner Lemberg <wl@gnu.org>
282
283 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
284 with C++ compiler.
285
286 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
287 af_glyph_hints_dump_edges): Ditto.
288
289 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
290 `modules.cfg').
291
292 * src/sfnt/ttsbit0.h: Remove.
293
294 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
295
Werner Lemberg27cf9de2007-01-13 07:34:23 +00002962007-01-12 David Turner <david@freetype.org>
297
298 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
299 bug in the bitmap emboldener if the pitch of the source bitmap is
300 much larger than its width.
David Turner2ef3e0f2007-02-12 21:28:21 +0000301>>>>>>> 1.1484
Werner Lemberg27cf9de2007-01-13 07:34:23 +0000302
303 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
304 compilation warning.
305
Werner Lemberg6d96d312007-01-12 10:30:19 +00003062007-01-12 Werner Lemberg <wl@gnu.org>
307
David Turner2ef3e0f2007-02-12 21:28:21 +00003082007-01-12 Werner Lemberg <wl@gnu.org>
309
Werner Lemberg6d96d312007-01-12 10:30:19 +0000310 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
311 `automake' CVS module from sources.redhat.com.
312
Werner Lemberg17432b52007-01-12 09:28:44 +00003132007-01-11 Werner Lemberg <wl@gnu.org>
314
315 * src/type1/t1load.c (is_space): Removed.
316 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
317 (parse_charstrings): Use IS_PS_TOKEN.
318
319
320 * autogen.sh: Avoid bash specific syntax.
321
David Turner038ace22007-01-11 15:00:59 +00003222007-01-11 David Turner <david@freetype.org>
323
Werner Lemberg17432b52007-01-12 09:28:44 +0000324 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000325
Werner Lemberg17432b52007-01-12 09:28:44 +0000326 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000327
Werner Lemberg17432b52007-01-12 09:28:44 +0000328 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
329 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000330 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000331
Werner Lemberg17432b52007-01-12 09:28:44 +0000332 * autogen.sh: Small fix to get it working on Mac OS X properly:
333 The issue is that GNU libtool is called `glibtool' on this platform,
334 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000335
David Turner2628ea92007-01-10 13:15:56 +00003362007-01-10 David Turner <david@freetype.org>
337
Werner Lemberg17432b52007-01-12 09:28:44 +0000338 * all-sources: Tag all sources with VER-2-3-0-RC1 and
339 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000340
Werner Lemberg17432b52007-01-12 09:28:44 +0000341 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
342 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
343 version number to 2.3.0.
344
345 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
346 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000347
348 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000349 include/freetype/ftlcdfil.h: Update reference documentation with
350 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000351
Werner Lemberg17432b52007-01-12 09:28:44 +0000352 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
353 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000354
Werner Lembergbf02d392007-01-10 07:07:37 +00003552007-01-10 Derek Clegg <dclegg@apple.com>
356
357 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
358 values.
359
David Turnerf48b60e2007-01-08 15:15:32 +00003602007-01-08 David Turner <david@freetype.org>
361
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000362 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000363
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000364 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
365 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000366 corresponding to a given character pixel size.
367
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000368 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
369 `gasp' table, in order to avoid potential problems with later
370 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000371
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000372 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
373 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000374
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000375 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
376 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
377 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
378 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000379
Werner Lemberge6b6f372007-01-07 00:06:47 +00003802007-01-07 Werner Lemberg <wl@gnu.org>
381
Werner Lembergb8004d22007-01-07 09:13:38 +0000382 * src/cid/cidparse.c (cid_parser_new): Improve error message for
383 Type 11 fonts.
384 Scan for `/sfnts' token.
385
3862007-01-07 Werner Lemberg <wl@gnu.org>
387
388 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000389
Werner Lembergbe5f7972007-01-06 07:51:48 +00003902007-01-06 Werner Lemberg <wl@gnu.org>
391
392 * src/cff/cffload.c (cff_index_init): Remove unused variable.
393 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
394
David Turnera8cf42b2007-01-04 16:46:46 +00003952007-01-04 David Turner <david@freetype.org>
396
Werner Lembergf6294392007-01-06 07:47:45 +0000397 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
398 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000399
Werner Lembergf6294392007-01-06 07:47:45 +0000400
401 Do not allocate interpreter-specific tables in memory if we are not
402 going to load glyphs with the bytecode interpreter anyway.
403
404 * src/truetype/ttgload.c (tt_loader_init): Load execution context
405 only if glyph is hinted.
406 Updated.
407 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
408 and `cvs_ready'.
409 Add `tt_size_ready_bytecode' declaration.
410 * src/truetype/ttobjs.c (tt_size_done_bytecode,
411 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
412 (tt_size_init): Move most code into `tt_size_init_bytecode'.
413 (tt_size_done): Move most code into `tt_size_done_bytecode'.
414 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000415
David Turner91a34022007-01-05 14:47:08 +0000416
Werner Lembergf6294392007-01-06 07:47:45 +0000417 Don't extract the metrics table from the SFNT font file. Instead,
418 reparse it on each glyph load. The runtime difference is not
419 noticeable, and it can save a lot of heap memory when memory-mapped
420 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000421
Werner Lembergf6294392007-01-06 07:47:45 +0000422 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
423 `horz_metrics_offset' and `vert_metrics_ofset'.
424 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
425 Updated.
426
427
428 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
429
430
431 Do not load the CFF index offsets into memory, since this wastes a
432 *lot* of heap memory with large Asian CFF fonts. There is no
433 significant performance loss.
434
435 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
436 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
437 `data_size'.
438 (CFF_CharsetRec): Add field `num_glyphs'.
439
440 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
441 cff_charset_cid_to_gindex): New functions.
442 (cff_new_index): Renamed to...
443 (cff_index_init): This. Update all callers.
444 Updated -- some code has been moved to `cff_index_load_offsets'.
445 (cff_done_index): Renamed to...
446 (cff_index_done): This. Update all callers.
447 (cff_index_get_pointers, cff_index_access_element): Updated to use
448 stream offsets.
449 (cff_charset_compute_cids): Set `num_glyphs' field.
450 (cff_encoding_load): Updated.
451
452 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000453
4542007-01-04 David Turner <david@freetype.org>
455
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000456 * docs/INSTALL.UNIX: Simplify some parts, add reference to
457 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000458
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000459 * README.CVS: Add common problem description and solution
460 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000461
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000462 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000463
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000464 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000465
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000466 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000467
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000468 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
469 (TWorker): This.
470 Remove `count_table' and `memory'.
471 Make `grays' a pointer.
472 (TRaster): New structure.
473 (count_table): New static array.
474 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
475 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
476 ft_black_set_mode, ft_black_render): Updated.
477 (ft_black_init): Don't initialize `count_table'.
478 (ft_black_reset): Use the render pool. This saves about 6KB of
479 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000480
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000481 * src/smooth/ftgrays.c (TRaster): Replaced with...
482 (TWorker): This.
483 Remove `memory'.
484 (TRaster): New structure.
485
486 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
487 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
488 gray_render_span, gray_raster_render): Updated.
489 (gray_raster_reset): Use the render pool. This saves about 6KB of
490 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000491
David Turner8a6c44e2007-01-04 17:03:11 +0000492 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
493 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000494 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
495 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
496 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000497
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000498 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
499 Remove a typo that results in no hinting and a memory leak with some
500 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000501
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000502 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000503 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000504 CFF_Faces in it. We need to close all faces before destroying the
505 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000506
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005072007-01-02 Werner Lemberg <wl@gnu.org>
508
509 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
510 Remove compiler warning.
511
David Turner9207e002007-01-02 16:58:13 +00005122007-01-02 David Turner <david@freetype.org>
513
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000514 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000515
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005162006-12-31 Masatake YAMATO <jet@gyve.org>
517
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000518 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
519 function.
520 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000521 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000522 `gxv_kern_subtable_fmt0_pairs_validate'.
523
David Turner115b4422006-12-22 11:37:05 +00005242006-12-22 David Turner <david@freetype.org>
525
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000526 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
527 warnings.
David Turner115b4422006-12-22 11:37:05 +0000528
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000529 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
530 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000531
Werner Lemberg4755bf72006-12-16 08:58:44 +00005322006-12-16 Anders Kaseorg <anders@kaseorg.com>
533
534 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
535 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
536
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
538
Werner Lemberg9b774e22007-01-16 06:11:27 +0000539 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000540 sync with the modification by Jens Claudius on 2006-08-22; cf.
541 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 +0000542
5432006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
544
545 * src/base/ftmac.c: Specialized for Mac OS X only.
546 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
547 * builds/unix/configure.raw: Ditto. When explicit switches for
548 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
549 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
550
5512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
552
553 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
554 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
555 instead of src/base/ftmac.c
556 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
557 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
558 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
559 that cannot be built at present.
560
5612006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
562
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000563 * src/base/ftobjs.c: Improvement of resource fork handler for
564 POSIX, cf.
565 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000566 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
567 format or .dfont, to simulate the face index number counted by ftmac.c.
568 (IsMacResource): Return the number of scalable faces correctly.
569
Werner Lembergec5b4502006-12-10 07:51:38 +00005702006-12-10 Werner Lemberg <wl@gnu.org>
571
572 * builds/toplevel.mk (version): Protect against `distclean' target.
573
Werner Lembergb26b3142006-12-09 20:01:43 +00005742006-12-09 Werner Lemberg <wl@gnu.org>
575
576 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
577 or `type'.
578
579 * builds/freetype.mk (version): Extracted from freetype.h, using
580 GNU make's built-in string functions.
581 (refdoc): Use $(version) instead of static version number.
582
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00005832006-12-08 Werner Lemberg <wl@gnu.org>
584
585 * builds/toplevel.mk (dist): Extract version number from freetype.h.
586
Werner Lemberg15c29502006-12-09 07:29:54 +00005872006-12-08 Vladimir Volovich <vvv@vsu.ru>
588
589 * src/tools/apinames (State): Remove final comma in structure -- xlc
590 v5 under AIX 4.3 doesn't like this.
591
David Turnerdbf3b432006-12-07 21:18:09 +00005922006-12-07 David Turner <david@freetype.org>
593
Werner Lemberg256a3512006-12-08 06:49:33 +0000594 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
595 to the spacing of auto-fitted glyphs. This only impacts rare
596 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000597
Werner Lemberg11171312006-12-03 09:43:40 +00005982006-12-03 Werner Lemberg <wl@gnu.org>
599
600 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
601
Werner Lemberg960ba592006-12-01 08:20:47 +00006022006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000603
Werner Lemberg960ba592006-12-01 08:20:47 +0000604 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
605 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
606 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000607
David Turner80658e52006-11-28 08:09:20 +0000608
Werner Lemberg960ba592006-12-01 08:20:47 +0000609 * include/freetype/ftxf86.h: Fix and extend comment so that it
610 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000611
Werner Lemberg960ba592006-12-01 08:20:47 +0000612 * include/freetype/ftchapters.h: Add `font_format' section.
613
614
615 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
616 to TOC in index page.
617
6182006-11-28 David Turner <david@freetype.org>
619
620 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
621 trying to render into a zero-width/height bitmap, not an error code.
622
623 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
624
625 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
626 ones instead.
627
628 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
629 variable.
David Turner80658e52006-11-28 08:09:20 +0000630
Werner Lemberg8636c292006-11-26 22:28:13 +00006312006-11-26 Pierre Hanser <hanser@club-internet.fr>
632
633 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
634
Werner Lemberg960ba592006-12-01 08:20:47 +00006352006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000636
Werner Lemberg960ba592006-12-01 08:20:47 +0000637 * src/autofit/afhints.c (af_glyph_hints_dump_points,
638 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
639 Add stubs to link the `ftgrid' test program when debugging is
640 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000641
Werner Lemberg960ba592006-12-01 08:20:47 +00006422006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000643
644 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000645 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
646
647 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
648 Emit more sensible information.
649
650 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
651
652 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
653 rounding of blue values.
654 (af_latin_hints_compute_segments): Hint segment heights.
655 (af_latin_hints_link_segments): Reduce `len_score' value.
656 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
657 value and use `height' member for comparisons.
658 (af_latin_hint_edges): Extend logging message.
659 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000660
Werner Lemberg91959bf2006-11-22 10:36:55 +00006612006-11-22 Werner Lemberg <wl@gnu.org>
662
663 Fix Savannah bug #15553.
664
665 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
666 program after a change from mono to grayscaling (and vice versa).
667 Use correct constant for comparison to get `exec->grayscale'.
668
Werner Lemberg913a3652006-11-19 09:19:17 +00006692006-11-18 Werner Lemberg <wl@gnu.org>
670
671 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000672 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000673 This patch fixes Savannah bug #18301.
674
675 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
676 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
677 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
678 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
679 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
680 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
681 (FNT_Load_Glyph): Check validity of `glyph_index'.
682
David Turner7bab6ae2006-11-13 11:25:06 +00006832006-11-13 David Turner <david@freetype.org>
684
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000685 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
686 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000687
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000688 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
689 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
690 when building the library to change the default LCD filter to be
691 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000692
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000693 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000694
David Turner8765c712006-11-10 16:49:42 +00006952006-11-10 David Turner <david@freetype.org>
696
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000697 * src/smooth/ftsmooth.c: API change for the LCD
698 filter. The FT_LcdFilter value is an enumeration describing which
699 filter to apply, with new values FT_LCD_FILTER_LIGHT and
700 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
701 algorithm which produces strong color fringes for everything
702 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000703
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000704 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
705 second parameter to an enum type.
706
707 * src/base/ftlcdfil.c (USE_LEGACY): Define.
708 (_ft_lcd_filter): Rename to...
709 (_ft_lcd_filter_fir): This.
710 Update parameters.
711 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
712 (FT_Library_Set_LcdFilter): Update parameters.
713 Handle new filter modes.
714
715 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
716 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
717 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
718 callback and update other fields.
719
720 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
721 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
722 Other minor improvements.
723
724 * src/autofit/aflatin.c: Various tiny improvements that drastically
725 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
726 (af_latin_hints_compute_edges): Fix typo.
727 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000728
David Turner4e9cc3c2006-11-09 16:31:52 +00007292006-11-09 David Turner <david@freetype.org>
730
Werner Lemberg49c77a82006-11-09 21:51:57 +0000731 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
732 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000733
Werner Lemberg5e430892006-11-07 09:35:03 +00007342006-11-07 Zhe Su <james.su@gmail.com>
735
736 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
737 also.
738
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007392006-11-03 Werner Lemberg <wl@gnu.org>
740
741 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
742
David Turner40604742006-11-02 16:37:35 +00007432006-11-02 David Turner <david@freetype.org>
744
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000745 Add a few tweaks to better handle serif fonts.
746 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000747
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000748 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
749 segments that are less than 1.5 pixels high. This gets rid of
750 *many* corner cases with serifs.
751 (af_latin_align_linked_edge): Add logging message.
752 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
753 Add logging messages.
754 Handle AF_EDGE_FLAG flag specially.
755
756 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
757 _af_debug_disable_blue_hints, and _af_debug_hints variables.
758
759 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
760 Update external declarations.
761 (af_corner_orientation, af_corner_is_flat): Replaced by...
762
763 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
764 ft_corner_is_flat): These declarations.
765
766 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
767 Comment out. Replaced by...
768
769 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
770 These functions. Update all callers.
771 (FT_Add64) [!FT_LONG64]: Simplify.
772
773 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
774 (af_direction_compute): Add a missing FT_ABS call. This bug caused
775 production of garbage by missing lots of segments.
776
777 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
778
779 * src/autofit/afloader.c (af_loader_init, af_loader_done)
780 [AF_DEBUG]: Set _af_debug_hints.
781
782
783 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
784 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
785 and ft_corner_orientation.
786
787
788 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000789
Werner Lemberge88c5262006-10-24 05:46:26 +00007902006-10-24 Werner Lemberg <wl@gnu.org>
791
792 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
793
794 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
795 as argument.
796
David Turnera1861392006-10-23 16:00:59 +00007972006-10-23 Zhe Su <zsu@novell.com>
798
Werner Lemberg715e96e2006-10-24 05:28:45 +0000799 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
800 better deal with broken Asian fonts with strange glyphs, having
801 self-intersections and other peculiarities. The used algorithm is
802 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000803
David Turnere140f142006-10-23 08:56:57 +00008042006-10-23 David Turner <david@freetype.org>
805
Werner Lemberg715e96e2006-10-24 05:28:45 +0000806 Speed up the CFF font loader. With some large CFF fonts,
807 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000808
Werner Lemberg715e96e2006-10-24 05:28:45 +0000809 * src/cff/cffload.c (cff_get_offset): Removed.
810 (cff_new_index): Inline functionality of `cff_get_offset'.
811 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
812 (cff_charset_done): Call `cff_charset_free_cids'.
813 (cff_charset_load): Call `cff_charset_compute_cids'.
814 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
815
816 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
817 with FT_NEXT_XXX.
818
819
820 Speed up the Postscript hinter, with more than 100% speed increase
821 on my machine.
822
823 * src/pshinter/pshalgo.c (psh_corner_is_flat,
824 psh_corner_orientation): New functions.
825 (psh_glyph_compute_inflections): Merge loops for efficiency.
826 Use `psh_corner_orientation'.
827 (psh_glyph_init): Use `psh_corner_is_flat'.
828 (psh_hint_table_find_strong_point): Renamed to...
829 (psh_hint_table_find_strong_points): This.
830 Rewrite, adding argument to handle all points at once.
831 Update all callers.
832 (PSH_MAX_STRONG_INTERNAL): New macro.
833 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000834
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008352006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
836
837 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000838 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000839
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008402006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
841
842 * docs/INSTALL.CROSS: New document file for cross-building.
843
844 * builds/unix/configure.raw: Preliminary cross-building support.
845 Find native C compiler and pass it by CC_BUILD, and
846 find suffix for native executable and pass it by EXEEXT_BUILD.
847 Also suffix for target executable is passed by EXEEXT.
848
Werner Lembergb9e6d692006-10-15 08:58:40 +0000849 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
850 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000851 CC_BUILD and EXEEXT_BUILD.
852
Werner Lembergb9e6d692006-10-15 08:58:40 +0000853 * builds/exports.mk (APINAMES_EXE): Change the extension for
854 apinames from the suffix for target (E) to that for building host
855 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000856
Werner Lemberg82a07e92006-10-12 06:20:44 +00008572006-10-12 Werner Lemberg <wl@gnu.org>
858
859 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
860 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
861 which reference those files.
862
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00008632006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
864
Werner Lembergb9e6d692006-10-15 08:58:40 +0000865 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
866 embedded in freetype2.pc and freetype-config. Use it to record
867 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000868
869 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
870
871 * builds/unix/freetype-config.in: Ditto.
872
Werner Lemberg28e17d92006-10-11 17:27:47 +00008732006-10-11 Werner Lemberg <wl@gnu.org>
874
875 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
876 development.
877
Jens Claudius336d2292006-10-03 08:53:37 +00008782006-10-03 Jens Claudius <jens.claudius@yahoo.com>
879
880 * include/freetype/config/ftstdlib.h: Cast away volatileness from
881 argument to ft_setjmp.
882
883 * include/freetype/internal/ftvalid.h: Add comment that
884 ft_validator_run must not be used.
885
Werner Lemberg2863cfa2006-10-01 17:04:00 +00008862006-10-01 Werner Lemberg <wl@gnu.org>
887
888 * src/base/ftbase.c: Undo change from 2006-09-30.
889
890 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
891
8922006-09-30 David Turner <david@freetype.org>
893
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000894 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
895 s/unpatented_hinting/ignore_unpatented_hinter/.
896 Update all callers.
897
898 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
899 auto-hinting shall be used or not.
900
901 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000902
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009032006-09-30 Werner Lemberg <wl@gnu.org>
904
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000905 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
906 in use).
907
908 * src/base/ftbase.c: Include `ftlcdfil.c'.
909
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009102006-09-29 Werner Lemberg <wl@gnu.org>
911
912 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
913 overlapping segments. Bug reported by Stefan Koch.
914
David Turnerad830712006-09-27 16:20:59 +00009152006-09-28 David Turner <david@freetype.org>
916
Werner Lemberg2c002e12006-09-29 21:31:53 +0000917 Fix a bug in the automatic unpatented hinting support which prevents
918 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000919
Werner Lemberg2c002e12006-09-29 21:31:53 +0000920 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
921 s/force_autohint/unpatented_hinting/. Update all callers.
922
923 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
924
925 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000926
David Turner8a317cf2006-09-27 07:52:48 +00009272006-09-27 David Turner <david@freetype.org>
928
Werner Lemberg2c002e12006-09-29 21:31:53 +0000929 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000930
David Turner8a317cf2006-09-27 07:52:48 +0000931
David Turnere140f142006-10-23 08:56:57 +0000932 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000933 In a default build, the function `FT_Library_SetLcdFilter' returns
934 `FT_Err_Unimplemented_Feature'; you need to #define
935 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
936 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000937
Werner Lemberg2c002e12006-09-29 21:31:53 +0000938 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000939
Werner Lemberg2c002e12006-09-29 21:31:53 +0000940 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
941 typedef.
942 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
943 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000944
Werner Lemberg2c002e12006-09-29 21:31:53 +0000945 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
946 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000947
Werner Lemberg2c002e12006-09-29 21:31:53 +0000948 Handle subpixel rendering.
949 Simplify function.
950 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
951 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
952
953 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
954 pointing to <freetype/ftlcdfil.h>.
955
956 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
957 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
958
959 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000960
Werner Lemberge20df4a2006-09-27 06:29:21 +00009612006-09-26 David Bustin
962
963 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
964 correctly. Reported as Savannah bug #17843.
965
David Turner6f8c6222006-09-26 15:42:44 +00009662006-09-26 David Turner <david@freetype.org>
967
Werner Lemberg110246c2006-09-26 21:55:44 +0000968 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
969 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
970 horizontal and vertical hinting for the purpose of debugging the
971 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +0000972
Werner Lemberg110246c2006-09-26 21:55:44 +0000973 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
974 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +0000975
Werner Lemberg110246c2006-09-26 21:55:44 +0000976 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
977
978 * include/freetype/config/ftoption.h, devel/ftoption.h
979 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
980 we want to compile LCD-optimized rendering code (à la ClearType) or
981 not. The macro *must* be disabled in default builds of the library
982 for patent reasons.
983
984 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
985 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
986 isn't defined at compile time. This only changes the content of the
987 rendered glyph to match the one of normal gray-level rendering,
988 hence clients should not need to be modified.
989
990 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +0000991
Werner Lemberg745ff2c2006-09-19 05:48:02 +00009922006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
993
994 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
995 LWFN fails and both are available.
996
David Turnerf3050052006-09-11 12:00:32 +00009972006-09-11 David Turner <david@freetype.org>
998
Werner Lembergf9644552006-09-12 13:48:10 +0000999 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1000 report their English names through an Apple Roman
1001 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001002
Werner Lembergf9644552006-09-12 13:48:10 +00001003 If the font uses another name entry with language_id == English, it
1004 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001005
Werner Lembergf9644552006-09-12 13:48:10 +00001006 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1007 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001008
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010092006-09-05 Werner Lemberg <wl@gnu.org>
1010
1011 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001012 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001013 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1014 `HAN NOM B.ttf').
1015
1016 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1017
David Turner772e55d2006-09-05 09:45:15 +000010182006-09-05 David Turner <david@freetype.org>
1019
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001020 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001021
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001022 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1023 (TRaster): Remove `count_ex' and `count_ey'.
1024 (gray_find_cell): Remove 2nd and 3rd argument.
1025 (gray_alloc_cell): Merged with `gray_find_cell'.
1026 (gray_record_cell): Simplify.
1027 (gray_set_cell): Rewrite.
1028 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1029 (gray_render_span): Don't use FT_MEM_SET for small values.
1030 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1031 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1032 bitmap scanline.
1033 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001034
David Turneraa557a92006-09-04 16:42:44 +000010352006-09-04 David Turner <david@freetype.org>
1036
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001037 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1038 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001039
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010402006-09-03 Werner Lemberg <wl@gnu.org>
1041
1042 * devel/ftoption.h: Synchronize with
1043 include/freetype/config/ftoption.h.
1044
1045 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1046 variable declaration.
1047 (gray_convert_glyph): Fix compiler warnings.
1048
David Turner6d79f212006-09-01 14:09:35 +000010492006-09-01 David Turner <david@freetype.org>
1050
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001051 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1052 to recognize a few fonts that require the automatic unpatented
1053 loader.
David Turnerbd502952006-09-01 19:05:24 +00001054
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001055 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1056 rasterizer. The speed improvement is between 15% and 25%, depending
1057 on the font data.
1058
1059 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1060 (TCell): Redefine.
1061 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1062 (gray_init_cells): Updated.
1063 (gray_find_cell, gray_alloc_cell): New functions.
1064 (gray_record_cell): Rewritten to use `gray_find_cell' and
1065 `gray_alloc_cell'.
1066 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1067 QSORT_THRESHOLD):
1068 Removed.
1069 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1070 gray_dump_cells): Removed.
1071 (gray_sweep): Rewritten.
1072 (gray_convert_glyph): Rewrite code which used one of the sorting
1073 functions.
1074 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001075
Werner Lembergd898aed2006-08-29 09:50:34 +000010762006-08-29 Dr. Werner Fink <werner@suse.de>
1077
1078 * configure: Make it possible to handle configure options which
1079 have strings containing spaces.
1080
10812006-08-27 David Turner <david@freetype.org>
1082
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001083 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1084 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1085 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1086
1087 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1088 src/truetype/truetype.c, src/truetype/ttdriver.c,
1089 src/truetype/ttgload.c, src/truetype/ttgload.h,
1090 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1091 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1092 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1093
1094 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1095 member `force_autohint'.
1096
1097 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1098
1099 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1100 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001101
Jens Claudiusa787f452006-08-27 11:26:18 +000011022006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1103
1104 Fix miscellaneous compiler warnings.
1105
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001106 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1107 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001108
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001109 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1110 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1111 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001112
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001113 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1114 volatileness of argument to ft_longjmp. Spotted by Werner
1115 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001116
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001117 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1118 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001119
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001120 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1121 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001122
Werner Lembergc4c35b72006-08-27 08:03:46 +000011232006-08-27 Werner Lemberg <wl@gnu.org>
1124
1125 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1126 Reported by Jens.
1127
Jens Claudius088e44e2006-08-22 14:24:30 +000011282006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001129
Jens Claudius088e44e2006-08-22 14:24:30 +00001130 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001131 about addresses of volatile objects passed as function arguments as
1132 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001133
Werner Lembergc4c35b72006-08-27 08:03:46 +00001134 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1135 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001136
1137 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1138 argument `table' a pointer to a volatile object.
1139
1140 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1141 argument `table' a pointer to a volatile object.
1142
Jens Claudius2652bd52006-08-18 17:20:37 +000011432006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1144
1145 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1146 variable `_sfnt' as volatile since it must keep its value across
1147 a call to ft_setjmp.
1148 (gxv_validate): Same for local variables `memory' and `valid'.
1149 (classic_kern_validate): Same for local variables `memory',
1150 `ckern', and `valid'.
1151
1152 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1153 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1154 `jstf', and 'valid'.
1155
1156 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1157 local variable `cmap'.
1158
David Turner9fbfc6a2006-08-16 09:11:31 +000011592006-08-16 David Turner <david@freetype.org>
1160
Werner Lemberg12342992006-08-19 11:18:09 +00001161 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1162 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001163
Werner Lemberg12342992006-08-19 11:18:09 +00001164 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1165 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001166
David Turner33f5f242006-08-16 16:50:55 +00001167
Werner Lemberg12342992006-08-19 11:18:09 +00001168 Improvements to native TrueType hinting. This is a first try,
1169 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1170
1171 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1172 `extra_points2'.
1173
1174 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1175 `orus'.
1176
1177 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1178 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1179 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1180 handle `extra_points2'.
1181
1182 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1183 Remove compiler warning.
1184 (cur_to_arg): Remove macro.
1185 (TT_Hint_Glyph): Updated.
1186 (TT_Process_Simple_Glyph): Handle `orus'.
1187
1188 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1189 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1190 (LOC_Ins_IUP): Renamed to...
1191 (IUP_WorkerRec): This.
1192 Add `orus' member.
1193 (Shift): Renamed to...
1194 (_iup_worker_shift): This.
1195 Updated.
1196 (Interp): Renamed to...
1197 (_iup_worker_interpolate): This.
1198 Updated to handle `orus'.
1199 (Ins_IUP): Updated.
1200
1201 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1202 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001203
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012042006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1205
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001206 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001207 build ftvalid in ft2demos. This has been inadvertedly changed
1208 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001209
12102006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1211
Werner Lemberg12342992006-08-19 11:18:09 +00001212 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1213 Jens:
1214 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001215
Werner Lemberg12342992006-08-19 11:18:09 +00001216 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1217 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001218
1219 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1220
Jens Claudius9950adc2006-08-13 12:14:36 +000012212006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1222
Werner Lemberg12342992006-08-19 11:18:09 +00001223 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1224 T1_TOKEN_TYPE_KEY.
1225 (T1_FieldRec): Add `dict'.
1226 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1227 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1228 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001229
Werner Lemberg12342992006-08-19 11:18:09 +00001230 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1231 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001232
1233 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1234
1235 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001236 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1237 not T1_TOKEN_TYPE_ANY.
1238 (ps_parser_load_field): Make sure a token that should be a string or
1239 name is really a string or name.
1240 Avoid memory leak if a keyword has been already encountered and its
1241 value is overwritten.
1242 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1243 T1_FIELD_XXX.
1244 (parse_dict): Ignore keywords that occur in the wrong dictionary
1245 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001246
Werner Lemberg12342992006-08-19 11:18:09 +00001247 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1248 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001249
Werner Lemberg12342992006-08-19 11:18:09 +00001250 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1251 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001252
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000012532006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1254
1255 Move creation of field `buildchar' of T1_DecoderRec out of
1256 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1257 of it.
1258
1259 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1260 and `T1_Compute_Max_Advance'.
1261
1262 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1263 Remove field `face', add `len_buildchar'.
1264
1265 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1266 field `buildchar'.
1267
1268 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1269 finisher for T1_Decoder.
1270 (cid_slot_load_glyph): Do not ignore failure when initializing the
1271 T1_Decoder.
1272
1273 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1274 Updated.
1275 (t1_decoder_init): Remove initialization of fields `buildchar' and
1276 `len_buildchar'.
1277 (t1_decoder_done): Remove deallocation of field `buildchar'.
1278
1279 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1280 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1281 T1_Decoder.
1282 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1283 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1284 case of error.
1285
1286 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1287 `buildchar' of T1_FaceRec.
1288
1289 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1290 `buildchar' of T1_FaceRec.
1291
Werner Lemberg1a380e02006-07-14 18:28:08 +000012922006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1293
1294 * freetype2/include/freetype/internal/psaux.h: New macros
1295 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1296 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1297 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1298 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1299 (T1_DecoderRec): New fields `buildchar' and `face'.
1300 (IS_PS_TOKEN): New macro.
1301
1302 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1303 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1304
1305 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1306 `default_design_vector' and `num_default_design_vector'.
1307
1308 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1309 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1310 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1311
1312 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1313 `token' argument to be NULL if we want only to count the number of
1314 tokens.
1315 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1316 want to skip the array.
1317 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1318 want to skip the array.
1319
1320 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1321 support for (partially commented out) othersubrs 19-25, 27, and 28.
1322 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1323 (t1_decoder_done): Release new field `buildchar'.
1324
1325 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1326 functions.
1327 (t1_keywords): Register them.
1328 (t1_allocate_blend): Updated.
1329 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1330 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1331 (parse_dict): Remove `keyword_flags' argument.
1332 Use new macro IS_PS_TOKEN.
1333 Changed function so that later PostScript definitions override
1334 earlier ones.
1335 (t1_init_loader): Initialize new field `keywords_encountered'.
1336 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1337 `len_buildchar'.
1338 Remove `keywords_flags'.
1339
1340 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1341 `keywords_encountered'.
1342 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1343
1344 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1345 New entries for parsing /NDV, /CDV, and /DesignVector.
1346
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000013472006-07-07 Werner Lemberg <wl@gnu.org>
1348
1349 Add many checks to protect against malformed PCF files.
1350
1351 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1352 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1353
1354 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1355 data and check that tables don't overlap (using a simple
1356 bubblesort).
1357 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1358 New macros which give the size of data structures in the data
1359 stream.
1360 (pcf_get_properties): Use rough estimates to get array size limits.
1361 Assign `face->nprops' and `face->properties' earlier so that a call
1362 to PCF_Face_Done can do the clean-up in case of error.
1363 Protect against invalid string offsets.
1364 (pcf_get_metrics): Clean up code.
1365 Adjust tracing message levels.
1366 Use rough estimate to get array size limit.
1367 (pcf_get_bitmaps): Clean up code.
1368 Adjust tracing message levels.
1369 Use rough estimates to get offset limits.
1370 (pcf_get_encodings): Adjust tracing message level.
1371 (pcf_get_accel): Clean up code.
1372
Werner Lemberg8eb05252006-06-27 06:20:01 +000013732006-06-26 Werner Lemberg <wl@gnu.org>
1374
1375 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1376 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1377
Werner Lemberg24703f82006-06-26 19:12:51 +000013782006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1379
1380 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1381 (t1_decoder_parse_charstrings): Operator with
1382 opcode 15 pops its two arguments.
1383 Handle the case where the pops of an othersubr may be part of a
1384 subroutine.
1385 Handle unknown othersubrs gracefully: count their operands and let
1386 the following pop operators push the operands as the results onto
1387 the Type1 stack.
1388 Improve handling of setcurrentpoint opcode.
1389
Werner Lembergc011f4c2006-06-26 09:40:00 +000013902006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1391
1392 The Type 1 parser now skips over top-level procedures as required
1393 for a `Simplified Parser'. This makes the parser more robust as it
1394 doesn't poke around in PostScript code. Additionally, it makes the
1395 FontDirectory hackery in src/type1/t1load.c unnecessary.
1396
1397 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1398 (skip_literal_string): Add FT_Error as return value.
1399 Handle escapes better.
1400 (skip_string): Add FT_Error as return value.
1401 Don't set `parser->error' but return error code directly.
1402 (skip_procedure): New function.
1403 (ps_parser_skip_PS_token): Handle procedures.
1404 Update code.
1405 (ps_parser_to_token): Update code.
1406 (ps_parser_load_field_table): Handle bbox entries also.
1407
1408 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1409 Add commented-out code for synthetic fonts.
1410
Werner Lemberga2da05c2006-06-25 06:27:27 +000014112006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1412
1413 Fix two hinting bugs as reported in
1414 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1415
1416 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1417 `first_point' member.
1418
1419 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1420 `first_point'.
1421 (TT_Process_Composite_Glyph): Always untouch points.
1422
1423 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1424 `first_point' and `last_point' in case of composite glyphs.
1425 (Ins_IUP): Fix computation of `end_point'.
1426
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014272006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1428
Werner Lembergef3d2c22006-06-25 06:07:14 +00001429 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1430 Mac. The original patch was written by David Sachitano and Lawrence
1431 Coopet, and modified by Sean McBride for MPW compatibility. Only
1432 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001433
Werner Lembergef3d2c22006-06-25 06:07:14 +00001434 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1435 Mac OS X platforms.
1436 (OS_INLINE): Undefine before definition.
1437 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1438 FontAssociation table in FOND resource.
1439 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1440 and fontSize at each entry of FontAssociation table in FOND
1441 resource.
1442 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1443 ffStylOff of FamilyRecord header of FOND resource, the header,
1444 fontSize, fontID at each entry of FontAssociation table, and
1445 StyleMapping table.
1446 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001447
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000014482006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1449
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001450 Public API of TrueTypeGX, OpenType, and classic kern table validator
1451 should return `FT_Err_Unimplemented_Feature' if validation service
1452 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001453 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001454 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1455
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001456 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1457 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1458 unavailable.
1459 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1460 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001461
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001462 * src/base/ftotval.c (FT_OpenType_Validate): Return
1463 FT_Err_Unimplemented_Feature if OpenType validation service is
1464 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001465
Werner Lembergb10e45a2006-06-08 07:32:56 +000014662006-06-08 Werner Lemberg <wl@gnu.org>
1467
1468 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1469 errors.
1470
David Turner5f1f7502006-06-07 05:11:50 +000014712006-06-07 David Turner <david@freetype.org>
1472
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001473 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1474 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1475 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001476
David Turner457b4a82006-06-06 08:14:14 +000014772006-06-06 David Turner <david@freetype.org>
1478
Werner Lemberg4836f952006-06-06 12:54:08 +00001479 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001480
Werner Lemberg4836f952006-06-06 12:54:08 +00001481 We change `ps_unicodes_init' so that it also takes a
1482 `free_glyph_name' callback to release the glyph names returned by
1483 `get_glyph_name'
1484
1485 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1486 Renamed to ...
1487 (PS_GetGlyphNameFunc): This.
1488 (PS_FreeGlyphNameFunc): New typedef.
1489 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1490
1491 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1492 argument.
1493 (cff_sid_free_glyph_name): New function.
1494 (cff_cmap_unicode_init): Updated.
1495
1496 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1497
1498 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1499 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001500
1501
David Turner09717352006-06-04 14:33:08 +000015022006-06-04 David Turner <david@freetype.org>
1503
Werner Lembergd724f202006-06-04 15:17:41 +00001504 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1505 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001506 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001507
Werner Lembergd724f202006-06-04 15:17:41 +00001508 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1509 of `face->num_glyphs' which missed the last glyph, due to
1510 the offset-by-1 computation, since the PFR format doesn't
1511 guarantee that glyph index 0 corresponds to the `missing
1512 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001513
Werner Lemberg33779662006-05-26 06:30:05 +000015142006-05-25 Werner Lemberg <wl@gnu.org>
1515
1516 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1517 `-no-undefined'. Reported by Christian Biesinger.
1518
Werner Lemberg24773d62006-05-20 08:53:13 +000015192006-05-19 Brian Weed <bw@imaginengine.com>
1520
1521 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1522 have debug information, and debug libraries use `C7 compatible'
1523 debug info.
1524
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015252006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1526
Werner Lemberga6523a62006-05-20 08:47:01 +00001527 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001528 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001529
Werner Lemberga6523a62006-05-20 08:47:01 +00001530 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1531 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001532
1533 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001534 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001535
15362006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1537
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001538 * build/unix/configure.raw: Add a fallback to disable Carbon
1539 dependency, if configured with no options on Mac OS X.
1540
15412006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1542
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001543 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001544 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001545 the second part of Savannah bug #16590.
1546
Werner Lemberg545c4e52006-05-17 22:55:04 +000015472006-05-18 Werner Lemberg <wl@gnu.org>
1548
1549 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1550 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1551
David Turnerdc3ff312006-05-17 12:59:35 +000015522006-05-17 David Turner <david@freetype.org>
1553
Werner Lemberg545c4e52006-05-17 22:55:04 +00001554 This is a major patch used to drastically improve the performance of
1555 loading glyphs. This both speeds up loading the glyph vectors
1556 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001557
Werner Lemberg545c4e52006-05-17 22:55:04 +00001558 We now use inline assembler code with GCC to implement `FT_MulFix',
1559 which is probably the most important function related to the
1560 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001561
Werner Lemberg545c4e52006-05-17 22:55:04 +00001562 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001563
1564
Werner Lemberg545c4e52006-05-17 22:55:04 +00001565 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1566 `cursor' and `limit'.
1567
1568 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1569 New functions.
1570 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1571 [TEST]: Remove.
1572
1573 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1574 code.
1575
1576 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1577 `FT_ZERO'
1578 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1579 (af_glyph_hints_reload: Rewrite recognition of weak points.
1580
1581 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1582 constant values out of the loops.
1583
1584 * src/autofit/aftypes.h: Updated.
1585
1586 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1587
1588 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1589 product to get orientation.
1590
1591 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1592 (FT_Stream_OpenGzip): Use it to handle small files directly in
1593 memory.
1594
1595 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1596 Improve performance.
1597
1598 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1599 `limit'.
1600
1601 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1602 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1603 exceedingly large values of number of contours. Speed up by
1604 reducing the number of loops.
1605
1606 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1607
1608
1609 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1610 used to detect rogue clients from 4 to 16. This is to prevent some
1611 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1612 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001613
Werner Lembergde2d90a2006-05-17 08:54:30 +000016142007-05-17 Werner Lemberg <wl@gnu.org>
1615
1616 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001617 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001618
16192006-05-16 Werner Lemberg <wl@gnu.org>
1620
1621 * docs/PROBLEMS: Updated icl issues.
1622
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001623----------------------------------------------------------------------------
1624
Werner Lemberg42b63b22007-01-21 21:01:33 +00001625Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001626David Turner, Robert Wilhelm, and Werner Lemberg.
1627
1628This file is part of the FreeType project, and may only be used, modified,
1629and distributed under the terms of the FreeType project license,
1630LICENSE.TXT. By continuing to use, modify, or distribute this file you
1631indicate that you have read the license and understand and accept it
1632fully.
1633
1634
1635Local Variables:
1636version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001637coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001638End: