mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
When zoomed in, an object with a texture, a blur or a shadow was slow to drag. Filtered content whose on-screen area passes the 8.4 million pixel raster budget keeps no raster, and a shadow or glow larger than 4 million pixels keeps none either, so every frame of the drag ran the effects again over up to 8.4 million pixels. A drag that scales or rotates an object runs them again at any zoom. The canvas now renders a tool's drag with RenderOptions::dragging. In such a frame the renderer draws filtered content within 1,000,000 pixels, at a lower resolution where it would need more, unless it can draw the content from an earlier frame's raster. On the multithreaded pipeline it does the same for drop shadows, outer glows and inner glows. No raster made that way is kept. They count as moved rasters, so a raster made over them is made again after the drag, and the desktop canvas renders the frame after the drag on the render worker. That frame renders them as a still frame does. A dialog's preview, exports and printing render as before. zoomed_drag_perf times a drag's frames at 100% to 6400% with and without dragging. Docs: docs/target-app-parity.md.