makepad/libs/svg
Admin c7f5a44019 Tessellator: 5.8x fill tessellation + baked-strip fast path
- Sign probe was 57-76% of z9/z13 fill cost (point_in_fill_rule scans all
  contours per probe): exact bbox prefilter (always on, bit-identical) +
  trusted-winding map-only mode (holes take the exterior's sign; bowties
  and orphan slivers keep the probe). Sweep rework: persistent zero-alloc
  tessellator, events sorted once + cursor (BinaryHeap::pop was 40% of
  fill CPU), ~V events instead of 2V, direct index output. 4.4-7x per
  tile, worst per-fill 42.9ms -> 4.5ms, 6798/6798 fixture fills
  bit-identical in both modes. MAKEPAD_TESS_DUMP fixture capture +
  fixture_bench with per-stage split.
- Baked-fill fast path (v2-fills-1, flat mode): field-100 strip decode,
  per-triangle Sutherland-Hodgman clip to the fill overlap rect, edge AA
  via new Tessellator::fill_fringe_into over the deduped rings; 5% area
  guard falls back to runtime tess — and caught a real emitter bug
  (inverted ring winding on z13 water would have erased a water body).
  MAKEPAD_NO_BAKED_FILLS=1 kill switch; baked_fill_audit headless test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-02 17:48:42 +02:00
..
src Tessellator: 5.8x fill tessellation + baked-strip fast path 2026-08-02 17:48:42 +02:00
Cargo.toml splitup 2026-02-08 12:35:48 +01:00