vectorcraft/docs
dotCooCoo a9a7a4cddf Fix #1257: a dragged object reuses its filter and shadow rasters
Each pointer move of a drag applies the move to the interaction's
snapshot, so the dragged object is a new node in every frame. The
renderer kept the rasters of an object's drop shadows, outer glows and
filtered content (Gaussian Blur, Feather and the Photoshop-style
filters) only for the same node, so every frame of a drag ran those
effects again. On main, a moved frame of texture_drag_perf (a CMYK
rounded rectangle at 190.07% and DPI 1.5 in an 1800 x 1500 view) took
112 to 197 ms in a release build.

The canvas now renders with RenderOptions::interacting while a drag or
a dialog's preview is in progress. When an object misses its cached
raster in such a frame, the renderer takes the raster an earlier frame
made for an object with the same id, slot and ink at the same zoom and
rotation, made by the same effects from content of the same size (to
within 0.000001 pt). It draws the object's content into a raster
placed as that one was and compares the pixels byte for byte (only the
alpha under a shadow or glow). For Feather it also compares the points
of the clip outline, to within 0.000001 pt. When they match, the old
raster is drawn at the new place, rounded to a whole pixel, as a pan
draws a cached raster. Content under De-Interlace never takes a moved
raster, and a raster made over moved rasters counts as moved itself.

A frame rendered without interacting never draws such a raster, or a
raster made over one: the frame after the drag runs the effects again
and draws what a fresh renderer draws. The canvas's cache key includes
whether an interaction is in progress. On the desktop, the canvas
sends the frame after an interaction to the render worker when the
frame shown drew moved rasters. Each cached raster keeps the content it
was made from, within the existing 512 MiB budget. The pixels kept
with a filtered raster take as many bytes as the raster, and the alpha
kept with a shadow or glow takes a quarter as many as the shadow.

texture_drag_perf now renders a drag's frames as the canvas does, then
the frame after the drag, and that frame once more with every raster
cached. A moved frame now takes 20 to 26 ms, close to the 18 to 25 ms
of the cached frame; the frame after the drag takes 110 to 189 ms.

Docs: docs/target-app-parity.md.
2026-10-12 18:56:38 +07:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:13 -04:00
images README: refresh the screenshots and renders, add a Perspective Grid shot 2026-10-08 02:39:29 +07:00
affinity-validation.md AF.4 docs: leave out shop listings and sandbox notes 2026-10-09 22:20:39 +07:00
architecture.md Print: adopt craft-print while retaining Windows 7 support 2026-10-12 14:20:48 +07:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#411) 2026-10-07 21:22:04 -04:00
control-protocol.md Fix #1373: --control without a valid port stops the desktop before it starts 2026-10-12 18:56:36 +07:00
development.md Fix #1373: --control without a valid port stops the desktop before it starts 2026-10-12 18:56:36 +07:00
effects-parity.md G2: add Artistic Film Grain live effect 2026-10-12 07:26:05 +07:00
file-format-parity.md Fix #1264: placed (linked) files in a .ai file's editing data come in as linked images 2026-10-12 17:46:01 +07:00
gaps.md Fix #1264: placed (linked) files in a .ai file's editing data come in as linked images 2026-10-12 17:46:01 +07:00
hardware-parity.md #1151: Preferences › Performance › Linux display server opens the window through Xwayland, where file drops work 2026-10-11 17:29:23 +07:00
localization-parity.md G16: Korean interface (ko) 2026-10-12 14:44:39 +07:00
mcp.md PDF import: a PDF saved with its editing data opens on its artboard with its bleed 2026-10-12 16:44:16 +07:00
plugins.md Fix #121: sandboxed WebAssembly plug-ins: object filters and live effects 2026-10-06 00:19:41 +07:00
releasing.md fix(packaging): RPMの依存を共有ライブラリ能力に修正 (#1275) 2026-10-12 07:26:02 +07:00
revolve.md M9: add live Revolve with artboard rotation and lighting controls 2026-10-10 23:44:46 +07:00
roadmap.md Docs: ROADMAP 2026-10-12 adds #1239, #1250, #1252, #1308, #1318, #1335, #1339, #1345–#1359 2026-10-12 16:44:16 +07:00
shaper.md M2.9: add editable Shaper groups and shape orientation steps 2026-10-08 22:52:23 +01:00
target-app-parity.md Fix #1257: a dragged object reuses its filter and shadow rasters 2026-10-12 18:56:38 +07:00
type-parity.md Docs: merge duplicated table rows and record the rest of 2026-10-12 2026-10-12 08:58:27 +07:00
ui-parity.md Docs: ROADMAP 2026-10-12 adds #1239, #1250, #1252, #1308, #1318, #1335, #1339, #1345–#1359 2026-10-12 16:44:16 +07:00
windows7.md Print: adopt craft-print while retaining Windows 7 support 2026-10-12 14:20:48 +07:00