mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-28 20:18:06 -06:00
M2: tiling pattern cells sit at their XStep/YStep multiples at every scale (ISO 32000-2 8.7.3.1) (#4421)
The cell pixmap was round(scale x step) pixels and repeated, but the cell was drawn, and the paint transform mapped back, at the unrounded scale. So the pixmap repeated a fraction of a pixel too far at every step (31 px for a 30.56 px step at 110 dpi), and cells drifted further from their place with every step from the pattern's origin. Vendored hayro patch (25), `tiling_cell_pixels`: the cell is drawn at round(scale x step) / step, so one step is exactly the pixmap's side, and the paint transform uses that same scale. The side stays within 1 and the existing 3000 px cap; a non-finite product keeps the scale and a bounded side. Tests: crates/render/tests/it/tiling_cell_placement.rs (fill, turned and scaled matrix, stroke, all at 110 dpi far from the origin; the helper's bounds). Claude-Session: https://claude.ai/code/session_0175FWj4xFhMhSH3UpMU8DSC Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
4047e9aaa5
commit
a08ec799f5
@@ -746,8 +746,8 @@ milestone = "M2"
|
||||
status = "partial"
|
||||
commands = []
|
||||
tools = []
|
||||
evidence = ["crates/render/src/raster.rs::self_referencing_tiling_pattern_terminates"]
|
||||
notes = "via hayro bootstrap"
|
||||
evidence = ["crates/render/src/raster.rs::self_referencing_tiling_pattern_terminates", "crates/render/tests/it/tiling_cell_placement.rs::far_cells_of_a_fill_sit_at_whole_steps", "crates/render/tests/it/tiling_cell_placement.rs::far_cells_sit_at_whole_steps_under_a_turned_scaled_matrix", "crates/render/tests/it/tiling_cell_placement.rs::far_cells_of_a_stroke_sit_at_whole_steps"]
|
||||
notes = "via hayro bootstrap. Tiling pattern cells sit at whole multiples of /XStep and /YStep at any zoom, filled or stroked, under any pattern matrix. Missing: a cell is cut at its step, so content reaching past the step into the next cell is lost; a cell pixmap is capped at 3000 pixels a side, so very large steps draw at reduced resolution"
|
||||
|
||||
[[feature]]
|
||||
id = "view.render-transparency"
|
||||
|
||||
Reference in New Issue
Block a user