freetype/src
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
..
autofit [autofit] New algorithm for preventing hinting of tilde glyphs. 2025-05-19 05:14:25 +00:00
base Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
bdf Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
bzip2 Update all copyright notices. 2024-01-27 11:11:22 -05:00
cache * src/*/*: Fix C++ compilation; fix clang warnings. 2024-08-12 12:34:28 +02:00
cff * src/cff/cffgload.c (cff_slot_load): Fix autohinter scaling. 2025-05-07 17:57:42 -04:00
cid Delay FT_GLYPH_FORMAT_OUTLINE assignmets. 2025-01-03 21:26:10 -05:00
dlg Update all copyright notices. 2024-01-27 11:11:22 -05:00
gxvalid Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
gzip Update all copyright notices. 2024-01-27 11:11:22 -05:00
lzw Update all copyright notices. 2024-01-27 11:11:22 -05:00
otvalid Update all copyright notices. 2024-01-27 11:11:22 -05:00
pcf [bdf,pcf,winfonts,sfnt] Remove barely used marcros. 2024-07-28 19:42:49 -04:00
pfr Delay FT_GLYPH_FORMAT_OUTLINE assignmets. 2025-01-03 21:26:10 -05:00
psaux Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
pshinter Use unsigned tags FT_Outline. 2024-06-20 22:16:51 -04:00
psnames Update all copyright notices. 2024-01-27 11:11:22 -05:00
raster Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
sdf Fix various typos. 2024-08-13 23:29:13 -04:00
sfnt [sfnt] Avoid allocation bomb in compressed SVG documents. 2025-05-09 13:27:51 +02:00
smooth Missing header wrappers. 2025-04-04 19:54:50 -04:00
svg Update all copyright notices. 2024-01-27 11:11:22 -05:00
tools apinames: Fix a buffer overrun for VMS platform. 2024-10-13 21:18:47 +09:00
truetype * src/truetype/ttinterp.c (TT_DotFix14): Silence UBSAN. 2025-05-16 13:19:26 -04:00
type1 [type1] Fix memory leak on CharString error. 2025-05-14 11:09:17 +02:00
type42 Whitespace, formatting, minor spelling fix. 2025-05-14 10:20:04 +02:00
winfonts * src/winfonts/winfnt.c (fnt_face_get_dll_font): Unwrap arithmetic. 2024-08-01 21:15:46 -04:00