Files
effectcraft/crates
skylar taylor-barrick 69d641e30a fix: preserve legacy CC particle compositing (#1898)
Before v0.10.0 the CC particle systems composited their particles over the
layer, so a particle layer still showed the solid or precomp under it and any
earlier effect in the stack. v0.10.0 (4e7eafa8) made them replace the layer to
match After Effects 2026, which hides that artwork in projects written before it
(#1898).

Both effects get a Composite With Original checkbox, off by default so new
instances keep the After-Effects-matching behaviour and the frames the effects
are matched against stay green. upgrade_effects now takes the savedBy version of
the file a project came from - opened, imported, read from an Essential Graphics
template, or loaded as the New Project template - and turns the control on for
an instance from a project written before v0.10.0 that does not already carry it
(a saved value is the artist's choice).

The legacy plan is the pre-v0.10.0 code restored: Post::Combine with the old
Transfer Mode mapping (Composite, Screen and Add themselves, Black Matte 5) and
the same Add/Over accumulation. savedBy first shipped in M3.14 (948f06fb),
released after v0.2.0, so files from v0.2.1 on name their writer and get the
fix; an older file has no savedBy and keeps replacing rather than migrating on a
guess.

Tests: crates/effects/src/sim/tests.rs
composite_with_original_restores_the_old_particle_transfer_modes checks the
restored mapping against combine() in every Transfer Mode;
crates/engine/src/tests/legacy_particles.rs opens a 0.6.0 project (both particle
effects over a Fill on a solid) and checks the artwork and the earlier effect
show, that a current or anonymous file still replaces, the version gate, and the
New Project template path.

Fixes #1898.
2026-11-15 05:55:30 +01:00
..
2026-11-14 18:20:47 +01:00