Files
craft-libs/crates
Dylan M. Taylor 0230aef364 prepress: bound flattener, tiling, image, raster grid and ink-set work (#545)
* prepress: bound flattener, tiling, image, raster grid and ink-set work

- compose: a group with more than MAX_GROUP_SEGMENTS (200k) path segments
  is rasterized whole (ComplexReason::TooManySegments) before its
  arrangement, whose crossings grow with the square of the segment count.
- geom: transparent_groups returns at once when nothing is transparent;
  overlap_groups folds the open boxes into one group past
  MAX_OVERLAP_COMPARISONS (4M) instead of comparing every pair.
- pdf: item_count charges path elements and glyphs, so the tiling budget
  bounds the geometry a cell expansion copies; Channels::apply refuses to
  spread samples past MAX_IMAGE_SAMPLES (256 MiB).
- shade: pixel_size refuses grids past MAX_GRID_PIXELS after rounding, so
  a hairline-thin area cannot make the other side unbounded.
- raster: Grid::within_budget rechecks the grid after scaling and scales
  by the pixel ratio when the square-root pass is not enough.
- ink: InkSet keeps a name index, so adding many spots is linear.

* address review: count image report only after channels apply

* address review: validate finiteness before segment-limit fallback, loop raster grid budget reduction
2026-11-11 05:55:27 -05:00
..
2026-11-05 10:29:52 +01:00
…