freetype/src/autofit
Werner Lemberg fd66a29d10 [autofit] New algorithm for preventing hinting of tilde glyphs.
The old algorithm removed segments from edges to make the auto-hinter ignore
a tilde.  However, the implementation had two flaws.

- Edge array elements were moved around without reordering them afterwards.
- The linking between edges and segments wasn't correctly updated for moved
  edges, which could cause endless loops.

Correcting both problems are non-trivial; additionally, a fix would make
the auto-hinter slower.

For these reasons, a new, simpler approach is taken: A new flag allows
points to be tagged as being ignored, and if such a point is enountered, it
doesn't get added to a segment.

Fixes issue #1333.

* src/autofit/afhints.h (AF_FLAG_IGNORE): New macro.

* src/autofit/aflatin.c (af_latin_hints_compute_segments, af_touch_contour):
  Use it.
  (af_remove_segments_containing_point, af_remove_top_points_from_edges,
  af_remove_bottom_points_from_edges): Removed.
  (af_latin_stretch_top_tilde): Call `af_touch_top_contours` and
  `af_touch_bottom_contours` unconditionally.
  (af_latin_hints_apply): Updated.
2025-05-19 05:14:25 +00:00
..
afadjust.c [autofit] Add safety check for accent adjustments. 2025-05-10 05:03:48 +00:00
afadjust.h [autofit] Add safety check for accent adjustments. 2025-05-10 05:03:48 +00:00
afblue.c [autofit] Better handling of characters with attached diacritics. (1/3) 2025-05-10 05:03:48 +00:00
afblue.cin Update all copyright notices. 2024-01-27 11:11:22 -05:00
afblue.dat [autofit] Better handling of characters with attached diacritics. (1/3) 2025-05-10 05:03:48 +00:00
afblue.h [autofit] Better handling of characters with attached diacritics. (1/3) 2025-05-10 05:03:48 +00:00
afblue.hin [autofit] Better handling of characters with attached diacritics. (1/3) 2025-05-10 05:03:48 +00:00
afcjk.c Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
afcjk.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afcover.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afdummy.c Update all copyright notices. 2024-01-27 11:11:22 -05:00
afdummy.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
aferrors.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afglobal.c [autofit] Enable dynamic loading of HarfBuzz. (2/2) 2025-04-29 19:18:12 +00:00
afglobal.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afhints.c Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
afhints.h [autofit] New algorithm for preventing hinting of tilde glyphs. 2025-05-19 05:14:25 +00:00
afindic.c Update all copyright notices. 2024-01-27 11:11:22 -05:00
afindic.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
aflatin.c [autofit] New algorithm for preventing hinting of tilde glyphs. 2025-05-19 05:14:25 +00:00
aflatin.h [autofit] Better handling of characters with attached diacritics. (1/3) 2025-05-10 05:03:48 +00:00
afloader.c Update all copyright notices. 2024-01-27 11:11:22 -05:00
afloader.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afmodule.c [autofit] Enable dynamic loading of HarfBuzz. (1/2) 2025-04-29 19:18:12 +00:00
afmodule.h [autofit] Enable dynamic loading of HarfBuzz. (1/2) 2025-04-29 19:18:12 +00:00
afranges.c * src/autofit/afranges.c: Updated to Unicode 17.0. 2025-04-26 10:05:02 +02:00
afranges.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afscript.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afshaper.c [autofit] Enable dynamic loading of HarfBuzz. (2/2) 2025-04-29 19:18:12 +00:00
afshaper.h [autofit] Enable dynamic loading of HarfBuzz. (1/2) 2025-04-29 19:18:12 +00:00
afstyles.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
aftypes.h [autofit] Implement vertical separation adjustment. 2025-04-14 06:50:00 +02:00
afws-decl.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
afws-iter.h Update all copyright notices. 2024-01-27 11:11:22 -05:00
autofit.c [autofit] Enable dynamic loading of HarfBuzz. (1/2) 2025-04-29 19:18:12 +00:00
ft-hb-decls.h [autofit] Some preparations for loading HarfBuzz dynamically. (4/4) 2025-04-29 19:18:12 +00:00
ft-hb-ft.c [autofit] Some preparations for loading HarfBuzz dynamically. (2/4) 2025-04-29 19:18:12 +00:00
ft-hb-ft.h [autofit] Some preparations for loading HarfBuzz dynamically. (2/4) 2025-04-29 19:18:12 +00:00
ft-hb-types.h [autofit] Some preparations for loading HarfBuzz dynamically. (4/4) 2025-04-29 19:18:12 +00:00
ft-hb.c [autofit] Enable dynamic loading of HarfBuzz. (2/2) 2025-04-29 19:18:12 +00:00
ft-hb.h [autofit] Enable dynamic loading of HarfBuzz. (2/2) 2025-04-29 19:18:12 +00:00
hb-script-list.h [autofit] Some preparations for loading HarfBuzz dynamically. (4/4) 2025-04-29 19:18:12 +00:00
module.mk Update all copyright notices. 2024-01-27 11:11:22 -05:00
rules.mk [autofit] Enable dynamic loading of HarfBuzz. (1/2) 2025-04-29 19:18:12 +00:00