kc3-lang/freetype/src/autofit

Branch :


Log

Author Commit Date CI Message
5018477f 2014-12-07 08:17:12 Minor.
a632b5f4 2014-12-03 19:30:44 [autofit] Better fix for conversion specifiers in debug messages. Using `%ld' for pointer differences causes warnings on 32bit platforms. The correct type would be (the relatively new) `%td', however, this is missing on some important platforms. This patch improves the change from 2014-11-28. * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our pointer differences are always sufficiently small. (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
9ee6a0a0 2014-11-28 11:14:18 Fix compiler warning to conversion specifiers in debug messages. * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length modifier to dump long integers. (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
02b8e7e8 2014-11-25 11:31:51 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
04edbbda 2014-11-25 10:21:13 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
6689a009 2014-11-25 08:53:09 [Savannah bug #43682] Properly handle missing return errors. The functions in this patch *do* return non-trivial errors that must be taken care of. * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render), src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>, src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c (load_truetype_glyph <subglyph loop>, tt_loader_init, TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend), src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
237c0abf 2014-11-19 22:10:29 Trailing space.
d8632a84 2014-10-25 06:28:18 Improve comments, remove dead code.
c9c33f20 2014-10-18 11:01:14 [autofit] Add blue-zone support for Telugu. This essentially moves the Telugu script from the `Indic' hinter to the `Latin' hinter. Note that this is a first shot and quite certainly needs refinements. * src/autofit/afblue.dat: Add blue zone data for Telugu. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Telugu standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Telugu data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Telugu data; in particular, use AF_WRITING_SYSTEM_LATIN.
8f17809b 2014-10-14 08:28:09 [autofit] Adjust Devenagari character range. * src/autofit/afranges.c (af_deva_uniranges): Omit characters that are common to all other Indic scripts.
5b68e4fb 2014-09-24 19:06:13 [autofit] Minor clean-ups. * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values. * src/autofit/afhints.c (af_glyph_hints_dump_points, af_glyph_hints_align_strong_points): Updated. * src/autofit/aflatin.c (af_latin_hints_link_segments, af_latin_hints_compute_segments), src/autofit/afcjk.c (af_cjk_hints_link_segments), src/autofit/aflatin2.c (af_latin2_hints_link_segments, af_latin2_hints_compute_segments): There are no longer fake segments since more than 10 years...
7a615283 2014-09-22 08:38:00 [autofit] Minor.
387a9fe7 2014-09-22 06:42:24 [autofit] Minor code streamlining. * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant initialization.
378266dc 2014-09-22 06:33:38 Formatting.
231171fc 2014-06-17 09:14:32 Partially revert commit from 2014-06-13. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move declaration of `p_first' and `p_last' out of the loop.
e5c0fff5 2014-06-13 14:01:20 Fix more compiler warnings. Reported by Wojciech Mamrak <wmamrak@gmail.com>. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Make integer constant unsigned. * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) <TT_SBIT_TABLE_TYPE_SBIX>: Fix types. (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper casts.
6497b9c5 2014-06-13 09:28:00 Fix compiler warnings. Reported by Wojciech Mamrak <wmamrak@gmail.com>. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage), src/autofit/afmodule.c (af_property_set): Fix `signed' vs. `unsigned' issues. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler happy. * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements for `fir'. Fix `signed' vs. `unsigned' issues. * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused. (WRITE_USHORT, WRITE_ULONG): Add proper casts. * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts. * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1' and `B2'.
d7f45943 2014-05-13 15:33:11 [autofit] Fix comment.
faa21472 2014-05-11 12:44:00 [autofit] Fix variable initializations. * src/autofit/afhints.c (af_glyph_hints_reload): Assign default values to `in_dir' and `out_dir' for all points.
07e7b8af 2014-05-11 08:00:25 [autofit] Fix crash with font `CabinSketch-Bold.ttf'. Problem reported by Ralf S. Engelschall <rse@engelschall.com>. * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for finding first non-near point. Properly initialize non-near point deltas.
5f18a0c3 2014-05-01 17:26:52 Formatting.
c576bb0d 2014-05-01 17:24:19 [autofit] Add blue-zone support for Devanagari. This essentially moves the Devanagari script from the `Indic' hinter to the `Latin' hinter. Thanks to Girish Dalvi <girish.dalvi@gmail.com> for guidance with blue zone characters! * src/autofit/afblue.dat: Add blue zone data for Devanagari. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Devanagari standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Devanagari data out of AF_CONFIG_OPTION_INDIC block. Move U+20B9, (new) Rupee sign, from Latin to Devanagari. * src/autofit/afstyles.h: Update Devanagari data; in particular, use AF_WRITING_SYSTEM_LATIN.
63bef9a5 2014-05-01 07:16:05 [autofit] Fix handling of neutral blue zones in stems. * src/autofit/afhints.h (AF_Edge_Flags): New value `AF_EDGE_NEUTRAL'. * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace neutral blue zones with AF_EDGE_NEUTRAL. (af_latin_hint_edges): Skip neutral blue zones if necessary.
ccfc4b4c 2014-04-28 21:13:14 [autofit] Introduce neutral blue zones to the latin module. Such blue zones match either the top or the bottom of a contour. We need them for scripts where accent-like elements directly touch the base character (for example, some vowel signs in Devanagari, cf. U+0913 or U+0914). * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New property. * src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro. (AF_LATIN_BLUE_NEUTRAL): New enumeration value. * src/autofit/aflatin.c (af_latin_metrics_init_blues, af_latin_hints_compute_blue_edges): Handle neutral blue zones.
abb3fcac 2014-04-25 22:13:32 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17. Using input glyph coverage data is simply wrong. Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and Mantas Mikulėnas <grawity@gmail.com>.
98e510ee 2014-04-20 22:11:27 [autofit] Fix Savannah bug #42148. The adaptation of the cjk auto-hinter module to blue stringsets in 2013-08-25 had three severe bugs. Mea culpa. 1. Contrary to the latin auto-hinter, characters for reference and overshoot values of a blue zone are specified separately. Due to the screwed-up change it didn't work at all. 2. A boolean comparison was erroneously replaced with a cast, causing invalid results with the `^' operator later on. The visual artifact caused by this problem is the topic of the bug report. 3. Two flag values were inverted, causing incorrect assignment of reference and overshoot values. * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new syntax to have both reference and overshoot characters in a single string. This is error #1. Add extensive comments. * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no longer used. (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values. This is error #3. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1. Use character `|' to separate characters for reference and overshoot values. Improve tracing messages, synchronizing them with the latin auto-hinter. (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'. This is error #2. (af_cjk_align_linked_edge): Add tracing message. * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer used.
8c7fb78b 2014-04-17 15:53:25 [autofit] More coverage fixes for complex scripts. * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage of GSUB lookups into output coverage. Otherwise, ligatures are not handled properly. Don't check blue zone characters for default coverage.
8b1f2a6c 2014-04-14 07:58:19 [autofit] Improve coverage handling. * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs appearing in the GPOS table if we are processing the default coverage.
8a94b1ef 2014-04-12 20:44:33 [autofit] Redesign the recognition algorithm of strong points. In particular, local extrema without horizontal or vertical segments are better recognized: + A + D \ / \ / \ / \ / \ + C \ / B +/ If the distances AB and CD are large, point B wasn't previously detected as an extremum since the `ft_corner_is_flat' function `swallowed' BC regardless of its direction, tagging point B as weak. The next iteration started at B and made `ft_corner_is_flat' swallow point C, tagging it as weak also, et voilà. To improve that, another pass gets now performed before calling `ft_corner_is_flat' to improve the `topology' of an outline: A sequence of non-horizontal or non-vertical vectors that point into the same quadrant are handled as a single, large vector. Additionally, distances of near points are now accumulated, which makes the auto-hinter handle them as if they were prepended to the next non-near vector. This generally improves the auto-hinter's rendering results. * src/autofit/afhints.c (af_glyph_hints_reload): Implement it. * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag `AF_FLAG_NEAR'.
71f53e12 2014-04-05 16:27:19 [autofit] Improve scoring algorithm for identifying stems. Problem reported by Karsten Lücke <karsten.luecke@kltf.de>. The new algorithm takes care of the width of stems: If the distance between two segments is larger than the largest stem width, the demerits quickly increase for larger distances. This improves hinting of slanted fonts (especially if the inner parts of serifs have non-horizontal `shoulders'), avoiding false stem links. * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest stem width (if available) to compute better demerits for distances between stems. (af_latin_hints_detect_features): Pass stem width array and array size. (af_latin_metrics_init_widths): Updated to use original algorithm. (af_latin_hints_apply): Updated to use new algorithm. * src/autofit/aflatin.h: Updated. * src/autofit/afcjk.c: Updated.
87360a78 2014-04-05 00:08:52 [aflatin] Improve comment.
cc7cf2c3 2014-03-19 07:35:35 Partially revert last commit. Found by Alexei. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing those variables is plain wrong, since we are in a loop.
87628724 2014-03-18 08:39:35 Fix clang warnings. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize some variables. * src/base/ftcalc.c (FT_MulFix): Only use code if `FT_MULFIX_INLINED' is not defined. * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c (ftc_basic_image_family_class, ftc_basic_image_cache_class, ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class), src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make function static. * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant code.
23367ff9 2014-03-17 07:33:14 Fix Savannah bug #41869. This works around a problem with HarfBuzz (<= 0.9.26), which doesn't validate glyph indices returned by `hb_ot_layout_lookup_collect_glyphs'. * src/autofit/hbshim.c (af_get_coverage): Guard `idx'. * docs/CHANGES: Updated.
ed372b71 2014-03-09 06:14:12 Fix cppcheck 1.64 warning. * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer dereference in case of error.
05565366 2014-03-06 18:56:58 Fixes for compilation with C++. * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'. (af_get_coverage): Updated. (COVERAGE): Add cast.
7ac76b50 2014-03-04 04:29:17 Fix several clang static analyzer dead store warnings. * src/autofit/afhints.c (af_glyph_hints_reload, af_glyph_hints_align_weak_points): Remove unnecessary assignments. * src/bdf/bdflib.c (bdf_font_load): Ditto. * src/pshinter/pshalgo.c (psh_glyph_compute_extrema, psh_glyph_interpolate_other_points): Ditto. * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
91c7a97b 2014-02-17 16:38:31 [autofit] Fix `make multi' compilation. * src/hbshim.c: Include `afglobal.h' and `aftypes.h'.
7be2a94a 2014-02-08 13:55:38 Fix clang static analyzer and compiler warnings. * src/autofit/afhints.c (af_glyph_hints_align_weak_points), src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>, src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style), src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load), src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next, tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead code. * src/autofit/afmodule.c (af_property_get_face_globals, af_property_set, af_property_get), src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Make functions static. * src/base/ftobjs.c (ft_remove_renderer): Protect against library == NULL. (ft_property_do): Make function static. * src/base/ftrfork.c: Include `ftbase.h'. * src/sfnt/ttsbit.c (tt_face_load_sbix_image) [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c (T1_Compute_Max_Advance): Avoid compiler warning. * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of variable.
a8772918 2014-02-04 11:36:08 [autofit] Minor fix. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling of alternative standard characters. This also fixes a compilation warning in non-debug mode.
a3364001 2014-01-26 09:45:23 [autofit] Introduce two more slots for standard characters. This is useful for OpenType features like `c2sc' (caps to small caps) that don't have lowercase letters by definition, or other features that mainly operate on numerals. * src/autofit/afscript.h: Add more standard characters. * src/autofit/aftypes.h: Update use of `SCRIPT' macro. (AF_ScriptClassRec): Add members to hold two more standard characters. (AF_DEFINE_SCRIPT_CLASS): Updated. * src/autofit/afglobal.c, src/autofit/afglobal.h, * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c: Update use of `SCRIPT' macro. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more standard characters.
eb7691cc 2014-01-24 19:04:22 Fix Savannah bug #41320. * src/autofit/aflatin.c (af_latin_metrics_init_blues) <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
ff8dc315 2014-01-22 09:19:57 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
6a700786 2014-01-16 08:55:40 [autofit] Improve tracing of style coverages. * include/internal/fttrace.h: Add `afglobal' for tracing style coverages. * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H. (FT_COMPONENT): Define. (af_face_globals_compute_style_coverage): Trace `gstyles' array data.
2b623fe4 2014-01-15 09:46:23 Minor doc issues.
c46fa86b 2014-01-08 08:45:40 [autofit] Fix Savannah bug #41138, part 1. * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary enumeration names for generated `#else'. * src/autofit/afblue.h: Regenerated.
991cbcce 2014-01-05 13:24:56 [autofit] Minor fixes for `afblue.pl'. * src/tools/afblue.pl (aux_name): Don't use `reverse'. <Handling #endif>: Use proper indentation for generated `#else'. * src/autofit/afblue.h: Regenerated.
0d97744d 2014-01-04 11:46:34 [autofit] Fix Indic scripts. Split the single, incorrect Indic entry into separate scripts so that the covered ranges are the same: Bengali, Devanagari, Gujarati, Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese, Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove entries for Meetai Mayak and Sharada – the Unicode ranges were incorrect (and nobody has complained about that), fonts are scarce for those scripts, and the Indic auto-hinter support is rudimentary anyways. * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and AF_CONFIG_OPTION_CJK. * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro. Use it, together with AF_CONFIG_OPTION_INDIC and AF_CONFIG_OPTION_CJK, to update. * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated. [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed. Sort entries by tags.
ecdb0e35 2014-01-03 20:49:31 [autofit] Thinko. * src/autofit/hbshim.c (af_get_char_index): Similar to `af_get_coverage', reject glyphs which are not substituted.
1b5bc897 2014-01-03 18:33:24 [autofit] Fix handling of default coverages. With this commit, the implementation of coverage handling is completed. * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to do. Reject coverages which don't contain appropriate glyphs for blue zones.
a42f9184 2014-01-03 18:29:41 [autofit] Fix handling of default coverages. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): First handle non-default coverages, then the default coverage of the default script, and finally the other default coverages.
f45749b0 2014-01-03 18:09:36 [autofit] Fix scaling of HarfBuzz shaping. * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
ea0367fb 2014-01-03 18:06:45 [autofit] Minor.
5c7f5500 2014-01-03 10:48:26 [autofit] Better ftgrid support. * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add parameters `is_blue' and `blue_offset'.
55cd7e0a 2014-01-02 13:07:48 [autofit] Remove some styles. * src/autofit/afcover.h: Remove coverages for alternative fractions, denominators, numerators, and fractions. * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
c973e67b 2014-01-01 16:34:42 [autofit] Add more styles. * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New auxiliary macros; use them to define styles for Cyrillic, Greek, and Latin. * src/autofit/afcover.h: Remove coverage for oldstyle figures. Since those digits are used in combination with ordinary letters, it makes no sense to handle them separately. * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit `options' parameter to 4 bits.
abb2f730 2014-01-01 08:00:16 [autofit] Fix style assignments to glyphs. * src/autofit/hbshim.c (af_get_coverage) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also so that we can skip glyphs that have both GSUB and GPOS data.
0950f3a5 2014-01-01 07:48:20 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
73cc8330 2014-01-01 07:10:36 [autofit] Implement and use `af_get_char_index' with HarfBuzz. * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Redefine to construct HarfBuzz features. (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use `y_offset' to adjust `best_y'.
785f3857 2013-12-31 09:45:10 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
c9d9947c 2013-12-31 08:16:57 [autofit] Fix interface of `af_get_char_index'. * src/autofit/hbshim.c (af_get_char_index): Return error value. Add argument for y offset (to be used in a yet-to-come patch). * src/autofit/hbshim.h, src/autofit/afcjk.c, src/autofit/aflatin.c: Updated.
44aa7e0a 2013-12-30 07:41:22 [autofit] Don't combine multiple features into one set. Combining them, as originally envisioned, would lead to much more complicated code, as investigations have shown meanwhile. The major drawback is that we run out of available style slots much earlier. However, this is only a theoretical issue since we don't support a large number of scripts currently. * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with a single-element `COVERAGE' macro, sort the elements by the feature tags, and add entry for `ruby'. * src/autofit/aftypes.h: Updated. * src/autofit/hbshim.c: Updated.
072dc45d 2013-12-28 12:26:21 [autofit] Code shuffling to reduce use of cpp macros. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Call `af_get_coverage' unconditionally. * src/autofit/autofit.c: Include `hbshim.c' unconditionally. * src/autofit/hbshim.c (af_get_coverage) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function. * src/autofit/hbshim.h: Provide function declarations unconditionally.
17af586e 2013-12-28 10:33:01 [autofit] Add wrapper function for `FT_Get_Char_Index'. Yet-to-come changes will provide HarfBuzz functionality for the new function. * src/autofit/hbshim.c (af_get_char_index): New function. * src/autofit/hbshim.h: Updated. * src/autofit/afcjk.c (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_metrics_init_blues, af_latin_metrics_check_digits): Updated.
6af01a04 2013-12-28 08:55:24 [autofit] Use `global' HarfBuzz font object. We now use `hb_font' instead of `hb_face' since yet-to-come changes need this. * src/autofit/afglobal.h: Include `hbshim.h'. (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member `hb_font'. * src/autofit/afglobal.c (af_face_globals_new) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'. (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy `hb_font'. * src/autofit/hbshim.h: Include HarfBuzz headers. * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz headers. (af_get_coverage): Updated.
d32a7d32 2013-12-27 19:26:04 [autofit] Handle `DFLT' OpenType script for coverages. * include/ftautoh.h: Document new `default-script' property. * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for type of first parameter. (script_tags): Add one more element. (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag. * src/autofit/hbshim.h: Updated. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Updated. * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro. * src/autofit/afmodule.h (AF_ModuleRec): New `default_script' member. * src/autofit/afmodule.c (af_property_set, af_property_get): Handle `default-script' property. (af_autofitter_init): Updated.
c7b55a34 2013-12-23 16:42:03 Split off ChangeLog.24.
19241347 2013-12-21 21:31:38 Introduce `coverages'. Coverages are the interface to the HarfBuzz library to access OpenType features for handling glyphs not addressable by the cmap. Right now, compilation of HarfBuzz is only added to the development build. A solution for standard build mode will be delayed until HarfBuzz gets split into two libraries to avoid mutual dependencies between FreeType and HarfBuzz. Note that this is only a first step in handling coverages, basically providing the framework only. Code for handling selected OpenType features (this is, actually using the data in `afcover.h') will follow. * devel/ftoption.h, include/config/ftoption.h (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro. * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h: New files. * src/autofit/afscript.h: Add HarfBuzz script name tags. * src/autofit/afstyles.h: Add default coverage enumeration values. * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros. (AF_Coverage): New enumeration (generated by `afcover.h'). (AF_StyleClassRec): New member `coverage'. (AF_DEFINE_STYLE_CLASS): Updated. * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage data. * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros. (AF_SCRIPT_FALLBACK): Renamed to ... (AF_STYLE_FALLBACK): ... this. * src/autofit/afglobal.c: Include `hbshim.c'. Update use of `SCRIPT' and `STYLE' macros. (af_face_globals_compute_style_coverage) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'. Update. * src/autofit/afmodule.h (AF_ModuleRec): s/fallback_script/fallback_style/. * src/autofit/afmodule.c (af_property_set): Adapt handling of `fallback-script' property to set a fallback style. (af_property_get, af_autofitter_init): Updated. * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros. * src/autofit/afranges.h: Update use of `SCRIPT' macro. * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include `hbshim.c'. * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'. (AUTOF_DRV_H): Add `afcover.h'. * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for all libraries needed by FreeType.
3bf60950 2013-12-21 08:49:11 [autofit] Make PIC mode work actually. * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the enumeration values automatically generated by including `afscript.h' and friends. * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
8a8f3758 2013-12-20 18:35:35 [autofit] Fix PIC compilation. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths) [FT_CONFIG_OPTION_PIC]: Declare `globals'. * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and AF_DEFINE_STYLE_CLASS. * src/autofit/afpic.c: Include `afglobal.h'. (autofit_module_class_pic_init): Typo. * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS, AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro parameter and structure member.
974b193b 2013-12-20 17:26:26 [autofit] Introduce `styles'. This is the new top-level structure for handling glyph input data; scripts are now defined separately. * src/autofit/aftypes.h (SCRIPT): Updated. (AF_ScriptClassRec): Move `blue_stringset' and `writing_system' members to ... (AF_Style_ClassRec): ... this new structure. (AF_Style): New enumeration. (AF_StyleMetricsRec): Replace `script' enumeration with `style_class' pointer. (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated. (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros. * src/autofit/afstyles.h: New file, using data from `afscript.h'. * src/autofit/afscript.h: Updated. * src/autofit/afcjk.c (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated. * src/autofit/afglobal.c (SCRIPT): Updated. (STYLE): Redefine macro to load `afstyles.h'. (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with... (af_style_names): ... this array. (af_face_globals_compute_script_coverage): Renamed to... (af_face_globals_compute_style_coverage): ... this. Updated. (af_face_globals_new, af_face_globals_free, af_face_globals_get_metrics): Updated. * src/autofit/afglobal.h (SCRIPT): Updated. (STYLE): Redefine macro to load `afstyles.h'. (AF_SCRIPT_FALLBACK): Update definition. This will get more refinements with later on. (AF_SCRIPT_UNASSIGNED): Replace with... (AF_STYLE_UNASSIGNED): ... this macro. (AF_FaceGlobalsRec): Updated. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_metrics_init_blues, af_latin_metrics_scale_dim, af_latin_hint_edges): Updated. * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated. (af_ltn2_uniranges): Removed. * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): Updated. * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro. (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec' members. * src/autofit/afranges.h: Updated. * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
d8324571 2013-12-19 15:45:24 [autofit] Factor scripts and uniranges out of writing system files. * src/autofit/afranges.c, src/autofit/afranges.h: New files. * src/autofit/afscript.h: Extend `SCRIPT' macro with more parameters, taking data from the writing system files. * src/autofit/aftypes.h: Updated. * src/autofit/afglobal.c: Include `afranges.h'. Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS. * src/autofit/afglobal.c: Include `afranges.h'. Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS. * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated. * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated. * src/autofit/afindic.c, src/autofit/afindic.h: Updated. * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated. * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated. * src/autofit/afpic.c: Updated. * src/autofir/autofit.c: Include `afranges.c'. * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
45930622 2013-12-19 15:24:39 [autofit] Minor.
73f31981 2013-12-19 15:24:17 [autofit] More code orthogonality. * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class' pointer to an `AF_ScriptClass' structure with `script' index of type `AF_Script'. Move some code around. * src/autofit/afcjk.c: Include `afpic.h'. (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated. * src/autofit/aflatin.c: Include `afpic.h'. (af_latin_metrics_init_widths, af_latin_metrics_init_blues, af_latin_metrics_scale_dim, af_latin_hint_edges): Updated. * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated. * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): Updated.
115de713 2013-12-18 16:06:09 [autofit] Minor.
3f91cb33 2013-12-18 12:59:35 [autofit] s/ScriptMetrics/StyleMetrics/.
4fccc214 2013-12-18 12:53:01 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
f4df4079 2013-12-18 10:39:30 [autofit] s/gscripts/gstyles/.
9a354550 2013-12-18 10:36:06 [autofit] s/glyph_scripts/glyph_styles/. This is the first commit of a series to create a new top-level structure (a `style') for handling scripts, writing_systems, and soon-to-be-added coverages.
7a5fc2f3 2013-12-17 13:29:53 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
9193259c 2013-12-10 13:24:07 [autofit] s/DFLT/NONE/, s/dflt/none/.
45244f80 2013-12-10 13:18:11 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
52166ab0 2013-11-27 10:10:16 [autofit] Fix use of dumping functions in `ftgrid' demo program. * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro. (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to handle output to stdout. Use AF_DUMP. (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
75efc2d0 2013-10-19 21:46:03 [autofit] s/SMALL_TOP/X_HEIGHT/. * src/autofit/afblue.dat: Updated. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.c, src/autofit/aflatin.h, src/autofit/atlatin2.c: Updated.
34efe05c 2013-10-19 21:14:40 * src/autofit/afblue.dat: s/MINOR/DESCENDER/. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
a5f22a9e 2013-10-17 11:08:25 [autofit] Add description strings to script entries. Currently, this is unused. * src/autofit/afscript.h: Do it. * src/autofit/afglobal.c, src/autofit/afpic.c, src/autofit/aftypes.h: Updated.
955f6a86 2013-10-16 19:47:57 [autofit] Improve tracing message for extra light flag. * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
b6695243 2013-10-12 10:33:04 [autofit] Improve tracing of `latin' hinter. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue zone types. (af_latin_metrics_scale_dim): Report scaling changes due to x height alignment. Report scaled stroke width and blue zone values.
4f9760e7 2013-09-25 23:32:25 [autofit] Remove outdated comment.
b75a8b88 2013-09-25 09:46:36 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
4de7787f 2013-09-23 22:10:08 Fix Savannah bug #40090. * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit 306f8c5d (from 2013-08-25) affecting this function.
5a4c5a5b 2013-09-22 22:37:26 [autofit] Disunify Cyrillic and Greek handling from Latin. * src/autofit/afscript.h: Add Cyrillic and Greek. * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK, AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic. (AF_BLUE_STRINGSET_LATN): Fix typo. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New arrays. (af_grek_script_class, af_cyrl_script_class): New scripts. * src/autofit/aflatin.h: Updated.
3f542498 2013-09-11 23:08:31 [autofit] Improve Hebrew rendering. This change introduces a new blue zone property `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short top segments. * src/autofit/afblue.dat: Fix Hebrew blue strings. Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP. * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro. * src/autofit/afblue.c, src/autofit/afblue.h: Updated. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle `AF_LATIN_IS_LONG_BLUE'. * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
5195ecd6 2013-08-28 17:41:21 [autofit] Fix `make multi' compilation. * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include `afblue.h' but `aftypes.h'. * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
e0f39aef 2013-08-28 17:34:01 [autofit] Fix C++ compilation. * src/autofit/afglobal.c (af_face_globals_get_metrics), src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c (af_deva_script_class): Use proper casts.
5e53db25 2013-08-27 18:37:39 [autofit] While tracing, report script names instead of ID values. * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]: New array. * src/autofit/afglobal.h: Updated. * src/autofit/afcjk.c (af_cjk_metrics_init_widths, af_cjk_hint_edges): Use `af_script_names'. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_hint_edges): Ditto.
278f64b3 2013-08-26 20:20:03 [autofit] Report used script while hinting a glyph. * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c (af_latin_hint_edges): Implement it.
371f5c3b 2013-08-26 20:11:24 [autofit] Add support for Hebrew script. * src/autofit/afblue.dat: Add blue strings for Hebrew. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.c (af_hebr_uniranges): New array. (af_hebr_script_class): New script. * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
098121db 2013-08-26 18:54:05 [autofit] Improve tracing messages. * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script ID in tracing message. (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner loop. Improve tracing messages. (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable `num_actions' to count hinting actions. Improve tracing messages. * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention script ID in tracing message. (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing messages.
33655a96 2013-08-26 09:58:50 [autofit] Fix script selection. * src/autofit/afglobal.c (af_face_globals_get_metrics): Use `AF_SCRIPT_DFLT', not value 0. Simplify code. * src/autofit/afscript.h: Sort by script name.