From 3411309d6df91fa72e157cf3f9e09a30c94102dd Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 09:56:28 -0400 Subject: [PATCH 1/6] app icon: unicorn (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs - assets/app-icon/: master and light SVGs, 1024 px PNG, .icns (Apple grid), .ico (16-256), hicolor 16-512 + scalable, LICENSE.txt, README with palette (#e0368f / #efe9dc / #0b0b0c), tile geometry and provenance; attribution sidecars + ATTRIBUTION.md rows. - packaging/icons.sh regenerates everything with resvg, iconutil and the new `cargo xtask ico`. - Runtime icon via ViewportBuilder::with_icon (padded variant on macOS) and Wayland app ID ai.storyteller.effectcraft; packaging/linux/ai.storyteller.effectcraft.desktop. - apps/effectcraft/build.rs embeds the .ico and VERSIONINFO into effectcraft.exe (winresource, Windows targets only; a missing resource compiler is a warning). - Web favicon.svg is now the unicorn icon. Co-Authored-By: Claude Opus 5.5 --- ATTRIBUTION.md | 17 ++- Cargo.lock | 19 ++++ README.md | 4 + apps/effectcraft-web/web/favicon.svg | 9 +- .../web/favicon.svg.attribution | 9 +- apps/effectcraft/Cargo.toml | 4 + apps/effectcraft/build.rs | 27 +++++ apps/effectcraft/src/main.rs | 15 ++- assets/app-icon/LICENSE.txt | 13 +++ assets/app-icon/README.md | 42 +++++++ assets/app-icon/effectcraft-1024.png | Bin 0 -> 355764 bytes .../app-icon/effectcraft-1024.png.attribution | 8 ++ assets/app-icon/effectcraft-macos-512.png | Bin 0 -> 116708 bytes .../effectcraft-macos-512.png.attribution | 8 ++ assets/app-icon/effectcraft-small.svg | 1 + .../effectcraft-small.svg.attribution | 8 ++ assets/app-icon/effectcraft.icns | Bin 0 -> 698295 bytes assets/app-icon/effectcraft.icns.attribution | 8 ++ assets/app-icon/effectcraft.ico | Bin 0 -> 91248 bytes assets/app-icon/effectcraft.ico.attribution | 8 ++ assets/app-icon/effectcraft.svg | 1 + assets/app-icon/effectcraft.svg.attribution | 8 ++ .../apps/ai.storyteller.effectcraft.png | Bin 0 -> 17306 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../16x16/apps/ai.storyteller.effectcraft.png | Bin 0 -> 733 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../24x24/apps/ai.storyteller.effectcraft.png | Bin 0 -> 1256 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../apps/ai.storyteller.effectcraft.png | Bin 0 -> 57151 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../32x32/apps/ai.storyteller.effectcraft.png | Bin 0 -> 1890 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../48x48/apps/ai.storyteller.effectcraft.png | Bin 0 -> 3549 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../apps/ai.storyteller.effectcraft.png | Bin 0 -> 150412 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../64x64/apps/ai.storyteller.effectcraft.png | Bin 0 -> 5579 bytes ...ai.storyteller.effectcraft.png.attribution | 8 ++ .../apps/ai.storyteller.effectcraft.svg | 1 + ...ai.storyteller.effectcraft.svg.attribution | 8 ++ packaging/icons.sh | 62 +++++++++++ .../linux/ai.storyteller.effectcraft.desktop | 13 +++ xtask/src/ico.rs | 104 ++++++++++++++++++ xtask/src/main.rs | 16 ++- 44 files changed, 460 insertions(+), 17 deletions(-) create mode 100644 apps/effectcraft/build.rs create mode 100644 assets/app-icon/LICENSE.txt create mode 100644 assets/app-icon/README.md create mode 100644 assets/app-icon/effectcraft-1024.png create mode 100644 assets/app-icon/effectcraft-1024.png.attribution create mode 100644 assets/app-icon/effectcraft-macos-512.png create mode 100644 assets/app-icon/effectcraft-macos-512.png.attribution create mode 100644 assets/app-icon/effectcraft-small.svg create mode 100644 assets/app-icon/effectcraft-small.svg.attribution create mode 100644 assets/app-icon/effectcraft.icns create mode 100644 assets/app-icon/effectcraft.icns.attribution create mode 100644 assets/app-icon/effectcraft.ico create mode 100644 assets/app-icon/effectcraft.ico.attribution create mode 100644 assets/app-icon/effectcraft.svg create mode 100644 assets/app-icon/effectcraft.svg.attribution create mode 100644 assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png create mode 100644 assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png.attribution create mode 100644 assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg create mode 100644 assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg.attribution create mode 100755 packaging/icons.sh create mode 100644 packaging/linux/ai.storyteller.effectcraft.desktop create mode 100644 xtask/src/ico.rs diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 10635b69..9caf1c27 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -16,7 +16,22 @@ iconography, images or other Adobe assets; open licences only; every asset attri | `assets/fonts/Inter-Italic.ttf` | The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (`assets/fonts/OFL-Inter.txt`) | | `assets/fonts/NotoSerif-Regular.ttf` | The Noto Project Authors | https://github.com/notofonts/latin-greek-cyrillic | OFL-1.1 (`assets/fonts/OFL-NotoSerif.txt`) | | `assets/fonts/JetBrainsMono-Regular.ttf` | The JetBrains Mono Project Authors | https://github.com/JetBrains/JetBrainsMono | OFL-1.1 (`assets/fonts/OFL-JetBrainsMono.txt`) | -| `apps/effectcraft-web/web/favicon.svg` | EffectCraft contributors | Original work: web app icon, the code-drawn EffectCraft mark (split rounded square, keyframe diamond) as SVG | MIT OR Apache-2.0 | +| `apps/effectcraft-web/web/favicon.svg` | EffectCraft contributors | Original work: web app icon, a copy of `assets/app-icon/effectcraft-small.svg` (the unicorn app icon) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/effectcraft-1024.png` | EffectCraft contributors | Original work: effectCraft app icon, 1024 px (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/effectcraft-macos-512.png` | EffectCraft contributors | Original work: effectCraft runtime Dock icon (macOS) (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/effectcraft-small.svg` | EffectCraft contributors | Original work: effectCraft app icon, light vector (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/effectcraft.icns` | EffectCraft contributors | Original work: effectCraft macOS app icon (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/effectcraft.ico` | EffectCraft contributors | Original work: effectCraft Windows app icon (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/effectcraft.svg` | EffectCraft contributors | Original work: effectCraft app icon, master vector (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 128x128 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 16x16 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 24x24 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 256x256 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 32x32 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 48x48 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 512x512 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 64x64 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | +| `assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg` | EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor scalable (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (`assets/app-icon/LICENSE.txt`) | | `crates/lottie/tests/fixtures/bouncing-ball.json` | EffectCraft contributors | Original work: hand-written Lottie test fixture (bouncing ball, eased position keys) | MIT OR Apache-2.0 | | `crates/lottie/tests/fixtures/shapes-gradient.json` | EffectCraft contributors | Original work: hand-written Lottie test fixture (star, rectangle, gradient fill, dashed stroke, trim paths) | MIT OR Apache-2.0 | | `crates/lottie/tests/fixtures/precomp-matte-text.json` | EffectCraft contributors | Original work: hand-written Lottie test fixture (precomp, track matte, parented text) | MIT OR Apache-2.0 | diff --git a/Cargo.lock b/Cargo.lock index 68e5616f..6f31e68d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1137,6 +1137,7 @@ dependencies = [ "rfd", "serde_json", "winit", + "winresource", ] [[package]] @@ -4687,10 +4688,12 @@ version = "1.1.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" dependencies = [ + "indexmap", "serde_core", "serde_spanned", "toml_datetime", "toml_parser", + "toml_writer", "winnow", ] @@ -4724,6 +4727,12 @@ dependencies = [ "winnow", ] +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + [[package]] name = "tracing" version = "0.1.44" @@ -5763,6 +5772,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "winresource" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0986a8b1d586b7d3e4fe3d9ea39fb451ae22869dcea4aa109d287a374d866087" +dependencies = [ + "toml", + "version_check", +] + [[package]] name = "wit-bindgen" version = "0.57.1" diff --git a/README.md b/README.md index d4ccd4ac..00ffa3b1 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@

+

+ EffectCraft app icon: an engraved unicorn on EffectCraft pink (#e0368f) +

+

EffectCraft

diff --git a/apps/effectcraft-web/web/favicon.svg b/apps/effectcraft-web/web/favicon.svg index 0b4f3c8f..150ac8f9 100644 --- a/apps/effectcraft-web/web/favicon.svg +++ b/apps/effectcraft-web/web/favicon.svg @@ -1,8 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/apps/effectcraft-web/web/favicon.svg.attribution b/apps/effectcraft-web/web/favicon.svg.attribution index e5f8b025..e723699a 100644 --- a/apps/effectcraft-web/web/favicon.svg.attribution +++ b/apps/effectcraft-web/web/favicon.svg.attribution @@ -1,9 +1,8 @@ asset: favicon.svg title: EffectCraft web app icon (favicon) -author: EffectCraft contributors +author: EffectCraft contributors (drawing by the project owner in ArtCraft) source: original work license: MIT OR Apache-2.0 -added: 2026-10-01 by EffectCraft contributors (Claude agent, M15 web app) -notes: Hand-written SVG of the code-drawn EffectCraft mark (`paint_logo` in - crates/ui-egui/src/header.rs): a navy rounded square split into blue and violet halves - with a white keyframe diamond, from basic shapes. Not derived from any other product's icon. +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Copy of assets/app-icon/effectcraft-small.svg (the lighter vector trace of the app icon). Replaces the earlier code-drawn split-square mark. diff --git a/apps/effectcraft/Cargo.toml b/apps/effectcraft/Cargo.toml index 5a2165aa..6b34763f 100644 --- a/apps/effectcraft/Cargo.toml +++ b/apps/effectcraft/Cargo.toml @@ -19,6 +19,10 @@ serde_json = { workspace = true } rfd = { workspace = true } cpal = { workspace = true } +[build-dependencies] +# Icon + VERSIONINFO for effectcraft.exe; build.rs only uses it when targeting Windows. +winresource = "0.1" + [target.'cfg(target_os = "macos")'.dependencies] # Same winit as eframe: macOS event-loop options (no app activation when driven by an agent). winit = { version = "0.30", default-features = false } diff --git a/apps/effectcraft/build.rs b/apps/effectcraft/build.rs new file mode 100644 index 00000000..50eb5f34 --- /dev/null +++ b/apps/effectcraft/build.rs @@ -0,0 +1,27 @@ +//! Windows only: embed the app icon and version info (VERSIONINFO) into `effectcraft.exe`. +//! +//! On every other target this does nothing. A missing resource compiler is a warning, so a +//! cross-compile from macOS or Linux still links, unless `EFFECTCRAFT_REQUIRE_WINRES=1` turns it +//! into an error (for release builds). + +fn main() { + println!("cargo:rerun-if-changed=build.rs"); + println!("cargo:rerun-if-changed=../../assets/app-icon/effectcraft.ico"); + println!("cargo:rerun-if-env-changed=EFFECTCRAFT_REQUIRE_WINRES"); + if std::env::var("CARGO_CFG_TARGET_OS").as_deref() != Ok("windows") { + return; + } + let mut res = winresource::WindowsResource::new(); + res.set_icon("../../assets/app-icon/effectcraft.ico") + .set("ProductName", "EffectCraft") + .set("FileDescription", "EffectCraft motion graphics and visual effects") + .set("LegalCopyright", "Copyright (c) 2026 The EffectCraft contributors. MIT OR Apache-2.0.") + .set("OriginalFilename", "effectcraft.exe") + .set("InternalName", "effectcraft"); + if let Err(e) = res.compile() { + if std::env::var_os("EFFECTCRAFT_REQUIRE_WINRES").is_some() { + panic!("embedding Windows resources failed: {e}"); + } + println!("cargo:warning=effectcraft.exe built without icon/version resources: {e}"); + } +} diff --git a/apps/effectcraft/src/main.rs b/apps/effectcraft/src/main.rs index 70cbd933..34b40a84 100644 --- a/apps/effectcraft/src/main.rs +++ b/apps/effectcraft/src/main.rs @@ -11,6 +11,16 @@ mod control_server; use effectcraft_ui_egui::EffectcraftApp; use serde_json::json; +/// The app icon for the window, taskbar and Dock (assets/app-icon, regenerated by +/// `packaging/icons.sh`). macOS gets the padded variant so it sits on Apple's icon grid in the Dock. +fn app_icon() -> egui::IconData { + #[cfg(target_os = "macos")] + let png: &[u8] = include_bytes!("../../../assets/app-icon/effectcraft-macos-512.png"); + #[cfg(not(target_os = "macos"))] + let png: &[u8] = include_bytes!("../../../assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png"); + eframe::icon_data::from_png_bytes(png).unwrap_or_default() +} + fn main() -> eframe::Result { let mut control_port: Option = std::env::var("EFFECTCRAFT_CONTROL_PORT").ok().and_then(|p| p.parse().ok()); let mut files = Vec::new(); @@ -37,7 +47,10 @@ fn main() -> eframe::Result { .with_min_inner_size([960.0, 600.0]) .with_drag_and_drop(true) // Started for an agent (`--control`): open without taking the user's keyboard focus. - .with_active(control_port.is_none()), + .with_active(control_port.is_none()) + .with_icon(app_icon()) + // Wayland matches the window to `ai.storyteller.effectcraft.desktop` by this ID. + .with_app_id("ai.storyteller.effectcraft"), event_loop_builder: agent_event_loop(control_port.is_some()), ..Default::default() }; diff --git a/assets/app-icon/LICENSE.txt b/assets/app-icon/LICENSE.txt new file mode 100644 index 00000000..5fdd611e --- /dev/null +++ b/assets/app-icon/LICENSE.txt @@ -0,0 +1,13 @@ +EffectCraft app icon (effectcraft.svg, effectcraft-small.svg and every file derived from them in +this directory: effectcraft-1024.png, effectcraft-macos-512.png, effectcraft.icns, effectcraft.ico, +hicolor/), and the web favicon apps/effectcraft-web/web/favicon.svg. + +Original artwork made for this project by the project owner in ArtCraft, then vectorised (no +third-party material). Licensed like the rest of EffectCraft, under either of + + * Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0) + * MIT license (https://opensource.org/licenses/MIT) + +at your option. + +Regenerate the derived files with packaging/icons.sh. diff --git a/assets/app-icon/README.md b/assets/app-icon/README.md new file mode 100644 index 00000000..814ad601 --- /dev/null +++ b/assets/app-icon/README.md @@ -0,0 +1,42 @@ +# EffectCraft app icon + +**Creature:** a unicorn, as an engraved head-and-shoulders bust looking out of the tile. + +**Style:** an ink engraving portrait in the Crafting Apps' owl-template framing (the FilmCraft owl): +full-bleed colour field, tight head-and-shoulders crop, the body running off the bottom and right edges. + +**Tile:** 512 × 512 viewBox, rounded square `rx=112`, clipped; no border or roundel. + +**Palette** (exactly three colours): + +| Colour | Hex | Used for | +|---|---|---| +| App colour (EffectCraft pink) | `#e0368f` | the full-bleed field | +| Paper | `#efe9dc` | the figure | +| Ink | `#0b0b0c` | line work and contour | + +**Provenance:** the project owner drew it in ArtCraft (a 2880 px engraving-style image, kept in +craftrules at `assets/app-icons/effectcraft/source.png`). It was vectorised with craftrules +`assets/logo-options/_tools/vectorize_tile.py`, which keys out the field and traces the ink with potrace. +Licence: see [LICENSE.txt](LICENSE.txt) (MIT OR Apache-2.0, like the repo). + +## Files + +| File | What | +|---|---| +| `effectcraft.svg` | master vector, traced at 2048 px (canonical) | +| `effectcraft-small.svg` | lighter vector (~350 KB), traced at 1024 px; also the web favicon | +| `effectcraft-1024.png` | 1024 px render | +| `effectcraft-macos-512.png` | runtime Dock icon on macOS, on Apple's 824/1024 grid | +| `effectcraft.icns` | macOS icon (Apple grid) | +| `effectcraft.ico` | Windows icon, 16–256 px; embedded in `effectcraft.exe` by `apps/effectcraft/build.rs` | +| `hicolor/x/apps/ai.storyteller.effectcraft.png` | Linux icon theme, 16–512 px; the 256 px one is the runtime icon on Windows and Linux | +| `hicolor/scalable/apps/ai.storyteller.effectcraft.svg` | Linux scalable icon | + +App ID: `ai.storyteller.effectcraft` (Wayland app ID, `packaging/linux/ai.storyteller.effectcraft.desktop`). + +## Regenerate + +Copy a new `icon-master.svg` / `icon.svg` from craftrules `assets/app-icons/effectcraft/` over +`effectcraft.svg` / `effectcraft-small.svg`, then run `packaging/icons.sh` (needs `resvg`; `iconutil` +on macOS for the `.icns`). Copy `effectcraft-small.svg` to `apps/effectcraft-web/web/favicon.svg` too. diff --git a/assets/app-icon/effectcraft-1024.png b/assets/app-icon/effectcraft-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..8635334abfea5cfec2b5afc4c8f4c5e28c7e978f GIT binary patch literal 355764 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

Pg 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%0Agrx4bX+)F55H)6h%q2rufc53DSC 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�NDGG7yBfkOg?BFZGC^6UK8!jm{oQ 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 z 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 aF#;SMf4`zL#zP)J#yuS)ZG@IX%zpr%NiIJC literal 0 HcmV?d00001 diff --git a/assets/app-icon/effectcraft-1024.png.attribution b/assets/app-icon/effectcraft-1024.png.attribution new file mode 100644 index 00000000..1793aa51 --- /dev/null +++ b/assets/app-icon/effectcraft-1024.png.attribution @@ -0,0 +1,8 @@ +asset: effectcraft-1024.png +title: EffectCraft app icon, 1024 px +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/effectcraft-macos-512.png b/assets/app-icon/effectcraft-macos-512.png new file mode 100644 index 0000000000000000000000000000000000000000..8f34aeb62aadeec3752b22bdfbcd47d678463359 GIT binary patch literal 116708 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 A`#V@bay%km^!KSg`ei?fi(2)Sr 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 literal 0 HcmV?d00001 diff --git a/assets/app-icon/effectcraft-macos-512.png.attribution b/assets/app-icon/effectcraft-macos-512.png.attribution new file mode 100644 index 00000000..7bfafd11 --- /dev/null +++ b/assets/app-icon/effectcraft-macos-512.png.attribution @@ -0,0 +1,8 @@ +asset: effectcraft-macos-512.png +title: EffectCraft runtime Dock icon (macOS) +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg on Apple's 824/1024 icon grid with resvg by packaging/icons.sh; embedded by apps/effectcraft/src/main.rs. diff --git a/assets/app-icon/effectcraft-small.svg b/assets/app-icon/effectcraft-small.svg new file mode 100644 index 00000000..150ac8f9 --- /dev/null +++ b/assets/app-icon/effectcraft-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/app-icon/effectcraft-small.svg.attribution b/assets/app-icon/effectcraft-small.svg.attribution new file mode 100644 index 00000000..6dbaab16 --- /dev/null +++ b/assets/app-icon/effectcraft-small.svg.attribution @@ -0,0 +1,8 @@ +asset: effectcraft-small.svg +title: EffectCraft app icon, light vector +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: The same drawing vectorised at 1024 px with craftrules vectorize_tile.py, about 350 KB, for places where size matters. diff --git a/assets/app-icon/effectcraft.icns b/assets/app-icon/effectcraft.icns new file mode 100644 index 0000000000000000000000000000000000000000..919d6876a766512b7d1164c197b3763c32014846 GIT binary patch literal 698295 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

C&E5ClUolHmE2)md=1!EF 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 $BjU{V13t-+?=b0&`t)?IEU2P^| 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© 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

G;9gU7$xJ1b|t4g*)r z3|NGa4`dI}=sDa@I*Ib6)N7LUy%K8f(U!n3>j;gi(Ul0)F#1d#JgOcf1sHi?!t!ZH zGCku5&NuivTbpJ%bw)jXm8>RiBFQ=Q0bSq`udW!iNvT)XFDw1lHRdz8wNhmEh*Fak zrEE5qmEPKV41OFs*BdhP`?qgEo~^(2rJhmJYX3XqCoqB~*oDwL{Vt#@&=NoBoj=A5 zyfxjg*T0-nadW{$ium>AcLrMnz1P=5-}ZXH&Rz-Yid+zSm)rx9G-btOf)1Q7OzL0w z!*>`P#3;5X+X_n#Rz-bRuL3vrR_mL$_XZY@&^C0vX8B%5NfJ!7v!4K>Dx;tv>;AyA1XgpK z-^4)a3(zRPyz@*iRVqr-&LF{wSJ1?S2ovL0FXLG{Klr7iK^SBeURHIis)ZP&j!;cc zcm)p_%FhNTiH@`>9vN$9Ajn4|j^E@nTchQ52QW z+26g{L-(5*apw}o=~IC57a1qk>UxDe`3PLo<*#aj@bGpEHHbUWO}^HROYHvLO9MLq z2qaxBhP@4vg2ELzt5>bdKE8oGjs-dQ=#={uYUjXwmTCXG2{{0cv;deq86?=;mJsUX zN-Sjc=EyiY6*A7jgOf1KRG$3Cc}z&KarjC9XL0!R7V%blfOa4NoyZQ?OV&7Q;+GUf zRiZqnHZgL@T9Tn=W=h;q#&u67h?cE~_Dl+{vJ8^Z-??*HtDa5ldNlYuVeq$Jy|6ha zH*`!=!NwQBfK|=@HzY0O*7kSAEE#eX<9AkJ8LPzz$6B?F)Oh%JJ!7gU;`Ldnwi`Kn zb~?H~w?&kv-zt3TcLiGlIzgUtH7x44M_#_16{e^54~06dXXbIQrbj4cfd`m$2SWF2!b%C?bIR=W`#P{|m{mUVhHyP1P~jpe*VN zUAg2h>t^A0CV>dmsE8ze<8gj)uADF_9SqKD)=*P8?fGR$K!ZEGsRe%$$tuc)F7xx) zzGTavUGf>Ai(~lg7MsX*A*@%4pRs4l7DJG9j)M%lZ;f|pN~8Hao0ath@?GYsO}?

l}Gq2AQL@{bg+)6e*=xo@cy46!# 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%0DYt>G+eYd+mh@jzdB7<9rw8I=8AaAhi*-; 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 BzAFF# literal 0 HcmV?d00001 diff --git a/assets/app-icon/effectcraft.icns.attribution b/assets/app-icon/effectcraft.icns.attribution new file mode 100644 index 00000000..d338c26f --- /dev/null +++ b/assets/app-icon/effectcraft.icns.attribution @@ -0,0 +1,8 @@ +asset: effectcraft.icns +title: EffectCraft macOS app icon +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg on Apple's 824/1024 icon grid with resvg and iconutil by packaging/icons.sh. diff --git a/assets/app-icon/effectcraft.ico b/assets/app-icon/effectcraft.ico new file mode 100644 index 0000000000000000000000000000000000000000..35cd557c9aa7c08d3e45b4d56c4b400aa3e99dd5 GIT binary patch literal 91248 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

N!IC{he_z6>~3r_`0 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 \ No newline at end of file diff --git a/assets/app-icon/effectcraft.svg.attribution b/assets/app-icon/effectcraft.svg.attribution new file mode 100644 index 00000000..21960623 --- /dev/null +++ b/assets/app-icon/effectcraft.svg.attribution @@ -0,0 +1,8 @@ +asset: effectcraft.svg +title: EffectCraft app icon, master vector +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: The owner's ArtCraft drawing of an engraved unicorn bust, vectorised at 2048 px with craftrules assets/logo-options/_tools/vectorize_tile.py (potrace; three colours). Canonical artwork; the other icon files derive from it. diff --git a/assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png b/assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png new file mode 100644 index 0000000000000000000000000000000000000000..e41b16be4d826b866c860615a54401377f6acc03 GIT binary patch literal 17306 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 FV1lR)#AE;f literal 0 HcmV?d00001 diff --git a/assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png.attribution b/assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png.attribution new file mode 100644 index 00000000..36847426 --- /dev/null +++ b/assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.png +title: EffectCraft app icon, Linux hicolor 128x128 +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png b/assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png new file mode 100644 index 0000000000000000000000000000000000000000..639ebefef750cd8704fb0b81bf83a607c05a3a9a GIT binary patch literal 733 zcmV<30wVp1P)wkiHX4Q)F6p`cR{M9E5){Xzn%hZ1_}A<_rwDe^B!?4_W{r$S6n zl1dAl+Ji2IwDQNqYU13S+mh{0vFqmTe$Q%6gXqBJe$U~2KIfdzIZDX(&Def{<8TWS zs_{R@VOWyTk@LQ#k0UV9`>%XwY7nVTWyBW_a@a_ekn$B56*BnlUVso6#IvkL^rtQ1 zWvLg}<{nXunX5D&UFi!@ImmD3Y{qse8aP!JL_jIRvSNisqei0q`TPQWYwNgLZ~_yX zHkd3)P;Z4hQbbo~;QQttI5+{B8EF(V6zJiX362yOqHlEqrq3x6@GgSUA|EFFU#Q~P z_#`sY(~y}SCb`~p1^^)SK2i$5d<>#VKT-^39Ri)4d+m3(9@gQ%&ZlKawqC7 zey?0%g4F{eRkqt5$oSRzvixQwb*E}DW|^ch4EcxuB2Y5nT-gd3vh)P1C@Uc{_GZQe zY`fD+1gyYXbpXl3!k-SDx@~k0^-}_yorIGs&&*jd_|}Z)Juh&t;~{}rTzB~x-9>~z z|6PNM@{-8B48)S_PSy}`Y1~R3vC-K7Nq0Bg<*En)Ute3>*7eDZAEJn4otA=bkC)~@ zUtb5;yd90UT)bYJ!iV`e=;WMyWik>z2ErYrEQC;g^f)=J@@cuUMjc)y)1kHFHbxJ5 zX#XnD4&tZ%(Dr(ww!mRp5<>)L>-ueeK_DFl-k5QwxdE^8R$zL!A5~L{kT$j{N4|&= z{)WM{>Njc{<5Y2|uByc2&Zh)+yS*eVo10x_UXdR5O)rvcq39!M;vXyy&fg4HPK&Wp zYX8Vkc5$vA5O)wO@i=R&g3q-MZ73evodg78gWzX?vC< literal 0 HcmV?d00001 diff --git a/assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png.attribution b/assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png.attribution new file mode 100644 index 00000000..943f87c1 --- /dev/null +++ b/assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.png +title: EffectCraft app icon, Linux hicolor 16x16 +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png b/assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png new file mode 100644 index 0000000000000000000000000000000000000000..74d211bfc2eda99855490e48954216c2cdf862b7 GIT binary patch literal 1256 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%0AU3bS%4Sog+Hs42-ID= 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 literal 0 HcmV?d00001 diff --git a/assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png.attribution b/assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png.attribution new file mode 100644 index 00000000..06f910e8 --- /dev/null +++ b/assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.png +title: EffectCraft app icon, Linux hicolor 32x32 +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png b/assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png new file mode 100644 index 0000000000000000000000000000000000000000..be56e1aa02f7639bc9b10fea2b15430c6993eba5 GIT binary patch literal 3549 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 XCZ6TwM%4yI00000NkvXXu0mjf09Vk( literal 0 HcmV?d00001 diff --git a/assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png.attribution b/assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png.attribution new file mode 100644 index 00000000..46fbd4d4 --- /dev/null +++ b/assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.png +title: EffectCraft app icon, Linux hicolor 48x48 +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png b/assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png new file mode 100644 index 0000000000000000000000000000000000000000..6c2337754cb3f2d2d096bd0bdc3778145321dc04 GIT binary patch literal 150412 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 literal 0 HcmV?d00001 diff --git a/assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png.attribution b/assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png.attribution new file mode 100644 index 00000000..a08d1411 --- /dev/null +++ b/assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.png +title: EffectCraft app icon, Linux hicolor 512x512 +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png b/assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3b2e971c9342ec0ae86c976be7019dd16aa8fe GIT binary patch literal 5579 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 Z{})T;mtzm_LJ9x?002ovPDHLkV1h_A!zBO! literal 0 HcmV?d00001 diff --git a/assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png.attribution b/assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png.attribution new file mode 100644 index 00000000..fcfe963c --- /dev/null +++ b/assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.png +title: EffectCraft app icon, Linux hicolor 64x64 +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Rendered from effectcraft.svg with resvg by packaging/icons.sh. diff --git a/assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg b/assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg new file mode 100644 index 00000000..150ac8f9 --- /dev/null +++ b/assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg.attribution b/assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg.attribution new file mode 100644 index 00000000..562c3506 --- /dev/null +++ b/assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg.attribution @@ -0,0 +1,8 @@ +asset: ai.storyteller.effectcraft.svg +title: EffectCraft app icon, Linux hicolor scalable +author: EffectCraft contributors (drawing by the project owner in ArtCraft) +source: original work +license: MIT OR Apache-2.0 +license-file: assets/app-icon/LICENSE.txt +added: 2026-10-02 by EffectCraft contributors (Claude agent, app icon) +notes: Copy of effectcraft-small.svg, written by packaging/icons.sh. diff --git a/packaging/icons.sh b/packaging/icons.sh new file mode 100755 index 00000000..afeb13f8 --- /dev/null +++ b/packaging/icons.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +# Regenerate every app icon file from assets/app-icon/effectcraft.svg (the canonical vector). +# +# Needs: resvg (brew install resvg / cargo install resvg). On macOS, iconutil also writes the +# .icns. The outputs are committed, so builds and packaging never need these tools. +# +# packaging/icons.sh +# +# effectcraft.svg and effectcraft-small.svg (the lighter 1024 px trace) come from craftrules +# (assets/app-icons/effectcraft/, which also keeps the source drawing) and are copied in by hand. +set -euo pipefail +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +DIR="$ROOT/assets/app-icon" +SVG="$DIR/effectcraft.svg" +ID="ai.storyteller.effectcraft" +TMP="$(mktemp -d)" +trap 'rm -rf "$TMP"' EXIT + +command -v resvg >/dev/null || { echo "error: resvg not found (brew install resvg)" >&2; exit 1; } + +render() { resvg -w "$2" -h "$2" "$1" "$3" ||' \ + -e 's|[[:space:]]*$||' "$SVG" >"$MAC" +grep -q 'viewBox="0 0 1024 1024"' "$MAC" || { echo "error: unexpected header in $SVG" >&2; exit 1; } + +render "$SVG" 1024 "$DIR/effectcraft-1024.png" +# Runtime window/Dock icon on macOS (apps/effectcraft/src/main.rs embeds it). +render "$MAC" 512 "$DIR/effectcraft-macos-512.png" + +# Linux hicolor theme (the 256 px one is also the runtime icon on Windows and Linux). +for s in 16 24 32 48 64 128 256 512; do + mkdir -p "$DIR/hicolor/${s}x${s}/apps" + render "$SVG" "$s" "$DIR/hicolor/${s}x${s}/apps/$ID.png" +done +mkdir -p "$DIR/hicolor/scalable/apps" +cp "$DIR/effectcraft-small.svg" "$DIR/hicolor/scalable/apps/$ID.svg" + +# Windows .ico. +ICO_PNGS=() +for s in 16 20 24 32 40 48 64 128 256; do + render "$SVG" "$s" "$TMP/ico-$s.png" + ICO_PNGS+=("$TMP/ico-$s.png") +done +(cd "$ROOT" && cargo run -q -p xtask -- ico "$DIR/effectcraft.ico" "${ICO_PNGS[@]}") + +# macOS .icns. +if command -v iconutil >/dev/null; then + SET="$TMP/effectcraft.iconset" + mkdir -p "$SET" + for s in 16 32 128 256 512; do + render "$MAC" "$s" "$SET/icon_${s}x${s}.png" + render "$MAC" $((s * 2)) "$SET/icon_${s}x${s}@2x.png" + done + iconutil -c icns -o "$DIR/effectcraft.icns" "$SET" +else + echo "warning: iconutil not found (macOS only); effectcraft.icns not regenerated" >&2 +fi +echo "icons written to $DIR" diff --git a/packaging/linux/ai.storyteller.effectcraft.desktop b/packaging/linux/ai.storyteller.effectcraft.desktop new file mode 100644 index 00000000..f7cf2dce --- /dev/null +++ b/packaging/linux/ai.storyteller.effectcraft.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Type=Application +Name=EffectCraft +GenericName=Motion Graphics Editor +Comment=Motion graphics and visual effects compositor +Exec=effectcraft %F +TryExec=effectcraft +Icon=ai.storyteller.effectcraft +Terminal=false +StartupNotify=true +StartupWMClass=ai.storyteller.effectcraft +Categories=AudioVideo;Video;Graphics;2DGraphics; +Keywords=motion;graphics;animation;compositor;effects;keyframe;vfx; diff --git a/xtask/src/ico.rs b/xtask/src/ico.rs new file mode 100644 index 00000000..a8ecd9b7 --- /dev/null +++ b/xtask/src/ico.rs @@ -0,0 +1,104 @@ +//! `cargo xtask ico …`: pack PNG images into a Windows `.ico`. +//! +//! Vista and later read PNG-compressed icon entries, so each PNG is stored as is. The size comes +//! from the PNG's IHDR chunk; 256 px is written as 0, per the ICO format. + +use std::path::Path; + +/// Width and height from a PNG's IHDR chunk. +pub fn png_size(png: &[u8]) -> Result<(u32, u32), String> { + const SIG: &[u8] = b"\x89PNG\r\n\x1a\n"; + if png.len() < 24 || &png[..8] != SIG || &png[12..16] != b"IHDR" { + return Err("not a PNG file".into()); + } + let w = u32::from_be_bytes([png[16], png[17], png[18], png[19]]); + let h = u32::from_be_bytes([png[20], png[21], png[22], png[23]]); + Ok((w, h)) +} + +/// An ICO file holding `pngs`, which must be square and at most 256 px. +pub fn pack(pngs: &[Vec]) -> Result, String> { + if pngs.is_empty() || pngs.len() > u16::MAX as usize { + return Err("need at least one PNG".into()); + } + let mut out = Vec::new(); + out.extend_from_slice(&0u16.to_le_bytes()); // reserved + out.extend_from_slice(&1u16.to_le_bytes()); // type: icon + out.extend_from_slice(&(pngs.len() as u16).to_le_bytes()); + let mut offset = 6 + 16 * pngs.len(); + for png in pngs { + let (w, h) = png_size(png)?; + if w != h || w == 0 || w > 256 { + return Err(format!("icon images must be square and at most 256 px, got {w}x{h}")); + } + let dim = if w == 256 { 0 } else { w as u8 }; + out.extend_from_slice(&[dim, dim, 0, 0]); // width, height, palette size, reserved + out.extend_from_slice(&1u16.to_le_bytes()); // colour planes + out.extend_from_slice(&32u16.to_le_bytes()); // bits per pixel + out.extend_from_slice(&(png.len() as u32).to_le_bytes()); + out.extend_from_slice(&(offset as u32).to_le_bytes()); + offset += png.len(); + } + for png in pngs { + out.extend_from_slice(png); + } + Ok(out) +} + +pub fn run(args: &[&str]) -> Result<(), String> { + let [out, inputs @ ..] = args else { + return Err("usage: cargo xtask ico …".into()); + }; + let pngs = inputs.iter().map(|p| std::fs::read(p).map_err(|e| format!("read {p}: {e}"))).collect::, _>>()?; + let ico = pack(&pngs)?; + std::fs::write(Path::new(out), &ico).map_err(|e| format!("write {out}: {e}"))?; + println!("{out}: {} images, {} bytes", pngs.len(), ico.len()); + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn fake_png(size: u32) -> Vec { + let mut v = b"\x89PNG\r\n\x1a\n\0\0\0\x0dIHDR".to_vec(); + v.extend_from_slice(&size.to_be_bytes()); + v.extend_from_slice(&size.to_be_bytes()); + v.extend_from_slice(&[8, 6, 0, 0, 0, 1, 2, 3, 4]); + v + } + + #[test] + fn packs_directory_and_payloads() { + let a = fake_png(16); + let b = fake_png(256); + let ico = pack(&[a.clone(), b.clone()]).unwrap(); + assert_eq!(&ico[..6], &[0, 0, 1, 0, 2, 0]); + // Entry 0: 16 px at offset 6 + 32. + assert_eq!(&ico[6..8], &[16, 16]); + assert_eq!(u32::from_le_bytes(ico[14..18].try_into().unwrap()), a.len() as u32); + assert_eq!(u32::from_le_bytes(ico[18..22].try_into().unwrap()), 38); + // Entry 1: 256 px stored as 0, right after the first payload. + assert_eq!(&ico[22..24], &[0, 0]); + assert_eq!(u32::from_le_bytes(ico[34..38].try_into().unwrap()), 38 + a.len() as u32); + assert_eq!(&ico[38..38 + a.len()], &a[..]); + assert_eq!(&ico[38 + a.len()..], &b[..]); + } + + #[test] + fn rejects_bad_input() { + assert!(pack(&[]).is_err()); + assert!(pack(&[fake_png(512)]).is_err()); + assert!(pack(&[b"GIF89a".to_vec()]).is_err()); + assert_eq!(png_size(&fake_png(48)).unwrap(), (48, 48)); + } + + #[test] + fn committed_icon_is_valid() { + let path = crate::root().join("assets/app-icon/effectcraft.ico"); + let Ok(ico) = std::fs::read(&path) else { return }; + assert_eq!(&ico[..4], &[0, 0, 1, 0]); + let n = u16::from_le_bytes([ico[4], ico[5]]) as usize; + assert!(n >= 4, "expected several sizes in {}", path.display()); + } +} diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 323b9ca7..9a04da13 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -1,4 +1,4 @@ -//! Workspace automation: `cargo xtask `. +//! Workspace automation: `cargo xtask `. //! //! - `layers`: enforces the dependency layering of `docs/architecture.md` §1 (downward-only edges, //! listed same-layer edges, no UI/OS crates below L5). @@ -8,8 +8,11 @@ //! `/web/dist` with `wasm-bindgen` (docs/web.md); `--serve` serves it on localhost. //! - `assets`: every asset file (image, icon, font, LUT, audio, video…) has a complete //! `.attribution` sidecar and an entry in `ATTRIBUTION.md` (AGENTS.md §1). +//! - `ico …`: pack PNGs into a Windows `.ico` (used by `packaging/icons.sh`). //! - `ci`: fmt check, clippy -D warnings, tests, layers, assets, wasm. +mod ico; + use std::process::{Command, ExitCode}; use serde_json::Value; @@ -357,7 +360,11 @@ fn main() -> ExitCode { "assets" => assets(), "ci" => ci(), "web" => web(&std::env::args().skip(2).collect::>()), - _ => Err("usage: cargo xtask ".into()), + "ico" => { + let rest: Vec = std::env::args().skip(2).collect(); + ico::run(&rest.iter().map(String::as_str).collect::>()) + } + _ => Err("usage: cargo xtask ".into()), }; match r { Ok(()) => ExitCode::SUCCESS, @@ -367,3 +374,8 @@ fn main() -> ExitCode { } } } + +/// The workspace root (the parent of `xtask/`). +pub fn root() -> std::path::PathBuf { + std::path::Path::new(env!("CARGO_MANIFEST_DIR")).parent().expect("xtask has a parent dir").to_path_buf() +} From 029c0da5e5ee051e529ad9226ea5892da341b67d Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 10:03:36 -0400 Subject: [PATCH 2/6] M2.4: bit depth + linear blending + working space 8/16 bpc projects clamp and quantise layer pixels after source/masks and every effect, and the comp after every layer (16 bpc = 0..32768); 32 bpc keeps over-range values. Blend modes without HDR support clamp their inputs in 32 bpc. Working space (sRGB, Rec. 709, Rec. 2020, Display P3; matrices derived from the published primaries), footage colour profiles from stream metadata or Interpret Footage, Linearize Working Space and Blend Colors Using 1.0 Gamma. Layer cache keys include the colour settings. Project panel depth button: click cycles, Alt-click opens Project Settings. Co-Authored-By: Claude Opus 5.5 --- crates/color/src/blend.rs | 49 ++++- crates/color/src/lib.rs | 2 + crates/color/src/space.rs | 273 ++++++++++++++++++++++++ crates/engine/src/commands/file.rs | 14 +- crates/engine/src/commands/file_more.rs | 15 +- crates/engine/src/lib.rs | 2 + crates/engine/src/tests_fidelity.rs | 28 +++ crates/engine/src/tests_stubs.rs | 1 + crates/engine/src/tests_track.rs | 2 + crates/lottie/src/import.rs | 1 + crates/lottie/src/tests.rs | 1 + crates/media/src/probe.rs | 15 ++ crates/project/src/lib.rs | 40 +++- crates/render/src/audio.rs | 1 + crates/render/src/cache.rs | 2 + crates/render/src/color.rs | 114 ++++++++++ crates/render/src/lib.rs | 168 ++++++++++++--- crates/render/src/tests.rs | 2 + crates/render/src/tests_audio_fx.rs | 1 + crates/render/src/tests_color.rs | 227 ++++++++++++++++++++ crates/render/src/three_d/compose.rs | 4 +- crates/render/src/three_d/tests.rs | 2 + crates/ui-egui/src/panels/forms.rs | 27 ++- crates/ui-egui/src/panels/project.rs | 8 +- 24 files changed, 957 insertions(+), 42 deletions(-) create mode 100644 crates/color/src/space.rs create mode 100644 crates/engine/src/tests_fidelity.rs create mode 100644 crates/render/src/color.rs create mode 100644 crates/render/src/tests_color.rs diff --git a/crates/color/src/blend.rs b/crates/color/src/blend.rs index ee239c3c..2305f12a 100644 --- a/crates/color/src/blend.rs +++ b/crates/color/src/blend.rs @@ -157,6 +157,37 @@ impl BlendMode { matches!(self, BlendMode::StencilAlpha | BlendMode::StencilLuma | BlendMode::SilhouetteAlpha | BlendMode::SilhouetteLuma) } + /// Modes whose formulas are defined for over-range (HDR, 32 bpc) values. The others clamp + /// their inputs to 0..1 before blending, as After Effects documents for 32 bpc projects + /// (in 8/16 bpc everything is already in range). + pub fn supports_hdr(self) -> bool { + matches!( + self, + BlendMode::Normal + | BlendMode::Dissolve + | BlendMode::DancingDissolve + | BlendMode::Darken + | BlendMode::Multiply + | BlendMode::LinearBurn + | BlendMode::DarkerColor + | BlendMode::Add + | BlendMode::Lighten + | BlendMode::Screen + | BlendMode::LinearDodge + | BlendMode::LighterColor + | BlendMode::Difference + | BlendMode::ClassicDifference + | BlendMode::Subtract + | BlendMode::Divide + | BlendMode::StencilAlpha + | BlendMode::StencilLuma + | BlendMode::SilhouetteAlpha + | BlendMode::SilhouetteLuma + | BlendMode::AlphaAdd + | BlendMode::LuminescentPremul + ) + } + pub fn next(self) -> BlendMode { let i = BlendMode::ALL.iter().position(|m| *m == self).unwrap_or(0); BlendMode::ALL[(i + 1) % BlendMode::ALL.len()] @@ -364,8 +395,12 @@ pub fn blend_pixel(mode: BlendMode, dst: [f32; 4], src: [f32; 4], noise: f32) -> if da <= 0.0 { return src; } - let cs = [src[0] / sa, src[1] / sa, src[2] / sa]; - let cb = [dst[0] / da, dst[1] / da, dst[2] / da]; + let mut cs = [src[0] / sa, src[1] / sa, src[2] / sa]; + let mut cb = [dst[0] / da, dst[1] / da, dst[2] / da]; + if !mode.supports_hdr() { + cs = cs.map(|v| v.clamp(0.0, 1.0)); + cb = cb.map(|v| v.clamp(0.0, 1.0)); + } let b = non_separable(mode, cb, cs); let ao = sa + da - sa * da; let mut o = [0.0f32; 4]; @@ -432,6 +467,16 @@ mod tests { assert_eq!(blend_pixel(BlendMode::SilhouetteAlpha, d, [0.0, 0.0, 0.0, 0.0], 0.0), d); } + #[test] + fn hdr_modes() { + // Add and Screen keep over-range values (32 bpc); Overlay clamps its inputs. + let d = [2.0, 2.0, 2.0, 1.0]; + let s = [0.5, 0.5, 0.5, 1.0]; + assert!((blend_pixel(BlendMode::Add, d, s, 0.5)[0] - 2.5).abs() < 1e-6); + assert!((blend_pixel(BlendMode::Screen, d, s, 0.5)[0] - 1.5).abs() < 1e-6); + assert!(blend_pixel(BlendMode::Overlay, d, s, 0.5)[0] <= 1.0); + } + #[test] fn names_roundtrip() { for m in BlendMode::ALL { diff --git a/crates/color/src/lib.rs b/crates/color/src/lib.rs index e292d917..9212b020 100644 --- a/crates/color/src/lib.rs +++ b/crates/color/src/lib.rs @@ -6,9 +6,11 @@ //! colour and composited with Porter-Duff source-over on premultiplied pixels. pub mod blend; +pub mod space; pub use blend::{BlendMode, blend_pixel}; use serde::{Deserialize, Serialize}; +pub use space::{ColorSpace, Conversion}; /// Straight (un-premultiplied) RGBA, 0..1 nominal (32 bpc may exceed). #[derive(Clone, Copy, Debug, Default, PartialEq, Serialize, Deserialize)] diff --git a/crates/color/src/space.rs b/crates/color/src/space.rs new file mode 100644 index 00000000..2bc93513 --- /dev/null +++ b/crates/color/src/space.rs @@ -0,0 +1,273 @@ +//! RGB colour spaces for colour management: the project working space, footage interpretation +//! and the display. +//! +//! Each space is defined by its published primaries and white point and its transfer function: +//! +//! * **sRGB IEC 61966-2-1** — Rec. 709 primaries, D65, the piecewise sRGB curve. +//! * **Rec. 709** — ITU-R BT.709-6 primaries, D65, the BT.1886 display EOTF (gamma 2.4). +//! * **Rec. 2020** — ITU-R BT.2020-2 primaries, D65, BT.1886 (gamma 2.4). +//! * **Display P3** — SMPTE EG 432-1 (DCI-P3) primaries with D65 and the sRGB curve. +//! +//! RGB → XYZ matrices are derived from the primaries (the standard construction from chromaticity +//! coordinates: columns of xyY → XYZ scaled so that RGB (1, 1, 1) maps to the white point), so +//! conversions between any two spaces are exact up to `f64` rounding. Transfer functions extend +//! to over-range and negative values (32 bpc) by mirroring around zero. + +use serde::{Deserialize, Serialize}; + +/// An RGB colour space (all D65). +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +pub enum ColorSpace { + /// sRGB IEC 61966-2-1. + Srgb, + /// HDTV Rec. 709 (gamma 2.4). + Rec709, + /// UHDTV Rec. 2020 (gamma 2.4). + Rec2020, + /// Display P3. + DisplayP3, +} + +/// CIE xy chromaticity of D65. +const D65: [f64; 2] = [0.3127, 0.3290]; + +impl ColorSpace { + pub const ALL: [ColorSpace; 4] = [ColorSpace::Srgb, ColorSpace::Rec709, ColorSpace::Rec2020, ColorSpace::DisplayP3]; + + /// Display name (as in Project Settings ▸ Color ▸ Working Space). + pub fn label(self) -> &'static str { + match self { + ColorSpace::Srgb => "sRGB IEC61966-2.1", + ColorSpace::Rec709 => "HDTV (Rec. 709)", + ColorSpace::Rec2020 => "Rec. 2020", + ColorSpace::DisplayP3 => "Display P3", + } + } + + /// Short identifier used by commands and files (`srgb`, `rec709`, `rec2020`, `p3`). + pub fn id(self) -> &'static str { + match self { + ColorSpace::Srgb => "srgb", + ColorSpace::Rec709 => "rec709", + ColorSpace::Rec2020 => "rec2020", + ColorSpace::DisplayP3 => "p3", + } + } + + /// Parse an id or label (case-insensitive, loose). + pub fn parse(s: &str) -> Option { + let k: String = s.chars().filter(|c| c.is_ascii_alphanumeric()).collect::().to_ascii_lowercase(); + match k.as_str() { + "srgb" | "srgbiec6196621" | "srgbiec61966" | "iec6196621" => Some(ColorSpace::Srgb), + "rec709" | "bt709" | "hdtvrec709" | "hdtv" | "709" => Some(ColorSpace::Rec709), + "rec2020" | "bt2020" | "2020" | "uhdtv" => Some(ColorSpace::Rec2020), + "p3" | "displayp3" | "p3d65" | "dcip3d65" => Some(ColorSpace::DisplayP3), + _ => None, + } + } + + /// Red, green and blue primaries (CIE xy). + pub fn primaries(self) -> [[f64; 2]; 3] { + match self { + ColorSpace::Srgb | ColorSpace::Rec709 => [[0.640, 0.330], [0.300, 0.600], [0.150, 0.060]], + ColorSpace::Rec2020 => [[0.708, 0.292], [0.170, 0.797], [0.131, 0.046]], + ColorSpace::DisplayP3 => [[0.680, 0.320], [0.265, 0.690], [0.150, 0.060]], + } + } + + /// Linear RGB → CIE XYZ (Y of white = 1). + pub fn to_xyz(self) -> [[f64; 3]; 3] { + rgb_to_xyz(self.primaries(), D65) + } + + /// Encoded value → linear light. + pub fn decode(self, v: f32) -> f32 { + let a = v.abs(); + let l = match self { + ColorSpace::Srgb | ColorSpace::DisplayP3 => crate::srgb_to_linear(a), + ColorSpace::Rec709 | ColorSpace::Rec2020 => a.powf(2.4), + }; + l.copysign(v) + } + + /// Linear light → encoded value. + pub fn encode(self, v: f32) -> f32 { + let a = v.abs(); + let e = match self { + ColorSpace::Srgb | ColorSpace::DisplayP3 => crate::linear_to_srgb(a), + ColorSpace::Rec709 | ColorSpace::Rec2020 => a.powf(1.0 / 2.4), + }; + e.copysign(v) + } +} + +/// The standard RGB → XYZ matrix from primaries and white point. +pub fn rgb_to_xyz(p: [[f64; 2]; 3], white: [f64; 2]) -> [[f64; 3]; 3] { + let xyz = |c: [f64; 2]| [c[0] / c[1], 1.0, (1.0 - c[0] - c[1]) / c[1]]; + let (r, g, b) = (xyz(p[0]), xyz(p[1]), xyz(p[2])); + let m = [[r[0], g[0], b[0]], [r[1], g[1], b[1]], [r[2], g[2], b[2]]]; + let w = xyz(white); + let s = mul_vec(&invert(&m), w); + let mut o = m; + for row in &mut o { + for j in 0..3 { + row[j] *= s[j]; + } + } + o +} + +/// 3×3 matrix inverse (the matrices here are always well conditioned). +pub fn invert(m: &[[f64; 3]; 3]) -> [[f64; 3]; 3] { + let c = |r0: usize, c0: usize, r1: usize, c1: usize| m[r0][c0] * m[r1][c1] - m[r0][c1] * m[r1][c0]; + let det = m[0][0] * c(1, 1, 2, 2) - m[0][1] * c(1, 0, 2, 2) + m[0][2] * c(1, 0, 2, 1); + let k = 1.0 / det; + [ + [c(1, 1, 2, 2) * k, -c(0, 1, 2, 2) * k, c(0, 1, 1, 2) * k], + [-c(1, 0, 2, 2) * k, c(0, 0, 2, 2) * k, -c(0, 0, 1, 2) * k], + [c(1, 0, 2, 1) * k, -c(0, 0, 2, 1) * k, c(0, 0, 1, 1) * k], + ] +} + +pub fn mul(a: &[[f64; 3]; 3], b: &[[f64; 3]; 3]) -> [[f64; 3]; 3] { + let mut o = [[0.0; 3]; 3]; + for i in 0..3 { + for j in 0..3 { + o[i][j] = (0..3).map(|k| a[i][k] * b[k][j]).sum(); + } + } + o +} + +pub fn mul_vec(m: &[[f64; 3]; 3], v: [f64; 3]) -> [f64; 3] { + [0, 1, 2].map(|i| m[i][0] * v[0] + m[i][1] * v[1] + m[i][2] * v[2]) +} + +/// A colour conversion between two spaces, each either encoded (with its transfer curve) or +/// linear. Applied to straight (un-premultiplied) RGB. +#[derive(Clone, Copy, Debug, PartialEq)] +pub struct Conversion { + /// Decode the input with this space's curve first. + pub decode: Option, + /// Linear RGB matrix (None = identity primaries). + pub matrix: Option<[[f32; 3]; 3]>, + /// Encode the output with this space's curve last. + pub encode: Option, +} + +impl Conversion { + /// From `from` (linear when `from_linear`) to `to` (linear when `to_linear`). `None` when + /// the conversion is the identity. + pub fn new(from: ColorSpace, from_linear: bool, to: ColorSpace, to_linear: bool) -> Option { + let same_primaries = from.primaries() == to.primaries(); + let same_curve = from_linear == to_linear && (from_linear || curve_eq(from, to)); + if same_primaries && same_curve { + return None; + } + let matrix = (!same_primaries).then(|| { + let m = mul(&invert(&to.to_xyz()), &from.to_xyz()); + m.map(|r| r.map(|v| v as f32)) + }); + // Same primaries, both encoded with different curves (sRGB ↔ Rec. 709), or a matrix in + // between: go through linear. + let decode = (!from_linear).then_some(from); + let encode = (!to_linear).then_some(to); + Some(Conversion { decode, matrix, encode }) + } + + /// Decode only (encoded → linear in the same space). + pub fn linearize(space: ColorSpace) -> Conversion { + Conversion { decode: Some(space), matrix: None, encode: None } + } + + /// Encode only (linear → encoded in the same space). + pub fn delinearize(space: ColorSpace) -> Conversion { + Conversion { decode: None, matrix: None, encode: Some(space) } + } + + #[inline] + pub fn apply(&self, c: [f32; 3]) -> [f32; 3] { + let mut c = c; + if let Some(s) = self.decode { + c = c.map(|v| s.decode(v)); + } + if let Some(m) = &self.matrix { + c = [0, 1, 2].map(|i| m[i][0] * c[0] + m[i][1] * c[1] + m[i][2] * c[2]); + } + if let Some(s) = self.encode { + c = c.map(|v| s.encode(v)); + } + c + } +} + +fn curve_eq(a: ColorSpace, b: ColorSpace) -> bool { + let srgb = |s: ColorSpace| matches!(s, ColorSpace::Srgb | ColorSpace::DisplayP3); + srgb(a) == srgb(b) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn srgb_matrix_matches_iec() { + // IEC 61966-2-1 (rounded to 4 places). + let m = ColorSpace::Srgb.to_xyz(); + let want = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]]; + for i in 0..3 { + for j in 0..3 { + assert!((m[i][j] - want[i][j]).abs() < 2e-4, "{i}{j}: {} vs {}", m[i][j], want[i][j]); + } + } + // Rec. 2020 luminance row (BT.2020: 0.2627, 0.6780, 0.0593). + let y = ColorSpace::Rec2020.to_xyz()[1]; + assert!((y[0] - 0.2627).abs() < 1e-4 && (y[1] - 0.6780).abs() < 1e-4 && (y[2] - 0.0593).abs() < 1e-4, "{y:?}"); + } + + #[test] + fn round_trips() { + let samples = [[0.2f32, 0.5, 0.8], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.03, 0.9, 0.4], [1.5, 0.2, 2.0]]; + for a in ColorSpace::ALL { + for b in ColorSpace::ALL { + for (al, bl) in [(false, false), (true, false), (false, true), (true, true)] { + let fwd = Conversion::new(a, al, b, bl); + let back = Conversion::new(b, bl, a, al); + assert_eq!(fwd.is_none(), back.is_none()); + for c in samples { + let mid = fwd.map(|f| f.apply(c)).unwrap_or(c); + let o = back.map(|f| f.apply(mid)).unwrap_or(mid); + for i in 0..3 { + // Pure power curves amplify f32 rounding near zero. + assert!((o[i] - c[i]).abs() < 2e-3, "{a:?}{al}→{b:?}{bl}: {c:?} → {mid:?} → {o:?}"); + } + } + } + } + } + } + + #[test] + fn white_is_preserved_and_gamut_grows() { + let c = Conversion::new(ColorSpace::Srgb, false, ColorSpace::Rec2020, false).unwrap(); + let w = c.apply([1.0, 1.0, 1.0]); + assert!(w.iter().all(|v| (v - 1.0).abs() < 1e-4), "{w:?}"); + // Pure sRGB red sits inside Rec. 2020: less saturated there. + let r = c.apply([1.0, 0.0, 0.0]); + assert!(r[0] < 1.0 && r[1] > 0.0 && r[2] > 0.0, "{r:?}"); + // sRGB ↔ Rec. 709 share primaries: only the curve changes. + let k = Conversion::new(ColorSpace::Srgb, false, ColorSpace::Rec709, false).unwrap(); + assert!(k.matrix.is_none()); + assert!(Conversion::new(ColorSpace::Srgb, true, ColorSpace::Rec709, true).is_none()); + } + + #[test] + fn transfer_extends_over_range() { + let s = ColorSpace::Srgb; + assert!((s.decode(s.encode(4.0)) - 4.0).abs() < 1e-4); + assert!((s.decode(s.encode(-0.25)) + 0.25).abs() < 1e-5); + assert!((ColorSpace::Rec709.decode(0.5) - 0.5f32.powf(2.4)).abs() < 1e-6); + assert_eq!(ColorSpace::parse("sRGB IEC61966-2.1"), Some(ColorSpace::Srgb)); + assert_eq!(ColorSpace::parse("Display P3"), Some(ColorSpace::DisplayP3)); + } +} diff --git a/crates/engine/src/commands/file.rs b/crates/engine/src/commands/file.rs index 92e8836e..ee61f900 100644 --- a/crates/engine/src/commands/file.rs +++ b/crates/engine/src/commands/file.rs @@ -140,6 +140,18 @@ fn project_settings(s: &mut Session, p: &Value) -> Result { if let Some(l) = p.get("linearize").and_then(Value::as_bool) { proj.settings.linearize = l; } + if let Some(l) = p.get("blendLinear").or_else(|| p.get("blendColorsUsing1Gamma")).and_then(Value::as_bool) { + proj.settings.blend_linear = l; + } + if let Some(w) = p.get("workingSpace") { + proj.settings.working_space = match w.as_str() { + None | Some("none" | "None" | "") => None, + Some(n) => Some( + effectcraft_project::ColorSpace::parse(n) + .ok_or_else(|| bad("file.projectSettings", format!("workingSpace: none|srgb|rec709|rec2020|p3, not `{n}`")))?, + ), + }; + } if let Some(t) = str_p(p, "timeDisplay") { proj.settings.time_display = if t.eq_ignore_ascii_case("frames") { effectcraft_project::TimeDisplayStyle::Frames } else { effectcraft_project::TimeDisplayStyle::Timecode }; @@ -172,7 +184,7 @@ pub fn specs() -> Vec { "Project Settings...", ["File"], Some("Cmd+Alt+Shift+K"), - "{bitDepth?: 8|16|32, linearize?, timeDisplay?: timecode|frames}", + "{bitDepth?: 8|16|32, workingSpace?: none|srgb|rec709|rec2020|p3, linearize?, blendLinear?, timeDisplay?: timecode|frames}", always, project_settings ), diff --git a/crates/engine/src/commands/file_more.rs b/crates/engine/src/commands/file_more.rs index 0180d279..87c1e2df 100644 --- a/crates/engine/src/commands/file_more.rs +++ b/crates/engine/src/commands/file_more.rs @@ -106,6 +106,7 @@ fn placeholder_footage(p: &Value) -> Footage { codec: "Placeholder".into(), missing: true, sequence: vec![], + color_profile: None, } } @@ -413,6 +414,15 @@ fn interpret(s: &mut Session, p: &Value) -> Result { }; let loops = p.get("loop").and_then(Value::as_u64).map(|v| v.max(1) as u32); let par = f_p(p, "pixelAspect"); + // Color ▸ Assign Profile: a colour space id, or "auto"/"none" for the file's own (sRGB). + let profile = match str_p(p, "colorProfile") { + Some("auto" | "none" | "") => Some(None), + Some(c) => match effectcraft_project::ColorSpace::parse(c) { + Some(cs) => Some(Some(cs)), + None => return Err(bad("file.interpretFootage", format!("colorProfile: srgb|rec709|rec2020|p3|auto, not `{c}`"))), + }, + None => None, + }; s.edit("Interpret Footage", None, |proj, _| { for i in &items { if let Some(ItemKind::Footage(f)) = proj.item_mut(*i).map(|x| &mut x.kind) { @@ -431,6 +441,9 @@ fn interpret(s: &mut Session, p: &Value) -> Result { if let Some(x) = par { f.pixel_aspect = x; } + if let Some(c) = profile { + f.color_profile = c; + } } } Ok(()) @@ -634,7 +647,7 @@ pub fn specs() -> Vec { "Main...", ["File", "Interpret Footage"], Some("Cmd+Alt+G"), - "{items?, frameRate?, alpha?: straight|premultiplied|ignore, loop?, pixelAspect?}", + "{items?, frameRate?, alpha?: straight|premultiplied|ignore, loop?, pixelAspect?, colorProfile?: srgb|rec709|rec2020|p3|auto}", has_footage_selection, interpret ), diff --git a/crates/engine/src/lib.rs b/crates/engine/src/lib.rs index 8b5c5f43..5bc51716 100644 --- a/crates/engine/src/lib.rs +++ b/crates/engine/src/lib.rs @@ -518,6 +518,8 @@ mod tests; #[cfg(test)] mod tests_3d; #[cfg(test)] +mod tests_fidelity; +#[cfg(test)] mod tests_effects; #[cfg(test)] mod tests_lottie; diff --git a/crates/engine/src/tests_fidelity.rs b/crates/engine/src/tests_fidelity.rs new file mode 100644 index 00000000..d1b63e2d --- /dev/null +++ b/crates/engine/src/tests_fidelity.rs @@ -0,0 +1,28 @@ +//! Render-fidelity commands: project colour settings, footage colour profile, slip edit. + +use effectcraft_project::{BitDepth, ColorSpace}; +use serde_json::json; + +use crate::Session; + +#[test] +fn project_colour_settings_are_undoable() { + let mut s = Session::default(); + s.execute("file.projectSettings", json!({"bitDepth": 32, "workingSpace": "rec2020", "linearize": true, "blendLinear": true})).unwrap(); + let st = &s.project.settings; + assert_eq!((st.bit_depth, st.working_space, st.linearize, st.blend_linear), (BitDepth::Bpc32, Some(ColorSpace::Rec2020), true, true)); + s.execute("file.projectSettings", json!({"workingSpace": "Display P3"})).unwrap(); + assert_eq!(s.project.settings.working_space, Some(ColorSpace::DisplayP3)); + s.execute("file.projectSettings", json!({"workingSpace": "none"})).unwrap(); + assert_eq!(s.project.settings.working_space, None); + assert!(s.execute("file.projectSettings", json!({"workingSpace": "acescg-ish"})).is_err()); + assert!(s.undo()); + assert_eq!(s.project.settings.working_space, Some(ColorSpace::DisplayP3)); + assert!(s.undo() && s.undo()); + assert_eq!(s.project.settings.bit_depth, BitDepth::Bpc8); + assert!(!s.project.settings.blend_linear); + // The Project panel's depth button cycles 8 → 16 → 32 → 8. + for want in ["16 bpc", "32 bpc", "8 bpc"] { + assert_eq!(s.execute("file.cycleBitDepth", json!({})).unwrap(), json!(want)); + } +} diff --git a/crates/engine/src/tests_stubs.rs b/crates/engine/src/tests_stubs.rs index c1356ff2..141858ca 100644 --- a/crates/engine/src/tests_stubs.rs +++ b/crates/engine/src/tests_stubs.rs @@ -256,6 +256,7 @@ impl Importer for MockImporter { codec: "mock".into(), missing: false, sequence: vec![], + color_profile: None, }) } } diff --git a/crates/engine/src/tests_track.rs b/crates/engine/src/tests_track.rs index b3c2a174..7ea69cfa 100644 --- a/crates/engine/src/tests_track.rs +++ b/crates/engine/src/tests_track.rs @@ -100,6 +100,7 @@ fn setup(make: impl Fn(u32) -> Image + Send + Sync + 'static) -> (Session, Layer codec: String::new(), missing: false, sequence: vec![], + color_profile: None, }; let item = p.add_item("clip", Label::Aqua, None, ItemKind::Footage(footage)); let comp = p.comp(cid).unwrap().clone(); @@ -408,6 +409,7 @@ fn analyze_1080p_single_point_speed() { codec: String::new(), missing: false, sequence: vec![], + color_profile: None, }; let item = p.add_item("hd", Label::Aqua, None, ItemKind::Footage(footage)); let comp = p.comp(cid).unwrap().clone(); diff --git a/crates/lottie/src/import.rs b/crates/lottie/src/import.rs index 9ad38f39..c87dc187 100644 --- a/crates/lottie/src/import.rs +++ b/crates/lottie/src/import.rs @@ -170,6 +170,7 @@ pub fn import( codec: String::new(), missing: false, sequence: vec![], + color_profile: None, }; let item = project.add_item(&nm, Label::Lavender, Some(folder), ItemKind::Footage(foot)); cx.items.push(item); diff --git a/crates/lottie/src/tests.rs b/crates/lottie/src/tests.rs index 0cd38a09..5140133c 100644 --- a/crates/lottie/src/tests.rs +++ b/crates/lottie/src/tests.rs @@ -591,6 +591,7 @@ fn images_embed_as_base64_and_come_back() { codec: String::new(), missing: false, sequence: vec![], + color_profile: None, }), ); let c = comp(&p, cid); diff --git a/crates/media/src/probe.rs b/crates/media/src/probe.rs index a248cfc6..4e1c5611 100644 --- a/crates/media/src/probe.rs +++ b/crates/media/src/probe.rs @@ -71,6 +71,20 @@ pub(crate) fn footage_from_info(path: &str, info: &filmcraft_media::MediaInfo) - codec, missing: false, sequence: Vec::new(), + color_profile: v.and_then(|v| profile_of(&v.color)), + } +} + +/// The colour profile a video stream declares (H.273 primaries / transfer from the bitstream or +/// container). `None` (interpreted as sRGB) for Rec. 709 primaries with an sRGB curve. +fn profile_of(c: &filmcraft_color::ColorInfo) -> Option { + use effectcraft_project::ColorSpace; + use filmcraft_color::{Primaries, Transfer}; + match (c.primaries, c.transfer) { + (Primaries::Bt2020, _) => Some(ColorSpace::Rec2020), + (Primaries::P3D65, _) => Some(ColorSpace::DisplayP3), + (_, Transfer::Bt709) => Some(ColorSpace::Rec709), + _ => None, } } @@ -99,6 +113,7 @@ fn still_footage(path: &str, w: u32, h: u32, fmt: image::ImageFormat, has_alpha: codec, missing: false, sequence: Vec::new(), + color_profile: None, } } diff --git a/crates/project/src/lib.rs b/crates/project/src/lib.rs index 722f3fe1..88fc6d02 100644 --- a/crates/project/src/lib.rs +++ b/crates/project/src/lib.rs @@ -13,6 +13,7 @@ pub mod tracking; use std::collections::BTreeMap; use std::sync::Arc; +pub use effectcraft_color::ColorSpace; use effectcraft_color::{BlendMode, Label}; use effectcraft_time::{FrameRate, Tick}; pub use props::{Expression, FeatherFalloff, GroupKind, MaskMode, MaskMotionBlur, Node, ParamUi, PropGroup, Property, Uid, parse_path}; @@ -70,6 +71,22 @@ impl BitDepth { pub fn is_float(self) -> bool { self == BitDepth::Bpc32 } + /// Quantisation levels per channel of the integer depths (8 bpc: 255; 16 bpc: 32768, After + /// Effects' "15 + 1" bit range), `None` for 32 bpc float. + pub fn levels(self) -> Option { + match self { + BitDepth::Bpc8 => Some(255.0), + BitDepth::Bpc16 => Some(32768.0), + BitDepth::Bpc32 => None, + } + } + pub fn bits(self) -> u32 { + match self { + BitDepth::Bpc8 => 8, + BitDepth::Bpc16 => 16, + BitDepth::Bpc32 => 32, + } + } } #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] @@ -82,8 +99,16 @@ pub enum TimeDisplayStyle { #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub struct ProjectSettings { pub bit_depth: BitDepth, - /// Blend in linear light instead of the sRGB-encoded working space. + /// Linearize Working Space: the working space uses linear light (1.0 gamma) for everything + /// (sources, effects, blending). Needs a working space. pub linearize: bool, + /// Working Space (colour management). `None` = no colour management. + #[serde(default)] + pub working_space: Option, + /// Blend Colors Using 1.0 Gamma: layers blend in linear light (sources and effects stay in + /// the working space's encoding). + #[serde(default)] + pub blend_linear: bool, pub time_display: TimeDisplayStyle, /// Frame numbering starts at 0 (or 1). pub frame_start: i64, @@ -92,7 +117,15 @@ pub struct ProjectSettings { impl Default for ProjectSettings { fn default() -> Self { - ProjectSettings { bit_depth: BitDepth::Bpc8, linearize: false, time_display: TimeDisplayStyle::Timecode, frame_start: 0, audio_sample_rate: 48_000 } + ProjectSettings { + bit_depth: BitDepth::Bpc8, + linearize: false, + working_space: None, + blend_linear: false, + time_display: TimeDisplayStyle::Timecode, + frame_start: 0, + audio_sample_rate: 48_000, + } } } @@ -520,6 +553,9 @@ pub struct Footage { /// Image sequence files (when kind = Sequence). #[serde(default, skip_serializing_if = "Vec::is_empty")] pub sequence: Vec, + /// Colour profile (from the file's metadata, or Interpret Footage). `None` = sRGB. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub color_profile: Option, } fn one() -> u32 { diff --git a/crates/render/src/audio.rs b/crates/render/src/audio.rs index 246ff683..4884411f 100644 --- a/crates/render/src/audio.rs +++ b/crates/render/src/audio.rs @@ -329,6 +329,7 @@ mod tests { codec: String::new(), missing: false, sequence: vec![], + color_profile: None, }; let fid = p.add_item("x.wav", effectcraft_color::Label::SeaFoam, None, ItemKind::Footage(f)); let comp = Comp::new(64, 64, FrameRate::new(25, 1), Tick::from_seconds_f64(2.0)); diff --git a/crates/render/src/cache.rs b/crates/render/src/cache.rs index d1dc692c..a26e652c 100644 --- a/crates/render/src/cache.rs +++ b/crates/render/src/cache.rs @@ -291,6 +291,8 @@ fn key_with(ctx: &EvalCtx, layer: &Layer, scale: f64, draft: bool, footage: bool } _ => return None, } + // Bit depth and colour management change the pixels. + crate::color::Pipe::of(&ctx.project.settings).key().hash(&mut h); ctx.comp_id.hash(&mut h); ctx.comp.width.hash(&mut h); ctx.comp.height.hash(&mut h); diff --git a/crates/render/src/color.rs b/crates/render/src/color.rs new file mode 100644 index 00000000..7b190b7d --- /dev/null +++ b/crates/render/src/color.rs @@ -0,0 +1,114 @@ +//! Project colour settings in the compositor: bit depth, working space, linear blending. +//! +//! * **Bit depth.** Pixels are `f32` throughout, but 8 and 16 bpc projects behave like integer +//! pipelines: each layer's pixels are clamped to 0..1 and quantised to the depth after its +//! source and masks and after every effect, and the comp is clamped and quantised after every +//! layer is blended. Over-range values (Add/Screen of bright layers, Exposure…) therefore only +//! survive in 32 bpc. 16 bpc uses After Effects' 0..32768 range. +//! * **Working space** (colour management). Footage is converted from its colour profile (its +//! metadata, else sRGB) into the working space; the top-level comp output is converted from +//! the working space to the sRGB display. Without a working space nothing is converted. +//! * **Linearize Working Space**: the working space is linear light, so sources (footage and +//! the colours of solids, text and shapes, which are authored in the working space's encoding) +//! are linearised before masks and effects, and everything runs in linear. +//! * **Blend Colors Using 1.0 Gamma**: only blending is linear. Each layer's finished pixels +//! are linearised just before they are transformed and blended, the comp accumulates in linear +//! and is encoded back to the working space when the comp is done (so precomps hand encoded +//! pixels to their parent). Without a working space the sRGB curve is used. + +use effectcraft_color::{ColorSpace, Conversion}; +use effectcraft_project::ProjectSettings; +use effectcraft_raster::Image; +use rayon::prelude::*; + +/// The colour pipeline of a project (see the module docs). +#[derive(Clone, Copy, Debug, PartialEq)] +pub struct Pipe { + /// Quantisation levels (255, 32768) or `None` for 32 bpc float. + pub levels: Option, + /// Working space (`None` = unmanaged). + pub space: Option, + /// The working space is linear. + pub linear: bool, + /// Blend in linear light (and the working space is not already linear). + pub linear_blend: bool, +} + +impl Pipe { + pub fn of(s: &ProjectSettings) -> Pipe { + let linear = s.linearize && s.working_space.is_some(); + Pipe { levels: s.bit_depth.levels(), space: s.working_space, linear, linear_blend: s.blend_linear && !linear } + } + + /// The space whose curve encodes working-space pixels (sRGB when unmanaged). + fn curve(&self) -> ColorSpace { + self.space.unwrap_or(ColorSpace::Srgb) + } + + /// Footage with colour profile `profile` (`None` = sRGB) → working space. + pub fn media_in(&self, profile: Option) -> Option { + let ws = self.space?; + Conversion::new(profile.unwrap_or(ColorSpace::Srgb), false, ws, self.linear) + } + + /// Authored colours (solids, text, shapes) → working space: linearised in a linear working + /// space. + pub fn authored_in(&self) -> Option { + self.linear.then(|| Conversion::linearize(self.curve())) + } + + /// Working space → blending space (linear when blending with 1.0 gamma). + pub fn to_blend(&self) -> Option { + self.linear_blend.then(|| Conversion::linearize(self.curve())) + } + + /// Blending space → working space. + pub fn from_blend(&self) -> Option { + self.linear_blend.then(|| Conversion::delinearize(self.curve())) + } + + /// Working space → sRGB display (top-level comp output). + pub fn output(&self) -> Option { + let ws = self.space?; + Conversion::new(ws, self.linear, ColorSpace::Srgb, false) + } + + /// Clamp and quantise to the bit depth (no-op in 32 bpc). + pub fn quantize(&self, img: &mut Image) { + if let Some(l) = self.levels { + quantize(img, l); + } + } + + /// Hash of everything that changes pixels (for cache keys). + pub fn key(&self) -> u64 { + let mut k = self.levels.map_or(0, |l| l as u64); + k = k.wrapping_mul(31).wrapping_add(self.space.map_or(7, |s| s as u64 + 11)); + k = k.wrapping_mul(31).wrapping_add(self.linear as u64 * 2 + self.linear_blend as u64); + k + } +} + +/// Clamp premultiplied pixels to 0..1 (colour ≤ alpha) and round to `levels` steps. +pub fn quantize(img: &mut Image, levels: f32) { + let inv = 1.0 / levels; + img.data.par_iter_mut().for_each(|p| { + let a = (p[3].clamp(0.0, 1.0) * levels).round() * inv; + p[3] = a; + for c in 0..3 { + p[c] = (p[c].clamp(0.0, a) * levels).round() * inv; + } + }); +} + +/// Convert premultiplied pixels (on straight colour). +pub fn convert(img: &mut Image, c: &Conversion) { + img.data.par_iter_mut().for_each(|p| { + let a = p[3]; + if a <= 0.0 { + return; + } + let o = c.apply([p[0] / a, p[1] / a, p[2] / a]); + *p = [o[0] * a, o[1] * a, o[2] * a, a]; + }); +} diff --git a/crates/render/src/lib.rs b/crates/render/src/lib.rs index dc7db2d4..d60a1ee8 100644 --- a/crates/render/src/lib.rs +++ b/crates/render/src/lib.rs @@ -8,6 +8,7 @@ pub mod audio; pub mod cache; +pub mod color; pub mod eval; pub mod masks; pub mod shapes; @@ -64,7 +65,7 @@ impl EffectHost for FxHost<'_, '_, '_> { if other.id == self.layer.id || self.r.depth > MAX_FX_DEPTH { return None; } - let sub = Renderer { depth: self.r.depth + 1, ..*self.r }; + let sub = self.r.nested(); // The cached layer buffer is shared; effects get their own copy. let buf = if masks_and_effects { (*sub.content_buf(self.ctx, other)?).clone() } else { sub.source(self.ctx, other)? }; let size = source_size(self.r.project, other); @@ -77,7 +78,7 @@ impl EffectHost for FxHost<'_, '_, '_> { if other.id == self.layer.id || self.r.depth > MAX_FX_DEPTH { return None; } - let sub = Renderer { depth: self.r.depth + 1, ..*self.r }; + let sub = self.r.nested(); let buf = (*sub.layer_input(self.ctx, other, 0)?).clone(); let size = source_size(self.r.project, other); let size = if size.0 == 0 { [self.ctx.comp.width as f64, self.ctx.comp.height as f64] } else { [size.0 as f64, size.1 as f64] }; @@ -101,7 +102,7 @@ impl EffectHost for FxHost<'_, '_, '_> { } let n = effects.min(self.index.load(std::sync::atomic::Ordering::Relaxed)); let t = self.layer.comp_time(Tick::from_seconds_f64(layer_time)); - let sub = Renderer { depth: self.r.depth + 1, ..*self.r }; + let sub = self.r.nested(); sub.layer_input(&self.ctx.at(t), self.layer, n).map(|b| (*b).clone()) } @@ -111,7 +112,7 @@ impl EffectHost for FxHost<'_, '_, '_> { return None; } let ctx = self.ctx.at(Tick::from_seconds_f64(comp_time)); - let sub = Renderer { depth: self.r.depth + 1, ..*self.r }; + let sub = self.r.nested(); let buf = if masks_and_effects { (*sub.content_buf(&ctx, other)?).clone() } else { (*sub.layer_input(&ctx, other, 0)?).clone() }; let size = source_size(self.r.project, other); let size = if size.0 == 0 { [self.ctx.comp.width as f64, self.ctx.comp.height as f64] } else { [size.0 as f64, size.1 as f64] }; @@ -157,6 +158,8 @@ pub struct Renderer<'a> { pub profile: Option<&'a std::sync::Mutex>>, /// Current nesting depth (precomp recursion guard). depth: usize, + /// The project's colour pipeline (bit depth, working space, linear blending). + pub(crate) pipe: color::Pipe, } /// Time spent on one layer of one frame (milliseconds). @@ -176,7 +179,12 @@ pub struct LayerTiming { impl<'a> Renderer<'a> { pub fn new(project: &'a Project, footage: &'a dyn FootageSource, opts: RenderOpts) -> Renderer<'a> { - Renderer { project, footage, expr: None, opts, cache: None, profile: None, depth: 0 } + Renderer { project, footage, expr: None, opts, cache: None, profile: None, depth: 0, pipe: color::Pipe::of(&project.settings) } + } + + /// A renderer for nested work (precomps, layers read by effects): one level deeper. + fn nested(&self) -> Renderer<'a> { + Renderer { depth: self.depth + 1, ..*self } } fn ctx(&self, comp_id: ItemId, comp: &'a Comp, t: Tick) -> EvalCtx<'a> { @@ -194,6 +202,24 @@ impl<'a> Renderer<'a> { return canvas; } let ctx = self.ctx(comp_id, comp, t); + self.draw_comp(&ctx, &mut canvas); + if let Some(c) = self.pipe.from_blend() { + color::convert(&mut canvas, &c); + } + self.pipe.quantize(&mut canvas); + // The top-level comp leaves the working space for the (sRGB) display / output. + if self.depth == 0 + && let Some(c) = self.pipe.output() + { + color::convert(&mut canvas, &c); + self.pipe.quantize(&mut canvas); + } + canvas + } + + /// Draw a comp's layers (bottom to top) into `canvas` (blending space). + fn draw_comp(&self, ctx: &EvalCtx<'a>, canvas: &mut Image) { + let (comp, t) = (ctx.comp, ctx.time); let any_solo = comp.layers.iter().any(|l| l.switches.solo && l.source.is_av() && l.is_active_at(t)); // Bottom-to-top, with runs of consecutive 3D layers depth-sorted (farthest first). let visible: Vec<&Layer> = comp @@ -209,17 +235,15 @@ impl<'a> Renderer<'a> { while j < visible.len() && visible[j].is_3d() { j += 1; } - three_d::compose::draw_run(self, &ctx, &visible[i..j], &mut canvas); + three_d::compose::draw_run(self, ctx, &visible[i..j], canvas); i = j; } else { - self.draw_layer(&ctx, visible[i], &mut canvas); + self.draw_layer(ctx, visible[i], canvas); i += 1; } + // 8/16 bpc: the comp is an integer buffer after every layer. + self.pipe.quantize(canvas); } - if !self.project.settings.bit_depth.is_float() { - canvas.clamp01(); - } - canvas } /// Evaluate an effect instance's parameters. @@ -271,6 +295,8 @@ impl<'a> Renderer<'a> { let ectx = EffectCtx { params: ¶ms, time: lt.seconds(), layer_size, seed: g.uid as u32, adjustment, env }; let t0 = web_time::Instant::now(); buf = effectcraft_effects::apply(spec, &ectx, buf); + // 8/16 bpc effects write integer pixels. + self.pipe.quantize(&mut buf.img); if let Some(v) = timing.as_deref_mut() { v.push((spec.id.to_string(), t0.elapsed().as_secs_f64() * 1e3)); } @@ -289,14 +315,17 @@ impl<'a> Renderer<'a> { if layer.switches.adjustment { return Some(Buf { img: Image::filled(w, h, [1.0; 4]), offset: [0.0; 2], scale: s }); } - let c = sol.color; + let mut c = sol.color; + if let Some(conv) = self.pipe.authored_in() { + c = conv.apply(c); + } Some(Buf { img: Image::filled(w, h, [c[0], c[1], c[2], 1.0]), offset: [0.0; 2], scale: s }) } LayerSource::Comp { item } => { if self.project.comp_contains(*item, ctx.comp_id) { return None; } - let sub = Renderer { depth: self.depth + 1, ..*self }; + let sub = self.nested(); let lt = ctx.source_time(layer); Some(Buf { img: sub.comp_frame(*item, lt), offset: [0.0; 2], scale: s }) } @@ -307,40 +336,94 @@ impl<'a> Renderer<'a> { return None; } let lt = ctx.source_time(layer); - let img = self.footage.frame(*item, f, lt)?; + let img = self.footage_frame(ctx, layer, *item, f, lt)?; let k = if img.width > 0 { f.width.max(1) as f64 / img.width as f64 } else { 1.0 }; // Keep native pixels when downsampling is small; resample otherwise. - if s < 0.75 { + let mut buf = if s < 0.75 { let w = ((f.width as f64 * s).round() as u32).max(1); let h = ((f.height as f64 * s).round() as u32).max(1); - return Some(Buf { img: effectcraft_raster::resample(&img, w, h), offset: [0.0; 2], scale: s }); + Buf { img: effectcraft_raster::resample(&img, w, h), offset: [0.0; 2], scale: s } + } else { + Buf { img: (*img).clone(), offset: [0.0; 2], scale: 1.0 / k } + }; + if let Some(c) = self.pipe.media_in(f.color_profile) { + color::convert(&mut buf.img, &c); } - Some(Buf { img: (*img).clone(), offset: [0.0; 2], scale: 1.0 / k }) + Some(buf) } - LayerSource::Text => Some(text::render(ctx, layer, s)), - LayerSource::Shape => layer.props.sub("contents").map(|c| shapes::render(ctx, layer, c, s)), + LayerSource::Text => Some(self.authored(text::render(ctx, layer, s))), + LayerSource::Shape => layer.props.sub("contents").map(|c| self.authored(shapes::render(ctx, layer, c, s))), _ => None, } } + /// Authored colours into the working space (linear working spaces). + fn authored(&self, mut buf: Buf) -> Buf { + if let Some(c) = self.pipe.authored_in() { + color::convert(&mut buf.img, &c); + } + buf + } + + /// A footage frame at source time `t`. + fn footage_frame(&self, _ctx: &EvalCtx, _layer: &Layer, item: ItemId, f: &Footage, t: Tick) -> Option> { + self.footage.frame(item, f, t) + } + + /// Source → masks, clamped/quantised to the project depth. + fn masked_source(&self, ctx: &EvalCtx, layer: &Layer) -> Option { + let mut buf = self.source(ctx, layer)?; + masks::apply(ctx, layer, &mut buf); + self.pipe.quantize(&mut buf.img); + Some(buf) + } + /// Fully processed layer buffer (source → masks → effects → layer styles, flattened). /// Served from the layer cache when the layer's content key matches. pub fn layer_buf(&self, ctx: &EvalCtx, layer: &Layer) -> Option> { + self.layer_buf_keyed(ctx, layer).map(|(b, _)| b) + } + + /// [`Self::layer_buf`] in the blending space (linear with Blend Colors Using 1.0 Gamma). + pub(crate) fn blend_layer_buf(&self, ctx: &EvalCtx, layer: &Layer) -> Option> { + let (b, k) = self.layer_buf_keyed(ctx, layer)?; + Some(self.to_blend(b, k)) + } + + /// A buffer converted to the blending space (cached under a key derived from `key`). + pub(crate) fn to_blend(&self, b: Arc, key: Option) -> Arc { + let Some(c) = self.pipe.to_blend() else { return b }; + let key = key.map(|k| cache::derive(k, 0x1ea7)); + if let (Some(cache), Some(k)) = (self.cache, key) + && let Some(x) = cache.get(k) + { + return x; + } + let mut nb = (*b).clone(); + color::convert(&mut nb.img, &c); + let nb = Arc::new(nb); + if let (Some(cache), Some(k)) = (self.cache, key) { + cache.insert(k, nb.clone()); + } + nb + } + + fn layer_buf_keyed(&self, ctx: &EvalCtx, layer: &Layer) -> Option<(Arc, Option)> { let st = self.styled(ctx, layer, None)?; if st.passes.is_empty() { - return Some(st.body); + return Some((st.body, st.key)); } let key = st.key.map(|k| cache::derive(k, 0xf1a7)); if let (Some(c), Some(k)) = (self.cache, key) && let Some(b) = c.get(k) { - return Some(b); + return Some((b, key)); } let flat = Arc::new(styles::Styled { passes: st.passes.iter().map(|(b, m)| ((**b).clone(), *m)).collect(), body: (*st.body).clone() }.flatten()); if let (Some(c), Some(k)) = (self.cache, key) { c.insert(k, flat.clone()); } - Some(flat) + Some((flat, key)) } /// A layer's source pixels at the context time, before masks, effects and the transform @@ -365,8 +448,7 @@ impl<'a> Renderer<'a> { } return Some((b, key)); } - let mut buf = self.source(ctx, layer)?; - masks::apply(ctx, layer, &mut buf); + let buf = self.masked_source(ctx, layer)?; let buf = Arc::new(self.apply_effects_timed(ctx, layer, buf, false, usize::MAX, timing.map(|t| &mut t.effects))); if let (Some(c), Some(k)) = (self.cache, key) { c.insert(k, buf.clone()); @@ -384,8 +466,7 @@ impl<'a> Renderer<'a> { { return Some(b); } - let mut buf = self.source(ctx, layer)?; - masks::apply(ctx, layer, &mut buf); + let mut buf = self.masked_source(ctx, layer)?; if effects > 0 { buf = self.apply_effects_timed(ctx, layer, buf, false, effects, None); } @@ -400,7 +481,7 @@ impl<'a> Renderer<'a> { fn styled(&self, ctx: &EvalCtx, layer: &Layer, mut timing: Option<&mut LayerTiming>) -> Option { let (content, ckey) = self.content_buf_timed(ctx, layer, timing.as_deref_mut())?; if !styles::active(ctx, layer) { - return Some(StyledLayer { passes: vec![], body: content.clone(), content, key: None, plain: true }); + return Some(StyledLayer { passes: vec![], body: content.clone(), content, key: ckey, ckey, plain: true }); } let modes = styles::pass_modes(ctx, layer); let key = ckey.map(|k| cache::styles_key(ctx, layer, k)); @@ -409,7 +490,7 @@ impl<'a> Renderer<'a> { { let passes: Option> = modes.iter().enumerate().map(|(i, m)| c.get(cache::derive(k, i as u64 + 1)).map(|b| (b, *m))).collect(); if let Some(passes) = passes { - return Some(StyledLayer { passes, body, content, key, plain: false }); + return Some(StyledLayer { passes, body, content, key, ckey, plain: false }); } } let t0 = web_time::Instant::now(); @@ -428,7 +509,18 @@ impl<'a> Renderer<'a> { c.insert(cache::derive(k, i as u64 + 1), b.clone()); } } - Some(StyledLayer { passes, body, content, key, plain: false }) + Some(StyledLayer { passes, body, content, key, ckey, plain: false }) + } + + /// The styled layer's buffers in the blending space. + fn styled_to_blend(&self, st: StyledLayer) -> StyledLayer { + if self.pipe.to_blend().is_none() { + return st; + } + let body = self.to_blend(st.body, st.key); + let content = if st.plain { body.clone() } else { self.to_blend(st.content, st.ckey) }; + let passes = st.passes.into_iter().enumerate().map(|(i, (b, m))| (self.to_blend(b, st.key.map(|k| cache::derive(k, i as u64 + 1))), m)).collect(); + StyledLayer { passes, body, content, ..st } } fn sampling(&self, layer: &Layer) -> effectcraft_raster::Sampling { @@ -488,6 +580,7 @@ impl<'a> Renderer<'a> { let mut timing = self.profile.map(|_| LayerTiming { depth: self.depth, layer: layer.name.clone(), ..Default::default() }); let t0 = web_time::Instant::now(); let Some(st) = self.styled(ctx, layer, timing.as_mut()) else { return }; + let st = self.styled_to_blend(st); let t1 = web_time::Instant::now(); if st.plain { self.composite_layer(ctx, layer, &st.body, canvas, opacity); @@ -595,8 +688,15 @@ impl<'a> Renderer<'a> { masks::apply(ctx, layer, &mut foot); let mut matte = Image::new(canvas.width, canvas.height); self.place(ctx, layer, &foot, &mut matte, BlendMode::Normal, 1.0); - let below = Buf { img: canvas.clone(), offset: [0.0; 2], scale: self.opts.scale }; - let adjusted = self.apply_effects(ctx, layer, below, true); + let mut below = Buf { img: canvas.clone(), offset: [0.0; 2], scale: self.opts.scale }; + // Effects run in the working space, not the linear blending space. + if let Some(c) = self.pipe.from_blend() { + color::convert(&mut below.img, &c); + } + let mut adjusted = self.apply_effects(ctx, layer, below, true); + if let Some(c) = self.pipe.to_blend() { + color::convert(&mut adjusted.img, &c); + } if adjusted.img.width != canvas.width || adjusted.img.height != canvas.height { return; } @@ -615,8 +715,10 @@ struct StyledLayer { body: Arc, /// Pre-style pixels (knockout shape). content: Arc, - /// Styled cache key. + /// Styled cache key (the content key when plain). key: Option, + /// Content cache key. + ckey: Option, /// No layer styles: composite `body` the usual way. plain: bool, } @@ -659,6 +761,8 @@ pub fn kurbo_path(sp: &effectcraft_keyframe::ShapePath) -> kurbo::BezPath { #[cfg(test)] mod tests_audio_fx; #[cfg(test)] +mod tests_color; +#[cfg(test)] mod tests_paint; #[cfg(test)] mod tests_time; diff --git a/crates/render/src/tests.rs b/crates/render/src/tests.rs index dc1f3cda..a5a7d8b6 100644 --- a/crates/render/src/tests.rs +++ b/crates/render/src/tests.rs @@ -8,6 +8,8 @@ use crate::render_frame; fn setup() -> (Project, ItemId, Comp) { let mut p = Project::default(); + // Exact float maths; 8/16 bpc quantisation has its own tests (tests_color). + p.settings.bit_depth = effectcraft_project::BitDepth::Bpc32; let comp = Comp::new(200, 100, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(comp.clone().into())); (p, cid, comp) diff --git a/crates/render/src/tests_audio_fx.rs b/crates/render/src/tests_audio_fx.rs index 173ffc88..dfd49ccc 100644 --- a/crates/render/src/tests_audio_fx.rs +++ b/crates/render/src/tests_audio_fx.rs @@ -50,6 +50,7 @@ fn audio_footage() -> Footage { codec: String::new(), missing: false, sequence: vec![], + color_profile: None, } } diff --git a/crates/render/src/tests_color.rs b/crates/render/src/tests_color.rs new file mode 100644 index 00000000..87f9dd1a --- /dev/null +++ b/crates/render/src/tests_color.rs @@ -0,0 +1,227 @@ +//! Bit depth, working space and linear blending. + +use std::sync::Arc; + +use effectcraft_color::{BlendMode, ColorSpace, Label}; +use effectcraft_project::build; +use effectcraft_project::{AlphaMode, BitDepth, Comp, Footage, FootageKind, ItemId, ItemKind, LayerSource, Project, Solid}; +use effectcraft_time::{FrameRate, Tick}; + +use crate::{FootageSource, Image, LayerCache, RenderOpts, Renderer, render_frame}; + +fn setup(depth: BitDepth) -> (Project, ItemId, Comp) { + let mut p = Project::default(); + p.settings.bit_depth = depth; + let comp = Comp::new(40, 20, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(comp.clone().into())); + (p, cid, comp) +} + +fn add_solid(p: &mut Project, cid: ItemId, color: [f32; 3], mode: BlendMode, opacity: f64) { + let comp = p.comp(cid).unwrap().clone(); + let sid = p.add_item("S", Label::Red, None, ItemKind::Solid(Solid { color, width: 40, height: 20, pixel_aspect: 1.0 })); + let mut l = build::layer(p, &comp, "S", LayerSource::Solid { item: sid }, (40, 20), None); + l.blend_mode = mode; + l.props.prop_mut("transform/opacity").unwrap().value = effectcraft_keyframe::Value::Scalar(opacity); + // New layers go on top. + p.comp_mut(cid).unwrap().layers.insert(0, l); +} + +fn px(p: &Project, cid: ItemId) -> [f32; 4] { + render_frame(p, cid, Tick::ZERO, 1.0).get(10, 10) +} + +#[test] +fn add_clamps_in_8_and_16_but_not_32_bpc() { + for (depth, want) in [(BitDepth::Bpc8, 1.0), (BitDepth::Bpc16, 1.0), (BitDepth::Bpc32, 1.6)] { + let (mut p, cid, _) = setup(depth); + add_solid(&mut p, cid, [0.8, 0.8, 0.8], BlendMode::Normal, 100.0); + add_solid(&mut p, cid, [0.8, 0.8, 0.8], BlendMode::Add, 100.0); + let v = px(&p, cid)[0]; + assert!((v - want).abs() < 1e-5, "{depth:?}: {v}"); + } + // Screen of over-range values survives in 32 bpc only: a 1.6 base screened with 0.5. + let (mut p, cid, _) = setup(BitDepth::Bpc32); + add_solid(&mut p, cid, [0.8, 0.8, 0.8], BlendMode::Normal, 100.0); + add_solid(&mut p, cid, [0.8, 0.8, 0.8], BlendMode::Add, 100.0); + add_solid(&mut p, cid, [0.5, 0.5, 0.5], BlendMode::Screen, 100.0); + let v = px(&p, cid)[0]; + assert!((v - (1.6 + 0.5 - 0.8)).abs() < 1e-5, "{v}"); +} + +#[test] +fn quantization_steps_per_depth() { + let want = |depth| match depth { + BitDepth::Bpc8 => (0.3f32 * 255.0).round() / 255.0, + BitDepth::Bpc16 => (0.3f32 * 32768.0).round() / 32768.0, + BitDepth::Bpc32 => 0.3, + }; + for depth in [BitDepth::Bpc8, BitDepth::Bpc16, BitDepth::Bpc32] { + let (mut p, cid, _) = setup(depth); + add_solid(&mut p, cid, [0.3, 0.3, 0.3], BlendMode::Normal, 100.0); + let v = px(&p, cid)[0]; + assert!((v - want(depth)).abs() < 1e-7, "{depth:?}: {v} vs {}", want(depth)); + } + // 8 bpc: 77/255 = 0.30196 (one step is 1/255); 16 bpc is within 1/65536. + let (mut p8, c8, _) = setup(BitDepth::Bpc8); + add_solid(&mut p8, c8, [0.3, 0.3, 0.3], BlendMode::Normal, 100.0); + assert!((px(&p8, c8)[0] - 77.0 / 255.0).abs() < 1e-7); + // A 1% opacity layer of white over black lands on a whole 8-bit step. + let (mut p, cid, _) = setup(BitDepth::Bpc8); + add_solid(&mut p, cid, [0.0, 0.0, 0.0], BlendMode::Normal, 100.0); + add_solid(&mut p, cid, [1.0, 1.0, 1.0], BlendMode::Normal, 1.0); + let v = px(&p, cid)[0] * 255.0; + assert!((v - v.round()).abs() < 1e-4 && (v - 2.55).abs() < 1.0, "{v}"); +} + +#[test] +fn linear_blending_of_red_over_green() { + // 50% red over green: gamma blending gives (0.5, 0.5, 0); 1.0-gamma blending mixes linear + // light, so each channel is the sRGB encoding of 0.5 linear ≈ 0.735. + let run = |linear: bool| { + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.blend_linear = linear; + add_solid(&mut p, cid, [0.0, 1.0, 0.0], BlendMode::Normal, 100.0); + add_solid(&mut p, cid, [1.0, 0.0, 0.0], BlendMode::Normal, 50.0); + px(&p, cid) + }; + let g = run(false); + assert!((g[0] - 0.5).abs() < 1e-5 && (g[1] - 0.5).abs() < 1e-5 && g[2].abs() < 1e-6, "{g:?}"); + let l = run(true); + let e = effectcraft_color::linear_to_srgb(0.5); + assert!((l[0] - e).abs() < 1e-4 && (l[1] - e).abs() < 1e-4 && l[2].abs() < 1e-6, "{l:?}"); + assert!((e - 0.7354).abs() < 1e-3); + // Unblended (opaque) layers are unchanged by linear blending. + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.blend_linear = true; + add_solid(&mut p, cid, [0.25, 0.5, 0.75], BlendMode::Normal, 100.0); + let o = px(&p, cid); + assert!((o[0] - 0.25).abs() < 1e-5 && (o[1] - 0.5).abs() < 1e-5 && (o[2] - 0.75).abs() < 1e-5, "{o:?}"); +} + +#[test] +fn linearized_working_space_blends_linear_and_round_trips_colours() { + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.working_space = Some(ColorSpace::Srgb); + p.settings.linearize = true; + add_solid(&mut p, cid, [0.0, 1.0, 0.0], BlendMode::Normal, 100.0); + add_solid(&mut p, cid, [1.0, 0.0, 0.0], BlendMode::Normal, 50.0); + let l = px(&p, cid); + let e = effectcraft_color::linear_to_srgb(0.5); + assert!((l[0] - e).abs() < 1e-4 && (l[1] - e).abs() < 1e-4, "{l:?}"); + // An opaque solid shows its own colour (linearised in, encoded out). + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.working_space = Some(ColorSpace::Srgb); + p.settings.linearize = true; + add_solid(&mut p, cid, [0.2, 0.5, 0.9], BlendMode::Normal, 100.0); + let o = px(&p, cid); + assert!((o[0] - 0.2).abs() < 1e-4 && (o[1] - 0.5).abs() < 1e-4 && (o[2] - 0.9).abs() < 1e-4, "{o:?}"); + // Linearize needs a working space (like AE, where it is disabled without one). + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.linearize = true; + add_solid(&mut p, cid, [0.0, 1.0, 0.0], BlendMode::Normal, 100.0); + add_solid(&mut p, cid, [1.0, 0.0, 0.0], BlendMode::Normal, 50.0); + assert!((px(&p, cid)[0] - 0.5).abs() < 1e-5); +} + +#[test] +fn wide_working_space_colours_leave_the_display_gamut() { + // Pure Rec. 2020 red is outside sRGB: in 32 bpc the display conversion keeps the + // over-range/negative values; 8 bpc clamps them. + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.working_space = Some(ColorSpace::Rec2020); + add_solid(&mut p, cid, [1.0, 0.0, 0.0], BlendMode::Normal, 100.0); + let o = px(&p, cid); + assert!(o[0] > 1.0 && o[1] < 0.0 && o[2] < 0.0, "{o:?}"); + p.settings.bit_depth = BitDepth::Bpc8; + let o = px(&p, cid); + assert!((o[0] - 1.0).abs() < 1e-6 && o[1] == 0.0 && o[2] == 0.0, "{o:?}"); + // sRGB working space: no conversion at all. + let (mut p, cid, _) = setup(BitDepth::Bpc32); + p.settings.working_space = Some(ColorSpace::Srgb); + add_solid(&mut p, cid, [0.3, 0.6, 0.9], BlendMode::Normal, 100.0); + let o = px(&p, cid); + assert!((o[0] - 0.3).abs() < 1e-6 && (o[2] - 0.9).abs() < 1e-6); +} + +/// One flat-colour footage frame. +struct Flat([f32; 3]); +impl FootageSource for Flat { + fn frame(&self, _: ItemId, f: &Footage, _: Tick) -> Option> { + let c = self.0; + Some(Arc::new(Image::filled(f.width, f.height, [c[0], c[1], c[2], 1.0]))) + } +} + +fn footage(profile: Option) -> Footage { + Footage { + path: "x.png".into(), + kind: FootageKind::Still, + width: 40, + height: 20, + pixel_aspect: 1.0, + frame_rate: FrameRate::FPS_30, + native_rate: None, + duration: Tick::ZERO, + has_video: true, + has_audio: false, + alpha: AlphaMode::Ignore, + premul_color: [0.0; 3], + loop_count: 1, + codec: String::new(), + missing: false, + sequence: vec![], + color_profile: profile, + } +} + +#[test] +fn footage_profile_is_converted_into_the_working_space() { + let render = |ws: Option, profile: Option| { + let (mut p, cid, comp) = setup(BitDepth::Bpc32); + p.settings.working_space = ws; + let fid = p.add_item("F", Label::Aqua, None, ItemKind::Footage(footage(profile))); + let l = build::layer(&mut p, &comp, "F", LayerSource::Footage { item: fid }, (40, 20), None); + p.comp_mut(cid).unwrap().layers.push(l); + let src = Flat([1.0, 0.0, 0.0]); + Renderer::new(&p, &src, RenderOpts::default()).comp_frame(cid, Tick::ZERO).get(5, 5) + }; + // Unmanaged: the file's values pass straight through. + let o = render(None, Some(ColorSpace::Rec2020)); + assert_eq!(o, [1.0, 0.0, 0.0, 1.0]); + // Managed: Rec. 2020 red shown on an sRGB display is beyond sRGB red. + let o = render(Some(ColorSpace::Srgb), Some(ColorSpace::Rec2020)); + assert!(o[0] > 1.0 && o[1] < 0.0, "{o:?}"); + // Untagged footage is sRGB: a round trip through a Rec. 2020 working space. + let o = render(Some(ColorSpace::Rec2020), None); + assert!((o[0] - 1.0).abs() < 2e-3 && o[1].abs() < 2e-3 && o[2].abs() < 2e-3, "{o:?}"); +} + +#[test] +fn layer_cache_is_keyed_by_colour_settings() { + let (mut p, cid, _) = setup(BitDepth::Bpc8); + add_solid(&mut p, cid, [0.3, 0.3, 0.3], BlendMode::Normal, 100.0); + let cache = LayerCache::default(); + let frame = |p: &Project| { + let mut r = Renderer::new(p, &crate::NoFootage, RenderOpts::default()); + r.cache = Some(&cache); + r.comp_frame(cid, Tick::ZERO).get(10, 10)[0] + }; + let a = frame(&p); + assert!((a - 77.0 / 255.0).abs() < 1e-7); + assert_eq!(cache.stats().entries, 1); + p.settings.bit_depth = BitDepth::Bpc32; + let b = frame(&p); + assert!((b - 0.3).abs() < 1e-7, "stale 8 bpc pixels: {b}"); + p.settings.working_space = Some(ColorSpace::Srgb); + p.settings.linearize = true; + let _ = frame(&p); + assert_eq!(cache.stats().entries, 3, "each setting renders its own entry"); + // Back to 8 bpc reuses the first entry. + p.settings.bit_depth = BitDepth::Bpc8; + p.settings.working_space = None; + p.settings.linearize = false; + let hits = cache.stats().hits; + assert!((frame(&p) - a).abs() < 1e-9); + assert_eq!(cache.stats().hits, hits + 1); +} diff --git a/crates/render/src/three_d/compose.rs b/crates/render/src/three_d/compose.rs index 53023c50..421587bc 100644 --- a/crates/render/src/three_d/compose.rs +++ b/crates/render/src/three_d/compose.rs @@ -167,7 +167,7 @@ fn mb_samples(r: &Renderer, ctx: &EvalCtx, layer: &Layer) -> usize { /// Prepare a layer (buffer, geometry, material). `None` when it shows nothing. pub(crate) fn prepare<'a>(r: &Renderer, ctx: &EvalCtx<'a>, layer: &'a Layer, order: usize, out: (u32, u32), in_run: bool) -> Option> { - let buf = r.layer_buf(ctx, layer)?; + let buf = r.blend_layer_buf(ctx, layer)?; prepare_with(r, ctx, layer, order, out, in_run, buf, Mat4::IDENTITY) } @@ -176,7 +176,7 @@ pub(crate) fn prepare_all<'a>(r: &Renderer, ctx: &EvalCtx<'a>, layer: &'a Layer, if crate::text::per_char_3d(ctx, layer) { return crate::text::per_char_planes(ctx, layer, r.opts.scale) .into_iter() - .filter_map(|(buf, m)| prepare_with(r, ctx, layer, order, out, in_run, Arc::new(buf), m)) + .filter_map(|(buf, m)| prepare_with(r, ctx, layer, order, out, in_run, r.to_blend(Arc::new(buf), None), m)) .collect(); } prepare(r, ctx, layer, order, out, in_run).into_iter().collect() diff --git a/crates/render/src/three_d/tests.rs b/crates/render/src/three_d/tests.rs index 2a068e3a..01e0399d 100644 --- a/crates/render/src/three_d/tests.rs +++ b/crates/render/src/three_d/tests.rs @@ -14,6 +14,8 @@ const H: u32 = 100; fn setup() -> (Project, ItemId, Comp) { let mut p = Project::default(); + // Exact float maths; 8/16 bpc quantisation has its own tests (tests_color). + p.settings.bit_depth = effectcraft_project::BitDepth::Bpc32; let comp = Comp::new(W, H, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(comp.clone().into())); (p, cid, comp) diff --git a/crates/ui-egui/src/panels/forms.rs b/crates/ui-egui/src/panels/forms.rs index 77e432b9..e0f1a5f2 100644 --- a/crates/ui-egui/src/panels/forms.rs +++ b/crates/ui-egui/src/panels/forms.rs @@ -218,7 +218,7 @@ pub fn open_form(app: &mut EffectcraftApp, id: &str, p: &Value) -> bool { ), ], ), - "file.interpretFootage" if !has(p, &["frameRate", "alpha", "loop", "pixelAspect"]) => { + "file.interpretFootage" if !has(p, &["frameRate", "alpha", "loop", "pixelAspect", "colorProfile"]) => { let f = s.state.project_selection.first().and_then(|i| s.project.item(*i)).and_then(|it| match &it.kind { effectcraft_engine::project::ItemKind::Footage(f) => Some(f.clone()), _ => None, @@ -236,6 +236,18 @@ pub fn open_form(app: &mut EffectcraftApp, id: &str, p: &Value) -> bool { ), Field::num("loop", "Loop (times)", f.loop_count as f64), Field::num("pixelAspect", "Pixel aspect ratio", f.pixel_aspect), + Field::choice( + "colorProfile", + "Color profile", + &[ + ("Embedded / sRGB", json!("auto")), + ("sRGB IEC61966-2.1", json!("srgb")), + ("HDTV (Rec. 709)", json!("rec709")), + ("Rec. 2020", json!("rec2020")), + ("Display P3", json!("p3")), + ], + f.color_profile.map_or(0, |c| 1 + effectcraft_engine::project::ColorSpace::ALL.iter().position(|x| *x == c).unwrap_or(0)), + ), ], ) } @@ -261,7 +273,20 @@ pub fn open_form(app: &mut EffectcraftApp, id: &str, p: &Value) -> bool { &[("Timecode", json!("timecode")), ("Frames", json!("frames"))], usize::from(matches!(st.time_display, effectcraft_engine::project::TimeDisplayStyle::Frames)), ), + Field::choice( + "workingSpace", + "Working space", + &[ + ("None", json!("none")), + ("sRGB IEC61966-2.1", json!("srgb")), + ("HDTV (Rec. 709)", json!("rec709")), + ("Rec. 2020", json!("rec2020")), + ("Display P3", json!("p3")), + ], + st.working_space.map_or(0, |c| 1 + effectcraft_engine::project::ColorSpace::ALL.iter().position(|x| *x == c).unwrap_or(0)), + ), Field::bool("linearize", "Linearize working space", st.linearize), + Field::bool("blendLinear", "Blend colors using 1.0 gamma", st.blend_linear), ], ) } diff --git a/crates/ui-egui/src/panels/project.rs b/crates/ui-egui/src/panels/project.rs index 4d0e0bb1..31d7d4de 100644 --- a/crates/ui-egui/src/panels/project.rs +++ b/crates/ui-egui/src/panels/project.rs @@ -311,9 +311,15 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let dresp = ui.interact(dr, egui::Id::new("bpc"), Sense::click()); p.text(dr.center(), Align2::CENTER_CENTER, depth, Tokens::ui(11.5), if dresp.hovered() { t.text } else { t.text_dim }); app.auto.add("project.bitDepth", dr, depth); + // Click cycles 8/16/32 bpc; Alt-click opens Project Settings (as in After Effects). if dresp.clicked() { - actions.push(("file.cycleBitDepth".into(), json!({}))); + if ui.input(|i| i.modifiers.alt) { + actions.push(("file.projectSettings".into(), json!({}))); + } else { + actions.push(("file.cycleBitDepth".into(), json!({}))); + } } + dresp.on_hover_text("Project color depth: click to cycle 8/16/32 bpc, Alt-click for Project Settings"); let tr = Rect::from_min_size(pos2(foot.max.x - 30.0, foot.min.y + 3.0), vec2(22.0, 22.0)); if widgets::icon_button(ui, tr, Icon::Trash, false, &t, egui::Id::new("ptrash")).on_hover_text("Delete selected project items").clicked() { let sel = app.session.state.project_selection.clone(); From bfa21e32224029e095761be2471749c0af0f80df Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 10:05:52 -0400 Subject: [PATCH 3/6] M4.3: frame blending Frame Mix and Pixel Motion for footage and precomp layers when the layer's Frame Blending switch and the comp's Enable Frame Blending are on and the source time falls between source frames (rate conform, time stretch, time remap). Exact frame positions from tick arithmetic. Pixel Motion is a hierarchical block-matching optical flow (SAD search, sub-pixel parabola fit, vector median) with a bidirectional warp-blend (raster::flow). Blended footage frames are cached. Co-Authored-By: Claude Opus 5.5 --- crates/engine/src/lib.rs | 4 +- crates/raster/src/flow.rs | 290 +++++++++++++++++++++++++ crates/raster/src/lib.rs | 1 + crates/render/src/cache.rs | 2 + crates/render/src/lib.rs | 74 ++++++- crates/render/src/tests_frame_blend.rs | 168 ++++++++++++++ 6 files changed, 533 insertions(+), 6 deletions(-) create mode 100644 crates/raster/src/flow.rs create mode 100644 crates/render/src/tests_frame_blend.rs diff --git a/crates/engine/src/lib.rs b/crates/engine/src/lib.rs index 5bc51716..564dbc1b 100644 --- a/crates/engine/src/lib.rs +++ b/crates/engine/src/lib.rs @@ -518,10 +518,10 @@ mod tests; #[cfg(test)] mod tests_3d; #[cfg(test)] -mod tests_fidelity; -#[cfg(test)] mod tests_effects; #[cfg(test)] +mod tests_fidelity; +#[cfg(test)] mod tests_lottie; #[cfg(test)] mod tests_menu_cmds; diff --git a/crates/raster/src/flow.rs b/crates/raster/src/flow.rs new file mode 100644 index 00000000..c398eadd --- /dev/null +++ b/crates/raster/src/flow.rs @@ -0,0 +1,290 @@ +//! Optical flow by block matching, and motion-compensated frame interpolation (the Pixel Motion +//! mode of frame blending). +//! +//! The method is the textbook hierarchical block matcher used in video coding and frame-rate +//! conversion: build a luma pyramid of both frames; at the coarsest level, find for each block of +//! frame A the integer displacement into frame B with the smallest sum of absolute differences +//! (SAD) in a search window; at each finer level, start from the doubled coarse vectors (and the +//! neighbours' vectors) and refine in a small window; finish with a sub-pixel parabola fit of the +//! SAD around the best vector and a 3×3 vector median to remove outliers. +//! +//! Interpolation at a fraction `w` between the frames warps both towards the in-between time — +//! A forward by `w·F`, B back by `(1 − w)·F` — and cross-fades them, so moving detail stays sharp +//! instead of double-exposing as with a plain frame mix. + +use rayon::prelude::*; + +use crate::Image; + +/// A block motion field: one vector per `block × block` tile of frame A (in pixels, A → B). +#[derive(Clone, Debug, Default, PartialEq)] +pub struct Flow { + pub width: u32, + pub height: u32, + pub block: u32, + /// Tiles across / down. + pub cols: usize, + pub rows: usize, + pub v: Vec<[f32; 2]>, +} + +impl Flow { + /// The motion at pixel position (x, y), bilinearly interpolated between tile centres. + pub fn at(&self, x: f64, y: f64) -> [f32; 2] { + if self.v.is_empty() { + return [0.0; 2]; + } + let b = self.block as f64; + let fx = (x / b - 0.5).clamp(0.0, (self.cols - 1) as f64); + let fy = (y / b - 0.5).clamp(0.0, (self.rows - 1) as f64); + let (x0, y0) = (fx.floor() as usize, fy.floor() as usize); + let (x1, y1) = ((x0 + 1).min(self.cols - 1), (y0 + 1).min(self.rows - 1)); + let (tx, ty) = ((fx - x0 as f64) as f32, (fy - y0 as f64) as f32); + let g = |c: usize, r: usize| self.v[r * self.cols + c]; + let mut o = [0.0; 2]; + for i in 0..2 { + let top = g(x0, y0)[i] + (g(x1, y0)[i] - g(x0, y0)[i]) * tx; + let bot = g(x0, y1)[i] + (g(x1, y1)[i] - g(x0, y1)[i]) * tx; + o[i] = top + (bot - top) * ty; + } + o + } +} + +/// A single-channel plane. +struct Plane { + w: usize, + h: usize, + d: Vec, +} + +impl Plane { + fn luma(img: &Image) -> Plane { + let d = img.data.par_iter().map(|p| 0.2126 * p[0] + 0.7152 * p[1] + 0.0722 * p[2] + 0.25 * p[3]).collect(); + Plane { w: img.width as usize, h: img.height as usize, d } + } + fn half(&self) -> Plane { + let (w, h) = ((self.w / 2).max(1), (self.h / 2).max(1)); + let d = (0..w * h) + .into_par_iter() + .map(|i| { + let (x, y) = (i % w * 2, i / w * 2); + let g = |dx: usize, dy: usize| self.d[(y + dy).min(self.h - 1) * self.w + (x + dx).min(self.w - 1)]; + (g(0, 0) + g(1, 0) + g(0, 1) + g(1, 1)) * 0.25 + }) + .collect(); + Plane { w, h, d } + } + #[inline] + fn get(&self, x: i64, y: i64) -> f32 { + self.d[y.clamp(0, self.h as i64 - 1) as usize * self.w + x.clamp(0, self.w as i64 - 1) as usize] + } +} + +/// SAD of the `bs` block at (bx, by) in `a` against `b` displaced by (dx, dy). +fn sad(a: &Plane, b: &Plane, bx: i64, by: i64, bs: i64, dx: i64, dy: i64) -> f32 { + let mut s = 0.0; + for y in by..by + bs { + for x in bx..bx + bs { + s += (a.get(x, y) - b.get(x + dx, y + dy)).abs(); + } + } + s +} + +/// Block-matching flow from `a` to `b` (same size). `block` is the tile size at full resolution; +/// `radius` the search range at the coarsest level (motion up to about `radius · 2^levels`). +pub fn block_flow(a: &Image, b: &Image, block: u32, radius: i32) -> Flow { + let bs = block.max(4) as usize; + let (w, h) = (a.width as usize, a.height as usize); + let cols = w.div_ceil(bs).max(1); + let rows = h.div_ceil(bs).max(1); + let mut flow = Flow { width: a.width, height: a.height, block: bs as u32, cols, rows, v: vec![[0.0; 2]; cols * rows] }; + if a.width != b.width || a.height != b.height || w < bs || h < bs { + return flow; + } + // Pyramids (level 0 = full resolution); stop while blocks still fit. + let mut pa = vec![Plane::luma(a)]; + let mut pb = vec![Plane::luma(b)]; + while pa.len() < 4 && pa.last().is_some_and(|p| p.w / 2 >= bs * 2 && p.h / 2 >= bs * 2) { + let (na, nb) = (pa.last().map(Plane::half), pb.last().map(Plane::half)); + pa.extend(na); + pb.extend(nb); + } + let top = pa.len() - 1; + // Integer vectors at the current level, per full-resolution tile. + let mut cur: Vec<[i64; 2]> = vec![[0, 0]; cols * rows]; + for level in (0..=top).rev() { + let (la, lb) = (&pa[level], &pb[level]); + let k = 1i64 << level; + // The block covers the tile's footprint at this level (at least 4 pixels). + let lbs = ((bs as i64) / k).max(4); + let r = if level == top { radius as i64 } else { 1 }; + let prev = cur.clone(); + cur = (0..cols * rows) + .into_par_iter() + .map(|i| { + let (c, rr) = ((i % cols) as i64, (i / cols) as i64); + let bx = c * bs as i64 / k; + let by = rr * bs as i64 / k; + // Candidates: this tile's and its neighbours' vectors from the coarser level. + let mut seeds: Vec<[i64; 2]> = vec![[0, 0]]; + if level != top { + for (dc, dr) in [(0, 0), (-1, 0), (1, 0), (0, -1), (0, 1)] { + let (nc, nr) = (c + dc, rr + dr); + if nc >= 0 && nr >= 0 && (nc as usize) < cols && (nr as usize) < rows { + let v = prev[nr as usize * cols + nc as usize]; + seeds.push([v[0] * 2, v[1] * 2]); + } + } + } + seeds.sort_unstable(); + seeds.dedup(); + let mut best = ([0i64, 0i64], f32::INFINITY); + for s in seeds { + for dy in -r..=r { + for dx in -r..=r { + let d = [s[0] + dx, s[1] + dy]; + // A tiny bias towards short vectors breaks ties in flat areas. + let e = sad(la, lb, bx, by, lbs, d[0], d[1]) + 1e-4 * (d[0].abs() + d[1].abs()) as f32; + if e < best.1 { + best = (d, e); + } + } + } + } + best.0 + }) + .collect(); + } + // Sub-pixel refinement (parabola through the SAD of the neighbours) at full resolution. + let (la, lb) = (&pa[0], &pb[0]); + let bsi = bs as i64; + let fine: Vec<[f32; 2]> = (0..cols * rows) + .into_par_iter() + .map(|i| { + let (bx, by) = ((i % cols) as i64 * bsi, (i / cols) as i64 * bsi); + let d = cur[i]; + let e0 = sad(la, lb, bx, by, bsi, d[0], d[1]); + let fit = |em: f32, ep: f32| { + let den = em - 2.0 * e0 + ep; + if den > 1e-6 { (0.5 * (em - ep) / den).clamp(-0.5, 0.5) } else { 0.0 } + }; + let sx = fit(sad(la, lb, bx, by, bsi, d[0] - 1, d[1]), sad(la, lb, bx, by, bsi, d[0] + 1, d[1])); + let sy = fit(sad(la, lb, bx, by, bsi, d[0], d[1] - 1), sad(la, lb, bx, by, bsi, d[0], d[1] + 1)); + [d[0] as f32 + sx, d[1] as f32 + sy] + }) + .collect(); + // 3×3 vector median (component-wise) against outliers. + flow.v = (0..cols * rows) + .into_par_iter() + .map(|i| { + let (c, r) = ((i % cols) as i64, (i / cols) as i64); + let mut xs = Vec::with_capacity(9); + let mut ys = Vec::with_capacity(9); + for dr in -1..=1 { + for dc in -1..=1 { + let (nc, nr) = (c + dc, r + dr); + if nc >= 0 && nr >= 0 && (nc as usize) < cols && (nr as usize) < rows { + let v = fine[nr as usize * cols + nc as usize]; + xs.push(v[0]); + ys.push(v[1]); + } + } + } + xs.sort_by(f32::total_cmp); + ys.sort_by(f32::total_cmp); + [xs[xs.len() / 2], ys[ys.len() / 2]] + }) + .collect(); + flow +} + +/// Cross-fade of two frames: `a·(1 − w) + b·w` (Frame Mix). +pub fn mix(a: &Image, b: &Image, w: f32) -> Image { + if a.width != b.width || a.height != b.height { + return if w < 0.5 { a.clone() } else { b.clone() }; + } + let mut out = a.clone(); + out.data.par_iter_mut().zip(b.data.par_iter()).for_each(|(p, q)| { + for c in 0..4 { + p[c] += (q[c] - p[c]) * w; + } + }); + out +} + +/// Motion-compensated frame at fraction `w` (0 = `a`, 1 = `b`) between two frames (Pixel Motion). +pub fn interpolate(a: &Image, b: &Image, w: f32) -> Image { + if a.width != b.width || a.height != b.height { + return mix(a, b, w); + } + let flow = block_flow(a, b, 8, 4); + let mut out = Image::new(a.width, a.height); + let wd = w as f64; + out.rows_mut().for_each(|(y, row)| { + let cy = y as f64 + 0.5; + for (x, px) in row.iter_mut().enumerate() { + let cx = x as f64 + 0.5; + let f = flow.at(cx, cy); + let (fx, fy) = (f[0] as f64, f[1] as f64); + let pa = a.sample_bilinear_clamped(cx - wd * fx, cy - wd * fy); + let pb = b.sample_bilinear_clamped(cx + (1.0 - wd) * fx, cy + (1.0 - wd) * fy); + for c in 0..4 { + px[c] = pa[c] + (pb[c] - pa[c]) * w; + } + } + }); + out +} + +#[cfg(test)] +mod tests { + use super::*; + + /// A textured image shifted right by `dx` pixels. + fn texture(w: u32, h: u32, dx: f64) -> Image { + let mut img = Image::new(w, h); + img.rows_mut().for_each(|(y, row)| { + for (x, p) in row.iter_mut().enumerate() { + let (u, v) = (x as f64 - dx, y as f64); + let s = 0.5 + 0.2 * (u * 0.21 + v * 0.07).sin() + 0.15 * (u * 0.05 - v * 0.19).cos() + 0.1 * (u * 0.013 * v * 0.011).sin(); + let s = s as f32; + *p = [s, s * 0.8, 1.0 - s, 1.0]; + } + }); + img + } + + fn mae(a: &Image, b: &Image, margin: u32) -> f32 { + let mut s = 0.0; + let mut n = 0; + for y in margin..a.height - margin { + for x in margin..a.width - margin { + let (p, q) = (a.get(x as i64, y as i64), b.get(x as i64, y as i64)); + s += (0..3).map(|c| (p[c] - q[c]).abs()).sum::(); + n += 3; + } + } + s / n as f32 + } + + #[test] + fn flow_finds_translation() { + let a = texture(128, 96, 0.0); + let b = texture(128, 96, 6.0); + let f = block_flow(&a, &b, 8, 4); + let m = f.at(64.0, 48.0); + assert!((m[0] - 6.0).abs() < 0.3 && m[1].abs() < 0.3, "{m:?}"); + } + + #[test] + fn pixel_motion_beats_frame_mix_on_translation() { + let a = texture(128, 96, 0.0); + let b = texture(128, 96, 6.0); + let truth = texture(128, 96, 3.0); + let pm = mae(&interpolate(&a, &b, 0.5), &truth, 12); + let fm = mae(&mix(&a, &b, 0.5), &truth, 12); + assert!(pm < fm * 0.25, "pixel motion {pm} vs frame mix {fm}"); + } +} diff --git a/crates/raster/src/lib.rs b/crates/raster/src/lib.rs index 643de9e7..dfe53848 100644 --- a/crates/raster/src/lib.rs +++ b/crates/raster/src/lib.rs @@ -4,6 +4,7 @@ //! heavy operation is row-parallel with rayon. pub mod blur; +pub mod flow; pub mod warp; use effectcraft_color::{BlendMode, blend_pixel}; diff --git a/crates/render/src/cache.rs b/crates/render/src/cache.rs index a26e652c..8cd27d59 100644 --- a/crates/render/src/cache.rs +++ b/crates/render/src/cache.rs @@ -288,6 +288,8 @@ fn key_with(ctx: &EvalCtx, layer: &Layer, scale: f64, draft: bool, footage: bool hash_debug(&mut h, f); item.hash(&mut h); ctx.source_time(layer).0.hash(&mut h); + // Frame blending mixes neighbouring source frames. + ctx.comp.enable_frame_blending.hash(&mut h); } _ => return None, } diff --git a/crates/render/src/lib.rs b/crates/render/src/lib.rs index d60a1ee8..b200386e 100644 --- a/crates/render/src/lib.rs +++ b/crates/render/src/lib.rs @@ -22,10 +22,10 @@ pub use cache::{CacheStats, LayerCache}; use effectcraft_color::BlendMode; use effectcraft_effects::{Buf, EffectCtx, EffectEnv, EffectHost, LayerPixels, Params}; use effectcraft_geom::{Mat3, vec2}; -use effectcraft_project::{Comp, Footage, GroupKind, ItemId, ItemKind, Layer, LayerSource, MatteKind, Project, Quality, Sampling}; +use effectcraft_project::{Comp, Footage, FootageKind, FrameBlend, GroupKind, ItemId, ItemKind, Layer, LayerSource, MatteKind, Project, Quality, Sampling}; pub use effectcraft_raster::Image; use effectcraft_raster::{WarpOpts, composite_warp}; -use effectcraft_time::Tick; +use effectcraft_time::{FrameRate, TICKS_PER_SECOND, Tick}; pub use eval::{EvalCtx, ExprHost, source_size}; use rayon::prelude::*; @@ -327,6 +327,18 @@ impl<'a> Renderer<'a> { } let sub = self.nested(); let lt = ctx.source_time(layer); + // Frame blending between the nested comp's frames (time-stretched/remapped). + let mode = frame_blend_mode(ctx, layer); + if mode != FrameBlend::Off + && let Some(nc) = self.project.comp(*item) + { + let (i, w) = frame_position(lt, nc.frame_rate); + if w > 1e-6 { + let a = sub.comp_frame(*item, nc.frame_rate.tick_of(i)); + let b = sub.comp_frame(*item, nc.frame_rate.tick_of(i + 1)); + return Some(Buf { img: blend_frames(mode, &a, &b, w as f32), offset: [0.0; 2], scale: s }); + } + } Some(Buf { img: sub.comp_frame(*item, lt), offset: [0.0; 2], scale: s }) } LayerSource::Footage { item } => { @@ -365,8 +377,37 @@ impl<'a> Renderer<'a> { buf } - /// A footage frame at source time `t`. - fn footage_frame(&self, _ctx: &EvalCtx, _layer: &Layer, item: ItemId, f: &Footage, t: Tick) -> Option> { + /// A footage frame at source time `t`, frame-blended between the two nearest source frames + /// when the layer's Frame Blending switch (and the comp's Enable Frame Blending) is on and + /// `t` falls between frames (footage rate ≠ comp rate, time stretch, time remapping). + fn footage_frame(&self, ctx: &EvalCtx, layer: &Layer, item: ItemId, f: &Footage, t: Tick) -> Option> { + let mode = frame_blend_mode(ctx, layer); + if mode != FrameBlend::Off && matches!(f.kind, FootageKind::Video | FootageKind::Sequence) { + let (i, w) = frame_position(t, f.frame_rate); + if w > 1e-6 { + // Blended frames are cached (Pixel Motion is expensive). + let key = self.cache.map(|_| { + use std::hash::{Hash, Hasher}; + let mut h = std::collections::hash_map::DefaultHasher::new(); + (0x00f8_a3e5_u64, item, i, (w as f32).to_bits(), mode as u8, f.frame_rate.num, f.frame_rate.den, &f.path).hash(&mut h); + h.finish() + }); + if let (Some(c), Some(k)) = (self.cache, key) + && let Some(b) = c.get(k) + { + return Some(Arc::new(b.img.clone())); + } + let a = self.footage.frame(item, f, f.frame_rate.tick_of(i)); + let b = self.footage.frame(item, f, f.frame_rate.tick_of(i + 1)); + if let (Some(a), Some(b)) = (a, b) { + let img = blend_frames(mode, &a, &b, w as f32); + if let (Some(c), Some(k)) = (self.cache, key) { + c.insert(k, Arc::new(Buf { img: img.clone(), offset: [0.0; 2], scale: 1.0 })); + } + return Some(Arc::new(img)); + } + } + } self.footage.frame(item, f, t) } @@ -723,6 +764,29 @@ struct StyledLayer { plain: bool, } +/// The layer's frame blending mode, if the comp's Enable Frame Blending switch is on. +fn frame_blend_mode(ctx: &EvalCtx, layer: &Layer) -> FrameBlend { + if ctx.comp.enable_frame_blending { layer.switches.frame_blend } else { FrameBlend::Off } +} + +/// Position of source time `t` among frames at `rate`: the frame at or before `t` and the +/// fraction (0..1) of the way to the next frame. Exact (integer tick arithmetic), so frames that +/// line up exactly report a fraction of 0. +pub fn frame_position(t: Tick, rate: FrameRate) -> (i64, f64) { + let num = t.0 as i128 * rate.num as i128; + let den = TICKS_PER_SECOND as i128 * rate.den as i128; + (num.div_euclid(den) as i64, num.rem_euclid(den) as f64 / den as f64) +} + +/// Blend two neighbouring frames `w` of the way from `a` to `b`: a cross-fade (Frame Mix) or a +/// motion-compensated interpolation (Pixel Motion). +pub fn blend_frames(mode: FrameBlend, a: &Image, b: &Image, w: f32) -> Image { + match mode { + FrameBlend::PixelMotion => effectcraft_raster::flow::interpolate(a, b, w), + _ => effectcraft_raster::flow::mix(a, b, w), + } +} + /// Convenience: render one frame of a comp with no footage source. pub fn render_frame(project: &Project, comp: ItemId, t: Tick, scale: f64) -> Image { Renderer::new(project, &NoFootage, RenderOpts { scale, ..Default::default() }).comp_frame(comp, t) @@ -763,6 +827,8 @@ mod tests_audio_fx; #[cfg(test)] mod tests_color; #[cfg(test)] +mod tests_frame_blend; +#[cfg(test)] mod tests_paint; #[cfg(test)] mod tests_time; diff --git a/crates/render/src/tests_frame_blend.rs b/crates/render/src/tests_frame_blend.rs new file mode 100644 index 00000000..c172b81c --- /dev/null +++ b/crates/render/src/tests_frame_blend.rs @@ -0,0 +1,168 @@ +//! Frame blending (Frame Mix and Pixel Motion) for footage and precomp layers. + +use std::sync::Arc; + +use rayon::prelude::*; + +use effectcraft_color::Label; +use effectcraft_keyframe::{Keyframe, Value}; +use effectcraft_project::build; +use effectcraft_project::{AlphaMode, BitDepth, Comp, Footage, FootageKind, FrameBlend, ItemId, ItemKind, LayerSource, Project, Solid}; +use effectcraft_time::{FrameRate, Tick}; + +use crate::{FootageSource, Image, RenderOpts, Renderer, frame_position}; + +#[test] +fn frame_mix_weights_for_24_to_30_conform() { + // Comp frame k at 30 fps sits at source frame 0.8·k of 24 fps footage. + let want = [(0, 0.0), (0, 0.8), (1, 0.6), (2, 0.4), (3, 0.2), (4, 0.0), (4, 0.8)]; + for (k, (i, w)) in want.into_iter().enumerate() { + let t = FrameRate::FPS_30.tick_of(k as i64); + let (fi, fw) = frame_position(t, FrameRate::FPS_24); + assert_eq!(fi, i, "comp frame {k}"); + assert!((fw - w).abs() < 1e-12, "comp frame {k}: {fw} vs {w}"); + } + // NTSC 29.97 footage in a 29.97 comp lines up exactly. + for k in [0, 1, 7, 1001, 30_000] { + assert_eq!(frame_position(FrameRate::FPS_29_97.tick_of(k), FrameRate::FPS_29_97), (k, 0.0)); + } +} + +/// Footage whose frame `i` is a flat grey of `i / 10` (24 fps), or a textured pattern moving +/// 6 px right per frame. +struct Frames { + moving: bool, +} + +fn pattern(w: u32, h: u32, dx: f64) -> Image { + let mut img = Image::new(w, h); + img.rows_mut().for_each(|(y, row)| { + for (x, p) in row.iter_mut().enumerate() { + let (u, v) = (x as f64 - dx, y as f64); + let s = (0.5 + 0.2 * (u * 0.21 + v * 0.07).sin() + 0.15 * (u * 0.05 - v * 0.19).cos()) as f32; + *p = [s, s * 0.8, 1.0 - s, 1.0]; + } + }); + img +} + +impl FootageSource for Frames { + fn frame(&self, _: ItemId, f: &Footage, t: Tick) -> Option> { + let i = f.frame_rate.frame_at(t); + if self.moving { + return Some(Arc::new(pattern(f.width, f.height, 6.0 * i as f64))); + } + let g = i as f32 / 10.0; + Some(Arc::new(Image::filled(f.width, f.height, [g, g, g, 1.0]))) + } +} + +fn setup(mode: FrameBlend, size: (u32, u32)) -> (Project, ItemId) { + let mut p = Project::default(); + p.settings.bit_depth = BitDepth::Bpc32; + let comp = Comp::new(size.0, size.1, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(comp.clone().into())); + let f = Footage { + path: "clip.mov".into(), + kind: FootageKind::Video, + width: size.0, + height: size.1, + pixel_aspect: 1.0, + frame_rate: FrameRate::FPS_24, + native_rate: None, + duration: Tick::from_seconds_f64(2.0), + has_video: true, + has_audio: false, + alpha: AlphaMode::Ignore, + premul_color: [0.0; 3], + loop_count: 1, + codec: String::new(), + missing: false, + sequence: vec![], + color_profile: None, + }; + let fid = p.add_item("clip", Label::Aqua, None, ItemKind::Footage(f)); + let mut l = build::layer(&mut p, &comp, "clip", LayerSource::Footage { item: fid }, size, None); + l.switches.frame_blend = mode; + p.comp_mut(cid).unwrap().layers.push(l); + (p, cid) +} + +fn frame(p: &Project, cid: ItemId, k: i64, moving: bool) -> Image { + let src = Frames { moving }; + Renderer::new(p, &src, RenderOpts::default()).comp_frame(cid, FrameRate::FPS_30.tick_of(k)) +} + +#[test] +fn frame_mix_blends_footage_frames() { + let (p, cid) = setup(FrameBlend::FrameMix, (16, 8)); + // Comp frame 1 → source 0.8: 0.2·frame 0 + 0.8·frame 1 = 0.08. + let v = frame(&p, cid, 1, false).get(4, 4)[0]; + assert!((v - 0.08).abs() < 1e-6, "{v}"); + let v = frame(&p, cid, 2, false).get(4, 4)[0]; + assert!((v - (0.4 * 0.1 + 0.6 * 0.2)).abs() < 1e-6, "{v}"); + // Off (layer switch or comp switch): the frame at or before. + let (p, cid) = setup(FrameBlend::Off, (16, 8)); + assert!((frame(&p, cid, 1, false).get(4, 4)[0] - 0.0).abs() < 1e-6); + let (mut p, cid) = setup(FrameBlend::FrameMix, (16, 8)); + p.comp_mut(cid).unwrap().enable_frame_blending = false; + assert!((frame(&p, cid, 1, false).get(4, 4)[0] - 0.0).abs() < 1e-6); +} + +fn mae(a: &Image, b: &Image, margin: u32) -> f32 { + let mut s = 0.0; + let mut n = 0; + for y in margin..a.height - margin { + for x in margin..a.width - margin { + let (p, q) = (a.get(x as i64, y as i64), b.get(x as i64, y as i64)); + s += (0..3).map(|c| (p[c] - q[c]).abs()).sum::(); + n += 3; + } + } + s / n as f32 +} + +#[test] +fn pixel_motion_beats_frame_mix_on_moving_footage() { + let size = (128, 96); + // Comp frame 2 → source frame 1.6: the pattern 9.6 px along. + let truth = pattern(size.0, size.1, 6.0 * 1.6); + let (p, cid) = setup(FrameBlend::FrameMix, size); + let mix = mae(&frame(&p, cid, 2, true), &truth, 14); + let (p, cid) = setup(FrameBlend::PixelMotion, size); + let pm = mae(&frame(&p, cid, 2, true), &truth, 14); + assert!(pm < mix * 0.3, "pixel motion {pm} vs frame mix {mix}"); +} + +#[test] +fn time_stretched_precomp_frame_mixes() { + // Inner comp: a white solid moving 10 px per frame from x = 10. The precomp is stretched to + // 200%, so odd outer frames fall halfway between inner frames. + let mut p = Project::default(); + p.settings.bit_depth = BitDepth::Bpc32; + let mut inner = Comp::new(400, 20, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let sid = p.add_item("S", Label::Red, None, ItemKind::Solid(Solid { color: [1.0; 3], width: 10, height: 20, pixel_aspect: 1.0 })); + let mut l = build::layer(&mut p, &inner, "S", LayerSource::Solid { item: sid }, (10, 20), None); + // Anchor at the left edge: x = 10 + 10 per frame. + l.props.prop_mut("transform/anchor").unwrap().value = Value::Vec3([0.0, 10.0, 0.0]); + l.props.prop_mut("transform/position").unwrap().keys = + vec![Keyframe::new(Tick::ZERO, Value::Vec3([10.0, 10.0, 0.0])), Keyframe::new(Tick::from_seconds_f64(1.0), Value::Vec3([310.0, 10.0, 0.0]))]; + inner.layers.push(l); + let iid = p.add_item("Inner", Label::Sandstone, None, ItemKind::Comp(inner.into())); + let outer = Comp::new(400, 20, FrameRate::FPS_30, Tick::from_seconds_f64(4.0)); + let cid = p.add_item("Outer", Label::Sandstone, None, ItemKind::Comp(outer.clone().into())); + let mut pre = build::layer(&mut p, &outer, "Inner", LayerSource::Comp { item: iid }, (400, 20), None); + pre.stretch = 200.0; + pre.out_point = Tick::from_seconds_f64(4.0); + pre.switches.frame_blend = FrameBlend::FrameMix; + p.comp_mut(cid).unwrap().layers.push(pre); + // Outer frame 1 → inner frame 0.5: solids at 10..20 (frame 0) and 20..30 (frame 1), half each. + let img = crate::render_frame(&p, cid, FrameRate::FPS_30.tick_of(1), 1.0); + for x in [12, 17, 22, 27] { + assert!((img.get(x, 10)[3] - 0.5).abs() < 5e-3, "x {x}: {:?}", img.get(x, 10)); + } + // Without frame blending the nested comp renders at the in-between time: one solid, 15..25. + p.comp_mut(cid).unwrap().layers[0].switches.frame_blend = FrameBlend::Off; + let img = crate::render_frame(&p, cid, FrameRate::FPS_30.tick_of(1), 1.0); + assert!(img.get(12, 10)[3] < 1e-3 && (img.get(17, 10)[3] - 1.0).abs() < 1e-3 && (img.get(22, 10)[3] - 1.0).abs() < 1e-3 && img.get(27, 10)[3] < 1e-3); +} From adf5db63976163c97af96f0a21f8b93e0241ee62 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 10:14:53 -0400 Subject: [PATCH 4/6] M4.4: collapse transformations + slip Collapsed precomps draw their layers straight into the parent with concatenated transforms and multiplied opacity (nested blend modes and adjustment layers act on the parent); a non-Normal mode, track matte or Preserve Transparency composites the collapsed result as a whole; masks, effects or styles force a flattened render. Nested 3D layers use the parent's camera and lights and join the parent's 3D run when the precomp layer is 3D. Continuously Rasterize re-rasterises text and shape layers at their on-screen scale. Draft quality samples nearest-neighbour, Wireframe draws the layer bounds. layer.slip / slipBack (Alt+PageUp) / slipForward (Alt+PageDown) and dragging the timeline source bar slip the source under fixed in/out points, clamped to the source duration; undoable. Co-Authored-By: Claude Opus 5.5 --- crates/engine/src/commands/layer.rs | 62 ++++++++ crates/engine/src/tests_fidelity.rs | 55 +++++++ crates/render/src/lib.rs | 178 +++++++++++++++++++++-- crates/render/src/tests_collapse.rs | 202 ++++++++++++++++++++++++++ crates/render/src/three_d/compose.rs | 64 +++++++- crates/ui-egui/src/panels/timeline.rs | 34 ++++- docs/architecture.md | 24 +++ 7 files changed, 603 insertions(+), 16 deletions(-) create mode 100644 crates/render/src/tests_collapse.rs diff --git a/crates/engine/src/commands/layer.rs b/crates/engine/src/commands/layer.rs index 09a50660..38a09b07 100644 --- a/crates/engine/src/commands/layer.rs +++ b/crates/engine/src/commands/layer.rs @@ -629,6 +629,57 @@ fn timing(s: &mut Session, p: &Value) -> Result { Ok(Value::Null) } +/// Slip edit: move a layer's source (footage or precomp) under its fixed in and out points, like +/// dragging the source-duration bar in After Effects. `delta` in seconds or `frames`; positive +/// moves the source later. Clamped so the source still covers the in–out span. Keyframes and +/// layer markers are in layer time, so they travel with the source. +fn slip(s: &mut Session, p: &Value) -> Result { + let (cid, ids) = layers_p(s, p)?; + let comp = s.project.comp(cid).ok_or(EngineError::NoComp)?; + let fr = comp.frame_rate; + let delta = match (p.get("frames").and_then(Value::as_i64), f_p(p, "delta")) { + (Some(f), _) => fr.tick_of(f), + (None, Some(d)) => fr.snap_nearest(Tick::from_seconds_f64(d)), + _ => return Err(bad("layer.slip", "delta (seconds) or frames required")), + }; + // Allowed shift per layer: the source span [lo, hi] in comp time must keep covering in..out. + let mut shifts: Vec<(LayerId, Tick)> = Vec::new(); + for l in comp.layers.iter().filter(|l| ids.contains(&l.id)) { + if l.props.get("timeRemap").is_some() { + continue; + } + let dur = match &l.source { + LayerSource::Footage { item } => match s.project.item(*item).map(|i| &i.kind) { + Some(ItemKind::Footage(f)) if f.kind != effectcraft_project::FootageKind::Still => Some(Tick(f.duration.0 * f.loop_count.max(1) as i64)), + _ => None, + }, + LayerSource::Comp { item } => s.project.comp(*item).map(|c| c.duration), + _ => None, + }; + let Some(dur) = dur else { continue }; + let (a, b) = (l.comp_time(Tick::ZERO), l.comp_time(dur)); + let (lo, hi) = (a.min(b), a.max(b)); + let (min_d, max_d) = (l.out_point - hi, l.in_point - lo); + if min_d > max_d { + continue; + } + shifts.push((l.id, delta.max(min_d).min(max_d))); + } + if shifts.is_empty() { + return Err(bad("layer.slip", "select a footage or precomp layer (without time remapping)")); + } + s.edit("Slip Edit", merge_p(p), |proj, _| { + let comp = proj.comp_mut(cid).ok_or(EngineError::NoComp)?; + for (id, d) in &shifts { + if let Some(l) = comp.layer_mut(*id) { + l.start_time += *d; + } + } + Ok(()) + })?; + Ok(json!({"slipped": shifts.iter().map(|(id, d)| json!({"layer": id.0, "delta": d.seconds()})).collect::>()})) +} + fn arrange(s: &mut Session, p: &Value) -> Result { let (cid, ids) = layers_p(s, p)?; let how = str_p(p, "to").unwrap_or("front").to_string(); @@ -970,6 +1021,17 @@ pub fn specs() -> Vec { has_layers, timing ), + cmd!("layer.slip", "Slip Edit", [], None, "{layers?, delta? (seconds) | frames?, merge?}", has_layers, slip), + cmd!("layer.slipBack", "Slip Edit 1 Frame Earlier", [], Some("Alt+PageUp"), "{layers?}", has_layers, |s, p| { + let mut p = p.clone(); + p["frames"] = json!(-1); + slip(s, &p) + }), + cmd!("layer.slipForward", "Slip Edit 1 Frame Later", [], Some("Alt+PageDown"), "{layers?}", has_layers, |s, p| { + let mut p = p.clone(); + p["frames"] = json!(1); + slip(s, &p) + }), cmd!("layer.arrange", "Arrange", ["Layer", "Arrange"], None, "{layers?, to: front|forward|backward|back, index?}", has_layers, arrange), cmd!("layer.precompose", "Pre-compose...", ["Layer"], Some("Cmd+Shift+C"), "{layers?, name?}", has_layers, precompose), cmd!( diff --git a/crates/engine/src/tests_fidelity.rs b/crates/engine/src/tests_fidelity.rs index d1b63e2d..e5e84c03 100644 --- a/crates/engine/src/tests_fidelity.rs +++ b/crates/engine/src/tests_fidelity.rs @@ -26,3 +26,58 @@ fn project_colour_settings_are_undoable() { assert_eq!(s.execute("file.cycleBitDepth", json!({})).unwrap(), json!(want)); } } + +#[test] +fn footage_colour_profile_is_interpreted() { + let mut s = Session::default(); + let id = s.execute("file.importPlaceholder", json!({"name": "clip", "width": 64, "height": 36, "frameRate": 24, "duration": 2})).unwrap(); + let item = id["item"].as_u64().or_else(|| id.as_u64()).map(effectcraft_project::ItemId).unwrap_or_else(|| *s.project.items.keys().last().unwrap()); + let profile = |s: &Session| match &s.project.item(item).unwrap().kind { + effectcraft_project::ItemKind::Footage(f) => f.color_profile, + _ => panic!("not footage"), + }; + s.execute("file.interpretFootage", json!({"items": [item.0], "colorProfile": "rec2020"})).unwrap(); + assert_eq!(profile(&s), Some(ColorSpace::Rec2020)); + s.execute("file.interpretFootage", json!({"items": [item.0], "colorProfile": "auto"})).unwrap(); + assert_eq!(profile(&s), None); + assert!(s.undo()); + assert_eq!(profile(&s), Some(ColorSpace::Rec2020)); +} + +#[test] +fn slip_moves_the_source_under_fixed_in_and_out() { + use effectcraft_time::Tick; + let mut s = Session::default(); + s.execute("comp.new", json!({"name": "Main", "width": 100, "height": 100, "frameRate": 30, "duration": 10})).unwrap(); + let nested = s.execute("comp.new", json!({"name": "Nested", "duration": 4, "open": false})).unwrap()["comp"].as_u64().unwrap(); + s.execute("layer.addItem", json!({"item": nested})).unwrap(); + let id = s.active_comp().unwrap().layers[0].id.0; + // Trim to 1 s .. 3 s of a 4 s source. + s.execute("layer.timing", json!({"layers": [id], "in": 1.0, "out": 3.0})).unwrap(); + let get = |s: &Session| s.active_comp().unwrap().layers[0].clone(); + let before = get(&s); + assert_eq!((before.start_time, before.in_point.seconds(), before.out_point.seconds()), (Tick::ZERO, 1.0, 3.0)); + // Slip the source 0.5 s later: in/out stay, the source (start) moves. + s.execute("layer.slip", json!({"layers": [id], "delta": 0.5})).unwrap(); + let l = get(&s); + assert_eq!((l.start_time.seconds(), l.in_point, l.out_point), (0.5, before.in_point, before.out_point)); + // The source time at comp 2 s is now 1.5 s. + assert_eq!(l.layer_time(Tick::from_seconds_f64(2.0)).seconds(), 1.5); + // Clamped so the source still covers in..out: at most start = in (1 s). + let r = s.execute("layer.slip", json!({"layers": [id], "delta": 5.0})).unwrap(); + assert_eq!(get(&s).start_time.seconds(), 1.0); + assert_eq!(r["slipped"][0]["delta"], json!(0.5)); + // Alt+PageUp / Alt+PageDown nudge by a frame. + s.execute("layer.slipBack", json!({"layers": [id]})).unwrap(); + assert!((get(&s).start_time.seconds() - (1.0 - 1.0 / 30.0)).abs() < 1e-9); + s.execute("layer.slipForward", json!({"layers": [id]})).unwrap(); + assert_eq!(get(&s).start_time.seconds(), 1.0); + // Undo walks back through the slips. + assert!(s.undo() && s.undo() && s.undo() && s.undo()); + assert_eq!(get(&s).start_time, Tick::ZERO); + assert_eq!(crate::find_command("layer.slipBack").and_then(|c| c.shortcut), Some("Alt+PageUp")); + assert_eq!(crate::find_command("layer.slipForward").and_then(|c| c.shortcut), Some("Alt+PageDown")); + // Layers without a source duration can't slip. + s.execute("layer.newSolid", json!({"color": "#ff0000"})).unwrap(); + assert!(s.execute("layer.slip", json!({"delta": 0.5})).is_err()); +} diff --git a/crates/render/src/lib.rs b/crates/render/src/lib.rs index b200386e..05c05efa 100644 --- a/crates/render/src/lib.rs +++ b/crates/render/src/lib.rs @@ -21,7 +21,7 @@ use std::sync::Arc; pub use cache::{CacheStats, LayerCache}; use effectcraft_color::BlendMode; use effectcraft_effects::{Buf, EffectCtx, EffectEnv, EffectHost, LayerPixels, Params}; -use effectcraft_geom::{Mat3, vec2}; +use effectcraft_geom::{Mat3, Mat4, vec2}; use effectcraft_project::{Comp, Footage, FootageKind, FrameBlend, GroupKind, ItemId, ItemKind, Layer, LayerSource, MatteKind, Project, Quality, Sampling}; pub use effectcraft_raster::Image; use effectcraft_raster::{WarpOpts, composite_warp}; @@ -160,6 +160,24 @@ pub struct Renderer<'a> { depth: usize, /// The project's colour pipeline (bit depth, working space, linear blending). pub(crate) pipe: color::Pipe, + /// Collapsed precomp being drawn into its parent: nested comp pixels → parent comp pixels + /// (before the output scale). + outer: Option, + /// Opacity of the collapsed precomp layers this comp is drawn through. + opacity_mul: f32, + /// Collapsed precomp: nested 3D layers join the parent's 3D space. + pub(crate) collapse3d: Option>, +} + +/// How a collapsed precomp's 3D layers are placed in the parent (see `Renderer::collapse_into`). +#[derive(Clone, Copy)] +pub(crate) struct Collapse3d<'a> { + /// Nested comp world → parent world (the precomp layer's world transform). + pub world: Mat4, + /// The parent's camera. + pub cam: three_d::CameraState, + /// The outermost comp's context (its lights light the nested layers). + pub parent: EvalCtx<'a>, } /// Time spent on one layer of one frame (milliseconds). @@ -179,12 +197,139 @@ pub struct LayerTiming { impl<'a> Renderer<'a> { pub fn new(project: &'a Project, footage: &'a dyn FootageSource, opts: RenderOpts) -> Renderer<'a> { - Renderer { project, footage, expr: None, opts, cache: None, profile: None, depth: 0, pipe: color::Pipe::of(&project.settings) } + Renderer { + project, + footage, + expr: None, + opts, + cache: None, + profile: None, + depth: 0, + pipe: color::Pipe::of(&project.settings), + outer: None, + opacity_mul: 1.0, + collapse3d: None, + } } /// A renderer for nested work (precomps, layers read by effects): one level deeper. fn nested(&self) -> Renderer<'a> { - Renderer { depth: self.depth + 1, ..*self } + Renderer { depth: self.depth + 1, outer: None, opacity_mul: 1.0, collapse3d: None, ..*self } + } + + /// The nested comp of a precomp layer whose transformations collapse into this comp: the + /// Collapse Transformations switch is on and the layer has no masks, effects or layer + /// styles (those force a flattened render of the precomp, as in After Effects). + pub(crate) fn collapsed(&self, ctx: &EvalCtx, layer: &Layer) -> Option { + if !layer.switches.collapse || layer.switches.adjustment || self.depth > 12 { + return None; + } + let LayerSource::Comp { item } = &layer.source else { return None }; + if self.project.comp_contains(*item, ctx.comp_id) || self.project.comp(*item).is_none() { + return None; + } + if layer.masks().is_some_and(|m| !m.children.is_empty()) { + return None; + } + if layer.switches.effects && layer.effects().is_some_and(|fx| fx.groups().any(|g| g.enabled)) { + return None; + } + if styles::active(ctx, layer) { + return None; + } + Some(*item) + } + + /// A renderer and context that draw a collapsed precomp's layers straight into this comp: + /// their transforms are concatenated with the precomp layer's (one resample, no + /// rasterisation at the precomp's bounds), their opacity multiplied by `opacity`, and their + /// 3D layers use this comp's camera and lights. + pub(crate) fn collapse_into(&self, ctx: &EvalCtx<'a>, layer: &Layer, item: ItemId, opacity: f32) -> Option<(Renderer<'a>, EvalCtx<'a>)> { + let nc = self.project.comp(item)?; + let nctx = EvalCtx { comp_id: item, comp: nc, time: ctx.source_time(layer), ..*ctx }; + let (l2c, _) = ctx.layer_to_comp(layer); + let outer = Some(self.outer.map_or(l2c, |o| o * l2c)); + let world = ctx.world_matrix(layer); + let c3 = Collapse3d { + world: self.collapse3d.map_or(world, |c| c.world * world), + cam: three_d::compose::camera_for(self, ctx), + parent: self.collapse3d.map_or(*ctx, |c| c.parent), + }; + Some((Renderer { depth: self.depth + 1, outer, opacity_mul: opacity, collapse3d: Some(c3), ..*self }, nctx)) + } + + pub(crate) fn opacity_mul(&self) -> f32 { + self.opacity_mul + } + + /// Draw a collapsed 2D precomp layer: nested layers blend straight into `canvas` with their + /// own modes (Normal precomp, no matte); otherwise they are drawn into an isolated buffer + /// that then takes the precomp layer's track matte, Preserve Transparency and blend mode. + fn draw_collapsed(&self, ctx: &EvalCtx<'a>, layer: &Layer, item: ItemId, canvas: &mut Image) { + let opacity = ctx.opacity(layer) as f32 * self.opacity_mul; + if opacity <= 0.0 { + return; + } + let matte = layer.track_matte.is_some_and(|tm| tm.layer != layer.id && ctx.comp.layer(tm.layer).is_some()); + if layer.blend_mode == BlendMode::Normal && !matte && !layer.preserve_transparency { + if let Some((sub, nctx)) = self.collapse_into(ctx, layer, item, opacity) { + sub.draw_comp(&nctx, canvas); + } + return; + } + let Some((sub, nctx)) = self.collapse_into(ctx, layer, item, 1.0) else { return }; + let mut iso = Image::new(canvas.width, canvas.height); + sub.draw_comp(&nctx, &mut iso); + self.composite_iso(ctx, layer, iso, canvas, opacity); + } + + /// Rasterisation scale of a layer's source: the output scale, or — for Continuously + /// Rasterize text and shape layers — the output scale times the layer's on-screen scale + /// (quarter-octave steps, rounded up, so vector content is drawn at its final size and + /// stays sharp when scaled up). + pub fn raster_scale(&self, ctx: &EvalCtx, layer: &Layer) -> f64 { + let s = self.opts.scale; + if !layer.switches.collapse || !matches!(layer.source, LayerSource::Text | LayerSource::Shape) { + return s; + } + let (l2c, _) = ctx.layer_to_comp(layer); + let m = self.outer.map_or(l2c, |o| o * l2c); + let a = layer.transform().map(|tr| ctx.v3(layer, tr, "anchor", [0.0; 3])).unwrap_or([0.0; 3]); + let p0 = m.apply(vec2(a[0], a[1])); + let px = m.apply(vec2(a[0] + 1.0, a[1])); + let py = m.apply(vec2(a[0], a[1] + 1.0)); + let k = ((px.x - p0.x).hypot(px.y - p0.y)).max((py.x - p0.x).hypot(py.y - p0.y)); + if !k.is_finite() || k <= 1e-6 { + return s; + } + let mut k = 2f64.powf((k.log2() * 4.0).ceil() / 4.0).clamp(1.0 / 16.0, 64.0); + // Keep the buffer within about 16 million pixels. + if let Some(b) = content_bounds(ctx, layer) { + let area = ((b[2] - b[0]) * (b[3] - b[1])).max(1.0) * s * s; + k = k.min((16.0e6 / area).sqrt().max(1.0)); + } + s * k + } + + /// Draw a Wireframe-quality layer: its bounds as a one-pixel outline. + fn draw_wireframe(&self, ctx: &EvalCtx, layer: &Layer, canvas: &mut Image) { + let Some(b) = content_bounds(ctx, layer) else { return }; + let s = self.opts.scale; + let (l2c, _) = ctx.layer_to_comp(layer); + let m = Mat3::scale(vec2(s, s)) * self.outer.map_or(l2c, |o| o * l2c); + let c = [(b[0], b[1]), (b[2], b[1]), (b[2], b[3]), (b[0], b[3])].map(|(x, y)| m.apply(vec2(x, y))); + let (w, h) = (canvas.width as i64, canvas.height as i64); + for i in 0..4 { + let (p, q) = (c[i], c[(i + 1) % 4]); + let n = ((q.x - p.x).abs().max((q.y - p.y).abs()) * 2.0).ceil().clamp(1.0, 1.0e5) as usize; + for j in 0..=n { + let t = j as f64 / n as f64; + let (x, y) = ((p.x + (q.x - p.x) * t).floor() as i64, (p.y + (q.y - p.y) * t).floor() as i64); + if x >= 0 && y >= 0 && x < w && y < h { + canvas.set(x as u32, y as u32, [1.0, 1.0, 1.0, 1.0]); + } + } + } } fn ctx(&self, comp_id: ItemId, comp: &'a Comp, t: Tick) -> EvalCtx<'a> { @@ -238,7 +383,10 @@ impl<'a> Renderer<'a> { three_d::compose::draw_run(self, ctx, &visible[i..j], canvas); i = j; } else { - self.draw_layer(ctx, visible[i], canvas); + match self.collapsed(ctx, visible[i]) { + Some(item) => self.draw_collapsed(ctx, visible[i], item, canvas), + None => self.draw_layer(ctx, visible[i], canvas), + } i += 1; } // 8/16 bpc: the comp is an integer buffer after every layer. @@ -363,8 +511,8 @@ impl<'a> Renderer<'a> { } Some(buf) } - LayerSource::Text => Some(self.authored(text::render(ctx, layer, s))), - LayerSource::Shape => layer.props.sub("contents").map(|c| self.authored(shapes::render(ctx, layer, c, s))), + LayerSource::Text => Some(self.authored(text::render(ctx, layer, self.raster_scale(ctx, layer)))), + LayerSource::Shape => layer.props.sub("contents").map(|c| self.authored(shapes::render(ctx, layer, c, self.raster_scale(ctx, layer)))), _ => None, } } @@ -480,7 +628,7 @@ impl<'a> Renderer<'a> { } fn content_buf_timed(&self, ctx: &EvalCtx, layer: &Layer, mut timing: Option<&mut LayerTiming>) -> Option<(Arc, Option)> { - let key = self.cache.and_then(|_| cache::layer_key(ctx, layer, self.opts.scale, self.opts.draft)); + let key = self.cache.and_then(|_| cache::layer_key(ctx, layer, self.raster_scale(ctx, layer), self.opts.draft)); if let (Some(c), Some(k)) = (self.cache, key) && let Some(b) = c.get(k) { @@ -501,7 +649,7 @@ impl<'a> Renderer<'a> { /// (what Time effects read at neighbouring times). Served from / stored in the layer cache /// under its own key, so scrubbing reuses frames rendered for earlier output frames. pub fn layer_input(&self, ctx: &EvalCtx, layer: &Layer, effects: usize) -> Option> { - let key = self.cache.and_then(|_| cache::input_key(ctx, layer, self.opts.scale, self.opts.draft, effects)); + let key = self.cache.and_then(|_| cache::input_key(ctx, layer, self.raster_scale(ctx, layer), self.opts.draft, effects)); if let (Some(c), Some(k)) = (self.cache, key) && let Some(b) = c.get(k) { @@ -565,7 +713,10 @@ impl<'a> Renderer<'a> { } fn sampling(&self, layer: &Layer) -> effectcraft_raster::Sampling { - if self.opts.draft || layer.switches.quality == Quality::Draft { + if layer.switches.quality == Quality::Draft { + // Draft quality: no interpolation (nearest neighbour), as After Effects' Draft. + effectcraft_raster::Sampling::Nearest + } else if self.opts.draft { effectcraft_raster::Sampling::Bilinear } else if layer.switches.sampling == Sampling::Bicubic { effectcraft_raster::Sampling::Bicubic @@ -578,6 +729,7 @@ impl<'a> Renderer<'a> { fn buf_matrix(&self, ctx: &EvalCtx, layer: &Layer, buf: &Buf) -> Mat3 { let s = self.opts.scale; let (l2c, _) = ctx.layer_to_comp(layer); + let l2c = self.outer.map_or(l2c, |o| o * l2c); Mat3::scale(vec2(s, s)) * l2c * Mat3::scale(vec2(1.0 / buf.scale, 1.0 / buf.scale)) * Mat3::translate(vec2(-buf.offset[0], -buf.offset[1])) } @@ -610,7 +762,11 @@ impl<'a> Renderer<'a> { } fn draw_layer(&self, ctx: &EvalCtx, layer: &Layer, canvas: &mut Image) { - let opacity = ctx.opacity(layer) as f32; + let opacity = ctx.opacity(layer) as f32 * self.opacity_mul; + if layer.switches.quality == Quality::Wireframe && !layer.switches.adjustment { + self.draw_wireframe(ctx, layer, canvas); + return; + } if opacity <= 0.0 && !layer.switches.adjustment { return; } @@ -825,6 +981,8 @@ pub fn kurbo_path(sp: &effectcraft_keyframe::ShapePath) -> kurbo::BezPath { #[cfg(test)] mod tests_audio_fx; #[cfg(test)] +mod tests_collapse; +#[cfg(test)] mod tests_color; #[cfg(test)] mod tests_frame_blend; diff --git a/crates/render/src/tests_collapse.rs b/crates/render/src/tests_collapse.rs new file mode 100644 index 00000000..d3cf954c --- /dev/null +++ b/crates/render/src/tests_collapse.rs @@ -0,0 +1,202 @@ +//! Collapse Transformations, Continuously Rasterize and the Quality switch. + +use effectcraft_color::{BlendMode, Label}; +use effectcraft_keyframe::Value; +use effectcraft_project::build::{self, Ids}; +use effectcraft_project::{BitDepth, Comp, ItemId, ItemKind, Layer, LayerSource, Project, Quality, Solid}; +use effectcraft_time::{FrameRate, Tick}; + +use crate::{Image, render_frame}; + +fn project() -> Project { + let mut p = Project::default(); + p.settings.bit_depth = BitDepth::Bpc32; + p +} + +fn solid(p: &mut Project, comp: &Comp, color: [f32; 3], size: (u32, u32), pos: [f64; 3]) -> Layer { + let sid = p.add_item("S", Label::Red, None, ItemKind::Solid(Solid { color, width: size.0, height: size.1, pixel_aspect: 1.0 })); + let mut l = build::layer(p, comp, "S", LayerSource::Solid { item: sid }, size, None); + l.props.prop_mut("transform/position").unwrap().value = Value::Vec3(pos); + l +} + +fn set(l: &mut Layer, path: &str, v: Value) { + l.props.prop_mut(path).unwrap().value = v; +} + +fn max_diff(a: &Image, b: &Image) -> f32 { + a.data.iter().zip(&b.data).flat_map(|(p, q)| (0..4).map(move |c| (p[c] - q[c]).abs())).fold(0.0, f32::max) +} + +/// Outer 200×100 comp: a grey background, and either a precomp (scaled 150%, rotated) of two +/// solids — the top one in Add mode — or the same two solids parented to a null that carries the +/// precomp layer's transform (the manual flattening). +fn scene(collapse: bool, flatten: bool) -> (Project, ItemId) { + let mut p = project(); + let outer = Comp::new(200, 100, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let inner = Comp::new(100, 100, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let mut a = solid(&mut p, &inner, [0.6, 0.1, 0.1], (40, 40), [40.0, 50.0, 0.0]); + let mut b = solid(&mut p, &inner, [0.1, 0.3, 0.6], (40, 40), [60.0, 50.0, 0.0]); + b.blend_mode = BlendMode::Add; + let bg = solid(&mut p, &outer, [0.3, 0.3, 0.3], (200, 100), [100.0, 50.0, 0.0]); + let xf = |l: &mut Layer| { + set(l, "transform/anchor", Value::Vec3([50.0, 50.0, 0.0])); + set(l, "transform/position", Value::Vec3([100.0, 50.0, 0.0])); + set(l, "transform/scale", Value::Vec3([150.0, 150.0, 100.0])); + set(l, "transform/rotation", Value::Scalar(20.0)); + }; + let cid; + if flatten { + let mut null = build::layer(&mut p, &outer, "Null", LayerSource::Null, (100, 100), None); + xf(&mut null); + a.parent = Some(null.id); + b.parent = Some(null.id); + let mut c = outer.clone(); + c.layers = vec![null, b, a, bg]; + cid = p.add_item("Outer", Label::Sandstone, None, ItemKind::Comp(c.into())); + } else { + let mut inner = inner; + inner.layers = vec![b, a]; + let iid = p.add_item("Inner", Label::Sandstone, None, ItemKind::Comp(inner.into())); + let mut pre = build::layer(&mut p, &outer, "Inner", LayerSource::Comp { item: iid }, (100, 100), None); + xf(&mut pre); + pre.switches.collapse = collapse; + let mut c = outer.clone(); + c.layers = vec![pre, bg]; + cid = p.add_item("Outer", Label::Sandstone, None, ItemKind::Comp(c.into())); + } + (p, cid) +} + +#[test] +fn collapsed_precomp_equals_manual_flattening() { + let (p, cid) = scene(false, true); + let flat = render_frame(&p, cid, Tick::ZERO, 1.0); + let (p, cid) = scene(true, false); + let collapsed = render_frame(&p, cid, Tick::ZERO, 1.0); + assert!(max_diff(&flat, &collapsed) < 1e-4, "collapsed differs from flattening by {}", max_diff(&flat, &collapsed)); + // Without collapsing, Add only sees the precomp's own layers (not the grey below), and the + // precomp is resampled twice. + let (p, cid) = scene(false, false); + let nested = render_frame(&p, cid, Tick::ZERO, 1.0); + assert!(max_diff(&flat, &nested) > 0.2); + // Opacity of the collapsed layer fades every nested layer. + let (mut p, cid) = scene(true, false); + set(&mut p.comp_mut(cid).unwrap().layers[0], "transform/opacity", Value::Scalar(50.0)); + let half = render_frame(&p, cid, Tick::ZERO, 1.0); + let (x, y) = (100, 50); + let (bg, full) = (0.3, collapsed.get(x, y)[0]); + assert!((half.get(x, y)[0] - (bg + (full - bg) * 0.5)).abs() < 0.03, "{:?} vs {full}", half.get(x, y)); +} + +#[test] +fn masks_on_a_collapsed_layer_force_a_flattened_render() { + let (mut p, cid) = scene(true, false); + let (p2, cid2) = scene(false, false); + // Add a mask covering everything: the layer renders like an uncollapsed precomp. + let mut next = p.next_id; + let mask = build::mask( + &mut Ids(&mut next), + "Mask 1", + effectcraft_keyframe::ShapePath::rect([50.0, 50.0], 4000.0, 4000.0), + effectcraft_project::MaskMode::Add, + [255, 255, 0], + ); + p.next_id = next; + p.comp_mut(cid).unwrap().layers[0].props.sub_mut("masks").unwrap().children.push(mask.into()); + let a = render_frame(&p, cid, Tick::ZERO, 1.0); + let b = render_frame(&p2, cid2, Tick::ZERO, 1.0); + assert!(max_diff(&a, &b) < 1e-4, "{}", max_diff(&a, &b)); +} + +#[test] +fn collapsed_3d_layers_join_the_parent_scene() { + // Parent: a red 3D solid at z = 0 above (in the stack) a collapsed 3D precomp holding a + // blue 3D solid at z = −200 (nearer the camera). Collapsed, depth sorting puts blue in front; + // uncollapsed, the precomp is one plane at z = 0 drawn below the red. + let run = |collapse: bool| { + let mut p = project(); + let outer = Comp::new(200, 200, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let inner = Comp::new(200, 200, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let mut blue = solid(&mut p, &inner, [0.0, 0.0, 1.0], (60, 60), [100.0, 100.0, -200.0]); + blue.switches.three_d = true; + let mut inner = inner; + inner.layers = vec![blue]; + let iid = p.add_item("Inner", Label::Sandstone, None, ItemKind::Comp(inner.into())); + let mut pre = build::layer(&mut p, &outer, "Inner", LayerSource::Comp { item: iid }, (200, 200), None); + pre.switches.three_d = true; + pre.switches.collapse = collapse; + let mut red = solid(&mut p, &outer, [1.0, 0.0, 0.0], (100, 100), [100.0, 100.0, 0.0]); + red.switches.three_d = true; + let mut c = outer; + c.layers = vec![red, pre]; + let cid = p.add_item("Outer", Label::Sandstone, None, ItemKind::Comp(c.into())); + render_frame(&p, cid, Tick::ZERO, 1.0).get(100, 100) + }; + let c = run(true); + assert!(c[2] > 0.99 && c[0] < 0.01, "collapsed: blue in front {c:?}"); + let n = run(false); + assert!(n[0] > 0.99 && n[2] < 0.01, "uncollapsed: red on top {n:?}"); +} + +/// Pixels along row `y` from `x0` to `x1` with partial coverage (an edge's width). +fn edge_width(img: &Image, y: i64, x0: i64, x1: i64) -> usize { + (x0..x1).filter(|&x| (0.02..0.98).contains(&img.get(x, y)[3])).count() +} + +#[test] +fn continuously_rasterized_shape_stays_sharp_when_scaled_up() { + let run = |cr: bool| { + let mut p = project(); + let comp = Comp::new(200, 200, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let mut l = build::layer(&mut p, &comp, "Shape", LayerSource::Shape, (200, 200), None); + let mut next = p.next_id; + let mut ids = Ids(&mut next); + let rect = build::shape_rect(&mut ids, [10.0, 10.0], [0.0, 0.0], 0.0); + let fill = build::shape_fill(&mut ids, [1.0, 1.0, 1.0, 1.0]); + let g = build::shape_group(&mut ids, "Rectangle 1", vec![rect, fill]); + p.next_id = next; + l.props.sub_mut("contents").unwrap().children.push(g.into()); + set(&mut l, "transform/anchor", Value::Vec3([0.0, 0.0, 0.0])); + set(&mut l, "transform/position", Value::Vec3([100.3, 100.3, 0.0])); + set(&mut l, "transform/scale", Value::Vec3([800.0, 800.0, 100.0])); + l.switches.collapse = cr; + let mut c = comp; + c.layers = vec![l]; + let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(c.into())); + render_frame(&p, cid, Tick::ZERO, 1.0) + }; + // The 10 px square scaled 800% spans 60.3..140.3. + let soft = run(false); + let sharp = run(true); + let ws = edge_width(&soft, 100, 50, 75); + let wc = edge_width(&sharp, 100, 50, 75); + assert!(ws >= 4, "bitmap scaling blurs the edge: {ws}"); + assert!(wc <= 1, "continuously rasterized edge: {wc}"); + assert!(sharp.get(100, 100)[3] > 0.99 && sharp.get(55, 100)[3] < 0.01); +} + +#[test] +fn wireframe_quality_draws_the_layer_bounds() { + let mut p = project(); + let comp = Comp::new(100, 100, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let mut l = solid(&mut p, &comp, [1.0, 0.0, 0.0], (40, 40), [50.0, 50.0, 0.0]); + l.switches.quality = Quality::Wireframe; + let mut c = comp; + c.layers = vec![l]; + let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(c.into())); + let img = render_frame(&p, cid, Tick::ZERO, 1.0); + assert_eq!(img.get(50, 50)[3], 0.0, "no fill"); + assert_eq!(img.get(30, 50), [1.0, 1.0, 1.0, 1.0], "outline"); + // Draft quality samples nearest-neighbour: no partial pixels at a half-pixel offset. + let mut p = project(); + let comp = Comp::new(100, 100, FrameRate::FPS_30, Tick::from_seconds_f64(2.0)); + let mut l = solid(&mut p, &comp, [1.0, 1.0, 1.0], (40, 40), [50.5, 50.0, 0.0]); + l.switches.quality = Quality::Draft; + let mut c = comp; + c.layers = vec![l]; + let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(c.into())); + let img = render_frame(&p, cid, Tick::ZERO, 1.0); + assert!(img.data.iter().all(|q| q[3] == 0.0 || q[3] == 1.0)); +} diff --git a/crates/render/src/three_d/compose.rs b/crates/render/src/three_d/compose.rs index 421587bc..53ba8cdb 100644 --- a/crates/render/src/three_d/compose.rs +++ b/crates/render/src/three_d/compose.rs @@ -150,6 +150,10 @@ fn unproject(g: &Geo, sx: f64, sy: f64) -> Option<(f64, f64, f64)> { /// The camera a renderer uses at a context time (view override only for the top-level comp). pub(crate) fn camera_for(r: &Renderer, ctx: &EvalCtx) -> CameraState { + // Collapsed precomps see through the parent's camera. + if let Some(c) = r.collapse3d { + return c.cam; + } match r.opts.view { Some(v) if r.depth == 0 => v, _ => active_camera(ctx), @@ -200,7 +204,8 @@ fn prepare_with<'a>( let comp = (ctx.comp.width as f64, ctx.comp.height as f64); let s = r.opts.scale; let cam = camera_for(r, ctx); - let world = ctx.world_matrix(layer) * local; + let outer = r.collapse3d.map_or(Mat4::IDENTITY, |c| c.world); + let world = outer * ctx.world_matrix(layer) * local; // Depth of field: blur the layer by its circle of confusion at its centre. if let Some(dof) = cam.dof.filter(|_| !ctx.comp.draft_3d && !r.opts.draft) { let b = buf_bounds(&buf); @@ -234,7 +239,7 @@ fn prepare_with<'a>( let f = phase + angle * i as f64 / (n - 1) as f64; let sub = ctx.at(ctx.time + Tick::from_seconds_f64(f * fd)); let c = camera_for(r, &sub); - geo(&c, sub.world_matrix(layer) * local, &buf, comp, s, out) + geo(&c, outer * sub.world_matrix(layer) * local, &buf, comp, s, out) }) .collect() }; @@ -253,7 +258,7 @@ fn prepare_with<'a>( bicubic: matches!(r.sampling(layer), effectcraft_raster::Sampling::Bicubic), buf, geos, - opacity: ctx.opacity(layer) as f32, + opacity: ctx.opacity(layer) as f32 * r.opacity_mul(), draw: in_run && mat.casts_shadows != 2, mat, matte: None, @@ -319,12 +324,18 @@ pub(crate) fn draw_run(r: &Renderer, ctx: &EvalCtx, run: &[&Layer], canvas: &mut return; } let out = (canvas.width, canvas.height); - let lights = scene_lights(ctx); + // A collapsed precomp's 3D layers are lit by the outer comp's lights. + let lights = scene_lights(&r.collapse3d.map_or(*ctx, |c| c.parent)); let mut items: Vec = run .par_iter() .enumerate() - .filter(|(_, l)| ctx.opacity(l) > 0.0) + .filter(|(_, l)| ctx.opacity(l) > 0.0 && l.switches.quality != effectcraft_project::Quality::Wireframe) .flat_map_iter(|(i, l)| { + // Stack order with room for a collapsed precomp's layers in between. + let i = i * 1024; + if let Some(item) = r.collapsed(ctx, l) { + return collapsed_items(r, ctx, l, item, i, out); + } let mut its = prepare_all(r, ctx, l, i, out, true); if !its.is_empty() { let m = matte_for(r, ctx, l, out); @@ -351,6 +362,49 @@ pub(crate) fn draw_run(r: &Renderer, ctx: &EvalCtx, run: &[&Layer], canvas: &mut items.sort_by_key(|i| i.order); let casters: Vec<&Item> = items.iter().chain(extra.iter()).filter(|i| i.mat.casts_shadows != 0 && !i.geos.is_empty()).collect(); composite(canvas, &items, &lights, &casters, run[0].id.0 as u32); + for l in run.iter().filter(|l| l.switches.quality == effectcraft_project::Quality::Wireframe) { + r.draw_layer(ctx, l, canvas); + } +} + +/// A collapsed 3D precomp layer inside a 3D run: its nested layers become planes in this comp's +/// 3D space (world = precomp layer's world × nested world), depth-sorted with the run, so they +/// intersect the parent's 3D layers; nested 2D layers lie on the precomp layer's plane in stack +/// order. (Nested adjustment layers are skipped here.) +fn collapsed_items<'a>( + r: &Renderer<'a>, + ctx: &EvalCtx<'a>, + layer: &'a Layer, + item: effectcraft_project::ItemId, + order: usize, + out: (u32, u32), +) -> Vec> { + let op = ctx.opacity(layer) as f32 * r.opacity_mul(); + let Some((sub, nctx)) = r.collapse_into(ctx, layer, item, op) else { return vec![] }; + let t = nctx.time; + let any_solo = nctx.comp.layers.iter().any(|l| l.switches.solo && l.source.is_av() && l.is_active_at(t)); + let nested: Vec<&'a Layer> = nctx + .comp + .layers + .iter() + .rev() + .filter(|l| l.is_active_at(t) && l.has_video() && !l.switches.adjustment && (!any_solo || l.switches.solo) && (r.opts.guides || !l.switches.guide)) + .collect(); + let mut items = Vec::new(); + for (k, l) in nested.into_iter().enumerate() { + if nctx.opacity(l) <= 0.0 { + continue; + } + let mut its = prepare_all(&sub, &nctx, l, order + 1 + k.min(1022), out, true); + if !its.is_empty() { + let m = matte_for(&sub, &nctx, l, out); + for it in &mut its { + it.matte = m.clone(); + } + } + items.extend(its); + } + items } /// Per-pixel depth-sorted compositing of prepared planes. diff --git a/crates/ui-egui/src/panels/timeline.rs b/crates/ui-egui/src/panels/timeline.rs index ab85e8eb..be891090 100644 --- a/crates/ui-egui/src/panels/timeline.rs +++ b/crates/ui-egui/src/panels/timeline.rs @@ -953,8 +953,40 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { { let xs = tm.x(layer.start_time.seconds()); let xe = tm.x(layer.comp_time(d).seconds()); - let ghost = Rect::from_min_max(pos2(xs, r.min.y + 9.0), pos2(xe, r.max.y - 9.0)); + let ghost = Rect::from_min_max(pos2(xs.min(xe), r.min.y + 9.0), pos2(xs.max(xe), r.max.y - 9.0)); gp.rect_filled(ghost, 1.0, lc.gamma_multiply(0.18)); + // Dragging the source bar outside the in/out span slips the source. + for (side, gr) in [ + ("l", Rect::from_min_max(ghost.min, pos2(bar.min.x, ghost.max.y))), + ("r", Rect::from_min_max(pos2(bar.max.x, ghost.min.y), ghost.max)), + ] { + if gr.width() < 2.0 { + continue; + } + let gresp = ui.interact(gr, egui::Id::new(("ghost", side, layer.id.0)), Sense::drag()).on_hover_text("Drag to slip the source"); + app.auto.add(&format!("timeline.layer.{}.source{}", layer.id.0, side), gr, "Slip"); + if gresp.hovered() || gresp.dragged() { + ctx.set_cursor_icon(egui::CursorIcon::ResizeHorizontal); + } + let acc_id = egui::Id::new(("slip-acc", layer.id.0)); + if gresp.dragged() { + let mut acc: f32 = ctx.data(|d| d.get_temp(acc_id).unwrap_or(0.0)); + acc += gresp.drag_delta().x; + let frames = ((acc as f64 / pps) / fd).trunc() as i64; + if frames != 0 { + acc -= (frames as f64 * fd * pps) as f32; + actions.push(( + "layer.slip".into(), + json!({"layers": [layer.id.0], "frames": frames, "merge": format!("slip-{}", layer.id.0)}), + )); + } + ctx.data_mut(|d| d.insert_temp(acc_id, acc)); + } + if gresp.drag_stopped() { + ctx.data_mut(|d| d.remove::(acc_id)); + ui_actions.push(UiAct::EndMerge); + } + } } app.auto.add(&format!("timeline.layer.{}.bar", layer.id.0), bar, &layer.name); // Interactions: move body, trim edges. diff --git a/docs/architecture.md b/docs/architecture.md index b7886581..dc95f35b 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -103,6 +103,30 @@ groups into `Params` keys (`effects::flatten_params`). Commands: `paint.*`, `pup Half, Third and Quarter resolution render proportionally fewer pixels end to end. +**Colour and bit depth** (`crates/render/src/color.rs`, `crates/color/src/space.rs`). Pixels are +`f32`, but 8 and 16 bpc projects clamp and quantise each layer after its source and masks and +after every effect, and the comp after every layer (16 bpc uses 0..32768), so over-range values +(Add, Screen, Exposure…) only survive in 32 bpc; blend modes without HDR support clamp their +inputs in 32 bpc. With a working space (sRGB, Rec. 709, Rec. 2020, Display P3; matrices derived +from the published primaries), footage is converted from its colour profile (stream metadata or +Interpret Footage, else sRGB) and the top-level comp is converted to the sRGB display. Linearize +Working Space runs everything in linear light; Blend Colors Using 1.0 Gamma linearises only for +blending. Layer cache keys include these settings. + +**Frame blending**: footage and precomp layers whose source time falls between source frames +(rate conform, stretch, remap) blend the two neighbouring frames, by cross-fade (Frame Mix) or by +hierarchical block-matching optical flow and a bidirectional warp (Pixel Motion, +`raster::flow`). + +**Collapse Transformations**: a collapsed precomp layer without masks, effects or styles draws +its nested layers straight into the parent with concatenated transforms (one resample), so +nested blend modes and adjustment layers act on the parent's layers; nested 3D layers use the +parent's camera and lights and, when the precomp layer is 3D, are depth-sorted with the parent's +3D run. Masks, effects or styles force a flattened render. On text and shape layers the switch is +Continuously Rasterize: the source is rasterised at its on-screen scale. Quality: Draft samples +nearest-neighbour, Wireframe draws the layer bounds. Slip edit (`layer.slip`, Alt+PageUp/Down, +dragging the source bar in the timeline) moves the source under fixed in/out points. + **Motion tracking** (Animation ▸ Track Motion / Stabilize Motion, Window ▸ Tracker): a tracker is a `Tracker` group under the layer's Motion Trackers group, with Track Point groups (Feature Center, Feature Size, Search Offset, Search Size, Confidence, Attach Point, Attach Point Offset) From 468dc13cfe9a385022671fb1a5bfab1bf541b8bd Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 10:16:05 -0400 Subject: [PATCH 5/6] M0.13: viewer snapping, rulers, channels, snapshots, ROI Composition viewer interaction parity with After Effects: - Snapping (View > Snapping, the Tools bar checkbox, Cmd/Ctrl inverts while dragging): layer edges, centres and anchor points, mask and shape-path vertices, comp edges/centre, guides (Snap to Guides) and grid (Snap to Grid), with highlighted target box / line / cross feedback. Pure maths in engine::viewer (nearest target within tolerance, priority ties). - Rulers (Cmd+R) with live pointer markers and a draggable zero point; guides dragged out of the rulers, moved in the viewer, dragged off to remove (view.moveGuide / view.removeGuide), lock respected; proportional grid. - Show Channel (RGB/Red/Green/Blue/Alpha/RGB Straight, Colorize), exposure (+/- stops in linear light, reset), Take Snapshot (Shift+F5) with a stored render and Show Snapshot (F5 held / button held), Fast Previews (Off, Adaptive Resolution, Draft, Fast Draft, Wireframe), Resolution > Custom. - Region of interest: drawn in the viewer; RenderOpts.roi renders only that rectangle (crop of the full render, tested), Crop Comp to ROI uses it. - Bottom bar in AE 2026 order ("136.1 %", "(Full)"). - Shape Pen (SHP-1): Pen on a shape layer / nothing selected draws Shape n groups (Path 1, Stroke 1, Fill 1) via shape.newPath; the G slot cycles Add / Delete / Convert Vertex and Mask Feather; mask.* vertex commands work on shape paths; mask.insertVertex / mask.convertVertex; marquee vertex selection, Alt-drag/click converts, double-click free transform box (path.freeTransform on masks and shape paths). - Motion paths (ANM-3): keyframe dots and spatial tangent handles, dragging keys (keys.set) and tangents (keys.setSpatialTangents), parented layers. Co-Authored-By: Claude Opus 5.5 --- crates/engine/src/commands/edit.rs | 4 + crates/engine/src/commands/frontend.rs | 1 + crates/engine/src/commands/key_transform.rs | 153 ++++ crates/engine/src/commands/mask.rs | 127 +++- crates/engine/src/commands/mod.rs | 6 + crates/engine/src/commands/paths.rs | 9 +- crates/engine/src/commands/stubs.rs | 1 - crates/engine/src/commands/viewer_cmds.rs | 305 ++++++++ crates/engine/src/lib.rs | 14 + crates/engine/src/menus.rs | 2 + crates/engine/src/tests_viewer.rs | 384 +++++++++++ crates/engine/src/viewer.rs | 372 ++++++++++ crates/export/src/lib.rs | 1 + crates/render/src/lib.rs | 55 +- crates/render/src/shapes.rs | 22 + crates/render/src/tests_roi.rs | 73 ++ crates/ui-egui/src/header.rs | 6 +- crates/ui-egui/src/icons.rs | 23 + crates/ui-egui/src/lib.rs | 20 +- crates/ui-egui/src/menus.rs | 30 + crates/ui-egui/src/panels/mod.rs | 2 + crates/ui-egui/src/panels/viewer.rs | 549 +++++++-------- crates/ui-egui/src/panels/viewer_overlays.rs | 528 ++++++++++++++ crates/ui-egui/src/panels/viewer_tools.rs | 689 +++++++++++++++++++ crates/ui-egui/src/state.rs | 55 +- crates/ui-egui/tests/ui_viewer.rs | 224 ++++++ docs/control-protocol.md | 16 +- docs/parity.md | 16 +- 28 files changed, 3370 insertions(+), 317 deletions(-) create mode 100644 crates/engine/src/commands/key_transform.rs create mode 100644 crates/engine/src/commands/viewer_cmds.rs create mode 100644 crates/engine/src/tests_viewer.rs create mode 100644 crates/engine/src/viewer.rs create mode 100644 crates/render/src/tests_roi.rs create mode 100644 crates/ui-egui/src/panels/viewer_overlays.rs create mode 100644 crates/ui-egui/src/panels/viewer_tools.rs create mode 100644 crates/ui-egui/tests/ui_viewer.rs diff --git a/crates/engine/src/commands/edit.rs b/crates/engine/src/commands/edit.rs index 5ce1cec1..437c122b 100644 --- a/crates/engine/src/commands/edit.rs +++ b/crates/engine/src/commands/edit.rs @@ -502,6 +502,10 @@ fn select_label_group(s: &mut Session, _: &Value) -> Result { fn purge_caches(s: &mut Session, p: &Value) -> Result { let what = str_p(p, "what").unwrap_or("all").to_string(); + if matches!(what.as_str(), "all" | "snapshot") { + s.snapshot = None; + s.state.viewer.show_snapshot = false; + } s.events.push(crate::Event::PurgeCaches); s.toast(format!("Purged {what} cache")); Ok(json!({"purged": what})) diff --git a/crates/engine/src/commands/frontend.rs b/crates/engine/src/commands/frontend.rs index 6f9f6098..e4c7857e 100644 --- a/crates/engine/src/commands/frontend.rs +++ b/crates/engine/src/commands/frontend.rs @@ -42,6 +42,7 @@ pub fn specs() -> Vec { fe!("view.res.half", "Half", ["View", "Resolution"], Some("Cmd+Shift+J"), "{}", has_comp), fe!("view.res.third", "Third", ["View", "Resolution"], None, "{}", has_comp), fe!("view.res.quarter", "Quarter", ["View", "Resolution"], Some("Cmd+Alt+Shift+J"), "{}", has_comp), + fe!("view.res.custom", "Custom...", ["View", "Resolution"], None, "{factor?: 1..40 (render every n-th pixel)}", has_comp), fe!("view.rulers", "Show Rulers", ["View"], Some("Cmd+R"), "{value?}", always), fe!("view.panelBackground", "Panel Background Color", [], None, "{color?: black|darkGray|mediumGray|lightGray|white|custom|#hex, pick?: true}", always), fe!("view.guides", "Show Guides", ["View"], Some("Cmd+;"), "{value?}", always), diff --git a/crates/engine/src/commands/key_transform.rs b/crates/engine/src/commands/key_transform.rs new file mode 100644 index 00000000..82037d52 --- /dev/null +++ b/crates/engine/src/commands/key_transform.rs @@ -0,0 +1,153 @@ +//! Keyframe geometry edits from the viewer and the Graph Editor: the Graph Editor transform box +//! (scale / move selected keys in time and value; Alt-drag of a key group in the timeline) and +//! spatial Bezier tangents dragged on a motion path. + +use effectcraft_keyframe::Keyframe; +use effectcraft_project::{LayerId, Uid}; +use effectcraft_time::Tick; +use serde_json::{Value, json}; + +use super::prop::prop_ref; +use super::{CommandSpec, b_p, bad, f_p, has_comp, has_keys, merge_p}; +use crate::{EngineError, KeyRef, Result, Session, cmd}; + +fn v3(v: Option<&Value>) -> Option<[f64; 3]> { + let a = v?.as_array()?; + Some([a.first()?.as_f64()?, a.get(1)?.as_f64()?, a.get(2).and_then(Value::as_f64).unwrap_or(0.0)]) +} + +/// Transform the selected keys: times scale about `timeAnchor` (comp seconds, default the first +/// selected key) by `timeScale` and move by `timeOffset`; values scale about `valueAnchor` by +/// `valueScale` and move by `valueOffset` (every dimension, or only `dim`). Times land on frames. +fn transform(s: &mut Session, p: &Value) -> Result { + let cid = s.active_comp_id().ok_or(EngineError::NoComp)?; + let comp = s.project.comp(cid).ok_or(EngineError::NoComp)?; + let fr = comp.frame_rate; + let sel = s.state.selected_keys.clone(); + let ts = f_p(p, "timeScale").unwrap_or(1.0); + let toff = f_p(p, "timeOffset").unwrap_or(0.0); + let vs = f_p(p, "valueScale").unwrap_or(1.0); + let voff = f_p(p, "valueOffset").unwrap_or(0.0); + let va = f_p(p, "valueAnchor").unwrap_or(0.0); + // `dim` (one dimension) or `dims` (several); none = every dimension. + let dims: Option> = match (p.get("dim").and_then(Value::as_u64), p.get("dims").and_then(Value::as_array)) { + (Some(d), _) => Some(vec![d as usize]), + (None, Some(a)) => Some(a.iter().filter_map(Value::as_u64).map(|d| d as usize).collect()), + _ => None, + }; + if !ts.is_finite() || ts <= 0.0 { + return Err(bad("keys.transform", "`timeScale` must be positive")); + } + // Default time anchor: the earliest selected key (comp time). + let first = sel.iter().filter_map(|k| comp.layer(k.layer).map(|l| l.comp_time(k.time))).min().unwrap_or(Tick::ZERO); + let ta = f_p(p, "timeAnchor").map(Tick::from_seconds_f64).unwrap_or(first); + let map_t = |ct: Tick| -> Tick { + let x = ta.seconds() + (ct.seconds() - ta.seconds()) * ts + toff; + fr.snap_nearest(Tick::from_seconds_f64(x.max(0.0))) + }; + let touch_values = vs != 1.0 || voff != 0.0; + s.edit("Transform Keyframes", merge_p(p), |proj, st| { + let comp = proj.comp_mut(cid).ok_or(EngineError::NoComp)?; + let mut groups: std::collections::BTreeMap<(LayerId, Uid), Vec> = Default::default(); + for k in &sel { + groups.entry((k.layer, k.prop)).or_default().push(k.time); + } + let mut new_sel = vec![]; + for ((lid, uid), times) in groups { + let Some(layer) = comp.layer_mut(lid) else { continue }; + let (start, stretch) = (layer.start_time, layer.stretch); + let to_comp = |lt: Tick| if (stretch - 100.0).abs() < 1e-9 { start + lt } else { start + Tick((lt.0 as f64 * stretch / 100.0) as i64) }; + let to_layer = |ct: Tick| { + let d = ct - start; + if (stretch - 100.0).abs() < 1e-9 { d } else { Tick((d.0 as f64 * 100.0 / stretch) as i64) } + }; + let Some(pr) = layer.props.find_mut(uid) else { continue }; + let (mut moved, mut kept): (Vec, Vec) = pr.keys.drain(..).partition(|k| times.contains(&k.time)); + for k in &mut moved { + k.time = to_layer(map_t(to_comp(k.time))); + if touch_values { + let mut c = k.value.components(); + for (d, v) in c.iter_mut().enumerate() { + if dims.as_ref().is_none_or(|x| x.contains(&d)) { + *v = va + (*v - va) * vs + voff; + } + } + k.value = k.value.with_components(&c); + } + } + // Transformed keys win over unselected keys at the same time. + kept.retain(|k| !moved.iter().any(|m| m.time == k.time)); + moved.sort_by_key(|k| k.time); + moved.dedup_by_key(|k| k.time); + for k in &moved { + new_sel.push(KeyRef { layer: lid, prop: uid, time: k.time }); + } + kept.extend(moved); + kept.sort_by_key(|k| k.time); + pr.keys = kept; + effectcraft_keyframe::retime_roving(&mut pr.keys, pr.spatial); + } + st.selected_keys = new_sel; + Ok(json!({"keys": st.selected_keys.len()})) + }) +} + +/// Spatial tangents of one key of a spatial property (motion path handles), relative to the key +/// value. Setting one side only mirrors it to the other unless `break` is true; the key stops +/// being auto Bezier. +fn spatial_tangents(s: &mut Session, p: &Value) -> Result { + let (cid, lid, uid) = prop_ref(s, p, "keys.setSpatialTangents")?; + let t = Tick::from_seconds_f64(f_p(p, "time").ok_or_else(|| bad("keys.setSpatialTangents", "missing `time` (layer s)"))?); + let (tin, tout) = (v3(p.get("in")), v3(p.get("out"))); + if tin.is_none() && tout.is_none() { + return Err(bad("keys.setSpatialTangents", "pass `in` and/or `out` [dx, dy, dz?]")); + } + let brk = b_p(p, "break").unwrap_or(false); + s.edit("Edit Spatial Tangents", merge_p(p), |proj, _| { + let l = super::layer_mut(proj, cid, lid)?; + let pr = l.props.find_mut(uid).ok_or_else(|| bad("keys.setSpatialTangents", "no property"))?; + if !pr.spatial { + return Err(bad("keys.setSpatialTangents", "not a spatial property")); + } + let i = pr.keys.iter().position(|k| k.time == t).or_else(|| pr.keys.iter().enumerate().min_by_key(|(_, k)| (k.time.0 - t.0).abs()).map(|(i, _)| i)); + let i = i.ok_or_else(|| bad("keys.setSpatialTangents", "the property has no keyframes"))?; + let (cur_in, cur_out) = effectcraft_keyframe::spatial_tangents(&pr.keys, i); + let k = &mut pr.keys[i]; + let neg = |v: [f64; 3]| [-v[0], -v[1], -v[2]]; + let (ni, no) = match (tin, tout) { + (Some(a), Some(b)) => (a, b), + (Some(a), None) => (a, if brk { cur_out } else { neg(a) }), + (None, Some(b)) => (if brk { cur_in } else { neg(b) }, b), + (None, None) => (cur_in, cur_out), + }; + k.spatial_auto = false; + k.spatial_continuous = !brk && tin.is_some() != tout.is_some(); + k.spatial_in = ni; + k.spatial_out = no; + effectcraft_keyframe::retime_roving(&mut pr.keys, true); + Ok(json!({"in": ni, "out": no})) + }) +} + +pub fn specs() -> Vec { + vec![ + cmd!( + "keys.transform", + "Transform Keyframes", + [], + None, + "{timeScale?, timeAnchor? (comp s), timeOffset? (s), valueScale?, valueAnchor?, valueOffset?, dim? | dims?: [d…], merge?}", + has_keys, + transform + ), + cmd!( + "keys.setSpatialTangents", + "Edit Spatial Tangents", + [], + None, + "{layer?, path|prop, time (layer s), in?: [dx,dy,dz?], out?, break?, merge?}", + has_comp, + spatial_tangents + ), + ] +} diff --git a/crates/engine/src/commands/mask.rs b/crates/engine/src/commands/mask.rs index 8c671ecd..39894b58 100644 --- a/crates/engine/src/commands/mask.rs +++ b/crates/engine/src/commands/mask.rs @@ -20,19 +20,38 @@ fn pts(v: Option<&Value>) -> Vec<[f64; 2]> { v.and_then(Value::as_array).map(|a| a.iter().filter_map(|p| pt(Some(p))).collect()).unwrap_or_default() } -/// Find a mask group by uid, 1-based index or name. -fn find_mask<'a>(masks: &'a mut PropGroup, key: &Value) -> Option<&'a mut PropGroup> { - let i = match key { +/// Index of a mask group by uid, 1-based index or name. +fn mask_index(masks: &PropGroup, key: &Value) -> Option { + match key { Value::Number(n) => { let n = n.as_u64()?; - masks.children.iter().position(|c| c.uid() == n).or_else(|| (n as usize).checked_sub(1).filter(|i| *i < masks.children.len()))? + masks.children.iter().position(|c| c.uid() == n).or_else(|| (n as usize).checked_sub(1).filter(|i| *i < masks.children.len())) } - Value::String(s) => masks.children.iter().position(|c| c.name() == s)?, - _ => return None, - }; + Value::String(s) => masks.children.iter().position(|c| c.name() == s), + _ => None, + } +} + +/// Find a mask group by uid, 1-based index or name. +fn find_mask<'a>(masks: &'a mut PropGroup, key: &Value) -> Option<&'a mut PropGroup> { + let i = mask_index(masks, key)?; masks.children.get_mut(i)?.as_group_mut() } +/// Whether a group holds an editable Bezier path (a mask, or a shape layer's Path item). +pub(crate) fn is_path_group(g: &PropGroup) -> bool { + matches!(g.get("path").map(|p| &p.value), Some(KV::Path(_))) && (matches!(g.kind, effectcraft_project::GroupKind::Mask { .. }) || g.match_id == "path") +} + +/// A mask (uid, 1-based index or name) or, by uid, a shape layer's Path item. +pub(crate) fn path_group<'a>(props: &'a mut PropGroup, key: &Value) -> Option<&'a mut PropGroup> { + if let Some(i) = props.sub("masks").and_then(|m| mask_index(m, key)) { + return props.sub_mut("masks")?.children.get_mut(i)?.as_group_mut(); + } + let uid = key.as_u64()?; + props.find_group_mut(uid).filter(|g| is_path_group(g)) +} + /// Edit the mask path of (layer, mask) at the current time. fn edit_path(s: &mut Session, p: &Value, label: &str, f: impl FnOnce(&mut ShapePath) -> Result) -> Result<(Uid, T)> { let (cid, lid) = layer_p(s, p, label)?; @@ -41,8 +60,7 @@ fn edit_path(s: &mut Session, p: &Value, label: &str, f: impl FnOnce(&mut Sha s.edit(label, merge_p(p), |proj, _| { let l = layer_mut(proj, cid, lid)?; let lt = l.layer_time(t); - let masks = l.props.sub_mut("masks").ok_or_else(|| bad(label, "this layer has no masks"))?; - let g = find_mask(masks, &key).ok_or_else(|| bad(label, "no such mask"))?; + let g = path_group(&mut l.props, &key).ok_or_else(|| bad(label, "no such mask or shape path"))?; let uid = g.uid; let roto = super::paths::is_roto(g); let pr = g.get_mut("path").ok_or_else(|| bad(label, "mask has no path"))?; @@ -186,7 +204,7 @@ fn edit_vertices(s: &mut Session, p: &Value, label: &str, f: impl Fn(&mut ShapeP for ((l, m), idx) in &groups { let Some(layer) = comp.layer_mut(effectcraft_project::LayerId(*l)) else { continue }; let lt = layer.layer_time(t); - let Some(g) = layer.props.sub_mut("masks").and_then(|ms| ms.find_group_mut(*m)) else { continue }; + let Some(g) = layer.props.find_group_mut(*m).filter(|g| is_path_group(g)) else { continue }; let roto = super::paths::is_roto(g); let Some(pr) = g.get_mut("path") else { continue }; let KV::Path(mut sp) = pr.value_at(lt) else { continue }; @@ -233,6 +251,93 @@ fn delete_vertices(s: &mut Session, p: &Value) -> Result { Ok(n) } +/// Convert Vertex tool: a corner vertex becomes smooth (tangents along its neighbours, a sixth +/// of their distance each way), a smooth one becomes a corner (no tangents). `smooth` forces one. +fn convert_vertex(s: &mut Session, p: &Value) -> Result { + let i = p.get("index").and_then(Value::as_u64).ok_or_else(|| bad("mask.convertVertex", "missing `index`"))? as usize; + let force = b_p(p, "smooth"); + let (_, smooth) = edit_path(s, p, "Convert Vertex", |sp| { + let n = sp.vertices.len(); + if i >= n { + return Err(bad("mask.convertVertex", "no such vertex")); + } + sp.in_tangents.resize(n, [0.0; 2]); + sp.out_tangents.resize(n, [0.0; 2]); + let is_smooth = sp.in_tangents[i] != [0.0; 2] || sp.out_tangents[i] != [0.0; 2]; + let make_smooth = force.unwrap_or(!is_smooth); + if make_smooth { + let prev = if i > 0 { + Some(i - 1) + } else if sp.closed { + Some(n - 1) + } else { + None + }; + let next = if i + 1 < n { + Some(i + 1) + } else if sp.closed { + Some(0) + } else { + None + }; + let v = sp.vertices[i]; + let a = prev.map(|j| sp.vertices[j]).unwrap_or(v); + let b = next.map(|j| sp.vertices[j]).unwrap_or(v); + let mut d = [(b[0] - a[0]) / 6.0, (b[1] - a[1]) / 6.0]; + if d == [0.0, 0.0] { + d = [10.0, 0.0]; + } + sp.out_tangents[i] = d; + sp.in_tangents[i] = [-d[0], -d[1]]; + } else { + sp.in_tangents[i] = [0.0; 2]; + sp.out_tangents[i] = [0.0; 2]; + } + Ok(make_smooth) + })?; + Ok(json!({"smooth": smooth})) +} + +/// Split cubic segment `i` (vertex i → i+1) at parameter `t`; the path keeps its shape. +pub(crate) fn split_segment(sp: &mut ShapePath, seg: usize, t: f64) -> Option { + let n = sp.vertices.len(); + let j = if seg + 1 < n { + seg + 1 + } else if sp.closed && seg + 1 == n { + 0 + } else { + return None; + }; + sp.in_tangents.resize(n, [0.0; 2]); + sp.out_tangents.resize(n, [0.0; 2]); + let p0 = sp.vertices[seg]; + let p3 = sp.vertices[j]; + let p1 = [p0[0] + sp.out_tangents[seg][0], p0[1] + sp.out_tangents[seg][1]]; + let p2 = [p3[0] + sp.in_tangents[j][0], p3[1] + sp.in_tangents[j][1]]; + let lerp = |a: [f64; 2], b: [f64; 2]| [a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t]; + let (a, b, c) = (lerp(p0, p1), lerp(p1, p2), lerp(p2, p3)); + let (d, e) = (lerp(a, b), lerp(b, c)); + let m = lerp(d, e); + sp.out_tangents[seg] = [a[0] - p0[0], a[1] - p0[1]]; + sp.in_tangents[j] = [c[0] - p3[0], c[1] - p3[1]]; + let at = seg + 1; + sp.vertices.insert(at, m); + sp.in_tangents.insert(at, [d[0] - m[0], d[1] - m[1]]); + sp.out_tangents.insert(at, [e[0] - m[0], e[1] - m[1]]); + Some(at) +} + +/// Add Vertex tool: insert a vertex on segment `segment` at parameter `t` (default 0.5). +fn insert_vertex(s: &mut Session, p: &Value) -> Result { + let seg = + p.get("segment").and_then(Value::as_u64).ok_or_else(|| bad("mask.insertVertex", "missing `segment` (index of the segment's first vertex)"))? as usize; + let t = super::f_p(p, "t").unwrap_or(0.5).clamp(0.0, 1.0); + let (_, lid) = layer_p(s, p, "mask.insertVertex")?; + let (uid, i) = edit_path(s, p, "Add Vertex", |sp| split_segment(sp, seg, t).ok_or_else(|| bad("mask.insertVertex", "no such segment")))?; + s.state.selected_vertices = vec![VertexRef { layer: lid, mask: uid, index: i }]; + Ok(json!(i)) +} + fn remove_masks(s: &mut Session, p: &Value, all: bool) -> Result { let (cid, lid) = layer_p(s, p, "mask.remove")?; let key = p.get("mask").cloned(); @@ -263,6 +368,8 @@ pub fn specs() -> Vec { cmd!("mask.selectVertices", "Select Mask Vertices", [], None, "{vertices: [{layer, mask, index}], add?, toggle?}", has_comp, select_vertices), cmd!("mask.moveVertices", "Move Mask Vertices", [], None, "{vertices?: [{layer, mask, index}], delta: [dx,dy], merge?}", has_vertices, move_vertices), cmd!("mask.deleteVertices", "Delete Mask Vertices", [], None, "{vertices?}", has_vertices, delete_vertices), + cmd!("mask.convertVertex", "Convert Vertex", [], None, "{layer?, mask: uid (mask or shape Path item), index, smooth?}", has_comp, convert_vertex), + cmd!("mask.insertVertex", "Add Vertex", [], None, "{layer?, mask: uid (mask or shape Path item), segment, t?: 0..1}", has_comp, insert_vertex), cmd!("mask.remove", "Remove Mask", [], None, "{layer?, mask}", has_layers, |s, p| remove_masks(s, p, false)), cmd!("mask.removeAll", "Remove All Masks", [], None, "{layer?}", has_layers, |s, p| remove_masks(s, p, true)), ] diff --git a/crates/engine/src/commands/mod.rs b/crates/engine/src/commands/mod.rs index d0fcfd21..ccb16935 100644 --- a/crates/engine/src/commands/mod.rs +++ b/crates/engine/src/commands/mod.rs @@ -11,6 +11,7 @@ mod file; mod file_more; mod frontend; mod help; +mod key_transform; mod layer; mod layer_menu; mod layer_time; @@ -31,6 +32,9 @@ mod three_d; mod time; mod track; mod view; +pub mod viewer_cmds; +#[cfg(test)] +pub(crate) use mask::split_segment as split_segment_for_tests; use std::sync::OnceLock; @@ -106,6 +110,8 @@ pub fn command_specs() -> &'static [CommandSpec] { v.extend(layer_menu::specs()); v.extend(animation::specs()); v.extend(view::specs()); + v.extend(viewer_cmds::specs()); + v.extend(key_transform::specs()); v.extend(file_more::specs()); v.extend(lottie::specs()); v.extend(comp_more::specs()); diff --git a/crates/engine/src/commands/paths.rs b/crates/engine/src/commands/paths.rs index 0c0436ab..57736101 100644 --- a/crates/engine/src/commands/paths.rs +++ b/crates/engine/src/commands/paths.rs @@ -63,6 +63,13 @@ fn masks_for(s: &Session, p: &Value) -> Result<(ItemId, Vec<(LayerId, Uid)>)> { v.dedup(); return Ok((cid, v)); } + // A shape layer's Path item by uid. + if let Some(uid) = p.get("mask").and_then(Value::as_u64) { + let (cid, lid) = layer_p(s, p, "path")?; + if s.project.comp(cid).and_then(|c| c.layer(lid)).and_then(|l| l.props.find_group(uid)).is_some_and(|g| g.match_id == "path") { + return Ok((cid, vec![(lid, uid)])); + } + } target_masks(s, p) } @@ -230,7 +237,7 @@ fn free_transform(s: &mut Session, p: &Value) -> Result { for (lid, uid) in &targets { let l = layer_mut(proj, cid, *lid)?; let lt = l.layer_time(t); - let Some(g) = l.props.sub_mut("masks").and_then(|m| m.find_group_mut(*uid)) else { continue }; + let Some(g) = l.props.find_group_mut(*uid).filter(|g| super::mask::is_path_group(g)) else { continue }; let roto = is_roto(g); let Some(pr) = g.get_mut("path") else { continue }; let KV::Path(mut sp) = pr.value_at(lt) else { continue }; diff --git a/crates/engine/src/commands/stubs.rs b/crates/engine/src/commands/stubs.rs index c04f1f98..1134f184 100644 --- a/crates/engine/src/commands/stubs.rs +++ b/crates/engine/src/commands/stubs.rs @@ -56,7 +56,6 @@ pub fn specs() -> Vec { stub!("material.duplicateAssign", "Duplicate and Assign Material", ["Layer", "Material"], "{}"), stub!("view.3d.default", "Default", ["View", "Switch 3D View"], "{}"), stub!("view.splitLockedViewer", "Split with New Locked Viewer", ["View"], "{}"), - stub!("view.res.custom", "Custom...", ["View", "Resolution"], "{}"), // Color management. stub!("view.displayColorManagement", "Use Display Color Management", ["View"], "{}"), stub!("view.simulateOutput", "Simulate Output", [], "{profile}"), diff --git a/crates/engine/src/commands/viewer_cmds.rs b/crates/engine/src/commands/viewer_cmds.rs new file mode 100644 index 00000000..c0161510 --- /dev/null +++ b/crates/engine/src/commands/viewer_cmds.rs @@ -0,0 +1,305 @@ +//! Composition viewer state that agents and the CLI can drive too: snapping, Show Channel and +//! exposure, snapshots, Fast Previews, guides dragged out of the rulers, and the Pen tool for +//! shape layers (`shape.newPath`). + +use effectcraft_keyframe::ShapePath; +use effectcraft_project::LayerSource; +use effectcraft_project::build::{self, Ids}; +use effectcraft_render::RenderOpts; +use serde::{Deserialize, Serialize}; +use serde_json::{Value, json}; + +use super::{CommandSpec, always, b_p, bad, comp_id, f_p, has_comp, merge_p, str_p}; +use crate::viewer::{Channel, Snapshot}; +use crate::{EngineError, Result, Session, VertexRef, cmd}; + +/// Composition ▸ Preview ▸ Fast Previews modes. +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] +pub enum FastPreviews { + #[default] + Off, + AdaptiveResolution, + Draft, + FastDraft, + Wireframe, +} + +impl FastPreviews { + pub const ALL: [FastPreviews; 5] = + [FastPreviews::Off, FastPreviews::AdaptiveResolution, FastPreviews::Draft, FastPreviews::FastDraft, FastPreviews::Wireframe]; + pub fn id(self) -> &'static str { + match self { + FastPreviews::Off => "off", + FastPreviews::AdaptiveResolution => "adaptive", + FastPreviews::Draft => "draft", + FastPreviews::FastDraft => "fastDraft", + FastPreviews::Wireframe => "wireframe", + } + } + pub fn label(self) -> &'static str { + match self { + FastPreviews::Off => "Off (Final Quality)", + FastPreviews::AdaptiveResolution => "Adaptive Resolution", + FastPreviews::Draft => "Draft", + FastPreviews::FastDraft => "Fast Draft", + FastPreviews::Wireframe => "Wireframe", + } + } + pub fn from_name(s: &str) -> Option { + let n = s.to_ascii_lowercase().replace([' ', '_', '-'], ""); + FastPreviews::ALL.into_iter().find(|m| m.id().to_ascii_lowercase() == n || m.label().to_ascii_lowercase().replace(' ', "").starts_with(&n)) + } + /// Render options for the viewer: (draft quality, resolution factor while interacting). + pub fn render(self, interacting: bool) -> (bool, f64) { + match self { + FastPreviews::Off => (false, 1.0), + FastPreviews::AdaptiveResolution => (false, if interacting { 0.25 } else { 1.0 }), + FastPreviews::Draft => (true, 1.0), + FastPreviews::FastDraft => (true, if interacting { 0.25 } else { 1.0 }), + FastPreviews::Wireframe => (true, 1.0), + } + } +} + +/// Viewer display options (Show Channel, exposure, snapshot, Fast Previews). +#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct ViewOptions { + pub channel: Channel, + /// Show Channel ▸ Colorize: single channels shown in their colour instead of gray. + pub colorized: bool, + /// Adjust Exposure, in stops. + pub exposure: f32, + /// Show Snapshot (F5 held): the viewer shows the snapshot instead of the frame. + pub show_snapshot: bool, + pub fast_previews: FastPreviews, +} + +fn snapping(s: &mut Session, p: &Value) -> Result { + s.state.snapping = b_p(p, "value").unwrap_or(!s.state.snapping); + Ok(json!(s.state.snapping)) +} + +fn channel(s: &mut Session, p: &Value) -> Result { + let name = str_p(p, "channel").unwrap_or("rgb"); + let c = Channel::from_name(name).ok_or_else(|| bad("view.channel", format!("unknown channel `{name}` (rgb|red|green|blue|alpha|rgbStraight)")))?; + // Choosing the active single channel again returns to RGB, as in After Effects. + let c = if c == s.state.viewer.channel && c != Channel::Rgb && b_p(p, "toggle").unwrap_or(false) { Channel::Rgb } else { c }; + s.state.viewer.channel = c; + if let Some(v) = b_p(p, "colorized") { + s.state.viewer.colorized = v; + } + Ok(json!({"channel": c.id(), "colorized": s.state.viewer.colorized})) +} + +fn exposure(s: &mut Session, p: &Value) -> Result { + let cur = s.state.viewer.exposure as f64; + let v = match (f_p(p, "stops"), f_p(p, "delta")) { + (Some(v), _) => v, + (None, Some(d)) => cur + d, + _ => return Err(bad("view.exposure", "pass `stops` or `delta`")), + }; + s.state.viewer.exposure = v.clamp(-40.0, 40.0) as f32; + Ok(json!(s.state.viewer.exposure)) +} + +fn reset_exposure(s: &mut Session, _: &Value) -> Result { + s.state.viewer.exposure = 0.0; + Ok(json!(0.0)) +} + +fn take_snapshot(s: &mut Session, p: &Value) -> Result { + let cid = comp_id(s, p)?; + let comp = s.project.comp(cid).ok_or(EngineError::NoComp)?; + let t = s.time_of(cid); + let scale = f_p(p, "scale").unwrap_or(1.0).clamp(0.05, 1.0); + let img = s.render(cid, t, RenderOpts { scale, guides: true, view: s.view_camera(cid).filter(|_| comp.has_3d()), ..Default::default() }); + let (w, h) = (img.width, img.height); + s.snapshot = Some(Snapshot { comp: cid, time: t, scale, image: std::sync::Arc::new(img) }); + s.events.push(crate::Event::ProjectChanged { revision: s.revision }); + Ok(json!({"width": w, "height": h, "time": t.seconds()})) +} + +fn has_snapshot(s: &Session) -> std::result::Result<(), String> { + if s.snapshot.is_some() { Ok(()) } else { Err("take a snapshot first (Shift+F5)".into()) } +} + +fn show_snapshot(s: &mut Session, p: &Value) -> Result { + s.state.viewer.show_snapshot = b_p(p, "value").unwrap_or(!s.state.viewer.show_snapshot); + Ok(json!(s.state.viewer.show_snapshot)) +} + +fn fast_previews(s: &mut Session, p: &Value) -> Result { + let name = str_p(p, "mode").unwrap_or("off"); + let m = + FastPreviews::from_name(name).ok_or_else(|| bad("view.fastPreviewMode", format!("unknown mode `{name}` (off|adaptive|draft|fastDraft|wireframe)")))?; + s.state.viewer.fast_previews = m; + Ok(json!(m.id())) +} + +fn guide_index(s: &Session, p: &Value, cmd: &str) -> Result<(effectcraft_project::ItemId, usize)> { + let cid = comp_id(s, p)?; + let n = s.project.comp(cid).ok_or(EngineError::NoComp)?.guides.len(); + let i = p.get("index").and_then(Value::as_u64).ok_or_else(|| bad(cmd, "missing `index`"))? as usize; + if i >= n { + return Err(bad(cmd, format!("no guide {i} (the comp has {n})"))); + } + Ok((cid, i)) +} + +fn move_guide(s: &mut Session, p: &Value) -> Result { + let (cid, i) = guide_index(s, p, "view.moveGuide")?; + let pos = f_p(p, "position").ok_or_else(|| bad("view.moveGuide", "missing `position` (comp px)"))?; + s.edit("Move Guide", merge_p(p), |proj, _| { + proj.comp_mut(cid).ok_or(EngineError::NoComp)?.guides[i].position = pos; + Ok(()) + })?; + Ok(json!(pos)) +} + +fn remove_guide(s: &mut Session, p: &Value) -> Result { + let (cid, i) = guide_index(s, p, "view.removeGuide")?; + s.edit("Remove Guide", None, |proj, _| { + proj.comp_mut(cid).ok_or(EngineError::NoComp)?.guides.remove(i); + Ok(()) + })?; + Ok(Value::Null) +} + +fn pts(v: Option<&Value>) -> Vec<[f64; 2]> { + v.and_then(Value::as_array).map(|a| a.iter().filter_map(|p| Some([p.get(0)?.as_f64()?, p.get(1)?.as_f64()?])).collect()).unwrap_or_default() +} + +fn rgba(v: Option<&Value>, d: [f64; 4]) -> [f64; 4] { + match v { + Some(Value::Array(a)) => { + let g = |i: usize, d: f64| a.get(i).and_then(Value::as_f64).unwrap_or(d); + [g(0, d[0]), g(1, d[1]), g(2, d[2]), g(3, 1.0)] + } + Some(Value::String(h)) => effectcraft_color::Rgba::from_hex(h).map(|c| [c.r as f64, c.g as f64, c.b as f64, 1.0]).unwrap_or(d), + _ => d, + } +} + +/// Pen tool on a shape layer: a new Shape group ("Shape n" with Path 1, Stroke 1 and Fill 1) on +/// the given / selected shape layer, or on a new shape layer when none is given. Vertices are +/// in the layer's space, or comp space (`space: "comp"`, the default for a new layer). +fn new_path(s: &mut Session, p: &Value) -> Result { + let cid = comp_id(s, p)?; + let comp = s.project.comp(cid).ok_or(EngineError::NoComp)?.clone(); + let mut v = pts(p.get("vertices")); + if v.is_empty() { + return Err(bad("shape.newPath", "need `vertices` [[x,y], …]")); + } + let n = v.len(); + let mut ins = pts(p.get("inTangents")); + let mut outs = pts(p.get("outTangents")); + ins.resize(n, [0.0; 2]); + outs.resize(n, [0.0; 2]); + let target = match p.get("layer") { + Some(l) => Some(super::resolve_layer(&comp, l).ok_or_else(|| bad("shape.newPath", format!("no layer {l}")))?), + None => s.state.selected_layers.iter().copied().find(|l| comp.layer(*l).is_some_and(|l| matches!(l.source, LayerSource::Shape) && !l.switches.locked)), + }; + if let Some(l) = target.and_then(|l| comp.layer(l)) + && !matches!(l.source, LayerSource::Shape) + { + return Err(bad("shape.newPath", "the layer is not a shape layer")); + } + let comp_space = str_p(p, "space").map(|s| s == "comp").unwrap_or(target.is_none()); + if comp_space { + // Comp → layer space of the target (a new layer sits at the comp centre, unrotated). + let inv = match target.and_then(|l| comp.layer(l)) { + Some(l) => { + let ctx = effectcraft_render::EvalCtx::new(&s.project, cid, &comp, s.time_of(cid)); + ctx.layer_to_comp(l).0.inverse().unwrap_or(effectcraft_geom::Mat3::IDENTITY) + } + None => effectcraft_geom::Mat3::translate(effectcraft_geom::vec2(-(comp.width as f64) / 2.0, -(comp.height as f64) / 2.0)), + }; + for q in &mut v { + let r = inv.apply(effectcraft_geom::vec2(q[0], q[1])); + *q = [r.x, r.y]; + } + for t in ins.iter_mut().chain(outs.iter_mut()) { + let r = inv.apply_vec(effectcraft_geom::vec2(t[0], t[1])); + *t = [r.x, r.y]; + } + } + let path = ShapePath { vertices: v, in_tangents: ins, out_tangents: outs, closed: b_p(p, "closed").unwrap_or(false) }; + let fill = (!matches!(p.get("fill"), Some(Value::Null) | Some(Value::Bool(false)))).then(|| rgba(p.get("fill"), [0.25, 0.55, 1.0, 1.0])); + let width = f_p(p, "strokeWidth").unwrap_or(2.0); + let stroke = (width > 0.0).then(|| rgba(p.get("stroke"), [1.0, 1.0, 1.0, 1.0])); + let name = str_p(p, "name").map(str::to_string); + let (lid, group, path_uid) = s.edit("Pen Tool", None, |proj, st| { + let lid = match target { + Some(l) => l, + None => { + let count = comp.layers.iter().filter(|l| matches!(l.source, LayerSource::Shape)).count(); + let lname = name.clone().unwrap_or_else(|| format!("Shape Layer {}", count + 1)); + let l = build::layer(proj, &comp, &lname, LayerSource::Shape, (comp.width, comp.height), None); + super::layer::insert_layer(proj, st, cid, l)? + } + }; + let mut next = proj.next_id; + let l = super::layer_mut(proj, cid, lid)?; + let contents = l.props.sub_mut("contents").ok_or_else(|| bad("shape.newPath", "the layer has no contents"))?; + let k = contents.groups().filter(|g| g.match_id == "group").count(); + let mut ids = Ids(&mut next); + let pg = build::shape_path(&mut ids, path); + let path_uid = pg.uid; + let mut items = vec![pg]; + if let Some(c) = stroke { + items.push(build::shape_stroke(&mut ids, c, width)); + } + if let Some(c) = fill { + items.push(build::shape_fill(&mut ids, c)); + } + let g = build::shape_group(&mut ids, &format!("Shape {}", k + 1), items); + let group = g.uid; + contents.children.insert(0, g.into()); + proj.next_id = next; + st.selected_layers = vec![lid]; + st.selected_vertices = vec![VertexRef { layer: lid, mask: path_uid, index: n - 1 }]; + Ok((lid, group, path_uid)) + })?; + Ok(json!({"layer": lid.0, "group": group, "path": path_uid})) +} + +/// Snapshot image as straight 8-bit RGBA rows (for frontends / `--out`). +pub fn snapshot_rgba8(s: &Session) -> Option<(u32, u32, Vec)> { + let snap = s.snapshot.as_ref()?; + let img = &snap.image; + let mut out = Vec::with_capacity(img.data.len() * 4); + for p in &img.data { + let a = p[3].clamp(0.0, 1.0); + let un = |c: f32| if a > 0.0 { (c / a).clamp(0.0, 1.0) } else { 0.0 }; + out.extend([un(p[0]), un(p[1]), un(p[2]), a].map(|v| (v * 255.0 + 0.5) as u8)); + } + Some((img.width, img.height, out)) +} + +fn shape_layer_or_none(s: &Session) -> std::result::Result<(), String> { + has_comp(s) +} + +pub fn specs() -> Vec { + vec![ + cmd!("view.snapping", "Snapping", ["View"], None, "{value?}", always, snapping), + cmd!("view.channel", "Show Channel", [], None, "{channel: rgb|red|green|blue|alpha|rgbStraight, colorized?, toggle?}", always, channel), + cmd!("view.exposure", "Adjust Exposure", [], None, "{stops? | delta?}", always, exposure), + cmd!("view.resetExposure", "Reset Exposure", [], None, "{}", always, reset_exposure), + cmd!("view.takeSnapshot", "Take Snapshot", [], Some("Shift+F5"), "{comp?, scale?: 0.05..1}", has_comp, take_snapshot), + cmd!("view.showSnapshot", "Show Snapshot", [], None, "{value?}", has_snapshot, show_snapshot), + cmd!("view.fastPreviewMode", "Fast Previews", [], None, "{mode: off|adaptive|draft|fastDraft|wireframe}", always, fast_previews), + cmd!("view.moveGuide", "Move Guide", [], None, "{comp?, index, position (comp px), merge?}", has_comp, move_guide), + cmd!("view.removeGuide", "Remove Guide", [], None, "{comp?, index}", has_comp, remove_guide), + cmd!( + "shape.newPath", + "Pen Tool (Shape Path)", + [], + None, + "{layer?, vertices: [[x,y]…], inTangents?, outTangents?, closed?, space?: comp|layer, fill?: [r,g,b]|#hex|false, stroke?, strokeWidth?, name?}", + shape_layer_or_none, + new_path + ), + ] +} diff --git a/crates/engine/src/lib.rs b/crates/engine/src/lib.rs index 8b5c5f43..7f79c4fb 100644 --- a/crates/engine/src/lib.rs +++ b/crates/engine/src/lib.rs @@ -19,6 +19,7 @@ pub mod render_queue; mod session_settings; pub mod shortcuts; pub mod tracking; +pub mod viewer; use std::sync::Arc; @@ -178,6 +179,9 @@ pub struct EditorState { /// Layer ▸ Mask ▸ Hide Locked Masks (viewer outlines). #[serde(default)] pub hide_locked_masks: bool, + /// Composition viewer display options (Show Channel, exposure, snapshot, Fast Previews). + #[serde(default)] + pub viewer: commands::viewer_cmds::ViewOptions, } fn one_view() -> u8 { @@ -254,6 +258,8 @@ pub struct Session { pub shortcut_table: std::sync::OnceLock, /// Auto-save bookkeeping. pub autosave: autosave::AutoSaveState, + /// The viewer snapshot (Take Snapshot / Show Snapshot). + pub snapshot: Option, } impl Default for Session { @@ -283,6 +289,7 @@ impl Default for Session { ui_commands: vec![], shortcut_table: std::sync::OnceLock::new(), autosave: autosave::AutoSaveState::default(), + snapshot: None, } } } @@ -407,6 +414,11 @@ impl Session { self.state.active_comp.filter(|c| self.project.comp(*c).is_some()) } + /// Current time of a comp. + pub fn time_of(&self, comp: ItemId) -> Tick { + self.state.times.get(&comp).copied().unwrap_or(Tick::ZERO) + } + /// Current time of the active comp. pub fn time(&self) -> Tick { self.state.active_comp.and_then(|c| self.state.times.get(&c).copied()).unwrap_or(Tick::ZERO) @@ -535,6 +547,8 @@ mod tests_text; mod tests_timeline; #[cfg(test)] mod tests_track; +#[cfg(test)] +mod tests_viewer; /// Font families available to text layers (bundled + scanned system fonts). /// Text animation presets: (id, name), for menus. diff --git a/crates/engine/src/menus.rs b/crates/engine/src/menus.rs index 606ad18c..a935ebc0 100644 --- a/crates/engine/src/menus.rs +++ b/crates/engine/src/menus.rs @@ -165,6 +165,7 @@ pub fn checked(s: &Session, command: &str, params: &Value) -> Option { "layer.mask.hideLocked" => Some(s.state.hide_locked_masks), "view.layout" => Some(params.get("views").and_then(Value::as_u64) == Some(s.state.view_layout.max(1) as u64)), "view.shareViewOptions" => Some(s.state.share_view_options), + "view.snapping" => Some(s.state.snapping), "layer.mask.motionBlur" | "layer.mask.featherFalloff" | "path.rotoBezier" => { use effectcraft_project::{FeatherFalloff, GroupKind, MaskMotionBlur}; let GroupKind::Mask { motion_blur, feather_falloff, roto_bezier, .. } = layer?.masks()?.groups().next()?.kind else { return None }; @@ -869,6 +870,7 @@ View --- Show Grid | view.grid Snap to Grid | view.snapToGrid + Snapping | view.snapping --- View Options... | view.options Show Layer Controls | view.layerControls diff --git a/crates/engine/src/tests_viewer.rs b/crates/engine/src/tests_viewer.rs new file mode 100644 index 00000000..d6072c58 --- /dev/null +++ b/crates/engine/src/tests_viewer.rs @@ -0,0 +1,384 @@ +//! Composition viewer parity: snapping maths, channel / exposure display transforms, snapshots, +//! guides, the shape Pen, vertex add / delete / convert, motion-path key and tangent edits and +//! the Graph Editor transform box. Every edit undoes. + +use effectcraft_keyframe::Value as KV; +use effectcraft_project::LayerId; +use effectcraft_time::Tick; +use serde_json::json; + +use crate::Session; +use crate::viewer::{Channel, PRI_GRID, PRI_GUIDE, PRI_LAYER, PRI_VERTEX, SnapKind, SnapSource, SnapTarget, display_transform, snap}; + +fn comp() -> Session { + let mut s = Session::default(); + s.execute("comp.new", json!({"name": "Main", "width": 640, "height": 360, "frameRate": 30, "duration": 10})).unwrap(); + s +} + +fn layer(s: &Session, id: u64) -> effectcraft_project::Layer { + s.active_comp().unwrap().layer(LayerId(id)).unwrap().clone() +} + +// ---------------------------------------------------------------- snapping + +#[test] +fn snap_picks_nearest_target_within_tolerance() { + let t = [SnapTarget::point([100.0, 100.0], PRI_LAYER, SnapSource::Comp), SnapTarget::point([108.0, 100.0], PRI_LAYER, SnapSource::Comp)]; + let s = snap(&[[103.0, 101.0]], &t, 10.0).unwrap(); + assert_eq!(s.delta, [-3.0, -1.0]); + assert_eq!(s.at, [100.0, 100.0]); + // Out of tolerance: nothing. + assert!(snap(&[[130.0, 100.0]], &t, 10.0).is_none()); + // Of several sources, the one nearest a target snaps. + let s = snap(&[[0.0, 0.0], [107.0, 100.0]], &t, 10.0).unwrap(); + assert_eq!(s.delta, [1.0, 0.0]); +} + +#[test] +fn snap_lines_snap_axes_independently_and_priority_breaks_ties() { + let t = [ + SnapTarget::vline(50.0, PRI_GRID, SnapSource::Grid), + SnapTarget::vline(54.0, PRI_GUIDE, SnapSource::Guide), + SnapTarget::hline(20.0, PRI_GRID, SnapSource::Grid), + ]; + // x snaps to the nearest vertical line (equal distance: the guide wins over the grid), y to + // the horizontal one. + let s = snap(&[[52.0, 23.0]], &t, 5.0).unwrap(); + assert_eq!(s.delta, [2.0, -3.0]); + assert_eq!(s.hits.len(), 2); + assert_eq!(s.hits[0].source, SnapSource::Guide); + assert_eq!(s.at, [54.0, 20.0]); + // A point at the same distance as a line beats it (it snaps both axes). + let t2 = [SnapTarget::vline(10.0, PRI_GUIDE, SnapSource::Guide), SnapTarget::point([10.0, 12.0], PRI_VERTEX, SnapSource::Vertex(LayerId(1)))]; + let s = snap(&[[12.0, 12.0]], &t2, 5.0).unwrap(); + assert_eq!(s.hits[0].kind, SnapKind::Point); + assert_eq!(s.delta, [-2.0, 0.0]); + // Equal point distances: lower priority value (vertex) wins over a layer feature. + let t3 = + [SnapTarget::point([0.0, 3.0], PRI_LAYER, SnapSource::Layer(LayerId(2))), SnapTarget::point([3.0, 0.0], PRI_VERTEX, SnapSource::Vertex(LayerId(3)))]; + assert_eq!(snap(&[[0.0, 0.0]], &t3, 5.0).unwrap().hits[0].source, SnapSource::Vertex(LayerId(3))); +} + +#[test] +fn snap_targets_cover_layers_comp_guides_and_grid() { + let mut s = comp(); + let a = s.execute("layer.newSolid", json!({"color": "#ff0000", "width": 100, "height": 50})).unwrap()["layer"].as_u64().unwrap(); + let b = s.execute("layer.newSolid", json!({"color": "#00ff00", "width": 40, "height": 40})).unwrap()["layer"].as_u64().unwrap(); + s.execute("view.addGuide", json!({"orientation": "vertical", "position": 77})).unwrap(); + let cid = s.active_comp_id().unwrap(); + let comp = s.project.comp(cid).unwrap().clone(); + let ctx = effectcraft_render::EvalCtx::new(&s.project, cid, &comp, Tick::ZERO); + let opts = crate::viewer::SnapOptions { guides: true, grid: true, grid_spacing: 100.0 }; + let t = crate::viewer::targets(&ctx, &[LayerId(b)], opts); + // Layer a's corner (270, 155) is a target; layer b (dragged) is not. + assert!(t.iter().any(|x| x.source == SnapSource::Layer(LayerId(a)) && x.kind == SnapKind::Point && x.pos == [270.0, 155.0])); + assert!(!t.iter().any(|x| x.source == SnapSource::Layer(LayerId(b)))); + assert!(t.iter().any(|x| x.source == SnapSource::Guide && x.pos[0] == 77.0)); + assert!(t.iter().any(|x| x.source == SnapSource::Grid && x.kind == SnapKind::HLine && x.pos[1] == 300.0)); + assert!(t.iter().any(|x| x.source == SnapSource::Comp && x.kind == SnapKind::Point && x.pos == [320.0, 180.0])); + // Dragging a corner near layer a's corner lands on it (edges snap x and y). + let hit = snap(&[[272.0, 157.0]], &t, 6.0).unwrap(); + assert_eq!(hit.at, [270.0, 155.0]); + assert_eq!(hit.delta, [-2.0, -2.0]); +} + +// ---------------------------------------------------------------- channels, exposure, snapshot + +#[test] +fn channel_and_exposure_pixel_transforms() { + // Premultiplied: straight (200, 100, 50) at 50% alpha. + let px = [100u8, 50, 25, 128]; + let run = |c: Channel, col: bool, stops: f32| { + let mut v = [px]; + display_transform(&mut v, c, col, stops); + v[0] + }; + assert_eq!(run(Channel::Rgb, false, 0.0), px); + assert_eq!(run(Channel::Red, false, 0.0), [100, 100, 100, 255]); + assert_eq!(run(Channel::Green, true, 0.0), [0, 50, 0, 255]); + assert_eq!(run(Channel::Blue, false, 0.0), [25, 25, 25, 255]); + assert_eq!(run(Channel::Alpha, false, 0.0), [128, 128, 128, 255]); + let st = run(Channel::RgbStraight, false, 0.0); + assert!((st[0] as i32 - 199).abs() <= 1 && (st[1] as i32 - 100).abs() <= 1 && st[3] == 255, "{st:?}"); + // +1 stop doubles linear light: sRGB 50% gray → about 69%; -1 stop darkens; 0 is identity. + let mut g = [[128u8, 128, 128, 255]]; + display_transform(&mut g, Channel::Rgb, false, 1.0); + assert!((174..=178).contains(&g[0][0]), "{:?}", g[0]); + let mut g = [[128u8, 128, 128, 255]]; + display_transform(&mut g, Channel::Rgb, false, -1.0); + assert!((92..=96).contains(&g[0][0]), "{:?}", g[0]); + assert_eq!(crate::viewer::exposure_lut(0.0)[200], 200); + // Exposure applies to a single channel too, and keeps alpha untouched in RGB. + assert!(run(Channel::Red, false, 1.0)[0] > 100); + assert_eq!(run(Channel::Rgb, false, 2.0)[3], 128); +} + +#[test] +fn channel_exposure_and_fast_preview_commands() { + let mut s = comp(); + s.execute("view.channel", json!({"channel": "alpha"})).unwrap(); + assert_eq!(s.state.viewer.channel, Channel::Alpha); + s.execute("view.channel", json!({"channel": "alpha", "toggle": true})).unwrap(); + assert_eq!(s.state.viewer.channel, Channel::Rgb); + s.execute("view.channel", json!({"channel": "RGB Straight", "colorized": true})).unwrap(); + assert_eq!(s.state.viewer.channel, Channel::RgbStraight); + assert!(s.state.viewer.colorized); + s.execute("view.exposure", json!({"stops": 1.5})).unwrap(); + s.execute("view.exposure", json!({"delta": -0.5})).unwrap(); + assert_eq!(s.state.viewer.exposure, 1.0); + s.execute("view.resetExposure", json!({})).unwrap(); + assert_eq!(s.state.viewer.exposure, 0.0); + s.execute("view.fastPreviewMode", json!({"mode": "fastDraft"})).unwrap(); + assert_eq!(s.state.viewer.fast_previews, crate::commands::viewer_cmds::FastPreviews::FastDraft); + assert!(s.execute("view.fastPreviewMode", json!({"mode": "nope"})).is_err()); + let was = s.state.snapping; + s.execute("view.snapping", json!({})).unwrap(); + assert_eq!(s.state.snapping, !was); +} + +#[test] +fn snapshot_store_and_restore() { + let mut s = comp(); + assert!(!s.is_enabled("view.showSnapshot")); + s.execute("layer.newSolid", json!({"color": "#ff0000", "width": 640, "height": 360})).unwrap(); + let r = s.execute("view.takeSnapshot", json!({"scale": 0.25})).unwrap(); + assert_eq!((r["width"].as_u64(), r["height"].as_u64()), (Some(160), Some(90))); + // The project changes; the snapshot keeps the old frame. + s.execute("layer.newSolid", json!({"color": "#0000ff", "width": 640, "height": 360})).unwrap(); + let snap = s.snapshot.clone().unwrap(); + assert_eq!(snap.image.get(10, 10), [1.0, 0.0, 0.0, 1.0]); + let now = s.render(s.active_comp_id().unwrap(), Tick::ZERO, effectcraft_render::RenderOpts { scale: 0.25, ..Default::default() }); + assert_eq!(now.get(10, 10), [0.0, 0.0, 1.0, 1.0]); + s.execute("view.showSnapshot", json!({"value": true})).unwrap(); + assert!(s.state.viewer.show_snapshot); + let (w, h, rgba) = crate::commands::viewer_cmds::snapshot_rgba8(&s).unwrap(); + assert_eq!((w, h), (160, 90)); + assert_eq!(&rgba[0..4], &[255, 0, 0, 255]); + s.execute("edit.purge", json!({"what": "snapshot"})).unwrap(); + assert!(s.snapshot.is_none() && !s.state.viewer.show_snapshot); +} + +#[test] +fn guides_move_and_remove_with_undo() { + let mut s = comp(); + s.execute("view.addGuide", json!({"orientation": "horizontal", "position": 40})).unwrap(); + s.execute("view.moveGuide", json!({"index": 0, "position": 90, "merge": "g"})).unwrap(); + s.execute("view.moveGuide", json!({"index": 0, "position": 95, "merge": "g"})).unwrap(); + assert_eq!(s.active_comp().unwrap().guides[0].position, 95.0); + s.undo(); + assert_eq!(s.active_comp().unwrap().guides[0].position, 40.0); + s.execute("view.removeGuide", json!({"index": 0})).unwrap(); + assert!(s.active_comp().unwrap().guides.is_empty()); + assert!(s.execute("view.removeGuide", json!({"index": 0})).is_err()); + s.undo(); + assert_eq!(s.active_comp().unwrap().guides.len(), 1); +} + +#[test] +fn region_of_interest_renders_and_crops() { + let mut s = comp(); + s.execute("layer.newSolid", json!({"color": "#ff8000", "width": 200, "height": 100})).unwrap(); + s.execute("view.setRegionOfInterest", json!({"rect": [200, 100, 240, 160]})).unwrap(); + let cid = s.active_comp_id().unwrap(); + let full = s.render(cid, Tick::ZERO, Default::default()); + let roi = s.render(cid, Tick::ZERO, effectcraft_render::RenderOpts { roi: s.state.region_of_interest, ..Default::default() }); + assert_eq!((roi.width, roi.height), (240, 160)); + for (x, y) in [(0, 0), (30, 50), (239, 159), (119, 79)] { + assert_eq!(roi.get(x, y), full.get(x + 200, y + 100)); + } + s.execute("comp.cropToRegionOfInterest", json!({})).unwrap(); + let c = s.active_comp().unwrap(); + assert_eq!((c.width, c.height), (240, 160)); + let cropped = s.render(cid, Tick::ZERO, Default::default()); + assert_eq!(cropped.get(30, 50), roi.get(30, 50)); + assert_eq!(cropped.get(30, 50)[3], 1.0); +} + +// ---------------------------------------------------------------- shape pen and vertices + +fn shape_path(s: &Session, lid: u64, uid: u64) -> effectcraft_keyframe::ShapePath { + let l = layer(s, lid); + l.props.find_group(uid).unwrap().get("path").unwrap().value.as_path().unwrap().clone() +} + +#[test] +fn shape_pen_builds_shape_group_and_renders() { + let mut s = comp(); + // Nothing selected: a new shape layer; vertices in comp space. + let r = s + .execute("shape.newPath", json!({"vertices": [[100, 100], [300, 100], [300, 250], [100, 250]], "closed": true, "fill": [0, 1, 0], "strokeWidth": 0})) + .unwrap(); + let (lid, group, path) = (r["layer"].as_u64().unwrap(), r["group"].as_u64().unwrap(), r["path"].as_u64().unwrap()); + let l = layer(&s, lid); + assert!(matches!(l.source, effectcraft_project::LayerSource::Shape)); + let g = l.props.find_group(group).unwrap(); + assert_eq!(g.name, "Shape 1"); + let items: Vec<&str> = g.sub("contents").unwrap().groups().map(|x| x.match_id.as_str()).collect(); + assert_eq!(items, vec!["path", "fill"]); + assert_eq!(g.sub("contents").unwrap().groups().next().unwrap().name, "Path 1"); + // Layer space: the layer sits at the comp centre. + assert_eq!(shape_path(&s, lid, path).vertices[0], [100.0 - 320.0, 100.0 - 180.0]); + let img = s.render(s.active_comp_id().unwrap(), Tick::ZERO, Default::default()); + assert_eq!(img.get(200, 170), [0.0, 1.0, 0.0, 1.0]); + assert_eq!(img.get(50, 50)[3], 0.0); + // With the shape layer selected the Pen adds a second group (with a stroke) to it. + let r2 = s.execute("shape.newPath", json!({"vertices": [[0, 0], [10, 10]], "space": "layer"})).unwrap(); + assert_eq!(r2["layer"].as_u64(), Some(lid)); + let l = layer(&s, lid); + let names: Vec = l.props.sub("contents").unwrap().groups().map(|g| g.name.clone()).collect(); + assert_eq!(names, vec!["Shape 2", "Shape 1"]); + let g2 = l.props.find_group(r2["group"].as_u64().unwrap()).unwrap(); + let items: Vec<&str> = g2.sub("contents").unwrap().groups().map(|x| x.match_id.as_str()).collect(); + assert_eq!(items, vec!["path", "stroke", "fill"]); + s.undo(); + assert_eq!(layer(&s, lid).props.sub("contents").unwrap().groups().count(), 1); + // Not a shape layer → error. + let sol = s.execute("layer.newSolid", json!({"color": "#ffffff"})).unwrap()["layer"].as_u64().unwrap(); + assert!(s.execute("shape.newPath", json!({"layer": sol, "vertices": [[0, 0]]})).is_err()); +} + +#[test] +fn vertex_add_delete_convert_on_shape_paths_and_masks_undo() { + let mut s = comp(); + let r = s.execute("shape.newPath", json!({"vertices": [[0, 0], [100, 0], [100, 100]], "space": "layer"})).unwrap(); + let (lid, path) = (r["layer"].as_u64().unwrap(), r["path"].as_u64().unwrap()); + // Pen continues the path: add a vertex, move it, close. + s.execute("mask.addVertex", json!({"layer": lid, "mask": path, "point": [0, 100]})).unwrap(); + s.execute("mask.setClosed", json!({"layer": lid, "mask": path, "closed": true})).unwrap(); + let sp = shape_path(&s, lid, path); + assert_eq!(sp.vertices.len(), 4); + assert!(sp.closed); + // Add Vertex on segment 0 at t=0.5 keeps the line and inserts its midpoint. + let i = s.execute("mask.insertVertex", json!({"layer": lid, "mask": path, "segment": 0})).unwrap(); + assert_eq!(i.as_u64(), Some(1)); + assert_eq!(shape_path(&s, lid, path).vertices[1], [50.0, 0.0]); + // Convert Vertex: corner → smooth → corner. + let c = s.execute("mask.convertVertex", json!({"layer": lid, "mask": path, "index": 2})).unwrap(); + assert_eq!(c["smooth"], json!(true)); + let sp = shape_path(&s, lid, path); + // Neighbours (50,0) and (100,100): tangent along them, a sixth of the way. + assert_eq!(sp.out_tangents[2], [50.0 / 6.0, 100.0 / 6.0]); + assert_eq!(sp.in_tangents[2], [-50.0 / 6.0, -100.0 / 6.0]); + s.execute("mask.convertVertex", json!({"layer": lid, "mask": path, "index": 2})).unwrap(); + assert_eq!(shape_path(&s, lid, path).out_tangents[2], [0.0, 0.0]); + s.undo(); + assert_ne!(shape_path(&s, lid, path).out_tangents[2], [0.0, 0.0]); + // Delete Vertex (selection-based). + s.execute("mask.selectVertices", json!({"vertices": [{"layer": lid, "mask": path, "index": 1}]})).unwrap(); + s.execute("mask.deleteVertices", json!({})).unwrap(); + assert_eq!(shape_path(&s, lid, path).vertices.len(), 4); + s.undo(); + assert_eq!(shape_path(&s, lid, path).vertices.len(), 5); + // Free transform of the whole shape path (scale 200% about the bbox centre). + s.execute("mask.selectVertices", json!({"vertices": []})).unwrap(); + s.execute("path.freeTransform", json!({"layer": lid, "mask": path, "scale": 200})).unwrap(); + assert_eq!(shape_path(&s, lid, path).vertices[0], [-50.0, -50.0]); + // Masks work through the same commands. + let sol = s.execute("layer.newSolid", json!({"color": "#ffffff"})).unwrap()["layer"].as_u64().unwrap(); + let m = s.execute("mask.new", json!({"layer": sol, "vertices": [[0, 0], [100, 0], [100, 100]], "closed": true})).unwrap()["mask"].as_u64().unwrap(); + s.execute("mask.insertVertex", json!({"layer": sol, "mask": m, "segment": 2, "t": 0.5})).unwrap(); + let l = layer(&s, sol); + let mp = l.masks().unwrap().find_group(m).unwrap().get("path").unwrap().value.as_path().unwrap().clone(); + assert_eq!(mp.vertices.len(), 4); + assert_eq!(mp.vertices[3], [50.0, 50.0]); +} + +#[test] +fn split_segment_keeps_curve_shape() { + use effectcraft_keyframe::ShapePath; + let mut sp = ShapePath { + vertices: vec![[0.0, 0.0], [100.0, 0.0]], + in_tangents: vec![[0.0; 2], [0.0, -50.0]], + out_tangents: vec![[30.0, 60.0], [0.0; 2]], + closed: false, + }; + let seg = |sp: &ShapePath, i: usize, t: f64| { + let (a, d) = (sp.vertices[i], sp.vertices[i + 1]); + let b = [a[0] + sp.out_tangents[i][0], a[1] + sp.out_tangents[i][1]]; + let c = [d[0] + sp.in_tangents[i + 1][0], d[1] + sp.in_tangents[i + 1][1]]; + let u = 1.0 - t; + let f = |k: usize| u * u * u * a[k] + 3.0 * u * u * t * b[k] + 3.0 * u * t * t * c[k] + t * t * t * d[k]; + [f(0), f(1)] + }; + let before: Vec<[f64; 2]> = (0..=2000).map(|i| seg(&sp, 0, i as f64 / 2000.0)).collect(); + crate::commands::split_segment_for_tests(&mut sp, 0, 0.3); + assert_eq!(sp.vertices.len(), 3); + for i in 0..2 { + for j in 0..=50 { + let p = seg(&sp, i, j as f64 / 50.0); + let d = before.iter().map(|q| ((p[0] - q[0]).powi(2) + (p[1] - q[1]).powi(2)).sqrt()).fold(f64::MAX, f64::min); + assert!(d < 0.2, "{p:?} {d}"); + } + } +} + +// ---------------------------------------------------------------- motion paths and graph box + +fn animated_position(s: &mut Session) -> u64 { + let lid = s.execute("layer.newSolid", json!({"color": "#ffffff", "width": 50, "height": 50})).unwrap()["layer"].as_u64().unwrap(); + for (t, v) in [(0.0, [100.0, 100.0]), (1.0, [300.0, 100.0]), (2.0, [300.0, 300.0])] { + s.execute("prop.addKey", json!({"layer": lid, "path": "transform/position", "time": t, "value": [v[0], v[1], 0.0]})).unwrap(); + } + lid +} + +#[test] +fn motion_path_key_drag_edits_value_and_tangents() { + let mut s = comp(); + let lid = animated_position(&mut s); + // Dragging the middle key's dot sets that key's value (merged drag = one undo step). + s.execute("keys.set", json!({"layer": lid, "path": "transform/position", "time": 1.0, "value": [310, 120, 0], "merge": "mp"})).unwrap(); + s.execute("keys.set", json!({"layer": lid, "path": "transform/position", "time": 1.0, "value": [320, 140, 0], "merge": "mp"})).unwrap(); + let pos = |s: &Session| layer(s, lid).props.prop("transform/position").unwrap().clone(); + assert_eq!(pos(&s).keys[1].value, KV::Vec3([320.0, 140.0, 0.0])); + assert_eq!(pos(&s).keys[0].value, KV::Vec3([100.0, 100.0, 0.0])); + // Tangent drag: out handle set, in mirrored, no longer auto. + s.execute("keys.setSpatialTangents", json!({"layer": lid, "path": "transform/position", "time": 1.0, "out": [40, 0], "merge": "tg"})).unwrap(); + let k = pos(&s).keys[1].clone(); + assert_eq!(k.spatial_out, [40.0, 0.0, 0.0]); + assert_eq!(k.spatial_in, [-40.0, 0.0, 0.0]); + assert!(!k.spatial_auto); + // The motion path passes through the key and bulges along the tangent. + let mid = pos(&s).value_at(Tick::from_seconds_f64(1.0)).as_vec3(); + assert_eq!([mid[0], mid[1]], [320.0, 140.0]); + // Alt-drag (break): only the in handle changes. + s.execute("keys.setSpatialTangents", json!({"layer": lid, "path": "transform/position", "time": 1.0, "in": [0, -30], "break": true})).unwrap(); + let k = pos(&s).keys[1].clone(); + assert_eq!((k.spatial_in, k.spatial_out), ([0.0, -30.0, 0.0], [40.0, 0.0, 0.0])); + s.undo(); + s.undo(); + assert!(pos(&s).keys[1].spatial_auto); + s.undo(); + assert_eq!(pos(&s).keys[1].value, KV::Vec3([300.0, 100.0, 0.0])); +} + +#[test] +fn graph_transform_box_scales_key_times_and_values() { + let mut s = comp(); + let lid = s.execute("layer.newSolid", json!({"color": "#ffffff"})).unwrap()["layer"].as_u64().unwrap(); + for (t, v) in [(0.0, 0.0), (1.0, 50.0), (2.0, 100.0)] { + s.execute("prop.addKey", json!({"layer": lid, "path": "transform/opacity", "time": t, "value": v})).unwrap(); + } + let uid = layer(&s, lid).props.prop("transform/opacity").unwrap().uid; + let keys: Vec<_> = [0.0, 1.0, 2.0].iter().map(|t| json!({"layer": lid, "prop": uid, "time": t})).collect(); + s.execute("keys.select", json!({"keys": keys})).unwrap(); + // Time: scale 2× about 0 s; value: scale 0.5 about 100. + s.execute("keys.transform", json!({"timeScale": 2.0, "timeAnchor": 0.0, "valueScale": 0.5, "valueAnchor": 100.0})).unwrap(); + let p = layer(&s, lid).props.prop("transform/opacity").unwrap().clone(); + let got: Vec<(f64, f64)> = p.keys.iter().map(|k| (k.time.seconds(), k.value.as_f64())).collect(); + assert_eq!(got, vec![(0.0, 50.0), (2.0, 75.0), (4.0, 100.0)]); + assert_eq!(s.state.selected_keys.len(), 3); + // Alt-drag of the last key in the timeline: scale the group about the first key; times + // land on frames. + s.execute("keys.transform", json!({"timeScale": 0.501, "timeAnchor": 0.0})).unwrap(); + let p = layer(&s, lid).props.prop("transform/opacity").unwrap().clone(); + let got: Vec = p.keys.iter().map(|k| k.time.seconds()).collect(); + assert_eq!(got, vec![0.0, 1.0, 2.0]); + s.undo(); + s.undo(); + let p = layer(&s, lid).props.prop("transform/opacity").unwrap().clone(); + assert_eq!(p.keys.iter().map(|k| k.time.seconds()).collect::>(), vec![0.0, 1.0, 2.0]); + assert_eq!(p.keys[1].value.as_f64(), 50.0); + assert!(s.execute("keys.transform", json!({"timeScale": 0})).is_err()); +} diff --git a/crates/engine/src/viewer.rs b/crates/engine/src/viewer.rs new file mode 100644 index 00000000..0c002fa1 --- /dev/null +++ b/crates/engine/src/viewer.rs @@ -0,0 +1,372 @@ +//! Composition viewer maths shared by the frontends and tests: snapping (targets, tolerance and +//! priority), the Show Channel / Exposure display transforms, and the viewer snapshot. +//! +//! Nothing here touches the project; edits go through commands. + +use std::sync::Arc; + +use effectcraft_geom::vec2; +use effectcraft_project::{Layer, LayerId}; +use effectcraft_raster::Image; +use effectcraft_render::EvalCtx; +use effectcraft_time::Tick; +use serde::{Deserialize, Serialize}; + +// ---------------------------------------------------------------- snapping + +/// What a snap target is: a point (snaps both axes) or an axis-aligned line. +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +pub enum SnapKind { + Point, + /// A vertical line at `pos[0]` (snaps x only). + VLine, + /// A horizontal line at `pos[1]` (snaps y only). + HLine, +} + +/// Where a snap target comes from (for feedback: the highlighted box / cross). +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +pub enum SnapSource { + Layer(LayerId), + Comp, + Guide, + Grid, + /// A mask or shape path vertex of a layer. + Vertex(LayerId), +} + +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +pub struct SnapTarget { + pub kind: SnapKind, + /// Comp pixels. + pub pos: [f64; 2], + /// Lower wins when two targets are equally near (vertices and layer features before + /// guides, guides before the grid). + pub priority: u8, + pub source: SnapSource, +} + +impl SnapTarget { + pub fn point(pos: [f64; 2], priority: u8, source: SnapSource) -> SnapTarget { + SnapTarget { kind: SnapKind::Point, pos, priority, source } + } + pub fn vline(x: f64, priority: u8, source: SnapSource) -> SnapTarget { + SnapTarget { kind: SnapKind::VLine, pos: [x, 0.0], priority, source } + } + pub fn hline(y: f64, priority: u8, source: SnapSource) -> SnapTarget { + SnapTarget { kind: SnapKind::HLine, pos: [0.0, y], priority, source } + } +} + +/// Priorities of the standard targets. +pub const PRI_VERTEX: u8 = 0; +pub const PRI_LAYER: u8 = 1; +pub const PRI_COMP: u8 = 2; +pub const PRI_GUIDE: u8 = 3; +pub const PRI_GRID: u8 = 4; + +/// A snap: move the dragged feature by `delta` (comp pixels); `hits` are the targets it lands on. +#[derive(Clone, Debug, PartialEq)] +pub struct Snap { + pub delta: [f64; 2], + pub hits: Vec, + /// The snapped feature position. + pub at: [f64; 2], +} + +fn better(a: (f64, u8), b: (f64, u8)) -> bool { + if (a.0 - b.0).abs() < 1e-6 { a.1 < b.1 } else { a.0 < b.0 } +} + +/// Snap feature points `sources` (comp pixels) to the nearest target within `tol` comp pixels. +/// A point target snaps both axes and wins when it is at least as near as the best lines; +/// otherwise the nearest vertical and horizontal lines snap x and y independently. Ties go to +/// the lower priority value. +pub fn snap(sources: &[[f64; 2]], targets: &[SnapTarget], tol: f64) -> Option { + let mut best_pt: Option<((f64, u8), [f64; 2], SnapTarget)> = None; + let mut best_x: Option<((f64, u8), [f64; 2], SnapTarget)> = None; + let mut best_y: Option<((f64, u8), [f64; 2], SnapTarget)> = None; + for s in sources { + for t in targets { + let (d, slot) = match t.kind { + SnapKind::Point => (((t.pos[0] - s[0]).powi(2) + (t.pos[1] - s[1]).powi(2)).sqrt(), &mut best_pt), + SnapKind::VLine => ((t.pos[0] - s[0]).abs(), &mut best_x), + SnapKind::HLine => ((t.pos[1] - s[1]).abs(), &mut best_y), + }; + if d > tol { + continue; + } + let key = (d, t.priority); + if slot.as_ref().is_none_or(|(k, _, _)| better(key, *k)) { + *slot = Some((key, *s, *t)); + } + } + } + let line_best = [best_x.map(|b| b.0.0), best_y.map(|b| b.0.0)].into_iter().flatten().fold(f64::INFINITY, f64::min); + if let Some((k, s, t)) = best_pt + && k.0 <= line_best + 1e-9 + { + return Some(Snap { delta: [t.pos[0] - s[0], t.pos[1] - s[1]], hits: vec![t], at: t.pos }); + } + if best_x.is_none() && best_y.is_none() { + return None; + } + let mut delta = [0.0; 2]; + let mut hits = vec![]; + let mut at = [f64::NAN; 2]; + if let Some((_, s, t)) = best_x { + delta[0] = t.pos[0] - s[0]; + at = [t.pos[0], s[1]]; + hits.push(t); + } + if let Some((_, s, t)) = best_y { + delta[1] = t.pos[1] - s[1]; + at = if at[0].is_nan() { [s[0], t.pos[1]] } else { [at[0], t.pos[1]] }; + hits.push(t); + } + Some(Snap { delta, hits, at }) +} + +/// Snap features of a layer in comp space: corners, edge midpoints, centre and anchor point +/// (2D layers; `None` for layers without bounds). +pub fn layer_features(ctx: &EvalCtx, layer: &Layer) -> Vec<[f64; 2]> { + let mut out = vec![]; + let (m, _) = ctx.layer_to_comp(layer); + if let Some(b) = effectcraft_render::content_bounds(ctx, layer) { + let (cx, cy) = ((b[0] + b[2]) / 2.0, (b[1] + b[3]) / 2.0); + for p in [[b[0], b[1]], [b[2], b[1]], [b[2], b[3]], [b[0], b[3]], [cx, b[1]], [b[2], cy], [cx, b[3]], [b[0], cy], [cx, cy]] { + let q = m.apply(vec2(p[0], p[1])); + out.push([q.x, q.y]); + } + } + if let Some(tr) = layer.transform() { + let a = ctx.v3(layer, tr, "anchor", [0.0; 3]); + let q = m.apply(vec2(a[0], a[1])); + out.push([q.x, q.y]); + } + out +} + +/// Mask and shape-path vertices of a layer in comp space. +pub fn layer_vertices(ctx: &EvalCtx, layer: &Layer) -> Vec<[f64; 2]> { + let (m, _) = ctx.layer_to_comp(layer); + let mut out = vec![]; + if let Some(masks) = layer.masks() { + for g in masks.groups() { + if let Some(sp) = g.get("path").map(|pr| ctx.value(layer, pr)).and_then(|v| v.as_path().cloned()) { + out.extend(sp.vertices.iter().map(|v| { + let q = m.apply(vec2(v[0], v[1])); + [q.x, q.y] + })); + } + } + } + for (uid, sp) in shape_paths(ctx, layer) { + let pm = m * effectcraft_render::shapes::item_matrix(ctx, layer, uid).unwrap_or(effectcraft_geom::Mat3::IDENTITY); + out.extend(sp.vertices.iter().map(|v| { + let q = pm.apply(vec2(v[0], v[1])); + [q.x, q.y] + })); + } + out +} + +/// Shape-layer Path items (uid, evaluated path in the item's group space). +pub fn shape_paths(ctx: &EvalCtx, layer: &Layer) -> Vec<(u64, effectcraft_keyframe::ShapePath)> { + let mut out = vec![]; + let Some(c) = layer.props.sub("contents") else { return out }; + fn walk(ctx: &EvalCtx, layer: &Layer, g: &effectcraft_project::PropGroup, out: &mut Vec<(u64, effectcraft_keyframe::ShapePath)>) { + for sub in g.groups() { + if sub.match_id == "path" + && let Some(sp) = sub.get("path").map(|pr| ctx.value(layer, pr)).and_then(|v| v.as_path().cloned()) + { + out.push((sub.uid, sp)); + } else if sub.match_id == "group" || sub.match_id == "contents" { + walk(ctx, layer, sub, out); + } + } + } + walk(ctx, layer, c, &mut out); + out +} + +/// Which target families are on. +#[derive(Clone, Copy, Debug, Default)] +pub struct SnapOptions { + pub guides: bool, + pub grid: bool, + pub grid_spacing: f64, +} + +/// Snap targets of a comp at the context time: other layers' features and vertices, comp edges +/// and centre, and (when on) guides and grid lines. Layers in `exclude` (the dragged ones) are +/// skipped. +pub fn targets(ctx: &EvalCtx, exclude: &[LayerId], opts: SnapOptions) -> Vec { + let comp = ctx.comp; + let (w, h) = (comp.width as f64, comp.height as f64); + let mut out = vec![ + SnapTarget::vline(0.0, PRI_COMP, SnapSource::Comp), + SnapTarget::vline(w, PRI_COMP, SnapSource::Comp), + SnapTarget::vline(w / 2.0, PRI_COMP, SnapSource::Comp), + SnapTarget::hline(0.0, PRI_COMP, SnapSource::Comp), + SnapTarget::hline(h, PRI_COMP, SnapSource::Comp), + SnapTarget::hline(h / 2.0, PRI_COMP, SnapSource::Comp), + SnapTarget::point([w / 2.0, h / 2.0], PRI_COMP, SnapSource::Comp), + ]; + for l in comp.layers.iter().filter(|l| l.is_active_at(ctx.time) && !exclude.contains(&l.id) && !l.is_camera() && !l.is_light() && !l.is_3d()) { + let f = layer_features(ctx, l); + // Edges of unrotated layers are lines too. + if f.len() >= 9 && (f[0][1] - f[1][1]).abs() < 1e-6 && (f[0][0] - f[3][0]).abs() < 1e-6 { + for x in [f[0][0], f[1][0]] { + out.push(SnapTarget { kind: SnapKind::VLine, pos: [x, f[0][1]], priority: PRI_LAYER, source: SnapSource::Layer(l.id) }); + } + for y in [f[0][1], f[3][1]] { + out.push(SnapTarget { kind: SnapKind::HLine, pos: [f[0][0], y], priority: PRI_LAYER, source: SnapSource::Layer(l.id) }); + } + } + out.extend(f.into_iter().map(|p| SnapTarget::point(p, PRI_LAYER, SnapSource::Layer(l.id)))); + out.extend(layer_vertices(ctx, l).into_iter().map(|p| SnapTarget::point(p, PRI_VERTEX, SnapSource::Vertex(l.id)))); + } + if opts.guides { + for g in &comp.guides { + out.push(if g.vertical { + SnapTarget::vline(g.position, PRI_GUIDE, SnapSource::Guide) + } else { + SnapTarget::hline(g.position, PRI_GUIDE, SnapSource::Guide) + }); + } + } + if opts.grid && opts.grid_spacing >= 1.0 { + let s = opts.grid_spacing; + let mut x = 0.0; + while x <= w + 1e-9 && out.len() < 20_000 { + out.push(SnapTarget::vline(x, PRI_GRID, SnapSource::Grid)); + x += s; + } + let mut y = 0.0; + while y <= h + 1e-9 && out.len() < 40_000 { + out.push(SnapTarget::hline(y, PRI_GRID, SnapSource::Grid)); + y += s; + } + } + out +} + +// ---------------------------------------------------------------- channels and exposure + +/// Show Channel and Color Management Settings. +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] +pub enum Channel { + #[default] + Rgb, + Red, + Green, + Blue, + Alpha, + RgbStraight, +} + +impl Channel { + pub const ALL: [Channel; 6] = [Channel::Rgb, Channel::Red, Channel::Green, Channel::Blue, Channel::Alpha, Channel::RgbStraight]; + pub fn id(self) -> &'static str { + match self { + Channel::Rgb => "rgb", + Channel::Red => "red", + Channel::Green => "green", + Channel::Blue => "blue", + Channel::Alpha => "alpha", + Channel::RgbStraight => "rgbStraight", + } + } + pub fn label(self) -> &'static str { + match self { + Channel::Rgb => "RGB", + Channel::Red => "Red", + Channel::Green => "Green", + Channel::Blue => "Blue", + Channel::Alpha => "Alpha", + Channel::RgbStraight => "RGB Straight", + } + } + pub fn from_name(s: &str) -> Option { + let n = s.to_ascii_lowercase().replace([' ', '_', '-'], ""); + Channel::ALL.into_iter().find(|c| c.id().to_ascii_lowercase() == n || c.label().to_ascii_lowercase().replace(' ', "") == n) + } +} + +fn srgb_to_linear(v: f32) -> f32 { + if v <= 0.04045 { v / 12.92 } else { ((v + 0.055) / 1.055).powf(2.4) } +} +fn linear_to_srgb(v: f32) -> f32 { + let v = v.max(0.0); + if v <= 0.003_130_8 { v * 12.92 } else { 1.055 * v.powf(1.0 / 2.4) - 0.055 } +} + +/// 8-bit exposure lookup table: `stops` applied in linear light. +pub fn exposure_lut(stops: f32) -> [u8; 256] { + let k = 2f32.powf(stops); + let mut lut = [0u8; 256]; + for (i, o) in lut.iter_mut().enumerate() { + let lin = srgb_to_linear(i as f32 / 255.0) * k; + *o = (linear_to_srgb(lin).clamp(0.0, 1.0) * 255.0 + 0.5) as u8; + } + lut +} + +/// Apply the viewer's channel and exposure to premultiplied 8-bit RGBA pixels in place. +/// RGB shows the image (exposure only); Red/Green/Blue/Alpha show one channel as an opaque +/// grayscale image (or tinted in that channel's colour when `colorized`); RGB Straight shows the +/// unpremultiplied colour, opaque. +pub fn display_transform(px: &mut [[u8; 4]], channel: Channel, colorized: bool, stops: f32) { + let lut = (stops != 0.0).then(|| exposure_lut(stops)); + let ex = |v: u8| lut.as_ref().map(|l| l[v as usize]).unwrap_or(v); + for p in px.iter_mut() { + let [r, g, b, a] = *p; + *p = match channel { + Channel::Rgb => { + if lut.is_none() { + continue; + } + // Exposure on straight colour, re-premultiplied. + let un = |c: u8| if a == 0 { 0 } else { ((c as u32 * 255 + a as u32 / 2) / a as u32).min(255) as u8 }; + let pm = |c: u8| ((ex(un(c)) as u32 * a as u32 + 127) / 255) as u8; + [pm(r), pm(g), pm(b), a] + } + Channel::Red | Channel::Green | Channel::Blue => { + let (i, c) = match channel { + Channel::Red => (0, r), + Channel::Green => (1, g), + _ => (2, b), + }; + let v = ex(c); + if colorized { + let mut o = [0, 0, 0, 255]; + o[i] = v; + o + } else { + [v, v, v, 255] + } + } + Channel::Alpha => { + let v = ex(a); + [v, v, v, 255] + } + Channel::RgbStraight => { + let un = |c: u8| if a == 0 { 0 } else { ((c as u32 * 255 + a as u32 / 2) / a as u32).min(255) as u8 }; + [ex(un(r)), ex(un(g)), ex(un(b)), 255] + } + }; + } +} + +// ---------------------------------------------------------------- snapshot + +/// Take Snapshot (Shift+F5): a rendered frame kept for comparison (Show Snapshot, F5). +#[derive(Clone, Debug)] +pub struct Snapshot { + pub comp: effectcraft_project::ItemId, + pub time: Tick, + /// Render scale the image was taken at. + pub scale: f64, + pub image: Arc, +} diff --git a/crates/export/src/lib.rs b/crates/export/src/lib.rs index 1616926d..b2daf0f9 100644 --- a/crates/export/src/lib.rs +++ b/crates/export/src/lib.rs @@ -172,6 +172,7 @@ pub(crate) fn render_frame(job: &Job, comp: &Comp, i: u64) -> Image { draft: job.settings.quality == RenderQuality::Draft, // Output renders always look through the comp's active camera. view: None, + roi: None, }; let mut r = Renderer::new(job.project, job.footage, opts); r.expr = job.expr; diff --git a/crates/render/src/lib.rs b/crates/render/src/lib.rs index dc7db2d4..a6cee23d 100644 --- a/crates/render/src/lib.rs +++ b/crates/render/src/lib.rs @@ -138,11 +138,14 @@ pub struct RenderOpts { pub draft: bool, /// 3D view camera override (viewer Front/Top/Custom views); None = the comp's active camera. pub view: Option, + /// Region of interest `[x, y, w, h]` in comp pixels (viewer only): the top-level frame covers + /// just this rectangle, and only its pixels are composited. + pub roi: Option<[f64; 4]>, } impl Default for RenderOpts { fn default() -> Self { - RenderOpts { scale: 1.0, motion_blur: true, guides: false, draft: false, view: None } + RenderOpts { scale: 1.0, motion_blur: true, guides: false, draft: false, view: None, roi: None } } } @@ -189,6 +192,26 @@ impl<'a> Renderer<'a> { let s = self.opts.scale; let w = ((comp.width as f64 * s).round() as u32).max(1); let h = ((comp.height as f64 * s).round() as u32).max(1); + // Region of interest on a comp with 3D layers: render the frame and crop it. + if self.depth == 0 + && let Some(r) = self.opts.roi + && comp.has_3d() + { + let full = Renderer { opts: RenderOpts { roi: None, ..self.opts }, ..*self }.comp_frame(comp_id, t); + let (x0, y0) = ((r[0] * s).round().max(0.0) as u32, (r[1] * s).round().max(0.0) as u32); + let (rw, rh) = (((r[2] * s).round() as u32).max(1), ((r[3] * s).round() as u32).max(1)); + let mut out = Image::new(rw, rh); + for y in 0..rh.min(full.height.saturating_sub(y0)) { + for x in 0..rw.min(full.width.saturating_sub(x0)) { + out.data[(y * rw + x) as usize] = full.data[((y + y0) * full.width + x + x0) as usize]; + } + } + return out; + } + let (w, h) = match self.roi_offset() { + Some((_, _, rw, rh)) => (rw, rh), + None => (w, h), + }; let mut canvas = Image::new(w, h); if self.depth > 16 { return canvas; @@ -441,11 +464,34 @@ impl<'a> Renderer<'a> { } } + /// The region of interest of a top-level 2D frame: (x, y) offset of the output in output + /// pixels and its size. `None` renders the whole comp (no ROI, or a nested comp). + fn roi_offset(&self) -> Option<(f64, f64, u32, u32)> { + let r = self.opts.roi.filter(|_| self.depth == 0)?; + let s = self.opts.scale; + if r[2] <= 0.0 || r[3] <= 0.0 { + return None; + } + Some(((r[0] * s).round(), (r[1] * s).round(), ((r[2] * s).round() as u32).max(1), ((r[3] * s).round() as u32).max(1))) + } + + /// Scaled comp pixel → output pixel: the region of interest's offset. + fn out_matrix(&self) -> Mat3 { + match self.roi_offset() { + Some((x, y, _, _)) => Mat3::translate(vec2(-x, -y)), + None => Mat3::IDENTITY, + } + } + /// Buffer pixel → output pixel matrix for the layer at the context time. fn buf_matrix(&self, ctx: &EvalCtx, layer: &Layer, buf: &Buf) -> Mat3 { let s = self.opts.scale; let (l2c, _) = ctx.layer_to_comp(layer); - Mat3::scale(vec2(s, s)) * l2c * Mat3::scale(vec2(1.0 / buf.scale, 1.0 / buf.scale)) * Mat3::translate(vec2(-buf.offset[0], -buf.offset[1])) + self.out_matrix() + * Mat3::scale(vec2(s, s)) + * l2c + * Mat3::scale(vec2(1.0 / buf.scale, 1.0 / buf.scale)) + * Mat3::translate(vec2(-buf.offset[0], -buf.offset[1])) } /// Draw a processed layer into `target` (transform, motion blur) with `mode`/`opacity`. @@ -595,7 +641,8 @@ impl<'a> Renderer<'a> { masks::apply(ctx, layer, &mut foot); let mut matte = Image::new(canvas.width, canvas.height); self.place(ctx, layer, &foot, &mut matte, BlendMode::Normal, 1.0); - let below = Buf { img: canvas.clone(), offset: [0.0; 2], scale: self.opts.scale }; + let o = self.roi_offset().map(|(x, y, _, _)| [-x, -y]).unwrap_or([0.0; 2]); + let below = Buf { img: canvas.clone(), offset: o, scale: self.opts.scale }; let adjusted = self.apply_effects(ctx, layer, below, true); if adjusted.img.width != canvas.width || adjusted.img.height != canvas.height { return; @@ -631,6 +678,8 @@ mod tests; #[cfg(test)] mod tests_remap; #[cfg(test)] +mod tests_roi; +#[cfg(test)] mod tests_styles; /// Layer-space bounds `[x0, y0, x1, y1]` of a layer's content at the context time (source size diff --git a/crates/render/src/shapes.rs b/crates/render/src/shapes.rs index dfcbe8d8..25eb6090 100644 --- a/crates/render/src/shapes.rs +++ b/crates/render/src/shapes.rs @@ -72,6 +72,28 @@ fn group_matrix(ctx: &EvalCtx, layer: &Layer, tr: &PropGroup) -> (Mat3, f32) { (m, (ctx.f(layer, tr, "opacity", 100.0) / 100.0) as f32) } +/// Shape item (a Path, Rectangle… inside nested Shape groups) → layer space: the product of the +/// enclosing groups' transforms. `None` when `uid` is not in the layer's contents. +pub fn item_matrix(ctx: &EvalCtx, layer: &Layer, uid: u64) -> Option { + fn walk(ctx: &EvalCtx, layer: &Layer, g: &PropGroup, uid: u64, m: Mat3) -> Option { + for sub in g.groups() { + if sub.uid == uid { + return Some(m); + } + if sub.match_id == "group" + && let Some(inner) = sub.sub("contents") + { + let gm = sub.sub("transform").map(|t| group_matrix(ctx, layer, t).0).unwrap_or(Mat3::IDENTITY); + if let Some(r) = walk(ctx, layer, inner, uid, m * gm) { + return Some(r); + } + } + } + None + } + walk(ctx, layer, layer.props.sub("contents")?, uid, Mat3::IDENTITY) +} + fn rule(ctx: &EvalCtx, layer: &Layer, g: &PropGroup) -> FillRule { if ctx.e(layer, g, "rule") == 1 { FillRule::EvenOdd } else { FillRule::NonZero } } diff --git a/crates/render/src/tests_roi.rs b/crates/render/src/tests_roi.rs new file mode 100644 index 00000000..9adc8a8e --- /dev/null +++ b/crates/render/src/tests_roi.rs @@ -0,0 +1,73 @@ +//! Region of interest: a ROI render equals the matching crop of the full render. + +use effectcraft_color::{BlendMode, Label}; +use effectcraft_keyframe::Value; +use effectcraft_project::build; +use effectcraft_project::{Comp, ItemKind, LayerSource, Project, Solid}; +use effectcraft_time::{FrameRate, Tick}; + +use crate::{Image, NoFootage, RenderOpts, Renderer}; + +fn project(three_d: bool) -> (Project, effectcraft_project::ItemId) { + let mut p = Project::default(); + let comp = Comp::new(160, 120, FrameRate::FPS_30, Tick::from_seconds_f64(1.0)); + let cid = p.add_item("Comp", Label::Sandstone, None, ItemKind::Comp(comp.clone().into())); + let mut layers = vec![]; + for (i, (c, w, h, pos, rot)) in + [([1.0, 0.2, 0.1], 90, 50, [60.0, 50.0], 17.0), ([0.1, 0.4, 1.0], 70, 70, [100.0, 75.0], -30.0), ([0.9, 0.9, 0.2], 40, 30, [30.0, 95.0], 0.0)] + .into_iter() + .enumerate() + { + let sid = p.add_item("Solid", Label::Red, None, ItemKind::Solid(Solid { color: c, width: w, height: h, pixel_aspect: 1.0 })); + let mut l = build::layer(&mut p, &comp, "Solid", LayerSource::Solid { item: sid }, (w, h), None); + l.props.prop_mut("transform/position").unwrap().value = Value::Vec3([pos[0], pos[1], 0.0]); + l.props.prop_mut("transform/rotation").unwrap().value = Value::Scalar(rot); + l.props.prop_mut("transform/opacity").unwrap().value = Value::Scalar(80.0); + if i == 1 { + l.blend_mode = BlendMode::Screen; + l.switches.three_d = three_d; + } + layers.push(l); + } + p.comp_mut(cid).unwrap().layers = layers; + (p, cid) +} + +fn crop(img: &Image, x: u32, y: u32, w: u32, h: u32) -> Image { + let mut out = Image::new(w, h); + for yy in 0..h { + for xx in 0..w { + out.data[(yy * w + xx) as usize] = img.data[((yy + y) * img.width + xx + x) as usize]; + } + } + out +} + +fn assert_same(a: &Image, b: &Image) { + assert_eq!((a.width, a.height), (b.width, b.height)); + for (i, (p, q)) in a.data.iter().zip(&b.data).enumerate() { + for c in 0..4 { + assert!((p[c] - q[c]).abs() < 1e-4, "pixel {i} channel {c}: {} vs {}", p[c], q[c]); + } + } +} + +#[test] +fn roi_render_equals_cropped_full_render() { + for three_d in [false, true] { + let (p, cid) = project(three_d); + let full = Renderer::new(&p, &NoFootage, RenderOpts::default()).comp_frame(cid, Tick::ZERO); + let roi = Renderer::new(&p, &NoFootage, RenderOpts { roi: Some([30.0, 20.0, 80.0, 60.0]), ..Default::default() }).comp_frame(cid, Tick::ZERO); + assert_eq!((roi.width, roi.height), (80, 60)); + assert_same(&roi, &crop(&full, 30, 20, 80, 60)); + } +} + +#[test] +fn roi_at_half_resolution() { + let (p, cid) = project(false); + let full = Renderer::new(&p, &NoFootage, RenderOpts { scale: 0.5, ..Default::default() }).comp_frame(cid, Tick::ZERO); + let roi = Renderer::new(&p, &NoFootage, RenderOpts { scale: 0.5, roi: Some([40.0, 20.0, 60.0, 40.0]), ..Default::default() }).comp_frame(cid, Tick::ZERO); + assert_eq!((roi.width, roi.height), (30, 20)); + assert_same(&roi, &crop(&full, 20, 10, 30, 20)); +} diff --git a/crates/ui-egui/src/header.rs b/crates/ui-egui/src/header.rs index 07e5b844..b2fa142e 100644 --- a/crates/ui-egui/src/header.rs +++ b/crates/ui-egui/src/header.rs @@ -113,9 +113,11 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { x = puppet_options(app, ui, &p, x, cy); } let snap = Rect::from_min_size(pos2(x, cy - 10.0), vec2(20.0, 20.0)); + // The engine owns snapping (View ▸ Snapping); the checkbox mirrors it. + app.ui.snapping = app.session.state.snapping; if widgets::checkbox(ui, snap, app.ui.snapping, &t, egui::Id::new("snapping")).clicked() { - app.ui.snapping = !app.ui.snapping; - app.session.state.snapping = app.ui.snapping; + let _ = app.session.execute("view.snapping", serde_json::json!({})); + app.ui.snapping = app.session.state.snapping; } app.auto.add("header.snapping", snap, "Snapping"); p.text(pos2(snap.max.x + 4.0, cy), Align2::LEFT_CENTER, "Snapping", Tokens::ui(12.0), t.text_dim); diff --git a/crates/ui-egui/src/icons.rs b/crates/ui-egui/src/icons.rs index 816da289..d28cb950 100644 --- a/crates/ui-egui/src/icons.rs +++ b/crates/ui-egui/src/icons.rs @@ -23,6 +23,10 @@ pub enum Icon { Polygon, Star, Pen, + PenAdd, + PenDelete, + PenConvert, + MaskFeather, Type, TypeVertical, Brush, @@ -557,6 +561,25 @@ pub fn paint(painter: &Painter, rect: Rect, icon: Icon, color: Color32) { Sparkle => { pen.fill(&[(8.0, 1.5), (9.4, 6.6), (14.5, 8.0), (9.4, 9.4), (8.0, 14.5), (6.6, 9.4), (1.5, 8.0), (6.6, 6.6)]); } + PenAdd | PenDelete => { + // A small pen nib with a plus or minus beside it. + pen.closed(&[(6.0, 2.5), (9.0, 8.0), (6.0, 12.0), (3.0, 8.0)]); + pen.line(&[(6.0, 2.5), (6.0, 7.0)]); + pen.line(&[(10.0, 11.5), (14.5, 11.5)]); + if icon == PenAdd { + pen.line(&[(12.25, 9.25), (12.25, 13.75)]); + } + } + PenConvert => { + // An open caret: a corner vertex with two straight sides. + pen.line(&[(2.5, 13.0), (8.0, 3.5), (13.5, 13.0)]); + pen.dot(8.0, 3.5, 1.4); + } + MaskFeather => { + pen.closed(&[(6.0, 2.5), (9.0, 8.0), (6.0, 12.0), (3.0, 8.0)]); + pen.line(&[(6.0, 2.5), (6.0, 7.0)]); + pen.line(&[(10.5, 4.0), (12.5, 6.5), (13.5, 10.0), (12.5, 13.5)]); + } } } diff --git a/crates/ui-egui/src/lib.rs b/crates/ui-egui/src/lib.rs index 7627c096..ffbf41f5 100644 --- a/crates/ui-egui/src/lib.rs +++ b/crates/ui-egui/src/lib.rs @@ -283,7 +283,13 @@ impl EffectcraftApp { let full = self.ui.viewer.res.scale(zoom, ppp); return full.min((full * 0.5).max(self.session.prefs.adaptive_limit())); } - self.ui.viewer.res.scale(zoom, ppp) + let full = self.ui.viewer.res.scale(zoom, ppp); + // Fast Previews ▸ Adaptive Resolution / Fast Draft: lower resolution while dragging. + let (_, k) = self.session.state.viewer.fast_previews.render(self.ui.viewer.interacting); + if k < 1.0 && self.ui.viewer.res == state::Resolution::Auto { + return full.min((full * 0.5).max(self.session.prefs.adaptive_limit())); + } + full } pub fn frame_key(&self, comp: ItemId, frame: i64, scale: f64) -> FrameKey { @@ -293,8 +299,13 @@ impl EffectcraftApp { /// Hash of the comp viewer's 3D view camera (0 for the active camera view). pub fn view_hash(&self, comp: ItemId) -> u64 { use std::hash::{Hash, Hasher}; - let Some(cam) = self.session.view_camera(comp) else { return 0 }; let mut h = std::collections::hash_map::DefaultHasher::new(); + // The region of interest changes what is rendered too. + let roi = self.session.state.region_of_interest.filter(|_| self.session.active_comp_id() == Some(comp)); + if let Some(r) = roi { + r.map(f64::to_bits).hash(&mut h); + } + let Some(cam) = self.session.view_camera(comp) else { return if roi.is_some() { h.finish() | 1 } else { 0 } }; for row in cam.view.0 { for v in row { v.to_bits().hash(&mut h); @@ -319,7 +330,10 @@ impl EffectcraftApp { let Some(c) = self.session.project.comp(comp) else { return }; let key = self.frame_key(comp, frame, scale); let t = c.frame_rate.tick_of(frame); - let opts = RenderOpts { scale, motion_blur: true, guides: true, draft: self.ui.viewer.fast_preview, view: self.session.view_camera(comp) }; + let (draft, _) = self.session.state.viewer.fast_previews.render(self.ui.viewer.interacting); + let roi = self.session.state.region_of_interest.filter(|_| self.session.active_comp_id() == Some(comp)); + let opts = + RenderOpts { scale, motion_blur: true, guides: true, draft: self.ui.viewer.fast_preview || draft, view: self.session.view_camera(comp), roi }; if urgent { self.frames.request_urgent(&self.render_source(), key, comp, t, opts); } else { diff --git a/crates/ui-egui/src/menus.rs b/crates/ui-egui/src/menus.rs index 7ec29b30..595538e8 100644 --- a/crates/ui-egui/src/menus.rs +++ b/crates/ui-egui/src/menus.rs @@ -131,6 +131,7 @@ pub fn invoke(app: &mut EffectcraftApp, ctx: &egui::Context, id: &str, params: V // Slot shortcuts cycle through the slot's tools. let slot = match t { "shape" => Some(8), + "pen" => Some(9), "type" => Some(10), "brush" => Some(11), "puppet" => Some(15), @@ -195,6 +196,11 @@ pub fn invoke(app: &mut EffectcraftApp, ctx: &egui::Context, id: &str, params: V "view.safeMargins" => app.ui.viewer.safe_margins = !app.ui.viewer.safe_margins, "view.transparencyGrid" => app.ui.viewer.transparency_grid = !app.ui.viewer.transparency_grid, "view.fastPreviews" => { + // With a mode: Fast Previews ▸ Off / Adaptive Resolution / Draft / Fast Draft / + // Wireframe; without: toggle Draft quality (Settings ▸ Previews). + if params.get("mode").is_some() { + return run_engine(app, ctx, "view.fastPreviewMode", params); + } let on = !app.ui.viewer.fast_preview; app.set_pref("previews.fastPreviews", json!(on))?; app.ui.viewer.fast_preview = on; @@ -395,6 +401,30 @@ pub fn frontend(app: &mut EffectcraftApp, ctx: &egui::Context, id: &str, p: Valu v.res = Resolution::ALL.into_iter().find(|x| x.label().eq_ignore_ascii_case(r)).ok_or("unknown resolution")?; Value::Null } + "view.res.custom" => { + match p.get("factor").and_then(Value::as_u64) { + Some(n) => { + v.res = match n.clamp(1, 40) { + 1 => Resolution::Full, + n => Resolution::Custom(n as u8), + }; + } + None => { + let cur = match v.res { + Resolution::Custom(n) => n as f64, + _ => 2.0, + }; + crate::panels::dialogs::form( + app, + "Custom Resolution", + "view.res.custom", + json!({}), + vec![crate::panels::dialogs::Field::num("factor", "Render every n-th pixel", cur)], + ); + } + } + Value::Null + } "view.rulers" => toggle(&mut v.rulers, &p), "view.guides" => toggle(&mut v.guides, &p), "view.snapToGuides" => toggle(&mut v.snap_guides, &p), diff --git a/crates/ui-egui/src/panels/mod.rs b/crates/ui-egui/src/panels/mod.rs index fffe91bc..239b84d3 100644 --- a/crates/ui-egui/src/panels/mod.rs +++ b/crates/ui-egui/src/panels/mod.rs @@ -23,6 +23,8 @@ pub mod text_panels; pub mod timeline; pub mod tracker; pub mod viewer; +pub mod viewer_overlays; +pub mod viewer_tools; pub mod waveform; use effectcraft_engine::Session; diff --git a/crates/ui-egui/src/panels/viewer.rs b/crates/ui-egui/src/panels/viewer.rs index a02c9b3a..d174322a 100644 --- a/crates/ui-egui/src/panels/viewer.rs +++ b/crates/ui-egui/src/panels/viewer.rs @@ -5,15 +5,14 @@ //! camera/light wireframes. use effectcraft_engine::geom::{Mat3, vec2 as gv2}; -use effectcraft_engine::project::{GroupKind, Layer, LayerId}; +use effectcraft_engine::project::{Layer, LayerId}; use effectcraft_engine::render::EvalCtx; use effectcraft_engine::render::three_d::{self, CameraState, View3D}; use effectcraft_engine::time::Tick; use egui::{Align2, Color32, Pos2, Rect, Sense, Stroke, StrokeKind, pos2, vec2}; use serde_json::json; -use crate::icons::Icon; -use crate::state::{Resolution, Tool}; +use crate::state::Tool; use crate::theme::Tokens; use crate::{EffectcraftApp, widgets}; @@ -62,6 +61,8 @@ enum Gesture { Move { layers: Vec<(LayerId, [f64; 3], [f64; 3], [f64; 3])>, start: [f64; 2], + /// The grabbed layer's feature nearest the pointer (comp px at the start): it snaps. + snap_src: Option<[f64; 2]>, }, Camera { tool: Tool, @@ -96,10 +97,14 @@ enum Gesture { Marquee { start: Pos2, }, - /// Dragging selected mask vertices (comp-space point of the previous frame, comp → layer). + /// Dragging selected mask / shape path vertices: press point, the grabbed vertex (comp px, + /// it snaps), the comp-space move applied so far and comp → path space. Vertices { - last: [f64; 2], + start: [f64; 2], + src: [f64; 2], + applied: [f64; 2], inv: Mat3, + layer: LayerId, }, /// Dragging a vertex's Bezier tangent (both sides symmetric unless Alt breaks them). Tangent { @@ -131,6 +136,9 @@ enum Gesture { tracker: u64, drag: super::tracker::Drag, }, + /// Motion paths, free transform, Mask Feather, guides and the region of interest + /// (`viewer_overlays`). + Overlay(ov::Drag), } /// Pen tool path in progress: (layer, mask uid). @@ -138,19 +146,8 @@ fn pen_id() -> egui::Id { egui::Id::new("viewer-pen") } -/// Mask vertex / tangent hit targets drawn this frame. -#[derive(Clone, Copy)] -struct VertexHit { - layer: LayerId, - mask: u64, - index: usize, - pos: Pos2, - /// None = the vertex itself, Some(out?) = a tangent handle. - tangent: Option, - /// Layer-space vertex position and layer → comp matrix. - vertex: [f64; 2], - l2c: Mat3, -} +use super::viewer_overlays::{self as ov, VertexHit}; +use super::viewer_tools as vt; const HANDLE: f32 = 7.0; @@ -356,6 +353,9 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { // keeps the overlays and the interaction. let area = aux_views(app, ui, &comp, cid, full, pasteboard); p.rect_filled(area, 0.0, pasteboard); + // View ▸ Show Rulers takes a strip on the top and left. + let outer = area; + let area = vt::inset(app, area); let (cw, ch) = (comp.width as f32, comp.height as f32); let fit = ((area.width() - 40.0) / cw).min((area.height() - 40.0) / ch).max(0.01); @@ -391,6 +391,7 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { _ => app.viewer_tex = Some((ctx.load_texture("viewer-frame", (*img).clone(), egui::TextureOptions::LINEAR), key)), } app.viewer_image = Some(img); + vt::set_texture_roi(&ctx, app.session.state.region_of_interest); } } if app.ui.viewer.transparency_grid { @@ -399,11 +400,11 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let bg = comp.background; painter.rect_filled(comp_rect, 0.0, Color32::from_rgb((bg[0] * 255.0) as u8, (bg[1] * 255.0) as u8, (bg[2] * 255.0) as u8)); } - if let Some((tex, k)) = &app.viewer_tex - && k.comp == cid.0 - { - painter.image(tex.id(), comp_rect, Rect::from_min_max(pos2(0.0, 0.0), pos2(1.0, 1.0)), Color32::WHITE); - } + let snap_project = app.session.project.clone(); + let snap_expr = app.session.expr.clone(); + let ectx = EvalCtx { project: &snap_project, comp_id: cid, comp: &comp, time, expr: snap_expr.as_deref() }; + // The frame (or snapshot) through Show Channel and exposure; ROI frames cover the region. + vt::draw_frame(app, &ctx, &painter, comp_rect, cid, &ectx); painter.rect_stroke(comp_rect, 0.0, Stroke::new(1.0, Color32::from_black_alpha(160)), StrokeKind::Outside); app.auto.add("viewer.comp", comp_rect, &comp_name); app.auto.add("viewer.area", area, "Composition viewer"); @@ -452,6 +453,8 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { } } + vt::proportional_grid(app, &painter, comp_rect); + // Comp guides (View ▸ Show Guides) and the region of interest. if app.ui.viewer.guides { let [r, gg, b] = hex_rgb(&app.session.prefs.grids.guide_color).unwrap_or([0x3c, 0xc8, 0xf0]); @@ -469,110 +472,42 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { if let Some([rx, ry, rw, rh]) = app.session.state.region_of_interest { let r = Rect::from_min_size(comp_rect.min + vec2(rx as f32 * zoom, ry as f32 * zoom), vec2(rw as f32 * zoom, rh as f32 * zoom)); painter.rect_stroke(r, 0.0, Stroke::new(1.0, Color32::WHITE), StrokeKind::Middle); + for c in [r.left_top(), r.right_top(), r.right_bottom(), r.left_bottom()] { + painter.rect_filled(Rect::from_center_size(c, vec2(5.0, 5.0)), 0.0, Color32::WHITE); + } + app.auto.add("viewer.regionOfInterest", r, "Region of interest"); } // Overlays + interaction. - let snap_project = app.session.project.clone(); - let snap_expr = app.session.expr.clone(); - let ectx = EvalCtx { project: &snap_project, comp_id: cid, comp: &comp, time, expr: snap_expr.as_deref() }; let selected = app.session.state.selected_layers.clone(); let mut handle_hits: Vec<(LayerId, usize, Pos2)> = Vec::new(); let mut vertex_hits: Vec = Vec::new(); + let mut key_hits: Vec = Vec::new(); + let mut paths: Vec = Vec::new(); let sel_vertices = app.session.state.selected_vertices.clone(); - // Pen path in progress ends when the tool changes or its mask is gone. - if app.ui.tool != Tool::Pen || ui.input(|i| i.key_pressed(egui::Key::Escape) || i.key_pressed(egui::Key::Enter)) { + // Pen path in progress ends when the tool changes or its mask is gone; Esc / Enter also end + // free transform. + let finish = ui.input(|i| i.key_pressed(egui::Key::Escape) || i.key_pressed(egui::Key::Enter)) && !ctx.egui_wants_keyboard_input(); + if app.ui.tool != Tool::Pen || finish { ui.data_mut(|d| d.remove::<(LayerId, u64)>(pen_id())); } + if finish || app.ui.tool != Tool::Selection { + ov::end_free_transform(&ctx); + } if app.ui.viewer.show_layer_controls { // Settings ▸ General ▸ Path Point and Handle Size; Appearance ▸ Use Label Color for // Layer Handles and Paths. let hs = app.session.prefs.general.path_point_size as f32 + 2.0; - let vs = app.session.prefs.general.path_point_size as f32 + 1.0; let label_handles = app.session.prefs.appearance.use_label_color_for_handles; for l in comp.layers.iter().filter(|l| selected.contains(&l.id) && l.is_active_at(time)) { let col = if label_handles { t.label(l.label) } else { t.accent }; - // Motion path of animated position. - if let Some(pos) = l.transform().and_then(|tr| tr.get("position")) - && pos.keys.len() > 1 - && l.parent.is_none() - { - let lt0 = pos.keys.first().map(|k| k.time).unwrap_or(Tick::ZERO); - let lt1 = pos.keys.last().map(|k| k.time).unwrap_or(Tick::ZERO); - let fd = comp.frame_duration(); - let mut pts = vec![]; - let mut lt = lt0; - while lt <= lt1 { - let v = pos.value_at(lt).as_vec2(); - pts.push(map.to_screen(v)); - lt += fd; - } - painter.add(egui::Shape::line(pts.clone(), Stroke::new(1.0, col.gamma_multiply(0.8)))); - for q in pts.iter().step_by(1) { - painter.circle_filled(*q, 1.2, col.gamma_multiply(0.8)); - } - for k in &pos.keys { - let v = k.value.as_vec2(); - let s = map.to_screen(v); - painter.rect_filled(Rect::from_center_size(s, vec2(6.0, 6.0)), 0.0, col); - } - } - // Masks. - if app.ui.viewer.show_masks - && let Some(masks) = l.masks() - { - let (m, _) = l2c(&ectx, l); - for g in masks.groups() { - let GroupKind::Mask { color, locked, .. } = g.kind else { continue }; - if locked && app.session.state.hide_locked_masks { - continue; - } - let Some(path) = g.get("path").map(|pr| ectx.value(l, pr)) else { continue }; - let Some(sp) = path.as_path() else { continue }; - let k = effectcraft_engine::render::kurbo_path(sp); - let mut pts: Vec = vec![]; - kurbo::flatten(k.iter(), 0.5, |el| match el { - kurbo::PathEl::MoveTo(q) | kurbo::PathEl::LineTo(q) => { - let c = m.apply(gv2(q.x, q.y)); - pts.push(map.to_screen([c.x, c.y])); - } - _ => {} - }); - if sp.closed && !pts.is_empty() { - pts.push(pts[0]); - } - let mc = Color32::from_rgb(color[0], color[1], color[2]); - painter.add(egui::Shape::line(pts, Stroke::new(1.0, mc))); - let scr = |p: [f64; 2]| { - let c = m.apply(gv2(p[0], p[1])); - map.to_screen([c.x, c.y]) - }; - for (i, v) in sp.vertices.iter().enumerate() { - let s = scr(*v); - let selected = sel_vertices.iter().any(|x| x.layer == l.id && x.mask == g.uid && x.index == i); - // Selected vertices: filled with their tangent handles; others hollow. - if selected { - for (out, tg) in [(false, sp.in_tangents.get(i)), (true, sp.out_tangents.get(i))] { - let Some(tg) = tg.filter(|t| t[0] != 0.0 || t[1] != 0.0) else { continue }; - let h = scr([v[0] + tg[0], v[1] + tg[1]]); - painter.line_segment([s, h], Stroke::new(1.0, mc)); - painter.circle_filled(h, 3.0, mc); - vertex_hits.push(VertexHit { layer: l.id, mask: g.uid, index: i, pos: h, tangent: Some(out), vertex: *v, l2c: m }); - } - painter.rect_filled(Rect::from_center_size(s, vec2(vs, vs)), 0.0, mc); - } else { - painter.rect_filled(Rect::from_center_size(s, vec2(vs, vs)), 0.0, Color32::from_black_alpha(160)); - painter.rect_stroke(Rect::from_center_size(s, vec2(vs, vs)), 0.0, Stroke::new(1.0, mc), StrokeKind::Inside); - } - app.auto.add(&format!("viewer.mask.{}.vertex.{i}", g.uid), Rect::from_center_size(s, vec2(8.0, 8.0)), &g.name); - vertex_hits.push(VertexHit { layer: l.id, mask: g.uid, index: i, pos: s, tangent: None, vertex: *v, l2c: m }); - } - // Pen rubber band from the last vertex to the pointer. - if ui.data(|d| d.get_temp::<(LayerId, u64)>(pen_id())) == Some((l.id, g.uid)) - && let (Some(last), Some(hp)) = (sp.vertices.last(), ui.input(|i| i.pointer.hover_pos())) - { - painter.line_segment([scr(*last), hp], Stroke::new(1.0, mc.gamma_multiply(0.6))); - } - } + // Motion path of animated position (keyframes and spatial tangents are draggable). + ov::motion_path(app, &painter, &map, &ectx, l, col, &mut key_hits); + // Masks and shape paths. + if app.ui.viewer.show_masks { + let pen = ui.data(|d| d.get_temp::<(LayerId, u64)>(pen_id())); + let hover = ui.input(|i| i.pointer.hover_pos()); + ov::draw_paths(app, &painter, &map, &ectx, l, col, &sel_vertices, pen, hover, &mut vertex_hits, &mut paths); } let Some((m, q, _)) = layer_quad(&ectx, l) else { // Cameras, lights, empty layers: just the anchor. @@ -635,6 +570,9 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { track_hits = super::tracker::draw_overlay(app, &painter, &map, &m, layer, tu, time); } + // Free transform box of a path (double-click a path with the Selection tool). + let ft = ov::draw_free_transform(app, &ctx, &painter, &map, &paths); + // Cameras and lights (wireframes) and the 3D view name. if comp.has_3d() { draw_rigs(app, &painter, &map, &ectx, &selected); @@ -677,7 +615,8 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { Tool::Orbit => egui::CursorIcon::Alias, Tool::PanCamera => egui::CursorIcon::Move, Tool::Dolly => egui::CursorIcon::ResizeVertical, - t if t.is_shape() || t == Tool::Pen => egui::CursorIcon::Crosshair, + t if t.is_shape() || t.is_pen() => egui::CursorIcon::Crosshair, + _ if app.ui.viewer.roi_draw => egui::CursorIcon::Crosshair, t if t.puppet_kind().is_some() => { if pin_hits.iter().any(|h| h.pos.distance(hp) < 8.0) { egui::CursorIcon::Move @@ -686,8 +625,10 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { } } _ => { - if super::tracker::hit_at(&track_hits, hp).is_some() { + if super::tracker::hit_at(&track_hits, hp).is_some() || key_hits.iter().any(|h| h.pos.distance(hp) < 6.0) { egui::CursorIcon::Move + } else if let Some((_, vertical)) = vt::guide_at(app, &comp, &map, hp) { + if vertical { egui::CursorIcon::ResizeHorizontal } else { egui::CursorIcon::ResizeVertical } } else if handle_hits.iter().any(|(_, _, h)| h.distance(hp) < HANDLE) { egui::CursorIcon::ResizeNwSe } else { @@ -711,6 +652,7 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { } else { app.pointer_comp = None; } + app.ui.viewer.interacting = resp.dragged(); let mods = ui.input(|i| i.modifiers); let space_pan = ui.input(|i| i.key_down(egui::Key::Space)) && !ctx.egui_wants_keyboard_input(); // Pen tool: each press places a vertex (dragging pulls Bezier tangents); pressing on the @@ -721,7 +663,7 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { && ui.input(|i| i.pointer.primary_pressed()) && let Some(pos) = ui.input(|i| i.pointer.press_origin()) { - pen_press(app, ui, &ectx, &map, &vertex_hits, pos); + pen_press(app, ui, &ectx, &map, &paths, pos, mods); } // A pen click (press + release without a drag) ends its tangent gesture on release. if ui.input(|i| i.pointer.primary_released()) @@ -741,6 +683,26 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let tool = if space_pan || resp.dragged_by(egui::PointerButton::Middle) { Tool::Hand } else { app.ui.tool }; let g = match tool { Tool::Hand => Some(Gesture::Pan { start_pan: app.ui.viewer.pan }), + // Region of Interest armed: the drag draws it. + _ if app.ui.viewer.roi_draw => Some(Gesture::Overlay(ov::Drag::Roi { start: map.to_comp(press) })), + Tool::Selection if ft.as_ref().and_then(|f| ov::begin_ft_drag(f, press, &map)).is_some() => { + ft.as_ref().and_then(|f| ov::begin_ft_drag(f, press, &map)).map(Gesture::Overlay) + } + Tool::Selection if key_hits.iter().any(|h| h.pos.distance(press) < 6.0) => { + ov::begin_key_drag(app, &key_hits, press, map.to_comp(press), mods.shift).map(Gesture::Overlay) + } + Tool::Selection if vt::guide_at(app, &comp, &map, press).is_some() => { + vt::guide_at(app, &comp, &map, press).map(|(index, vertical)| Gesture::Overlay(ov::Drag::Guide { index, vertical })) + } + // Alt-drag a vertex with the Selection tool (or drag one with Convert Vertex): pull + // new tangents out of it. + Tool::Selection | Tool::PenConvert if (mods.alt || tool == Tool::PenConvert) && vertex_at(press, false).is_some() => { + vertex_at(press, false).map(|h| { + let inv = h.l2c.inverse().unwrap_or(Mat3::IDENTITY); + Gesture::Pen { layer: h.layer, mask: h.mask, index: h.index, vertex: h.vertex, inv, press } + }) + } + Tool::MaskFeather => ov::begin_feather(app, &ectx, &paths, &map, press).map(Gesture::Overlay), Tool::Rotate => pick(app, &ectx, cpt, mods.shift).map(|l| { let layer = comp.layer(l).cloned(); let center = layer @@ -794,7 +756,14 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { if !selected { let _ = app.session.execute("mask.selectVertices", json!({"vertices": [me], "add": mods.shift})); } - Gesture::Vertices { last: cpt, inv: h.l2c.inverse().unwrap_or(Mat3::IDENTITY) } + let src = h.l2c.apply(gv2(h.vertex[0], h.vertex[1])); + Gesture::Vertices { + start: map.to_comp(press), + src: [src.x, src.y], + applied: [0.0; 2], + inv: h.l2c.inverse().unwrap_or(Mat3::IDENTITY), + layer: h.layer, + } }), Tool::Selection => { if let Some((lid, hi, _)) = handle_hits.iter().find(|(_, _, h)| h.distance(pos) < HANDLE + 2.0).cloned() { @@ -822,10 +791,22 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { Some((l.id, p0, ax, ay)) }) .collect(); - let _ = l; - (!layers.is_empty()).then_some(Gesture::Move { layers, start: cpt }) + // Snap the grabbed layer's feature nearest the pointer (AE's snap handle). + let snap_src = comp.layer(l).map(|layer| effectcraft_engine::viewer::layer_features(&ectx, layer)).and_then(|f| { + let c = map.to_comp(press); + f.into_iter().min_by(|a, b| { + let da = (a[0] - c[0]).powi(2) + (a[1] - c[1]).powi(2); + let db = (b[0] - c[0]).powi(2) + (b[1] - c[1]).powi(2); + da.total_cmp(&db) + }) + }); + (!layers.is_empty()).then_some(Gesture::Move { layers, start: map.to_comp(press), snap_src }) } else { - let _ = app.session.execute("edit.deselectAll", json!({})); + // With path vertices on screen the marquee selects vertices (layers stay + // selected); otherwise it starts from a clean selection. + if !vertex_hits.iter().any(|h| h.tangent.is_none()) { + let _ = app.session.execute("edit.deselectAll", json!({})); + } Some(Gesture::Marquee { start: pos }) } } @@ -844,11 +825,16 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let d = resp.total_drag_delta().unwrap_or_default(); app.ui.viewer.pan = [start_pan[0] + d.x, start_pan[1] + d.y]; } - Gesture::Move { layers, start } => { + Gesture::Move { layers, start, snap_src } => { let mut d = [cpt[0] - start[0], cpt[1] - start[1]]; if mods.shift { if d[0].abs() > d[1].abs() { d[1] = 0.0 } else { d[0] = 0.0 } } + if let Some(src) = snap_src { + let ids: Vec = layers.iter().map(|x| x.0).collect(); + let c = vt::snap(app, &ctx, &ectx, &map, &ids, &[[src[0] + d[0], src[1] + d[1]]], mods); + d = [d[0] + c[0], d[1] + c[1]]; + } for (lid, p0, ax, ay) in layers { let v = json!([p0[0] + ax[0] * d[0] + ay[0] * d[1], p0[1] + ax[1] * d[0] + ay[1] * d[1], p0[2] + ax[2] * d[0] + ay[2] * d[1]]); let _ = app.session.execute("prop.set", json!({"layer": lid.0, "path": "transform/position", "value": v, "merge": merge})); @@ -937,13 +923,33 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let r = Rect::from_two_pos(a, pos); painter.rect_stroke(r, 0.0, Stroke::new(1.0, t.accent), StrokeKind::Middle); } - Gesture::Vertices { last, inv } => { - let d = inv.apply_vec(gv2(cpt[0] - last[0], cpt[1] - last[1])); + Gesture::Vertices { start, src, applied, inv, layer } => { + // The grabbed vertex snaps (to other layers' vertices and features, guides, grid). + let want = [cpt[0] - start[0], cpt[1] - start[1]]; + let c = vt::snap(app, &ctx, &ectx, &map, &[layer], &[[src[0] + want[0], src[1] + want[1]]], mods); + let total = [want[0] + c[0], want[1] + c[1]]; + let d = inv.apply_vec(gv2(total[0] - applied[0], total[1] - applied[1])); if d.x != 0.0 || d.y != 0.0 { let _ = app.session.execute("mask.moveVertices", json!({"delta": [d.x, d.y], "merge": merge})); } - ui.data_mut(|dd| dd.insert_temp(gid, Gesture::Vertices { last: cpt, inv })); + ui.data_mut(|dd| dd.insert_temp(gid, Gesture::Vertices { start, src, applied: total, inv, layer })); } + Gesture::Overlay(d) => match d { + ov::Drag::Guide { index, vertical } => { + let pos_v = if vertical { cpt[0] } else { cpt[1] }.round(); + let _ = app.session.execute("view.moveGuide", json!({"index": index, "position": pos_v, "merge": merge})); + } + ov::Drag::Roi { start } => { + let r = Rect::from_two_pos(map.to_screen(start), pos); + painter.rect_stroke(r, 0.0, Stroke::new(1.0, Color32::WHITE), StrokeKind::Middle); + } + d => { + let mut snapper = |a: &EffectcraftApp, p: [f64; 2], l: LayerId| vt::snap(a, &ctx, &ectx, &map, &[l], &[p], mods); + if let Some(nd) = ov::update(app, &d, cpt, pos, mods, &merge, zoom, &mut snapper) { + ui.data_mut(|dd| dd.insert_temp(gid, Gesture::Overlay(nd))); + } + } + }, Gesture::Tangent { layer, mask, index, out, vertex, inv } => { let lp = inv.apply(gv2(cpt[0], cpt[1])); let t = [lp.x - vertex[0], lp.y - vertex[1]]; @@ -990,6 +996,30 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let end = map.to_comp(pos); create_shape(app, tool, start, end, mods.shift); } + Gesture::Overlay(ov::Drag::Roi { start }) => { + let end = map.to_comp(pos); + let (x0, y0) = (start[0].min(end[0]).max(0.0), start[1].min(end[1]).max(0.0)); + let (x1, y1) = (start[0].max(end[0]).min(comp.width as f64), start[1].max(end[1]).min(comp.height as f64)); + if x1 - x0 >= 2.0 && y1 - y0 >= 2.0 { + let rect = [x0.round(), y0.round(), (x1 - x0).round(), (y1 - y0).round()]; + let _ = app.session.execute("view.setRegionOfInterest", json!({"rect": rect})); + } + app.ui.viewer.roi_draw = false; + } + // A guide dragged off the image (back to the rulers) is removed. + Gesture::Overlay(ov::Drag::Guide { index, .. }) if !area.contains(pos) || !comp_rect.expand(40.0).contains(pos) => { + let _ = app.session.execute("view.removeGuide", json!({"index": index})); + } + Gesture::Marquee { start } if vertex_hits.iter().any(|h| h.tangent.is_none() && Rect::from_two_pos(start, pos).contains(h.pos)) => { + // Marquee over path vertices selects them. + let r = Rect::from_two_pos(start, pos); + let v: Vec = vertex_hits + .iter() + .filter(|h| h.tangent.is_none() && r.contains(h.pos)) + .map(|h| json!({"layer": h.layer.0, "mask": h.mask, "index": h.index})) + .collect(); + let _ = app.session.execute("mask.selectVertices", json!({"vertices": v, "add": mods.shift})); + } Gesture::Marquee { start } => { let a = map.to_comp(start); let b = map.to_comp(pos); @@ -1032,7 +1062,31 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { ui.data_mut(|d| d.insert_temp(egui::Id::new("viewer-text-edit"), (v["layer"].as_u64().unwrap_or(0), "Text".to_string()))); } } - Tool::Pen => {} + Tool::Pen | Tool::MaskFeather => {} + Tool::PenAdd => { + if let Some((l, m, seg, tt)) = ov::segment_at(&paths, &map, pos, 6.0) { + let _ = app.session.execute("mask.insertVertex", json!({"layer": l.0, "mask": m, "segment": seg, "t": tt})); + } + } + Tool::PenDelete => { + if let Some(h) = vertex_at(pos, false) { + let _ = app.session.execute("mask.deleteVertices", json!({"vertices": [{"layer": h.layer.0, "mask": h.mask, "index": h.index}]})); + } + } + Tool::PenConvert => { + if let Some(h) = vertex_at(pos, false) { + let _ = app.session.execute("mask.convertVertex", json!({"layer": h.layer.0, "mask": h.mask, "index": h.index})); + } + } + Tool::Selection if mods.alt && vertex_at(pos, false).is_some() => { + if let Some(h) = vertex_at(pos, false) { + let _ = app.session.execute("mask.convertVertex", json!({"layer": h.layer.0, "mask": h.mask, "index": h.index})); + } + } + Tool::Selection if ft.is_some() && ft.as_ref().and_then(|f| ov::begin_ft_drag(f, pos, &map)).is_none() => { + // Clicking away from the free-transform box ends it. + ov::end_free_transform(&ctx); + } t if t.puppet_kind().is_some() => { if pin_hits.iter().all(|h| h.pos.distance(pos) >= 8.0) && let Some(l) = pick(app, &ectx, cpt, false).and_then(|l| comp.layer(l)) @@ -1059,7 +1113,15 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { } } if resp.double_clicked() - && app.ui.tool != Tool::Pen + && app.ui.tool == Tool::Selection + && let Some(pos) = resp.interact_pointer_pos() + && let Some((l, m)) = vertex_at(pos, false).map(|h| (h.layer, h.mask)).or_else(|| ov::segment_at(&paths, &map, pos, 6.0).map(|s| (s.0, s.1))) + { + // Double-click a path: free transform its points (Layer ▸ Mask and Shape Path ▸ Free + // Transform Points). + ov::begin_free_transform(&ctx, l, m); + } else if resp.double_clicked() + && !app.ui.tool.is_pen() && let Some(pos) = resp.interact_pointer_pos() { let cpt = map.to_comp(pos); @@ -1085,7 +1147,9 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { painter.text(r.center(), Align2::CENTER_CENTER, "Caching frames…", Tokens::ui(11.5), t.cache_green); } - bottom_bar(app, ui, bar, zoom, fit, time, &comp); + vt::draw_snap(&ctx, &painter, &map, &ectx); + vt::rulers(app, ui, &map, outer, area); + vt::bottom_bar(app, ui, bar, zoom, fit, time, &comp); } /// Parent-space position change per comp pixel of drag (x and y) for a layer: 2D layers map @@ -1181,49 +1245,94 @@ fn draw_rigs(app: &mut EffectcraftApp, painter: &egui::Painter, map: &ViewerMap, } } -/// Pen tool press at `pos`: start a mask on the selected layer, add a vertex, or close the path. -fn pen_press(app: &mut EffectcraftApp, ui: &mut egui::Ui, ectx: &EvalCtx, map: &ViewerMap, hits: &[VertexHit], pos: Pos2) { +/// Pen tool press at `pos`: continue the path in progress (pressing its first vertex closes it), +/// add a vertex on a visible path's segment, or start a new path: a mask on the selected +/// footage/solid layer, a shape path (Shape n group with Fill and Stroke) on the selected shape +/// layer, or a new shape layer when nothing is selected. The placed point snaps. +fn pen_press(app: &mut EffectcraftApp, ui: &mut egui::Ui, ectx: &EvalCtx, map: &ViewerMap, paths: &[ov::PathInfo], pos: Pos2, mods: egui::Modifiers) { + use effectcraft_engine::project::LayerSource; let gid = egui::Id::new("viewer-gesture"); let current: Option<(LayerId, u64)> = ui.data(|d| d.get_temp(pen_id())); - let target = current.map(|c| c.0).or_else(|| { - app.session.state.selected_layers.iter().copied().find(|id| ectx.comp.layer(*id).is_some_and(|l| l.masks().is_some() && !l.switches.locked)) - }); - let Some(lid) = target else { - app.ui.status = "Select a layer to draw a mask with the Pen tool".into(); - return; - }; - let Some(layer) = ectx.comp.layer(lid) else { return }; - let l2c = l2c(ectx, layer).0; - let Some(inv) = l2c.inverse() else { return }; - let c = map.to_comp(pos); - let lp = inv.apply(gv2(c[0], c[1])); - let lp = [lp.x, lp.y]; - let still_there = current.is_some_and(|(l, m)| layer.masks().is_some_and(|ms| ms.find_group(m).is_some()) && l == lid); - if let (true, Some((_, mask))) = (still_there, current) { - let count = hits.iter().filter(|h| h.layer == lid && h.mask == mask && h.tangent.is_none()).count(); - let first = hits.iter().find(|h| h.layer == lid && h.mask == mask && h.index == 0 && h.tangent.is_none()); - if count >= 2 && first.is_some_and(|f| f.pos.distance(pos) < 8.0) { - let _ = app.session.execute("mask.setClosed", json!({"layer": lid.0, "mask": mask, "closed": true})); + let c0 = map.to_comp(pos); + let corr = vt::snap(app, ui.ctx(), ectx, map, &[], &[c0], mods); + let c = [c0[0] + corr[0], c0[1] + corr[1]]; + if let Some((lid, uid)) = current + && let Some(p) = ov::path_of(ectx, lid, uid) + && let Some(inv) = p.m.inverse() + { + let n = p.sp.vertices.len(); + let first = p.sp.vertices.first().map(|v| { + let q = p.m.apply(gv2(v[0], v[1])); + map.to_screen([q.x, q.y]) + }); + if n >= 2 && first.is_some_and(|f| f.distance(pos) < 8.0) { + let _ = app.session.execute("mask.setClosed", json!({"layer": lid.0, "mask": uid, "closed": true})); ui.data_mut(|d| { d.remove::<(LayerId, u64)>(pen_id()); d.remove::(gid); }); return; } - if let Ok(v) = app.session.execute("mask.addVertex", json!({"layer": lid.0, "mask": mask, "point": lp})) { + let lp = inv.apply(gv2(c[0], c[1])); + let lp = [lp.x, lp.y]; + if let Ok(v) = app.session.execute("mask.addVertex", json!({"layer": lid.0, "mask": uid, "point": lp})) { let index = v.as_u64().unwrap_or(0) as usize; - ui.data_mut(|d| d.insert_temp(gid, Gesture::Pen { layer: lid, mask, index, vertex: lp, inv, press: pos })); + ui.data_mut(|d| d.insert_temp(gid, Gesture::Pen { layer: lid, mask: uid, index, vertex: lp, inv, press: pos })); } return; } - if let Ok(v) = app.session.execute("mask.new", json!({"layer": lid.0, "vertices": [lp]})) - && let Some(mask) = v["mask"].as_u64() - { - ui.data_mut(|d| { - d.insert_temp(pen_id(), (lid, mask)); - d.insert_temp(gid, Gesture::Pen { layer: lid, mask, index: 0, vertex: lp, inv, press: pos }); - }); + // On a visible path's segment the Pen adds a vertex there. + if let Some((l, m, seg, t)) = ov::segment_at(paths, map, pos, 5.0) { + let _ = app.session.execute("mask.insertVertex", json!({"layer": l.0, "mask": m, "segment": seg, "t": t})); + return; } + let target = app + .session + .state + .selected_layers + .iter() + .copied() + .find(|id| ectx.comp.layer(*id).is_some_and(|l| !l.switches.locked && (l.masks().is_some() || matches!(l.source, LayerSource::Shape)))); + let layer = target.and_then(|id| ectx.comp.layer(id)); + let (lid, uid, inv) = match layer { + Some(l) if !matches!(l.source, LayerSource::Shape) => { + let Some(inv) = l2c(ectx, l).0.inverse() else { return }; + let lp = inv.apply(gv2(c[0], c[1])); + let Ok(v) = app.session.execute("mask.new", json!({"layer": l.id.0, "vertices": [[lp.x, lp.y]]})) else { return }; + let Some(mask) = v["mask"].as_u64() else { return }; + (l.id, mask, inv) + } + Some(l) => { + let Some(inv) = l2c(ectx, l).0.inverse() else { return }; + let lp = inv.apply(gv2(c[0], c[1])); + let fill = app.ui.fill_color; + let stroke = app.ui.stroke_color; + let r = app.session.execute( + "shape.newPath", + json!({"layer": l.id.0, "vertices": [[lp.x, lp.y]], "space": "layer", "fill": [fill[0], fill[1], fill[2]], "stroke": [stroke[0], stroke[1], stroke[2]], "strokeWidth": app.ui.stroke_width}), + ); + let Some(path) = r.ok().and_then(|v| v["path"].as_u64()) else { return }; + (l.id, path, inv) + } + None => { + // A new shape layer at the comp centre (unrotated: comp → layer is a translation). + let fill = app.ui.fill_color; + let stroke = app.ui.stroke_color; + let r = app.session.execute( + "shape.newPath", + json!({"vertices": [c], "space": "comp", "fill": [fill[0], fill[1], fill[2]], "stroke": [stroke[0], stroke[1], stroke[2]], "strokeWidth": app.ui.stroke_width}), + ); + let Some(v) = r.ok() else { return }; + let (Some(l), Some(path)) = (v["layer"].as_u64(), v["path"].as_u64()) else { return }; + let inv = Mat3::translate(gv2(-(ectx.comp.width as f64) / 2.0, -(ectx.comp.height as f64) / 2.0)); + (LayerId(l), path, inv) + } + }; + let lp = inv.apply(gv2(c[0], c[1])); + ui.data_mut(|d| { + d.insert_temp(pen_id(), (lid, uid)); + d.insert_temp(gid, Gesture::Pen { layer: lid, mask: uid, index: 0, vertex: [lp.x, lp.y], inv, press: pos }); + }); } /// Topmost layer under a comp point (selects it; shift toggles). Returns the hit layer. @@ -1333,136 +1442,6 @@ fn text_edit_overlay(app: &mut EffectcraftApp, ui: &mut egui::Ui, map: &ViewerMa } } -fn bottom_bar(app: &mut EffectcraftApp, ui: &mut egui::Ui, bar: Rect, zoom: f32, fit: f32, time: Tick, comp: &effectcraft_engine::project::Comp) { - let t = app.tokens; - let p = ui.painter().clone(); - p.rect_filled(bar, 0.0, t.panel_bg); - p.line_segment([bar.left_top(), bar.right_top()], Stroke::new(1.0, t.separator)); - let cy = bar.center().y; - let mut x = bar.min.x + 8.0; - // Magnification. - let ppp = ui.ctx().pixels_per_point(); - let mag = if app.ui.viewer.zoom.is_none() { format!("Fit ({:.0}%)", fit * ppp * 100.0) } else { format!("{:.1}%", zoom * ppp * 100.0).replace(".0%", "%") }; - let r = Rect::from_min_size(pos2(x, cy - 10.0), vec2(92.0, 20.0)); - if widgets::dropdown(ui, r, &mag, &t, egui::Id::new("vw-mag")).clicked() { - widgets::open_popup(ui, egui::Id::new("vw-mag-pop")); - } - app.auto.add("viewer.magnification", r, "Magnification"); - let opts: Vec = ["Fit", "Fit up to 100%", "-", "1.5%", "3.1%", "6.25%", "12.5%", "25%", "33.3%", "50%", "100%", "200%", "400%", "800%", "1600%"] - .iter() - .map(|s| s.to_string()) - .collect(); - if let Some(i) = widgets::popup_menu(ui, egui::Id::new("vw-mag-pop"), r.left_top() - vec2(0.0, 380.0), &opts, None) { - let o = &opts[i]; - app.ui.viewer.pan = [0.0, 0.0]; - app.ui.viewer.zoom = match o.as_str() { - "Fit" => None, - "Fit up to 100%" => Some(fit.min(1.0 / ppp)), - s => s.trim_end_matches('%').parse::().ok().map(|v| v / 100.0 / ppp), - }; - } - x = r.max.x + 6.0; - // Toggles. - let tog = |ui: &mut egui::Ui, auto: &mut crate::automation::Registry, x: &mut f32, icon: Icon, on: bool, id: &str, tip: &str| -> bool { - let r = Rect::from_min_size(pos2(*x, cy - 11.0), vec2(22.0, 22.0)); - let resp = widgets::icon_button(ui, r, icon, on, &t, egui::Id::new(id)).on_hover_text(tip); - auto.add(&format!("viewer.{id}"), r, tip); - *x += 24.0; - resp.clicked() - }; - if tog(ui, &mut app.auto, &mut x, Icon::Grid, app.ui.viewer.grid || app.ui.viewer.safe_margins, "grid", "Choose grid and guide options") { - if app.ui.viewer.safe_margins { - app.ui.viewer.safe_margins = false; - app.ui.viewer.grid = !app.ui.viewer.grid; - } else { - app.ui.viewer.safe_margins = true; - } - } - if tog(ui, &mut app.auto, &mut x, Icon::MaskVis, app.ui.viewer.show_masks, "masks", "Toggle Mask and Shape Path Visibility") { - app.ui.viewer.show_masks = !app.ui.viewer.show_masks; - } - // Timecode. - let tc = crate::panels::timecode(&app.session, comp, time); - let g = p.layout_no_wrap(tc, Tokens::mono(12.0), t.timecode); - let tr = Rect::from_min_size(pos2(x + 4.0, cy - 9.0), g.size() + vec2(8.0, 4.0)); - p.galley(pos2(tr.min.x + 4.0, tr.min.y + 2.0), g, t.timecode); - app.auto.add("viewer.timecode", tr, "Current time"); - x = tr.max.x + 6.0; - if tog(ui, &mut app.auto, &mut x, Icon::Snapshot, false, "snapshot", "Take Snapshot") { - app.ui.status = "Snapshot taken".into(); - } - let _ = tog(ui, &mut app.auto, &mut x, Icon::ShowSnapshot, false, "showSnapshot", "Show Snapshot"); - let _ = tog(ui, &mut app.auto, &mut x, Icon::Channel, app.ui.viewer.channel != "RGB", "channel", "Show Channel and Color Management Settings"); - // Resolution. - let r = Rect::from_min_size(pos2(x + 2.0, cy - 10.0), vec2(78.0, 20.0)); - let rl = if app.ui.viewer.res == Resolution::Auto { - let s = app.viewer_scale(zoom, ppp); - format!( - "Auto ({})", - if s >= 1.0 { - "Full" - } else if s >= 0.5 { - "Half" - } else if s >= 0.33 { - "Third" - } else { - "Quarter" - } - ) - } else { - app.ui.viewer.res.label().to_string() - }; - if widgets::dropdown(ui, r, &rl, &t, egui::Id::new("vw-res")).clicked() { - widgets::open_popup(ui, egui::Id::new("vw-res-pop")); - } - app.auto.add("viewer.resolution", r, "Resolution/Down Sample Factor"); - let ro: Vec = Resolution::ALL.iter().map(|r| r.label().to_string()).collect(); - if let Some(i) = - widgets::popup_menu(ui, egui::Id::new("vw-res-pop"), r.left_top() - vec2(0.0, 140.0), &ro, Resolution::ALL.iter().position(|x| *x == app.ui.viewer.res)) - { - app.ui.viewer.res = Resolution::ALL[i]; - } - x = r.max.x + 6.0; - let has_roi = app.session.state.region_of_interest.is_some(); - if tog(ui, &mut app.auto, &mut x, Icon::Region, has_roi, "roi", "Region of Interest") { - // Toggle a centred region of interest (Composition ▸ Crop Comp to Region of Interest). - let rect = if has_roi { - serde_json::Value::Null - } else { - json!([comp.width as f64 / 4.0, comp.height as f64 / 4.0, comp.width as f64 / 2.0, comp.height as f64 / 2.0]) - }; - let _ = app.session.execute("view.setRegionOfInterest", json!({"rect": rect})); - } - if tog(ui, &mut app.auto, &mut x, Icon::Checker, app.ui.viewer.transparency_grid, "transparency", "Toggle Transparency Grid") { - app.ui.viewer.transparency_grid = !app.ui.viewer.transparency_grid; - } - if tog(ui, &mut app.auto, &mut x, Icon::Sparkle, app.ui.viewer.fast_preview, "fastPreviews", "Fast Previews") { - app.ui.viewer.fast_preview = !app.ui.viewer.fast_preview; - } - // 3D renderer + view. - if comp.has_3d() { - let r = Rect::from_min_size(pos2(x + 2.0, cy - 10.0), vec2(96.0, 20.0)); - let _ = widgets::dropdown(ui, r, "Classic 3D", &t, egui::Id::new("vw-3d")); - app.auto.add("viewer.renderer3d", r, "3D Renderer"); - x = r.max.x + 4.0; - let cid = app.session.active_comp_id(); - let cur = cid.and_then(|c| app.session.state.views3d.get(&c)).map(|v| v.current).unwrap_or_default(); - let r = Rect::from_min_size(pos2(x, cy - 10.0), vec2(118.0, 20.0)); - if widgets::dropdown(ui, r, cur.label(), &t, egui::Id::new("vw-cam")).clicked() { - widgets::open_popup(ui, egui::Id::new("vw-cam-pop")); - } - app.auto.add("viewer.view3d", r, "3D View"); - let opts: Vec = View3D::ALL.iter().map(|v| v.label().to_string()).collect(); - let at = r.left_top() - vec2(0.0, 22.0 * opts.len() as f32 + 12.0); - if let Some(i) = widgets::popup_menu(ui, egui::Id::new("vw-cam-pop"), at, &opts, View3D::ALL.iter().position(|v| *v == cur)) { - let _ = app.session.execute("view.set3DView", json!({"view": View3D::ALL[i].id()})); - } - } - // Right: render time. - let ms = app.frames.last_ms.lock().map(|v| *v).unwrap_or(0.0); - p.text(pos2(bar.max.x - 10.0, cy), Align2::RIGHT_CENTER, format!("{ms:.0} ms"), Tokens::ui(11.0), t.text_faint); -} - fn empty_state(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { let t = app.tokens; let p = ui.painter(); diff --git a/crates/ui-egui/src/panels/viewer_overlays.rs b/crates/ui-egui/src/panels/viewer_overlays.rs new file mode 100644 index 00000000..08cc32b5 --- /dev/null +++ b/crates/ui-egui/src/panels/viewer_overlays.rs @@ -0,0 +1,528 @@ +//! Composition viewer overlays and their drags: mask and shape paths (vertices, tangents, +//! segments for Add Vertex), position motion paths with keyframe dots and spatial Bezier +//! handles, the path free-transform box and the Mask Feather tool. +//! +//! Every edit is an engine command (`mask.*`, `path.freeTransform`, `keys.set`, +//! `keys.setSpatialTangents`, `prop.set`). + +use effectcraft_engine::geom::{Mat3, vec2 as gv2}; +use effectcraft_engine::keyframe::ShapePath; +use effectcraft_engine::project::{GroupKind, Layer, LayerId}; +use effectcraft_engine::render::EvalCtx; +use effectcraft_engine::time::Tick; +use effectcraft_engine::{KeyRef, VertexRef}; +use egui::{Color32, Pos2, Rect, Stroke, StrokeKind, vec2}; +use serde_json::json; + +use super::viewer::ViewerMap; +use crate::EffectcraftApp; + +/// A vertex or tangent handle drawn this frame (masks and shape paths alike; `mask` is the path +/// group's uid). +#[derive(Clone, Copy)] +pub(crate) struct VertexHit { + pub layer: LayerId, + pub mask: u64, + pub index: usize, + pub pos: Pos2, + /// None = the vertex itself, Some(out?) = a tangent handle. + pub tangent: Option, + /// Path-space vertex position and path → comp matrix. + pub vertex: [f64; 2], + pub l2c: Mat3, +} + +/// A path drawn this frame (for segment hits and the free-transform box). +#[derive(Clone)] +pub(crate) struct PathInfo { + pub layer: LayerId, + pub uid: u64, + /// Path space → comp. + pub m: Mat3, + pub sp: ShapePath, + pub is_mask: bool, +} + +fn cubic(p0: [f64; 2], p1: [f64; 2], p2: [f64; 2], p3: [f64; 2], t: f64) -> [f64; 2] { + let u = 1.0 - t; + let f = |k: usize| u * u * u * p0[k] + 3.0 * u * u * t * p1[k] + 3.0 * u * t * t * p2[k] + t * t * t * p3[k]; + [f(0), f(1)] +} + +/// Control points of segment `i` (vertex i → next) in path space. +pub(crate) fn segment(sp: &ShapePath, i: usize) -> Option<[[f64; 2]; 4]> { + let n = sp.vertices.len(); + let j = if i + 1 < n { + i + 1 + } else if sp.closed && n > 1 { + 0 + } else { + return None; + }; + let (a, d) = (sp.vertices[i], sp.vertices[j]); + let to = sp.out_tangents.get(i).copied().unwrap_or_default(); + let ti = sp.in_tangents.get(j).copied().unwrap_or_default(); + Some([a, [a[0] + to[0], a[1] + to[1]], [d[0] + ti[0], d[1] + ti[1]], d]) +} + +/// The path segment under a screen point: (layer, path uid, segment, t). +pub(crate) fn segment_at(paths: &[PathInfo], map: &ViewerMap, pos: Pos2, tol: f32) -> Option<(LayerId, u64, usize, f64)> { + let mut best: Option<(f32, (LayerId, u64, usize, f64))> = None; + for p in paths { + for i in 0..p.sp.vertices.len() { + let Some(c) = segment(&p.sp, i) else { continue }; + for k in 1..48 { + let t = k as f64 / 48.0; + let q = cubic(c[0], c[1], c[2], c[3], t); + let cq = p.m.apply(gv2(q[0], q[1])); + let d = map.to_screen([cq.x, cq.y]).distance(pos); + if d < tol && best.as_ref().is_none_or(|b| d < b.0) { + best = Some((d, (p.layer, p.uid, i, t))); + } + } + } + } + best.map(|b| b.1) +} + +/// A mask or shape path of a layer by group uid, evaluated at the context time. +pub(crate) fn path_of(ectx: &EvalCtx, layer: LayerId, uid: u64) -> Option { + let l = ectx.comp.layer(layer)?; + let g = l.props.find_group(uid)?; + let sp = g.get("path").map(|pr| ectx.value(l, pr)).and_then(|v| v.as_path().cloned())?; + let (m, _) = super::viewer::l2c(ectx, l); + let is_mask = matches!(g.kind, GroupKind::Mask { .. }); + let m = if is_mask { m } else { m * effectcraft_engine::render::shapes::item_matrix(ectx, l, uid).unwrap_or(Mat3::IDENTITY) }; + Some(PathInfo { layer, uid, m, sp, is_mask }) +} + +fn flatten(sp: &ShapePath, m: &Mat3, map: &ViewerMap) -> Vec { + let k = effectcraft_engine::render::kurbo_path(sp); + let mut pts: Vec = vec![]; + kurbo::flatten(k.iter(), 0.5, |el| match el { + kurbo::PathEl::MoveTo(q) | kurbo::PathEl::LineTo(q) => { + let c = m.apply(gv2(q.x, q.y)); + pts.push(map.to_screen([c.x, c.y])); + } + _ => {} + }); + if sp.closed && !pts.is_empty() { + pts.push(pts[0]); + } + pts +} + +/// Draw the masks and (on shape layers) shape paths of a selected layer with their vertices; +/// selected vertices show their tangent handles. Collects vertex hits and paths. +#[allow(clippy::too_many_arguments)] +pub(crate) fn draw_paths( + app: &mut EffectcraftApp, + painter: &egui::Painter, + map: &ViewerMap, + ectx: &EvalCtx, + l: &Layer, + label_col: Color32, + sel: &[VertexRef], + pen: Option<(LayerId, u64)>, + hover: Option, + hits: &mut Vec, + paths: &mut Vec, +) { + let vs = app.session.prefs.general.path_point_size as f32 + 1.0; + let (m, _) = super::viewer::l2c(ectx, l); + let mut list: Vec<(u64, String, ShapePath, Mat3, Color32, bool)> = vec![]; + if let Some(masks) = l.masks() { + for g in masks.groups() { + let GroupKind::Mask { color, locked, .. } = g.kind else { continue }; + if locked && app.session.state.hide_locked_masks { + continue; + } + let Some(sp) = g.get("path").map(|pr| ectx.value(l, pr)).and_then(|v| v.as_path().cloned()) else { continue }; + list.push((g.uid, g.name.clone(), sp, m, Color32::from_rgb(color[0], color[1], color[2]), true)); + } + } + for (uid, sp) in effectcraft_engine::viewer::shape_paths(ectx, l) { + let im = effectcraft_engine::render::shapes::item_matrix(ectx, l, uid).unwrap_or(Mat3::IDENTITY); + let name = l.props.find_group(uid).map(|g| g.name.clone()).unwrap_or_default(); + list.push((uid, name, sp, m * im, label_col, false)); + } + for (uid, name, sp, pm, mc, is_mask) in list { + painter.add(egui::Shape::line(flatten(&sp, &pm, map), Stroke::new(1.0, mc))); + let scr = |p: [f64; 2]| { + let c = pm.apply(gv2(p[0], p[1])); + map.to_screen([c.x, c.y]) + }; + for (i, v) in sp.vertices.iter().enumerate() { + let s = scr(*v); + let selected = sel.iter().any(|x| x.layer == l.id && x.mask == uid && x.index == i); + if selected { + for (out, tg) in [(false, sp.in_tangents.get(i)), (true, sp.out_tangents.get(i))] { + let Some(tg) = tg.filter(|t| t[0] != 0.0 || t[1] != 0.0) else { continue }; + let h = scr([v[0] + tg[0], v[1] + tg[1]]); + painter.line_segment([s, h], Stroke::new(1.0, mc)); + painter.circle_filled(h, 3.0, mc); + hits.push(VertexHit { layer: l.id, mask: uid, index: i, pos: h, tangent: Some(out), vertex: *v, l2c: pm }); + } + painter.rect_filled(Rect::from_center_size(s, vec2(vs, vs)), 0.0, mc); + } else { + painter.rect_filled(Rect::from_center_size(s, vec2(vs, vs)), 0.0, Color32::from_black_alpha(160)); + painter.rect_stroke(Rect::from_center_size(s, vec2(vs, vs)), 0.0, Stroke::new(1.0, mc), StrokeKind::Inside); + } + let kind = if is_mask { "mask" } else { "shapePath" }; + app.auto.add(&format!("viewer.{kind}.{uid}.vertex.{i}"), Rect::from_center_size(s, vec2(8.0, 8.0)), &name); + hits.push(VertexHit { layer: l.id, mask: uid, index: i, pos: s, tangent: None, vertex: *v, l2c: pm }); + } + // Pen rubber band from the last vertex to the pointer. + if pen == Some((l.id, uid)) + && let (Some(last), Some(hp)) = (sp.vertices.last(), hover) + { + painter.line_segment([scr(*last), hp], Stroke::new(1.0, mc.gamma_multiply(0.6))); + } + paths.push(PathInfo { layer: l.id, uid, m: pm, sp, is_mask }); + } +} + +// ---------------------------------------------------------------- motion paths + +/// A keyframe dot or spatial tangent handle on a motion path. +#[derive(Clone, Copy)] +pub(crate) struct KeyHit { + pub layer: LayerId, + pub prop: u64, + /// Layer time of the key. + pub time: Tick, + pub pos: Pos2, + /// None = the key, Some(out?) = a tangent handle. + pub tangent: Option, + pub value: [f64; 3], + /// Parent space → comp. + pub p2c: Mat3, +} + +/// Parent space → comp matrix of a 2D layer at the context time. +pub(crate) fn parent_to_comp(ectx: &EvalCtx, l: &Layer) -> Mat3 { + match l.parent.and_then(|p| ectx.comp.layer(p)) { + Some(p) => { + let w = ectx.world_matrix(p).0; + Mat3([[w[0][0], w[0][1], w[0][3]], [w[1][0], w[1][1], w[1][3]], [0.0, 0.0, 1.0]]) + } + None => Mat3::IDENTITY, + } +} + +/// Draw the position motion path of a selected 2D layer: frame dots along the path, keyframe +/// squares (filled when selected) and spatial Bezier tangent handles. Works through parents. +pub(crate) fn motion_path(app: &mut EffectcraftApp, painter: &egui::Painter, map: &ViewerMap, ectx: &EvalCtx, l: &Layer, col: Color32, hits: &mut Vec) { + let Some(pos) = l.transform().and_then(|tr| tr.get("position")) else { return }; + if pos.keys.len() < 2 || l.is_3d() { + return; + } + let p2c = parent_to_comp(ectx, l); + let to_scr = |v: [f64; 3]| { + let c = p2c.apply(gv2(v[0], v[1])); + map.to_screen([c.x, c.y]) + }; + let (lt0, lt1) = (pos.keys[0].time, pos.keys[pos.keys.len() - 1].time); + let fd = ectx.comp.frame_duration(); + let mut pts = vec![]; + let mut lt = lt0; + while lt <= lt1 && pts.len() < 20_000 { + pts.push(to_scr(pos.value_at(lt).as_vec3())); + lt += fd; + } + pts.push(to_scr(pos.value_at(lt1).as_vec3())); + let faint = col.gamma_multiply(0.8); + painter.add(egui::Shape::line(pts.clone(), Stroke::new(1.0, faint))); + for q in &pts { + painter.circle_filled(*q, 1.2, faint); + } + let sel = &app.session.state.selected_keys; + for (i, k) in pos.keys.iter().enumerate() { + let v = k.value.as_vec3(); + let s = to_scr(v); + let (tin, tout) = effectcraft_engine::keyframe::spatial_tangents(&pos.keys, i); + for (out, tg) in [(false, tin), (true, tout)] { + let has = (out && i + 1 < pos.keys.len()) || (!out && i > 0); + if !has || (tg[0] == 0.0 && tg[1] == 0.0) { + continue; + } + let h = to_scr([v[0] + tg[0], v[1] + tg[1], v[2] + tg[2]]); + painter.line_segment([s, h], Stroke::new(1.0, col)); + painter.circle_filled(h, 3.0, col); + let side = if out { "out" } else { "in" }; + app.auto.add(&format!("viewer.motionPath.{}.{i}.{side}", l.id.0), Rect::from_center_size(h, vec2(8.0, 8.0)), "Spatial tangent"); + hits.push(KeyHit { layer: l.id, prop: pos.uid, time: k.time, pos: h, tangent: Some(out), value: v, p2c }); + } + let r = Rect::from_center_size(s, vec2(7.0, 7.0)); + if sel.contains(&KeyRef { layer: l.id, prop: pos.uid, time: k.time }) { + painter.rect_filled(r, 0.0, col); + } else { + painter.rect_filled(r, 0.0, Color32::from_black_alpha(140)); + painter.rect_stroke(r, 0.0, Stroke::new(1.0, col), StrokeKind::Inside); + } + app.auto.add(&format!("viewer.motionPath.{}.{i}", l.id.0), r.expand(2.0), "Position keyframe"); + hits.push(KeyHit { layer: l.id, prop: pos.uid, time: k.time, pos: s, tangent: None, value: v, p2c }); + } +} + +// ---------------------------------------------------------------- free transform + +fn ft_id() -> egui::Id { + egui::Id::new("viewer-free-transform") +} + +/// Enter Free Transform on a path (double-click a path with the Selection tool). +pub(crate) fn begin_free_transform(ctx: &egui::Context, layer: LayerId, uid: u64) { + ctx.data_mut(|d| d.insert_temp(ft_id(), (layer, uid))); +} + +pub(crate) fn end_free_transform(ctx: &egui::Context) { + ctx.data_mut(|d| d.remove::<(LayerId, u64)>(ft_id())); +} + +pub(crate) fn free_transform_target(ctx: &egui::Context) -> Option<(LayerId, u64)> { + ctx.data(|d| d.get_temp(ft_id())) +} + +/// The free-transform box: path-space bounds of the transformed vertices, its handles on screen +/// (corners 0–3, edge midpoints 4–7) and the path → comp matrix. +pub(crate) struct FtBox { + pub layer: LayerId, + pub uid: u64, + pub b: [f64; 4], + pub m: Mat3, + pub handles: [Pos2; 8], + pub quad: [Pos2; 4], +} + +impl FtBox { + /// Path-space position of handle `i`. + pub fn handle_local(&self, i: usize) -> [f64; 2] { + let [x0, y0, x1, y1] = self.b; + let (cx, cy) = ((x0 + x1) / 2.0, (y0 + y1) / 2.0); + [[x0, y0], [x1, y0], [x1, y1], [x0, y1], [cx, y0], [x1, cy], [cx, y1], [x0, cy]][i] + } + pub fn center(&self) -> [f64; 2] { + [(self.b[0] + self.b[2]) / 2.0, (self.b[1] + self.b[3]) / 2.0] + } +} + +/// Draw the free-transform box of the target path (if any) and return it for hit tests. +pub(crate) fn draw_free_transform( + app: &mut EffectcraftApp, + ctx: &egui::Context, + painter: &egui::Painter, + map: &ViewerMap, + paths: &[PathInfo], +) -> Option { + let (layer, uid) = free_transform_target(ctx)?; + let Some(p) = paths.iter().find(|p| p.layer == layer && p.uid == uid) else { + end_free_transform(ctx); + return None; + }; + let sel: Vec = app.session.state.selected_vertices.iter().filter(|v| v.layer == layer && v.mask == uid).map(|v| v.index).collect(); + let idx: Vec = if sel.len() >= 2 { sel } else { (0..p.sp.vertices.len()).collect() }; + let (mut lo, mut hi) = ([f64::MAX; 2], [f64::MIN; 2]); + for &i in &idx { + let Some(v) = p.sp.vertices.get(i) else { continue }; + lo = [lo[0].min(v[0]), lo[1].min(v[1])]; + hi = [hi[0].max(v[0]), hi[1].max(v[1])]; + } + if lo[0] > hi[0] { + return None; + } + let b = [lo[0], lo[1], hi[0].max(lo[0] + 1e-3), hi[1].max(lo[1] + 1e-3)]; + let mut f = FtBox { layer, uid, b, m: p.m, handles: [Pos2::ZERO; 8], quad: [Pos2::ZERO; 4] }; + for i in 0..8 { + let q = f.handle_local(i); + let c = p.m.apply(gv2(q[0], q[1])); + f.handles[i] = map.to_screen([c.x, c.y]); + } + f.quad = [f.handles[0], f.handles[1], f.handles[2], f.handles[3]]; + let col = app.tokens.accent; + painter.add(egui::Shape::closed_line(f.quad.to_vec(), Stroke::new(1.0, col))); + for (i, h) in f.handles.iter().enumerate() { + let r = Rect::from_center_size(*h, vec2(7.0, 7.0)); + painter.rect_filled(r, 0.0, Color32::WHITE); + painter.rect_stroke(r, 0.0, Stroke::new(1.0, col), StrokeKind::Outside); + app.auto.add(&format!("viewer.freeTransform.handle.{i}"), r, "Free transform handle"); + } + let c = f.center(); + let cc = p.m.apply(gv2(c[0], c[1])); + let cs = map.to_screen([cc.x, cc.y]); + painter.circle_stroke(cs, 4.0, Stroke::new(1.0, col)); + Some(f) +} + +fn point_in_quad(p: Pos2, q: &[Pos2; 4]) -> bool { + let mut sign = 0.0f32; + for i in 0..4 { + let (a, b) = (q[i], q[(i + 1) % 4]); + let c = (b.x - a.x) * (p.y - a.y) - (b.y - a.y) * (p.x - a.x); + if c.abs() < 1e-6 { + continue; + } + if sign == 0.0 { + sign = c.signum(); + } else if c.signum() != sign { + return false; + } + } + true +} + +// ---------------------------------------------------------------- drags + +/// Overlay drags owned by this module. +#[derive(Clone, Debug)] +pub(crate) enum Drag { + /// A motion-path keyframe: its value moves with the pointer (parent space). + Key { layer: LayerId, prop: u64, time: Tick, start: [f64; 3], press: [f64; 2], inv: Mat3 }, + /// A spatial tangent handle of a motion-path key. + KeyTangent { layer: LayerId, prop: u64, time: Tick, out: bool, key: [f64; 3], inv: Mat3 }, + /// Free transform: 0 move, 1 scale (anchor, axes), 2 rotate about `anchor`. + Ft { layer: LayerId, path: u64, mode: u8, anchor: [f64; 2], last: [f64; 2], inv: Mat3, axes: [bool; 2] }, + /// Mask Feather tool: drag away from the path to feather the mask. + Feather { layer: LayerId, prop: u64, start: [f64; 2], press: Pos2 }, + /// A guide dragged in the viewer. + Guide { index: usize, vertical: bool }, + /// Drawing the region of interest. + Roi { start: [f64; 2] }, +} + +/// Start a motion-path drag at `press` (keys before tangents), selecting the key. +pub(crate) fn begin_key_drag(app: &mut EffectcraftApp, hits: &[KeyHit], press: Pos2, cpt: [f64; 2], shift: bool) -> Option { + let h = hits + .iter() + .rev() + .filter(|h| h.tangent.is_some()) + .find(|h| h.pos.distance(press) < 6.0) + .or_else(|| hits.iter().rev().find(|h| h.tangent.is_none() && h.pos.distance(press) < 6.0))?; + let inv = h.p2c.inverse().unwrap_or(Mat3::IDENTITY); + match h.tangent { + Some(out) => Some(Drag::KeyTangent { layer: h.layer, prop: h.prop, time: h.time, out, key: h.value, inv }), + None => { + let k = KeyRef { layer: h.layer, prop: h.prop, time: h.time }; + if !app.session.state.selected_keys.contains(&k) || shift { + let _ = app.session.execute("keys.select", json!({"keys": [{"layer": h.layer.0, "prop": h.prop, "time": h.time.seconds()}], "add": shift})); + } + Some(Drag::Key { layer: h.layer, prop: h.prop, time: h.time, start: h.value, press: cpt, inv }) + } + } +} + +/// Start a free-transform drag on the box: a handle scales about the opposite one (corners both +/// axes, edges one), inside moves, just outside a corner rotates about the centre. +pub(crate) fn begin_ft_drag(f: &FtBox, press: Pos2, map: &ViewerMap) -> Option { + let inv = f.m.inverse()?; + let c = map.to_comp(press); + let lp = inv.apply(gv2(c[0], c[1])); + let lp = [lp.x, lp.y]; + if let Some(i) = (0..8).find(|i| f.handles[*i].distance(press) < 7.0) { + let opp = [2, 3, 0, 1, 6, 7, 4, 5][i]; + let axes = match i { + 4 | 6 => [false, true], + 5 | 7 => [true, false], + _ => [true, true], + }; + return Some(Drag::Ft { layer: f.layer, path: f.uid, mode: 1, anchor: f.handle_local(opp), last: lp, inv, axes }); + } + if point_in_quad(press, &f.quad) { + return Some(Drag::Ft { layer: f.layer, path: f.uid, mode: 0, anchor: f.center(), last: lp, inv, axes: [true, true] }); + } + if f.quad.iter().any(|q| q.distance(press) < 24.0) { + return Some(Drag::Ft { layer: f.layer, path: f.uid, mode: 2, anchor: f.center(), last: lp, inv, axes: [true, true] }); + } + None +} + +/// Mask Feather tool: start on a mask path. +pub(crate) fn begin_feather(app: &EffectcraftApp, ectx: &EvalCtx, paths: &[PathInfo], map: &ViewerMap, press: Pos2) -> Option { + let (layer, uid, _, _) = segment_at(&paths.iter().filter(|p| p.is_mask).cloned().collect::>(), map, press, 10.0)?; + let l = ectx.comp.layer(layer)?; + let pr = l.masks()?.find_group(uid)?.get("feather")?; + let _ = app; + Some(Drag::Feather { layer, prop: pr.uid, start: ectx.value(l, pr).as_vec2(), press }) +} + +/// Advance an overlay drag to the pointer (`cpt` comp, `pos` screen). `snap` corrects a comp +/// point for snapping. Returns the replacement drag state. +#[allow(clippy::too_many_arguments)] +pub(crate) fn update( + app: &mut EffectcraftApp, + d: &Drag, + cpt: [f64; 2], + pos: Pos2, + mods: egui::Modifiers, + merge: &str, + zoom: f32, + snap: &mut dyn FnMut(&EffectcraftApp, [f64; 2], LayerId) -> [f64; 2], +) -> Option { + match d.clone() { + Drag::Key { layer, prop, time, start, press, inv } => { + // Snap the key's on-screen position like a layer drag. + let start_c = inv.inverse().map(|m| m.apply(gv2(start[0], start[1]))).map(|v| [v.x, v.y]).unwrap_or([start[0], start[1]]); + let mut target = [start_c[0] + cpt[0] - press[0], start_c[1] + cpt[1] - press[1]]; + let s = snap(app, target, layer); + target = [target[0] + s[0], target[1] + s[1]]; + let p = inv.apply(gv2(target[0], target[1])); + let v = json!([p.x, p.y, start[2]]); + let r = app.session.execute("keys.set", json!({"layer": layer.0, "prop": prop, "time": time.seconds(), "value": v, "merge": merge})); + if let Err(e) = r { + app.ui.status = e.to_string(); + } + None + } + Drag::KeyTangent { layer, prop, time, out, key, inv } => { + let p = inv.apply(gv2(cpt[0], cpt[1])); + let tg = json!([p.x - key[0], p.y - key[1], 0.0]); + let mut q = json!({"layer": layer.0, "prop": prop, "time": time.seconds(), "break": mods.alt, "merge": merge}); + q[if out { "out" } else { "in" }] = tg; + let _ = app.session.execute("keys.setSpatialTangents", q); + None + } + Drag::Ft { layer, path, mode, anchor, last, inv, axes } => { + let p = inv.apply(gv2(cpt[0], cpt[1])); + let cur = [p.x, p.y]; + let mut q = json!({"layer": layer.0, "mask": path, "anchor": anchor, "merge": merge}); + match mode { + 0 => q["offset"] = json!([cur[0] - last[0], cur[1] - last[1]]), + 1 => { + let f = |k: usize| { + let a = last[k] - anchor[k]; + if axes[k] && a.abs() > 1e-6 { ((cur[k] - anchor[k]) / a).clamp(-50.0, 50.0) } else { 1.0 } + }; + let (mut fx, mut fy) = (f(0), f(1)); + if mods.shift && axes[0] && axes[1] { + let k = (fx + fy) / 2.0; + (fx, fy) = (k, k); + } + if fx.abs() < 1e-3 || fy.abs() < 1e-3 { + return None; + } + q["scale"] = json!([fx * 100.0, fy * 100.0]); + } + _ => { + let a0 = (last[1] - anchor[1]).atan2(last[0] - anchor[0]); + let a1 = (cur[1] - anchor[1]).atan2(cur[0] - anchor[0]); + q["rotation"] = json!((a1 - a0).to_degrees()); + } + } + if cur != last { + let _ = app.session.execute("path.freeTransform", q); + } + Some(Drag::Ft { layer, path, mode, anchor, last: cur, inv, axes }) + } + Drag::Feather { layer, prop, start, press } => { + let amt = (pos.distance(press) / zoom.max(1e-3)) as f64; + let v = json!([(start[0] + amt).max(0.0), (start[1] + amt).max(0.0)]); + let _ = app.session.execute("prop.set", json!({"layer": layer.0, "prop": prop, "value": v, "merge": merge})); + None + } + Drag::Guide { index, .. } => { + let _ = index; + None + } + Drag::Roi { .. } => None, + } +} diff --git a/crates/ui-egui/src/panels/viewer_tools.rs b/crates/ui-egui/src/panels/viewer_tools.rs new file mode 100644 index 00000000..79688e19 --- /dev/null +++ b/crates/ui-egui/src/panels/viewer_tools.rs @@ -0,0 +1,689 @@ +//! Composition viewer tools: snapping (targets and the highlighted feedback), rulers with guides +//! dragged out of them, the displayed frame (Show Channel, exposure, snapshots, region of +//! interest, Wireframe Fast Previews) and the bottom control bar in After Effects' order. +//! +//! Edits go through engine commands (`view.*`, `comp.*`); the viewer calls in from small hooks. + +use effectcraft_engine::commands::viewer_cmds::FastPreviews; +use effectcraft_engine::project::{Comp, ItemId, LayerId}; +use effectcraft_engine::render::EvalCtx; +use effectcraft_engine::time::Tick; +use effectcraft_engine::viewer::{self as vw, Channel, Snap, SnapKind, SnapSource}; +use egui::{Align2, Color32, Pos2, Rect, Sense, Stroke, StrokeKind, pos2, vec2}; +use serde_json::json; + +use super::viewer::ViewerMap; +use crate::icons::Icon; +use crate::state::Resolution; +use crate::theme::Tokens; +use crate::{EffectcraftApp, widgets}; + +// ---------------------------------------------------------------- snapping + +/// Snap distance in screen points. +pub(crate) const SNAP_PX: f64 = 8.0; +const SNAP_COLOR: Color32 = Color32::from_rgb(0xff, 0xd2, 0x3c); + +fn snap_id() -> egui::Id { + egui::Id::new("viewer-snap") +} + +/// Layer snapping is on: the Snapping checkbox (View ▸ Snapping), inverted while Cmd/Ctrl is held. +pub(crate) fn snapping_on(app: &EffectcraftApp, mods: egui::Modifiers) -> bool { + app.session.state.snapping != mods.command +} + +/// Snap dragged feature points (`sources`, comp pixels) to the comp's targets: other layers' +/// edges, centres, anchor points and mask/shape vertices and the comp edges and centre (when +/// snapping is on), guides (View ▸ Snap to Guides) and the grid (View ▸ Snap to Grid). Returns +/// the comp-space correction (zero when nothing is near) and records the feedback for this frame. +pub(crate) fn snap( + app: &EffectcraftApp, + ctx: &egui::Context, + ectx: &EvalCtx, + map: &ViewerMap, + exclude: &[LayerId], + sources: &[[f64; 2]], + mods: egui::Modifiers, +) -> [f64; 2] { + let layers = snapping_on(app, mods); + let v = &app.ui.viewer; + let guides = v.snap_guides && v.guides; + let grid = v.snap_grid; + if sources.is_empty() || !(layers || guides || grid) { + return [0.0; 2]; + } + let opts = vw::SnapOptions { guides, grid, grid_spacing: app.session.prefs.grids.grid_spacing }; + let mut targets = vw::targets(ectx, exclude, opts); + if !layers { + targets.retain(|t| matches!(t.source, SnapSource::Guide | SnapSource::Grid)); + } + match vw::snap(sources, &targets, SNAP_PX / map.zoom.max(1e-3) as f64) { + Some(s) => { + let d = s.delta; + ctx.data_mut(|dd| dd.insert_temp(snap_id(), s)); + d + } + None => [0.0; 2], + } +} + +/// Draw (and clear) this frame's snap feedback: the target layer's box highlighted, the guide or +/// grid line, and a cross where the feature landed. +pub(crate) fn draw_snap(ctx: &egui::Context, painter: &egui::Painter, map: &ViewerMap, ectx: &EvalCtx) { + let Some(s) = ctx.data(|d| d.get_temp::(snap_id())) else { return }; + ctx.data_mut(|d| d.remove::(snap_id())); + let stroke = Stroke::new(1.5, SNAP_COLOR); + let area = map.area; + for h in &s.hits { + if let SnapSource::Layer(l) | SnapSource::Vertex(l) = h.source + && let Some(layer) = ectx.comp.layer(l) + && let Some(b) = effectcraft_engine::render::content_bounds(ectx, layer) + { + let (m, _) = ectx.layer_to_comp(layer); + let q: Vec = [[b[0], b[1]], [b[2], b[1]], [b[2], b[3]], [b[0], b[3]]] + .iter() + .map(|p| { + let c = m.apply(effectcraft_engine::geom::vec2(p[0], p[1])); + map.to_screen([c.x, c.y]) + }) + .collect(); + painter.add(egui::Shape::closed_line(q, stroke)); + } + match h.kind { + SnapKind::Point => { + let c = map.to_screen(h.pos); + painter.rect_stroke(Rect::from_center_size(c, vec2(9.0, 9.0)), 0.0, stroke, StrokeKind::Middle); + } + SnapKind::VLine => { + let x = map.to_screen(h.pos).x; + painter.line_segment([pos2(x, area.min.y), pos2(x, area.max.y)], Stroke::new(1.0, SNAP_COLOR)); + } + SnapKind::HLine => { + let y = map.to_screen(h.pos).y; + painter.line_segment([pos2(area.min.x, y), pos2(area.max.x, y)], Stroke::new(1.0, SNAP_COLOR)); + } + } + } + let c = map.to_screen(s.at); + painter.line_segment([c - vec2(8.0, 0.0), c + vec2(8.0, 0.0)], stroke); + painter.line_segment([c - vec2(0.0, 8.0), c + vec2(0.0, 8.0)], stroke); +} + +// ---------------------------------------------------------------- rulers and guides + +/// Ruler thickness in points. +pub(crate) const RULER: f32 = 16.0; + +/// The viewer area left for the image once the rulers (View ▸ Show Rulers) take their strips. +pub(crate) fn inset(app: &EffectcraftApp, area: Rect) -> Rect { + if app.ui.viewer.rulers { Rect::from_min_max(area.min + vec2(RULER, RULER), area.max) } else { area } +} + +fn nice(raw: f64) -> f64 { + let mag = 10f64.powf(raw.max(1e-9).log10().floor()); + let n = raw / mag; + mag * if n <= 1.0 { + 1.0 + } else if n <= 2.0 { + 2.0 + } else if n <= 5.0 { + 5.0 + } else { + 10.0 + } +} + +/// Draw the rulers (ticks relative to the zero point, live pointer markers) and handle their +/// gestures: drag from a ruler to add a guide, drag the corner to move the zero point +/// (double-click resets it). +pub(crate) fn rulers(app: &mut EffectcraftApp, ui: &mut egui::Ui, map: &ViewerMap, outer: Rect, inner: Rect) { + if !app.ui.viewer.rulers { + return; + } + let t = app.tokens; + let p = ui.painter().clone(); + let top = Rect::from_min_max(pos2(inner.min.x, outer.min.y), pos2(inner.max.x, inner.min.y)); + let left = Rect::from_min_max(pos2(outer.min.x, inner.min.y), pos2(inner.min.x, inner.max.y)); + let corner = Rect::from_min_max(outer.min, inner.min); + let bg = t.panel_bg; + for r in [top, left, corner] { + p.rect_filled(r, 0.0, bg); + } + p.line_segment([top.left_bottom(), top.right_bottom()], Stroke::new(1.0, t.separator)); + p.line_segment([left.right_top(), left.right_bottom()], Stroke::new(1.0, t.separator)); + let o = app.ui.viewer.ruler_origin; + let zoom = map.zoom as f64; + let step = nice(64.0 / zoom.max(1e-6)); + let minor = step / if (step / nice(step / 2.0) - 2.0).abs() < 1e-9 { 2.0 } else { 5.0 }; + let tick = Stroke::new(1.0, t.text_faint); + let font = Tokens::ui(9.0); + let label = |v: f64| if step >= 1.0 { format!("{}", v.round() as i64) } else { format!("{v:.1}") }; + // Horizontal ruler (x). + let pt = p.with_clip_rect(top); + let (c0, c1) = (map.to_comp(top.left_top())[0], map.to_comp(top.right_top())[0]); + let mut k = ((c0 - o[0]) / minor).floor() as i64; + while (o[0] + k as f64 * minor) <= c1 { + let cx = o[0] + k as f64 * minor; + let x = map.to_screen([cx, 0.0]).x; + let major = ((k as f64 * minor) / step).round() * step - k as f64 * minor; + let is_major = major.abs() < minor * 0.01; + pt.line_segment([pos2(x, top.max.y - if is_major { RULER - 2.0 } else { 4.0 }), pos2(x, top.max.y)], tick); + if is_major { + pt.text(pos2(x + 2.0, top.min.y + 1.0), Align2::LEFT_TOP, label(cx - o[0]), font.clone(), t.text_dim); + } + k += 1; + } + // Vertical ruler (y). + let pl = p.with_clip_rect(left); + let (r0, r1) = (map.to_comp(left.left_top())[1], map.to_comp(left.left_bottom())[1]); + let mut k = ((r0 - o[1]) / minor).floor() as i64; + while (o[1] + k as f64 * minor) <= r1 { + let cy = o[1] + k as f64 * minor; + let y = map.to_screen([0.0, cy]).y; + let major = ((k as f64 * minor) / step).round() * step - k as f64 * minor; + let is_major = major.abs() < minor * 0.01; + pl.line_segment([pos2(left.max.x - if is_major { RULER - 2.0 } else { 4.0 }, y), pos2(left.max.x, y)], tick); + if is_major { + let g = pl.layout_no_wrap(label(cy - o[1]), font.clone(), t.text_dim); + pl.add(egui::epaint::TextShape::new(pos2(left.min.x + 1.0, y + g.size().x + 2.0), g, t.text_dim).with_angle(-std::f32::consts::FRAC_PI_2)); + } + k += 1; + } + // Live pointer markers. + if let Some(hp) = ui.ctx().pointer_hover_pos() + && inner.contains(hp) + { + let m = Stroke::new(1.0, t.accent); + pt.line_segment([pos2(hp.x, top.min.y), pos2(hp.x, top.max.y)], m); + pl.line_segment([pos2(left.min.x, hp.y), pos2(left.max.x, hp.y)], m); + } + // Zero point: drag the corner, double-click to reset. + p.line_segment([corner.center() - vec2(4.0, 0.0), corner.center() + vec2(4.0, 0.0)], tick); + p.line_segment([corner.center() - vec2(0.0, 4.0), corner.center() + vec2(0.0, 4.0)], tick); + let cr = + ui.interact(corner, egui::Id::new("vw-ruler-origin"), Sense::click_and_drag()).on_hover_text("Ruler zero point (drag to move, double-click to reset)"); + app.auto.add("viewer.ruler.origin", corner, "Ruler zero point"); + let fg = ui.ctx().layer_painter(egui::LayerId::new(egui::Order::Foreground, egui::Id::new("vw-ruler-fg"))); + if cr.dragged() + && let Some(hp) = cr.interact_pointer_pos() + { + fg.line_segment([pos2(inner.min.x, hp.y), pos2(inner.max.x, hp.y)], Stroke::new(1.0, t.accent)); + fg.line_segment([pos2(hp.x, inner.min.y), pos2(hp.x, inner.max.y)], Stroke::new(1.0, t.accent)); + } + if cr.drag_stopped() + && let Some(hp) = cr.interact_pointer_pos() + { + let c = map.to_comp(hp); + app.ui.viewer.ruler_origin = [c[0].round(), c[1].round()]; + } + if cr.double_clicked() { + app.ui.viewer.ruler_origin = [0.0, 0.0]; + } + // Guides dragged out of the rulers: the top ruler makes horizontal guides, the left one + // vertical guides. + for (r, vertical, id) in [(top, false, "top"), (left, true, "left")] { + let resp = ui.interact(r, egui::Id::new(("vw-ruler", id)), Sense::drag()).on_hover_text("Drag to create a guide"); + app.auto.add(&format!("viewer.ruler.{id}"), r, if vertical { "Vertical ruler" } else { "Horizontal ruler" }); + if resp.hovered() { + ui.ctx().set_cursor_icon(if vertical { egui::CursorIcon::ResizeHorizontal } else { egui::CursorIcon::ResizeVertical }); + } + if resp.dragged() + && let Some(hp) = resp.interact_pointer_pos() + { + let s = Stroke::new(1.0, guide_color(app)); + if vertical { + fg.line_segment([pos2(hp.x, inner.min.y), pos2(hp.x, inner.max.y)], s); + } else { + fg.line_segment([pos2(inner.min.x, hp.y), pos2(inner.max.x, hp.y)], s); + } + } + if resp.drag_stopped() + && let Some(hp) = resp.interact_pointer_pos() + && inner.contains(hp) + { + let c = map.to_comp(hp); + let pos = if vertical { c[0] } else { c[1] }.round(); + let r = app.session.execute("view.addGuide", json!({"orientation": if vertical { "vertical" } else { "horizontal" }, "position": pos})); + if let Err(e) = r { + app.ui.status = e.to_string(); + } + app.ui.viewer.guides = true; + } + } +} + +pub(crate) fn guide_color(app: &EffectcraftApp) -> Color32 { + let [r, g, b] = super::viewer::hex_rgb(&app.session.prefs.grids.guide_color).unwrap_or([0x3c, 0xc8, 0xf0]); + Color32::from_rgb(r, g, b) +} + +/// The guide under a screen point (visible, unlocked guides only): (index, vertical). +pub(crate) fn guide_at(app: &EffectcraftApp, comp: &Comp, map: &ViewerMap, pos: Pos2) -> Option<(usize, bool)> { + if !app.ui.viewer.guides || app.ui.viewer.lock_guides { + return None; + } + comp.guides.iter().enumerate().find_map(|(i, g)| { + let s = map.to_screen([g.position, g.position]); + let d = if g.vertical { (s.x - pos.x).abs() } else { (s.y - pos.y).abs() }; + (d < 4.0).then_some((i, g.vertical)) + }) +} + +/// Proportional grid (Grid and guide options ▸ Proportional Grid): Settings ▸ Grids & Guides +/// horizontal × vertical cells over the comp. +pub(crate) fn proportional_grid(app: &EffectcraftApp, painter: &egui::Painter, comp_rect: Rect) { + if !app.ui.viewer.proportional_grid { + return; + } + let g = &app.session.prefs.grids; + let [r, gg, b] = super::viewer::hex_rgb(&g.grid_color).unwrap_or([120, 160, 255]); + let s = Stroke::new(1.0, Color32::from_rgba_unmultiplied(r, gg, b, 110)); + let (nx, ny) = (g.proportional_horizontal.max(1), g.proportional_vertical.max(1)); + for i in 1..nx { + let x = comp_rect.min.x + comp_rect.width() * i as f32 / nx as f32; + painter.line_segment([pos2(x, comp_rect.min.y), pos2(x, comp_rect.max.y)], s); + } + for i in 1..ny { + let y = comp_rect.min.y + comp_rect.height() * i as f32 / ny as f32; + painter.line_segment([pos2(comp_rect.min.x, y), pos2(comp_rect.max.x, y)], s); + } +} + +// ---------------------------------------------------------------- the displayed frame + +/// Remember the region of interest the displayed texture was rendered with. +pub(crate) fn set_texture_roi(ctx: &egui::Context, roi: Option<[f64; 4]>) { + ctx.data_mut(|d| d.insert_temp(egui::Id::new("viewer-tex-roi"), roi)); +} + +fn texture_roi(ctx: &egui::Context) -> Option<[f64; 4]> { + ctx.data(|d| d.get_temp::>(egui::Id::new("viewer-tex-roi"))).flatten() +} + +/// Show Snapshot: the stored snapshot is on screen (button or F5 held). +pub(crate) fn showing_snapshot(app: &EffectcraftApp, ctx: &egui::Context) -> bool { + let f5 = ctx.input(|i| i.key_down(egui::Key::F5)) && !ctx.egui_wants_keyboard_input(); + app.session.snapshot.is_some() && (app.session.state.viewer.show_snapshot || f5) +} + +fn transformed(img: &egui::ColorImage, ch: Channel, colorized: bool, stops: f32) -> egui::ColorImage { + let mut px: Vec<[u8; 4]> = img.pixels.iter().map(|c| c.to_array()).collect(); + vw::display_transform(&mut px, ch, colorized, stops); + egui::ColorImage::new(img.size, px.into_iter().map(|a| Color32::from_rgba_premultiplied(a[0], a[1], a[2], a[3])).collect()) +} + +/// Draw the frame into `comp_rect`: the rendered frame (covering the region of interest when one +/// is set), or the snapshot while Show Snapshot is on / F5 is held, through Show Channel and the +/// exposure. Fast Previews ▸ Wireframe draws layer outlines instead. +pub(crate) fn draw_frame(app: &mut EffectcraftApp, ctx: &egui::Context, painter: &egui::Painter, comp_rect: Rect, cid: ItemId, ectx: &EvalCtx) { + let opts = app.session.state.viewer.clone(); + let snap = showing_snapshot(app, ctx); + if opts.fast_previews == FastPreviews::Wireframe && !snap { + let zoom = comp_rect.width() / ectx.comp.width.max(1) as f32; + let map = ViewerMap { origin: comp_rect.min, zoom, comp: [ectx.comp.width as f32, ectx.comp.height as f32], area: comp_rect }; + for l in ectx.comp.layers.iter().filter(|l| l.is_active_at(ectx.time) && l.has_video()) { + let Some(b) = effectcraft_engine::render::content_bounds(ectx, l) else { continue }; + let (m, _) = super::viewer::l2c(ectx, l); + let q: Vec = [[b[0], b[1]], [b[2], b[1]], [b[2], b[3]], [b[0], b[3]]] + .iter() + .map(|p| { + let c = m.apply(effectcraft_engine::geom::vec2(p[0], p[1])); + map.to_screen([c.x, c.y]) + }) + .collect(); + painter.add(egui::Shape::closed_line(q, Stroke::new(1.0, app.tokens.label(l.label)))); + } + return; + } + let plain = opts.channel == Channel::Rgb && opts.exposure == 0.0; + let uv = Rect::from_min_max(pos2(0.0, 0.0), pos2(1.0, 1.0)); + if snap { + let Some(s) = app.session.snapshot.clone() else { return }; + let key = { + use std::hash::{Hash, Hasher}; + let mut h = std::collections::hash_map::DefaultHasher::new(); + (std::sync::Arc::as_ptr(&s.image) as usize, opts.channel.id(), opts.colorized, opts.exposure.to_bits()).hash(&mut h); + h.finish() + }; + let id = egui::Id::new("viewer-snapshot-tex"); + let tex = match ctx.data(|d| d.get_temp::<(u64, egui::TextureHandle)>(id)) { + Some((k, tex)) if k == key => tex, + _ => { + let img = crate::frames::to_color_image(&s.image); + let img = if plain { img } else { transformed(&img, opts.channel, opts.colorized, opts.exposure) }; + let tex = ctx.load_texture("viewer-snapshot", img, egui::TextureOptions::LINEAR); + ctx.data_mut(|d| d.insert_temp(id, (key, tex.clone()))); + tex + } + }; + painter.image(tex.id(), comp_rect, uv, Color32::WHITE); + painter.text(comp_rect.left_top() + vec2(6.0, 6.0), Align2::LEFT_TOP, "Snapshot", Tokens::ui(11.0), SNAP_COLOR); + return; + } + let Some((tex, k)) = app.viewer_tex.clone() else { return }; + if k.comp != cid.0 { + return; + } + let zoom = comp_rect.width() as f64 / ectx.comp.width.max(1) as f64; + let rect = match texture_roi(ctx) { + Some([x, y, w, h]) => Rect::from_min_size(comp_rect.min + vec2((x * zoom) as f32, (y * zoom) as f32), vec2((w * zoom) as f32, (h * zoom) as f32)), + None => comp_rect, + }; + if plain { + painter.image(tex.id(), rect, uv, Color32::WHITE); + return; + } + let Some(src) = app.viewer_image.clone() else { return }; + let key = { + use std::hash::{Hash, Hasher}; + let mut h = std::collections::hash_map::DefaultHasher::new(); + (std::sync::Arc::as_ptr(&src) as usize, opts.channel.id(), opts.colorized, opts.exposure.to_bits()).hash(&mut h); + h.finish() + }; + let id = egui::Id::new("viewer-display-tex"); + let tex = match ctx.data(|d| d.get_temp::<(u64, egui::TextureHandle)>(id)) { + Some((k, tex)) if k == key => tex, + _ => { + let tex = ctx.load_texture("viewer-display", transformed(&src, opts.channel, opts.colorized, opts.exposure), egui::TextureOptions::LINEAR); + ctx.data_mut(|d| d.insert_temp(id, (key, tex.clone()))); + tex + } + }; + painter.image(tex.id(), rect, uv, Color32::WHITE); +} + +// ---------------------------------------------------------------- bottom bar + +/// A popup list above `anchor` (selected entries highlighted); entries register +/// `viewer..` automation ids. +fn popup(app: &mut EffectcraftApp, ui: &mut egui::Ui, id: &str, anchor: Rect, items: &[(String, bool)], auto: &str) -> Option { + let pid = egui::Id::new(id); + let open: bool = ui.data(|d| d.get_temp(pid.with("open")).unwrap_or(false)); + if !open { + return None; + } + let h: f32 = items.iter().map(|(l, _)| if l == "-" { 9.0 } else { 21.0 }).sum::() + 14.0; + let pos = anchor.left_top() - vec2(0.0, h + 4.0); + let mut chosen = None; + let area = egui::Area::new(pid.with("area")).order(egui::Order::Foreground).fixed_pos(pos).show(ui.ctx(), |ui| { + egui::Frame::popup(ui.style()).show(ui, |ui| { + ui.set_min_width(170.0); + for (i, (label, on)) in items.iter().enumerate() { + if label == "-" { + ui.separator(); + continue; + } + let r = ui.selectable_label(*on, label.as_str()); + app.auto.add(&format!("viewer.{auto}.{i}"), r.rect, label); + if r.clicked() { + chosen = Some(i); + } + } + }); + }); + let outside = ui.input(|i| i.pointer.any_pressed()) + && !area.response.contains_pointer() + && !anchor.contains(ui.input(|i| i.pointer.interact_pos()).unwrap_or_default()); + if chosen.is_some() || outside || ui.input(|i| i.key_pressed(egui::Key::Escape)) { + ui.data_mut(|d| d.insert_temp(pid.with("open"), false)); + } + chosen +} + +fn toggle_popup(ui: &egui::Ui, id: &str) { + let pid = egui::Id::new(id).with("open"); + let open: bool = ui.data(|d| d.get_temp(pid).unwrap_or(false)); + ui.data_mut(|d| d.insert_temp(pid, !open)); +} + +/// Magnification as After Effects shows it: "136.1 %", "100 %". +pub(crate) fn magnification_label(pct: f32) -> String { + if (pct - pct.round()).abs() < 0.05 { format!("{:.0} %", pct.round()) } else { format!("{pct:.1} %") } +} + +/// The resolution popup's label: the chosen factor, or the factor Auto resolves to in brackets. +pub(crate) fn resolution_label(res: Resolution, scale: f64) -> String { + match res { + Resolution::Auto => { + let r = if scale >= 0.99 { + "Full" + } else if scale >= 0.49 { + "Half" + } else if scale >= 0.33 { + "Third" + } else { + "Quarter" + }; + format!("({r})") + } + Resolution::Custom(n) => format!("Custom ({n})"), + r => r.label().to_string(), + } +} + +/// The Composition panel's bottom bar, in After Effects 2026 order: magnification, resolution, +/// transparency grid, mask and shape path visibility, region of interest, grid and guide +/// options, show channel, reset exposure, exposure, take / show snapshot, Fast Previews, the 3D +/// renderer and view, and the current time. +pub(crate) fn bottom_bar(app: &mut EffectcraftApp, ui: &mut egui::Ui, bar: Rect, zoom: f32, fit: f32, time: Tick, comp: &Comp) { + let t = app.tokens; + let p = ui.painter().clone(); + p.rect_filled(bar, 0.0, t.panel_bg); + p.line_segment([bar.left_top(), bar.right_top()], Stroke::new(1.0, t.separator)); + let cy = bar.center().y; + let mut x = bar.min.x + 8.0; + let ppp = ui.ctx().pixels_per_point(); + + // Magnification. + let r = Rect::from_min_size(pos2(x, cy - 10.0), vec2(80.0, 20.0)); + if widgets::dropdown(ui, r, &magnification_label(zoom * ppp * 100.0), &t, egui::Id::new("vw-mag")).on_hover_text("Magnification ratio popup").clicked() { + toggle_popup(ui, "vw-mag-pop"); + } + app.auto.add("viewer.magnification", r, "Magnification"); + const MAGS: [&str; 15] = ["Fit", "Fit up to 100%", "-", "1.5%", "3.1%", "6.25%", "12.5%", "25%", "33.3%", "50%", "100%", "200%", "400%", "800%", "1600%"]; + let cur = (zoom * ppp * 100.0 * 10.0).round() / 10.0; + let items: Vec<(String, bool)> = MAGS + .iter() + .map(|m| { + let on = match *m { + "Fit" => app.ui.viewer.zoom.is_none(), + s => s.trim_end_matches('%').parse::().is_ok_and(|v| app.ui.viewer.zoom.is_some() && (v - cur).abs() < 0.06), + }; + (m.to_string(), on) + }) + .collect(); + if let Some(i) = popup(app, ui, "vw-mag-pop", r, &items, "magnification") { + app.ui.viewer.pan = [0.0, 0.0]; + app.ui.viewer.zoom = match MAGS[i] { + "Fit" => None, + "Fit up to 100%" => Some(fit.min(1.0 / ppp)), + s => s.trim_end_matches('%').parse::().ok().map(|v| v / 100.0 / ppp), + }; + } + x = r.max.x + 4.0; + + // Resolution / down-sample factor. + let r = Rect::from_min_size(pos2(x, cy - 10.0), vec2(84.0, 20.0)); + let scale = app.viewer_scale(zoom, ppp); + if widgets::dropdown(ui, r, &resolution_label(app.ui.viewer.res, scale), &t, egui::Id::new("vw-res")) + .on_hover_text("Resolution/Down Sample Factor Popup") + .clicked() + { + toggle_popup(ui, "vw-res-pop"); + } + app.auto.add("viewer.resolution", r, "Resolution/Down Sample Factor"); + let res = app.ui.viewer.res; + let items: Vec<(String, bool)> = vec![ + ("Full".into(), res == Resolution::Full), + ("Half".into(), res == Resolution::Half), + ("Third".into(), res == Resolution::Third), + ("Quarter".into(), res == Resolution::Quarter), + ("Custom...".into(), matches!(res, Resolution::Custom(_))), + ("-".into(), false), + ("Auto".into(), res == Resolution::Auto), + ]; + if let Some(i) = popup(app, ui, "vw-res-pop", r, &items, "resolutionItem") { + let ctx = ui.ctx().clone(); + let id = ["view.res.full", "view.res.half", "view.res.third", "view.res.quarter", "view.res.custom", "", "view.res.auto"][i]; + if let Err(e) = crate::menus::invoke(app, &ctx, id, json!({})) { + app.ui.status = e; + } + } + x = r.max.x + 6.0; + + let tog = |ui: &mut egui::Ui, auto: &mut crate::automation::Registry, x: &mut f32, icon: Icon, on: bool, id: &str, tip: &str| -> (bool, Rect) { + let r = Rect::from_min_size(pos2(*x, cy - 11.0), vec2(22.0, 22.0)); + let resp = widgets::icon_button(ui, r, icon, on, &t, egui::Id::new(("vw-btn", id))).on_hover_text(tip); + auto.add(&format!("viewer.{id}"), r, tip); + *x += 24.0; + (resp.clicked(), r) + }; + if tog(ui, &mut app.auto, &mut x, Icon::Checker, app.ui.viewer.transparency_grid, "transparency", "Toggle Transparency Grid").0 { + app.ui.viewer.transparency_grid = !app.ui.viewer.transparency_grid; + } + if tog(ui, &mut app.auto, &mut x, Icon::MaskVis, app.ui.viewer.show_masks, "masks", "Toggle Mask and Shape Path Visibility").0 { + app.ui.viewer.show_masks = !app.ui.viewer.show_masks; + } + // Region of interest: with none, arm drawing (the next drag draws it); with one, clear it. + let has_roi = app.session.state.region_of_interest.is_some(); + if tog(ui, &mut app.auto, &mut x, Icon::Region, has_roi || app.ui.viewer.roi_draw, "roi", "Region of Interest").0 { + if has_roi { + let _ = app.session.execute("view.setRegionOfInterest", json!({"rect": null})); + app.ui.viewer.roi_draw = false; + } else { + app.ui.viewer.roi_draw = !app.ui.viewer.roi_draw; + } + } + // Grid and guide options. + let v = &app.ui.viewer; + let any = v.grid || v.safe_margins || v.proportional_grid || (v.guides && !comp.guides.is_empty()) || v.rulers; + let (clicked, gr) = tog(ui, &mut app.auto, &mut x, Icon::Grid, any, "grid", "Choose grid and guide options"); + if clicked { + toggle_popup(ui, "vw-grid-pop"); + } + let v = &app.ui.viewer; + let items = vec![ + ("Title/Action Safe".to_string(), v.safe_margins), + ("Proportional Grid".to_string(), v.proportional_grid), + ("Grid".to_string(), v.grid), + ("Guides".to_string(), v.guides), + ("Rulers".to_string(), v.rulers), + ]; + if let Some(i) = popup(app, ui, "vw-grid-pop", gr, &items, "gridItem") { + let v = &mut app.ui.viewer; + match i { + 0 => v.safe_margins = !v.safe_margins, + 1 => v.proportional_grid = !v.proportional_grid, + 2 => v.grid = !v.grid, + 3 => v.guides = !v.guides, + _ => v.rulers = !v.rulers, + } + } + // Show Channel and Color Management Settings. + let vo = app.session.state.viewer.clone(); + let (clicked, cr) = tog(ui, &mut app.auto, &mut x, Icon::Channel, vo.channel != Channel::Rgb, "channel", "Show Channel and Color Management Settings"); + if clicked { + toggle_popup(ui, "vw-channel-pop"); + } + let mut items: Vec<(String, bool)> = Channel::ALL.iter().map(|c| (c.label().to_string(), vo.channel == *c)).collect(); + items.push(("-".into(), false)); + items.push(("Colorize".into(), vo.colorized)); + if let Some(i) = popup(app, ui, "vw-channel-pop", cr, &items, "channelItem") { + let params = + if i < Channel::ALL.len() { json!({"channel": Channel::ALL[i].id()}) } else { json!({"channel": vo.channel.id(), "colorized": !vo.colorized}) }; + let _ = app.session.execute("view.channel", params); + } + // Exposure. + let exposed = vo.exposure != 0.0; + if tog(ui, &mut app.auto, &mut x, Icon::Exposure, exposed, "resetExposure", "Reset Exposure").0 { + let _ = app.session.execute("view.resetExposure", json!({})); + } + let er = Rect::from_min_size(pos2(x, cy - 10.0), vec2(42.0, 20.0)); + let mut ev = vo.exposure as f64; + let resp = ui.put( + er, + egui::DragValue::new(&mut ev) + .speed(0.05) + .range(-40.0..=40.0) + .fixed_decimals(1) + .custom_formatter(|v, _| if v == 0.0 { "0.0".into() } else { format!("{v:+.1}") }), + ); + let resp = resp.on_hover_text("Adjust Exposure (stops)"); + app.auto.add("viewer.exposure", er, "Adjust Exposure"); + if resp.changed() { + let _ = app.session.execute("view.exposure", json!({"stops": ev})); + } + x = er.max.x + 4.0; + // Snapshots. + if tog(ui, &mut app.auto, &mut x, Icon::Snapshot, false, "snapshot", "Take Snapshot").0 { + let scale = app.viewer_scale(zoom, ppp); + match app.session.execute("view.takeSnapshot", json!({"scale": scale.clamp(0.05, 1.0)})) { + Ok(_) => app.ui.status = "Snapshot taken".into(), + Err(e) => app.ui.status = e.to_string(), + } + } + let showing = showing_snapshot(app, ui.ctx()); + let (_, sr) = tog(ui, &mut app.auto, &mut x, Icon::ShowSnapshot, showing, "showSnapshot", "Show Snapshot (hold)"); + // Show Snapshot works while the button is held, like F5. + let held = ui.input(|i| i.pointer.primary_down()) && ui.input(|i| i.pointer.press_origin()).is_some_and(|o| sr.contains(o)); + if app.session.snapshot.is_some() && held != app.session.state.viewer.show_snapshot { + let _ = app.session.execute("view.showSnapshot", json!({"value": held})); + } + // Fast Previews. + let fp = vo.fast_previews; + let (clicked, fr) = tog(ui, &mut app.auto, &mut x, Icon::Sparkle, fp != FastPreviews::Off || app.ui.viewer.fast_preview, "fastPreviews", "Fast Previews"); + if clicked { + toggle_popup(ui, "vw-fast-pop"); + } + let items: Vec<(String, bool)> = FastPreviews::ALL.iter().map(|m| (m.label().to_string(), fp == *m)).collect(); + if let Some(i) = popup(app, ui, "vw-fast-pop", fr, &items, "fastPreviewsItem") { + let _ = app.session.execute("view.fastPreviewMode", json!({"mode": FastPreviews::ALL[i].id()})); + } + x += 4.0; + // 3D renderer + view. + if comp.has_3d() { + let r = Rect::from_min_size(pos2(x, cy - 10.0), vec2(96.0, 20.0)); + let _ = widgets::dropdown(ui, r, "Classic 3D", &t, egui::Id::new("vw-3d")); + app.auto.add("viewer.renderer3d", r, "3D Renderer"); + x = r.max.x + 4.0; + let cid = app.session.active_comp_id(); + let cur = cid.and_then(|c| app.session.state.views3d.get(&c)).map(|v| v.current).unwrap_or_default(); + let r = Rect::from_min_size(pos2(x, cy - 10.0), vec2(118.0, 20.0)); + if widgets::dropdown(ui, r, cur.label(), &t, egui::Id::new("vw-cam")).clicked() { + toggle_popup(ui, "vw-cam-pop"); + } + app.auto.add("viewer.view3d", r, "3D View"); + use effectcraft_engine::render::three_d::View3D; + let items: Vec<(String, bool)> = View3D::ALL.iter().map(|v| (v.label().to_string(), *v == cur)).collect(); + if let Some(i) = popup(app, ui, "vw-cam-pop", r, &items, "view3dItem") { + let _ = app.session.execute("view.set3DView", json!({"view": View3D::ALL[i].id()})); + } + x = r.max.x + 6.0; + } + // Current time. + let tc = crate::panels::timecode(&app.session, comp, time); + let g = p.layout_no_wrap(tc, Tokens::mono(12.0), t.timecode); + let tr = Rect::from_min_size(pos2(x + 4.0, cy - 9.0), g.size() + vec2(8.0, 4.0)); + p.galley(pos2(tr.min.x + 4.0, tr.min.y + 2.0), g, t.timecode); + app.auto.add("viewer.timecode", tr, "Current time"); + // Right: render time. + let ms = app.frames.last_ms.lock().map(|v| *v).unwrap_or(0.0); + p.text(pos2(bar.max.x - 10.0, cy), Align2::RIGHT_CENTER, format!("{ms:.0} ms"), Tokens::ui(11.0), t.text_faint); +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn bar_labels_match_after_effects() { + assert_eq!(magnification_label(136.08), "136.1 %"); + assert_eq!(magnification_label(100.0), "100 %"); + assert_eq!(magnification_label(49.97), "50 %"); + assert_eq!(resolution_label(Resolution::Auto, 1.0), "(Full)"); + assert_eq!(resolution_label(Resolution::Auto, 0.5), "(Half)"); + assert_eq!(resolution_label(Resolution::Quarter, 0.25), "Quarter"); + assert_eq!(resolution_label(Resolution::Custom(5), 0.2), "Custom (5)"); + } +} diff --git a/crates/ui-egui/src/state.rs b/crates/ui-egui/src/state.rs index 515b6d9f..43ca11cb 100644 --- a/crates/ui-egui/src/state.rs +++ b/crates/ui-egui/src/state.rs @@ -24,6 +24,10 @@ pub enum Tool { Polygon, Star, Pen, + PenAdd, + PenDelete, + PenConvert, + MaskFeather, Type, TypeVertical, Brush, @@ -49,7 +53,7 @@ impl Tool { &[Tool::Rotate], &[Tool::PanBehind], &[Tool::Rectangle, Tool::RoundedRect, Tool::Ellipse, Tool::Polygon, Tool::Star], - &[Tool::Pen], + &[Tool::Pen, Tool::PenAdd, Tool::PenDelete, Tool::PenConvert, Tool::MaskFeather], &[Tool::Type, Tool::TypeVertical], &[Tool::Brush], &[Tool::Clone], @@ -57,7 +61,7 @@ impl Tool { &[Tool::RotoBrush], &[Tool::Puppet, Tool::PuppetStarch, Tool::PuppetBend, Tool::PuppetAdvanced, Tool::PuppetOverlap], ]; - pub const ALL: [Tool; 25] = [ + pub const ALL: [Tool; 29] = [ Tool::Selection, Tool::Hand, Tool::Zoom, @@ -72,6 +76,10 @@ impl Tool { Tool::Polygon, Tool::Star, Tool::Pen, + Tool::PenAdd, + Tool::PenDelete, + Tool::PenConvert, + Tool::MaskFeather, Tool::Type, Tool::TypeVertical, Tool::Brush, @@ -100,6 +108,10 @@ impl Tool { Tool::Polygon => "Polygon Tool", Tool::Star => "Star Tool", Tool::Pen => "Pen Tool", + Tool::PenAdd => "Add Vertex Tool", + Tool::PenDelete => "Delete Vertex Tool", + Tool::PenConvert => "Convert Vertex Tool", + Tool::MaskFeather => "Mask Feather Tool", Tool::Type => "Horizontal Type Tool", Tool::TypeVertical => "Vertical Type Tool", Tool::Brush => "Brush Tool", @@ -124,7 +136,7 @@ impl Tool { Tool::Rotate => Some("W"), Tool::PanBehind => Some("Y"), Tool::Rectangle | Tool::RoundedRect | Tool::Ellipse | Tool::Polygon | Tool::Star => Some("Q"), - Tool::Pen => Some("G"), + Tool::Pen | Tool::PenAdd | Tool::PenDelete | Tool::PenConvert | Tool::MaskFeather => Some("G"), Tool::Type | Tool::TypeVertical => Some("Cmd+T"), Tool::Brush | Tool::Clone | Tool::Eraser => Some("Cmd+B"), Tool::RotoBrush => Some("Alt+W"), @@ -147,6 +159,10 @@ impl Tool { Tool::Polygon => Icon::Polygon, Tool::Star => Icon::Star, Tool::Pen => Icon::Pen, + Tool::PenAdd => Icon::PenAdd, + Tool::PenDelete => Icon::PenDelete, + Tool::PenConvert => Icon::PenConvert, + Tool::MaskFeather => Icon::MaskFeather, Tool::Type => Icon::Type, Tool::TypeVertical => Icon::TypeVertical, Tool::Brush => Icon::Brush, @@ -180,6 +196,10 @@ impl Tool { _ => return None, }) } + /// The Pen slot's tools (Pen, Add / Delete / Convert Vertex, Mask Feather). + pub fn is_pen(self) -> bool { + matches!(self, Tool::Pen | Tool::PenAdd | Tool::PenDelete | Tool::PenConvert | Tool::MaskFeather) + } pub fn is_shape(self) -> bool { matches!(self, Tool::Rectangle | Tool::RoundedRect | Tool::Ellipse | Tool::Polygon | Tool::Star) } @@ -194,6 +214,8 @@ pub enum Resolution { Half, Third, Quarter, + /// View ▸ Resolution ▸ Custom: render every n-th pixel (2..=40). + Custom(u8), } impl Resolution { @@ -205,6 +227,7 @@ impl Resolution { Resolution::Half => "Half", Resolution::Third => "Third", Resolution::Quarter => "Quarter", + Resolution::Custom(_) => "Custom", } } /// Render scale for a viewer magnification (and display pixel density). @@ -226,6 +249,7 @@ impl Resolution { Resolution::Half => 0.5, Resolution::Third => 1.0 / 3.0, Resolution::Quarter => 0.25, + Resolution::Custom(n) => 1.0 / n.max(1) as f64, } } } @@ -251,6 +275,15 @@ pub struct ViewerState { pub snap_guides: bool, pub lock_guides: bool, pub snap_grid: bool, + /// Grid and guide options ▸ Proportional Grid. + pub proportional_grid: bool, + /// Rulers zero point (comp pixels), moved by dragging the ruler corner. + pub ruler_origin: [f64; 2], + /// Region of Interest button armed: the next drag in the viewer draws the region. + pub roi_draw: bool, + /// The pointer is dragging in the viewer this frame (Adaptive Resolution). + #[serde(skip)] + pub interacting: bool, /// View ▸ Panel Background Color (`None` = theme default). pub pasteboard: Option<[u8; 3]>, pub custom_pasteboard: [u8; 3], @@ -274,6 +307,10 @@ impl Default for ViewerState { snap_guides: false, lock_guides: false, snap_grid: false, + proportional_grid: false, + ruler_origin: [0.0, 0.0], + roi_draw: false, + interacting: false, pasteboard: None, custom_pasteboard: [0x80, 0x80, 0x80], } @@ -311,6 +348,15 @@ pub struct TimelineState { /// Manual graph value range (when auto-zoom is off). #[serde(default)] pub graph_range: Option<(f64, f64)>, + /// Graph Editor ▸ Snap: key drags snap to the current time, other keys and frames. + #[serde(default = "yes")] + pub graph_snap: bool, + /// Graph Editor ▸ Show Reference Graph (the other graph type, faint, behind). + #[serde(default)] + pub graph_reference: bool, + /// Graph Editor ▸ Show Transform Box When Multiple Keys Are Selected. + #[serde(default = "yes")] + pub graph_transform_box: bool, /// Properties whose inline expression editor is collapsed. #[serde(default)] pub expr_closed: BTreeSet, @@ -341,6 +387,9 @@ impl Default for TimelineState { graph_show_selected: true, graph_auto_zoom: true, graph_range: None, + graph_snap: true, + graph_reference: false, + graph_transform_box: true, expr_closed: BTreeSet::new(), } } diff --git a/crates/ui-egui/tests/ui_viewer.rs b/crates/ui-egui/tests/ui_viewer.rs new file mode 100644 index 00000000..db3f9748 --- /dev/null +++ b/crates/ui-egui/tests/ui_viewer.rs @@ -0,0 +1,224 @@ +//! Headless checks for the Composition viewer's interaction parity: bottom bar order, region of +//! interest drawing, rulers and guides, snapping, the shape Pen and motion-path key drags +//! (egui_kittest, UI logic only). + +use effectcraft_engine::Session; +use effectcraft_engine::project::LayerId; +use effectcraft_ui_egui::EffectcraftApp; +use effectcraft_ui_egui::state::Tool; +use egui::{Event, Pos2, Rect, pos2, vec2}; +use egui_kittest::Harness; +use serde_json::json; + +fn app() -> EffectcraftApp { + let mut s = Session::default(); + s.execute("comp.new", json!({"name": "View", "width": 640, "height": 360, "duration": 4})).unwrap(); + s.execute("layer.newSolid", json!({"name": "Plate", "color": "#406080", "width": 640, "height": 360})).unwrap(); + s.execute("layer.newSolid", json!({"name": "Box", "color": "#e04020", "width": 80, "height": 80})).unwrap(); + s.execute("edit.deselectAll", json!({})).unwrap(); + EffectcraftApp::new(s) +} + +fn harness() -> Harness<'static, EffectcraftApp> { + let mut h = Harness::builder().with_size(egui::vec2(1600.0, 1000.0)).build_eframe(|_| app()); + h.run_steps(3); + h +} + +fn rect(h: &Harness<'_, EffectcraftApp>, id: &str) -> Rect { + let e = h.state().auto.find(id).unwrap_or_else(|| panic!("no {id}")); + Rect::from_min_size(pos2(e.rect[0], e.rect[1]), vec2(e.rect[2], e.rect[3])) +} + +fn click(h: &mut Harness<'_, EffectcraftApp>, p: Pos2) { + h.input_mut().events.push(Event::PointerMoved(p)); + h.step(); + h.input_mut().events.push(Event::PointerButton { pos: p, button: egui::PointerButton::Primary, pressed: true, modifiers: Default::default() }); + h.step(); + h.input_mut().events.push(Event::PointerButton { pos: p, button: egui::PointerButton::Primary, pressed: false, modifiers: Default::default() }); + h.run_steps(2); +} + +fn drag(h: &mut Harness<'_, EffectcraftApp>, from: Pos2, to: Pos2) { + h.input_mut().events.push(Event::PointerMoved(from)); + h.input_mut().events.push(Event::PointerButton { pos: from, button: egui::PointerButton::Primary, pressed: true, modifiers: Default::default() }); + h.step(); + for i in 1..=8 { + h.input_mut().events.push(Event::PointerMoved(from + (to - from) * (i as f32 / 8.0))); + h.step(); + } + h.input_mut().events.push(Event::PointerButton { pos: to, button: egui::PointerButton::Primary, pressed: false, modifiers: Default::default() }); + h.run_steps(2); +} + +/// Comp pixel → screen point. +fn screen(h: &Harness<'_, EffectcraftApp>, p: [f32; 2]) -> Pos2 { + let c = rect(h, "viewer.comp"); + let z = c.width() / 640.0; + c.min + vec2(p[0] * z, p[1] * z) +} + +#[test] +fn bottom_bar_in_after_effects_order() { + let h = harness(); + let order = [ + "viewer.magnification", + "viewer.resolution", + "viewer.transparency", + "viewer.masks", + "viewer.roi", + "viewer.grid", + "viewer.channel", + "viewer.resetExposure", + "viewer.exposure", + "viewer.snapshot", + "viewer.showSnapshot", + "viewer.fastPreviews", + "viewer.timecode", + ]; + let xs: Vec = order.iter().map(|id| rect(&h, id).min.x).collect(); + assert!(xs.windows(2).all(|w| w[0] < w[1]), "{xs:?}"); + let mag = &h.state().auto.find("viewer.magnification").unwrap().label; + assert_eq!(mag, "Magnification"); +} + +#[test] +fn region_of_interest_is_drawn_in_the_viewer() { + let mut h = harness(); + let at = rect(&h, "viewer.roi").center(); + click(&mut h, at); + assert!(h.state().ui.viewer.roi_draw); + let (a, b) = (screen(&h, [100.0, 50.0]), screen(&h, [300.0, 250.0])); + drag(&mut h, a, b); + let r = h.state().session.state.region_of_interest.expect("roi"); + assert!((r[0] - 100.0).abs() <= 2.0 && (r[1] - 50.0).abs() <= 2.0 && (r[2] - 200.0).abs() <= 3.0 && (r[3] - 200.0).abs() <= 3.0, "{r:?}"); + assert!(!h.state().ui.viewer.roi_draw); + h.run_steps(3); + assert!(h.state().auto.find("viewer.regionOfInterest").is_some()); + // The button clears it again. + let at = rect(&h, "viewer.roi").center(); + click(&mut h, at); + assert!(h.state().session.state.region_of_interest.is_none()); +} + +#[test] +fn rulers_make_guides_and_guides_move() { + let mut h = harness(); + h.state_mut().ui.viewer.rulers = true; + h.run_steps(3); + let top = rect(&h, "viewer.ruler.top"); + let to = screen(&h, [0.0, 120.0]); + drag(&mut h, pos2(to.x + 200.0, top.center().y), pos2(to.x + 200.0, to.y)); + let g = h.state().session.active_comp().unwrap().guides.clone(); + assert_eq!(g.len(), 1); + assert!(!g[0].vertical && (g[0].position - 120.0).abs() <= 2.0, "{g:?}"); + // Drag the guide down with the Selection tool. + let from = pos2(screen(&h, [500.0, 0.0]).x, screen(&h, [0.0, g[0].position as f32]).y); + let to2 = pos2(from.x, screen(&h, [0.0, 200.0]).y); + drag(&mut h, from, to2); + let g = h.state().session.active_comp().unwrap().guides.clone(); + assert!((g[0].position - 200.0).abs() <= 2.0, "{g:?}"); +} + +#[test] +fn layer_drag_snaps_to_comp_centre_and_ctrl_disables() { + let mut h = harness(); + let box_id = h.state().session.active_comp().unwrap().layers[0].id; + h.state_mut().session.execute("prop.set", json!({"layer": box_id.0, "path": "transform/position", "value": [100, 100, 0]})).unwrap(); + h.run_steps(2); + // Grab the box at its centre and drop it 3 px from the comp centre: it snaps there. + let from = screen(&h, [100.0, 100.0]); + let to = screen(&h, [323.0, 182.0]); + drag(&mut h, from, to); + let pos = |h: &Harness<'_, EffectcraftApp>| { + let l = h.state().session.active_comp().unwrap().layer(box_id).unwrap().clone(); + l.props.prop("transform/position").unwrap().value.as_vec3() + }; + let p = pos(&h); + assert!((p[0] - 320.0).abs() < 0.01 && (p[1] - 180.0).abs() < 0.01, "{p:?}"); + // Snapping off: the same drag lands where the pointer is. + h.state_mut().session.execute("view.snapping", json!({"value": false})).unwrap(); + h.state_mut().session.execute("prop.set", json!({"layer": box_id.0, "path": "transform/position", "value": [100, 100, 0]})).unwrap(); + h.run_steps(2); + drag(&mut h, from, to); + let p = pos(&h); + assert!((p[0] - 320.0).abs() > 1.0, "{p:?}"); +} + +#[test] +fn shape_pen_draws_a_closed_shape_layer() { + let mut h = harness(); + h.state_mut().ui.tool = Tool::Pen; + h.run_steps(2); + let n0 = h.state().session.active_comp().unwrap().layers.len(); + for p in [[200.0, 100.0], [400.0, 120.0], [300.0, 260.0], [200.0, 100.0]] { + let at = screen(&h, p); + click(&mut h, at); + } + let comp = h.state().session.active_comp().unwrap().clone(); + assert_eq!(comp.layers.len(), n0 + 1); + let l = &comp.layers[0]; + assert!(matches!(l.source, effectcraft_engine::project::LayerSource::Shape)); + let g = l.props.sub("contents").unwrap().groups().next().unwrap(); + assert_eq!(g.name, "Shape 1"); + let path = g.sub("contents").unwrap().groups().next().unwrap(); + let sp = path.get("path").unwrap().value.as_path().unwrap().clone(); + assert_eq!(sp.vertices.len(), 3); + assert!(sp.closed); + assert!((sp.vertices[0][0] - (200.0 - 320.0)).abs() < 1.5, "{:?}", sp.vertices); + // G cycles the Pen slot: Add Vertex, Delete Vertex, Convert Vertex, Mask Feather, Pen. + let ctx = h.ctx.clone(); + let mut seen = vec![]; + for _ in 0..5 { + effectcraft_ui_egui::menus::invoke(h.state_mut(), &ctx, "tool.pen", json!({})).unwrap(); + seen.push(h.state().ui.tool); + } + assert_eq!(seen, vec![Tool::PenAdd, Tool::PenDelete, Tool::PenConvert, Tool::MaskFeather, Tool::Pen]); + // Add Vertex on the first segment. + h.state_mut().ui.tool = Tool::PenAdd; + h.run_steps(2); + let at = screen(&h, [300.0, 110.0]); + click(&mut h, at); + let comp = h.state().session.active_comp().unwrap().clone(); + let sp = comp.layers[0] + .props + .sub("contents") + .unwrap() + .groups() + .next() + .unwrap() + .sub("contents") + .unwrap() + .groups() + .next() + .unwrap() + .get("path") + .unwrap() + .value + .as_path() + .unwrap() + .clone(); + assert_eq!(sp.vertices.len(), 4); +} + +#[test] +fn motion_path_key_drag_edits_that_key() { + let mut h = harness(); + let box_id: LayerId = h.state().session.active_comp().unwrap().layers[0].id; + let s = &mut h.state_mut().session; + s.execute("layer.select", json!({"layers": [box_id.0]})).unwrap(); + s.execute("prop.addKey", json!({"layer": box_id.0, "path": "transform/position", "time": 0.0, "value": [100, 100, 0]})).unwrap(); + s.execute("prop.addKey", json!({"layer": box_id.0, "path": "transform/position", "time": 2.0, "value": [500, 100, 0]})).unwrap(); + s.execute("view.snapping", json!({"value": false})).unwrap(); + s.set_time(effectcraft_engine::time::Tick::from_seconds_f64(1.0)); + h.run_steps(3); + assert!(h.state().auto.find(&format!("viewer.motionPath.{}.1", box_id.0)).is_some()); + let from = screen(&h, [500.0, 100.0]); + let to2 = screen(&h, [500.0, 300.0]); + drag(&mut h, from, to2); + let l = h.state().session.active_comp().unwrap().layer(box_id).unwrap().clone(); + let k = &l.props.prop("transform/position").unwrap().keys; + let v1 = k[1].value.as_vec3(); + assert!((v1[1] - 300.0).abs() < 2.0 && (v1[0] - 500.0).abs() < 2.0, "{v1:?}"); + assert_eq!(k[0].value.as_vec3(), [100.0, 100.0, 0.0]); +} diff --git a/docs/control-protocol.md b/docs/control-protocol.md index f7c8b964..449a1898 100644 --- a/docs/control-protocol.md +++ b/docs/control-protocol.md @@ -81,7 +81,21 @@ Element ids are stable, for example `tools.Selection`, `panel.Timeline`, `panel. `header.workspace.Animation`, `project.item.`, `viewer.comp`, `viewer.handle..`, `timeline.layer..bar`, `timeline.layer..twirl`, `timeline.prop..stopwatch`, `timeline.key..`, `timeline.cti`, `effectControls.prop..value` and -`effects.item.`. Use `ui.elements` to see what is on screen. +`effects.item.`. The Composition viewer adds `viewer.magnification`, `viewer.resolution`, +`viewer.roi`, `viewer.grid`, `viewer.channel`, `viewer.exposure`, `viewer.snapshot`, +`viewer.showSnapshot`, `viewer.fastPreviews` (their popup entries are `viewer.

Item.`), +`viewer.ruler.top|left|origin`, `viewer.mask..vertex.`, `viewer.shapePath..vertex.`, +`viewer.motionPath..[.in|.out]`, `viewer.freeTransform.handle.` and +`viewer.regionOfInterest`; the Graph Editor adds `timeline.graph.transformBox[.]`, +`timeline.graph.snap` and `timeline.graph.reference`. Use `ui.elements` to see what is on screen. + +Viewer state that agents drive headless too: `view.snapping`, `view.channel {channel, colorized?}`, +`view.exposure {stops | delta}`, `view.resetExposure`, `view.takeSnapshot`, `view.showSnapshot`, +`view.fastPreviewMode {mode}`, `view.setRegionOfInterest {rect}`, `view.addGuide`, +`view.moveGuide`, `view.removeGuide`; editing: `shape.newPath` (Pen on shape layers), +`mask.insertVertex`, `mask.convertVertex`, `mask.deleteVertices`, `path.freeTransform` (masks and +shape paths by uid), `keys.setSpatialTangents` (motion-path handles) and `keys.transform` (Graph +Editor transform box, timeline Alt-drag scaling). The MCP server's bridge mode (`effectcraft-cli mcp --bridge 9877`) is a thin client of this protocol; see [agents.md](agents.md). diff --git a/docs/parity.md b/docs/parity.md index df6b963a..5fb2c816 100644 --- a/docs/parity.md +++ b/docs/parity.md @@ -63,17 +63,17 @@ rendering, on-canvas text editing) are where the conservative figure is most lik | Audio | 85% | 0.5 | audio to keyframes | | Import | 78% | 4.5 | PSD, SVG as shapes, Lottie | | Automation | 76% | 3.3 | a JavaScript scripting object model | -| Shapes | 68% | 3.9 | pen tool for shape paths, vertex editing, taper and wave strokes | +| Shapes | 68% | 3.9 | taper and wave strokes (pen tool for shape paths and vertex editing landed in M6.5) | | Compositions | 67% | 7.4 | marker dialog, flowchart, Essential Graphics | -| Animation | 65% | 10.4 | motion-path handles in the viewer, graph editor transform box, puppet, Wiggler/Smoother/Motion Sketch | +| Animation | 65% | 10.4 | puppet, Wiggler/Smoother/Motion Sketch (motion-path handles and the graph editor transform box landed in M5.8) | | Text | 63% | 5.8 | on-canvas editing with a cursor, per-character styles, paragraph spacing and indents | | Web | 60% | 2.5 | threads, browser storage, audio | | 3D | 58% | 20.5 | Advanced 3D (models, PBR, image-based light), 3D camera tracker, multi-view layouts | | Effects | 56% | 14.6 | Effect Controls widgets (angle dial, point crosshair, eyedropper, curves), GPU effects, 41 missing effects | -| Interface | 55% | 10.4 | drag-to-dock and floating panels, viewer rulers/snapping/channels/snapshots, preferences, native macOS menus | +| Interface | 55% | 10.4 | drag-to-dock and floating panels, preferences, native macOS menus (viewer rulers/snapping/channels/snapshots landed in M0.13) | | Project | 53% | 8.1 | 8/16/32-bit pipeline and colour management, auto-save, proxies, folder moves | -| Masks & roto | 44% | 13.0 | mask tracking, Roto Brush, free transform and RotoBezier | -| Preview | 43% | 8.1 | GPU compositor, disk cache, region of interest, snapshots and exposure | +| Masks & roto | 44% | 13.0 | mask tracking, Roto Brush, variable-width mask feather points | +| Preview | 43% | 8.1 | GPU compositor, disk cache (region of interest, snapshots, exposure and Fast Previews landed in M0.13) | | Tracking | 0% | 13.0 | point tracker, Warp Stabilizer, mask and face tracking | | Paint | 0% | 4.0 | Brush, Clone Stamp, Eraser | @@ -89,10 +89,10 @@ Mocha and Cineware are third-party and not counted. 1. On-canvas text editing and per-character styles. 2. Effect Controls widgets: angle dial, point crosshair, eyedropper, curves and levels editors. -3. Viewer basics: snapping, rulers, channel view, snapshots, exposure, a drawable region of interest. +3. ~~Viewer basics: snapping, rulers, channel view, snapshots, exposure, a drawable region of interest.~~ (M0.13) 4. A GPU (wgpu) compositor, then GPU effects. -5. Pen tool for shape paths, shape vertex editing, the Layer viewer, free transform and RotoBezier. -6. Motion-path handles in the viewer; graph editor transform box and snapping. +5. ~~Pen tool for shape paths, shape vertex editing, free transform~~ (M6.5); the Layer viewer. +6. ~~Motion-path handles in the viewer; graph editor transform box and snapping.~~ (M5.8) 7. Point tracking and stabilization (in progress). 8. Frame blending, collapse transformations, slip edit. 9. A real 8/16/32-bit pipeline with linear blending and colour management. From f455b8b2fbe91a7c6ee5d45da9633b3a7f1077c0 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 10:22:51 -0400 Subject: [PATCH 6/6] M5.8: motion paths + graph transform box Graph Editor (ANM-4) and timeline keyframe tools: - Transform box around two or more selected keys: corners scale time and value about the opposite corner, edges one axis, the inside moves the keys (keys.transform, one undo step per drag, times land on frames). - Snap: dragged key times snap to the current time and other keys. - Show Reference Graph: the other graph type, faint, behind the curves. - Timeline Alt-drag of a key group's first or last key scales the group in time about the other end. - keys.transform takes dims (only the shown dimensions change). Co-Authored-By: Claude Opus 5.5 --- crates/ui-egui/src/panels/graph.rs | 52 ++++- crates/ui-egui/src/panels/graph_tools.rs | 281 +++++++++++++++++++++++ crates/ui-egui/src/panels/mod.rs | 1 + crates/ui-egui/src/panels/timeline.rs | 14 +- crates/ui-egui/tests/ui_viewer.rs | 73 ++++++ 5 files changed, 419 insertions(+), 2 deletions(-) create mode 100644 crates/ui-egui/src/panels/graph_tools.rs diff --git a/crates/ui-egui/src/panels/graph.rs b/crates/ui-egui/src/panels/graph.rs index 7a3072e6..655fe619 100644 --- a/crates/ui-egui/src/panels/graph.rs +++ b/crates/ui-egui/src/panels/graph.rs @@ -231,11 +231,45 @@ pub(crate) fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, p: &egui::Painte p.text(plot.center(), Align2::CENTER_CENTER, "Select animated properties to show them in the Graph Editor", Tokens::ui(12.0), t.text_faint); } + // Show Reference Graph: the other graph type, faint, scaled to the plot. + if app.ui.timeline.graph_reference && !cs.is_empty() { + let other = curves(app, comp, ectx, tm, plot, !speed); + let (mut rlo, mut rhi) = (f64::INFINITY, f64::NEG_INFINITY); + for c in &other { + for (_, v) in &c.pts { + rlo = rlo.min(*v); + rhi = rhi.max(*v); + } + } + if rlo.is_finite() { + let span = (rhi - rlo).max(1e-9); + let lines: Vec<(Color32, Vec)> = other + .iter() + .map(|c| { + ( + c.color, + c.pts + .iter() + .map(|(ct, v)| pos2(tm.x(*ct), plot.max.y - ((v - rlo) / span) as f32 * plot.height() * 0.9 - plot.height() * 0.05)) + .collect(), + ) + }) + .collect(); + super::graph_tools::reference_graph(&pc, plot, &lines); + } + } // Curves. for c in &cs { let pts: Vec = c.pts.iter().map(|(ct, v)| pos2(tm.x(*ct), ymap(*v))).collect(); pc.add(egui::Shape::line(pts, Stroke::new(1.5, c.color))); } + // Transform box around several selected keys (inside below the keys, handles above). + let sel_keys: Vec = cs + .iter() + .flat_map(|c| c.keys.iter().filter(|k| k.sel).map(move |k| super::graph_tools::SelKey { t: k.t, v: k.v, dim: c.dim, editable: c.editable })) + .collect(); + let all_key_times: Vec<(u64, usize, f64)> = cs.iter().flat_map(|c| c.keys.iter().map(move |k| (c.prop.uid, k.idx, k.t))).collect(); + super::graph_tools::transform_box(app, ui, &pc, &sel_keys, tm, &ymap, &vmap, speed, false, actions); // Keys and handles. let mut key_screens: Vec<(serde_json::Value, Pos2)> = vec![]; let fr = comp.frame_rate; @@ -298,7 +332,10 @@ pub(crate) fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, p: &egui::Painte { ctx.data_mut(|dd| dd.insert_temp(drag_id, true)); let merge = format!("gkey-{uid}-{}", k.idx); - let nt = c.layer.layer_time(fr.snap_nearest(Tick::from_seconds_f64(tm.t(pt.x).max(0.0)))); + // Graph Editor ▸ Snap: to the current time and other keys. + let others: Vec = all_key_times.iter().filter(|(u, i, _)| !(*u == uid && *i == k.idx)).map(|x| x.2).collect(); + let ct = super::graph_tools::snap_time(app, tm, tm.t(pt.x).max(0.0), &others); + let nt = c.layer.layer_time(fr.snap_nearest(Tick::from_seconds_f64(ct))); let mut params = json!({"layer": lid.0, "prop": uid, "time": k.time.seconds(), "newTime": nt.seconds(), "merge": merge}); if !speed && c.editable { let mut comps = c.prop.keys[k.idx].value.components(); @@ -316,6 +353,8 @@ pub(crate) fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, p: &egui::Painte } } + super::graph_tools::transform_box(app, ui, &pc, &sel_keys, tm, &ymap, &vmap, speed, true, actions); + // Background: click deselects keys, drag box-selects. if bg.clicked() { actions.push(("keys.select".into(), json!({"keys": []}))); @@ -374,6 +413,17 @@ pub(crate) fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, p: &egui::Painte fit_selection(app, &cs, tm, plot); } x += 6.0; + let (snap, reference, tbox) = (app.ui.timeline.graph_snap, app.ui.timeline.graph_reference, app.ui.timeline.graph_transform_box); + if text_button(app, ui, p, &mut x, y, "Snap", snap, "snap", "Snap (key drags snap to the current time and other keys)") { + app.ui.timeline.graph_snap = !snap; + } + if text_button(app, ui, p, &mut x, y, "Reference", reference, "reference", "Show Reference Graph") { + app.ui.timeline.graph_reference = !reference; + } + if text_button(app, ui, p, &mut x, y, "Transform Box", tbox, "transformBox", "Show Transform Box when multiple keys are selected") { + app.ui.timeline.graph_transform_box = !tbox; + } + x += 6.0; let pos_sel = app.session.state.selected_props.iter().find_map(|(l, u)| { let layer = comp.layer(*l)?; let tr = layer.transform()?; diff --git a/crates/ui-egui/src/panels/graph_tools.rs b/crates/ui-egui/src/panels/graph_tools.rs new file mode 100644 index 00000000..c42fd329 --- /dev/null +++ b/crates/ui-egui/src/panels/graph_tools.rs @@ -0,0 +1,281 @@ +//! Graph Editor and timeline keyframe tools: the transform box around several selected keys +//! (scale and move them in time and value), key-time snapping, and Alt-drag of a key group's +//! first or last key in the timeline to scale the group in time. Edits are `keys.transform`. + +use effectcraft_engine::project::Comp; +use egui::{Color32, Pos2, Rect, Sense, Stroke, StrokeKind, pos2, vec2}; +use serde_json::{Value, json}; + +use super::timeline::TMap; +use crate::EffectcraftApp; + +type Actions = Vec<(String, Value)>; + +/// A selected key point in the graph: comp seconds, graph value, the dimension it shows, and +/// whether its value is editable there. +#[derive(Clone, Copy)] +pub(crate) struct SelKey { + pub t: f64, + pub v: f64, + pub dim: usize, + pub editable: bool, +} + +/// Transform box geometry (data space): [t0, v0, t1, v1]. +#[derive(Clone, Copy, Debug)] +struct BoxDrag { + /// 0–3 corners (t0v1, t1v1, t1v0, t0v0 = screen TL, TR, BR, BL), 4–7 edges (top, right, + /// bottom, left), 8 = move. + handle: usize, + /// Fixed opposite point (comp s, value). + anchor: [f64; 2], + /// Pointer data position of the previous frame. + last: [f64; 2], +} + +fn box_id() -> egui::Id { + egui::Id::new("graph-transform-box") +} + +/// Bounds of the selected keys: (t0, v0, t1, v1). +fn bounds(keys: &[SelKey]) -> Option<[f64; 4]> { + if keys.len() < 2 { + return None; + } + let mut b = [f64::MAX, f64::MAX, f64::MIN, f64::MIN]; + for k in keys { + b = [b[0].min(k.t), b[1].min(k.v), b[2].max(k.t), b[3].max(k.v)]; + } + (b[2] > b[0] || b[3] > b[1]).then_some(b) +} + +fn handle_points(r: Rect) -> [Pos2; 8] { + let c = r.center(); + [r.left_top(), r.right_top(), r.right_bottom(), r.left_bottom(), pos2(c.x, r.min.y), pos2(r.max.x, c.y), pos2(c.x, r.max.y), pos2(r.min.x, c.y)] +} + +/// The transform box for two or more selected keys. Call before the keys are drawn (its inside +/// sits below them) with `handles = false`, and after them with `handles = true` (the handles sit +/// on top). Dragging a corner scales time and value about the opposite corner, an edge one axis, +/// the inside moves the keys; times land on frames. +#[allow(clippy::too_many_arguments)] +pub(crate) fn transform_box( + app: &mut EffectcraftApp, + ui: &mut egui::Ui, + p: &egui::Painter, + keys: &[SelKey], + tm: TMap, + ymap: &dyn Fn(f64) -> f32, + vmap: &dyn Fn(f32) -> f64, + speed: bool, + handles: bool, + actions: &mut Actions, +) { + if !app.ui.timeline.graph_transform_box { + return; + } + let Some(b) = bounds(keys) else { return }; + let r = Rect::from_min_max(pos2(tm.x(b[0]), ymap(b[3])), pos2(tm.x(b[2]), ymap(b[1]))).expand(6.0); + let value_ok = !speed && keys.iter().all(|k| k.editable); + let col = Color32::from_rgb(0xd8, 0xd8, 0xd8); + let ctx = ui.ctx().clone(); + let drag_id = egui::Id::new("graph-dragging"); + let hp = handle_points(r); + let data = |q: Pos2| [tm.t(q.x), vmap(q.y)]; + // Which data point each handle sits on, and its opposite. + let corner = |i: usize| -> [f64; 2] { + match i { + 0 => [b[0], b[3]], + 1 => [b[2], b[3]], + 2 => [b[2], b[1]], + 3 => [b[0], b[1]], + 4 => [(b[0] + b[2]) / 2.0, b[3]], + 5 => [b[2], (b[1] + b[3]) / 2.0], + 6 => [(b[0] + b[2]) / 2.0, b[1]], + _ => [b[0], (b[1] + b[3]) / 2.0], + } + }; + let mut start: Option = None; + let mut resp_any: Option = None; + if !handles { + p.rect_stroke(r, 0.0, Stroke::new(1.0, col.gamma_multiply(0.7)), StrokeKind::Middle); + let resp = ui.interact(r, egui::Id::new("graph-box-inside"), Sense::drag()); + app.auto.add("timeline.graph.transformBox", r, "Transform box"); + if resp.drag_started() + && let Some(o) = ui.input(|i| i.pointer.press_origin()) + { + start = Some(BoxDrag { handle: 8, anchor: [0.0; 2], last: data(o) }); + } + resp_any = Some(resp); + } else { + for (i, h) in hp.iter().enumerate() { + // Value handles only when values can change. + if !value_ok && matches!(i, 4 | 6) { + continue; + } + let hr = Rect::from_center_size(*h, vec2(7.0, 7.0)); + p.rect_filled(hr, 0.0, Color32::from_gray(0x20)); + p.rect_stroke(hr, 0.0, Stroke::new(1.0, col), StrokeKind::Middle); + let resp = ui.interact(hr.expand(2.0), egui::Id::new(("graph-box-handle", i)), Sense::drag()); + app.auto.add(&format!("timeline.graph.transformBox.{i}"), hr, "Transform box handle"); + if resp.drag_started() { + let opp = [2, 3, 0, 1, 6, 7, 4, 5][i]; + start = Some(BoxDrag { handle: i, anchor: corner(opp), last: corner(i) }); + } + if resp.dragged() || resp.drag_stopped() { + resp_any = Some(resp); + } + } + } + if let Some(s) = start { + ctx.data_mut(|d| { + d.insert_temp(box_id(), s); + d.insert_temp(drag_id, true); + }); + } + let Some(resp) = resp_any else { return }; + let Some(mut st) = ctx.data(|d| d.get_temp::(box_id())) else { return }; + if (st.handle == 8) == handles { + return; + } + if resp.dragged() + && let Some(pt) = resp.interact_pointer_pos() + { + let cur = data(pt); + let mut params = json!({"merge": "graph-box"}); + if st.handle == 8 { + params["timeOffset"] = json!(cur[0] - st.last[0]); + if value_ok { + params["valueOffset"] = json!(cur[1] - st.last[1]); + } + st.last = cur; + } else { + let (time_axis, value_axis) = match st.handle { + 4 | 6 => (false, true), + 5 | 7 => (true, false), + _ => (true, true), + }; + // Scale relative to where the handle is now (incremental, so merged steps compose). + let now = corner(st.handle); + if time_axis && (now[0] - st.anchor[0]).abs() > 1e-6 { + let k = (cur[0] - st.anchor[0]) / (now[0] - st.anchor[0]); + if k > 0.01 { + params["timeScale"] = json!(k); + params["timeAnchor"] = json!(st.anchor[0]); + } + } + if value_axis && value_ok && (now[1] - st.anchor[1]).abs() > 1e-9 { + params["valueScale"] = json!((cur[1] - st.anchor[1]) / (now[1] - st.anchor[1])); + params["valueAnchor"] = json!(st.anchor[1]); + } + } + let mut dims: Vec = keys.iter().map(|k| k.dim).collect(); + dims.sort_unstable(); + dims.dedup(); + params["dims"] = json!(dims); + if params.as_object().is_some_and(|m| m.len() > 2) { + actions.push(("keys.transform".into(), params)); + } + ctx.data_mut(|d| d.insert_temp(box_id(), st)); + } + if resp.drag_stopped() { + ctx.data_mut(|d| { + d.remove::(box_id()); + d.insert_temp(drag_id, false); + }); + actions.push(("__endMerge".into(), json!({}))); + } +} + +/// Graph Editor ▸ Snap: a dragged key time (comp s) snaps to the current time or another key's +/// time within 6 points. +pub(crate) fn snap_time(app: &EffectcraftApp, tm: TMap, t: f64, others: &[f64]) -> f64 { + if !app.ui.timeline.graph_snap { + return t; + } + let cti = app.session.time().seconds(); + let x = tm.x(t); + std::iter::once(cti) + .chain(others.iter().copied()) + .map(|c| (c, (tm.x(c) - x).abs())) + .filter(|(_, d)| *d < 6.0) + .min_by(|a, b| a.1.total_cmp(&b.1)) + .map(|(c, _)| c) + .unwrap_or(t) +} + +// ---------------------------------------------------------------- timeline Alt-drag scaling + +#[derive(Clone, Copy, Debug)] +struct AltScale { + /// The fixed end of the group (comp s). + anchor: f64, + /// The dragged end is the group's last key (else its first). + end_is_max: bool, +} + +fn alt_id() -> egui::Id { + egui::Id::new("timeline-alt-scale") +} + +/// Selected keys' comp-time range. +fn sel_range(app: &EffectcraftApp, comp: &Comp) -> Option<(f64, f64)> { + let ts: Vec = app.session.state.selected_keys.iter().filter_map(|k| comp.layer(k.layer).map(|l| l.comp_time(k.time).seconds())).collect(); + if ts.len() < 2 { + return None; + } + let lo = ts.iter().copied().fold(f64::MAX, f64::min); + let hi = ts.iter().copied().fold(f64::MIN, f64::max); + (hi - lo > 1e-9).then_some((lo, hi)) +} + +/// Alt-drag on the first or last key of a selected group starts scaling the group in time +/// about the other end. Returns true when it took the drag. +pub(crate) fn alt_scale_begin(app: &EffectcraftApp, ctx: &egui::Context, comp: &Comp, key_ct: f64) -> bool { + let Some((lo, hi)) = sel_range(app, comp) else { return false }; + let st = if (key_ct - hi).abs() < 1e-6 { + AltScale { anchor: lo, end_is_max: true } + } else if (key_ct - lo).abs() < 1e-6 { + AltScale { anchor: hi, end_is_max: false } + } else { + return false; + }; + ctx.data_mut(|d| d.insert_temp(alt_id(), st)); + true +} + +/// While an Alt-drag scale is active: scale the group so its dragged end follows the pointer. +pub(crate) fn alt_scale_update(app: &EffectcraftApp, ctx: &egui::Context, comp: &Comp, tm: TMap, actions: &mut Actions) { + let Some(st) = ctx.data(|d| d.get_temp::(alt_id())) else { return }; + if !ctx.input(|i| i.pointer.primary_down()) { + ctx.data_mut(|d| d.remove::(alt_id())); + actions.push(("__endMerge".into(), json!({}))); + return; + } + let (Some((lo, hi)), Some(px)) = (sel_range(app, comp), ctx.input(|i| i.pointer.latest_pos())) else { return }; + let fr = comp.frame_rate; + let target = fr.snap_nearest(effectcraft_engine::time::Tick::from_seconds_f64(tm.t(px.x).max(0.0))).seconds(); + let end = if st.end_is_max { hi } else { lo }; + let span = end - st.anchor; + let want = target - st.anchor; + if span.abs() < 1e-9 || want.abs() < 1e-9 || want.signum() != span.signum() { + return; + } + let k = want / span; + if (k - 1.0).abs() > 1e-6 { + actions.push(("keys.transform".into(), json!({"timeScale": k, "timeAnchor": st.anchor, "merge": "key-alt-scale"}))); + } +} + +/// An Alt-drag group scale is in progress (the plain key move stands aside). +pub(crate) fn alt_scale_active(ctx: &egui::Context) -> bool { + ctx.data(|d| d.get_temp::(alt_id())).is_some() +} + +/// Graph Editor ▸ Show Reference Graph: the other graph type, normalized to the plot, faint. +pub(crate) fn reference_graph(p: &egui::Painter, plot: Rect, curves: &[(Color32, Vec)]) { + for (c, pts) in curves { + p.add(egui::Shape::line(pts.clone(), Stroke::new(1.0, c.gamma_multiply(0.35)))); + } + let _ = plot; +} diff --git a/crates/ui-egui/src/panels/mod.rs b/crates/ui-egui/src/panels/mod.rs index 239b84d3..16d1c0ee 100644 --- a/crates/ui-egui/src/panels/mod.rs +++ b/crates/ui-egui/src/panels/mod.rs @@ -8,6 +8,7 @@ pub mod effects_presets; pub mod forms; pub mod fx_widgets; pub mod graph; +pub mod graph_tools; pub mod info; pub mod key_dialogs; pub mod layer_panel; diff --git a/crates/ui-egui/src/panels/timeline.rs b/crates/ui-egui/src/panels/timeline.rs index ab85e8eb..e1563c44 100644 --- a/crates/ui-egui/src/panels/timeline.rs +++ b/crates/ui-egui/src/panels/timeline.rs @@ -1320,7 +1320,15 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { } } }); - if kresp.dragged() { + // Alt-drag the first or last key of a selected group: scale the group in time. + if kresp.drag_started() + && ui.input(|i| i.modifiers.alt) + && let Some(c) = app.session.active_comp().cloned() + { + super::graph_tools::alt_scale_begin(app, &ctx, &c, ct.seconds()); + } + let alt_scaling = super::graph_tools::alt_scale_active(&ctx); + if kresp.dragged() && !alt_scaling { let acc_id = egui::Id::new("key-drag-acc"); let mut acc: f32 = ctx.data(|d| d.get_temp(acc_id).unwrap_or(0.0)); acc += kresp.drag_delta().x; @@ -1364,6 +1372,10 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) { } } } + // Alt-drag key group scaling (follows the pointer until release). + if let Some(c) = app.session.active_comp().cloned() { + super::graph_tools::alt_scale_update(app, &ctx, &c, tm, &mut actions); + } // Graph editor. if graph_on { super::graph::show(app, ui, &gp, &comp, &ectx, tm, Rect::from_min_max(pos2(graph_x0, rows_rect.min.y), rows_rect.max), &mut actions); diff --git a/crates/ui-egui/tests/ui_viewer.rs b/crates/ui-egui/tests/ui_viewer.rs index db3f9748..db739954 100644 --- a/crates/ui-egui/tests/ui_viewer.rs +++ b/crates/ui-egui/tests/ui_viewer.rs @@ -222,3 +222,76 @@ fn motion_path_key_drag_edits_that_key() { assert!((v1[1] - 300.0).abs() < 2.0 && (v1[0] - 500.0).abs() < 2.0, "{v1:?}"); assert_eq!(k[0].value.as_vec3(), [100.0, 100.0, 0.0]); } + +#[test] +fn graph_editor_transform_box_scales_selected_keys_in_time() { + let mut h = harness(); + let box_id: LayerId = h.state().session.active_comp().unwrap().layers[0].id; + let s = &mut h.state_mut().session; + s.execute("layer.select", json!({"layers": [box_id.0]})).unwrap(); + for (t, v) in [(0.0, 0.0), (1.0, 50.0), (2.0, 100.0)] { + s.execute("prop.addKey", json!({"layer": box_id.0, "path": "transform/opacity", "time": t, "value": v})).unwrap(); + } + let uid = s.active_comp().unwrap().layer(box_id).unwrap().props.prop("transform/opacity").unwrap().uid; + s.execute("prop.select", json!({"layer": box_id.0, "prop": uid})).unwrap(); + let keys: Vec<_> = [0.0, 1.0, 2.0].iter().map(|t| json!({"layer": box_id.0, "prop": uid, "time": t})).collect(); + s.execute("keys.select", json!({"keys": keys})).unwrap(); + h.state_mut().ui.timeline.graph_editor = true; + h.run_steps(4); + for id in ["timeline.graph.snap", "timeline.graph.reference", "timeline.graph.transformBox", "timeline.graph.transformBox.5"] { + assert!(h.state().auto.find(id).is_some(), "missing {id}"); + } + // Drag the right edge handle to the right: the keys spread out in time, the first stays. + let r = rect(&h, "timeline.graph.transformBox.5"); + let k0 = rect(&h, &format!("timeline.graph.key.{uid}.0.0")).center(); + let k2 = rect(&h, &format!("timeline.graph.key.{uid}.0.2")).center(); + let to = r.center() + vec2((k2.x - k0.x) * 0.5, 0.0); + drag(&mut h, r.center(), to); + let p = h.state().session.active_comp().unwrap().layer(box_id).unwrap().props.prop("transform/opacity").unwrap().clone(); + let ts: Vec = p.keys.iter().map(|k| k.time.seconds()).collect(); + assert_eq!(ts[0], 0.0); + assert!(ts[2] > 2.5 && ts[2] < 3.5, "{ts:?}"); + assert_eq!(p.keys.iter().map(|k| k.value.as_f64()).collect::>(), vec![0.0, 50.0, 100.0]); + let undo = h.state().session.history.undo.iter().filter(|(l, _)| l == "Transform Keyframes").count(); + assert_eq!(undo, 1, "one undo step per drag"); +} + +#[test] +fn timeline_alt_drag_scales_a_key_group_in_time() { + let mut h = harness(); + let box_id: LayerId = h.state().session.active_comp().unwrap().layers[0].id; + let s = &mut h.state_mut().session; + s.execute("layer.select", json!({"layers": [box_id.0]})).unwrap(); + for (t, v) in [(0.0, 0.0), (1.0, 50.0), (2.0, 100.0)] { + s.execute("prop.addKey", json!({"layer": box_id.0, "path": "transform/opacity", "time": t, "value": v})).unwrap(); + } + let uid = s.active_comp().unwrap().layer(box_id).unwrap().props.prop("transform/opacity").unwrap().uid; + s.execute("keys.selectAll", json!({"layers": [box_id.0]})).unwrap(); + let ctx = h.ctx.clone(); + effectcraft_ui_egui::menus::invoke(h.state_mut(), &ctx, "timeline.reveal.opacity", json!({})).unwrap(); + h.run_steps(4); + let mut ks: Vec = + h.state().auto.query(&format!("timeline.key.{uid}.")).iter().map(|e| pos2(e.rect[0] + e.rect[2] / 2.0, e.rect[1] + e.rect[3] / 2.0)).collect(); + ks.sort_by(|a, b| a.x.total_cmp(&b.x)); + assert_eq!(ks.len(), 3, "{ks:?}"); + let (k0, k2) = (ks[0], ks[2]); + // Alt-drag the last key to where 3 s would be: the group scales by 1.5 about the first key. + let to = pos2(k0.x + (k2.x - k0.x) * 1.5, k2.y); + let alt = egui::Modifiers { alt: true, ..Default::default() }; + h.input_mut().events.push(Event::PointerMoved(k2)); + h.step(); + h.input_mut().events.push(Event::ModifiersChanged(alt)); + h.input_mut().events.push(Event::PointerButton { pos: k2, button: egui::PointerButton::Primary, pressed: true, modifiers: alt }); + h.step(); + for i in 1..=8 { + h.input_mut().events.push(Event::PointerMoved(k2 + (to - k2) * (i as f32 / 8.0))); + h.step(); + } + h.input_mut().events.push(Event::PointerButton { pos: to, button: egui::PointerButton::Primary, pressed: false, modifiers: alt }); + h.run_steps(2); + let p = h.state().session.active_comp().unwrap().layer(box_id).unwrap().props.prop("transform/opacity").unwrap().clone(); + let ts: Vec = p.keys.iter().map(|k| k.time.seconds()).collect(); + assert_eq!(ts.len(), 3); + assert_eq!(ts[0], 0.0); + assert!((ts[2] - 3.0).abs() < 0.1 && (ts[1] - 1.5).abs() < 0.1, "{ts:?}"); +}

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%0AyARtTS%~XJL$%pX|DTwbc!f^Ld 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