blob: 5a756bd7a540cd86ab40d8e7512db2859a501b8d [file] [log] [blame]
Alexei Podtelezhnikov118e6512014-10-19 23:31:08 -040012014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2
3 [truetype] Clean up bytecode rounding.
4
5 Zero distance does not have to be treated specially if you follow
6 specifications and check the sign as the very last step of rounding.
7
8 * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
9 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
10 macros when available, do not check for non-zero distance.
11 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
12 if sign changed.
13
Alexei Podtelezhnikovd4aabda2014-10-18 10:10:04 -0400142014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
15
16 [truetype] Unwrap engine compensation settings.
17
18 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
19
David Weißfede19e2014-10-18 14:59:20 +0200202014-10-18 David Weiß <David.Weiss@ptvgroup.com>
21
22 [build] Add property file to vc2010 project.
23
24 This simplifies custom build configurations, especially for
25 automated build environments.
26
27 * builds/windows/vc2010/freetype.user.props: New configuration file.
28
29 * builds/windows/vc2010/freetype.vcxproj: Include
30 `freetype.user.props' and use its data fields.
31
32 * builds/windows/vc2010/index.html: Updated.
33
Werner Lembergc9c33f22014-10-18 11:01:14 +0200342014-10-18 Werner Lemberg <wl@gnu.org>
35
36 [autofit] Add blue-zone support for Telugu.
37
38 This essentially moves the Telugu script from the `Indic' hinter to
39 the `Latin' hinter.
40
41 Note that this is a first shot and quite certainly needs
42 refinements.
43
44 * src/autofit/afblue.dat: Add blue zone data for Telugu.
45
46 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
47
48 * src/autofit/afscript.h: Add Telugu standard characters and move
49 data out of AF_CONFIG_OPTION_INDIC block.
50
51 * src/autofit/afranges.c: Move Telugu data out of
52 AF_CONFIG_OPTION_INDIC block.
53
54 * src/autofit/afstyles.h: Update Telugu data; in particular, use
55 AF_WRITING_SYSTEM_LATIN.
56
Werner Lemberg54306f52014-10-18 10:42:28 +0200572014-10-18 David Wimsey <david@wimsey.us>
58
59 [cmake] Add iOS build support.
Werner Lemberg1050aa92014-10-18 10:45:09 +020060 From Savannah patch #8497.
Werner Lemberg54306f52014-10-18 10:42:28 +020061
62 * builds/cmake/iOS.cmake: New file. Universal binaries are built
63 with both 32 and 64 bit arm architectures.
64
65 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
66 toolchain. Possible values are `OS' to build on iOS, or
67 `SIMULATOR' to build on APPLE.
68
Werner Lemberg1a1750f2014-10-16 22:54:01 +0200692014-10-16 Behdad Esfahbod <behdad@behdad.org>
70 Werner Lemberg <wl@gnu.org>
71
72 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
73
74 * devel/ftoption.h, include/config/ftoption.h
75 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
76
77 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
78 SET_DARKENING_PARAMETERS_0): New macros.
79 (cff_driver_init): Use new macros.
80
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -0400812014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
82
83 [truetype] Limit delta shift range.
84
Werner Lembergdf3d67e2014-10-16 07:24:44 +020085 The valid range for delta shift is zero through six. Negative values
86 are invalid according to
87
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -040088 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
89
90 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
Werner Lembergdf3d67e2014-10-16 07:24:44 +020091 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
92 is out of range.
93 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -040094
Werner Lemberg03987bf2014-10-16 07:19:46 +0200952014-10-16 Werner Lemberg <wl@gnu.org>
96
97 A better fix for Savannah bug #43392.
98 Suggested by Doug Felt <dougfelt@gmail.com>.
99
Werner Lembergdf3d67e2014-10-16 07:24:44 +0200100 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
Werner Lemberg03987bf2014-10-16 07:19:46 +0200101 `vertAdvance' to zero...
102
103 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
104 value for `vertAdvance' based on `linearVertAdvance' in case
105 `vertAdvance' is zero. Note that the previous computed ad-hoc value
106 for `linearVertAdvance' was apparently not tested in a real-life
107 situation.
108
David Weiß3889cb22014-10-14 11:35:16 +02001092014-10-14 David Weiß <David.Weiss@ptvgroup.com>
110
111 [build] Better optimization settings for vc2010 solution file.
112
113 * builds/windows/vc2010/freetype.sln,
114 builds/windows/vc2010/freetype.vcxproj: Updated.
115
Werner Lemberg8f178092014-10-14 08:28:09 +02001162014-10-14 Werner Lemberg <wl@gnu.org>
117
118 [autofit] Adjust Devenagari character range.
119
120 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
121 are common to all other Indic scripts.
122
Werner Lemberg1ca5fa12014-10-12 08:31:32 +02001232014-10-12 Werner Lemberg <wl@gnu.org>
124
125 [sfnt] Fix Savannah bug #43392.
126
127 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
128 vertical metrics uninitialized.
129
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -04001302014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
131
132 [base] Small bbox correction.
133
134 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
Werner Lembergdf3d67e2014-10-16 07:24:44 +0200135 instead of initial point that could be `off' in conic outlines.
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -0400136
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -04001372014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
138
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -0400139 [base] Fix Savannah bug #43356.
140
141 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
Werner Lembergdf3d67e2014-10-16 07:24:44 +0200142 of implicit `to'.
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -0400143 (BBox_Line_To): New emitter that does not update bbox.
144
1452014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
146
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -0400147 [base] Introduce and use new macro `FT_UPDATE_BBOX'
148
149 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
150 (FT_Outline_Get_BBox): Use it here.
151
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -04001522014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
153
154 [base] Significant optimization of `ft_div64by32'
155
156 We shift as many bits as we can into the high register, perform
157 32-bit division with modulo there, then work through the remaining
158 bits with long division. This optimization is especially noticeable
159 for smaller dividends that barely use the high register.
160
161 * src/base/ftcalc.c (ft_div64by32): Updated.
162
Dave Arnold537c55d2014-10-02 06:32:32 +02001632014-10-02 Dave Arnold <darnold@adobe.com>
164
165 [cff] Fix Savannah bug #43271.
166
167 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
168 detection to use logarithms and clamp `scaledStem'.
169
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -04001702014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
171
Alexei Podtelezhnikov74d0aad2014-10-01 23:27:15 -0400172 * src/base/ftcalc.c: Remove miscellaneous type casts.
173
1742014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
175
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -0400176 [base] Use more common `FT_MSB' implementation with masks.
177
178 * src/base/ftcalc.c (FT_MSB): Updated.
179
Alexei Podtelezhnikov955aff12014-09-30 23:09:39 -04001802014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
181
182 [base] Clean up.
183
184 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
185 code.
186
Alexei Podtelezhnikov7f491112014-09-25 22:54:38 -04001872014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
188
189 [base] Avoid unnecessary long division.
190
191 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
192 lack thereof are predicted accurately.
193
194 * src/base/ftcalc.c (ft_div64by32): Improve readability.
195 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
196 when multiplication stayed within 32 bits.
197
Werner Lemberg5b68e4f2014-09-24 19:06:13 +02001982014-09-24 Werner Lemberg <wl@gnu.org>
199
200 [autofit] Minor clean-ups.
201
202 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
203
204 * src/autofit/afhints.c (af_glyph_hints_dump_points,
205 af_glyph_hints_align_strong_points): Updated.
206
207 * src/autofit/aflatin.c (af_latin_hints_link_segments,
208 af_latin_hints_compute_segments), src/autofit/afcjk.c
209 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
210 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
211 There are no longer fake segments since more than 10 years...
212
Werner Lemberg387a9fe2014-09-22 06:42:24 +02002132014-09-22 Werner Lemberg <wl@gnu.org>
214
215 [autofit] Minor code streamlining.
216
217 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
218 initialization.
219
Alexei Podtelezhnikov5c894842014-09-19 22:03:15 -04002202014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
221
222 * src/base/ftcalc.c: Harmonize code.
223
2242014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -0400225
Alexei Podtelezhnikovef070d42014-09-15 22:06:19 -0400226 [base] Tighten the overflow check in `FT_MulDiv'.
227
228 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
229
2302014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
231
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -0400232 Fix Savannah bug #43153.
233
234 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -0400235 overflow in `divider'.
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -0400236
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -04002372014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
238
Alexei Podtelezhnikov336735d2014-09-03 22:55:26 -0400239 [base] Tighten the overflow check in `FT_DivFix'.
240
241 This fixes a 13-year old bug. The original overflow check should have
242 been updated when rounding was introduced into this function
243 (c2cd00443b).
244
245 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
246 * include/freetype.h (FT_DivFix): Updated documentation.
247
2482014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
249
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -0400250 [base] Tighten the overflow check in `FT_MulFix'.
251
252 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
253
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -04002542014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
255
256 [truetype] Shortcut ppem calculations for square pixels.
257
258 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
259 `cur_ppem_func' with a function pointer.
260 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
261 depending on the pixel geometry to either...
262 (Current_Ppem_Stretched): ... this for stretched pixels.
263 (Current_Ppem): ... or this for square pixels.
264 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
265
Behdad Esfahbod1ec98b22014-08-31 08:47:11 +02002662014-08-31 Behdad Esfahbod <behdad@behdad.org>
267
268 Don't use `register' keyword. Fixes compiler warnings.
269
270 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
271 * src/gzip/inftrees.c (huft_build): Ditto.
272 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
273
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -04002742014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
275
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -0400276 [truetype] Optimize DELTAP and DELTAC.
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -0400277
278 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
279 calculations outside of the loop.
280
Alexei Podtelezhnikov98688592014-08-21 23:28:52 -04002812014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
282
283 Fix Savannah bug #43033.
284
285 * include/config/ftconfig.h, builds/unix/ftconfig.in,
286 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
287 64-bit type is `long'.
288
Alexei Podtelezhnikov8fd87d42014-08-20 00:57:22 -04002892014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
290
291 [base] Small optimization of `FT_MulFix'.
292
293 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
294 32-bit calculations.
295
Alexei Podtelezhnikovf09326a2014-08-20 00:08:38 -04002962014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
297
298 [base] Use unsigned calculation in `FT_MulDiv'.
299
300 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
301
Alexei Podtelezhnikov382f3152014-08-18 23:16:15 -04003022014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
303
304 [base] Remove truncation in `FT_DivFix'.
305
306 * src/base/ftcalc.c (FT_DivFix): Updated.
307
Alexei Podtelezhnikov5ef20232014-08-14 23:21:46 -04003082014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
309
310 Minor refactoring.
311
312 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
313
3142014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovc7022462014-08-14 23:01:01 -0400315
316 Turn FT_MSB into a macro when using gcc builtins.
317
318 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
319
Alexei Podtelezhnikovf8efbcf2014-08-12 23:22:17 -04003202014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
321
322 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
323
324 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
325 (update_cubic_max): Repalce with...
326 (cubic_peak): ... this, which now handles upscaling.
327
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -04003282014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
329
Alexei Podtelezhnikov28018d42014-08-12 00:26:16 -0400330 [base] Handle collapsed outlines to avoid undefined FT_MSB.
331
332 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
333
3342014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
335
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -0400336 [base] Restore FT_MulFix inlining.
337
338 * include/freetype.h (FT_MulFix): Unconditionally defined.
339
340 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
341
342 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
343 which conditionally replaces the function with an inline version
344 through the macro.
345
Alexei Podtelezhnikov90be4b62014-08-08 22:27:10 -04003462014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
347
348 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
349
Werner Lembergd17cabf2014-07-26 09:53:50 +09003502014-07-26 Werner Lemberg <wl@gnu.org>
351
352 [cff] Fix typo.
353
354 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
355 offsets in third quadrant.
356
357 Reported by maks <maksqwe1@ukr.net>.
358
Werner Lemberg4e754132014-07-17 17:34:49 +09003592014-07-17 Werner Lemberg <wl@gnu.org>
360
361 Fix Savannah bug #42788.
362
363 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
364
Alexei Podtelezhnikovc0a6f202014-07-16 22:05:56 -04003652014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
366
367 Replace `ft_highpow2' function.
368
369 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
370 `ft_highpow2'.
371
372 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
373 it.
374
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -04003752014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
376
Werner Lembergcbbf26b2014-07-17 17:27:12 +0900377 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov177982e2014-07-15 23:54:34 -0400378
3792014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
380
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -0400381 [base] Move assembler code back in the source file.
382
383 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
384
385 * include/config/ftconfig.h, builds/unix/ftconfig.in,
386 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
387
388 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
389
3902014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikov1183cd42014-07-14 22:30:55 -0400391
392 [base] Further clean up color bitmap conversion.
393
394 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
395 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
396
Werner Lemberg441b3f32014-07-13 02:28:14 +09003972014-07-13 Werner Lemberg <wl@gnu.org>
398
399 [truetype] Improve handling of buggy `prep' tables.
400
401 In case of an error in the `prep' table, no longer try to execute it
402 again and again. This makes FreeType handle endless loops in buggy
403 fonts much faster.
404
405 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
406 and `cvt_ready' are now negative if not initialized yet, otherwise
407 they indicate the error code of the last run.
408
409 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
410 tt_size_done_bytecode, tt_size_init_bytecode,
411 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
412 Updated.
413
414 * src/truetype/ttgload.c (tt_loader_init): Updated.
415 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
416 and `prep' only if we are in the `glyf' table.
417
Werner Lemberge98e2bc2014-07-12 16:37:39 +09004182014-07-12 Werner Lemberg <wl@gnu.org>
419
420 * builds/vms/ftconfig.h: Synchronize.
421 Problem reported by Alexei.
422
Alexei Podtelezhnikov35576bf2014-07-11 22:40:34 -04004232014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
424
425 [base] Clean up bitmap conversion.
426
427 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
428 appropriate FT_DivFix and remove superfluous upscaling.
429
Alexei Podtelezhnikovceab95a2014-07-04 23:01:32 -04004302014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
431
432 [base] Small optimization of the ancient code.
433
434 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
435 condition for direct 32-bit calculations.
436
Werner Lemberg38975562014-06-27 06:55:56 +02004372014-06-27 Werner Lemberg <wl@gnu.org>
438
439 Fix Apple standard glyph names.
440
441 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
442 `tools/glnames.py'
443
444 Problem reported by Adam Twardoch <adam@fontlab.com>.
445
Werner Lembergcf2347c2014-06-17 09:01:04 +02004462014-06-17 Werner Lemberg <wl@gnu.org>
447
Werner Lemberg231171f2014-06-17 09:14:32 +0200448 Partially revert commit from 2014-06-13.
449
450 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
451 declaration of `p_first' and `p_last' out of the loop.
452
4532014-06-17 Werner Lemberg <wl@gnu.org>
454
Werner Lembergcf2347c2014-06-17 09:01:04 +0200455 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
456
457 This simplifies cross-compiling.
458
Werner Lemberg6497b9c2014-06-13 09:28:00 +02004592014-06-13 Werner Lemberg <wl@gnu.org>
460
Werner Lemberge5c0fff2014-06-13 14:01:20 +0200461 Fix more compiler warnings.
462 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
463
464 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
465 Make integer constant unsigned.
466
467 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
468 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
469 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
470 casts.
471
4722014-06-13 Werner Lemberg <wl@gnu.org>
473
Werner Lemberg6497b9c2014-06-13 09:28:00 +0200474 Fix compiler warnings.
475 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
476
477 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
Werner Lembergcbbf26b2014-07-17 17:27:12 +0900478 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
Werner Lemberg6497b9c2014-06-13 09:28:00 +0200479 `unsigned' issues.
480
481 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
482 happy.
483
484 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
485 for `fir'.
486 Fix `signed' vs. `unsigned' issues.
487
488 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
489 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
490
491 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
492
493 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
494 and `B2'.
495
Alexey Petruchik02f21702014-05-16 08:09:43 +02004962014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
497
498 [cmake] Add option to build OS X framework.
499
500 * CMakeLists.txt: Update accordingly.
501
502 * builds/mac/freetype-Info.plist: New file.
503
Pavel Koshevoy15da66a2014-05-13 07:33:48 +02005042014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
505
506 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
507
Werner Lemberg07e7b8a2014-05-11 08:00:25 +02005082014-05-11 Werner Lemberg <wl@gnu.org>
509
Werner Lembergfaa21472014-05-11 12:44:00 +0200510 [autofit] Fix variable initializations.
511
512 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
513 values to `in_dir' and `out_dir' for all points.
514
5152014-05-11 Werner Lemberg <wl@gnu.org>
516
Werner Lemberg07e7b8a2014-05-11 08:00:25 +0200517 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
518
519 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
520
521 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
522 finding first non-near point.
523 Properly initialize non-near point deltas.
524
Werner Lemberg63bef9a2014-05-01 07:16:05 +02005252014-05-01 Werner Lemberg <wl@gnu.org>
526
Werner Lembergc576bb02014-05-01 17:24:19 +0200527 [autofit] Add blue-zone support for Devanagari.
528
529 This essentially moves the Devanagari script from the `Indic' hinter
530 to the `Latin' hinter. Thanks to Girish Dalvi
531 <girish.dalvi@gmail.com> for guidance with blue zone characters!
532
533 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
534
535 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
536
537 * src/autofit/afscript.h: Add Devanagari standard characters and
538 move data out of AF_CONFIG_OPTION_INDIC block.
539
540 * src/autofit/afranges.c: Move Devanagari data out of
541 AF_CONFIG_OPTION_INDIC block.
542 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
543
544 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
545 AF_WRITING_SYSTEM_LATIN.
546
5472014-05-01 Werner Lemberg <wl@gnu.org>
548
Werner Lemberg63bef9a2014-05-01 07:16:05 +0200549 [autofit] Fix handling of neutral blue zones in stems.
550
551 * src/autofit/afhints.h (AF_Edge_Flags): New value
552 `AF_EDGE_NEUTRAL'.
553
554 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
555 neutral blue zones with AF_EDGE_NEUTRAL.
556 (af_latin_hint_edges): Skip neutral blue zones if necessary.
557
Werner Lembergccfc4b42014-04-28 21:13:14 +02005582014-04-28 Werner Lemberg <wl@gnu.org>
559
560 [autofit] Introduce neutral blue zones to the latin module.
561
562 Such blue zones match either the top or the bottom of a contour. We
563 need them for scripts where accent-like elements directly touch the
564 base character (for example, some vowel signs in Devanagari, cf.
565 U+0913 or U+0914).
566
567 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
568 property.
569
570 * src/autofit/afblue.h: Regenerated.
571
572 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
573 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
574
575 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
576 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
577
Werner Lembergabb3fca2014-04-25 22:13:32 +02005782014-04-25 Werner Lemberg <wl@gnu.org>
579
580 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
581
582 Using input glyph coverage data is simply wrong.
583
584 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
585 Mantas Mikulėnas <grawity@gmail.com>.
586
Werner Lembergf1936372014-04-23 08:22:33 +02005872014-04-23 Werner Lemberg <wl@gnu.org>
588
589 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
590
591 This spot has been missed while introducing support for various
592 drop-out modes years ago (including no drop-out mode, which this
593 commit fixes).
594
595 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
596
Werner Lembergd9b44702014-04-22 07:33:07 +02005972014-04-22 Werner Lemberg <wl@gnu.org>
598
599 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
600
Werner Lemberg98e510e2014-04-20 22:11:27 +02006012014-04-20 Werner Lemberg <wl@gnu.org>
602
603 [autofit] Fix Savannah bug #42148.
604
605 The adaptation of the cjk auto-hinter module to blue stringsets in
606 2013-08-25 had three severe bugs. Mea culpa.
607
608 1. Contrary to the latin auto-hinter, characters for reference and
609 overshoot values of a blue zone are specified separately. Due to
610 the screwed-up change it didn't work at all.
611
612 2. A boolean comparison was erroneously replaced with a cast,
613 causing invalid results with the `^' operator later on. The
614 visual artifact caused by this problem is the topic of the bug
615 report.
616
617 3. Two flag values were inverted, causing incorrect assignment of
618 reference and overshoot values.
619
620 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
621 syntax to have both reference and overshoot characters in a single
622 string. This is error #1.
623 Add extensive comments.
624
625 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
626 longer used.
Werner Lembergccfc4b42014-04-28 21:13:14 +0200627 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
Werner Lemberg98e510e2014-04-20 22:11:27 +0200628 This is error #3.
629
630 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
631
632 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
633 Use character `|' to separate characters for reference and overshoot
634 values.
635 Improve tracing messages, synchronizing them with the latin
636 auto-hinter.
Werner Lembergccfc4b42014-04-28 21:13:14 +0200637 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
Werner Lemberg98e510e2014-04-20 22:11:27 +0200638 This is error #2.
639 (af_cjk_align_linked_edge): Add tracing message.
640
641 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
642 used.
643
Werner Lembergbbd83132014-04-17 01:24:36 +02006442014-04-17 Werner Lemberg <wl@gnu.org>
645
Werner Lemberg8c7fb782014-04-17 15:53:25 +0200646 [autofit] More coverage fixes for complex scripts.
647
648 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
649 of GSUB lookups into output coverage. Otherwise, ligatures are not
650 handled properly.
651 Don't check blue zone characters for default coverage.
652
6532014-04-17 Werner Lemberg <wl@gnu.org>
654
Werner Lembergbbd83132014-04-17 01:24:36 +0200655 Make `FT_Get_SubGlyph_Info' actually work.
656
657 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
658 if there is no error.
659
Werner Lemberg181fd072014-04-15 16:47:05 +02006602014-04-15 Werner Lemberg <wl@gnu.org>
661
662 [afblue.pl]: Minor improvements.
663
664 * src/tools/afblue.pl: Allow whitespace before comments.
665 Ignore whitespace in strings.
666
Werner Lemberg8b1f2a62014-04-14 07:58:19 +02006672014-04-14 Werner Lemberg <wl@gnu.org>
668
669 [autofit] Improve coverage handling.
670
671 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
672 appearing in the GPOS table if we are processing the default
673 coverage.
674
David Weber76307872014-04-13 15:41:13 +02006752014-04-13 David Weber <weber.aulendorf@googlemail.com>
676
677 [smooth] Fix stand-alone compilation.
678
679 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
680
Werner Lemberg8a94b1e2014-04-12 20:44:33 +02006812014-04-12 Werner Lemberg <wl@gnu.org>
682
683 [autofit] Redesign the recognition algorithm of strong points.
684
685 In particular, local extrema without horizontal or vertical segments
686 are better recognized:
687
688 + A + D
689 \ /
690 \ /
691 \ /
692 \ /
693 \ + C
694 \ /
695 B +/
696
697 If the distances AB and CD are large, point B wasn't previously
698 detected as an extremum since the `ft_corner_is_flat' function
699 `swallowed' BC regardless of its direction, tagging point B as weak.
700 The next iteration started at B and made `ft_corner_is_flat' swallow
701 point C, tagging it as weak also, et voilà.
702
703 To improve that, another pass gets now performed before calling
704 `ft_corner_is_flat' to improve the `topology' of an outline: A
705 sequence of non-horizontal or non-vertical vectors that point into
706 the same quadrant are handled as a single, large vector.
707
708 Additionally, distances of near points are now accumulated, which
709 makes the auto-hinter handle them as if they were prepended to the
710 next non-near vector.
711
712 This generally improves the auto-hinter's rendering results.
713
714 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
715
716 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
717 `AF_FLAG_NEAR'.
718
Werner Lemberg71f53e12014-04-05 16:27:19 +02007192014-04-05 Werner Lemberg <wl@gnu.org>
720
721 [autofit] Improve scoring algorithm for identifying stems.
722
723 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
724
725 The new algorithm takes care of the width of stems: If the distance
726 between two segments is larger than the largest stem width, the
727 demerits quickly increase for larger distances. This improves
728 hinting of slanted fonts (especially if the inner parts of serifs
729 have non-horizontal `shoulders'), avoiding false stem links.
730
731 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
732 stem width (if available) to compute better demerits for distances
733 between stems.
734 (af_latin_hints_detect_features): Pass stem width array and array
735 size.
736 (af_latin_metrics_init_widths): Updated to use original algorithm.
737 (af_latin_hints_apply): Updated to use new algorithm.
738
739 * src/autofit/aflatin.h: Updated.
740 * src/autofit/afcjk.c: Updated.
741
Werner Lembergf8555b52014-04-03 05:45:38 +02007422014-04-03 Werner Lemberg <wl@gnu.org>
743
744 Don't require `gzip' module for `sfnt'.
745
746 Reported by Preet <prismatic.project@gmail.com>.
747
748 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
749 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
750
Werner Lembergf41070f2014-03-27 17:38:23 +01007512014-03-27 Werner Lemberg <wl@gnu.org>
752
753 Fix Savannah bug #38235.
754
755 Work around a bug in pkg-config version 0.28 and earlier: If a
756 variable value gets surrounded by doublequotes (in particular values
757 for the `prefix' variable), the prefix override mechanism fails.
758
759 * builds/unix/freetype2.in: Don't use doublequotes.
760 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
761 names with backslashes.
762
Werner Lembergab76d972014-03-24 19:45:03 +01007632014-03-24 Werner Lemberg <wl@gnu.org>
764
765 Fix Savannah bug #41946.
766
767 Based on a patch from Marek Kašík <mkasik@redhat.com>.
768
769 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
770 * builds/unix/freetype-config.in (libs): Hard-code value.
771 * builds/unix/unix-def.in: Updated.
772
Werner Lembergd5159922014-03-22 06:20:54 +01007732014-03-22 Werner Lemberg <wl@gnu.org>
774
775 Another revert for the change from 2014-03-18.
776
777 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
778
779 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
780 gets always exported.
781
Werner Lembergf0c471a2014-03-20 07:13:12 +01007822014-03-20 Werner Lemberg <wl@gnu.org>
783
784 CMakeLists.txt: Another fix for include directories.
785
786 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
787
Werner Lembergcc7cf2c2014-03-19 07:35:35 +01007882014-03-19 Werner Lemberg <wl@gnu.org>
789
Werner Lemberg606c74f2014-03-19 23:46:42 +0100790 CMakeLists.txt: Fix include directories.
791
792 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
793
7942014-03-19 Werner Lemberg <wl@gnu.org>
795
Werner Lembergcc7cf2c2014-03-19 07:35:35 +0100796 Partially revert last commit.
797
798 Found by Alexei.
799
800 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
801 those variables is plain wrong, since we are in a loop.
802
Sean McBride87628722014-03-18 08:39:35 +01008032014-03-18 Sean McBride <sean@rogue-research.com>
804 Werner Lemberg <wl@gnu.org>
805
806 Fix clang warnings.
807
808 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
809 some variables.
810
811 * src/base/ftcalc.c (FT_MulFix): Only use code if
812 `FT_MULFIX_INLINED' is not defined.
813
814 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
815 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
816 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
817 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
818 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
819 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
820 function static.
821
822 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
823 code.
824
Werner Lemberg23367ff2014-03-17 07:33:14 +01008252014-03-17 Werner Lemberg <wl@gnu.org>
826
827 Fix Savannah bug #41869.
828
829 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
830 validate glyph indices returned by
831 `hb_ot_layout_lookup_collect_glyphs'.
832
833 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
834
835 * docs/CHANGES: Updated.
836
Werner Lemberg03181682014-03-14 08:06:06 +01008372014-03-14 Werner Lemberg <wl@gnu.org>
838
839 * builds/unix/configure.raw: Don't show error messages of `which'.
840
Alan Coopersmithed372b72014-03-09 06:14:12 +01008412014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
842
843 Fix cppcheck 1.64 warning.
844
845 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
846 dereference in case of error.
847
Werner Lemberg1a69dc72014-03-09 06:06:58 +01008482014-03-09 Sean McBride <sean@rogue-research.com>
849
850 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
851
Werner Lemberg05565362014-03-06 18:56:58 +01008522014-03-06 Werner Lemberg <wl@gnu.org>
853
Werner Lembergec8853c2014-03-06 19:13:45 +0100854 * Version 2.5.3 released.
855 =========================
856
857
858 Tag sources with `VER-2-5-3'.
859
860 * docs/VERSION.DLL: Update documentation and bump version number to
861 2.5.3.
862
863 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
864 builds/windows/vc2005/index.html,
865 builds/windows/vc2008/freetype.vcproj,
866 builds/windows/vc2008/index.html,
867 builds/windows/vc2010/freetype.vcxproj,
868 builds/windows/vc2010/index.html,
869 builds/windows/visualc/freetype.dsp,
870 builds/windows/visualc/freetype.vcproj,
871 builds/windows/visualc/index.html,
872 builds/windows/visualce/freetype.dsp,
873 builds/windows/visualce/freetype.vcproj,
874 builds/windows/visualce/index.html,
875 builds/wince/vc2005-ce/freetype.vcproj,
876 builds/wince/vc2005-ce/index.html,
877 builds/wince/vc2008-ce/freetype.vcproj,
878 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
879
880 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
881
882 * builds/unix/configure.raw (version_info): Set to 17:2:11.
883 * CMakeLists.txt (VERSION_PATCH): Set to 3.
884 * docs/CHANGES: Updated.
885
8862014-03-06 Werner Lemberg <wl@gnu.org>
887
Werner Lemberg05565362014-03-06 18:56:58 +0100888 Fixes for compilation with C++.
889
890 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
891 (af_get_coverage): Updated.
892 (COVERAGE): Add cast.
893
Sean McBrideb24e8d32014-03-06 14:54:22 +01008942014-03-06 Sean McBride <sean@rogue-research.com>
895
896 Remove more clang analyzer warnings.
897
898 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
899 (TT_Load_Glyph): Remove dead stores.
900
Werner Lemberga32758f2014-03-05 08:02:46 +01009012014-03-05 Werner Lemberg <wl@gnu.org>
902
903 * builds/unix/configure.raw: Simplify.
904
suzuki toshiya382f3ef2014-03-05 10:19:15 +09009052014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
906
907 Fix a bug in configure in library dependency setting
Werner Lemberga32758f2014-03-05 08:02:46 +0100908 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
suzuki toshiya382f3ef2014-03-05 10:19:15 +0900909
910 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
911
Werner Lembergf48f7dc2014-03-04 04:40:07 +01009122014-03-04 Werner Lemberg <wl@gnu.org>
913
914 Minor fix for `make devel'.
915
916 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
917 pkg-config for bzip2 since not all GNU/Linux distributions have
918 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
919 normally).
920
Werner Lemberg7ac76b52014-03-04 04:29:17 +01009212014-03-04 Sean McBride <sean@rogue-research.com>
922
923 Fix several clang static analyzer dead store warnings.
924
925 * src/autofit/afhints.c (af_glyph_hints_reload,
926 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
927
928 * src/bdf/bdflib.c (bdf_font_load): Ditto.
929
930 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
931 psh_glyph_interpolate_other_points): Ditto.
932
933 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
934
Werner Lemberg93ebcbd2014-03-03 07:13:45 +01009352014-03-03 Werner Lemberg <wl@gnu.org>
936
937 Rewrite library option handling in `configure'.
938
939 o Introduce `auto' value for `--with-XXX' library options; this is
940 now the default.
941
942 o First use `pkg-config' for library detection, then fall back to
943 other tests.
944
945 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
946 --with-harfbuzz): Rewrite.
947 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
948 variables to collect data for `freetype2.pc' and `freetype-config'.
949 (FT2_EXTRA_LIBS): Renamed to ...
950 (ft2_extra_libs): This since it gets no longer substituted.
951 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
952 New output variables, replacing `XXX_PKG' and `LIBXXX'.
953 Add notice at the end of `configure' showing the library
954 configuration.
955
956 * builds/unix/freetype-config.in (--static): New command line
957 option.
958 (libs): Updated.
959 (staticlibs): New variable, to be used if `--static' is given.
960 * builds/doc/freetype-config.1: Document `--static'.
961
962 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
963
Werner Lemberg86026a42014-03-01 06:57:19 +01009642014-03-01 Werner Lemberg <wl@gnu.org>
965
Werner Lemberge962a912014-03-01 21:00:02 +0100966 Avoid `long long' warnings with older gcc compilers.
967 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
968
969 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
970 versions < 4.6. This is especially needed for Max OS X since this
971 OS runs a gcc variant (or emulation) based on version 4.2.1.
972
9732014-03-01 Werner Lemberg <wl@gnu.org>
974
Werner Lemberg6030a9f2014-03-01 14:01:12 +0100975 * docs/INSTALL.CROSS: Revised and updated.
976
9772014-03-01 Werner Lemberg <wl@gnu.org>
978
Werner Lemberg646db052014-03-01 12:48:07 +0100979 Make `make clean' remove `freetype2.pc'.
980
981 This is a generated file at build time, not configure time.
982
983 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
984 (CLEAN): This variable.
985
9862014-03-01 Werner Lemberg <wl@gnu.org>
987
Werner Lemberg00c79ed2014-03-01 12:32:20 +0100988 Use pkg-config for detecting libpng and libbz2 also.
989
990 * builds/unix/configure.raw (HAVE_PKG): New variable.
991 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
992 Search for libpng using `pkg-config'.
993 Fix definition of `LIBHARFBUZZ' variable.
994 * builds/unix/freetype-config.in ($libs): Updated.
995 * builds/unix/freetype2.in: Add `URL' field.
996 Update `Requires.private' and `Libs.private'.
997 * builds/unix/unix-def.in: Updated.
998
9992014-03-01 Werner Lemberg <wl@gnu.org>
1000
Werner Lemberg86026a42014-03-01 06:57:19 +01001001 Add configure support for HarfBuzz.
1002
1003 * builds/unix/pkg.m4: New file.
1004 * builds/unix/configure.raw: Search for libharfbuzz using
1005 `pkg-config'.
1006 Add `--without-harfbuzz' option.
1007 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
1008 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
1009 HarfBuzz.
1010
1011 * docs/INSTALL.UNIX: Document interdependency of Freetype with
1012 HarfBuzz.
1013
Alexei Podtelezhnikov6adda682014-02-28 09:24:26 +010010142014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
1015
1016 [cff] Math simplifications.
1017
1018 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
1019 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
1020
Dave Arnold0eae6eb2014-02-28 07:40:01 +010010212014-02-28 Dave Arnold <darnold@adobe.com>
1022
Dave Arnold135c3fa2014-02-28 07:42:42 +01001023 [cff] Fix Savannah bug #41697, part 2.
1024
1025 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
1026 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
1027 a subroutine if no subroutines exist. This is an error but should
1028 not trigger an assert. Split the assert to account for this.
1029
10302014-02-28 Dave Arnold <darnold@adobe.com>
1031
Dave Arnold0eae6eb2014-02-28 07:40:01 +01001032 [cff] Fix Savannah bug #41697, part 1.
1033
1034 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
1035 invalid. In this case, it is not safe to use the length of
1036 `hStemHintArray'; the exception has already been recorded in
1037 `hintMask'.
1038
Werner Lembergeee4ff82014-02-26 18:12:36 +010010392014-02-26 Werner Lemberg <wl@gnu.org>
1040
Werner Lemberga2b5f662014-02-26 19:50:18 +01001041 [sfnt] Fix Savannah bug #41696.
1042
1043 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
1044 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
1045
10462014-02-26 Werner Lemberg <wl@gnu.org>
1047
Werner Lembergeee4ff82014-02-26 18:12:36 +01001048 [winfnt] Fix Savannah bug #41694.
1049
1050 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
1051
10522014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg9a567642014-02-26 13:08:07 +01001053
Werner Lemberg08c628d2014-02-26 14:18:03 +01001054 [cff] Fix Savannah bug #41693.
1055
1056 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
1057
Werner Lembergeee4ff82014-02-26 18:12:36 +010010582014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg08c628d2014-02-26 14:18:03 +01001059
Werner Lemberg9a567642014-02-26 13:08:07 +01001060 [bdf] Fix Savannah bug #41692.
1061
1062 bdflib puts data from the input stream into a buffer in chunks of
1063 1024 bytes. The data itself gets then parsed line by line, simply
1064 increasing the current pointer into the buffer; if the search for
1065 the final newline character exceeds the buffer size, more data gets
1066 read.
1067
1068 However, in case the current line's end is very near to the buffer
1069 end, and the keyword to compare with is longer than the current
1070 line's length, an out-of-bounds read might happen since `memcmp'
1071 doesn't stop properly at the string end.
1072
1073 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
1074 stop at string ends.
1075
suzuki toshiya91c7a972014-02-17 16:38:31 +090010762014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1077
1078 [autofit] Fix `make multi' compilation.
1079
suzuki toshiyacc9a0c22014-02-17 16:43:54 +09001080 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
suzuki toshiya91c7a972014-02-17 16:38:31 +09001081
Werner Lemberg6b290fd2014-02-19 09:26:54 +010010822014-02-19 Werner Lemberg <wl@gnu.org>
1083 Simon Bünzli <zeniko@gmail.com>
1084
1085 Fix Savannah bug #32902.
1086
1087 Patch taken from
1088
1089 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
1090
1091 with slight modifications.
1092
1093 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
1094 handle fonts that incorrectly use \r at the beginning of an eexec
1095 block.
1096
Simon Bünzlidf14e6c2014-02-19 08:42:52 +010010972014-02-19 Simon Bünzli <zeniko@gmail.com>
1098
1099 Fix Savannah bug #41590.
1100
1101 * src/type1/t1load.c (parse_encoding): Protect against invalid
1102 number.
1103
Dave Arnold89a94d42014-02-12 23:45:47 +010011042014-02-12 Dave Arnold <darnold@adobe.com>
1105
1106 [cff] Optimize by using `FT_MulDiv'.
1107 Suggested by Alexei.
1108
1109 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
1110
Werner Lemberg85ee27a2014-02-12 23:27:41 +010011112014-02-12 Werner Lemberg <wl@gnu.org>
1112
1113 Fix Savannah bug #41465.
1114
1115 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
1116 (DISTCLEAN): Remove `freetype-config'.
1117
Sean McBride7be2a942014-02-08 13:55:38 +010011182014-02-08 Sean McBride <sean@rogue-research.com>
1119
1120 Fix clang static analyzer and compiler warnings.
1121
1122 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
1123 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
1124 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
1125 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
1126 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
1127 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
1128 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
1129 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
1130 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
1131 code.
1132
1133 * src/autofit/afmodule.c (af_property_get_face_globals,
1134 af_property_set, af_property_get), src/base/ftbitmap.c
1135 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
1136
1137 * src/base/ftobjs.c (ft_remove_renderer): Protect against
1138 library == NULL.
1139 (ft_property_do): Make function static.
1140
1141 * src/base/ftrfork.c: Include `ftbase.h'.
1142
1143 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
1144 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
1145 (T1_Compute_Max_Advance): Avoid compiler warning.
1146
1147 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
1148 variable.
1149
Werner Lembergab98c5e2014-02-08 11:34:33 +010011502014-02-08 Werner Lemberg <wl@gnu.org>
1151
1152 Fix Windows build directories.
1153
1154 The build target is now `windows' instead of `win32'.
1155
1156 Problem reported by Nickolas George <darknova.clan@gmail.com>.
1157
1158 * builds/modules.mk: Don't use `win32' and `win16' (!) but
1159 `windows'.
1160
1161 * builds/windows/detect.mk, builds/windows/win32-def.mk:
1162 s/win32/windows/.
1163
Eugen Sawina8ceae42014-02-08 06:30:06 +010011642014-02-08 Eugen Sawin <esawin@mozilla.com>
1165
1166 Fix Savannah bug #41507.
1167
1168 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
1169 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
1170
Dave Arnold355b3592014-02-08 06:23:04 +010011712014-02-08 Dave Arnold <darnold@adobe.com>
1172
1173 [cff] Fix minor performance bug.
1174
1175 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
1176 calculations are now cached and not recomputed on each glyph.
1177
Werner Lemberg6dce1362014-02-05 15:40:47 +010011782014-02-05 Werner Lemberg <wl@gnu.org>
1179
1180 Fix problems with perl 5.8.8 as distributed with current MinGW.
1181
1182 * src/tools/afblue.pl: Work-around for Perl bug #63402.
1183 (string_re): Avoid `possessive quantifiers', which have been
1184 introduced in Perl version 5.10.
1185
Werner Lemberga8772912014-02-04 11:36:08 +010011862014-02-04 Werner Lemberg <wl@gnu.org>
1187
Werner Lembergd87f9a62014-02-04 16:14:09 +01001188 Fix compilation with MinGW.
1189
1190 Right now, compilation out of the box with latest MinGW is broken
1191 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
1192 cf.
1193
1194 https://sourceforge.net/p/mingw/bugs/2024/
1195 https://sourceforge.net/p/mingw/bugs/2046/
1196
1197 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
1198
11992014-02-04 Werner Lemberg <wl@gnu.org>
1200
Werner Lemberga8772912014-02-04 11:36:08 +01001201 [autofit] Minor fix.
1202
1203 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
1204 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
1205 of alternative standard characters.
1206 This also fixes a compilation warning in non-debug mode.
1207
Werner Lembergee3778d2014-02-03 11:16:47 +010012082014-02-03 Werner Lemberg <wl@gnu.org>
1209
1210 [cff] Fix Savannah bug #41363.
1211
1212 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
1213 parameter check.
1214 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
1215 we are scaling the outline.
1216 (cf2_getPpemY): Remove problematic assertion.
1217
Werner Lemberga3364002014-01-26 09:45:23 +010012182014-01-26 Werner Lemberg <wl@gnu.org>
1219
1220 [autofit] Introduce two more slots for standard characters.
1221
1222 This is useful for OpenType features like `c2sc' (caps to small
1223 caps) that don't have lowercase letters by definition, or other
1224 features that mainly operate on numerals.
1225
1226 * src/autofit/afscript.h: Add more standard characters.
1227
1228 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
1229 (AF_ScriptClassRec): Add members to hold two more standard
1230 characters.
1231 (AF_DEFINE_SCRIPT_CLASS): Updated.
1232
1233 * src/autofit/afglobal.c, src/autofit/afglobal.h,
1234 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
1235 Update use of `SCRIPT' macro.
1236
1237 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
1238 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
1239 standard characters.
1240
Werner Lembergeb7691c2014-01-24 19:04:22 +010012412014-01-24 Werner Lemberg <wl@gnu.org>
1242
1243 Fix Savannah bug #41320.
1244
1245 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
1246 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
1247
Werner Lemberg8b281f82014-01-23 08:14:53 +010012482014-01-23 Werner Lemberg <wl@gnu.org>
1249
Werner Lemberg752f3912014-01-23 09:14:25 +01001250 Fix Savannah bug #41310.
1251
1252 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
1253 Don't check metrics, which this format doesn't have.
1254 This is another correction to the commit from 2013-11-21.
1255
12562014-01-23 Werner Lemberg <wl@gnu.org>
1257
Werner Lemberg8b281f82014-01-23 08:14:53 +01001258 Fix Savannah bug #41309.
1259
1260 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
1261 of `T1_ToFixedArray'.
1262
1263 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
1264 `t1_parse_font_matrix'.
1265
1266 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
1267 `t1_parse_font_matrix'.
1268 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
1269
1270 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
1271 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
1272
Werner Lembergff8dc312014-01-22 09:19:57 +010012732014-01-22 Werner Lemberg <wl@gnu.org>
1274
1275 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
1276
Werner Lemberg6a700782014-01-16 08:55:40 +010012772014-01-16 Werner Lemberg <wl@gnu.org>
1278
1279 [autofit] Improve tracing of style coverages.
1280
1281 * include/internal/fttrace.h: Add `afglobal' for tracing style
1282 coverages.
1283
1284 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
1285 (FT_COMPONENT): Define.
1286 (af_face_globals_compute_style_coverage): Trace `gstyles' array
1287 data.
1288
Werner Lemberg7cbfdff2014-01-09 07:26:06 +010012892014-01-09 Werner Lemberg <wl@gnu.org>
1290
1291 Fix Savannah bug #41158.
1292
1293 * builds/unix/install.mk (install): Create man page directory.
1294
Chongyu Zhu94c66942014-01-08 08:52:59 +010012952014-01-08 Chongyu Zhu <lembacon@gmail.com>
1296
1297 [arm] Fix Savannah bug #41138, part 2.
1298
1299 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
1300 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
1301 preprocessor conditionals for `add.w'.
1302
Werner Lembergc46fa862014-01-08 08:45:40 +010013032014-01-08 Werner Lemberg <wl@gnu.org>
1304
1305 [autofit] Fix Savannah bug #41138, part 1.
1306
1307 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
1308 enumeration names for generated `#else'.
1309
1310 * src/autofit/afblue.h: Regenerated.
1311
Werner Lemberg3e5a3742014-01-06 07:53:10 +010013122014-01-06 Werner Lemberg <wl@gnu.org>
1313
1314 Add manual page for `freetype-config'.
1315 Contributed by Nis Martensen <nis.martensen@web.de>.
1316
1317 * docs/freetype-config.1: New file.
1318
1319 * builds/unix/unix-def.in (mandir): Define.
1320 * builds/unix/install.mk (install, uninstall): Handle manpage.
1321
Werner Lemberg991cbcc2014-01-05 13:24:56 +010013222014-01-05 Werner Lemberg <wl@gnu.org>
1323
1324 [autofit] Minor fixes for `afblue.pl'.
1325
1326 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
1327 <Handling #endif>: Use proper indentation for generated `#else'.
1328
1329 * src/autofit/afblue.h: Regenerated.
1330
Werner Lemberg0d977442014-01-04 11:46:34 +010013312014-01-04 Werner Lemberg <wl@gnu.org>
1332
1333 [autofit] Fix Indic scripts.
1334
1335 Split the single, incorrect Indic entry into separate scripts so
1336 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
1337 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
1338 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
1339 entries for Meetai Mayak and Sharada – the Unicode ranges were
1340 incorrect (and nobody has complained about that), fonts are scarce
1341 for those scripts, and the Indic auto-hinter support is rudimentary
1342 anyways.
1343
1344 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
1345 AF_CONFIG_OPTION_CJK.
1346
1347 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
1348 Use it, together with AF_CONFIG_OPTION_INDIC and
1349 AF_CONFIG_OPTION_CJK, to update.
1350
1351 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
1352 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
1353 Sort entries by tags.
1354
Werner Lemberg5c7f5502014-01-03 10:48:26 +010013552014-01-03 Werner Lemberg <wl@gnu.org>
1356
Werner Lembergecdb0e32014-01-03 20:49:31 +01001357 [autofit] Thinko.
1358
1359 * src/autofit/hbshim.c (af_get_char_index): Similar to
1360 `af_get_coverage', reject glyphs which are not substituted.
1361
13622014-01-03 Werner Lemberg <wl@gnu.org>
1363
Werner Lemberga42f9182014-01-03 18:29:41 +01001364 [autofit] Fix handling of default coverages.
1365
Werner Lemberg1b5bc892014-01-03 18:33:24 +01001366 With this commit, the implementation of coverage handling is
1367 completed.
1368
1369 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
1370 do.
1371 Reject coverages which don't contain appropriate glyphs for blue
1372 zones.
1373
13742014-01-03 Werner Lemberg <wl@gnu.org>
1375
1376 [autofit] Fix handling of default coverages.
1377
Werner Lemberga42f9182014-01-03 18:29:41 +01001378 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1379 First handle non-default coverages, then the default coverage of the
1380 default script, and finally the other default coverages.
1381
13822014-01-03 Werner Lemberg <wl@gnu.org>
1383
Werner Lembergf45749b2014-01-03 18:09:36 +01001384 [autofit] Fix scaling of HarfBuzz shaping.
1385
1386 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
1387
13882014-01-03 Werner Lemberg <wl@gnu.org>
1389
Werner Lemberg5c7f5502014-01-03 10:48:26 +01001390 [autofit] Better ftgrid support.
1391
1392 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
1393 parameters `is_blue' and `blue_offset'.
1394
Werner Lemberg73cc8332014-01-01 07:10:36 +010013952014-01-01 Werner Lemberg <wl@gnu.org>
1396
Werner Lemberg55cd7e02014-01-02 13:07:48 +01001397 [autofit] Remove some styles.
1398
1399 * src/autofit/afcover.h: Remove coverages for alternative fractions,
1400 denominators, numerators, and fractions.
1401
1402 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
1403
14042014-01-01 Werner Lemberg <wl@gnu.org>
1405
Werner Lembergc973e672014-01-01 16:34:42 +01001406 [autofit] Add more styles.
1407
1408 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
1409 auxiliary macros; use them to define styles for Cyrillic, Greek, and
1410 Latin.
1411
1412 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
1413 Since those digits are used in combination with ordinary letters, it
1414 makes no sense to handle them separately.
1415
1416 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
1417 `options' parameter to 4 bits.
1418
14192014-01-01 Werner Lemberg <wl@gnu.org>
1420
Werner Lembergabb2f732014-01-01 08:00:16 +01001421 [autofit] Fix style assignments to glyphs.
1422
1423 * src/autofit/hbshim.c (af_get_coverage)
1424 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
1425 so that we can skip glyphs that have both GSUB and GPOS data.
1426
14272014-01-01 Werner Lemberg <wl@gnu.org>
1428
Werner Lemberg0950f3a2014-01-01 07:48:20 +01001429 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
1430
14312014-01-01 Werner Lemberg <wl@gnu.org>
1432
Werner Lemberg73cc8332014-01-01 07:10:36 +01001433 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
1434
1435 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
1436 Redefine to construct HarfBuzz features.
1437 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
1438
1439 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
1440 `y_offset' to adjust `best_y'.
1441
Werner Lembergc9d99472013-12-31 08:16:57 +010014422013-12-31 Werner Lemberg <wl@gnu.org>
1443
Werner Lemberg785f3852013-12-31 09:45:10 +01001444 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
1445
14462013-12-31 Werner Lemberg <wl@gnu.org>
1447
Werner Lembergc9d99472013-12-31 08:16:57 +01001448 [autofit] Fix interface of `af_get_char_index'.
1449
1450 * src/autofit/hbshim.c (af_get_char_index): Return error value.
1451 Add argument for y offset (to be used in a yet-to-come patch).
1452
1453 * src/autofit/hbshim.h, src/autofit/afcjk.c,
1454 src/autofit/aflatin.c: Updated.
1455
Werner Lemberg44aa7e02013-12-30 07:41:22 +010014562013-12-30 Werner Lemberg <wl@gnu.org>
1457
1458 [autofit] Don't combine multiple features into one set.
1459
1460 Combining them, as originally envisioned, would lead to much more
1461 complicated code, as investigations have shown meanwhile. The major
1462 drawback is that we run out of available style slots much earlier.
1463 However, this is only a theoretical issue since we don't support a
1464 large number of scripts currently.
1465
1466 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
1467 a single-element `COVERAGE' macro, sort the elements by the feature
1468 tags, and add entry for `ruby'.
1469
1470 * src/autofit/aftypes.h: Updated.
1471 * src/autofit/hbshim.c: Updated.
1472
Werner Lemberg6af01a02013-12-28 08:55:24 +010014732013-12-28 Werner Lemberg <wl@gnu.org>
1474
Werner Lemberg072dc452013-12-28 12:26:21 +01001475 [autofit] Code shuffling to reduce use of cpp macros.
1476
1477 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1478 Call `af_get_coverage' unconditionally.
1479
1480 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
1481
1482 * src/autofit/hbshim.c (af_get_coverage)
1483 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
1484
1485 * src/autofit/hbshim.h: Provide function declarations
1486 unconditionally.
1487
14882013-12-28 Werner Lemberg <wl@gnu.org>
1489
Werner Lemberg17af5862013-12-28 10:33:01 +01001490 [autofit] Add wrapper function for `FT_Get_Char_Index'.
1491
1492 Yet-to-come changes will provide HarfBuzz functionality for the new
1493 function.
1494
1495 * src/autofit/hbshim.c (af_get_char_index): New function.
1496 * src/autofit/hbshim.h: Updated.
1497
1498 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
1499 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
1500
1501 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
1502 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
1503 Updated.
1504
15052013-12-28 Werner Lemberg <wl@gnu.org>
1506
Werner Lemberg6af01a02013-12-28 08:55:24 +01001507 [autofit] Use `global' HarfBuzz font object.
1508
1509 We now use `hb_font' instead of `hb_face' since yet-to-come changes
1510 need this.
1511
1512 * src/autofit/afglobal.h: Include `hbshim.h'.
1513 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
1514 `hb_font'.
1515
1516 * src/autofit/afglobal.c (af_face_globals_new)
1517 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
1518 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
1519 `hb_font'.
1520
1521 * src/autofit/hbshim.h: Include HarfBuzz headers.
1522
1523 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
1524 headers.
1525 (af_get_coverage): Updated.
1526
Werner Lembergd32a7d32013-12-27 19:26:04 +010015272013-12-27 Werner Lemberg <wl@gnu.org>
1528
1529 [autofit] Handle `DFLT' OpenType script for coverages.
1530
1531 * include/ftautoh.h: Document new `default-script' property.
1532
1533 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
1534 type of first parameter.
1535 (script_tags): Add one more element.
1536 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
1537
1538 * src/autofit/hbshim.h: Updated.
1539
1540 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1541 Updated.
1542
1543 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
1544
1545 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
1546 member.
1547
1548 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
1549 `default-script' property.
1550 (af_autofitter_init): Updated.
1551
suzuki toshiyae2d2b152013-12-27 16:44:24 +090015522013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1553
1554 [ftrfork] Fix the face order difference between POSIX and Carbon.
1555
1556 The fragmented resources in Suitcase and .dfont should be reordered
Werner Lemberg00a7b512013-12-27 19:18:49 +01001557 when `POST' resource for Type1 is being restored, but reordering of
suzuki toshiyae2d2b152013-12-27 16:44:24 +09001558 sfnt resources induces the different face order. Now the ordering
Werner Lemberg00a7b512013-12-27 19:18:49 +01001559 is restricted to `POST' resource only, to prevent the different
1560 order issue (e.g. the face index in the fontconfig cache generated
1561 with Carbon framework is incompatible with that by FreeType 2
1562 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
1563
suzuki toshiyae2d2b152013-12-27 16:44:24 +09001564 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
1565 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
1566
1567 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
Werner Lemberg44aa7e02013-12-30 07:41:22 +01001568 `sort_by_res_id' to control the fragmented resource ordering.
Werner Lemberg00a7b512013-12-27 19:18:49 +01001569 * include/internal/ftrfork.h: Declare new switch.
1570 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
1571 resource, and disable the sorting for `sfnt' resource.
suzuki toshiyae2d2b152013-12-27 16:44:24 +09001572
Werner Lemberg5f577462013-12-25 08:50:50 +010015732013-12-25 Werner Lemberg <wl@gnu.org>
1574
1575 Fix Savannah bug #40997.
1576
1577 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
1578 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
1579 be set.
1580 * src/cff/cffobjs.c (cff_face_init): Ditto.
1581 * src/cid/cidobjs.c (cid_face_init): Ditto.
1582 * src/pcf/pcfread.c (pcf_load_font): Ditto.
1583 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
1584 * src/type1/t1objs.c (T1_Face_Init): Ditto.
1585 * src/type42/t42objs.c (T42_Face_Init): Ditto.
1586 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
1587
Werner Lembergc4e968e2013-12-21 07:23:08 +010015882013-12-21 Werner Lemberg <wl@gnu.org>
1589
Werner Lemberg19241342013-12-21 21:31:38 +01001590 [autofit] Introduce `coverages'.
1591
1592 Coverages are the interface to the HarfBuzz library to acces
1593 OpenType features for handling glyphs not addressable by the cmap.
1594
1595 Right now, compilation of HarfBuzz is only added to the development
1596 build. A solution for standard build mode will be delayed until
1597 HarfBuzz gets split into two libraries to avoid mutual dependencies
1598 between FreeType and HarfBuzz.
1599
1600 Note that this is only a first step in handling coverages, basically
1601 providing the framework only. Code for handling selected OpenType
1602 features (this is, actually using the data in `afcover.h') will
1603 follow.
1604
1605 * devel/ftoption.h, include/config/ftoption.h
1606 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
1607
1608 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
1609 New files.
1610
1611 * src/autofit/afscript.h: Add HarfBuzz script name tags.
1612
1613 * src/autofit/afstyles.h: Add default coverage enumeration values.
1614
1615 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
1616 (AF_Coverage): New enumeration (generated by `afcover.h').
1617 (AF_StyleClassRec): New member `coverage'.
1618 (AF_DEFINE_STYLE_CLASS): Updated.
1619
1620 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
1621 data.
1622
1623 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
1624 (AF_SCRIPT_FALLBACK): Renamed to ...
1625 (AF_STYLE_FALLBACK): ... this.
1626
1627 * src/autofit/afglobal.c: Include `hbshim.c'.
1628 Update use of `SCRIPT' and `STYLE' macros.
1629 (af_face_globals_compute_style_coverage)
1630 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
1631 Update.
1632
1633 * src/autofit/afmodule.h (AF_ModuleRec):
1634 s/fallback_script/fallback_style/.
1635
1636 * src/autofit/afmodule.c (af_property_set): Adapt handling of
1637 `fallback-script' property to set a fallback style.
1638 (af_property_get, af_autofitter_init): Updated.
1639
1640 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
1641
1642 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
1643
1644 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
1645 `hbshim.c'.
1646
1647 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
1648 (AUTOF_DRV_H): Add `afcover.h'.
1649
1650 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
1651 all libraries needed by FreeType.
1652
16532013-12-21 Werner Lemberg <wl@gnu.org>
1654
Werner Lembergb337fa22013-12-21 19:33:15 +01001655 Fix Savannah bug #40975 (sort of).
1656
1657 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
1658 behave the same as the Windows TrueType engine for the invalid case.
1659
16602013-12-21 Werner Lemberg <wl@gnu.org>
1661
Werner Lemberg3bf60952013-12-21 08:49:11 +01001662 [autofit] Make PIC mode work actually.
1663
1664 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
1665 enumeration values automatically generated by including `afscript.h'
1666 and friends.
1667
1668 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
1669
16702013-12-21 Werner Lemberg <wl@gnu.org>
1671
Werner Lembergbd413862013-12-21 08:14:25 +01001672 Fix PIC linking.
1673
1674 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
1675 generated function name.
1676
1677 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
1678 to ...
1679 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
1680 function name correctly corresponds to what the macro framework
1681 expects.
1682
1683 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
1684 that PIC functions are compiled also.
1685
16862013-12-21 Werner Lemberg <wl@gnu.org>
1687
Werner Lembergc4e968e2013-12-21 07:23:08 +01001688 [base] Add missing dependencies to Makefile.
1689
1690 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
1691 (BASE_H): Add `basepic.h'.
1692
Werner Lemberg974b1932013-12-20 17:26:26 +010016932013-12-20 Werner Lemberg <wl@gnu.org>
1694
Werner Lemberg8a8f3752013-12-20 18:35:35 +01001695 [autofit] Fix PIC compilation.
1696
1697 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
1698 src/autofit/aflatin.c (af_latin_metrics_init_widths)
1699 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
1700
1701 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
1702 AF_DEFINE_STYLE_CLASS.
1703
1704 * src/autofit/afpic.c: Include `afglobal.h'.
1705 (autofit_module_class_pic_init): Typo.
1706
1707 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
1708 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
1709 parameter and structure member.
1710
17112013-12-20 Werner Lemberg <wl@gnu.org>
1712
Werner Lemberg974b1932013-12-20 17:26:26 +01001713 [autofit] Introduce `styles'.
1714
1715 This is the new top-level structure for handling glyph input data;
1716 scripts are now defined separately.
1717
1718 * src/autofit/aftypes.h (SCRIPT): Updated.
1719 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
1720 members to ...
1721 (AF_Style_ClassRec): ... this new structure.
1722 (AF_Style): New enumeration.
1723 (AF_StyleMetricsRec): Replace `script' enumeration with
1724 `style_class' pointer.
1725 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
1726 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
1727
1728 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
1729 * src/autofit/afscript.h: Updated.
1730
1731 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
1732 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
1733
1734 * src/autofit/afglobal.c (SCRIPT): Updated.
1735 (STYLE): Redefine macro to load `afstyles.h'.
1736 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
1737 (af_style_names): ... this array.
1738 (af_face_globals_compute_script_coverage): Renamed to...
1739 (af_face_globals_compute_style_coverage): ... this.
1740 Updated.
1741 (af_face_globals_new, af_face_globals_free,
1742 af_face_globals_get_metrics): Updated.
1743
1744 * src/autofit/afglobal.h (SCRIPT): Updated.
1745 (STYLE): Redefine macro to load `afstyles.h'.
1746 (AF_SCRIPT_FALLBACK): Update definition. This will get more
1747 refinements with later on.
1748 (AF_SCRIPT_UNASSIGNED): Replace with...
1749 (AF_STYLE_UNASSIGNED): ... this macro.
1750 (AF_FaceGlobalsRec): Updated.
1751
1752 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
1753 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
1754 af_latin_hint_edges): Updated.
1755
1756 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
1757 (af_ltn2_uniranges): Removed.
1758
1759 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1760 Updated.
1761
1762 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
1763 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
1764 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
1765 members.
1766
1767 * src/autofit/afranges.h: Updated.
1768
1769 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
1770
Werner Lembergd8324572013-12-19 15:45:24 +010017712013-12-19 Werner Lemberg <wl@gnu.org>
1772
1773 [autofit] Factor scripts and uniranges out of writing system files.
1774
1775 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
1776
1777 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
1778 parameters, taking data from the writing system files.
1779
1780 * src/autofit/aftypes.h: Updated.
1781
1782 * src/autofit/afglobal.c: Include `afranges.h'.
1783 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
1784 * src/autofit/afglobal.c: Include `afranges.h'.
1785 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
1786
1787 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
1788 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
1789 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
1790 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
1791 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
1792
1793 * src/autofit/afpic.c: Updated.
1794
1795 * src/autofir/autofit.c: Include `afranges.c'.
1796 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
1797
Werner Lemberg9a354552013-12-18 10:36:06 +010017982013-12-18 Werner Lemberg <wl@gnu.org>
1799
Werner Lemberg73f31982013-12-19 15:24:17 +01001800 [autofit] More code orthogonality.
1801
1802 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
1803 pointer to an `AF_ScriptClass' structure with `script' index of type
1804 `AF_Script'.
1805 Move some code around.
1806
1807 * src/autofit/afcjk.c: Include `afpic.h'.
1808 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
1809 af_cjk_hint_edges): Updated.
1810
1811 * src/autofit/aflatin.c: Include `afpic.h'.
1812 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
1813 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
1814
1815 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
1816
1817 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1818 Updated.
1819
18202013-12-18 Werner Lemberg <wl@gnu.org>
1821
Werner Lemberg3f91cb32013-12-18 12:59:35 +01001822 [autofit] s/ScriptMetrics/StyleMetrics/.
1823
18242013-12-18 Werner Lemberg <wl@gnu.org>
1825
Werner Lemberg4fccc212013-12-18 12:53:01 +01001826 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
1827
18282013-12-18 Werner Lemberg <wl@gnu.org>
1829
Werner Lembergf4df4072013-12-18 10:39:30 +01001830 [autofit] s/gscripts/gstyles/.
1831
18322013-12-18 Werner Lemberg <wl@gnu.org>
1833
Werner Lemberg9a354552013-12-18 10:36:06 +01001834 [autofit] s/glyph_scripts/glyph_styles/.
1835
1836 This is the first commit of a series to create a new top-level
1837 structure (a `style') for handling scripts, writing_systems, and
1838 soon-to-be-added coverages.
1839
Werner Lemberg7a5fc2f2013-12-17 13:29:53 +010018402013-12-17 Werner Lemberg <wl@gnu.org>
1841
1842 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
1843
Infinality8bb09b02013-12-11 09:01:13 +010018442013-12-11 Infinality <infinality@infinality.net>
1845
1846 [truetype] Simplify logic of rendering modes.
1847
1848 This patch unifies the subpixel and non-subpixel cases.
1849
1850 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
1851 `grayscale_hinting'; all code should refer to `grayscale' instead.
1852 Remove unused `native_hinting' member.
1853 Rename `subpixel_hinting' member to `subpixel.
1854
1855 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
1856 (tt_loader_init): Updated.
1857
1858 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
1859 Updated.
1860
Werner Lemberge9d95aa2013-12-11 07:48:51 +010018612013-12-11 Werner Lemberg <wl@gnu.org>
1862
1863 [documentation] Add section how to include FreeType header files.
1864 Problem reported by David Kastrup <dak@gnu.org>.
1865
1866 Surprisingly, a description how to do that was completely missing in
1867 the API reference.
1868
1869 * include/freetype.h, include/ftchapters.h: New documentation
1870 section `header_inclusion'.
1871
Werner Lemberg05c786d2013-12-10 08:38:57 +010018722013-12-10 Werner Lemberg <wl@gnu.org>
1873
Werner Lemberg91932592013-12-10 13:24:07 +01001874 [autofit] s/DFLT/NONE/, s/dflt/none/.
1875
18762013-12-10 Werner Lemberg <wl@gnu.org>
1877
Werner Lemberg45244f82013-12-10 13:18:11 +01001878 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
1879
18802013-12-10 Werner Lemberg <wl@gnu.org>
1881
Werner Lemberg69d1a362013-12-10 10:12:27 +01001882 [truetype] Fix scaling of vertical phantom points.
1883
1884 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
1885 pp4.x also.
1886
18872013-12-10 Werner Lemberg <wl@gnu.org>
1888
Werner Lemberg05c786d2013-12-10 08:38:57 +01001889 [truetype] Fix positioning of composite glyphs.
1890 Problem reported by Nigel Tao <nigeltao@golang.org>.
1891
1892 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
1893 the glyph (component) by a fractional value computed from the LSB
1894 phantom point. This is wrong, since the horizontal phantom points
1895 get rounded horizontally later on.
1896
Werner Lembergdd8050a2013-12-08 23:14:46 +010018972013-12-08 Werner Lemberg <wl@gnu.org>
1898
1899 * Version 2.5.2 released.
1900 =========================
1901
1902
1903 Tag sources with `VER-2-5-2'.
1904
1905 * docs/VERSION.DLL: Update documentation and bump version number to
1906 2.5.2.
1907
1908 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1909 builds/windows/vc2005/index.html,
1910 builds/windows/vc2008/freetype.vcproj,
1911 builds/windows/vc2008/index.html,
1912 builds/windows/vc2010/freetype.vcxproj,
1913 builds/windows/vc2010/index.html,
1914 builds/windows/visualc/freetype.dsp,
1915 builds/windows/visualc/freetype.vcproj,
1916 builds/windows/visualc/index.html,
1917 builds/windows/visualce/freetype.dsp,
1918 builds/windows/visualce/freetype.vcproj,
1919 builds/windows/visualce/index.html,
1920 builds/wince/vc2005-ce/freetype.vcproj,
1921 builds/wince/vc2005-ce/index.html,
1922 builds/wince/vc2008-ce/freetype.vcproj,
1923 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
1924
Werner Lembergec8853c2014-03-06 19:13:45 +01001925 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01001926
1927 * builds/unix/configure.raw (version_info): Set to 17:1:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01001928 * CMakeLists.txt (VERSION_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01001929 * docs/CHANGES: Updated.
1930
Werner Lemberg98d185c2013-12-07 09:26:55 +010019312013-12-07 Werner Lemberg <wl@gnu.org>
1932
1933 [truetype] Next round in phantom point handling.
1934
1935 Greg Hitchcock provided very interesting insights into the
1936 complicated history of the horizontal positions of the TSB and BSB
1937 phantom points.
1938
1939 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
1940 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
1941 `grayscale_hinting' flags as conditionals for the x position of TSB
1942 and BSB.
1943
Werner Lembergfcdb7842013-12-05 15:53:27 +010019442013-12-05 Werner Lemberg <wl@gnu.org>
1945
1946 * builds/freetype.mk (FT_CC): Removed. Unused.
1947
Werner Lemberg64b395c2013-12-04 06:18:56 +010019482013-12-04 Werner Lemberg <wl@gnu.org>
1949
1950 [sfnt] Fix handling of embedded bitmap strikes.
1951
1952 This corrects the commit from 2013-11-21. Problem reported by
1953 Andrey Panov <panov@canopus.iacp.dvo.ru>.
1954
1955 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
1956 detect excessive bytes for bit-aligned bitmaps.
1957
Werner Lembergbdd5e752013-12-03 06:57:02 +010019582013-12-03 Werner Lemberg <wl@gnu.org>
1959
Werner Lembergc2b47532013-12-03 07:01:57 +01001960 [truetype] Remove dead code.
1961
1962 Reported by Nigel Tao <nigeltao@golang.org>.
1963
1964 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
1965 `preserve_pps' field.
1966 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
1967
19682013-12-03 Werner Lemberg <wl@gnu.org>
1969
Werner Lembergbdd5e752013-12-03 06:57:02 +01001970 [truetype] Fix phantom point handling.
1971
1972 This is a further improvement to the changes from 2013-11-06.
1973
1974 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
1975 are rounded horizontally, vertical ones are rounded vertically.
1976 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
1977 points in pre-ClearType mode is zero, as shown in the OpenType
1978 specification.
1979
Werner Lemberg64872a52013-12-02 07:51:17 +010019802013-12-02 Werner Lemberg <wl@gnu.org>
1981
1982 [truetype] Fix change from 2013-11-20.
1983
1984 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
1985
1986 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
1987 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
1988 `IS_HINTED' clause.
1989 Also remove redundant check using `maxSizeOfInstructions' in
1990 simple glyphs, the bytecode data comes before the outline data, and
1991 a validity test for this is already present.
1992
Werner Lemberg52166ab2013-11-27 10:10:16 +010019932013-11-27 Werner Lemberg <wl@gnu.org>
1994
1995 [autofit] Fix use of dumping functions in `ftgrid' demo program.
1996
1997 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
1998 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1999 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
2000 handle output to stdout.
2001 Use AF_DUMP.
2002 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
2003 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
2004
Werner Lemberg3aee4292013-11-25 00:28:11 +010020052013-11-25 Werner Lemberg <wl@gnu.org>
2006
2007 * Version 2.5.1 released.
2008 =========================
2009
2010
2011 Tag sources with `VER-2-5-1'.
2012
2013 * docs/VERSION.DLL: Update documentation and bump version number to
2014 2.5.1.
2015
2016 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
2017 builds/windows/vc2005/index.html,
2018 builds/windows/vc2008/freetype.vcproj,
2019 builds/windows/vc2008/index.html,
2020 builds/windows/vc2010/freetype.vcxproj,
2021 builds/windows/vc2010/index.html,
2022 builds/windows/visualc/freetype.dsp,
2023 builds/windows/visualc/freetype.vcproj,
2024 builds/windows/visualc/index.html,
2025 builds/windows/visualce/freetype.dsp,
2026 builds/windows/visualce/freetype.vcproj,
2027 builds/windows/visualce/index.html,
2028 builds/wince/vc2005-ce/freetype.vcproj,
2029 builds/wince/vc2005-ce/index.html,
2030 builds/wince/vc2008-ce/freetype.vcproj,
2031 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
2032
2033 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
2034
2035 * builds/unix/configure.raw (version_info): Set to 17:0:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01002036 * CMakeLists.txt (VERSION_PATCH): Set to 1.
Werner Lemberg3aee4292013-11-25 00:28:11 +01002037 * docs/CHANGES, docs/release: Updated.
2038
Werner Lemberg9326caf2013-11-23 23:59:25 +010020392013-11-23 Werner Lemberg <wl@gnu.org>
2040
Werner Lemberg063ee6b2013-11-24 00:19:17 +01002041 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
2042
2043 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
2044 TRICK_NAMES_COUNT): Updated.
2045 (trick_names): Add family name for the two fonts.
2046
20472013-11-23 Werner Lemberg <wl@gnu.org>
2048
Werner Lemberg9326caf2013-11-23 23:59:25 +01002049 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
2050
Werner Lemberg427b1762013-11-21 13:10:56 +010020512013-11-21 Werner Lemberg <wl@gnu.org>
2052
Werner Lemberg9326caf2013-11-23 23:59:25 +01002053 [sfnt] Typo.
Werner Lemberg8af2a1c2013-11-21 13:13:12 +01002054
2055 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
2056
2057 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
2058 value if the font lacks an `OS/2' table.
2059
20602013-11-21 Werner Lemberg <wl@gnu.org>
2061
Werner Lemberg64b395c2013-12-04 06:18:56 +01002062 [sfnt] Improve handling of buggy embedded bitmap strikes.
Werner Lemberg427b1762013-11-21 13:10:56 +01002063
2064 We are now able to successfully load `AppleMyoungJo.ttf'.
2065 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
2066
2067 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
2068 format.
2069
Werner Lemberg28626862013-11-20 21:06:18 +010020702013-11-20 Werner Lemberg <wl@gnu.org>
2071
2072 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
2073
2074 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
2075
2076 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
2077
2078 for details.
2079
2080 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
2081 tables also for setting `autohint'.
2082
2083 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
2084 `TT_Process_Composite_Glyph' for handling unreliable values of
2085 `maxSizeOfInstructions'.
2086
Werner Lembergbc25de62013-11-16 07:52:20 +010020872013-11-16 Werner Lemberg <wl@gnu.org>
2088
2089 [sfnt] Fix `OS/2' table version 5 support.
2090
2091 We now follow the `official' announcement from Microsoft (on the
2092 OpenType mailing list, which unfortunately hasn't a public archive).
2093
2094 * include/freetype/tttables.h (TT_OS2):
2095 s/usLowerPointSize/usLowerOpticalPointSize/,
2096 s/usUpperPointSize/usUpperOpticalPointSize/.
2097
2098 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
2099 default values.
2100
Werner Lembergfae38202013-11-13 08:55:46 +010021012013-11-13 Werner Lemberg <wl@gnu.org>
2102
Werner Lembergc52b1292013-11-13 10:06:00 +01002103 * builds/unix/ft2unix.h: Remove. No longer necessary.
2104
2105 * builds/unix/install.mk (install): Updated.
2106
21072013-11-13 Werner Lemberg <wl@gnu.org>
2108
Werner Lembergfae38202013-11-13 08:55:46 +01002109 Simplify header file hierarchy.
2110
2111 This large patch changes the header file directory layout from
2112 `include/freetype/...' to `include/...', effectively removing one
2113 level. Since the file `ft2build.h' is also located in `include'
2114 (and it stays there even after installation), all FreeType header
2115 files are now in a single directory.
2116
2117 Applications that use (a) `freetype-config' or FreeType's
2118 `pkg-config' file to get the include directory for the compiler, and
2119 (b) the documented way for header inclusion like
2120
2121 #include <ft2build.h>
2122 #include FT_FREETYPE_H
2123 ...
2124
2125 don't need any change to the source code.
2126
2127 * include/freetype/*: Move up to...
2128 * include/*: ... this directory.
2129
2130 * builds/amiga/include/freetype/*: Move up to...
2131 * builds/amiga/include/*: ... this directory.
2132
2133 */*: Essentially do `s@/freetype/@/@' where appropriate.
2134
2135 * CMakeList.txt: Simplify.
2136 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
2137 `--cflags', return a single directory.
2138 * builds/unix/install.mk (install): No longer try to remove `cache'
2139 and `internal' subdirectories; instead, remove the `freetype'
2140 subdirectory.
2141
Werner Lembergea5c7812013-11-12 08:55:26 +010021422013-11-12 Werner Lemberg <wl@gnu.org>
2143
2144 [truetype] Fix last `truetype' commit.
2145
2146 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
2147 Return error value.
2148 (load_truetype_glyph): Updated.
2149
Werner Lemberg78333282013-11-10 06:26:52 +010021502013-11-10 Werner Lemberg <wl@gnu.org>
2151
2152 * docs/CMAKE: New dummy file.
2153
Dave Arnolddd213012013-11-08 10:52:51 +010021542013-11-08 Dave Arnold <darnold@adobe.com>
2155
2156 [cff] Fix for hints that touch.
2157
2158 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
2159 finding index value of insertion point.
2160
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +010021612013-11-06 Werner Lemberg <wl@gnu.org>
2162
Werner Lemberg5e225b72013-11-06 08:41:59 +01002163 [truetype] Fix handling of phantom points in composite glyphs.
2164 Problem reported by Nigel Tao <nigeltao@golang.org>.
2165
2166 This is a follow-up commit to the previous one.
2167
2168 * src/truetype/ttgload.c (load_truetype_glyph): Call
2169 `tt_get_metrics' after loading the glyph header.
2170
21712013-11-06 Werner Lemberg <wl@gnu.org>
2172
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +01002173 [truetype] Improve emulation of vertical metrics.
2174
2175 This commit also improves the start values of vertical phantom
2176 points. Kudos to Greg Hitchcock for help.
2177
2178 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
2179 `yMax' value. Replace code with fixed Microsoft definition.
2180 (tt_get_metrics): Updated.
2181 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
2182 points, taken from both the OpenType specification and private
2183 communication with Greg (which will eventually be added to the
2184 standard).
2185 Fix horizontal position of `pp3' and `pp4'.
2186
2187 * src/truetype/ttgload.h: Updated.
2188
2189 * src/truetype/ttdriver.c (tt_get_advances): Updated.
2190
2191 * docs/CHANGES: Updated.
2192
Werner Lembergc6064282013-11-05 13:29:15 +010021932013-11-05 Werner Lemberg <wl@gnu.org>
2194
Werner Lemberg50740532013-11-05 23:19:18 +01002195 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
2196 PlatformToolSet version 110 is for VC2012.
2197
2198 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
2199
22002013-11-05 Werner Lemberg <wl@gnu.org>
2201
Werner Lembergc6064282013-11-05 13:29:15 +01002202 [truetype] Correctly reset point tags for glyph components.
2203 Problem reported by Nigel Tao <nigeltao@golang.org>.
2204
2205 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
2206
Werner Lemberg35b08182013-11-02 08:28:41 +010022072013-11-02 Werner Lemberg <wl@gnu.org>
2208
Werner Lemberg7d449432013-11-02 11:36:37 +01002209 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
2210
2211 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
2212 get info on subpixel hinting.
2213
2214 * docs/CHANGES: Updated.
2215
22162013-11-02 Werner Lemberg <wl@gnu.org>
2217
Werner Lemberg35b08182013-11-02 08:28:41 +01002218 Fix Savannah bug #40451.
2219
2220 Simply apply the patch from the bug report.
2221
2222 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
2223 include/freetype/config/ftconfig.h: The used #pragma directives only
2224 work with gcc versions 4.6 and higher.
2225
Werner Lembergebf52d62013-11-01 13:26:28 +010022262013-11-01 Werner Lemberg <wl@gnu.org>
2227
Werner Lembergafa0d592013-11-01 22:27:27 +01002228 * docs/CHANGES: Updated.
2229
22302013-11-01 Werner Lemberg <wl@gnu.org>
2231
Werner Lembergebf52d62013-11-01 13:26:28 +01002232 [truetype] Minor code refactoring.
2233
2234 Two benefits: The allocated FDEF (and IDEF) array gets slightly
2235 smaller, and the `ttdebug' demo program has access to function
2236 numbers without additional costs.
2237
2238 Fortunately, no changes to FontForge are necessary this is the
2239 only external TrueType debugger I know of, but others may exist and
2240 should check the code accordingly.
2241
2242 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
2243 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
2244 structure.
2245
2246 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
2247 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
2248 Updated.
2249
Werner Lembergee510512013-10-27 07:25:35 +010022502013-10-27 Werner Lemberg <wl@gnu.org>
2251
2252 [sfnt] Implement support for `OS/2' table version 5.
2253
2254 See
2255
2256 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
2257
2258 for the announcement.
2259
2260 * include/freetype/tttables.h (TT_OS2): Add fields
2261 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
2262 this structure only as a pointer through `FT_Get_Sfnt_Table', there
2263 shouldn't be any ABI problems.
2264
2265 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
2266
2267 * docs/CHANGES: Updated.
2268
Werner Lemberg994a8592013-10-24 08:50:34 +020022692013-10-24 Werner Lemberg <wl@gnu.org>
2270
2271 * README.git, docs/CHANGES, docs/INSTALL: Updated.
2272
John Carya0e4a732013-10-24 08:49:08 +020022732013-10-24 John Cary <cary@txcorp.com>
2274
2275 Provide cmake support.
2276
2277 * CMakeLists.txt: New file.
2278
Kenneth Miller4d87ac82013-10-23 20:10:56 +020022792013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
2280 Werner Lemberg <wl@gnu.org>
2281
2282 Provide support for x64 builds in Visual C++ project files.
2283
2284 * src/builds/win32: Renamed to...
2285 * src/builds/windows: This.
2286
2287 * src/builds/windows/vc2010/*: Updated to handle x64 target.
2288
2289 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
2290 appropriate.
2291
Werner Lemberg604838d2013-10-22 01:10:10 +020022922013-10-22 Werner Lemberg <wl@gnu.org>
2293
2294 * src/base/md5.c, src/base/md5.h: Updated to recent version.
2295
2296 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
2297
Werner Lembergdb9159c2013-10-22 10:27:50 +02002298 The canonical URL to get updates for this file is
2299
2300 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
2301
2302 as the author told me in private communication.
2303
Werner Lemberg34efe052013-10-19 21:14:40 +020023042013-10-19 Werner Lemberg <wl@gnu.org>
2305
Werner Lemberg75efc2d2013-10-19 21:46:03 +02002306 [autofit] s/SMALL_TOP/X_HEIGHT/.
2307
2308 * src/autofit/afblue.dat: Updated.
2309
2310 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2311
2312 * src/autofit/aflatin.c, src/autofit/aflatin.h,
2313 src/autofit/atlatin2.c: Updated.
2314
23152013-10-19 Werner Lemberg <wl@gnu.org>
2316
Werner Lemberg34efe052013-10-19 21:14:40 +02002317 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
2318
2319 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2320
Werner Lemberg955f6a82013-10-16 19:47:57 +020023212013-10-16 Werner Lemberg <wl@gnu.org>
2322
Werner Lemberga5f22a92013-10-17 11:08:25 +02002323 [autofit] Add description strings to script entries.
2324
2325 Currently, this is unused.
2326
2327 * src/autofit/afscript.h: Do it.
2328 * src/autofit/afglobal.c, src/autofit/afpic.c,
2329 src/autofit/aftypes.h: Updated.
2330
23312013-10-16 Werner Lemberg <wl@gnu.org>
2332
Werner Lemberg955f6a82013-10-16 19:47:57 +02002333 [autofit] Improve tracing message for extra light flag.
2334
2335 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
2336
Chongyu Zhu41632b52013-10-15 11:40:34 +020023372013-10-15 Chongyu Zhu <lembacon@gmail.com>
2338
2339 [arm] Fix thumb2 inline assembly under LLVM.
2340
2341 When using `ADD' with an immediate operand, the instruction is
2342 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
2343 immediate operand cannot exceed 4095. It will fail to compile with
2344 LLVM.
2345
2346 However, in GCC, due to some legacy compatibility considerations,
2347 `ADD.W' will be automatically emitted when the immediate operand is
2348 larger than 4095.
2349
2350 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
2351 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
2352
2353 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
2354
Werner Lembergb6695242013-10-12 10:33:04 +020023552013-10-12 Werner Lemberg <wl@gnu.org>
2356
2357 [autofit] Improve tracing of `latin' hinter.
2358
2359 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
2360 zone types.
2361 (af_latin_metrics_scale_dim): Report scaling changes due to x height
2362 alignment.
2363 Report scaled stroke width and blue zone values.
2364
Dave Arnolde845a852013-10-03 23:04:29 +020023652013-10-03 Dave Arnold <darnold@adobe.com>
2366
2367 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
2368
Werner Lemberg2c56f2a2013-10-07 22:01:00 +02002369 Note that the old code avoided using a region of the piecewise
2370 linear function where the slope was zero. The recovery was to use a
2371 different section of the function, which produced a different,
2372 incorrect amount of darkening.
2373
Darrell Bellert01af71d2013-10-02 22:04:07 +020023742013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
2375
2376 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
2377
Dave Arnold0b330452013-10-02 11:04:06 +020023782013-10-02 Dave Arnold <darnold@adobe.com>
2379
2380 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
2381
2382 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
2383 is to use a previous darkening amount when producing an unhinted,
2384 unscaled outline. This can cause autohint samples in ftgrid and
2385 ftview to be based on darkened CFF outlines instead of unhinted,
2386 undarkened ones.
2387
Dave Arnold3a2cb0f2013-09-29 16:17:02 +020023882013-09-29 Dave Arnold <darnold@adobe.com>
2389
2390 Fix Savannah bug #39295.
2391
2392 The bug was caused by switching to the initial hintmap (the one in
2393 effect when `moveto' executes) just before drawing the final element
2394 in the charstring. This ensured that the path was closed (in both
2395 Character Space and Device Space). But if the final element was a
2396 curve and if the final hintmap was different enough from the initial
2397 one, then the curve was visibly distorted.
2398
2399 The first part of the fix is to draw the final curve using the final
2400 hintmap as specified by the charstring. This corrects the
2401 distortion but does not ensure closing in Device Space. It may
2402 require the rasterizer to automatically generate an extra closing
2403 line. Depending on the hintmap differences, this line could be from
2404 zero to a couple pixels in length.
2405
2406 The second part of the fix covers the case where the charstring
2407 subpath is closed with an explicit line. We now modify that line's
2408 end point to avoid the distortion.
2409
2410 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
2411 the change are:
2412
2413 25ppem S (98)
2414 24ppem eight (52)
2415 25.5ppem p (85)
2416
2417 Curves at the *end* of a subpath are no longer distorted. However,
2418 some of these glyphs have bad hint substitutions in the middle of a
2419 subpath, and these are not affected.
2420
2421 The patch has been tested with a set of 106 fonts that shipped with
2422 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
2423 Google Fonts. There are 1.5 million glyphs, of which some 20k are
2424 changed with the fix. A sampling of a few hundred of these changes
2425 have been examined more closely, and the changes look good (or at
2426 least acceptable).
2427
2428 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
2429 to indicate that we synthesize a closepath line.
2430
2431 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
2432 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
2433 `lineto' operator) and adjust hint zone.
2434 For synthesized closing lines, use end point in first hint zone.
2435 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
2436 particular, shift the detection of zero-length lines from character
2437 space to device space.
2438 (cf2_glyphpath_closeOpenPath): Remove assertion.
2439 Updated.
2440
Werner Lembergb75a8b82013-09-25 09:46:36 +020024412013-09-25 Werner Lemberg <wl@gnu.org>
2442
2443 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
2444
suzuki toshiyaac0f4452013-09-25 10:57:17 +090024452013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2446
2447 [bdf, pcf] Refuse non-zero face_index.
Werner Lemberg964317e2013-09-25 09:22:40 +02002448
suzuki toshiyaac0f4452013-09-25 10:57:17 +09002449 Suggested by Akira Tagoh, see
2450
2451 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
2452
Werner Lemberg964317e2013-09-25 09:22:40 +02002453 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
2454 error if the font could be opened but non-zero `face_index' is
2455 given.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09002456 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
2457
2458 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
Werner Lemberg964317e2013-09-25 09:22:40 +02002459 macro for `face_index' because it is validated later.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09002460
Werner Lemberg4de77872013-09-23 22:10:08 +020024612013-09-23 Werner Lemberg <wl@gnu.org>
2462
2463 Fix Savannah bug #40090.
2464
2465 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
2466 306f8c5d (from 2013-08-25) affecting this function.
2467
Werner Lemberg5a4c5a52013-09-22 22:37:26 +020024682013-09-22 Werner Lemberg <wl@gnu.org>
2469
2470 [autofit] Disunify Cyrillic and Greek handling from Latin.
2471
2472 * src/autofit/afscript.h: Add Cyrillic and Greek.
2473
2474 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
2475 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
2476 (AF_BLUE_STRINGSET_LATN): Fix typo.
2477 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2478
2479 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
2480 arrays.
2481 (af_grek_script_class, af_cyrl_script_class): New scripts.
2482 * src/autofit/aflatin.h: Updated.
2483
Werner Lemberg2cca9662013-09-20 07:23:34 +020024842013-09-20 Werner Lemberg <wl@gnu.org>
2485
2486 * docs/CHANGES: Updated.
2487
Behdad Esfahbod31e726d2013-09-20 07:20:53 +020024882013-09-20 Behdad Esfahbod <behdad@behdad.org>
2489
2490 Fix vertical size of emboldened glyphs.
2491
2492 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
2493
2494 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
2495 also.
2496
Alexei Podtelezhnikov52381c12013-09-11 23:25:56 -040024972013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2498
2499 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
2500 algorithm description.
2501
Werner Lemberg3f542492013-09-11 23:08:31 +020025022013-09-11 Werner Lemberg <wl@gnu.org>
2503
2504 [autofit] Improve Hebrew rendering.
2505
2506 This change introduces a new blue zone property
2507 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
2508 top segments.
2509
2510 * src/autofit/afblue.dat: Fix Hebrew blue strings.
2511 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
2512
2513 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
2514
2515 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
2516
2517 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
2518 `AF_LATIN_IS_LONG_BLUE'.
2519
2520 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
2521
Werner Lemberg85a7fdf2013-08-29 21:03:05 +020025222013-08-28 Behdad Esfahbod <behdad@google.com>
2523
2524 [sfnt] Fix frame access while reading WOFF table directory.
2525
2526 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
2527 while reading the directory entries for the whole loop.
2528
25292013-08-29 Werner Lemberg <wl@gnu.org>
Werner Lembergd689d1c2013-08-29 17:53:40 +02002530 Behdad Esfahbod <behdad@google.com>
2531
2532 Implement support for WOFF containers.
2533
2534 We simply synthesize a SFNT from the WOFF, create a memory stream
2535 for the new data, and load the SFNT as usual.
2536
2537 Does NOT add any API to access WOFF metadata or private blocks.
2538
2539 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
2540 WOFF_TableRec): New structures.
2541
2542 * include/freetype/tttags.h (TTAG_wOFF): New macro.
2543
2544 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
2545 `open_face'.
2546
2547 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
2548 `FT_GZIP_H'.
2549 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
2550 writing to a stream.
2551 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
2552 (sfnt_open_font): Handle `TTAG_wOFF'.
2553 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
2554
2555 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
2556 `sfnt->init_face'.
2557
2558 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
2559 argument so that a changed stream survives.
2560 Update callers.
2561
25622013-08-28 Werner Lemberg <wl@gnu.org>
Werner Lemberge0f39ae2013-08-28 17:34:01 +02002563
Werner Lembergdc240522013-08-29 17:53:24 +02002564 [gzip] New function `FT_Gzip_Uncompress'.
2565
2566 This is modeled after zlib's `uncompress' function. We need this
2567 for WOFF support.
2568
2569 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
2570 New function.
2571
2572 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
2573
25742013-08-28 Werner Lemberg <wl@gnu.org>
2575
Werner Lemberg5195ecd2013-08-28 17:41:21 +02002576 [autofit] Fix `make multi' compilation.
2577
2578 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
2579 `afblue.h' but `aftypes.h'.
2580 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
2581
25822013-08-28 Werner Lemberg <wl@gnu.org>
2583
Werner Lemberge0f39ae2013-08-28 17:34:01 +02002584 [autofit] Fix C++ compilation.
2585
2586 * src/autofit/afglobal.c (af_face_globals_get_metrics),
2587 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
2588 (af_deva_script_class): Use proper casts.
2589
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +020025902013-08-27 Behdad Esfahbod <behdad@google.com>
2591
Behdad Esfahbodc799dd62013-08-27 21:46:03 +02002592 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
2593
25942013-08-27 Behdad Esfahbod <behdad@google.com>
2595
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +02002596 FT_Open_Face: Improve external stream handling.
2597
2598 If the font's `clazz->init_face' function wants to swap to new
2599 stream, handling of whether original stream was external could
2600 result to either memory leak or double free. Mark externality into
2601 face flags before calling `init_face' such that the clazz can handle
2602 external streams properly.
2603
2604 * src/base/ftobjs.c (FT_Open_Face): Move code to set
2605 FT_FACE_FLAG_EXTERNAL_STREAM to...
2606 (open_face): This function.
2607
Werner Lemberg5e53db22013-08-27 18:37:39 +020026082013-08-27 Werner Lemberg <wl@gnu.org>
2609
Werner Lembergbcd8c0b2013-08-27 21:36:03 +02002610 Remove `FT_SqrtFixed' function.
2611
2612 It's no longer used.
2613
2614 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
2615
26162013-08-27 Werner Lemberg <wl@gnu.org>
2617
Werner Lemberg5e53db22013-08-27 18:37:39 +02002618 [autofit] While tracing, report script names instead of ID values.
2619
2620 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
2621 New array.
2622 * src/autofit/afglobal.h: Updated.
2623
2624 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
2625 af_cjk_hint_edges): Use `af_script_names'.
2626 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
2627 af_latin_hint_edges): Ditto.
2628
Werner Lemberg92f5a042013-08-26 09:22:27 +020026292013-08-26 Werner Lemberg <wl@gnu.org>
2630
Werner Lemberg278f64b2013-08-26 20:20:03 +02002631 [autofit] Report used script while hinting a glyph.
2632
2633 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
2634 (af_latin_hint_edges): Implement it.
2635
26362013-08-26 Werner Lemberg <wl@gnu.org>
2637
Werner Lemberg371f5c32013-08-26 20:11:24 +02002638 [autofit] Add support for Hebrew script.
2639
2640 * src/autofit/afblue.dat: Add blue strings for Hebrew.
2641 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2642
2643 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
2644 (af_hebr_script_class): New script.
2645 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
2646
26472013-08-26 Werner Lemberg <wl@gnu.org>
2648
Werner Lemberg098121d2013-08-26 18:54:05 +02002649 [autofit] Improve tracing messages.
2650
2651 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
2652 ID in tracing message.
2653 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
2654 loop.
2655 Improve tracing messages.
2656 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
2657 `num_actions' to count hinting actions.
2658 Improve tracing messages.
2659
2660 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
2661 script ID in tracing message.
2662 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
2663 messages.
2664
26652013-08-26 Werner Lemberg <wl@gnu.org>
2666
Werner Lembergffee64a2013-08-26 12:55:48 +02002667 Better tracing of loaded glyphs.
2668
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002669 Previously, the loading of a glyph was traced at level 4, if at all.
Werner Lembergffee64a2013-08-26 12:55:48 +02002670 With this change, all font loading routines emit a tracing message
2671 at level 1, making it easier to select tracing output (for example
2672 using F2_DEBUG="any:1 afhints:7 aflatin:7").
2673
2674 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
2675 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
2676 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
2677 messages.
2678 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
2679 message.
2680 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
2681 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
2682 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
2683 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
2684 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
2685 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
2686
26872013-08-26 Werner Lemberg <wl@gnu.org>
2688
Werner Lemberg33655a92013-08-26 09:58:50 +02002689 [autofit] Fix script selection.
2690
2691 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
2692 `AF_SCRIPT_DFLT', not value 0.
2693 Simplify code.
2694
2695 * src/autofit/afscript.h: Sort by script name.
2696
26972013-08-26 Werner Lemberg <wl@gnu.org>
2698
Werner Lemberg92f5a042013-08-26 09:22:27 +02002699 [autofit] Make `dummy' hinter work as expected.
2700
2701 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
2702 information.
2703 (af_dummy_hints_apply): Scale the glyphs.
2704
Werner Lemberg8b8be782013-08-25 08:01:41 +020027052013-08-25 Werner Lemberg <wl@gnu.org>
2706
Werner Lembergc1eb4452013-08-25 19:47:26 +02002707 [autofit] Make `cjk' module use blue stringsets.
2708
2709 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
2710 (af_cjk_hani_blue_chars): Removed.
2711 (AF_CJK_BLUE_TYPE_*): Removed.
2712 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
2713 AF_BLUE_STRING_MAX_LEN.
2714 Change loops to use offsets (in file `afblue.h') into the new arrays
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002715 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
Werner Lembergc1eb4452013-08-25 19:47:26 +02002716 Instead of three dimensions (as used in the old blue string array)
2717 we now use properties to do the same, saving one loop nesting level.
2718
2719 * src/autofit/afcjk.h: Remove old enumeration values superseded by
2720 the new data in `afblue.h'.
2721 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
2722 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
2723 `af_cjk_metrics_init_blues'.
2724 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
2725 (AF_CJK_BLUE_IS_TOP): Renamed to...
2726 (AF_CJK_BLUE_TOP): This.
2727 (AF_CJK_MAX_BLUES): Remove.
2728 (AF_CJKAxisRec): Updated.
2729
27302013-08-25 Werner Lemberg <wl@gnu.org>
2731
Werner Lemberg5c4a23a2013-08-25 19:29:07 +02002732 [autofit] Typo.
2733
2734 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
2735 cast.
2736
27372013-08-25 Werner Lemberg <wl@gnu.org>
2738
Werner Lemberg306f8c52013-08-25 13:07:08 +02002739 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
2740
2741 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
2742 messages.
2743 (af_cjk_metrics_init_blues): Don't pass blue string array as
2744 argument but use the global array directly.
2745 Use `outline' directly.
2746 Update and add tracing messages.
2747 (af_cjk_metrics_init): Simplify code.
2748 (af_cjk_metrics_scale_dim): Improve tracing message.
2749 (af_cjk_metrics_scale): Synchronize.
2750
2751 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
2752 af_latin_metrics_init_blues): Improve and add tracing messages.
2753
27542013-08-25 Werner Lemberg <wl@gnu.org>
2755
Werner Lemberg0975d682013-08-25 08:37:47 +02002756 [autofit] Make `latin' module use blue stringsets.
2757
2758 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
2759 (af_latin_blue_chars): Removed.
2760 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
2761 with AF_BLUE_STRING_MAX_LEN.
2762 Change loops to use offsets (in file `afblue.h') into the new arrays
2763 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
2764 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
2765
2766 * src/autofit/aflatin.h: Remove old enumeration values superseded by
2767 the new data in `afblue.h'.
2768 (AF_LATIN_IS_TOP_BLUE): Updated definition.
2769 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
2770 (AF_LATIN_MAX_BLUES): Remove.
2771 (AF_LatinAxisRec): Updated.
2772
27732013-08-25 Werner Lemberg <wl@gnu.org>
2774
Werner Lembergdb3e5b92013-08-25 08:23:22 +02002775 [autofit] Add blue stringsets.
2776
2777 * src/autofit/aftypes.h: Include `afblue.h'.
2778 (AF_ScriptClassRec): Add `blue_stringset' field.
2779 (AF_DEFINE_SCRIPT_CLASS): Updated.
2780
2781 * src/autofit/autofit.c: Include `afblue.c'.
2782
2783 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
2784 (af_dflt_script_class), src/autofit/afindic.c
2785 (af_deva_script_class), src/autofit/aflatin.c
2786 (af_latn_script_class), src/autofit/aflatin2.c
2787 (af_ltn2_script_class): Updated.
2788
2789 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
2790
27912013-08-25 Werner Lemberg <wl@gnu.org>
2792
Werner Lemberg8b8be782013-08-25 08:01:41 +02002793 [autofit] Introduce data file for blue strings.
2794
2795 The idea is to have a central file which gets processed by a Perl
2796 script to create proper `.c' and `.h' files using templates. There
2797 are two other reasons to do that:
2798
2799 . The data file should be easily readable. We use UTF-8 encoding
2800 which then gets converted to single bytes.
2801
2802 . Since the number of supported scripts will increase soon, the
2803 current usage of blue string arrays is a waste of space. Using
2804 the Perl script it is possible to imitate jagged arrays,
2805 defining enumeration constants as offsets into the arrays.
2806
2807 This commit only adds files without changing any functionality.
2808
2809 * src/autofit/afblue.dat: New data file.
2810 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
2811
2812 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
2813 for...
2814 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
2815 To avoid a dependency on Perl, we add them too.
2816
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -040028172013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2818
Werner Lemberg71c0ad62013-08-27 21:30:09 +02002819 [base] Enable new algorithm for `BBox_Cubic_Check'.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04002820
Werner Lemberg71c0ad62013-08-27 21:30:09 +02002821 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
2822 the old one.
2823 Improve comments.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04002824
Werner Lemberg6bfa2632013-08-18 18:34:05 +020028252013-08-18 Werner Lemberg <wl@gnu.org>
2826
Werner Lemberg4af44442013-08-18 18:46:30 +02002827 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
2828
28292013-08-18 Werner Lemberg <wl@gnu.org>
2830
Werner Lemberg6bfa2632013-08-18 18:34:05 +02002831 Fix Savannah bug #39804.
2832
2833 * builds/unix/configure.raw (LIBPNG): Define and export.
2834 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
2835 libpng.
2836
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -040028372013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
2838
2839 [base] Clean up BBox_Conic_Check.
2840
2841 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
2842 extremum at the segment ends, which are already within the bbox.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002843 Slightly modify calculations.
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -04002844
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -040028452013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2846
2847 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
2848
2849 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002850 accuracy and avoid overflows.
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04002851
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -040028522013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
2853
2854 [base] Refactor experimental (disabled) BBox_Cubic_Check.
2855
2856 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04002857 as the mirror image of the maximum search implemented here...
2858 (update_max): New function.
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -04002859
John Tytgat9bcfab82013-08-06 08:55:19 +020028602013-08-06 John Tytgat <John.Tytgat@esko.com>
2861
2862 Fix Savannah bug #39702.
2863
2864 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
2865 != 0'; this stronger test is mandated by the CFF specification.
2866 Fix test for INDEX structures which have one or more empty entries
2867 at the end.
2868
Werner Lembergcc25e3a2013-08-05 08:46:15 +020028692013-08-05 Werner Lemberg <wl@gnu.org>
2870
Werner Lemberga32682f2013-08-06 00:21:46 +02002871 Fix gcc pragmas, part 2.
2872
2873 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
2874 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
2875 introduced with gcc version 4.6.
2876
28772013-08-05 Werner Lemberg <wl@gnu.org>
2878
Werner Lemberg69e524d2013-08-05 23:38:32 +02002879 Fix gcc pragmas.
2880
2881 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
2882 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
2883 pragmas within a function body.
2884
28852013-08-05 Werner Lemberg <wl@gnu.org>
2886
Werner Lemberg9e6de362013-08-05 16:37:21 +02002887 Fix Savannah bug #39700.
2888
2889 * builds/unix/ftconfig.h: Synchronize with
2890 `include/freetype/config/ftconfig.h'.
2891
2892 * builds/vms/ftconfig.h: Ditto.
2893 Make the differences to the master `ftconfig.h' file as small as
2894 possible for easier maintainance.
2895
28962013-08-05 Werner Lemberg <wl@gnu.org>
2897
Werner Lembergcc25e3a2013-08-05 08:46:15 +02002898 [autofit] Improve handling of `near' points.
2899
2900 Points which are very near to each other are now marked as such.
2901 The `weak' flag is then computed by using the `in' vector of the
2902 first and the `out' vector of the last point of a group of near
2903 points.
2904
2905 For example, this fixes the rendering of glyph `Oslash' in
2906 `Roboto-Thin.ttf'.
2907
2908 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
2909
2910 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
2911 the heuristic value `near_limit' to decide whether the current point
2912 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
2913 Store good `in' vector (of last non-near point) in
2914 `last_good_in_{x,y}' and use it as an argument to
2915 `ft_corner_is_flat' if necessary.
2916
Werner Lemberg74a9b672013-08-02 14:53:32 +020029172013-08-02 Werner Lemberg <wl@gnu.org>
2918
Werner Lemberg0d28a7d2013-08-02 22:59:43 +02002919 * include/freetype/ftcffdrv.h: Improve documentation.
2920 This is based on blog entries from David Lemon and Dave Arnold (both
2921 from Adobe) with kind permission. Dave also helped in
2922 proof-reading.
2923
29242013-08-02 Werner Lemberg <wl@gnu.org>
2925
Werner Lemberg456cc442013-08-02 20:25:21 +02002926 [autofit] Move declaration of scripts into separate file.
2927
2928 This has the benefit that we don't need to duplicate the data at
2929 different places.
2930
2931 * src/autofit/afscript.h: New file.
2932
2933 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
2934 the enumeration values.
2935
2936 * src/autofit/afglobal.c: Include `afscript.h' to get the script
2937 specific header files.
2938 (af_script_classes): Include `afscript.h' to fill this array.
2939
2940 * src/autofit/afpic.c: Include `afscript.h' to get the script
2941 specific header files.
2942 (autofit_module_class_pic_init): Include `afscript.h' for
2943 initialization.
2944 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
2945 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
2946
2947 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
2948
29492013-08-02 Werner Lemberg <wl@gnu.org>
2950
Werner Lemberg773601d2013-08-02 19:51:17 +02002951 [autofit] Move declaration of writing systems into separate file.
2952
2953 This has the benefit that we don't need to duplicate the data at
2954 different places.
2955
2956 * src/autofit/afwrtsys.h: New file.
2957
2958 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
2959 define the enumeration values.
2960
2961 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
2962 system specific header files.
2963 Include `afpic.h'.
2964 (af_writing_system_classes): Include `afwrtsys.h' to fill this
2965 array.
2966
2967 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
2968 system specific header files.
2969 (autofit_module_class_pic_init): Include `afwrtsys.h' for
2970 initialization.
2971 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
2972 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
2973 `AF_WRITING_SYSTEM_MAX' instead.
2974
29752013-08-02 Werner Lemberg <wl@gnu.org>
2976
Werner Lemberg74a9b672013-08-02 14:53:32 +02002977 [sfnt] Fix compilation with g++.
2978
2979 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
2980 cast.
2981 (Load_SBit_Png): Pacify compiler.
2982
Werner Lemberg89a529f2013-08-02 14:50:23 +020029832013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2984 Werner Lemberg <wl@gnu.org>
2985
2986 [autofit] Fix `make multi'.
2987
2988 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
2989 FT_LOCAL_ARRAY_DEF): New macros.
2990
2991 * src/autofit/afglobal.c (af_writing_system_classes,
2992 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
2993 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
2994 `af_script_classes'.
2995 * src/autofit/afloader.c: Include `afpic.h'.
2996
Werner Lemberge8ed2d62013-08-01 12:20:20 +020029972013-08-01 Werner Lemberg <wl@gnu.org>
2998
2999 Another round of cppcheck nitpicks.
3000
3001 The call was (from the top-level of the FreeType tree):
3002
3003 cppcheck --force \
3004 --enable=all \
3005 -I /usr/include \
3006 -I /usr/local/include \
3007 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
3008 -I include \
3009 -I include/freetype \
3010 -I include/freetype/config \
3011 -I include/freetype/internal \
3012 -DFT2_BUILD_LIBRARY \
3013 . &> cppcheck.log
3014
3015 using cppcheck git commit f7e93f99.
3016
3017 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
3018 macro).
3019
3020 */* Improve variable scopes.
3021 */* Remove redundant initializations which get overwritten.
3022
3023 * src/gxvalid/*: Comment out redundant code or guard it with
3024 FT_DEBUG_LEVEL_TRACE.
3025
Werner Lemberg5d6a3602013-07-30 23:17:04 +020030262013-07-30 Werner Lemberg <wl@gnu.org>
3027
Werner Lemberg72f5ff52013-07-31 22:49:29 +02003028 [autofit] Introduce `writing systems'.
3029
3030 This patch adds a new top level to the auto-hinter's script class
3031 hierarchy. It defines `writing systems' which can contain multiple
3032 scripts.
3033
3034 For example, the `latin' writing system (in file `aflatin.c') is
3035 able to support scripts like Latin, Cyrillic, Armenian, etc., which
3036 can be handled similarly.
3037
3038 Scripts are now named using four-letter OpenType tags.
3039
3040 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
3041 to...
3042 (AF_WritingSystemClassRec): This new structure. It holds pointers
3043 to functions which can be shared among related scripts.
3044 (AF_WritingSystem): New enumeration.
3045 (AF_Script): Revised values using four-letter tags.
3046 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
3047 (AF_DEFINE_SCRIPT_CLASS): Updated.
3048
3049 * src/autofit/afglobal.c (af_writing_system_classes): New global,
3050 constant array.
3051 (af_script_classes): Updated.
3052 (af_face_globals_free): Updated.
3053 Remove assertion.
3054 (af_face_globals_get_metrics): Updated.
3055
3056 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
3057 [!AF_CONFIG_OPTION_CJK]: Handle this case.
3058
3059 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
3060 Updated.
3061
3062 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
3063 initialize structures for both writing systems and scripts.
3064 * src/autofit/afpic.h: Updated.
3065 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
3066
3067 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
3068 system.
3069 (af_cjk_uniranges): Renamed to...
3070 (af_hani_uniranges): This.
3071 (af_cjk_script_class): Reduced and renamed to...
3072 (af_hani_script_class): This.
3073 * src/autofit/afcjk.h: Updated.
3074
3075 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
3076 system.
3077 (af_dummy_script_class): Reduced and renamed to...
3078 (af_dflt_script_class): This.
3079 * src/autofit/afdummy.h: Updated.
3080
3081 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
3082 system.
3083 (af_indic_uniranges): Renamed to...
3084 (af_deva_uniranges): This.
3085 (af_indic_script_class): Reduced and renamed to...
3086 (af_deva_script_class): This.
3087 * src/autofit/afcjk.h: Updated.
3088
3089 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
3090 system.
3091 (af_latin_uniranges): Renamed to...
3092 (af_latn_uniranges): This.
3093 (af_latin_script_class): Reduced and renamed to...
3094 (af_latn_script_class): This.
3095 * src/autofit/aflatin.h: Updated.
3096
3097 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
3098 writing system.
3099 (af_latin2_uniranges): Renamed to...
3100 (af_ltn2_uniranges): This.
3101 Synchronize ranges with `latin'.
3102 (af_latin2_script_class): Reduced and renamed to...
3103 (af_ltn2_script_class): This.
3104 * src/autofit/aflatin2.h: Updated.
3105
31062013-07-30 Werner Lemberg <wl@gnu.org>
3107
Werner Lemberg5d6a3602013-07-30 23:17:04 +02003108 [autofit] Variable renaming.
3109
3110 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
3111 s/clazz/script_class/.
3112 Update all users.
3113
suzuki toshiya2b29ed62013-07-30 13:55:29 +090031142013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3115
3116 Ignore libpng-config under cross-building configuration,
3117 because it will return the flags for the hosting environment.
3118
3119 * builds/unix/configure.raw: Ignore libpng-config when
3120 `cross_compiling' == yes.
3121
suzuki toshiyaf2e7f1e2013-07-30 13:32:57 +090031222013-07-30 Behdad Esfahbod <behdad@google.com>
3123
3124 Prevent division by zero by a transparent color.
3125
3126 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
3127 Return 0 immediately, when alpha channel is zero.
3128
Behdad Esfahbod21c32b02013-07-25 21:53:18 +020031292013-07-25 Behdad Esfahbod <behdad@google.com>
3130
3131 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
3132
3133 Also disambiguate Google's color bitmap tables.
3134
3135 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
3136 New macros.
3137
3138 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
3139 TT_SBIT_TABLE_TYPE_CBLC.
3140
3141 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
3142
3143 * src/sfnt/ttsbit.c (tt_face_load_sbit,
3144 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
3145 TT_SBIT_TABLE_TYPE_CBLC.
3146
suzuki toshiyab4725cb2013-07-24 14:25:39 +090031472013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3148
3149 [sfnt] Fix for `make multi' target.
3150
3151 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
3152
Werner Lemberg6a7df622013-07-20 10:48:37 +020031532013-07-20 Werner Lemberg <wl@gnu.org>
3154
3155 * docs/INSTALL.GNU: Updated.
3156
Behdad Esfahbodff269522013-07-20 08:02:39 +020031572013-07-20 Behdad Esfahbod <behdad@google.com>
3158
3159 [sfnt] Fix `sbix' table version handling.
3160
3161 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
3162 USHORT version numbers are to be considered as `minor'.
3163
Werner Lemberg05c14212013-07-19 23:11:23 +020031642013-07-19 Werner Lemberg <wl@gnu.org>
3165
3166 [autofit] Fix segment classification for blue zones.
3167
3168 The old code (essentially unchanged since the very beginning)
3169 incorrectly handled this configuration
3170
3171 x -o- x
3172 / \
3173 / \
3174 / \
3175 o o
3176
3177 as flat and this
3178
3179 o o
3180 / /
3181 x| x|
3182 | |
3183 o---------------o
3184
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003185 as round. (`o' and `x' are on and off points, respectively).
Werner Lemberg05c14212013-07-19 23:11:23 +02003186
3187 This is a major change which should improve the rendering results
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003188 enormously for many TrueType fonts, especially in the range approx.
Werner Lemberg05c14212013-07-19 23:11:23 +02003189 20-40ppem, fixing the appearance of many overshoots.
3190
3191 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
3192 first and last points of the segment, not the points right before
3193 and after.
3194
31952013-07-19 Behdad Esfahbod <behdad@google.com>
Werner Lemberg01705392013-07-18 13:13:12 +02003196
Behdad Esfahbod778a7e62013-07-19 14:28:28 +02003197 [sfnt] `sbix' fix-ups.
3198
3199 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
3200 are rendered scaled and then the `glyf' outline rendered on top. We
3201 don't support that yet, so just ignore the `glyf' outline and
3202 advertise it as a bitmap-only font.
3203
3204 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
3205 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
3206 (tt_face_load_sbix_image): Typo.
3207
32082013-07-18 Behdad Esfahbod <behdad@google.com>
3209
Werner Lemberg01705392013-07-18 13:13:12 +02003210 [sfnt] Add support for Apple's `sbix' color bitmap table.
3211
3212 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
3213 fields to FT_Short and FT_UShort, respectively.
3214 (TT_SBitTableType): New enumeration.
3215 (TT_FaceRec): Add `sbit_table_type' field.
3216
3217 * include/freetype/tttags.h (TTAG_sbix): New macro.
3218
3219 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
3220 FT_GlyphSlot argument instead FT_Bitmap.
3221 Add flag to control map and metrics handling.
3222 Update all users.
3223
3224 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
3225 (tt_face_load_eblc): Renamed to...
3226 (tt_face_load_sbit): This.
3227 Handlic `sbix' bitmaps.
3228 (tt_face_free_eblc): Renamed to...
3229 (tt_face_load_sbit): This.
3230 Updated.
3231 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
3232 (tt_face_load_sbix_image): New function.
3233 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
3234 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
3235 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
3236 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
3237 and handle load flags.
3238 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
3239 handle formats 17-19.
3240 Move color to grayscale conversion to...
3241 (tt_face_load_sbit_image): Here.
3242 Handle `sbix' bitmaps.
3243
3244 * src/sfnt/pngshim.h: Updated.
3245 * src/sfnt/ttsbit.h: Updated.
3246 * src/sfnt/sfdriver.c: Updated.
3247
Werner Lemberg274207e2013-07-18 12:38:57 +020032482013-07-18 Werner Lemberg <wl@gnu.org>
3249
3250 [sfnt] Ignore invalid magic number in `head' or `bhed'.
3251
3252 Other font engines seem to ignore it also. Problem reported by
3253 Hin-Tak Leung <htl10@users.sourceforge.net>.
3254
3255 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
3256 we have an invalid magic number.
3257
Werner Lemberg9a7951d2013-07-16 15:25:24 +020032582013-07-16 Werner Lemberg <wl@gnu.org>
3259
3260 [smooth] Fix segfault caused by previous commit.
3261
3262 * src/smooth/ftgrays.c (gray_set_cell): Always compute
3263 `ras.invalid'.
3264
David Turnera5f33ee2013-07-16 12:40:03 +020032652013-07-16 David Turner <digit@google.com>
3266
David Turner89929ec2013-07-16 13:36:07 +02003267 [smooth] Improve performance.
3268
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003269 Provide a work-around for an ARM-specific performance bug in GCC.
David Turner89929ec2013-07-16 13:36:07 +02003270 This speeds up the rasterizer by more than 5%.
3271
3272 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
3273 also improves performance on other platforms by a tiny bit (<1%).
3274
3275 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
3276 Use it where appropriate.
3277
3278 (gray_record_cell, gray_set_cell, gray_move_to,
3279 gray_convert_glyph_inner): Streamline condition handling.
3280
32812013-07-16 David Turner <digit@google.com>
3282
David Turnerf66d48e2013-07-16 13:18:00 +02003283 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
3284
3285 This patch provides slightly optimized versions for ARM, x86, and
3286 x86_64 CPUs if built with GCC.
3287
3288 Also remove some dead code.
3289
3290 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
3291 TT_DotFix14_long_long): New functions.
3292
32932013-07-16 David Turner <digit@google.com>
3294
David Turnerb2890882013-07-16 12:52:18 +02003295 Optimize FT_MulFix for x86_64 GCC builds.
3296
3297 This patch provides an optimized `FT_MulFix' implementation for
3298 x86_64 machines when FreeType is built with GCC, or compatible
3299 compilers like Clang.
3300
3301 Example:
3302 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
3303
3304 Before:
3305
3306 Load 4.863 us/op
3307 Load_Advances (Normal) 4.816 us/op
3308 Load_Advances (Fast) 0.028 us/op
3309 Render 2.753 us/op
3310 Get_Glyph 0.463 us/op
3311 Get_CBox 0.077 us/op
3312 Get_Char_Index 0.023 us/op
3313 Iterate CMap 13.898 us/op
3314 New_Face 12.368 us/op
3315 Embolden 0.028 us/op
3316 Get_BBox 0.302 us/op
3317
3318 After:
3319
3320 Load 4.617 us/op
3321 Load_Advances (Normal) 4.645 us/op
3322 Load_Advances (Fast) 0.027 us/op
3323 Render 2.789 us/op
3324 Get_Glyph 0.460 us/op
3325 Get_CBox 0.077 us/op
3326 Get_Char_Index 0.024 us/op
3327 Iterate CMap 13.403 us/op
3328 New_Face 12.278 us/op
3329 Embolden 0.028 us/op
3330 Get_BBox 0.301 us/op
3331
3332 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
3333 (FT_MulFix_x86_64): New function.
3334
33352013-07-16 David Turner <digit@google.com>
3336
David Turnera5f33ee2013-07-16 12:40:03 +02003337 Speed up ARMv7 support.
3338
3339 When building for ARMv7 with thumb2 instructions, the optimized
3340 `FT_MulFix_arm' assembly routine was not being used.
3341
3342 The reason for this is in the `ftconfig.h' header, namely:
3343
3344 - The assembly routine uses the `smull' instruction which is not
3345 available when generating Thumb-1 machine code. It is available
3346 in Thumb-2 mode, though.
3347
3348 - The header was written a long time ago before Thumb-2 became
3349 widely popular (e.g. with Android). So it simply doesn't use the
3350 assembly routine if the `__thumb__' built-in macro is defined.
3351
3352 - When compiling in Thumb-2 mode, the compiler will define both
3353 `__thumb__' and `__thumb2__'.
3354
3355 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
3356 assembly routine is only avoided when generating Thumb-1 code.
3357
3358 Given that this is performance-sensitive function, this improves
3359 `ftbench' as follows on a Galaxy Nexus:
3360
3361 Before (us/op) After (us/op)
3362
3363 - loading Arial.ttf glyphs at 14 ppem [1]
3364
3365 Load 34.285 33.098
3366
3367 - same operation with the light auto-hinter [2]
3368
3369 Load 31.317 29.590
3370
3371 - same operation without hinting [3]
3372
3373 Load 6.143 5.376
3374
3375 - loading Arial.ttf advances at 14 ppem [4]
3376
3377 Load_Advances (normal) 34.216 33.016
3378 Load_Advances (fast) 0.176 0.176
3379
3380 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
3381 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
3382 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
3383 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
3384
3385 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
3386 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
3387
Werner Lemberge12fc772013-06-28 07:57:32 +020033882013-06-28 Werner Lemberg <wl@gnu.org>
3389
3390 * docs/CHANGES: Updated.
3391
Werner Lemberg680c1d42013-06-27 17:21:59 +020033922013-06-27 Werner Lemberg <wl@gnu.org>
3393
3394 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
3395
Werner Lembergc7cc9eb2013-06-25 07:24:02 +020033962013-06-25 Werner Lemberg <wl@gnu.org>
3397
Werner Lembergb8850fc2013-06-26 12:22:10 +02003398 [cff] Add darkening limit to `darkening-parameters'.
3399
3400 * src/cff/cffdrivr.c (cff_property_set): Add check.
3401
34022013-06-25 Werner Lemberg <wl@gnu.org>
3403
Werner Lemberg89ca1fd2013-06-25 23:28:02 +02003404 [cff] Add `darkening-parameters' property.
3405
3406 * include/freetype/ftcffdrv.h: Document it.
3407
3408 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
3409 `darkening-parameters' property.
3410
3411 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
3412
3413 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
3414 argument and use it.
3415 Update all callers.
3416
3417 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
3418 `darken_params' values.
3419
3420 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
3421
3422 * src/cff/cffobjs.c (cff_driver_init): Set default values for
3423 `darken_params'.
3424
34252013-06-25 Werner Lemberg <wl@gnu.org>
3426
Werner Lembergfad93262013-06-25 10:41:37 +02003427 [docmaker] Code shuffling.
3428
3429 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
3430 * src/tools/docmaker/sources.py: ... to this file.
3431
34322013-06-25 Werner Lemberg <wl@gnu.org>
3433
Werner Lemberg8bdc4072013-06-25 10:20:53 +02003434 [docmaker] Remove unused functions.
3435
3436 * src/tools/docmaker/content.py (DocMarkup.get_start,
3437 DocBlock.get_markup_name): Removed.
3438 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
3439 HtmlFormatter.make_html_words): Removed.
3440
34412013-06-25 Werner Lemberg <wl@gnu.org>
3442
Werner Lembergffb8b472013-06-25 09:09:30 +02003443 * builds/freetype.mk (dll): Remove target.
3444
3445 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
3446
34472013-06-25 Werner Lemberg <wl@gnu.org>
3448
Werner Lembergc7cc9eb2013-06-25 07:24:02 +02003449 [docmaker] Recognise URLs.
3450
3451 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
3452 (make_html_para): Use it.
3453
Werner Lemberg25b7da52013-06-19 10:23:36 +020034542013-06-19 Werner Lemberg <wl@gnu.org>
3455
Werner Lembergfe4f5712013-06-19 23:27:47 +02003456 * Version 2.5.0.1 released.
3457 ===========================
3458
3459
3460 Tag sources with `VER-2-5-0-1'.
3461
3462 * include/freetype/config/ftoption.h: Undefine
3463 CFF_CONFIG_OPTION_OLD_ENGINE.
3464 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
3465
34662013-06-19 Werner Lemberg <wl@gnu.org>
3467
Werner Lemberg609f0ca2013-06-19 14:41:47 +02003468 * builds/unix/install.mk (install): Don't create `cache' directory.
3469
3470 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
3471
34722013-06-19 Werner Lemberg <wl@gnu.org>
3473
Werner Lemberg25b7da52013-06-19 10:23:36 +02003474 * Version 2.5.0 released.
3475 =========================
3476
3477
3478 Tag sources with `VER-2-5-0'.
3479
3480 * docs/VERSION.DLL: Update documentation and bump version number to
3481 2.5.0.
3482
3483 * README, Jamfile (RefDoc),
3484 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
3485 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
3486 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
3487 builds/win32/visualc/freetype.dsp,
3488 builds/win32/visualc/freetype.vcproj,
3489 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
3490 builds/win32/visualce/freetype.vcproj,
3491 builds/win32/visualce/index.html,
3492 builds/wince/vc2005-ce/freetype.vcproj,
3493 builds/wince/vc2005-ce/index.html,
3494 builds/wince/vc2008-ce/freetype.vcproj,
3495 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
3496
3497 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
3498 (FREETYPE_PATCH): Set to 0.
3499
3500 * builds/unix/configure.raw (version_info): Set to 16:2:10.
3501
3502 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
3503 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
3504
Werner Lembergf56691a2013-06-18 10:17:48 +020035052013-06-18 Werner Lemberg <wl@gnu.org>
3506
3507 Fix Savannah bug #39269.
3508
3509 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
3510 case of reacollocation failures.
3511
Andrew Church67cf7a82013-06-18 09:35:34 +020035122013-06-18 Andrew Church <achurch+savannah@achurch.org>
3513
3514 Fix Savannah bug #39266.
3515
3516 If memory allocations fail at certain points while opening a font,
3517 FreeType can either crash due to a NULL dereference or leak memory.
3518
3519 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
3520 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
3521 FT_Open_Face() fails in a memory allocation before the face's
3522 reference count is set to 1, a subsequent `FT_Done_Library' call
3523 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
3524 the face.
3525
3526 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
3527 earlier.
3528 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
3529 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
3530
35312013-06-14 Werner Lemberg <wl@gnu.org>
Werner Lembergd7e34442013-06-14 18:33:39 +02003532
3533 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
3534
Dave Arnoldcb23a622013-06-13 07:46:32 +020035352013-06-06 Dave Arnold <darnold@adobe.com>
3536 Werner Lemberg <wl@gnu.org>
3537
3538 [cff] Add code to Adobe's engine to handle ppem > 2000.
3539
3540 * src/cff/cffgload.c (cff_slot_load): If we get
3541 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
3542
Andrew Church67cf7a82013-06-18 09:35:34 +020035432013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg25b6e602013-06-12 11:06:34 +02003544
Werner Lemberg294ce112013-06-12 23:33:11 +02003545 Another try on pragmas.
3546
3547 * include/freetype/internal/ftdebug.h: Move pragmas to...
3548 * include/freetype/internal/internal.h: ... this file since it gets
3549 included by all source files.
3550 * include/freetype/internal/ftserv.h: Remove pragma which has no
3551 effect.
3552
Dave Arnoldcb23a622013-06-13 07:46:32 +020035532013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg294ce112013-06-12 23:33:11 +02003554
Werner Lemberg25b6e602013-06-12 11:06:34 +02003555 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
3556
3557 This partially undoes commit 3f6e0e0c.
3558
Werner Lembergc06889e2013-06-12 10:58:06 +020035592013-06-12 Werner Lemberg <wl@gnu.org>
3560
3561 More compiler warning fixes.
3562
3563 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
3564
Werner Lemberg99e60d82013-06-10 01:44:37 +020035652013-06-10 Werner Lemberg <wl@gnu.org>
3566
Werner Lemberg5e094c62013-06-10 14:59:21 +02003567 [truetype] Improve handling of broken sbit advance widths.
3568
3569 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
3570 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
3571
3572 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
3573
35742013-06-10 Werner Lemberg <wl@gnu.org>
3575
Werner Lemberga25ecfd2013-06-10 12:57:16 +02003576 [sfnt] Improve embedded bitmap tracing.
3577
3578 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
3579 bitmap strike match to...
3580 (FT_Match_Size): This function.
3581
3582 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
3583 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
3584 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
3585 tt_sbit_decoder_load_image): Decorate with tracing messages.
3586
35872013-06-10 Werner Lemberg <wl@gnu.org>
3588
Werner Lemberg99e60d82013-06-10 01:44:37 +02003589 Fix Savannah bug #39160.
3590
3591 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
3592 for the degenerate case.
3593
Werner Lemberg2ba871b2013-06-09 08:20:54 +020035942013-06-09 David Turner <digit@google.com>
3595
3596 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
3597
3598 This code, present since eight(!) years in the unused `CACHE'
3599 branch, has been forgotten to apply to the master branch. It's
3600 really amazing that noone has ever complained since
3601 `FTC_Manager_Reset' is pretty useless without flushing the cache.
3602
Werner Lemberg85fd84b2013-06-07 17:10:21 +020036032013-06-07 Werner Lemberg <wl@gnu.org>
3604
Werner Lemberg3f6e0e02013-06-07 18:10:40 +02003605 Add and improve pragmas for MSVC compiler.
3606
3607 * include/freetype/internal/ftdebug.h: Remove pragmas.
3608 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
3609 * include/freetype/internal/ftvalid.h: Handle warning C4324.
3610 * src/base/ftobjs.c: Use push and pop for pragmas.
3611 * src/gzip/ftgzip.c: Handle warning C4244.
3612
36132013-06-07 Werner Lemberg <wl@gnu.org>
3614
Werner Lemberg85fd84b2013-06-07 17:10:21 +02003615 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
3616
3617 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
3618
Werner Lemberg4447b2c2013-06-06 21:28:36 +020036192013-06-06 Dave Arnold <darnold@adobe.com>
3620
3621 [cff] Add early exit feature for width-only calls.
3622
3623 This is for `FT_Get_Advance'.
3624
3625 There are 7 places where the spec says the width can be defined:
3626
3627 hstem/hstemhm
3628 vstem/vstemhm
3629 cntrmask/hintmask
3630 hmoveto
3631 vmoveto
3632 rmoveto
3633 endchar
3634
3635 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
3636 if possible.
3637
3638 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
3639 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
3640 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
3641
Werner Lembergbadf3172013-06-06 09:16:38 +020036422013-06-06 Werner Lemberg <wl@gnu.org>
3643
3644 Next round of compiler fixes.
3645
3646 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
3647 Add proper cast.
3648
3649 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
3650 cast.
3651 * include/freetype/internal/ftstream.h: Decorate stream and frame
3652 macros with `FT_Long' and `FT_ULong' as appropriate.
3653
3654 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
3655 raccess_guess_darwin_newvfs): Use cast.
3656
3657 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
3658
3659 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
3660 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
3661
3662 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
3663 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
3664 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
3665
3666 * src/cid/cidparse.c (cid_parser_new): Use cast.
3667
3668 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
3669
3670 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
3671
3672 * src/raster/ftraster.c (ft_black_reset): Use cast.
3673
3674 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
3675 (ALL_POINTS): Fix cast.
3676
3677 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
3678 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
3679
Dave Arnoldc3782492013-06-05 19:57:55 +020036802013-06-05 Dave Arnold <darnold@adobe.com>
3681
3682 Fix more MSVC Win32 compiler warnings.
3683
3684 * src/base/ftobjs.c: Fix typo in MS pragma.
3685
3686 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
3687 `lineno' is only used in debug mode.
3688
3689 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
3690 debug mode.
3691
Werner Lemberg45392b72013-06-05 13:43:20 +020036922013-06-05 Werner Lemberg <wl@gnu.org>
3693
3694 Fix compiler warnings.
3695
3696 * include/freetype/internal/ftmemory.h: Decorate memory allocation
3697 macros with `FT_Long' where appropriate.
3698 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
3699
3700 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
3701 cast.
3702
3703 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
3704 including `md5.c'.
3705
3706 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
3707 cast.
3708
3709 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
3710 (tt_sbit_decoder_load_bitmap): Beautification.
3711
3712 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
3713 variables (earlier).
3714
3715 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
3716
3717 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
3718 where appropriate.
3719
3720 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
3721
Werner Lembergdc624ca2013-06-04 10:30:48 +020037222013-06-04 Werner Lemberg <wl@gnu.org>
3723
Werner Lembergd9634982013-06-04 20:18:57 +02003724 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
3725
3726 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
3727
37282013-06-04 Werner Lemberg <wl@gnu.org>
3729
Werner Lembergdc624ca2013-06-04 10:30:48 +02003730 Apply fixes for cppcheck nitpicks.
3731
3732 http://cppcheck.sourceforge.net/
3733
Werner Lemberg8d8508e2013-06-04 13:09:01 +02003734 The call was (from the top-level of the FreeType tree):
3735
3736 cppcheck --force \
3737 --enable=all \
3738 -I include \
3739 -I include/freetype/ \
3740 -I include/freetype/config/ \
3741 -I include/freetype/internal/ \
3742 . &> cppcheck.log
3743
Werner Lembergdc624ca2013-06-04 10:30:48 +02003744 Note that the current version heavily chokes on FreeType, delivering
Werner Lemberg8d8508e2013-06-04 13:09:01 +02003745 many wrong results. I will report those issues to the cppcheck team
Werner Lembergdc624ca2013-06-04 10:30:48 +02003746 so that a newer version gives improved results hopefully.
3747
3748 */* Improve variable scopes.
3749 */* Remove redundant initializations which get overwritten.
3750
Werner Lemberge8ed2d62013-08-01 12:20:20 +02003751 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
Werner Lembergdc624ca2013-06-04 10:30:48 +02003752 Remove unused variable.
3753
3754 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
3755
3756 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
3757 Remove functionless code.
3758
3759 * src/tools/ftrandom.c (main): Fix memory leak.
3760
Werner Lemberg2429dc32013-06-03 12:41:58 +020037612013-06-03 Werner Lemberg <wl@gnu.org>
3762
3763 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
3764
3765 This controls whether the old FreeType CFF engine gets compiled into
3766 FreeType. It is now disabled by default.
3767
3768 * devel/ftoption.h, include/freetype/config/ftoption.h
3769 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
3770
3771 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
3772 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
3773 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
3774 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
3775 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
3776
3777 * docs/CHANGES: Updated.
3778
Werner Lembergf9cceeb2013-06-02 23:38:13 +020037792013-06-02 Werner Lemberg <wl@gnu.org>
3780
3781 Fix PNG library handling.
3782
3783 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
3784 LIBPNG_LDFLAGS.
3785
Behdad Esfahbod760d3422013-05-29 11:36:18 +020037862013-05-23 Behdad Esfahbod <behdad@google.com>
3787
3788 Add support for color embedded bitmaps (eg. color emoji).
3789
3790 A new load flag, FT_LOAD_COLOR, makes FreeType load color
3791 embedded-bitmaps, following this draft specification
3792
3793 https://color-emoji.googlecode.com/git/specification/v1.html
3794
3795 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
3796 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
3797 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
3798 pre-multiplied sRGB images. If PNG support is available, PNG color
3799 images as defined in the same proposed specification are supported
3800 also.
3801
3802 Note that color bitmaps are converted to grayscale if client didn't
3803 ask for color.
3804
3805 * builds/unix/configure.raw: Search for libpng.
3806 Add `--without-png' option.
3807
3808 * devel/ftoption.h, include/freetype/config/ftoption.h
3809 (FT_CONFIG_OPTION_USE_PNG): New macro.
3810
3811 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
3812
3813 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
3814 `FT_PIXEL_MODE_BGRA'.
3815
3816 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
3817
3818 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
3819 (ft_gray_for_premultiplied_srgb_bgra): New function.
3820 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
3821
3822 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
3823
3824 * src/sfnt/sfnt.c: Include `pngshim.c'.
3825
3826 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
3827 (tt_face_load_eblc): Load `CBLC'.
3828 (tt_sbit_decoder_init): Load `CBDT'.
3829 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
3830 color and grayscale bitmaps.
3831 Set `num_grays'. This is used by `ftview' to choose the blending
3832 algorithm.
3833 (tt_sbit_decoder_load_byte_aligned,
3834 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
3835 tt_sbit_decoder_load_image): Pass load flag.
3836 s/write/pwrite/.
3837 Don't call `tt_sbit_decoder_alloc_bitmap'.
3838 Updated.
3839 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
3840 (tt_sbit_decoder_load_bitmap): Pass load flag.
3841 Handle new glyph formats 17, 18, and 19.
3842 Call `tt_sbit_decoder_alloc_bitmap'.
3843 Flatten color bitmaps if necessary.
3844 (tt_face_load_sbit_image): Updated.
3845
3846 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
3847
3848 * docs/CHANGES: Updated.
3849
Guenter41e44802013-05-24 11:38:09 +020038502013-05-24 Guenter <info@gknw.net>
3851
3852 Apply Savannah patch #8055.
3853
3854 Make `apinames' create an import file for NetWare.
3855
3856 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
3857 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
3858 (names_dump): Handle it.
3859 (usage): Updated.
3860 (main): Handle new command line flag `-wN'.
3861
Behdad Esfahbod2d6e1fb2013-05-23 08:01:20 +020038622013-05-23 Behdad Esfahbod <behdad@behdad.org>
3863
3864 Compilation fix.
3865
3866 * src/truetype/ttinterp.c (TT_RunIns)
3867 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
3868
Infinality18f35ed2013-05-21 20:51:15 -050038692013-05-22 Infinality <infinality@infinality.net>
3870
Infinality3c783c12013-05-21 21:03:00 -05003871 [truetype] Formatting and an additional subpixel tweak.
3872
3873 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
3874 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
3875 Revert previous modification for Verdana clones.
3876
38772013-05-22 Infinality <infinality@infinality.net>
3878
Infinality18f35ed2013-05-21 20:51:15 -05003879 [truetype] Adjust subpixel zp2 moves and tweak rules.
3880
3881 These modifications fix thin diagonal stems in some legacy fonts.
3882
3883 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
3884 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
3885 (Ins_SHP): Disable x moves here for subpixel rendering.
3886 (Ins_SHPIX): Only disable x moves in compatibility mode.
3887 Split out zp2 move reversals and reorder conditional respectively.
3888
3889 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
3890 Only adjust Verdana clones for 17 ppem.
3891 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
3892 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
3893
Infinality63bfa832013-05-20 07:38:21 +020038942013-05-20 Infinality <infinality@infinality.net>
3895
3896 [truetype] Simplify and improve subpixel function detection.
3897
3898 Some small enhancements have allowed the removal of many macros and
3899 the simplification of existing rules in `ttsubpix.c'.
3900
3901 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
3902 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
3903 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
3904 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
3905 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
3906
3907 * src/truetype/ttsubpix.c: Updated affected rules.
3908
3909 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
3910 (INS_FDEF): Add additional function detection.
3911 (INS_ENDF): Set runtime flag.
3912 (Ins_CALL): Skip the call under certain conditions.
3913 Remove bad code.
3914 (Ins_LOOPCALL): Skip the call under certain conditions.
3915 Remove bad code.
3916 (Move_Zp2_Point): Updated.
3917 (Ins_SHPIX): Updated.
3918 Skip the move under some situations.
3919 (Ins_MIAP): Improve conditions.
3920 (Ins_MIRP): Updated.
3921 (Ins_DELTAP): Skip move under certain conditions.
3922 Simplify conditions.
3923 (TT_RunIns): Updated.
3924 Add code to handle new function detection.
3925 Trace messages.
3926
Werner Lembergfd664692013-05-17 17:40:27 +020039272013-05-17 Werner Lemberg <wl@gnu.org>
3928
3929 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
3930
3931 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
3932 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
3933
Werner Lembergf04951a2013-05-17 13:51:07 +020039342013-05-15 Werner Lemberg <wl@gnu.org>
3935
3936 [truetype] Add `interpreter-version' property.
3937
3938 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
3939 at runtime.
3940
Werner Lemberg27991332013-05-17 14:00:26 +02003941 * include/freetype/ftttdrv.h: New file.
3942
3943 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
3944 macro.
3945
Werner Lembergf04951a2013-05-17 13:51:07 +02003946 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
3947 (tt_property_set, tt_property_get): Fill templates.
3948
3949 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
3950 member.
3951 Remove unused `extension_component' member.
3952
3953 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
3954 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
3955 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
3956
3957 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
3958 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
3959 Update all affected functions to use it.
3960 Use TT_INTERPRETER_VERSION_XXX where appropriate.
3961
3962 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
3963 (tt_driver_init): Initialize `interpreter_version'.
3964
3965 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
3966 Use TT_INTERPRETER_VERSION_XXX where appropriate.
3967
Werner Lemberg7441dd82013-05-13 09:12:46 +020039682013-05-13 Werner Lemberg <wl@gnu.org>
3969
Werner Lemberg6650be72013-05-13 10:05:29 +02003970 [truetype] Avoid empty source file.
3971
3972 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
3973 Provide dummy typedef.
3974
39752013-05-13 Werner Lemberg <wl@gnu.org>
3976
Werner Lemberg7441dd82013-05-13 09:12:46 +02003977 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
3978
3979 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
3980
Brian Nixon8d6025c2013-05-13 09:06:42 +020039812013-05-13 Brian Nixon <bnixon@yahoo.com>
3982
3983 Fix Savannah bug #38970.
3984
3985 * src/base/ftdebug.c, builds/win32/ftdebug.c,
3986 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
3987 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
3988
Werner Lembergd51ac9c2013-05-12 06:00:27 +020039892013-05-12 Werner Lemberg <wl@gnu.org>
3990
Werner Lembergcd888752013-05-12 15:08:57 +02003991 [truetype] Add framework for TrueType properties.
3992
3993 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
3994 (tt_property_set, tt_property_get): New functions, still empty.
3995 Define `tt_service_properties' service.
3996 Update `tt_services'.
3997
3998 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
3999 (TT_SERVICE_PROPERTIES_GET): New macro.
4000 (TTModulePIC): Add `tt_service_properties'.
4001
40022013-05-12 Werner Lemberg <wl@gnu.org>
4003
Werner Lembergb112fa42013-05-12 07:29:04 +02004004 Fix Savannah bug #38967.
4005
4006 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
4007
40082013-05-12 Werner Lemberg <wl@gnu.org>
4009
Werner Lembergcbcf33d2013-05-12 07:27:48 +02004010 Introduce unsigned 64bit type (if available).
4011
4012 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
4013 [FT_LONG64]: Provide FT_UInt64.
4014
4015 * builds/unix/ftconfig.in: Synchronized.
4016
40172013-05-12 Werner Lemberg <wl@gnu.org>
4018
Werner Lembergd51ac9c2013-05-12 06:00:27 +02004019 Fix Savannah bug #38968.
4020
4021 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
4022 FT_Property_{Set,Get}.
4023 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
4024 FT_Property_{Set,Get}.
4025
Werner Lembergf6aa0892013-05-10 07:58:47 +020040262013-05-10 Werner Lemberg <wl@gnu.org>
4027
Werner Lembergea2b4752013-05-10 08:04:33 +02004028 [sfnt] Clean up bitmap code.
4029
4030 * src/sfnt/ttsbit.c: Deleted.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004031 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
Werner Lembergea2b4752013-05-10 08:04:33 +02004032 * rules.mk (SFNT_DRV_H): Updated.
4033
40342013-05-10 Werner Lemberg <wl@gnu.org>
4035
Werner Lembergf6aa0892013-05-10 07:58:47 +02004036 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
4037
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004038----------------------------------------------------------------------------
4039
Werner Lemberg73cc8332014-01-01 07:10:36 +01004040Copyright 2013-2014 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004041David Turner, Robert Wilhelm, and Werner Lemberg.
4042
4043This file is part of the FreeType project, and may only be used, modified,
4044and distributed under the terms of the FreeType project license,
4045LICENSE.TXT. By continuing to use, modify, or distribute this file you
4046indicate that you have read the license and understand and accept it
4047fully.
4048
4049
4050Local Variables:
4051version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004052coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00004053End: