mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-25 23:50:01 +00:00
8352b26c1a
- Replace whole-region Vec<f32> read_region/write_region in CutParts::new with tile-parallel cut_piece + try_fill_surface/try_clear_surface, sharing interior Arc<Tile> allocations in O(1) and activating the solid_tile hole-fill fast path on Background and mask targets. - Cache piece_bounds on CutParts so CutParts::place avoids scanning tile content bounds on every drag frame. - Parallelize composite_over across top tiles with Rayon and share fully opaque top tiles by Arc<Tile> clone in O(1), preserving COW tile identity for GPU canvas uploads. - Parallelize Surface::translated across target tiles with Rayon and prune cleared tiles in-place inside edit_tiles. - Skip zero-offset floating preview generation on pointer-down in move_ui::floating_doc. - Exclude SnapKind::Selection when moving selected pixels with the Move tool so small initial drags do not snap back to (0, 0). - Keep navigator_plain active during Move/Brush/Patch drags on a GPU canvas so navigator_gpu is not evicted into a synchronous full-document CPU thumbnail composite on the first drag frame. - Parallelize row normalization in compose::render_reduced_in_bands and add a direct read_rgba_into fast path for unmasked Normal layers over an empty backdrop.