mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-10 12:22:22 +00:00
Works through the five CodeRabbit threads on d9102e7e0a:
- A COLR graph that reuses both children of every composite was walked
exponentially often (skrifa 0.44 only limits depth and cycles on the
current path), stalling rendering and measuring. photocraft-text moves to
skrifa 0.47, already in the lockfile, which caps a walk at 16384 paints;
such a glyph falls back to its plain outline like a cycle does.
- Glyphs hidden by a transparent text colour are skipped before their graph
is walked or painted, so they can't spend the budget and drop the
visible text.
- In CMYK (and other non-RGB) documents, pixels in the text colour alone
keep its own components instead of a round trip through sRGB, as plain
glyphs do (a K-only black stays K only).
- Nested clips intersect by the smaller coverage, so a glyph clipped by its
own outline twice keeps its anti-aliased edge.
- A radial gradient's shared point of touching circles (a = b = c = 0) is
painted with the largest t instead of dividing 0 by 0.
Each fix has a test that fails without it.
Co-Authored-By: adi-1108 <adi-1108@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>