|
1 2014-03-06 Werner Lemberg <wl@gnu.org> |
|
2 |
|
3 * Version 2.5.3 released. |
|
4 ========================= |
|
5 |
|
6 |
|
7 Tag sources with `VER-2-5-3'. |
|
8 |
|
9 * docs/VERSION.DLL: Update documentation and bump version number to |
|
10 2.5.3. |
|
11 |
|
12 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, |
|
13 builds/windows/vc2005/index.html, |
|
14 builds/windows/vc2008/freetype.vcproj, |
|
15 builds/windows/vc2008/index.html, |
|
16 builds/windows/vc2010/freetype.vcxproj, |
|
17 builds/windows/vc2010/index.html, |
|
18 builds/windows/visualc/freetype.dsp, |
|
19 builds/windows/visualc/freetype.vcproj, |
|
20 builds/windows/visualc/index.html, |
|
21 builds/windows/visualce/freetype.dsp, |
|
22 builds/windows/visualce/freetype.vcproj, |
|
23 builds/windows/visualce/index.html, |
|
24 builds/wince/vc2005-ce/freetype.vcproj, |
|
25 builds/wince/vc2005-ce/index.html, |
|
26 builds/wince/vc2008-ce/freetype.vcproj, |
|
27 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/. |
|
28 |
|
29 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. |
|
30 |
|
31 * builds/unix/configure.raw (version_info): Set to 17:2:11. |
|
32 * CMakeLists.txt (VERSION_PATCH): Set to 3. |
|
33 * docs/CHANGES: Updated. |
|
34 |
|
35 2014-03-06 Werner Lemberg <wl@gnu.org> |
|
36 |
|
37 Fixes for compilation with C++. |
|
38 |
|
39 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'. |
|
40 (af_get_coverage): Updated. |
|
41 (COVERAGE): Add cast. |
|
42 |
|
43 2014-03-06 Sean McBride <sean@rogue-research.com> |
|
44 |
|
45 Remove more clang analyzer warnings. |
|
46 |
|
47 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c |
|
48 (TT_Load_Glyph): Remove dead stores. |
|
49 |
|
50 2014-03-05 Werner Lemberg <wl@gnu.org> |
|
51 |
|
52 * builds/unix/configure.raw: Simplify. |
|
53 |
|
54 2014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
55 |
|
56 Fix a bug in configure in library dependency setting |
|
57 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652. |
|
58 |
|
59 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style. |
|
60 |
|
61 2014-03-04 Werner Lemberg <wl@gnu.org> |
|
62 |
|
63 Minor fix for `make devel'. |
|
64 |
|
65 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use |
|
66 pkg-config for bzip2 since not all GNU/Linux distributions have |
|
67 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include |
|
68 normally). |
|
69 |
|
70 2014-03-04 Sean McBride <sean@rogue-research.com> |
|
71 |
|
72 Fix several clang static analyzer dead store warnings. |
|
73 |
|
74 * src/autofit/afhints.c (af_glyph_hints_reload, |
|
75 af_glyph_hints_align_weak_points): Remove unnecessary assignments. |
|
76 |
|
77 * src/bdf/bdflib.c (bdf_font_load): Ditto. |
|
78 |
|
79 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema, |
|
80 psh_glyph_interpolate_other_points): Ditto. |
|
81 |
|
82 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto. |
|
83 |
|
84 2014-03-03 Werner Lemberg <wl@gnu.org> |
|
85 |
|
86 Rewrite library option handling in `configure'. |
|
87 |
|
88 o Introduce `auto' value for `--with-XXX' library options; this is |
|
89 now the default. |
|
90 |
|
91 o First use `pkg-config' for library detection, then fall back to |
|
92 other tests. |
|
93 |
|
94 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png, |
|
95 --with-harfbuzz): Rewrite. |
|
96 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf' |
|
97 variables to collect data for `freetype2.pc' and `freetype-config'. |
|
98 (FT2_EXTRA_LIBS): Renamed to ... |
|
99 (ft2_extra_libs): This since it gets no longer substituted. |
|
100 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG): |
|
101 New output variables, replacing `XXX_PKG' and `LIBXXX'. |
|
102 Add notice at the end of `configure' showing the library |
|
103 configuration. |
|
104 |
|
105 * builds/unix/freetype-config.in (--static): New command line |
|
106 option. |
|
107 (libs): Updated. |
|
108 (staticlibs): New variable, to be used if `--static' is given. |
|
109 * builds/doc/freetype-config.1: Document `--static'. |
|
110 |
|
111 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated. |
|
112 |
|
113 2014-03-01 Werner Lemberg <wl@gnu.org> |
|
114 |
|
115 Avoid `long long' warnings with older gcc compilers. |
|
116 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. |
|
117 |
|
118 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for |
|
119 versions < 4.6. This is especially needed for Max OS X since this |
|
120 OS runs a gcc variant (or emulation) based on version 4.2.1. |
|
121 |
|
122 2014-03-01 Werner Lemberg <wl@gnu.org> |
|
123 |
|
124 * docs/INSTALL.CROSS: Revised and updated. |
|
125 |
|
126 2014-03-01 Werner Lemberg <wl@gnu.org> |
|
127 |
|
128 Make `make clean' remove `freetype2.pc'. |
|
129 |
|
130 This is a generated file at build time, not configure time. |
|
131 |
|
132 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ... |
|
133 (CLEAN): This variable. |
|
134 |
|
135 2014-03-01 Werner Lemberg <wl@gnu.org> |
|
136 |
|
137 Use pkg-config for detecting libpng and libbz2 also. |
|
138 |
|
139 * builds/unix/configure.raw (HAVE_PKG): New variable. |
|
140 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/. |
|
141 Search for libpng using `pkg-config'. |
|
142 Fix definition of `LIBHARFBUZZ' variable. |
|
143 * builds/unix/freetype-config.in ($libs): Updated. |
|
144 * builds/unix/freetype2.in: Add `URL' field. |
|
145 Update `Requires.private' and `Libs.private'. |
|
146 * builds/unix/unix-def.in: Updated. |
|
147 |
|
148 2014-03-01 Werner Lemberg <wl@gnu.org> |
|
149 |
|
150 Add configure support for HarfBuzz. |
|
151 |
|
152 * builds/unix/pkg.m4: New file. |
|
153 * builds/unix/configure.raw: Search for libharfbuzz using |
|
154 `pkg-config'. |
|
155 Add `--without-harfbuzz' option. |
|
156 * builds/unix/freetype-config.in, builds/unix/freetype2.in, |
|
157 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle |
|
158 HarfBuzz. |
|
159 |
|
160 * docs/INSTALL.UNIX: Document interdependency of Freetype with |
|
161 HarfBuzz. |
|
162 |
|
163 2014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
164 |
|
165 [cff] Math simplifications. |
|
166 |
|
167 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'. |
|
168 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division. |
|
169 |
|
170 2014-02-28 Dave Arnold <darnold@adobe.com> |
|
171 |
|
172 [cff] Fix Savannah bug #41697, part 2. |
|
173 |
|
174 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer, |
|
175 cf2_initGlobalRegionBuffer): It is possible for a charstring to call |
|
176 a subroutine if no subroutines exist. This is an error but should |
|
177 not trigger an assert. Split the assert to account for this. |
|
178 |
|
179 2014-02-28 Dave Arnold <darnold@adobe.com> |
|
180 |
|
181 [cff] Fix Savannah bug #41697, part 1. |
|
182 |
|
183 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is |
|
184 invalid. In this case, it is not safe to use the length of |
|
185 `hStemHintArray'; the exception has already been recorded in |
|
186 `hintMask'. |
|
187 |
|
188 2014-02-26 Werner Lemberg <wl@gnu.org> |
|
189 |
|
190 [sfnt] Fix Savannah bug #41696. |
|
191 |
|
192 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate, |
|
193 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests. |
|
194 |
|
195 2014-02-26 Werner Lemberg <wl@gnu.org> |
|
196 |
|
197 [winfnt] Fix Savannah bug #41694. |
|
198 |
|
199 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset. |
|
200 |
|
201 2014-02-26 Werner Lemberg <wl@gnu.org> |
|
202 |
|
203 [cff] Fix Savannah bug #41693. |
|
204 |
|
205 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array. |
|
206 |
|
207 2014-02-26 Werner Lemberg <wl@gnu.org> |
|
208 |
|
209 [bdf] Fix Savannah bug #41692. |
|
210 |
|
211 bdflib puts data from the input stream into a buffer in chunks of |
|
212 1024 bytes. The data itself gets then parsed line by line, simply |
|
213 increasing the current pointer into the buffer; if the search for |
|
214 the final newline character exceeds the buffer size, more data gets |
|
215 read. |
|
216 |
|
217 However, in case the current line's end is very near to the buffer |
|
218 end, and the keyword to compare with is longer than the current |
|
219 line's length, an out-of-bounds read might happen since `memcmp' |
|
220 doesn't stop properly at the string end. |
|
221 |
|
222 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons |
|
223 stop at string ends. |
|
224 |
|
225 2014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
226 |
|
227 [autofit] Fix `make multi' compilation. |
|
228 |
|
229 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'. |
|
230 |
|
231 2014-02-19 Werner Lemberg <wl@gnu.org> |
|
232 Simon Bünzli <zeniko@gmail.com> |
|
233 |
|
234 Fix Savannah bug #32902. |
|
235 |
|
236 Patch taken from |
|
237 |
|
238 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87 |
|
239 |
|
240 with slight modifications. |
|
241 |
|
242 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to |
|
243 handle fonts that incorrectly use \r at the beginning of an eexec |
|
244 block. |
|
245 |
|
246 2014-02-19 Simon Bünzli <zeniko@gmail.com> |
|
247 |
|
248 Fix Savannah bug #41590. |
|
249 |
|
250 * src/type1/t1load.c (parse_encoding): Protect against invalid |
|
251 number. |
|
252 |
|
253 2014-02-12 Dave Arnold <darnold@adobe.com> |
|
254 |
|
255 [cff] Optimize by using `FT_MulDiv'. |
|
256 Suggested by Alexei. |
|
257 |
|
258 * src/cff/cf2font.c (cf2_computeDarkening): Do it. |
|
259 |
|
260 2014-02-12 Werner Lemberg <wl@gnu.org> |
|
261 |
|
262 Fix Savannah bug #41465. |
|
263 |
|
264 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'. |
|
265 (DISTCLEAN): Remove `freetype-config'. |
|
266 |
|
267 2014-02-08 Sean McBride <sean@rogue-research.com> |
|
268 |
|
269 Fix clang static analyzer and compiler warnings. |
|
270 |
|
271 * src/autofit/afhints.c (af_glyph_hints_align_weak_points), |
|
272 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>, |
|
273 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c |
|
274 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style), |
|
275 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c |
|
276 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load), |
|
277 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c |
|
278 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next, |
|
279 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead |
|
280 code. |
|
281 |
|
282 * src/autofit/afmodule.c (af_property_get_face_globals, |
|
283 af_property_set, af_property_get), src/base/ftbitmap.c |
|
284 (ft_gray_for_premultiplied_srgb_bgra): Make functions static. |
|
285 |
|
286 * src/base/ftobjs.c (ft_remove_renderer): Protect against |
|
287 library == NULL. |
|
288 (ft_property_do): Make function static. |
|
289 |
|
290 * src/base/ftrfork.c: Include `ftbase.h'. |
|
291 |
|
292 * src/sfnt/ttsbit.c (tt_face_load_sbix_image) |
|
293 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c |
|
294 (T1_Compute_Max_Advance): Avoid compiler warning. |
|
295 |
|
296 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of |
|
297 variable. |
|
298 |
|
299 2014-02-08 Werner Lemberg <wl@gnu.org> |
|
300 |
|
301 Fix Windows build directories. |
|
302 |
|
303 The build target is now `windows' instead of `win32'. |
|
304 |
|
305 Problem reported by Nickolas George <darknova.clan@gmail.com>. |
|
306 |
|
307 * builds/modules.mk: Don't use `win32' and `win16' (!) but |
|
308 `windows'. |
|
309 |
|
310 * builds/windows/detect.mk, builds/windows/win32-def.mk: |
|
311 s/win32/windows/. |
|
312 |
|
313 2014-02-08 Eugen Sawin <esawin@mozilla.com> |
|
314 |
|
315 Fix Savannah bug #41507. |
|
316 |
|
317 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) |
|
318 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling. |
|
319 |
|
320 2014-02-08 Dave Arnold <darnold@adobe.com> |
|
321 |
|
322 [cff] Fix minor performance bug. |
|
323 |
|
324 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone |
|
325 calculations are now cached and not recomputed on each glyph. |
|
326 |
|
327 2014-02-05 Werner Lemberg <wl@gnu.org> |
|
328 |
|
329 Fix problems with perl 5.8.8 as distributed with current MinGW. |
|
330 |
|
331 * src/tools/afblue.pl: Work-around for Perl bug #63402. |
|
332 (string_re): Avoid `possessive quantifiers', which have been |
|
333 introduced in Perl version 5.10. |
|
334 |
|
335 2014-02-04 Werner Lemberg <wl@gnu.org> |
|
336 |
|
337 Fix compilation with MinGW. |
|
338 |
|
339 Right now, compilation out of the box with latest MinGW is broken |
|
340 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode, |
|
341 cf. |
|
342 |
|
343 https://sourceforge.net/p/mingw/bugs/2024/ |
|
344 https://sourceforge.net/p/mingw/bugs/2046/ |
|
345 |
|
346 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW. |
|
347 |
|
348 2014-02-04 Werner Lemberg <wl@gnu.org> |
|
349 |
|
350 [autofit] Minor fix. |
|
351 |
|
352 * src/autofit/afcjk.c (af_cjk_metrics_init_widths), |
|
353 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling |
|
354 of alternative standard characters. |
|
355 This also fixes a compilation warning in non-debug mode. |
|
356 |
|
357 2014-02-03 Werner Lemberg <wl@gnu.org> |
|
358 |
|
359 [cff] Fix Savannah bug #41363. |
|
360 |
|
361 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into |
|
362 parameter check. |
|
363 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if |
|
364 we are scaling the outline. |
|
365 (cf2_getPpemY): Remove problematic assertion. |
|
366 |
|
367 2014-01-26 Werner Lemberg <wl@gnu.org> |
|
368 |
|
369 [autofit] Introduce two more slots for standard characters. |
|
370 |
|
371 This is useful for OpenType features like `c2sc' (caps to small |
|
372 caps) that don't have lowercase letters by definition, or other |
|
373 features that mainly operate on numerals. |
|
374 |
|
375 * src/autofit/afscript.h: Add more standard characters. |
|
376 |
|
377 * src/autofit/aftypes.h: Update use of `SCRIPT' macro. |
|
378 (AF_ScriptClassRec): Add members to hold two more standard |
|
379 characters. |
|
380 (AF_DEFINE_SCRIPT_CLASS): Updated. |
|
381 |
|
382 * src/autofit/afglobal.c, src/autofit/afglobal.h, |
|
383 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c: |
|
384 Update use of `SCRIPT' macro. |
|
385 |
|
386 * src/autofit/afcjk.c (af_cjk_metrics_init_widths), |
|
387 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more |
|
388 standard characters. |
|
389 |
|
390 2014-01-24 Werner Lemberg <wl@gnu.org> |
|
391 |
|
392 Fix Savannah bug #41320. |
|
393 |
|
394 * src/autofit/aflatin.c (af_latin_metrics_init_blues) |
|
395 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'. |
|
396 |
|
397 2014-01-23 Werner Lemberg <wl@gnu.org> |
|
398 |
|
399 Fix Savannah bug #41310. |
|
400 |
|
401 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>: |
|
402 Don't check metrics, which this format doesn't have. |
|
403 This is another correction to the commit from 2013-11-21. |
|
404 |
|
405 2014-01-23 Werner Lemberg <wl@gnu.org> |
|
406 |
|
407 Fix Savannah bug #41309. |
|
408 |
|
409 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result |
|
410 of `T1_ToFixedArray'. |
|
411 |
|
412 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with |
|
413 `t1_parse_font_matrix'. |
|
414 |
|
415 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with |
|
416 `t1_parse_font_matrix'. |
|
417 (t42_parse_encoding): Synchronize with `t1_parse_encoding'. |
|
418 |
|
419 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>, |
|
420 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'. |
|
421 |
|
422 2014-01-22 Werner Lemberg <wl@gnu.org> |
|
423 |
|
424 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks. |
|
425 |
|
426 2014-01-16 Werner Lemberg <wl@gnu.org> |
|
427 |
|
428 [autofit] Improve tracing of style coverages. |
|
429 |
|
430 * include/internal/fttrace.h: Add `afglobal' for tracing style |
|
431 coverages. |
|
432 |
|
433 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H. |
|
434 (FT_COMPONENT): Define. |
|
435 (af_face_globals_compute_style_coverage): Trace `gstyles' array |
|
436 data. |
|
437 |
|
438 2014-01-09 Werner Lemberg <wl@gnu.org> |
|
439 |
|
440 Fix Savannah bug #41158. |
|
441 |
|
442 * builds/unix/install.mk (install): Create man page directory. |
|
443 |
|
444 2014-01-08 Chongyu Zhu <lembacon@gmail.com> |
|
445 |
|
446 [arm] Fix Savannah bug #41138, part 2. |
|
447 |
|
448 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h |
|
449 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix |
|
450 preprocessor conditionals for `add.w'. |
|
451 |
|
452 2014-01-08 Werner Lemberg <wl@gnu.org> |
|
453 |
|
454 [autofit] Fix Savannah bug #41138, part 1. |
|
455 |
|
456 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary |
|
457 enumeration names for generated `#else'. |
|
458 |
|
459 * src/autofit/afblue.h: Regenerated. |
|
460 |
|
461 2014-01-06 Werner Lemberg <wl@gnu.org> |
|
462 |
|
463 Add manual page for `freetype-config'. |
|
464 Contributed by Nis Martensen <nis.martensen@web.de>. |
|
465 |
|
466 * docs/freetype-config.1: New file. |
|
467 |
|
468 * builds/unix/unix-def.in (mandir): Define. |
|
469 * builds/unix/install.mk (install, uninstall): Handle manpage. |
|
470 |
|
471 2014-01-05 Werner Lemberg <wl@gnu.org> |
|
472 |
|
473 [autofit] Minor fixes for `afblue.pl'. |
|
474 |
|
475 * src/tools/afblue.pl (aux_name): Don't use `reverse'. |
|
476 <Handling #endif>: Use proper indentation for generated `#else'. |
|
477 |
|
478 * src/autofit/afblue.h: Regenerated. |
|
479 |
|
480 2014-01-04 Werner Lemberg <wl@gnu.org> |
|
481 |
|
482 [autofit] Fix Indic scripts. |
|
483 |
|
484 Split the single, incorrect Indic entry into separate scripts so |
|
485 that the covered ranges are the same: Bengali, Devanagari, Gujarati, |
|
486 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese, |
|
487 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove |
|
488 entries for Meetai Mayak and Sharada – the Unicode ranges were |
|
489 incorrect (and nobody has complained about that), fonts are scarce |
|
490 for those scripts, and the Indic auto-hinter support is rudimentary |
|
491 anyways. |
|
492 |
|
493 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and |
|
494 AF_CONFIG_OPTION_CJK. |
|
495 |
|
496 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro. |
|
497 Use it, together with AF_CONFIG_OPTION_INDIC and |
|
498 AF_CONFIG_OPTION_CJK, to update. |
|
499 |
|
500 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated. |
|
501 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed. |
|
502 Sort entries by tags. |
|
503 |
|
504 2014-01-03 Werner Lemberg <wl@gnu.org> |
|
505 |
|
506 [autofit] Thinko. |
|
507 |
|
508 * src/autofit/hbshim.c (af_get_char_index): Similar to |
|
509 `af_get_coverage', reject glyphs which are not substituted. |
|
510 |
|
511 2014-01-03 Werner Lemberg <wl@gnu.org> |
|
512 |
|
513 [autofit] Fix handling of default coverages. |
|
514 |
|
515 With this commit, the implementation of coverage handling is |
|
516 completed. |
|
517 |
|
518 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to |
|
519 do. |
|
520 Reject coverages which don't contain appropriate glyphs for blue |
|
521 zones. |
|
522 |
|
523 2014-01-03 Werner Lemberg <wl@gnu.org> |
|
524 |
|
525 [autofit] Fix handling of default coverages. |
|
526 |
|
527 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): |
|
528 First handle non-default coverages, then the default coverage of the |
|
529 default script, and finally the other default coverages. |
|
530 |
|
531 2014-01-03 Werner Lemberg <wl@gnu.org> |
|
532 |
|
533 [autofit] Fix scaling of HarfBuzz shaping. |
|
534 |
|
535 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM. |
|
536 |
|
537 2014-01-03 Werner Lemberg <wl@gnu.org> |
|
538 |
|
539 [autofit] Better ftgrid support. |
|
540 |
|
541 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add |
|
542 parameters `is_blue' and `blue_offset'. |
|
543 |
|
544 2014-01-01 Werner Lemberg <wl@gnu.org> |
|
545 |
|
546 [autofit] Remove some styles. |
|
547 |
|
548 * src/autofit/afcover.h: Remove coverages for alternative fractions, |
|
549 denominators, numerators, and fractions. |
|
550 |
|
551 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated. |
|
552 |
|
553 2014-01-01 Werner Lemberg <wl@gnu.org> |
|
554 |
|
555 [autofit] Add more styles. |
|
556 |
|
557 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New |
|
558 auxiliary macros; use them to define styles for Cyrillic, Greek, and |
|
559 Latin. |
|
560 |
|
561 * src/autofit/afcover.h: Remove coverage for oldstyle figures. |
|
562 Since those digits are used in combination with ordinary letters, it |
|
563 makes no sense to handle them separately. |
|
564 |
|
565 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit |
|
566 `options' parameter to 4 bits. |
|
567 |
|
568 2014-01-01 Werner Lemberg <wl@gnu.org> |
|
569 |
|
570 [autofit] Fix style assignments to glyphs. |
|
571 |
|
572 * src/autofit/hbshim.c (af_get_coverage) |
|
573 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also |
|
574 so that we can skip glyphs that have both GSUB and GPOS data. |
|
575 |
|
576 2014-01-01 Werner Lemberg <wl@gnu.org> |
|
577 |
|
578 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/. |
|
579 |
|
580 2014-01-01 Werner Lemberg <wl@gnu.org> |
|
581 |
|
582 [autofit] Implement and use `af_get_char_index' with HarfBuzz. |
|
583 |
|
584 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]: |
|
585 Redefine to construct HarfBuzz features. |
|
586 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten. |
|
587 |
|
588 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use |
|
589 `y_offset' to adjust `best_y'. |
|
590 |
|
591 2013-12-31 Werner Lemberg <wl@gnu.org> |
|
592 |
|
593 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i. |
|
594 |
|
595 2013-12-31 Werner Lemberg <wl@gnu.org> |
|
596 |
|
597 [autofit] Fix interface of `af_get_char_index'. |
|
598 |
|
599 * src/autofit/hbshim.c (af_get_char_index): Return error value. |
|
600 Add argument for y offset (to be used in a yet-to-come patch). |
|
601 |
|
602 * src/autofit/hbshim.h, src/autofit/afcjk.c, |
|
603 src/autofit/aflatin.c: Updated. |
|
604 |
|
605 2013-12-30 Werner Lemberg <wl@gnu.org> |
|
606 |
|
607 [autofit] Don't combine multiple features into one set. |
|
608 |
|
609 Combining them, as originally envisioned, would lead to much more |
|
610 complicated code, as investigations have shown meanwhile. The major |
|
611 drawback is that we run out of available style slots much earlier. |
|
612 However, this is only a theoretical issue since we don't support a |
|
613 large number of scripts currently. |
|
614 |
|
615 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with |
|
616 a single-element `COVERAGE' macro, sort the elements by the feature |
|
617 tags, and add entry for `ruby'. |
|
618 |
|
619 * src/autofit/aftypes.h: Updated. |
|
620 * src/autofit/hbshim.c: Updated. |
|
621 |
|
622 2013-12-28 Werner Lemberg <wl@gnu.org> |
|
623 |
|
624 [autofit] Code shuffling to reduce use of cpp macros. |
|
625 |
|
626 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): |
|
627 Call `af_get_coverage' unconditionally. |
|
628 |
|
629 * src/autofit/autofit.c: Include `hbshim.c' unconditionally. |
|
630 |
|
631 * src/autofit/hbshim.c (af_get_coverage) |
|
632 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function. |
|
633 |
|
634 * src/autofit/hbshim.h: Provide function declarations |
|
635 unconditionally. |
|
636 |
|
637 2013-12-28 Werner Lemberg <wl@gnu.org> |
|
638 |
|
639 [autofit] Add wrapper function for `FT_Get_Char_Index'. |
|
640 |
|
641 Yet-to-come changes will provide HarfBuzz functionality for the new |
|
642 function. |
|
643 |
|
644 * src/autofit/hbshim.c (af_get_char_index): New function. |
|
645 * src/autofit/hbshim.h: Updated. |
|
646 |
|
647 * src/autofit/afcjk.c (af_cjk_metrics_init_widths, |
|
648 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated. |
|
649 |
|
650 * src/autofit/aflatin.c (af_latin_metrics_init_widths, |
|
651 af_latin_metrics_init_blues, af_latin_metrics_check_digits): |
|
652 Updated. |
|
653 |
|
654 2013-12-28 Werner Lemberg <wl@gnu.org> |
|
655 |
|
656 [autofit] Use `global' HarfBuzz font object. |
|
657 |
|
658 We now use `hb_font' instead of `hb_face' since yet-to-come changes |
|
659 need this. |
|
660 |
|
661 * src/autofit/afglobal.h: Include `hbshim.h'. |
|
662 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member |
|
663 `hb_font'. |
|
664 |
|
665 * src/autofit/afglobal.c (af_face_globals_new) |
|
666 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'. |
|
667 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy |
|
668 `hb_font'. |
|
669 |
|
670 * src/autofit/hbshim.h: Include HarfBuzz headers. |
|
671 |
|
672 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz |
|
673 headers. |
|
674 (af_get_coverage): Updated. |
|
675 |
|
676 2013-12-27 Werner Lemberg <wl@gnu.org> |
|
677 |
|
678 [autofit] Handle `DFLT' OpenType script for coverages. |
|
679 |
|
680 * include/ftautoh.h: Document new `default-script' property. |
|
681 |
|
682 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for |
|
683 type of first parameter. |
|
684 (script_tags): Add one more element. |
|
685 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag. |
|
686 |
|
687 * src/autofit/hbshim.h: Updated. |
|
688 |
|
689 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): |
|
690 Updated. |
|
691 |
|
692 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro. |
|
693 |
|
694 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script' |
|
695 member. |
|
696 |
|
697 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle |
|
698 `default-script' property. |
|
699 (af_autofitter_init): Updated. |
|
700 |
|
701 2013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
702 |
|
703 [ftrfork] Fix the face order difference between POSIX and Carbon. |
|
704 |
|
705 The fragmented resources in Suitcase and .dfont should be reordered |
|
706 when `POST' resource for Type1 is being restored, but reordering of |
|
707 sfnt resources induces the different face order. Now the ordering |
|
708 is restricted to `POST' resource only, to prevent the different |
|
709 order issue (e.g. the face index in the fontconfig cache generated |
|
710 with Carbon framework is incompatible with that by FreeType 2 |
|
711 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung. |
|
712 |
|
713 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html |
|
714 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html |
|
715 |
|
716 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch |
|
717 `sort_by_res_id' to control the fragmented resource ordering. |
|
718 * include/internal/ftrfork.h: Declare new switch. |
|
719 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST' |
|
720 resource, and disable the sorting for `sfnt' resource. |
|
721 |
|
722 2013-12-25 Werner Lemberg <wl@gnu.org> |
|
723 |
|
724 Fix Savannah bug #40997. |
|
725 |
|
726 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to |
|
727 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already |
|
728 be set. |
|
729 * src/cff/cffobjs.c (cff_face_init): Ditto. |
|
730 * src/cid/cidobjs.c (cid_face_init): Ditto. |
|
731 * src/pcf/pcfread.c (pcf_load_font): Ditto. |
|
732 * src/pfr/pfrobjs.c (pfr_face_init): Ditto. |
|
733 * src/type1/t1objs.c (T1_Face_Init): Ditto. |
|
734 * src/type42/t42objs.c (T42_Face_Init): Ditto. |
|
735 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto. |
|
736 |
|
737 2013-12-21 Werner Lemberg <wl@gnu.org> |
|
738 |
|
739 [autofit] Introduce `coverages'. |
|
740 |
|
741 Coverages are the interface to the HarfBuzz library to acces |
|
742 OpenType features for handling glyphs not addressable by the cmap. |
|
743 |
|
744 Right now, compilation of HarfBuzz is only added to the development |
|
745 build. A solution for standard build mode will be delayed until |
|
746 HarfBuzz gets split into two libraries to avoid mutual dependencies |
|
747 between FreeType and HarfBuzz. |
|
748 |
|
749 Note that this is only a first step in handling coverages, basically |
|
750 providing the framework only. Code for handling selected OpenType |
|
751 features (this is, actually using the data in `afcover.h') will |
|
752 follow. |
|
753 |
|
754 * devel/ftoption.h, include/config/ftoption.h |
|
755 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro. |
|
756 |
|
757 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h: |
|
758 New files. |
|
759 |
|
760 * src/autofit/afscript.h: Add HarfBuzz script name tags. |
|
761 |
|
762 * src/autofit/afstyles.h: Add default coverage enumeration values. |
|
763 |
|
764 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros. |
|
765 (AF_Coverage): New enumeration (generated by `afcover.h'). |
|
766 (AF_StyleClassRec): New member `coverage'. |
|
767 (AF_DEFINE_STYLE_CLASS): Updated. |
|
768 |
|
769 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage |
|
770 data. |
|
771 |
|
772 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros. |
|
773 (AF_SCRIPT_FALLBACK): Renamed to ... |
|
774 (AF_STYLE_FALLBACK): ... this. |
|
775 |
|
776 * src/autofit/afglobal.c: Include `hbshim.c'. |
|
777 Update use of `SCRIPT' and `STYLE' macros. |
|
778 (af_face_globals_compute_style_coverage) |
|
779 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'. |
|
780 Update. |
|
781 |
|
782 * src/autofit/afmodule.h (AF_ModuleRec): |
|
783 s/fallback_script/fallback_style/. |
|
784 |
|
785 * src/autofit/afmodule.c (af_property_set): Adapt handling of |
|
786 `fallback-script' property to set a fallback style. |
|
787 (af_property_get, af_autofitter_init): Updated. |
|
788 |
|
789 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros. |
|
790 |
|
791 * src/autofit/afranges.h: Update use of `SCRIPT' macro. |
|
792 |
|
793 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include |
|
794 `hbshim.c'. |
|
795 |
|
796 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'. |
|
797 (AUTOF_DRV_H): Add `afcover.h'. |
|
798 |
|
799 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for |
|
800 all libraries needed by FreeType. |
|
801 |
|
802 2013-12-21 Werner Lemberg <wl@gnu.org> |
|
803 |
|
804 Fix Savannah bug #40975 (sort of). |
|
805 |
|
806 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType |
|
807 behave the same as the Windows TrueType engine for the invalid case. |
|
808 |
|
809 2013-12-21 Werner Lemberg <wl@gnu.org> |
|
810 |
|
811 [autofit] Make PIC mode work actually. |
|
812 |
|
813 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the |
|
814 enumeration values automatically generated by including `afscript.h' |
|
815 and friends. |
|
816 |
|
817 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. |
|
818 |
|
819 2013-12-21 Werner Lemberg <wl@gnu.org> |
|
820 |
|
821 Fix PIC linking. |
|
822 |
|
823 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix |
|
824 generated function name. |
|
825 |
|
826 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename |
|
827 to ... |
|
828 (FT_Init_Table_ft_raccess_guess_table): ... this so that the |
|
829 function name correctly corresponds to what the macro framework |
|
830 expects. |
|
831 |
|
832 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so |
|
833 that PIC functions are compiled also. |
|
834 |
|
835 2013-12-21 Werner Lemberg <wl@gnu.org> |
|
836 |
|
837 [base] Add missing dependencies to Makefile. |
|
838 |
|
839 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'. |
|
840 (BASE_H): Add `basepic.h'. |
|
841 |
|
842 2013-12-20 Werner Lemberg <wl@gnu.org> |
|
843 |
|
844 [autofit] Fix PIC compilation. |
|
845 |
|
846 * src/autofit/afcjk.c (af_cjk_metrics_init_widths), |
|
847 src/autofit/aflatin.c (af_latin_metrics_init_widths) |
|
848 [FT_CONFIG_OPTION_PIC]: Declare `globals'. |
|
849 |
|
850 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and |
|
851 AF_DEFINE_STYLE_CLASS. |
|
852 |
|
853 * src/autofit/afpic.c: Include `afglobal.h'. |
|
854 (autofit_module_class_pic_init): Typo. |
|
855 |
|
856 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS, |
|
857 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro |
|
858 parameter and structure member. |
|
859 |
|
860 2013-12-20 Werner Lemberg <wl@gnu.org> |
|
861 |
|
862 [autofit] Introduce `styles'. |
|
863 |
|
864 This is the new top-level structure for handling glyph input data; |
|
865 scripts are now defined separately. |
|
866 |
|
867 * src/autofit/aftypes.h (SCRIPT): Updated. |
|
868 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system' |
|
869 members to ... |
|
870 (AF_Style_ClassRec): ... this new structure. |
|
871 (AF_Style): New enumeration. |
|
872 (AF_StyleMetricsRec): Replace `script' enumeration with |
|
873 `style_class' pointer. |
|
874 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated. |
|
875 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros. |
|
876 |
|
877 * src/autofit/afstyles.h: New file, using data from `afscript.h'. |
|
878 * src/autofit/afscript.h: Updated. |
|
879 |
|
880 * src/autofit/afcjk.c (af_cjk_metrics_init_widths, |
|
881 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated. |
|
882 |
|
883 * src/autofit/afglobal.c (SCRIPT): Updated. |
|
884 (STYLE): Redefine macro to load `afstyles.h'. |
|
885 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with... |
|
886 (af_style_names): ... this array. |
|
887 (af_face_globals_compute_script_coverage): Renamed to... |
|
888 (af_face_globals_compute_style_coverage): ... this. |
|
889 Updated. |
|
890 (af_face_globals_new, af_face_globals_free, |
|
891 af_face_globals_get_metrics): Updated. |
|
892 |
|
893 * src/autofit/afglobal.h (SCRIPT): Updated. |
|
894 (STYLE): Redefine macro to load `afstyles.h'. |
|
895 (AF_SCRIPT_FALLBACK): Update definition. This will get more |
|
896 refinements with later on. |
|
897 (AF_SCRIPT_UNASSIGNED): Replace with... |
|
898 (AF_STYLE_UNASSIGNED): ... this macro. |
|
899 (AF_FaceGlobalsRec): Updated. |
|
900 |
|
901 * src/autofit/aflatin.c (af_latin_metrics_init_widths, |
|
902 af_latin_metrics_init_blues, af_latin_metrics_scale_dim, |
|
903 af_latin_hint_edges): Updated. |
|
904 |
|
905 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated. |
|
906 (af_ltn2_uniranges): Removed. |
|
907 |
|
908 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): |
|
909 Updated. |
|
910 |
|
911 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. |
|
912 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro. |
|
913 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec' |
|
914 members. |
|
915 |
|
916 * src/autofit/afranges.h: Updated. |
|
917 |
|
918 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'. |
|
919 |
|
920 2013-12-19 Werner Lemberg <wl@gnu.org> |
|
921 |
|
922 [autofit] Factor scripts and uniranges out of writing system files. |
|
923 |
|
924 * src/autofit/afranges.c, src/autofit/afranges.h: New files. |
|
925 |
|
926 * src/autofit/afscript.h: Extend `SCRIPT' macro with more |
|
927 parameters, taking data from the writing system files. |
|
928 |
|
929 * src/autofit/aftypes.h: Updated. |
|
930 |
|
931 * src/autofit/afglobal.c: Include `afranges.h'. |
|
932 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS. |
|
933 * src/autofit/afglobal.c: Include `afranges.h'. |
|
934 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS. |
|
935 |
|
936 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated. |
|
937 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated. |
|
938 * src/autofit/afindic.c, src/autofit/afindic.h: Updated. |
|
939 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated. |
|
940 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated. |
|
941 |
|
942 * src/autofit/afpic.c: Updated. |
|
943 |
|
944 * src/autofir/autofit.c: Include `afranges.c'. |
|
945 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'. |
|
946 |
|
947 2013-12-18 Werner Lemberg <wl@gnu.org> |
|
948 |
|
949 [autofit] More code orthogonality. |
|
950 |
|
951 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class' |
|
952 pointer to an `AF_ScriptClass' structure with `script' index of type |
|
953 `AF_Script'. |
|
954 Move some code around. |
|
955 |
|
956 * src/autofit/afcjk.c: Include `afpic.h'. |
|
957 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, |
|
958 af_cjk_hint_edges): Updated. |
|
959 |
|
960 * src/autofit/aflatin.c: Include `afpic.h'. |
|
961 (af_latin_metrics_init_widths, af_latin_metrics_init_blues, |
|
962 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated. |
|
963 |
|
964 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated. |
|
965 |
|
966 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): |
|
967 Updated. |
|
968 |
|
969 2013-12-18 Werner Lemberg <wl@gnu.org> |
|
970 |
|
971 [autofit] s/ScriptMetrics/StyleMetrics/. |
|
972 |
|
973 2013-12-18 Werner Lemberg <wl@gnu.org> |
|
974 |
|
975 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/ |
|
976 |
|
977 2013-12-18 Werner Lemberg <wl@gnu.org> |
|
978 |
|
979 [autofit] s/gscripts/gstyles/. |
|
980 |
|
981 2013-12-18 Werner Lemberg <wl@gnu.org> |
|
982 |
|
983 [autofit] s/glyph_scripts/glyph_styles/. |
|
984 |
|
985 This is the first commit of a series to create a new top-level |
|
986 structure (a `style') for handling scripts, writing_systems, and |
|
987 soon-to-be-added coverages. |
|
988 |
|
989 2013-12-17 Werner Lemberg <wl@gnu.org> |
|
990 |
|
991 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate. |
|
992 |
|
993 2013-12-11 Infinality <infinality@infinality.net> |
|
994 |
|
995 [truetype] Simplify logic of rendering modes. |
|
996 |
|
997 This patch unifies the subpixel and non-subpixel cases. |
|
998 |
|
999 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove |
|
1000 `grayscale_hinting'; all code should refer to `grayscale' instead. |
|
1001 Remove unused `native_hinting' member. |
|
1002 Rename `subpixel_hinting' member to `subpixel. |
|
1003 |
|
1004 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated. |
|
1005 (tt_loader_init): Updated. |
|
1006 |
|
1007 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify. |
|
1008 Updated. |
|
1009 |
|
1010 2013-12-11 Werner Lemberg <wl@gnu.org> |
|
1011 |
|
1012 [documentation] Add section how to include FreeType header files. |
|
1013 Problem reported by David Kastrup <dak@gnu.org>. |
|
1014 |
|
1015 Surprisingly, a description how to do that was completely missing in |
|
1016 the API reference. |
|
1017 |
|
1018 * include/freetype.h, include/ftchapters.h: New documentation |
|
1019 section `header_inclusion'. |
|
1020 |
|
1021 2013-12-10 Werner Lemberg <wl@gnu.org> |
|
1022 |
|
1023 [autofit] s/DFLT/NONE/, s/dflt/none/. |
|
1024 |
|
1025 2013-12-10 Werner Lemberg <wl@gnu.org> |
|
1026 |
|
1027 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/. |
|
1028 |
|
1029 2013-12-10 Werner Lemberg <wl@gnu.org> |
|
1030 |
|
1031 [truetype] Fix scaling of vertical phantom points. |
|
1032 |
|
1033 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and |
|
1034 pp4.x also. |
|
1035 |
|
1036 2013-12-10 Werner Lemberg <wl@gnu.org> |
|
1037 |
|
1038 [truetype] Fix positioning of composite glyphs. |
|
1039 Problem reported by Nigel Tao <nigeltao@golang.org>. |
|
1040 |
|
1041 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts |
|
1042 the glyph (component) by a fractional value computed from the LSB |
|
1043 phantom point. This is wrong, since the horizontal phantom points |
|
1044 get rounded horizontally later on. |
|
1045 |
|
1046 2013-12-08 Werner Lemberg <wl@gnu.org> |
|
1047 |
|
1048 * Version 2.5.2 released. |
|
1049 ========================= |
|
1050 |
|
1051 |
|
1052 Tag sources with `VER-2-5-2'. |
|
1053 |
|
1054 * docs/VERSION.DLL: Update documentation and bump version number to |
|
1055 2.5.2. |
|
1056 |
|
1057 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, |
|
1058 builds/windows/vc2005/index.html, |
|
1059 builds/windows/vc2008/freetype.vcproj, |
|
1060 builds/windows/vc2008/index.html, |
|
1061 builds/windows/vc2010/freetype.vcxproj, |
|
1062 builds/windows/vc2010/index.html, |
|
1063 builds/windows/visualc/freetype.dsp, |
|
1064 builds/windows/visualc/freetype.vcproj, |
|
1065 builds/windows/visualc/index.html, |
|
1066 builds/windows/visualce/freetype.dsp, |
|
1067 builds/windows/visualce/freetype.vcproj, |
|
1068 builds/windows/visualce/index.html, |
|
1069 builds/wince/vc2005-ce/freetype.vcproj, |
|
1070 builds/wince/vc2005-ce/index.html, |
|
1071 builds/wince/vc2008-ce/freetype.vcproj, |
|
1072 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/. |
|
1073 |
|
1074 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. |
|
1075 |
|
1076 * builds/unix/configure.raw (version_info): Set to 17:1:11. |
|
1077 * CMakeLists.txt (VERSION_PATCH): Set to 2. |
|
1078 * docs/CHANGES: Updated. |
|
1079 |
|
1080 2013-12-07 Werner Lemberg <wl@gnu.org> |
|
1081 |
|
1082 [truetype] Next round in phantom point handling. |
|
1083 |
|
1084 Greg Hitchcock provided very interesting insights into the |
|
1085 complicated history of the horizontal positions of the TSB and BSB |
|
1086 phantom points. |
|
1087 |
|
1088 * src/truetype/ttgload.c (TT_LOADER_SET_PP) |
|
1089 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and |
|
1090 `grayscale_hinting' flags as conditionals for the x position of TSB |
|
1091 and BSB. |
|
1092 |
|
1093 2013-12-05 Werner Lemberg <wl@gnu.org> |
|
1094 |
|
1095 * builds/freetype.mk (FT_CC): Removed. Unused. |
|
1096 |
|
1097 2013-12-04 Werner Lemberg <wl@gnu.org> |
|
1098 |
|
1099 [sfnt] Fix handling of embedded bitmap strikes. |
|
1100 |
|
1101 This corrects the commit from 2013-11-21. Problem reported by |
|
1102 Andrey Panov <panov@canopus.iacp.dvo.ru>. |
|
1103 |
|
1104 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to |
|
1105 detect excessive bytes for bit-aligned bitmaps. |
|
1106 |
|
1107 2013-12-03 Werner Lemberg <wl@gnu.org> |
|
1108 |
|
1109 [truetype] Remove dead code. |
|
1110 |
|
1111 Reported by Nigel Tao <nigeltao@golang.org>. |
|
1112 |
|
1113 * include/internal/tttypes.h (TT_LoaderRec): Remove unused |
|
1114 `preserve_pps' field. |
|
1115 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated. |
|
1116 |
|
1117 2013-12-03 Werner Lemberg <wl@gnu.org> |
|
1118 |
|
1119 [truetype] Fix phantom point handling. |
|
1120 |
|
1121 This is a further improvement to the changes from 2013-11-06. |
|
1122 |
|
1123 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points |
|
1124 are rounded horizontally, vertical ones are rounded vertically. |
|
1125 (TT_LOADER_SET_PP): The horizontal position of vertical phantom |
|
1126 points in pre-ClearType mode is zero, as shown in the OpenType |
|
1127 specification. |
|
1128 |
|
1129 2013-12-02 Werner Lemberg <wl@gnu.org> |
|
1130 |
|
1131 [truetype] Fix change from 2013-11-20. |
|
1132 |
|
1133 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>. |
|
1134 |
|
1135 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to |
|
1136 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a |
|
1137 `IS_HINTED' clause. |
|
1138 Also remove redundant check using `maxSizeOfInstructions' – in |
|
1139 simple glyphs, the bytecode data comes before the outline data, and |
|
1140 a validity test for this is already present. |
|
1141 |
|
1142 2013-11-27 Werner Lemberg <wl@gnu.org> |
|
1143 |
|
1144 [autofit] Fix use of dumping functions in `ftgrid' demo program. |
|
1145 |
|
1146 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro. |
|
1147 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, |
|
1148 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to |
|
1149 handle output to stdout. |
|
1150 Use AF_DUMP. |
|
1151 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, |
|
1152 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed. |
|
1153 |
|
1154 2013-11-25 Werner Lemberg <wl@gnu.org> |
|
1155 |
|
1156 * Version 2.5.1 released. |
|
1157 ========================= |
|
1158 |
|
1159 |
|
1160 Tag sources with `VER-2-5-1'. |
|
1161 |
|
1162 * docs/VERSION.DLL: Update documentation and bump version number to |
|
1163 2.5.1. |
|
1164 |
|
1165 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, |
|
1166 builds/windows/vc2005/index.html, |
|
1167 builds/windows/vc2008/freetype.vcproj, |
|
1168 builds/windows/vc2008/index.html, |
|
1169 builds/windows/vc2010/freetype.vcxproj, |
|
1170 builds/windows/vc2010/index.html, |
|
1171 builds/windows/visualc/freetype.dsp, |
|
1172 builds/windows/visualc/freetype.vcproj, |
|
1173 builds/windows/visualc/index.html, |
|
1174 builds/windows/visualce/freetype.dsp, |
|
1175 builds/windows/visualce/freetype.vcproj, |
|
1176 builds/windows/visualce/index.html, |
|
1177 builds/wince/vc2005-ce/freetype.vcproj, |
|
1178 builds/wince/vc2005-ce/index.html, |
|
1179 builds/wince/vc2008-ce/freetype.vcproj, |
|
1180 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/. |
|
1181 |
|
1182 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. |
|
1183 |
|
1184 * builds/unix/configure.raw (version_info): Set to 17:0:11. |
|
1185 * CMakeLists.txt (VERSION_PATCH): Set to 1. |
|
1186 * docs/CHANGES, docs/release: Updated. |
|
1187 |
|
1188 2013-11-23 Werner Lemberg <wl@gnu.org> |
|
1189 |
|
1190 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'. |
|
1191 |
|
1192 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS, |
|
1193 TRICK_NAMES_COUNT): Updated. |
|
1194 (trick_names): Add family name for the two fonts. |
|
1195 |
|
1196 2013-11-23 Werner Lemberg <wl@gnu.org> |
|
1197 |
|
1198 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo. |
|
1199 |
|
1200 2013-11-21 Werner Lemberg <wl@gnu.org> |
|
1201 |
|
1202 [sfnt] Typo. |
|
1203 |
|
1204 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. |
|
1205 |
|
1206 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width' |
|
1207 value if the font lacks an `OS/2' table. |
|
1208 |
|
1209 2013-11-21 Werner Lemberg <wl@gnu.org> |
|
1210 |
|
1211 [sfnt] Improve handling of buggy embedded bitmap strikes. |
|
1212 |
|
1213 We are now able to successfully load `AppleMyoungJo.ttf'. |
|
1214 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. |
|
1215 |
|
1216 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph |
|
1217 format. |
|
1218 |
|
1219 2013-11-20 Werner Lemberg <wl@gnu.org> |
|
1220 |
|
1221 [truetype] Don't trust `maxp's `maxSizeOfInstructions'. |
|
1222 |
|
1223 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see |
|
1224 |
|
1225 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html |
|
1226 |
|
1227 for details. |
|
1228 |
|
1229 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep' |
|
1230 tables also for setting `autohint'. |
|
1231 |
|
1232 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from |
|
1233 `TT_Process_Composite_Glyph' for handling unreliable values of |
|
1234 `maxSizeOfInstructions'. |
|
1235 |
|
1236 2013-11-16 Werner Lemberg <wl@gnu.org> |
|
1237 |
|
1238 [sfnt] Fix `OS/2' table version 5 support. |
|
1239 |
|
1240 We now follow the `official' announcement from Microsoft (on the |
|
1241 OpenType mailing list, which unfortunately hasn't a public archive). |
|
1242 |
|
1243 * include/freetype/tttables.h (TT_OS2): |
|
1244 s/usLowerPointSize/usLowerOpticalPointSize/, |
|
1245 s/usUpperPointSize/usUpperOpticalPointSize/. |
|
1246 |
|
1247 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct |
|
1248 default values. |
|
1249 |
|
1250 2013-11-13 Werner Lemberg <wl@gnu.org> |
|
1251 |
|
1252 * builds/unix/ft2unix.h: Remove. No longer necessary. |
|
1253 |
|
1254 * builds/unix/install.mk (install): Updated. |
|
1255 |
|
1256 2013-11-13 Werner Lemberg <wl@gnu.org> |
|
1257 |
|
1258 Simplify header file hierarchy. |
|
1259 |
|
1260 This large patch changes the header file directory layout from |
|
1261 `include/freetype/...' to `include/...', effectively removing one |
|
1262 level. Since the file `ft2build.h' is also located in `include' |
|
1263 (and it stays there even after installation), all FreeType header |
|
1264 files are now in a single directory. |
|
1265 |
|
1266 Applications that use (a) `freetype-config' or FreeType's |
|
1267 `pkg-config' file to get the include directory for the compiler, and |
|
1268 (b) the documented way for header inclusion like |
|
1269 |
|
1270 #include <ft2build.h> |
|
1271 #include FT_FREETYPE_H |
|
1272 ... |
|
1273 |
|
1274 don't need any change to the source code. |
|
1275 |
|
1276 * include/freetype/*: Move up to... |
|
1277 * include/*: ... this directory. |
|
1278 |
|
1279 * builds/amiga/include/freetype/*: Move up to... |
|
1280 * builds/amiga/include/*: ... this directory. |
|
1281 |
|
1282 */*: Essentially do `s@/freetype/@/@' where appropriate. |
|
1283 |
|
1284 * CMakeList.txt: Simplify. |
|
1285 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For |
|
1286 `--cflags', return a single directory. |
|
1287 * builds/unix/install.mk (install): No longer try to remove `cache' |
|
1288 and `internal' subdirectories; instead, remove the `freetype' |
|
1289 subdirectory. |
|
1290 |
|
1291 2013-11-12 Werner Lemberg <wl@gnu.org> |
|
1292 |
|
1293 [truetype] Fix last `truetype' commit. |
|
1294 |
|
1295 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position. |
|
1296 Return error value. |
|
1297 (load_truetype_glyph): Updated. |
|
1298 |
|
1299 2013-11-10 Werner Lemberg <wl@gnu.org> |
|
1300 |
|
1301 * docs/CMAKE: New dummy file. |
|
1302 |
|
1303 2013-11-08 Dave Arnold <darnold@adobe.com> |
|
1304 |
|
1305 [cff] Fix for hints that touch. |
|
1306 |
|
1307 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for |
|
1308 finding index value of insertion point. |
|
1309 |
|
1310 2013-11-06 Werner Lemberg <wl@gnu.org> |
|
1311 |
|
1312 [truetype] Fix handling of phantom points in composite glyphs. |
|
1313 Problem reported by Nigel Tao <nigeltao@golang.org>. |
|
1314 |
|
1315 This is a follow-up commit to the previous one. |
|
1316 |
|
1317 * src/truetype/ttgload.c (load_truetype_glyph): Call |
|
1318 `tt_get_metrics' after loading the glyph header. |
|
1319 |
|
1320 2013-11-06 Werner Lemberg <wl@gnu.org> |
|
1321 |
|
1322 [truetype] Improve emulation of vertical metrics. |
|
1323 |
|
1324 This commit also improves the start values of vertical phantom |
|
1325 points. Kudos to Greg Hitchcock for help. |
|
1326 |
|
1327 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass |
|
1328 `yMax' value. Replace code with fixed Microsoft definition. |
|
1329 (tt_get_metrics): Updated. |
|
1330 (TT_LOADER_SET_PP): Add explanation how to initialize phantom |
|
1331 points, taken from both the OpenType specification and private |
|
1332 communication with Greg (which will eventually be added to the |
|
1333 standard). |
|
1334 Fix horizontal position of `pp3' and `pp4'. |
|
1335 |
|
1336 * src/truetype/ttgload.h: Updated. |
|
1337 |
|
1338 * src/truetype/ttdriver.c (tt_get_advances): Updated. |
|
1339 |
|
1340 * docs/CHANGES: Updated. |
|
1341 |
|
1342 2013-11-05 Werner Lemberg <wl@gnu.org> |
|
1343 |
|
1344 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/. |
|
1345 PlatformToolSet version 110 is for VC2012. |
|
1346 |
|
1347 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>. |
|
1348 |
|
1349 2013-11-05 Werner Lemberg <wl@gnu.org> |
|
1350 |
|
1351 [truetype] Correctly reset point tags for glyph components. |
|
1352 Problem reported by Nigel Tao <nigeltao@golang.org>. |
|
1353 |
|
1354 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop. |
|
1355 |
|
1356 2013-11-02 Werner Lemberg <wl@gnu.org> |
|
1357 |
|
1358 [truetype] Fix GETINFO opcode handling of subpixel hinting bits. |
|
1359 |
|
1360 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to |
|
1361 get info on subpixel hinting. |
|
1362 |
|
1363 * docs/CHANGES: Updated. |
|
1364 |
|
1365 2013-11-02 Werner Lemberg <wl@gnu.org> |
|
1366 |
|
1367 Fix Savannah bug #40451. |
|
1368 |
|
1369 Simply apply the patch from the bug report. |
|
1370 |
|
1371 * builds/unix/ftconfig.in, builds/vms/ftconfig.h, |
|
1372 include/freetype/config/ftconfig.h: The used #pragma directives only |
|
1373 work with gcc versions 4.6 and higher. |
|
1374 |
|
1375 2013-11-01 Werner Lemberg <wl@gnu.org> |
|
1376 |
|
1377 * docs/CHANGES: Updated. |
|
1378 |
|
1379 2013-11-01 Werner Lemberg <wl@gnu.org> |
|
1380 |
|
1381 [truetype] Minor code refactoring. |
|
1382 |
|
1383 Two benefits: The allocated FDEF (and IDEF) array gets slightly |
|
1384 smaller, and the `ttdebug' demo program has access to function |
|
1385 numbers without additional costs. |
|
1386 |
|
1387 Fortunately, no changes to FontForge are necessary – this is the |
|
1388 only external TrueType debugger I know of, but others may exist and |
|
1389 should check the code accordingly. |
|
1390 |
|
1391 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and |
|
1392 `Cur_End' with a pointer to the corresponding `TT_DefRecord' |
|
1393 structure. |
|
1394 |
|
1395 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF, |
|
1396 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>): |
|
1397 Updated. |
|
1398 |
|
1399 2013-10-27 Werner Lemberg <wl@gnu.org> |
|
1400 |
|
1401 [sfnt] Implement support for `OS/2' table version 5. |
|
1402 |
|
1403 See |
|
1404 |
|
1405 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism |
|
1406 |
|
1407 for the announcement. |
|
1408 |
|
1409 * include/freetype/tttables.h (TT_OS2): Add fields |
|
1410 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns |
|
1411 this structure only as a pointer through `FT_Get_Sfnt_Table', there |
|
1412 shouldn't be any ABI problems. |
|
1413 |
|
1414 * src/sfnt/ttload.c (tt_face_load_os2): Implement it. |
|
1415 |
|
1416 * docs/CHANGES: Updated. |
|
1417 |
|
1418 2013-10-24 Werner Lemberg <wl@gnu.org> |
|
1419 |
|
1420 * README.git, docs/CHANGES, docs/INSTALL: Updated. |
|
1421 |
|
1422 2013-10-24 John Cary <cary@txcorp.com> |
|
1423 |
|
1424 Provide cmake support. |
|
1425 |
|
1426 * CMakeLists.txt: New file. |
|
1427 |
|
1428 2013-10-23 Kenneth Miller <kennethadammiller@yahoo.com> |
|
1429 Werner Lemberg <wl@gnu.org> |
|
1430 |
|
1431 Provide support for x64 builds in Visual C++ project files. |
|
1432 |
|
1433 * src/builds/win32: Renamed to... |
|
1434 * src/builds/windows: This. |
|
1435 |
|
1436 * src/builds/windows/vc2010/*: Updated to handle x64 target. |
|
1437 |
|
1438 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where |
|
1439 appropriate. |
|
1440 |
|
1441 2013-10-22 Werner Lemberg <wl@gnu.org> |
|
1442 |
|
1443 * src/base/md5.c, src/base/md5.h: Updated to recent version. |
|
1444 |
|
1445 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'. |
|
1446 |
|
1447 The canonical URL to get updates for this file is |
|
1448 |
|
1449 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/ |
|
1450 |
|
1451 as the author told me in private communication. |
|
1452 |
|
1453 2013-10-19 Werner Lemberg <wl@gnu.org> |
|
1454 |
|
1455 [autofit] s/SMALL_TOP/X_HEIGHT/. |
|
1456 |
|
1457 * src/autofit/afblue.dat: Updated. |
|
1458 |
|
1459 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
|
1460 |
|
1461 * src/autofit/aflatin.c, src/autofit/aflatin.h, |
|
1462 src/autofit/atlatin2.c: Updated. |
|
1463 |
|
1464 2013-10-19 Werner Lemberg <wl@gnu.org> |
|
1465 |
|
1466 * src/autofit/afblue.dat: s/MINOR/DESCENDER/. |
|
1467 |
|
1468 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
|
1469 |
|
1470 2013-10-16 Werner Lemberg <wl@gnu.org> |
|
1471 |
|
1472 [autofit] Add description strings to script entries. |
|
1473 |
|
1474 Currently, this is unused. |
|
1475 |
|
1476 * src/autofit/afscript.h: Do it. |
|
1477 * src/autofit/afglobal.c, src/autofit/afpic.c, |
|
1478 src/autofit/aftypes.h: Updated. |
|
1479 |
|
1480 2013-10-16 Werner Lemberg <wl@gnu.org> |
|
1481 |
|
1482 [autofit] Improve tracing message for extra light flag. |
|
1483 |
|
1484 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it. |
|
1485 |
|
1486 2013-10-15 Chongyu Zhu <lembacon@gmail.com> |
|
1487 |
|
1488 [arm] Fix thumb2 inline assembly under LLVM. |
|
1489 |
|
1490 When using `ADD' with an immediate operand, the instruction is |
|
1491 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the |
|
1492 immediate operand cannot exceed 4095. It will fail to compile with |
|
1493 LLVM. |
|
1494 |
|
1495 However, in GCC, due to some legacy compatibility considerations, |
|
1496 `ADD.W' will be automatically emitted when the immediate operand is |
|
1497 larger than 4095. |
|
1498 |
|
1499 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h |
|
1500 (FT_MulFix_arm) [__GNUC__]: Support clang compiler. |
|
1501 |
|
1502 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto. |
|
1503 |
|
1504 2013-10-12 Werner Lemberg <wl@gnu.org> |
|
1505 |
|
1506 [autofit] Improve tracing of `latin' hinter. |
|
1507 |
|
1508 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue |
|
1509 zone types. |
|
1510 (af_latin_metrics_scale_dim): Report scaling changes due to x height |
|
1511 alignment. |
|
1512 Report scaled stroke width and blue zone values. |
|
1513 |
|
1514 2013-10-03 Dave Arnold <darnold@adobe.com> |
|
1515 |
|
1516 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero. |
|
1517 |
|
1518 Note that the old code avoided using a region of the piecewise |
|
1519 linear function where the slope was zero. The recovery was to use a |
|
1520 different section of the function, which produced a different, |
|
1521 incorrect amount of darkening. |
|
1522 |
|
1523 2013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us> |
|
1524 |
|
1525 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'. |
|
1526 |
|
1527 2013-10-02 Dave Arnold <darnold@adobe.com> |
|
1528 |
|
1529 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount. |
|
1530 |
|
1531 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect |
|
1532 is to use a previous darkening amount when producing an unhinted, |
|
1533 unscaled outline. This can cause autohint samples in ftgrid and |
|
1534 ftview to be based on darkened CFF outlines instead of unhinted, |
|
1535 undarkened ones. |
|
1536 |
|
1537 2013-09-29 Dave Arnold <darnold@adobe.com> |
|
1538 |
|
1539 Fix Savannah bug #39295. |
|
1540 |
|
1541 The bug was caused by switching to the initial hintmap (the one in |
|
1542 effect when `moveto' executes) just before drawing the final element |
|
1543 in the charstring. This ensured that the path was closed (in both |
|
1544 Character Space and Device Space). But if the final element was a |
|
1545 curve and if the final hintmap was different enough from the initial |
|
1546 one, then the curve was visibly distorted. |
|
1547 |
|
1548 The first part of the fix is to draw the final curve using the final |
|
1549 hintmap as specified by the charstring. This corrects the |
|
1550 distortion but does not ensure closing in Device Space. It may |
|
1551 require the rasterizer to automatically generate an extra closing |
|
1552 line. Depending on the hintmap differences, this line could be from |
|
1553 zero to a couple pixels in length. |
|
1554 |
|
1555 The second part of the fix covers the case where the charstring |
|
1556 subpath is closed with an explicit line. We now modify that line's |
|
1557 end point to avoid the distortion. |
|
1558 |
|
1559 Some glyphs in the bug report font (TexGyreHeros-Regular) that show |
|
1560 the change are: |
|
1561 |
|
1562 25ppem S (98) |
|
1563 24ppem eight (52) |
|
1564 25.5ppem p (85) |
|
1565 |
|
1566 Curves at the *end* of a subpath are no longer distorted. However, |
|
1567 some of these glyphs have bad hint substitutions in the middle of a |
|
1568 subpath, and these are not affected. |
|
1569 |
|
1570 The patch has been tested with a set of 106 fonts that shipped with |
|
1571 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from |
|
1572 Google Fonts. There are 1.5 million glyphs, of which some 20k are |
|
1573 changed with the fix. A sampling of a few hundred of these changes |
|
1574 have been examined more closely, and the changes look good (or at |
|
1575 least acceptable). |
|
1576 |
|
1577 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing' |
|
1578 to indicate that we synthesize a closepath line. |
|
1579 |
|
1580 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated. |
|
1581 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for |
|
1582 `lineto' operator) and adjust hint zone. |
|
1583 For synthesized closing lines, use end point in first hint zone. |
|
1584 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In |
|
1585 particular, shift the detection of zero-length lines from character |
|
1586 space to device space. |
|
1587 (cf2_glyphpath_closeOpenPath): Remove assertion. |
|
1588 Updated. |
|
1589 |
|
1590 2013-09-25 Werner Lemberg <wl@gnu.org> |
|
1591 |
|
1592 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays. |
|
1593 |
|
1594 2013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
1595 |
|
1596 [bdf, pcf] Refuse non-zero face_index. |
|
1597 |
|
1598 Suggested by Akira Tagoh, see |
|
1599 |
|
1600 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html |
|
1601 |
|
1602 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument' |
|
1603 error if the font could be opened but non-zero `face_index' is |
|
1604 given. |
|
1605 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto. |
|
1606 |
|
1607 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED |
|
1608 macro for `face_index' because it is validated later. |
|
1609 |
|
1610 2013-09-23 Werner Lemberg <wl@gnu.org> |
|
1611 |
|
1612 Fix Savannah bug #40090. |
|
1613 |
|
1614 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit |
|
1615 306f8c5d (from 2013-08-25) affecting this function. |
|
1616 |
|
1617 2013-09-22 Werner Lemberg <wl@gnu.org> |
|
1618 |
|
1619 [autofit] Disunify Cyrillic and Greek handling from Latin. |
|
1620 |
|
1621 * src/autofit/afscript.h: Add Cyrillic and Greek. |
|
1622 |
|
1623 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK, |
|
1624 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic. |
|
1625 (AF_BLUE_STRINGSET_LATN): Fix typo. |
|
1626 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
|
1627 |
|
1628 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New |
|
1629 arrays. |
|
1630 (af_grek_script_class, af_cyrl_script_class): New scripts. |
|
1631 * src/autofit/aflatin.h: Updated. |
|
1632 |
|
1633 2013-09-20 Werner Lemberg <wl@gnu.org> |
|
1634 |
|
1635 * docs/CHANGES: Updated. |
|
1636 |
|
1637 2013-09-20 Behdad Esfahbod <behdad@behdad.org> |
|
1638 |
|
1639 Fix vertical size of emboldened glyphs. |
|
1640 |
|
1641 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709 |
|
1642 |
|
1643 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY' |
|
1644 also. |
|
1645 |
|
1646 2013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
1647 |
|
1648 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation |
|
1649 algorithm description. |
|
1650 |
|
1651 2013-09-11 Werner Lemberg <wl@gnu.org> |
|
1652 |
|
1653 [autofit] Improve Hebrew rendering. |
|
1654 |
|
1655 This change introduces a new blue zone property |
|
1656 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short |
|
1657 top segments. |
|
1658 |
|
1659 * src/autofit/afblue.dat: Fix Hebrew blue strings. |
|
1660 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP. |
|
1661 |
|
1662 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro. |
|
1663 |
|
1664 * src/autofit/afblue.c, src/autofit/afblue.h: Updated. |
|
1665 |
|
1666 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle |
|
1667 `AF_LATIN_IS_LONG_BLUE'. |
|
1668 |
|
1669 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro. |
|
1670 |
|
1671 2013-08-28 Behdad Esfahbod <behdad@google.com> |
|
1672 |
|
1673 [sfnt] Fix frame access while reading WOFF table directory. |
|
1674 |
|
1675 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame |
|
1676 while reading the directory entries for the whole loop. |
|
1677 |
|
1678 2013-08-29 Werner Lemberg <wl@gnu.org> |
|
1679 Behdad Esfahbod <behdad@google.com> |
|
1680 |
|
1681 Implement support for WOFF containers. |
|
1682 |
|
1683 We simply synthesize a SFNT from the WOFF, create a memory stream |
|
1684 for the new data, and load the SFNT as usual. |
|
1685 |
|
1686 Does NOT add any API to access WOFF metadata or private blocks. |
|
1687 |
|
1688 * include/freetype/internal/tttypes.h (WOFF_HeaderRec, |
|
1689 WOFF_TableRec): New structures. |
|
1690 |
|
1691 * include/freetype/tttags.h (TTAG_wOFF): New macro. |
|
1692 |
|
1693 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling |
|
1694 `open_face'. |
|
1695 |
|
1696 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include |
|
1697 `FT_GZIP_H'. |
|
1698 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for |
|
1699 writing to a stream. |
|
1700 (sfnt_stream_close, compare_offsets, woff_open_font): New functions. |
|
1701 (sfnt_open_font): Handle `TTAG_wOFF'. |
|
1702 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'. |
|
1703 |
|
1704 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling |
|
1705 `sfnt->init_face'. |
|
1706 |
|
1707 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an |
|
1708 argument so that a changed stream survives. |
|
1709 Update callers. |
|
1710 |
|
1711 2013-08-28 Werner Lemberg <wl@gnu.org> |
|
1712 |
|
1713 [gzip] New function `FT_Gzip_Uncompress'. |
|
1714 |
|
1715 This is modeled after zlib's `uncompress' function. We need this |
|
1716 for WOFF support. |
|
1717 |
|
1718 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress): |
|
1719 New function. |
|
1720 |
|
1721 * src/gzip/rules.mk: Rewrite to better reflect dependencies. |
|
1722 |
|
1723 2013-08-28 Werner Lemberg <wl@gnu.org> |
|
1724 |
|
1725 [autofit] Fix `make multi' compilation. |
|
1726 |
|
1727 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include |
|
1728 `afblue.h' but `aftypes.h'. |
|
1729 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'. |
|
1730 |
|
1731 2013-08-28 Werner Lemberg <wl@gnu.org> |
|
1732 |
|
1733 [autofit] Fix C++ compilation. |
|
1734 |
|
1735 * src/autofit/afglobal.c (af_face_globals_get_metrics), |
|
1736 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c |
|
1737 (af_deva_script_class): Use proper casts. |
|
1738 |
|
1739 2013-08-27 Behdad Esfahbod <behdad@google.com> |
|
1740 |
|
1741 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos. |
|
1742 |
|
1743 2013-08-27 Behdad Esfahbod <behdad@google.com> |
|
1744 |
|
1745 FT_Open_Face: Improve external stream handling. |
|
1746 |
|
1747 If the font's `clazz->init_face' function wants to swap to new |
|
1748 stream, handling of whether original stream was external could |
|
1749 result to either memory leak or double free. Mark externality into |
|
1750 face flags before calling `init_face' such that the clazz can handle |
|
1751 external streams properly. |
|
1752 |
|
1753 * src/base/ftobjs.c (FT_Open_Face): Move code to set |
|
1754 FT_FACE_FLAG_EXTERNAL_STREAM to... |
|
1755 (open_face): This function. |
|
1756 |
|
1757 2013-08-27 Werner Lemberg <wl@gnu.org> |
|
1758 |
|
1759 Remove `FT_SqrtFixed' function. |
|
1760 |
|
1761 It's no longer used. |
|
1762 |
|
1763 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it. |
|
1764 |
|
1765 2013-08-27 Werner Lemberg <wl@gnu.org> |
|
1766 |
|
1767 [autofit] While tracing, report script names instead of ID values. |
|
1768 |
|
1769 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]: |
|
1770 New array. |
|
1771 * src/autofit/afglobal.h: Updated. |
|
1772 |
|
1773 * src/autofit/afcjk.c (af_cjk_metrics_init_widths, |
|
1774 af_cjk_hint_edges): Use `af_script_names'. |
|
1775 * src/autofit/aflatin.c (af_latin_metrics_init_widths, |
|
1776 af_latin_hint_edges): Ditto. |
|
1777 |
|
1778 2013-08-26 Werner Lemberg <wl@gnu.org> |
|
1779 |
|
1780 [autofit] Report used script while hinting a glyph. |
|
1781 |
|
1782 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c |
|
1783 (af_latin_hint_edges): Implement it. |
|
1784 |
|
1785 2013-08-26 Werner Lemberg <wl@gnu.org> |
|
1786 |
|
1787 [autofit] Add support for Hebrew script. |
|
1788 |
|
1789 * src/autofit/afblue.dat: Add blue strings for Hebrew. |
|
1790 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
|
1791 |
|
1792 * src/autofit/aflatin.c (af_hebr_uniranges): New array. |
|
1793 (af_hebr_script_class): New script. |
|
1794 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated. |
|
1795 |
|
1796 2013-08-26 Werner Lemberg <wl@gnu.org> |
|
1797 |
|
1798 [autofit] Improve tracing messages. |
|
1799 |
|
1800 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script |
|
1801 ID in tracing message. |
|
1802 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner |
|
1803 loop. |
|
1804 Improve tracing messages. |
|
1805 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable |
|
1806 `num_actions' to count hinting actions. |
|
1807 Improve tracing messages. |
|
1808 |
|
1809 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention |
|
1810 script ID in tracing message. |
|
1811 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing |
|
1812 messages. |
|
1813 |
|
1814 2013-08-26 Werner Lemberg <wl@gnu.org> |
|
1815 |
|
1816 Better tracing of loaded glyphs. |
|
1817 |
|
1818 Previously, the loading of a glyph was traced at level 4, if at all. |
|
1819 With this change, all font loading routines emit a tracing message |
|
1820 at level 1, making it easier to select tracing output (for example |
|
1821 using F2_DEBUG="any:1 afhints:7 aflatin:7"). |
|
1822 |
|
1823 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message. |
|
1824 * src/cff/cffdrivr.c (cff_glyph_load): Ditto. |
|
1825 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing |
|
1826 messages. |
|
1827 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing |
|
1828 message. |
|
1829 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto. |
|
1830 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message. |
|
1831 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto. |
|
1832 * src/type1/t1gload.c (T1_Load_Glyph): Ditto. |
|
1833 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto. |
|
1834 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. |
|
1835 |
|
1836 2013-08-26 Werner Lemberg <wl@gnu.org> |
|
1837 |
|
1838 [autofit] Fix script selection. |
|
1839 |
|
1840 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use |
|
1841 `AF_SCRIPT_DFLT', not value 0. |
|
1842 Simplify code. |
|
1843 |
|
1844 * src/autofit/afscript.h: Sort by script name. |
|
1845 |
|
1846 2013-08-26 Werner Lemberg <wl@gnu.org> |
|
1847 |
|
1848 [autofit] Make `dummy' hinter work as expected. |
|
1849 |
|
1850 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling |
|
1851 information. |
|
1852 (af_dummy_hints_apply): Scale the glyphs. |
|
1853 |
|
1854 2013-08-25 Werner Lemberg <wl@gnu.org> |
|
1855 |
|
1856 [autofit] Make `cjk' module use blue stringsets. |
|
1857 |
|
1858 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed. |
|
1859 (af_cjk_hani_blue_chars): Removed. |
|
1860 (AF_CJK_BLUE_TYPE_*): Removed. |
|
1861 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with |
|
1862 AF_BLUE_STRING_MAX_LEN. |
|
1863 Change loops to use offsets (in file `afblue.h') into the new arrays |
|
1864 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c'). |
|
1865 Instead of three dimensions (as used in the old blue string array) |
|
1866 we now use properties to do the same, saving one loop nesting level. |
|
1867 |
|
1868 * src/autofit/afcjk.h: Remove old enumeration values superseded by |
|
1869 the new data in `afblue.h'. |
|
1870 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE, |
|
1871 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in |
|
1872 `af_cjk_metrics_init_blues'. |
|
1873 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value. |
|
1874 (AF_CJK_BLUE_IS_TOP): Renamed to... |
|
1875 (AF_CJK_BLUE_TOP): This. |
|
1876 (AF_CJK_MAX_BLUES): Remove. |
|
1877 (AF_CJKAxisRec): Updated. |
|
1878 |
|
1879 2013-08-25 Werner Lemberg <wl@gnu.org> |
|
1880 |
|
1881 [autofit] Typo. |
|
1882 |
|
1883 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use |
|
1884 cast. |
|
1885 |
|
1886 2013-08-25 Werner Lemberg <wl@gnu.org> |
|
1887 |
|
1888 [autofit] Synchronize `cjk' with `latin' module (and vice versa). |
|
1889 |
|
1890 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing |
|
1891 messages. |
|
1892 (af_cjk_metrics_init_blues): Don't pass blue string array as |
|
1893 argument but use the global array directly. |
|
1894 Use `outline' directly. |
|
1895 Update and add tracing messages. |
|
1896 (af_cjk_metrics_init): Simplify code. |
|
1897 (af_cjk_metrics_scale_dim): Improve tracing message. |
|
1898 (af_cjk_metrics_scale): Synchronize. |
|
1899 |
|
1900 * src/autofit/aflatin.c (af_latin_metrics_init_widths, |
|
1901 af_latin_metrics_init_blues): Improve and add tracing messages. |
|
1902 |
|
1903 2013-08-25 Werner Lemberg <wl@gnu.org> |
|
1904 |
|
1905 [autofit] Make `latin' module use blue stringsets. |
|
1906 |
|
1907 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed. |
|
1908 (af_latin_blue_chars): Removed. |
|
1909 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS |
|
1910 with AF_BLUE_STRING_MAX_LEN. |
|
1911 Change loops to use offsets (in file `afblue.h') into the new arrays |
|
1912 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c'). |
|
1913 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro. |
|
1914 |
|
1915 * src/autofit/aflatin.h: Remove old enumeration values superseded by |
|
1916 the new data in `afblue.h'. |
|
1917 (AF_LATIN_IS_TOP_BLUE): Updated definition. |
|
1918 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro. |
|
1919 (AF_LATIN_MAX_BLUES): Remove. |
|
1920 (AF_LatinAxisRec): Updated. |
|
1921 |
|
1922 2013-08-25 Werner Lemberg <wl@gnu.org> |
|
1923 |
|
1924 [autofit] Add blue stringsets. |
|
1925 |
|
1926 * src/autofit/aftypes.h: Include `afblue.h'. |
|
1927 (AF_ScriptClassRec): Add `blue_stringset' field. |
|
1928 (AF_DEFINE_SCRIPT_CLASS): Updated. |
|
1929 |
|
1930 * src/autofit/autofit.c: Include `afblue.c'. |
|
1931 |
|
1932 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c |
|
1933 (af_dflt_script_class), src/autofit/afindic.c |
|
1934 (af_deva_script_class), src/autofit/aflatin.c |
|
1935 (af_latn_script_class), src/autofit/aflatin2.c |
|
1936 (af_ltn2_script_class): Updated. |
|
1937 |
|
1938 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'. |
|
1939 |
|
1940 2013-08-25 Werner Lemberg <wl@gnu.org> |
|
1941 |
|
1942 [autofit] Introduce data file for blue strings. |
|
1943 |
|
1944 The idea is to have a central file which gets processed by a Perl |
|
1945 script to create proper `.c' and `.h' files using templates. There |
|
1946 are two other reasons to do that: |
|
1947 |
|
1948 . The data file should be easily readable. We use UTF-8 encoding |
|
1949 which then gets converted to single bytes. |
|
1950 |
|
1951 . Since the number of supported scripts will increase soon, the |
|
1952 current usage of blue string arrays is a waste of space. Using |
|
1953 the Perl script it is possible to imitate jagged arrays, |
|
1954 defining enumeration constants as offsets into the arrays. |
|
1955 |
|
1956 This commit only adds files without changing any functionality. |
|
1957 |
|
1958 * src/autofit/afblue.dat: New data file. |
|
1959 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'. |
|
1960 |
|
1961 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files |
|
1962 for... |
|
1963 * src/autofit/afblue.c, src/autofit/afblue.c: New source files. |
|
1964 To avoid a dependency on Perl, we add them too. |
|
1965 |
|
1966 2013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
1967 |
|
1968 [base] Enable new algorithm for `BBox_Cubic_Check'. |
|
1969 |
|
1970 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove |
|
1971 the old one. |
|
1972 Improve comments. |
|
1973 |
|
1974 2013-08-18 Werner Lemberg <wl@gnu.org> |
|
1975 |
|
1976 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit. |
|
1977 |
|
1978 2013-08-18 Werner Lemberg <wl@gnu.org> |
|
1979 |
|
1980 Fix Savannah bug #39804. |
|
1981 |
|
1982 * builds/unix/configure.raw (LIBPNG): Define and export. |
|
1983 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle |
|
1984 libpng. |
|
1985 |
|
1986 2013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
1987 |
|
1988 [base] Clean up BBox_Conic_Check. |
|
1989 |
|
1990 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for |
|
1991 extremum at the segment ends, which are already within the bbox. |
|
1992 Slightly modify calculations. |
|
1993 |
|
1994 2013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
1995 |
|
1996 [base] Finish experimental (disabled) BBox_Cubic_Check implementation. |
|
1997 |
|
1998 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve |
|
1999 accuracy and avoid overflows. |
|
2000 |
|
2001 2013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
2002 |
|
2003 [base] Refactor experimental (disabled) BBox_Cubic_Check. |
|
2004 |
|
2005 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search |
|
2006 as the mirror image of the maximum search implemented here... |
|
2007 (update_max): New function. |
|
2008 |
|
2009 2013-08-06 John Tytgat <John.Tytgat@esko.com> |
|
2010 |
|
2011 Fix Savannah bug #39702. |
|
2012 |
|
2013 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset |
|
2014 != 0'; this stronger test is mandated by the CFF specification. |
|
2015 Fix test for INDEX structures which have one or more empty entries |
|
2016 at the end. |
|
2017 |
|
2018 2013-08-05 Werner Lemberg <wl@gnu.org> |
|
2019 |
|
2020 Fix gcc pragmas, part 2. |
|
2021 |
|
2022 * src/truetype/ttinterp.c (TT_MulFix14_long_long, |
|
2023 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been |
|
2024 introduced with gcc version 4.6. |
|
2025 |
|
2026 2013-08-05 Werner Lemberg <wl@gnu.org> |
|
2027 |
|
2028 Fix gcc pragmas. |
|
2029 |
|
2030 * src/truetype/ttinterp.c (TT_MulFix14_long_long, |
|
2031 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic |
|
2032 pragmas within a function body. |
|
2033 |
|
2034 2013-08-05 Werner Lemberg <wl@gnu.org> |
|
2035 |
|
2036 Fix Savannah bug #39700. |
|
2037 |
|
2038 * builds/unix/ftconfig.h: Synchronize with |
|
2039 `include/freetype/config/ftconfig.h'. |
|
2040 |
|
2041 * builds/vms/ftconfig.h: Ditto. |
|
2042 Make the differences to the master `ftconfig.h' file as small as |
|
2043 possible for easier maintainance. |
|
2044 |
|
2045 2013-08-05 Werner Lemberg <wl@gnu.org> |
|
2046 |
|
2047 [autofit] Improve handling of `near' points. |
|
2048 |
|
2049 Points which are very near to each other are now marked as such. |
|
2050 The `weak' flag is then computed by using the `in' vector of the |
|
2051 first and the `out' vector of the last point of a group of near |
|
2052 points. |
|
2053 |
|
2054 For example, this fixes the rendering of glyph `Oslash' in |
|
2055 `Roboto-Thin.ttf'. |
|
2056 |
|
2057 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'. |
|
2058 |
|
2059 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce |
|
2060 the heuristic value `near_limit' to decide whether the current point |
|
2061 is near to the previous one, then set `AF_FLAG_NEAR' accordingly. |
|
2062 Store good `in' vector (of last non-near point) in |
|
2063 `last_good_in_{x,y}' and use it as an argument to |
|
2064 `ft_corner_is_flat' if necessary. |
|
2065 |
|
2066 2013-08-02 Werner Lemberg <wl@gnu.org> |
|
2067 |
|
2068 * include/freetype/ftcffdrv.h: Improve documentation. |
|
2069 This is based on blog entries from David Lemon and Dave Arnold (both |
|
2070 from Adobe) with kind permission. Dave also helped in |
|
2071 proof-reading. |
|
2072 |
|
2073 2013-08-02 Werner Lemberg <wl@gnu.org> |
|
2074 |
|
2075 [autofit] Move declaration of scripts into separate file. |
|
2076 |
|
2077 This has the benefit that we don't need to duplicate the data at |
|
2078 different places. |
|
2079 |
|
2080 * src/autofit/afscript.h: New file. |
|
2081 |
|
2082 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define |
|
2083 the enumeration values. |
|
2084 |
|
2085 * src/autofit/afglobal.c: Include `afscript.h' to get the script |
|
2086 specific header files. |
|
2087 (af_script_classes): Include `afscript.h' to fill this array. |
|
2088 |
|
2089 * src/autofit/afpic.c: Include `afscript.h' to get the script |
|
2090 specific header files. |
|
2091 (autofit_module_class_pic_init): Include `afscript.h' for |
|
2092 initialization. |
|
2093 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT, |
|
2094 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead. |
|
2095 |
|
2096 * src/autofit/rules.mk (AUTOF_DRV_H): Updated. |
|
2097 |
|
2098 2013-08-02 Werner Lemberg <wl@gnu.org> |
|
2099 |
|
2100 [autofit] Move declaration of writing systems into separate file. |
|
2101 |
|
2102 This has the benefit that we don't need to duplicate the data at |
|
2103 different places. |
|
2104 |
|
2105 * src/autofit/afwrtsys.h: New file. |
|
2106 |
|
2107 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to |
|
2108 define the enumeration values. |
|
2109 |
|
2110 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing |
|
2111 system specific header files. |
|
2112 Include `afpic.h'. |
|
2113 (af_writing_system_classes): Include `afwrtsys.h' to fill this |
|
2114 array. |
|
2115 |
|
2116 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing |
|
2117 system specific header files. |
|
2118 (autofit_module_class_pic_init): Include `afwrtsys.h' for |
|
2119 initialization. |
|
2120 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT, |
|
2121 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use |
|
2122 `AF_WRITING_SYSTEM_MAX' instead. |
|
2123 |
|
2124 2013-08-02 Werner Lemberg <wl@gnu.org> |
|
2125 |
|
2126 [sfnt] Fix compilation with g++. |
|
2127 |
|
2128 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use |
|
2129 cast. |
|
2130 (Load_SBit_Png): Pacify compiler. |
|
2131 |
|
2132 2013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
2133 Werner Lemberg <wl@gnu.org> |
|
2134 |
|
2135 [autofit] Fix `make multi'. |
|
2136 |
|
2137 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY, |
|
2138 FT_LOCAL_ARRAY_DEF): New macros. |
|
2139 |
|
2140 * src/autofit/afglobal.c (af_writing_system_classes, |
|
2141 af_script_classes): Use FT_LOCAL_ARRAY_DEF. |
|
2142 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and |
|
2143 `af_script_classes'. |
|
2144 * src/autofit/afloader.c: Include `afpic.h'. |
|
2145 |
|
2146 2013-08-01 Werner Lemberg <wl@gnu.org> |
|
2147 |
|
2148 Another round of cppcheck nitpicks. |
|
2149 |
|
2150 The call was (from the top-level of the FreeType tree): |
|
2151 |
|
2152 cppcheck --force \ |
|
2153 --enable=all \ |
|
2154 -I /usr/include \ |
|
2155 -I /usr/local/include \ |
|
2156 -I /usr/lib/gcc/i586-suse-linux/4.7/include \ |
|
2157 -I include \ |
|
2158 -I include/freetype \ |
|
2159 -I include/freetype/config \ |
|
2160 -I include/freetype/internal \ |
|
2161 -DFT2_BUILD_LIBRARY \ |
|
2162 . &> cppcheck.log |
|
2163 |
|
2164 using cppcheck git commit f7e93f99. |
|
2165 |
|
2166 Note that cppcheck still can't handle `#include FOO' (with `FOO' a |
|
2167 macro). |
|
2168 |
|
2169 */* Improve variable scopes. |
|
2170 */* Remove redundant initializations which get overwritten. |
|
2171 |
|
2172 * src/gxvalid/*: Comment out redundant code or guard it with |
|
2173 FT_DEBUG_LEVEL_TRACE. |
|
2174 |
|
2175 2013-07-30 Werner Lemberg <wl@gnu.org> |
|
2176 |
|
2177 [autofit] Introduce `writing systems'. |
|
2178 |
|
2179 This patch adds a new top level to the auto-hinter's script class |
|
2180 hierarchy. It defines `writing systems' which can contain multiple |
|
2181 scripts. |
|
2182 |
|
2183 For example, the `latin' writing system (in file `aflatin.c') is |
|
2184 able to support scripts like Latin, Cyrillic, Armenian, etc., which |
|
2185 can be handled similarly. |
|
2186 |
|
2187 Scripts are now named using four-letter OpenType tags. |
|
2188 |
|
2189 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members |
|
2190 to... |
|
2191 (AF_WritingSystemClassRec): This new structure. It holds pointers |
|
2192 to functions which can be shared among related scripts. |
|
2193 (AF_WritingSystem): New enumeration. |
|
2194 (AF_Script): Revised values using four-letter tags. |
|
2195 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro. |
|
2196 (AF_DEFINE_SCRIPT_CLASS): Updated. |
|
2197 |
|
2198 * src/autofit/afglobal.c (af_writing_system_classes): New global, |
|
2199 constant array. |
|
2200 (af_script_classes): Updated. |
|
2201 (af_face_globals_free): Updated. |
|
2202 Remove assertion. |
|
2203 (af_face_globals_get_metrics): Updated. |
|
2204 |
|
2205 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK) |
|
2206 [!AF_CONFIG_OPTION_CJK]: Handle this case. |
|
2207 |
|
2208 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): |
|
2209 Updated. |
|
2210 |
|
2211 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated; |
|
2212 initialize structures for both writing systems and scripts. |
|
2213 * src/autofit/afpic.h: Updated. |
|
2214 (AF_WRITING_SYSTEM_CLASSES_GET): New macro. |
|
2215 |
|
2216 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing |
|
2217 system. |
|
2218 (af_cjk_uniranges): Renamed to... |
|
2219 (af_hani_uniranges): This. |
|
2220 (af_cjk_script_class): Reduced and renamed to... |
|
2221 (af_hani_script_class): This. |
|
2222 * src/autofit/afcjk.h: Updated. |
|
2223 |
|
2224 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing |
|
2225 system. |
|
2226 (af_dummy_script_class): Reduced and renamed to... |
|
2227 (af_dflt_script_class): This. |
|
2228 * src/autofit/afdummy.h: Updated. |
|
2229 |
|
2230 * src/autofit/afindic.c (af_indic_writing_system_class): New writing |
|
2231 system. |
|
2232 (af_indic_uniranges): Renamed to... |
|
2233 (af_deva_uniranges): This. |
|
2234 (af_indic_script_class): Reduced and renamed to... |
|
2235 (af_deva_script_class): This. |
|
2236 * src/autofit/afcjk.h: Updated. |
|
2237 |
|
2238 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing |
|
2239 system. |
|
2240 (af_latin_uniranges): Renamed to... |
|
2241 (af_latn_uniranges): This. |
|
2242 (af_latin_script_class): Reduced and renamed to... |
|
2243 (af_latn_script_class): This. |
|
2244 * src/autofit/aflatin.h: Updated. |
|
2245 |
|
2246 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New |
|
2247 writing system. |
|
2248 (af_latin2_uniranges): Renamed to... |
|
2249 (af_ltn2_uniranges): This. |
|
2250 Synchronize ranges with `latin'. |
|
2251 (af_latin2_script_class): Reduced and renamed to... |
|
2252 (af_ltn2_script_class): This. |
|
2253 * src/autofit/aflatin2.h: Updated. |
|
2254 |
|
2255 2013-07-30 Werner Lemberg <wl@gnu.org> |
|
2256 |
|
2257 [autofit] Variable renaming. |
|
2258 |
|
2259 * src/autofit/aftypes.h (AF_ScriptMetricsRec): |
|
2260 s/clazz/script_class/. |
|
2261 Update all users. |
|
2262 |
|
2263 2013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
2264 |
|
2265 Ignore libpng-config under cross-building configuration, |
|
2266 because it will return the flags for the hosting environment. |
|
2267 |
|
2268 * builds/unix/configure.raw: Ignore libpng-config when |
|
2269 `cross_compiling' == yes. |
|
2270 |
|
2271 2013-07-30 Behdad Esfahbod <behdad@google.com> |
|
2272 |
|
2273 Prevent division by zero by a transparent color. |
|
2274 |
|
2275 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): |
|
2276 Return 0 immediately, when alpha channel is zero. |
|
2277 |
|
2278 2013-07-25 Behdad Esfahbod <behdad@google.com> |
|
2279 |
|
2280 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR. |
|
2281 |
|
2282 Also disambiguate Google's color bitmap tables. |
|
2283 |
|
2284 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR): |
|
2285 New macros. |
|
2286 |
|
2287 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add |
|
2288 TT_SBIT_TABLE_TYPE_CBLC. |
|
2289 |
|
2290 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR. |
|
2291 |
|
2292 * src/sfnt/ttsbit.c (tt_face_load_sbit, |
|
2293 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle |
|
2294 TT_SBIT_TABLE_TYPE_CBLC. |
|
2295 |
|
2296 2013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
2297 |
|
2298 [sfnt] Fix for `make multi' target. |
|
2299 |
|
2300 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF(). |
|
2301 |
|
2302 2013-07-20 Werner Lemberg <wl@gnu.org> |
|
2303 |
|
2304 * docs/INSTALL.GNU: Updated. |
|
2305 |
|
2306 2013-07-20 Behdad Esfahbod <behdad@google.com> |
|
2307 |
|
2308 [sfnt] Fix `sbix' table version handling. |
|
2309 |
|
2310 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]: |
|
2311 USHORT version numbers are to be considered as `minor'. |
|
2312 |
|
2313 2013-07-19 Werner Lemberg <wl@gnu.org> |
|
2314 |
|
2315 [autofit] Fix segment classification for blue zones. |
|
2316 |
|
2317 The old code (essentially unchanged since the very beginning) |
|
2318 incorrectly handled this configuration |
|
2319 |
|
2320 x -o- x |
|
2321 / \ |
|
2322 / \ |
|
2323 / \ |
|
2324 o o |
|
2325 |
|
2326 as flat and this |
|
2327 |
|
2328 o o |
|
2329 / / |
|
2330 x| x| |
|
2331 | | |
|
2332 o---------------o |
|
2333 |
|
2334 as round. (`o' and `x' are on and off points, respectively). |
|
2335 |
|
2336 This is a major change which should improve the rendering results |
|
2337 enormously for many TrueType fonts, especially in the range approx. |
|
2338 20-40ppem, fixing the appearance of many overshoots. |
|
2339 |
|
2340 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the |
|
2341 first and last points of the segment, not the points right before |
|
2342 and after. |
|
2343 |
|
2344 2013-07-19 Behdad Esfahbod <behdad@google.com> |
|
2345 |
|
2346 [sfnt] `sbix' fix-ups. |
|
2347 |
|
2348 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps |
|
2349 are rendered scaled and then the `glyf' outline rendered on top. We |
|
2350 don't support that yet, so just ignore the `glyf' outline and |
|
2351 advertise it as a bitmap-only font. |
|
2352 |
|
2353 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) |
|
2354 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units. |
|
2355 (tt_face_load_sbix_image): Typo. |
|
2356 |
|
2357 2013-07-18 Behdad Esfahbod <behdad@google.com> |
|
2358 |
|
2359 [sfnt] Add support for Apple's `sbix' color bitmap table. |
|
2360 |
|
2361 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen |
|
2362 fields to FT_Short and FT_UShort, respectively. |
|
2363 (TT_SBitTableType): New enumeration. |
|
2364 (TT_FaceRec): Add `sbit_table_type' field. |
|
2365 |
|
2366 * include/freetype/tttags.h (TTAG_sbix): New macro. |
|
2367 |
|
2368 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic |
|
2369 FT_GlyphSlot argument instead FT_Bitmap. |
|
2370 Add flag to control map and metrics handling. |
|
2371 Update all users. |
|
2372 |
|
2373 * src/sfnt/ttsbit.c: Include `ttmtx.h'. |
|
2374 (tt_face_load_eblc): Renamed to... |
|
2375 (tt_face_load_sbit): This. |
|
2376 Handlic `sbix' bitmaps. |
|
2377 (tt_face_free_eblc): Renamed to... |
|
2378 (tt_face_load_sbit): This. |
|
2379 Updated. |
|
2380 (tt_face_load_strike_metrics): Handle `sbix' bitmaps. |
|
2381 (tt_face_load_sbix_image): New function. |
|
2382 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image, |
|
2383 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned, |
|
2384 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png, |
|
2385 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass |
|
2386 and handle load flags. |
|
2387 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better |
|
2388 handle formats 17-19. |
|
2389 Move color to grayscale conversion to... |
|
2390 (tt_face_load_sbit_image): Here. |
|
2391 Handle `sbix' bitmaps. |
|
2392 |
|
2393 * src/sfnt/pngshim.h: Updated. |
|
2394 * src/sfnt/ttsbit.h: Updated. |
|
2395 * src/sfnt/sfdriver.c: Updated. |
|
2396 |
|
2397 2013-07-18 Werner Lemberg <wl@gnu.org> |
|
2398 |
|
2399 [sfnt] Ignore invalid magic number in `head' or `bhed'. |
|
2400 |
|
2401 Other font engines seem to ignore it also. Problem reported by |
|
2402 Hin-Tak Leung <htl10@users.sourceforge.net>. |
|
2403 |
|
2404 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if |
|
2405 we have an invalid magic number. |
|
2406 |
|
2407 2013-07-16 Werner Lemberg <wl@gnu.org> |
|
2408 |
|
2409 [smooth] Fix segfault caused by previous commit. |
|
2410 |
|
2411 * src/smooth/ftgrays.c (gray_set_cell): Always compute |
|
2412 `ras.invalid'. |
|
2413 |
|
2414 2013-07-16 David Turner <digit@google.com> |
|
2415 |
|
2416 [smooth] Improve performance. |
|
2417 |
|
2418 Provide a work-around for an ARM-specific performance bug in GCC. |
|
2419 This speeds up the rasterizer by more than 5%. |
|
2420 |
|
2421 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which |
|
2422 also improves performance on other platforms by a tiny bit (<1%). |
|
2423 |
|
2424 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro. |
|
2425 Use it where appropriate. |
|
2426 |
|
2427 (gray_record_cell, gray_set_cell, gray_move_to, |
|
2428 gray_convert_glyph_inner): Streamline condition handling. |
|
2429 |
|
2430 2013-07-16 David Turner <digit@google.com> |
|
2431 |
|
2432 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14. |
|
2433 |
|
2434 This patch provides slightly optimized versions for ARM, x86, and |
|
2435 x86_64 CPUs if built with GCC. |
|
2436 |
|
2437 Also remove some dead code. |
|
2438 |
|
2439 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long, |
|
2440 TT_DotFix14_long_long): New functions. |
|
2441 |
|
2442 2013-07-16 David Turner <digit@google.com> |
|
2443 |
|
2444 Optimize FT_MulFix for x86_64 GCC builds. |
|
2445 |
|
2446 This patch provides an optimized `FT_MulFix' implementation for |
|
2447 x86_64 machines when FreeType is built with GCC, or compatible |
|
2448 compilers like Clang. |
|
2449 |
|
2450 Example: |
|
2451 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf |
|
2452 |
|
2453 Before: |
|
2454 |
|
2455 Load 4.863 us/op |
|
2456 Load_Advances (Normal) 4.816 us/op |
|
2457 Load_Advances (Fast) 0.028 us/op |
|
2458 Render 2.753 us/op |
|
2459 Get_Glyph 0.463 us/op |
|
2460 Get_CBox 0.077 us/op |
|
2461 Get_Char_Index 0.023 us/op |
|
2462 Iterate CMap 13.898 us/op |
|
2463 New_Face 12.368 us/op |
|
2464 Embolden 0.028 us/op |
|
2465 Get_BBox 0.302 us/op |
|
2466 |
|
2467 After: |
|
2468 |
|
2469 Load 4.617 us/op |
|
2470 Load_Advances (Normal) 4.645 us/op |
|
2471 Load_Advances (Fast) 0.027 us/op |
|
2472 Render 2.789 us/op |
|
2473 Get_Glyph 0.460 us/op |
|
2474 Get_CBox 0.077 us/op |
|
2475 Get_Char_Index 0.024 us/op |
|
2476 Iterate CMap 13.403 us/op |
|
2477 New_Face 12.278 us/op |
|
2478 Embolden 0.028 us/op |
|
2479 Get_BBox 0.301 us/op |
|
2480 |
|
2481 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h |
|
2482 (FT_MulFix_x86_64): New function. |
|
2483 |
|
2484 2013-07-16 David Turner <digit@google.com> |
|
2485 |
|
2486 Speed up ARMv7 support. |
|
2487 |
|
2488 When building for ARMv7 with thumb2 instructions, the optimized |
|
2489 `FT_MulFix_arm' assembly routine was not being used. |
|
2490 |
|
2491 The reason for this is in the `ftconfig.h' header, namely: |
|
2492 |
|
2493 - The assembly routine uses the `smull' instruction which is not |
|
2494 available when generating Thumb-1 machine code. It is available |
|
2495 in Thumb-2 mode, though. |
|
2496 |
|
2497 - The header was written a long time ago before Thumb-2 became |
|
2498 widely popular (e.g. with Android). So it simply doesn't use the |
|
2499 assembly routine if the `__thumb__' built-in macro is defined. |
|
2500 |
|
2501 - When compiling in Thumb-2 mode, the compiler will define both |
|
2502 `__thumb__' and `__thumb2__'. |
|
2503 |
|
2504 By checking for `(__thumb2__ || !__thumb__)', we ensure that the |
|
2505 assembly routine is only avoided when generating Thumb-1 code. |
|
2506 |
|
2507 Given that this is performance-sensitive function, this improves |
|
2508 `ftbench' as follows on a Galaxy Nexus: |
|
2509 |
|
2510 Before (us/op) After (us/op) |
|
2511 |
|
2512 - loading Arial.ttf glyphs at 14 ppem [1] |
|
2513 |
|
2514 Load 34.285 33.098 |
|
2515 |
|
2516 - same operation with the light auto-hinter [2] |
|
2517 |
|
2518 Load 31.317 29.590 |
|
2519 |
|
2520 - same operation without hinting [3] |
|
2521 |
|
2522 Load 6.143 5.376 |
|
2523 |
|
2524 - loading Arial.ttf advances at 14 ppem [4] |
|
2525 |
|
2526 Load_Advances (normal) 34.216 33.016 |
|
2527 Load_Advances (fast) 0.176 0.176 |
|
2528 |
|
2529 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf |
|
2530 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf |
|
2531 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf |
|
2532 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf |
|
2533 |
|
2534 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h |
|
2535 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7. |
|
2536 |
|
2537 2013-06-28 Werner Lemberg <wl@gnu.org> |
|
2538 |
|
2539 * docs/CHANGES: Updated. |
|
2540 |
|
2541 2013-06-27 Werner Lemberg <wl@gnu.org> |
|
2542 |
|
2543 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard. |
|
2544 |
|
2545 2013-06-25 Werner Lemberg <wl@gnu.org> |
|
2546 |
|
2547 [cff] Add darkening limit to `darkening-parameters'. |
|
2548 |
|
2549 * src/cff/cffdrivr.c (cff_property_set): Add check. |
|
2550 |
|
2551 2013-06-25 Werner Lemberg <wl@gnu.org> |
|
2552 |
|
2553 [cff] Add `darkening-parameters' property. |
|
2554 |
|
2555 * include/freetype/ftcffdrv.h: Document it. |
|
2556 |
|
2557 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle |
|
2558 `darkening-parameters' property. |
|
2559 |
|
2560 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array. |
|
2561 |
|
2562 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams' |
|
2563 argument and use it. |
|
2564 Update all callers. |
|
2565 |
|
2566 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy |
|
2567 `darken_params' values. |
|
2568 |
|
2569 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array. |
|
2570 |
|
2571 * src/cff/cffobjs.c (cff_driver_init): Set default values for |
|
2572 `darken_params'. |
|
2573 |
|
2574 2013-06-25 Werner Lemberg <wl@gnu.org> |
|
2575 |
|
2576 [docmaker] Code shuffling. |
|
2577 |
|
2578 * src/tools/docmaker/tohtml.py (re_url): Move regexp... |
|
2579 * src/tools/docmaker/sources.py: ... to this file. |
|
2580 |
|
2581 2013-06-25 Werner Lemberg <wl@gnu.org> |
|
2582 |
|
2583 [docmaker] Remove unused functions. |
|
2584 |
|
2585 * src/tools/docmaker/content.py (DocMarkup.get_start, |
|
2586 DocBlock.get_markup_name): Removed. |
|
2587 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code, |
|
2588 HtmlFormatter.make_html_words): Removed. |
|
2589 |
|
2590 2013-06-25 Werner Lemberg <wl@gnu.org> |
|
2591 |
|
2592 * builds/freetype.mk (dll): Remove target. |
|
2593 |
|
2594 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>. |
|
2595 |
|
2596 2013-06-25 Werner Lemberg <wl@gnu.org> |
|
2597 |
|
2598 [docmaker] Recognise URLs. |
|
2599 |
|
2600 * src/tools/docmaker/tohtml.py (re_url): New regular expression. |
|
2601 (make_html_para): Use it. |
|
2602 |
|
2603 2013-06-19 Werner Lemberg <wl@gnu.org> |
|
2604 |
|
2605 * Version 2.5.0.1 released. |
|
2606 =========================== |
|
2607 |
|
2608 |
|
2609 Tag sources with `VER-2-5-0-1'. |
|
2610 |
|
2611 * include/freetype/config/ftoption.h: Undefine |
|
2612 CFF_CONFIG_OPTION_OLD_ENGINE. |
|
2613 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE. |
|
2614 |
|
2615 2013-06-19 Werner Lemberg <wl@gnu.org> |
|
2616 |
|
2617 * builds/unix/install.mk (install): Don't create `cache' directory. |
|
2618 |
|
2619 Found by Peter Breitenlohner <peb@mppmu.mpg.de>. |
|
2620 |
|
2621 2013-06-19 Werner Lemberg <wl@gnu.org> |
|
2622 |
|
2623 * Version 2.5.0 released. |
|
2624 ========================= |
|
2625 |
|
2626 |
|
2627 Tag sources with `VER-2-5-0'. |
|
2628 |
|
2629 * docs/VERSION.DLL: Update documentation and bump version number to |
|
2630 2.5.0. |
|
2631 |
|
2632 * README, Jamfile (RefDoc), |
|
2633 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
|
2634 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
|
2635 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
|
2636 builds/win32/visualc/freetype.dsp, |
|
2637 builds/win32/visualc/freetype.vcproj, |
|
2638 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
|
2639 builds/win32/visualce/freetype.vcproj, |
|
2640 builds/win32/visualce/index.html, |
|
2641 builds/wince/vc2005-ce/freetype.vcproj, |
|
2642 builds/wince/vc2005-ce/index.html, |
|
2643 builds/wince/vc2008-ce/freetype.vcproj, |
|
2644 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/. |
|
2645 |
|
2646 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5. |
|
2647 (FREETYPE_PATCH): Set to 0. |
|
2648 |
|
2649 * builds/unix/configure.raw (version_info): Set to 16:2:10. |
|
2650 |
|
2651 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler. |
|
2652 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto. |
|
2653 |
|
2654 2013-06-18 Werner Lemberg <wl@gnu.org> |
|
2655 |
|
2656 Fix Savannah bug #39269. |
|
2657 |
|
2658 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in |
|
2659 case of reacollocation failures. |
|
2660 |
|
2661 2013-06-18 Andrew Church <achurch+savannah@achurch.org> |
|
2662 |
|
2663 Fix Savannah bug #39266. |
|
2664 |
|
2665 If memory allocations fail at certain points while opening a font, |
|
2666 FreeType can either crash due to a NULL dereference or leak memory. |
|
2667 |
|
2668 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec, |
|
2669 FT_LibraryRec): Make `refcount' a signed integer. If, for example, |
|
2670 FT_Open_Face() fails in a memory allocation before the face's |
|
2671 reference count is set to 1, a subsequent `FT_Done_Library' call |
|
2672 would otherwise loop over `FT_Done_Face' 2^32 times before freeing |
|
2673 the face. |
|
2674 |
|
2675 * src/base/ftobjs.c (open_face): Initialize `stream' and friends |
|
2676 earlier. |
|
2677 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL. |
|
2678 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid. |
|
2679 |
|
2680 2013-06-14 Werner Lemberg <wl@gnu.org> |
|
2681 |
|
2682 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC. |
|
2683 |
|
2684 2013-06-06 Dave Arnold <darnold@adobe.com> |
|
2685 Werner Lemberg <wl@gnu.org> |
|
2686 |
|
2687 [cff] Add code to Adobe's engine to handle ppem > 2000. |
|
2688 |
|
2689 * src/cff/cffgload.c (cff_slot_load): If we get |
|
2690 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on. |
|
2691 |
|
2692 2013-06-12 Werner Lemberg <wl@gnu.org> |
|
2693 |
|
2694 Another try on pragmas. |
|
2695 |
|
2696 * include/freetype/internal/ftdebug.h: Move pragmas to... |
|
2697 * include/freetype/internal/internal.h: ... this file since it gets |
|
2698 included by all source files. |
|
2699 * include/freetype/internal/ftserv.h: Remove pragma which has no |
|
2700 effect. |
|
2701 |
|
2702 2013-06-12 Werner Lemberg <wl@gnu.org> |
|
2703 |
|
2704 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127. |
|
2705 |
|
2706 This partially undoes commit 3f6e0e0c. |
|
2707 |
|
2708 2013-06-12 Werner Lemberg <wl@gnu.org> |
|
2709 |
|
2710 More compiler warning fixes. |
|
2711 |
|
2712 */*: Use cast to `FT_Bool' (or `Bool') where appropriate. |
|
2713 |
|
2714 2013-06-10 Werner Lemberg <wl@gnu.org> |
|
2715 |
|
2716 [truetype] Improve handling of broken sbit advance widths. |
|
2717 |
|
2718 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled) |
|
2719 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero. |
|
2720 |
|
2721 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem. |
|
2722 |
|
2723 2013-06-10 Werner Lemberg <wl@gnu.org> |
|
2724 |
|
2725 [sfnt] Improve embedded bitmap tracing. |
|
2726 |
|
2727 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding |
|
2728 bitmap strike match to... |
|
2729 (FT_Match_Size): This function. |
|
2730 |
|
2731 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics, |
|
2732 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned, |
|
2733 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png, |
|
2734 tt_sbit_decoder_load_image): Decorate with tracing messages. |
|
2735 |
|
2736 2013-06-10 Werner Lemberg <wl@gnu.org> |
|
2737 |
|
2738 Fix Savannah bug #39160. |
|
2739 |
|
2740 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too |
|
2741 for the degenerate case. |
|
2742 |
|
2743 2013-06-09 David Turner <digit@google.com> |
|
2744 |
|
2745 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush. |
|
2746 |
|
2747 This code, present since eight(!) years in the unused `CACHE' |
|
2748 branch, has been forgotten to apply to the master branch. It's |
|
2749 really amazing that noone has ever complained since |
|
2750 `FTC_Manager_Reset' is pretty useless without flushing the cache. |
|
2751 |
|
2752 2013-06-07 Werner Lemberg <wl@gnu.org> |
|
2753 |
|
2754 Add and improve pragmas for MSVC compiler. |
|
2755 |
|
2756 * include/freetype/internal/ftdebug.h: Remove pragmas. |
|
2757 * include/freetype/internal/ftserv.h: Use push and pop for pragmas. |
|
2758 * include/freetype/internal/ftvalid.h: Handle warning C4324. |
|
2759 * src/base/ftobjs.c: Use push and pop for pragmas. |
|
2760 * src/gzip/ftgzip.c: Handle warning C4244. |
|
2761 |
|
2762 2013-06-07 Werner Lemberg <wl@gnu.org> |
|
2763 |
|
2764 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/. |
|
2765 |
|
2766 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it. |
|
2767 |
|
2768 2013-06-06 Dave Arnold <darnold@adobe.com> |
|
2769 |
|
2770 [cff] Add early exit feature for width-only calls. |
|
2771 |
|
2772 This is for `FT_Get_Advance'. |
|
2773 |
|
2774 There are 7 places where the spec says the width can be defined: |
|
2775 |
|
2776 hstem/hstemhm |
|
2777 vstem/vstemhm |
|
2778 cntrmask/hintmask |
|
2779 hmoveto |
|
2780 vmoveto |
|
2781 rmoveto |
|
2782 endchar |
|
2783 |
|
2784 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls, |
|
2785 if possible. |
|
2786 |
|
2787 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>, |
|
2788 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>, |
|
2789 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls. |
|
2790 |
|
2791 2013-06-06 Werner Lemberg <wl@gnu.org> |
|
2792 |
|
2793 Next round of compiler fixes. |
|
2794 |
|
2795 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init): |
|
2796 Add proper cast. |
|
2797 |
|
2798 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix |
|
2799 cast. |
|
2800 * include/freetype/internal/ftstream.h: Decorate stream and frame |
|
2801 macros with `FT_Long' and `FT_ULong' as appropriate. |
|
2802 |
|
2803 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus, |
|
2804 raccess_guess_darwin_newvfs): Use cast. |
|
2805 |
|
2806 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast. |
|
2807 |
|
2808 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast. |
|
2809 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto. |
|
2810 |
|
2811 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast. |
|
2812 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto. |
|
2813 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto. |
|
2814 |
|
2815 * src/cid/cidparse.c (cid_parser_new): Use cast. |
|
2816 |
|
2817 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast. |
|
2818 |
|
2819 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type. |
|
2820 |
|
2821 * src/raster/ftraster.c (ft_black_reset): Use cast. |
|
2822 |
|
2823 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast. |
|
2824 (ALL_POINTS): Fix cast. |
|
2825 |
|
2826 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts. |
|
2827 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast. |
|
2828 |
|
2829 2013-06-05 Dave Arnold <darnold@adobe.com> |
|
2830 |
|
2831 Fix more MSVC Win32 compiler warnings. |
|
2832 |
|
2833 * src/base/ftobjs.c: Fix typo in MS pragma. |
|
2834 |
|
2835 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property): |
|
2836 `lineno' is only used in debug mode. |
|
2837 |
|
2838 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in |
|
2839 debug mode. |
|
2840 |
|
2841 2013-06-05 Werner Lemberg <wl@gnu.org> |
|
2842 |
|
2843 Fix compiler warnings. |
|
2844 |
|
2845 * include/freetype/internal/ftmemory.h: Decorate memory allocation |
|
2846 macros with `FT_Long' where appropriate. |
|
2847 Remove duplicate of FT_MEM_QRENEW_ARRAY definition. |
|
2848 |
|
2849 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use |
|
2850 cast. |
|
2851 |
|
2852 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while |
|
2853 including `md5.c'. |
|
2854 |
|
2855 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add |
|
2856 cast. |
|
2857 |
|
2858 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts. |
|
2859 (tt_sbit_decoder_load_bitmap): Beautification. |
|
2860 |
|
2861 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize |
|
2862 variables (earlier). |
|
2863 |
|
2864 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler. |
|
2865 |
|
2866 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants |
|
2867 where appropriate. |
|
2868 |
|
2869 * src/type1/t1load.c (T1_Get_MM_Var): Ditto. |
|
2870 |
|
2871 2013-06-04 Werner Lemberg <wl@gnu.org> |
|
2872 |
|
2873 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'. |
|
2874 |
|
2875 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>. |
|
2876 |
|
2877 2013-06-04 Werner Lemberg <wl@gnu.org> |
|
2878 |
|
2879 Apply fixes for cppcheck nitpicks. |
|
2880 |
|
2881 http://cppcheck.sourceforge.net/ |
|
2882 |
|
2883 The call was (from the top-level of the FreeType tree): |
|
2884 |
|
2885 cppcheck --force \ |
|
2886 --enable=all \ |
|
2887 -I include \ |
|
2888 -I include/freetype/ \ |
|
2889 -I include/freetype/config/ \ |
|
2890 -I include/freetype/internal/ \ |
|
2891 . &> cppcheck.log |
|
2892 |
|
2893 Note that the current version heavily chokes on FreeType, delivering |
|
2894 many wrong results. I will report those issues to the cppcheck team |
|
2895 so that a newer version gives improved results hopefully. |
|
2896 |
|
2897 */* Improve variable scopes. |
|
2898 */* Remove redundant initializations which get overwritten. |
|
2899 |
|
2900 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable): |
|
2901 Remove unused variable. |
|
2902 |
|
2903 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero. |
|
2904 |
|
2905 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate): |
|
2906 Remove functionless code. |
|
2907 |
|
2908 * src/tools/ftrandom.c (main): Fix memory leak. |
|
2909 |
|
2910 2013-06-03 Werner Lemberg <wl@gnu.org> |
|
2911 |
|
2912 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option. |
|
2913 |
|
2914 This controls whether the old FreeType CFF engine gets compiled into |
|
2915 FreeType. It is now disabled by default. |
|
2916 |
|
2917 * devel/ftoption.h, include/freetype/config/ftoption.h |
|
2918 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro. |
|
2919 |
|
2920 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c |
|
2921 (CFF_Operator, cff_argument_counts, cff_builder_add_point, |
|
2922 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load), |
|
2923 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use |
|
2924 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code. |
|
2925 |
|
2926 * docs/CHANGES: Updated. |
|
2927 |
|
2928 2013-06-02 Werner Lemberg <wl@gnu.org> |
|
2929 |
|
2930 Fix PNG library handling. |
|
2931 |
|
2932 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but |
|
2933 LIBPNG_LDFLAGS. |
|
2934 |
|
2935 2013-05-23 Behdad Esfahbod <behdad@google.com> |
|
2936 |
|
2937 Add support for color embedded bitmaps (eg. color emoji). |
|
2938 |
|
2939 A new load flag, FT_LOAD_COLOR, makes FreeType load color |
|
2940 embedded-bitmaps, following this draft specification |
|
2941 |
|
2942 https://color-emoji.googlecode.com/git/specification/v1.html |
|
2943 |
|
2944 which defines two new SFNT tables, `CBDT' and `CBLC' (named and |
|
2945 modeled after `EBDT' and `EBLC', respectively). The color bitmaps |
|
2946 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA |
|
2947 pre-multiplied sRGB images. If PNG support is available, PNG color |
|
2948 images as defined in the same proposed specification are supported |
|
2949 also. |
|
2950 |
|
2951 Note that color bitmaps are converted to grayscale if client didn't |
|
2952 ask for color. |
|
2953 |
|
2954 * builds/unix/configure.raw: Search for libpng. |
|
2955 Add `--without-png' option. |
|
2956 |
|
2957 * devel/ftoption.h, include/freetype/config/ftoption.h |
|
2958 (FT_CONFIG_OPTION_USE_PNG): New macro. |
|
2959 |
|
2960 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag. |
|
2961 |
|
2962 * include/freetype/ftimage.h (FT_Pixel_Mode): Add |
|
2963 `FT_PIXEL_MODE_BGRA'. |
|
2964 |
|
2965 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags. |
|
2966 |
|
2967 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated. |
|
2968 (ft_gray_for_premultiplied_srgb_bgra): New function. |
|
2969 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA. |
|
2970 |
|
2971 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files. |
|
2972 |
|
2973 * src/sfnt/sfnt.c: Include `pngshim.c'. |
|
2974 |
|
2975 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h' |
|
2976 (tt_face_load_eblc): Load `CBLC'. |
|
2977 (tt_sbit_decoder_init): Load `CBDT'. |
|
2978 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between |
|
2979 color and grayscale bitmaps. |
|
2980 Set `num_grays'. This is used by `ftview' to choose the blending |
|
2981 algorithm. |
|
2982 (tt_sbit_decoder_load_byte_aligned, |
|
2983 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound, |
|
2984 tt_sbit_decoder_load_image): Pass load flag. |
|
2985 s/write/pwrite/. |
|
2986 Don't call `tt_sbit_decoder_alloc_bitmap'. |
|
2987 Updated. |
|
2988 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function. |
|
2989 (tt_sbit_decoder_load_bitmap): Pass load flag. |
|
2990 Handle new glyph formats 17, 18, and 19. |
|
2991 Call `tt_sbit_decoder_alloc_bitmap'. |
|
2992 Flatten color bitmaps if necessary. |
|
2993 (tt_face_load_sbit_image): Updated. |
|
2994 |
|
2995 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'. |
|
2996 |
|
2997 * docs/CHANGES: Updated. |
|
2998 |
|
2999 2013-05-24 Guenter <info@gknw.net> |
|
3000 |
|
3001 Apply Savannah patch #8055. |
|
3002 |
|
3003 Make `apinames' create an import file for NetWare. |
|
3004 |
|
3005 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2. |
|
3006 (OutputFormat): Add `OUTPUT_NETWARE_IMP'. |
|
3007 (names_dump): Handle it. |
|
3008 (usage): Updated. |
|
3009 (main): Handle new command line flag `-wN'. |
|
3010 |
|
3011 2013-05-23 Behdad Esfahbod <behdad@behdad.org> |
|
3012 |
|
3013 Compilation fix. |
|
3014 |
|
3015 * src/truetype/ttinterp.c (TT_RunIns) |
|
3016 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work. |
|
3017 |
|
3018 2013-05-22 Infinality <infinality@infinality.net> |
|
3019 |
|
3020 [truetype] Formatting and an additional subpixel tweak. |
|
3021 |
|
3022 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix. |
|
3023 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): |
|
3024 Revert previous modification for Verdana clones. |
|
3025 |
|
3026 2013-05-22 Infinality <infinality@infinality.net> |
|
3027 |
|
3028 [truetype] Adjust subpixel zp2 moves and tweak rules. |
|
3029 |
|
3030 These modifications fix thin diagonal stems in some legacy fonts. |
|
3031 |
|
3032 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro. |
|
3033 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering. |
|
3034 (Ins_SHP): Disable x moves here for subpixel rendering. |
|
3035 (Ins_SHPIX): Only disable x moves in compatibility mode. |
|
3036 Split out zp2 move reversals and reorder conditional respectively. |
|
3037 |
|
3038 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight. |
|
3039 Only adjust Verdana clones for 17 ppem. |
|
3040 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New. |
|
3041 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'. |
|
3042 |
|
3043 2013-05-20 Infinality <infinality@infinality.net> |
|
3044 |
|
3045 [truetype] Simplify and improve subpixel function detection. |
|
3046 |
|
3047 Some small enhancements have allowed the removal of many macros and |
|
3048 the simplification of existing rules in `ttsubpix.c'. |
|
3049 |
|
3050 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX, |
|
3051 SPH_TWEAK_ALLOW_X_MOVE_ZP2, |
|
3052 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES, |
|
3053 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed. |
|
3054 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro. |
|
3055 |
|
3056 * src/truetype/ttsubpix.c: Updated affected rules. |
|
3057 |
|
3058 * src/truetype/ttinterp.c (Direct_Move_X): Updated. |
|
3059 (INS_FDEF): Add additional function detection. |
|
3060 (INS_ENDF): Set runtime flag. |
|
3061 (Ins_CALL): Skip the call under certain conditions. |
|
3062 Remove bad code. |
|
3063 (Ins_LOOPCALL): Skip the call under certain conditions. |
|
3064 Remove bad code. |
|
3065 (Move_Zp2_Point): Updated. |
|
3066 (Ins_SHPIX): Updated. |
|
3067 Skip the move under some situations. |
|
3068 (Ins_MIAP): Improve conditions. |
|
3069 (Ins_MIRP): Updated. |
|
3070 (Ins_DELTAP): Skip move under certain conditions. |
|
3071 Simplify conditions. |
|
3072 (TT_RunIns): Updated. |
|
3073 Add code to handle new function detection. |
|
3074 Trace messages. |
|
3075 |
|
3076 2013-05-17 Werner Lemberg <wl@gnu.org> |
|
3077 |
|
3078 Update more FT_Err_XXX macros using FT_ERR and FT_THROW; |
|
3079 |
|
3080 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c, |
|
3081 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it. |
|
3082 |
|
3083 2013-05-15 Werner Lemberg <wl@gnu.org> |
|
3084 |
|
3085 [truetype] Add `interpreter-version' property. |
|
3086 |
|
3087 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable |
|
3088 at runtime. |
|
3089 |
|
3090 * include/freetype/ftttdrv.h: New file. |
|
3091 |
|
3092 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New |
|
3093 macro. |
|
3094 |
|
3095 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H. |
|
3096 (tt_property_set, tt_property_get): Fill templates. |
|
3097 |
|
3098 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version' |
|
3099 member. |
|
3100 Remove unused `extension_component' member. |
|
3101 |
|
3102 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H. |
|
3103 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph, |
|
3104 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'. |
|
3105 |
|
3106 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H. |
|
3107 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag. |
|
3108 Update all affected functions to use it. |
|
3109 Use TT_INTERPRETER_VERSION_XXX where appropriate. |
|
3110 |
|
3111 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H. |
|
3112 (tt_driver_init): Initialize `interpreter_version'. |
|
3113 |
|
3114 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H. |
|
3115 Use TT_INTERPRETER_VERSION_XXX where appropriate. |
|
3116 |
|
3117 2013-05-13 Werner Lemberg <wl@gnu.org> |
|
3118 |
|
3119 [truetype] Avoid empty source file. |
|
3120 |
|
3121 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: |
|
3122 Provide dummy typedef. |
|
3123 |
|
3124 2013-05-13 Werner Lemberg <wl@gnu.org> |
|
3125 |
|
3126 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable. |
|
3127 |
|
3128 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>. |
|
3129 |
|
3130 2013-05-13 Brian Nixon <bnixon@yahoo.com> |
|
3131 |
|
3132 Fix Savannah bug #38970. |
|
3133 |
|
3134 * src/base/ftdebug.c, builds/win32/ftdebug.c, |
|
3135 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c |
|
3136 (ft_debug_init): Don't read past the environment variable FT2_DEBUG. |
|
3137 |
|
3138 2013-05-12 Werner Lemberg <wl@gnu.org> |
|
3139 |
|
3140 [truetype] Add framework for TrueType properties. |
|
3141 |
|
3142 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H. |
|
3143 (tt_property_set, tt_property_get): New functions, still empty. |
|
3144 Define `tt_service_properties' service. |
|
3145 Update `tt_services'. |
|
3146 |
|
3147 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H. |
|
3148 (TT_SERVICE_PROPERTIES_GET): New macro. |
|
3149 (TTModulePIC): Add `tt_service_properties'. |
|
3150 |
|
3151 2013-05-12 Werner Lemberg <wl@gnu.org> |
|
3152 |
|
3153 Fix Savannah bug #38967. |
|
3154 |
|
3155 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast. |
|
3156 |
|
3157 2013-05-12 Werner Lemberg <wl@gnu.org> |
|
3158 |
|
3159 Introduce unsigned 64bit type (if available). |
|
3160 |
|
3161 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available. |
|
3162 [FT_LONG64]: Provide FT_UInt64. |
|
3163 |
|
3164 * builds/unix/ftconfig.in: Synchronized. |
|
3165 |
|
3166 2013-05-12 Werner Lemberg <wl@gnu.org> |
|
3167 |
|
3168 Fix Savannah bug #38968. |
|
3169 |
|
3170 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to |
|
3171 FT_Property_{Set,Get}. |
|
3172 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to |
|
3173 FT_Property_{Set,Get}. |
|
3174 |
|
3175 2013-05-10 Werner Lemberg <wl@gnu.org> |
|
3176 |
|
3177 [sfnt] Clean up bitmap code. |
|
3178 |
|
3179 * src/sfnt/ttsbit.c: Deleted. |
|
3180 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'. |
|
3181 * rules.mk (SFNT_DRV_H): Updated. |
|
3182 |
|
3183 2013-05-10 Werner Lemberg <wl@gnu.org> |
|
3184 |
|
3185 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code. |
|
3186 |
|
3187 ---------------------------------------------------------------------------- |
|
3188 |
|
3189 Copyright 2013-2014 by |
|
3190 David Turner, Robert Wilhelm, and Werner Lemberg. |
|
3191 |
|
3192 This file is part of the FreeType project, and may only be used, modified, |
|
3193 and distributed under the terms of the FreeType project license, |
|
3194 LICENSE.TXT. By continuing to use, modify, or distribute this file you |
|
3195 indicate that you have read the license and understand and accept it |
|
3196 fully. |
|
3197 |
|
3198 |
|
3199 Local Variables: |
|
3200 version-control: never |
|
3201 coding: utf-8 |
|
3202 End: |