Skip to content

Improve text-path positioning accuracy - #1166

Open
Cees-Kettenis wants to merge 2 commits into
linebender:mainfrom
Cees-Kettenis:fix-text-path-accuracy
Open

Cees-Kettenis wants to merge 2 commits into
linebender:mainfrom
Cees-Kettenis:fix-text-path-accuracy

Conversation

@Cees-Kettenis

@Cees-Kettenis Cees-Kettenis commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Text on a path can start roughly a quarter of a user unit away from its intended position because the arc-length solver uses a 0.5-unit tolerance.

Reduce the base arc-length accuracy to 0.001 while retaining the existing transform-scale adjustment, so both length estimation and inverse arc length place glyphs more accurately. Add a numeric regression for horizontal, vertical, and nonuniform collinear cubic paths.

Old Resvg, Resvg with the fix, and Chrome rendering the same text-path sample

Cornelis Kettenis added 2 commits October 16, 2026 19:30
Compare all 42 affected fixtures against a 0.000001 accuracy control before updating the expected PNGs. The same 661 glyphs are retained; maximum glyph-origin deviation drops from 0.552105 to 0.001184 SVG units. Preserve the independent numeric regression for straight paths and collinear cubics.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant