- 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> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||