Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 01695ea7 | 2025-07-01 18:06:17 | Various minor fixes. As reported by clang 19. * src/autofit/afadjust.c (adjustment_database): Make it static. * src/base/ftdbgmem.c (FT_MEM_SIZE_MIN): Remove unused macro. * src/psaux/psobjs.c (skip_procedure), src/truetype/ttinterp.c (Ins_IF, Ins_ELSE, Ins_FDEF, Ins_IDEF): Add `default` clause. | ||
| f1be7392 | 2025-07-01 18:00:12 | More signedness fixes. As reported by clang 19. * src/autofit/afadjust.c (add_substitute): Make first argument unsigned. Update all callers. Other minor signedness fixes. (af_reverse_character_map_new): Minor signedness fixes. * src/autofit/afgsub.c (af_hash_insert): Minor signedness fixes. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Make third argument unsigned. Update all callers. Other minor signedness fixes. (af_latin_hints_apply): Minor signedness fixes. * src/bdf/bdflib.c (bdf_parse_bitmap_): Minor signedness fix. * src/truetype/ttobjs.c (tt_size_init_bytecode): Minor signedness fix. | ||
| 8d82c9fa | 2025-07-01 17:08:37 | */*: Fix trivial signedness issues with format strings in trace messages. As reported with clang 19's `-Wformat` option. | ||
| 6a982bde | 2025-06-14 16:21:44 | [autofit] Speed up computation of `af_reverse_character_map_new`. (4/4) With this commit, the start-up time for creating the reverse character map gets reduced from more than 300% to about 25% (as tested with `arial.ttf` version 7.00). * src/autofit/afadjust.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include `afgsub.h`. (add_substitute): New auxiliary function to recursively add elements to the reverse cmap. (af_reverse_character_map_new): New code that replaces the old code removed in the previous commit. | ||
| 9e8b642b | 2025-06-13 11:39:43 | [autofit] Speed up computation of `af_reverse_character_map_new`. (3/4) Rip out some HarfBuzz code of `af_reverse_character_map_new`. The new code comes immediately in a follow-up commit, making it easier to follow the changes. * src/autofit/afadjust.c (af_get_glyph_alternates_helper, af_get_glyph_alternates): Remove. (af_reverse_character_map_new): Remove code to create the `*map` hash. | ||
| 9bfb8e80 | 2025-06-13 11:27:09 | [autofit] Speed up computation of `af_reverse_character_map_new`. (2/4) Create an array of GSUB lookup indices for `SingleSubst` and `AlternateSubst` lookup types to exit early if we have different types. Also improve tracing. * src/autofit/afglobal.h (AF_FaceGlobals) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New fields `gsub_length`, `gsub`, and `gsub_lookups_single_alternate`. * src/autofit/afglobal.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include `afgsub.h`. (af_face_globals_new) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_parse_gsub` to fill `gsub_lookups_single_alternate`. (af_face_globals_free): Updated. * src/autofit/afadjust.c (af_get_glyph_alternates_helper): Exit early if we possible. (af_reverse_character_map_new): Trace GSUB lookup indices to be checked. | ||
| fc051dc0 | 2025-06-12 10:20:07 | [autofit] Ignore virtual glyph indices from GSUB lookups. Reported as https://issues.chromium.org/issues/420401651 * src/autofit/afadjust.c (af_reverse_character_map_new): Implement it. | ||
| 57a87304 | 2025-05-26 06:28:09 | [autofit] Make the accent database work for more glyphs (again). See the added comment for an explanation. This partially undoes commit f68733d4a8. * src/autofit/afadjust.c (af_reverse_character_map_new): Always loop over all elements of the adjustment database. (in_range): Removed, no longer needed. | ||
| ed0ab879 | 2025-05-21 07:56:08 | [autofit] Minor code cleanup. * src/autofit/afadjust.c (af_reverse_character_map_new): Rename `result_set` to `glyph_alternates` and move its clearing to... (af_get_glyph_alternates): ...this function. (af_get_glyph_alternates_helper): s/result/helper_result/. | ||
| a312820c | 2025-05-21 07:17:11 | [autofit] Speed up construction of reverse character map. (4/4) * src/autofit/afadjust.c (af_get_glyph_alternates): Move creation and deletion of the `helper_result` set to... (af_reverse_character_map_new): ...this function. Gain for `arial.ttf` version 7.00: approx. 1%. | ||
| c0e7df61 | 2025-05-20 18:59:00 | [autofit] Speed up construction of reverse character map. (3/4) * src/autofit/afadjust.c (af_reverse_character_map_new): Fold two loops into one. Gain for `arial.ttf` version 7.00: approx. 1%. | ||
| 3dd7fc42 | 2025-05-19 05:37:23 | [autofit] Speed up construction of reverse character map. (2/4) This commit, together with the previous one, makes the startup of the auto-hinter much faster. Note, though, that the startup time for handling the diacritic database is still rather large. For example, loading `arial.ttf` version 7.00 followed by auto-hinting a first Latin glyph is still approx. three times slower than before the introduction of the database (this is because function `hb_ot_layout_lookup_get_glyph_alternates` is called very often). * src/autofit/afshaper.c (scripts): Rename this array to... (af_hb_scripts): ...this and export it. (af_shaper_get_coverage_hb): Updated. * src/autofit/afshaper.h: Updated. * src/autofit/afadjust.c (af_reverse_character_map_new): Pass the current script to `hb_ot_layout_collect_lookups` to make HarfBuzz check less lookups while searching for glyph alternates. | ||
| f68733d4 | 2025-05-19 05:23:29 | [autofit] Speed up construction of reverse character map. (1/4) Build reverse cmap for characters of the current script style only. * src/autofit/afadjust.c (in_range): New function. (af_reverse_character_map_new): Pass `AF_StyleMetrics` instead of `AF_FaceGlobals` so that we can access the current script style. Use `in_range` to limit tested code points. * src/autofit/afadjust.h: Updated. * src/autofit/aflatin.c (af_latin_metrics_init): Updated. | ||
| 4514f051 | 2025-05-18 08:08:25 | [autofit] Avoid variable shadowing. * src/autofit/afadjust.c (af_reverse_character_map_new): Do it. | ||
| fd33c037 | 2025-05-18 08:00:54 | [autofit] Minor speedup of reverse charmap creation. * src/autofit/afglobal.h (AF_HAS_CMAP_ENTRY): New flag. (AF_STYLE_MASK): Update value. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Set `AF_HAS_CMAP_ENTRY`. * src/autofit/afadjust.c (af_reverse_character_map_new): For the creation of the reverse map, change code to handle glyphs with cmap entries before glyphs without cmap entries. Doing so avoids some code redundancy and reduces the number of hash lookups. | ||
| 72e0c071 | 2025-05-16 14:35:51 | [autofit] Use `FT_Offset`. * src/autofit/afadjust.c (af_adjustment_database_lookup, af_reverse_character_map_new): Do it. | ||
| 47e35a58 | 2025-05-16 08:08:53 | [autofit] Simplify return value of `af_adjustment_database_lookup`. * src/autofit/adfadjust.h (af_adjustment_database_lookup): Return integer. (AF_AdjustmentDatabaseEntry): Move structure to... * src/autofit/afadjust.c: ...this file. (af_adjustment_database_lookup, af_reverse_character_map_new): Updated. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Updated. | ||
| 94e93c7c | 2025-05-16 07:46:43 | [autofit] Remove no longer used functions and structures. This is the clean-up from the previous commit. * src/autofit/afadjust.c (af_reverse_character_map_entry_compare, af_reverse_character_map_lookup, af_reverse_character_map_expand): Removed. * src/autofit/afadjust.h: Updated. * src/autofit/aftypes.h (AF_ReverseMapEntry, AF_ReverseCharacterMap): Removed. | ||
| 2492b547 | 2025-05-16 07:39:06 | [autofit] Use a hash for handling vertical accent adjustments. This greatly simplifies the code. * src/autofit/afadjust.c (af_reverse_character_map_new): Implement it. (af_reverse_character_map_done): Updated. * src/autofit/afadjust.h: Updated. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Updated. * src/autofit/aftypes.h: Include `fthash.h`. (AF_StyleMetrics): Change type of `reverse_charmap` to `FT_Hash`. | ||
| 46edeb32 | 2025-05-13 23:36:00 | * src/afadjust.c (adjustment_database): Make it complete up to U+FFFF. Also fix two entries. This is for Unicode 17.0. | ||
| 3e079bd7 | 2025-05-05 18:02:44 | [autofit] Add safety check for accent adjustments. This commit does two things. - Ignore accents that have too large heights. This situation can happen if an accent outline is unexpectedly not the highest (or lowest) contour. - Add a new adjustment flag `AF_ADJUST_NO_HEIGHT_CHECK` to override the height check. * src/autofit/afadjust.h (AF_ADJUST_NO_HEIGHT_CHECK): New macro. * src/autofit/afadjust.c (adjustment_database): Updated. * src/autofit/aflatin.c (af_latin_hints_apply): Handle new flag. (af_glyph_hints_apply_vertical_separation_adjustments): Check limit. | ||
| d32c637d | 2025-05-04 07:50:30 | [autofit] Better handling of characters with attached diacritics. (3/3) Fixes issue #136. * src/autofit/afadjust.c (adjustment_database): Updated. | ||
| 620daa3c | 2025-05-03 20:35:42 | [autofit] Better handling of characters with attached diacritics. (2/3) * src/autofit/afadjust.h (AF_IGNORE_CAPITAL_TOP, AF_IGNORE_CAPITAL_BOTTOM, AF_IGNORE_SMALL_TOP, AF_IGNORE_SMALL_BOTTOM): New macros. * src/autofit/afadjust.c (af_reverse_character_map_new) [FT_DEBUG_LEVEL_TRACE]: Updated. Also fix debugging strings of other flags. * src/autofit/afhints.h (AF_EDGE_NO_BLUE): New edge flag to make the auto-hinter ignore the edge while assigning blue zones. * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Use it. (af_prevent_top_blue_alignment, af_prevent_bottom_blue_alignment, af_latin_get_base_glyph_blues, af_latin_ignore_top, af_latin_ignore_bottom): New functions. (af_latin_hints_apply): Updated. | ||
| 7651fe00 | 2025-04-27 18:44:49 | [autofit] Enable dynamic loading of HarfBuzz. (1/2) This commit activates the mini-HarfBuzz header files and provides the necessary infrastructure for dynamically loading HarfBuzz if `FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC` is defined (this macro gets set up in a follow-up commit). * src/autofit/ft-hb.c: New file, providing `ft_hb_funcs_init` and `ft_hb_funcs_done` for loading HarfBuzz dynamically. The name of the library is hold in the macro `FT_LIBHARFBUZZ`, which can be overridden. * src/autofit/ft-hb.h: Don't include `hb.h` but `ft-hb-types.h`. (hb): Modified to handle both standard linking and dynamically loading of HarfBuzz. (HB_EXTERN): New macro to load `ft-hb-decls.h`. * src/autofit/afadjust.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: For the sake of dynamically loading the HarfBuzz library, replace the compile-time macro `HB_VERSION_ATLEAST` with a call to the run-time function `hb_version_atleast` where necessary – a follow-up commit will set the minimum version of HarfBuzz to 2.6.8, which provides all necessary functions needed by FreeType. * src/autofit/afmodule.h: Include `ft-hb.h`. (AF_ModuleRec) [FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC]: Add `hb_funcs` structure to hold pointers to the dynamically loaded HarfBuzz functions. * src/autofit/afmodule.c (af_autofitter_init, af_autofitter_done) [FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC]: Call `ft_hb_funcs_init` and `ft_hb_funcs_done`. * src/autofit/afshaper.h: Updated. * src/autofit/autofit.c: Include `ft-hb.c`. * src/autofit/rules.mk (AUTOF_DRV_SRC, AUTOF_DRV_H): Updated. | ||
| e9d03072 | 2025-04-26 19:05:31 | [autofit] Some preparations for loading HarfBuzz dynamically. (2/4) Pass `AF_FaceGlobals` to many functions, or provide it, tagged with `FT_UNUSED`. We need this later on to access a dynamically linked HarfBuzz library. * src/autofit/ft-hb-ft.h (ft_hb_ft_font_create): Use `globals` argument. Drop unused `destroy` argument. * src/autofit/ft-hb-ft.c (ft_hb_ft_face_create, ft_hb_ft_font_create): Use `globals` argument. Drop unused `destroy` argument. (ft_hb_ft_face_create, ft_hb_ft_reference_table): Cast `user_data` to `AF_FaceGlobals`. * src/autofit/afadjust.c (af_get_glyph_alternates_helper, af_get_glyph_alternates): Add `globals` argument. Update callers. * src/autofit/afshaper.c, src/autofit/afshaper.h (af_shaper_buf_create, af_shaper_buf_destroy): Use `globals` argument. * src/autofit/afglobal.c (af_face_globals_new): 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. | ||
| 8b443d70 | 2025-04-26 12:22:23 | [autofit] Some preparations for loading HarfBuzz dynamically. (1/4) * src/autofit/ft-hb.h: New file, defining the `hb` macro. Later on, we provide a different definition of this macro depending on a yet-to-come configuration option to support dynamic loading of HarfBuzz functions. * src/autofit/afadjust.c, src/autofit/afglobal.c, src/autofit/afshaper.c, stc/ft-hb-ft.c: Use it. | ||
| 2d1abd3b | 2025-04-25 18:05:41 | [autofit] Extend adjustment database with characters up to U+1FFF. This adds many pre-combined Latin glyphs, Cyrillic, Greek, and some characters from other scripts (or rather, Unicode blocks). Fixes issues #112 and #471. | ||
| 9eb6548d | 2025-04-25 12:28:18 | [autofit] More tilde stretch support. (3/3) The auto-hinter now supports up to four tilde glyphs (two above and two below a base character). Note that diacritics above (or below) a tilde are now also ignored by the auto-hinter. * src/autofit/afadjust.h (AF_ADJUST_TILDE_TOP2, AF_ADJUST_TILDE_BOTTOM2): New macros. * src/autofit/afadjust.c (af_reverse_character_map_new): Updated. * src/autofit/aflatin.c (af_remove_top_points_from_edges, af_remove_bottom_points_from_edges): Make functions also handle all contours higher (or lower) of the given one in the argument. (af_touch_top_contours, af_touch_bottom_contours): New functions. (af_latin_stretch_top_tilde, af_latin_stretch_bottom_tilde): Use it to also handle all contours higher (or lower) than the tilde contour. * (af_latin_hints_apply): Handle more tilde glyphs. | ||
| 7722a5b2 | 2025-04-23 19:29:59 | [autofit] Support two below/above accents for vertical adjustment. (2/2) * src/autofit/afadjust.h (AF_ADJUST_UP2, AF_ADJUST_DOWN2): New macros. * src/autofit/afadjust.c (af_reverse_character_map_new): Updated. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Implement it. | ||
| ba94c954 | 2025-04-22 12:43:55 | [autofit] Support vertical stretching of tilde below base glyph. (2/2) * src/autofit/afadjust.h (AF_ADJUST_TILDE_BOTTOM): New macro. * src/autofit/afadjust.c (af_reverse_character_map_new): Updated. * src/autofit/aflatin.c (af_find_lowest_contour, af_latin_remove_bottom_tilde_points_from_edges, af_latin_stretch_bottom_tilde, af_latin_align_bottom_tilde): New functions in analogy to the top tilde versions. (af_glyph_hints_apply_vertical_separation_adjustments): Add support in analogy to the top tilde code. (af_latin_hints_apply): Updated. | ||
| 5e0b0871 | 2025-04-21 07:52:42 | * src/autofit/afadjust.c (af_reverse_character_map_new): Update tracing. | ||
| 162a93b1 | 2025-04-21 07:00:07 | [autofit] Indicate tilde handling with a flag macro, too. * src/autofit/afadjust.h (AF_ADJUST_TILDE_TOP): New macro. (AF_AdjustmentDatabaseEntry): Remove field `apply_tilde`. * src/autofit/afadjust.c (adjustment_database, af_reverse_character_map_new), src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments, af_latin_hints_apply): Updated. | ||
| 582cc21b | 2025-04-21 06:37:45 | [aflatin] Convert adjustment database enum to macros. We are going to add more values, and we want to use combinations of them. * src/autofit/afadjust.h (AF_VerticalSeparationAdjustmentType): Replace with... (AF_ADJUST_UP, AF_ADJUST_DOWN, AF_ADJUST_NONE): ... new macros. (AF_AdjustmentDatabaseEntry): Rename field `vertical_separation_adjustment_type` to `flags`. * src/autofit/afadjust.c (af_reverse_character_map_new), src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Updated. | ||
| 566e30c1 | 2025-04-21 05:47:41 | [autofit] Shorten adjustment enum names. * src/autofit/afadjust.h (AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP, AF_VERTICAL_ADJUSTMENT_BOTTOM_CONTOUR_DOWN, AF_VERTICAL_ADJUSTMENT_NONE): Renamed to... (AF_ADJUST_UP, AF_ADJUST_DOWN, AF_ADJUST_NONE): ...this. * src/autofit/afadjust.c (adjustment_database, af_reverse_character_map_expand), src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Updated. | ||
| 1019b1c2 | 2025-04-22 06:20:22 | * src/autofit/afadjust.c (af_get_glyph_alternates): Fix endless loop. | ||
| b5b3fd57 | 2025-04-20 10:48:54 | * src/afadjust.c: Fix test for newer HarfBuzz version (second try). | ||
| 05f3cf13 | 2025-04-20 10:29:32 | * src/afadjust.c: Fix test for newer HarfBuzz version. | ||
| a64b49cc | 2025-04-20 08:00:26 | [autofit] Request at least HarfBuzz 7.2.0 for diacritic support. (3/3) This version (from April 2023) added 'SingleSubst' support to `hb_ot_layout_lookup_get_glyph_alternates`. | ||
| de98b1ba | 2025-04-20 07:32:05 | [autofit] Speed up creation of the adjustment database's reverse map. (2/3) Remove the old code and activate the new one. | ||
| 573201be | 2025-04-20 06:27:52 | [autofit] Speed up creation of the adjustment database's reverse map. (1/3) As it turns out, the original implementation using `hb_ot_shape_glyphs_closure` is extremely slow if a font has a rich set of OpenType features. For example, this function was called 66954 times while loading font `arial.ttf` version 7.00, increasing FreeType's startup time by a factor of 10, which is unacceptable. The new algorithm uses a completely different, more low-level approach, no longer working with OpenType features but with OpenType lookups. It relies on function `hb_ot_layout_lookup_get_glyph_alternates`, also replacing recursion with a simple loop. In total, this brings the additional startup time back to an acceptable range of a few percent. A side effect of the new approach is that it catches more alternate forms: the old code didn't properly handle script-specific features. To make the change more readable, this commit only adds new code. | ||
| 9536e472 | 2025-04-18 06:31:51 | * src/autofit/afadjust.c (af_reverse_character_map_new): Check `map` limit. Reported as https://issues.chromium.org/issues/410925355 | ||
| dc55f4e6 | 2025-04-14 21:03:08 | [autofit] Avoid unnecessary recomputation of HarfBuzz data. Call the functions once per font instead of once per glyph. * src/autofit/afadjust.c (af_all_glyph_variants): Move code to compute the `feature_tags` and `type_3_lookup_indices` sets to... (af_reverse_character_map_new): ...this function. | ||
| d1ac9524 | 2025-04-14 15:48:33 | [autofit] Fix creation of the adjustment database's reverse map. Due to the way the reverse map array gets constructed with HarfBuzz, there might be multiple, identical glyph index entries with different character values in the array. As an example, an OpenType feature like 'unic' might map lowercase glyph 'ae' to uppercase glyph 'AE', in addition to the already present cmap entry for 'AE'. In most cases, this incorrect mapping is harmless (but still wrong). However, there exist some lowercase/uppercase character pairs where the diacritic for the uppercase character is on the other vertical side of the base character as for the lowercase character. An example is U+0122 (LATIN CAPITAL LETTER G WITH CEDILLA) and U+0123 (LATIN SMALL LETTER G WITH CEDILLA): the former has the cedilla below, the latter above. A wrong mapping would thus shift the base glyph 'G' up by a pixel instead of shifting the cedilla down. We fix this by always giving precedence to cmap entries. * src/autofit/afadjust.c (af_reverse_character_map_entry_compare): Do a secondary sort on the character code. (af_reverse_character_map_lookup): Adjust binary search to return the first occurrence of an entry (i.e., the one with the lowest array index). (af_reverse_character_map_new)[FT_CONFIG_OPTION_USE_HARFBUZZ]: Implement cmap priority. | ||
| 05797069 | 2025-04-14 09:22:10 | [autofit] Reduce adjustment database lookups. This is also in preparation for a follow-up commit. * src/autofit/afadjust.h (af_lookup_vertical_separation_type, af_lookup_tilde_correction_type): Replaced with... (af_adjustment_database_lookup, af_reverse_character_map_lookup): ... this. * src/autofit/afadjust.c (af_adjustment_database_lookup, af_adjustment_database_lookup): Updated. (af_lookup_vertical_separation_type, af_lookup_tilde_correction_type): Removed. (af_reverse_character_map_new)[FT_DEBUG_LEVEL_TRACE]: Updated. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments, af_latin_hints_apply): Updated. | ||
| 233cdea8 | 2025-04-12 10:32:44 | * src/afadjust.c (adjustment_database): Make it complete up to U+017F. | ||
| 535498a0 | 2025-04-13 22:11:39 | * src/autofit/afadjust.c (af_reverse_character_map_new): Add tracing code. | ||
| c34e551c | 2025-04-12 07:38:43 | * src/afadjust.c: Minor fixes. | ||
| 558bde6e | 2025-04-14 21:37:18 | [autofit] Fix just introduced heap buffer overflow Reported as https://issues.oss-fuzz.com/issues/410393975 * src/autofit/afadjust.c [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Synchronize with HarfBuzz code. | ||
| 24ac6c5d | 2024-01-29 08:37:54 | [autofit] Add GSUB table handling to reverse character map generation. If HarfBuzz is enabled, the reverse character map generation now considers GSUB entries when looking for glyphs that correspond to a code point. * src/autofit/afadjust.c (af_all_glyph_variants_helper, af_all_glyph_variants) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New functions. (af_reverse_character_map_new) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call new code. | ||
| 14ac6140 | 2024-01-28 17:35:15 | [autofit] Add code for reverse charmaps and adjustment database lookup. * src/autofit/aftypes.h (AF_ReverseMapEntry, AF_ReverseCharacterMap): New structures. * src/autofit/afadjust.c (af_adjustment_database_lookup, af_reverse_character_map_entry_compare, af_reverse_character_map_lookup, af_lookup_vertical_separation_type, af_lookup_tilde_correction_type, af_reverse_character_map_expand, af_reverse_character_map_new, af_reverse_character_map_done): New functions. * src/autofit/afadjust.c: Updated. | ||
| c46ebd76 | 2024-01-28 17:27:39 | [autofit] Add adjustment database. * src/autofit/afadjust.c, src/autofit/afadjust.h: New files. * include/freetype/internal/fttrace.h: Add 'afadjust' component. * src/autofit/autofit.c: Include `afadjust.c`. * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afadjust.c`. |