Commit Graph
3254 Commits
Author SHA1 Message Date
vangel76andClaude Sonnet 5.5 06d5a6fc80 Merge upstream/main into camtrack-matrix-free-schur
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 20:32:17 +01:00
vangel76 88c02a953e Merge remote-tracking branch 'upstream/main' into q2400-merge
# Conflicts:
#	crates/av1enc/src/decide.rs
2026-10-29 20:32:16 +01:00
vangel76andClaude Sonnet 5.5 99caf83c62 Merge upstream/main into rfx-text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 20:31:32 +01:00
pravdomilandClaude Opus 5.5 caedb0727a Viewer trackpad gestures: two-finger scroll pans, pinch zooms
The Composition and Layer viewers took every scroll as a zoom, so a trackpad
could not pan. A trackpad's two-finger scroll now pans; a pinch,
Ctrl/Cmd+scroll, a mouse wheel and Alt + a trackpad scroll zoom around the
pointer.

Where the platform names the device (egui's MouseWheelSource, macOS), that
decides. Elsewhere browsers and some high-resolution wheels report a mouse
wheel in points, as a trackpad does, so the unit alone doesn't decide. A
scroll in points pans only once it has shown it is a trackpad: a touch phase,
movement on both axes at once, or a pinch. That holds until a wheel scrolls
in lines. Until then the vertical part zooms and the horizontal part pans.

ui.scroll gains unit (point|line), source (wheel|trackpad) and pinch so
agents can drive both gestures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:21:10 +01:00
pravdomilandClaude Opus 5.5 7fe5f5225f #595: RAM preview no longer stalls on a gap right after the playhead
Problem: pressing play on frames that still had to render left the playhead
standing still for seconds. The cache bar showed a gap of a few frames right
after the playhead while frames further ahead turned green, and playback
started only once the whole prefetch window was cached. The earlier #595
change (prefetch order, eviction) started the right frames first, but they
still finished last. Cache Frames When Idle left the same late-filling gaps.

Cause: prefetch frames render side by side on one rayon pool, and each
frame's own parallel loops run on that pool too. An idle thread steals a
piece of a frame that is rendering; when that piece waits on a nested
parallel loop, the thread picks up a queued frame job instead and renders
queued frames until the queue is empty. Only then does it return to the
piece it stole, so the frame that piece belongs to cannot finish while
frames keep being queued. The frames started first are the ones just ahead
of the playhead.

Fix: the frames of a playing preview and of Cache Frames When Idle render on
lanes: one single-thread pool per frame thread, one frame at a time each. A
lane's thread only ever works on its own frame, so no frame waits under
another. The shared pool keeps the viewer's frame, which still uses every
thread, and the few frames prefetched around it while paused. Queued frames
change hands when a preview starts or stops, or when the viewer shows one.
Idle caching takes every lane instead of half the pool's threads.

Tests: frames_started_first_are_done_first (a playing preview, idle
caching) and queued_frames_render_when_a_preview_starts_or_stops.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:19:06 +01:00
pravdomilandClaude Opus 5.5 edb3b5985e UI: Composition Settings keeps Cancel and OK in place between tabs
The button row followed each tab's content, so it jumped when switching
between Basic, Advanced and 3D Renderer. The tabs not on show are laid out
unseen each frame and the dialog pads to the tallest, so Cancel and OK stay
put with any font, language or scale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:16:24 +01:00
pravdomilandClaude Opus 5.5 a56a42c096 UI: show an open padlock on an unlocked Composition / Timeline viewer lock
The viewer lock in a tab group's header drew the same closed padlock in
both states, told apart only by brightness. Unlocked now draws an open
padlock, locked the closed one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:06:39 +01:00
pravdomilandClaude Opus 5.5 07639b5f4b Settings: Save Compact Project Files writes .ecproj as one-line JSON
Settings ▸ Project ▸ Project Files ▸ Save Compact Project Files (off by
default) saves .ecproj files as compact JSON: smaller, faster to save and
open. Off, they stay indented, one value per line, so they read and diff
cleanly in version control. XML copies are not affected; auto-saves were
already compact. The project.ecproj inside exported template and Motion
Graphics template packages is written compact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:06:02 +01:00
Egon 5000 7081ba4d75 UI: map all four box corners for the double-click mask on a rotated layer
Two corners give a sliver instead of a comp-filling mask when the layer is
rotated by an angle other than a multiple of 90 degrees (CodeRabbit on
#1654): map the comp box's four corners into layer space and use their
bounds.
2026-10-29 19:52:55 +01:00
elZanco 2fb803fa82 UI: 2026-10-29 19:52:55 +01:00
Egon 5000 34aef98725 UI: double-clicking a creation tool in the Tools bar makes an instance (#1072)
A double-click on a creation tool in the Tools bar makes what it draws, as in After Effects: a text layer from the Type tools; from the shape tools a shape that fills the comp - into the selected shape layer's Contents, as a mask on the selected layer (or when Tool Creates Mask is on), or as a new shape layer when neither applies. The shape geometry defaults now match AE: the Rounded Rectangle tool's Roundness is a fixed 20 instead of growing with the drawn size, and the Polygon tool draws five points.
2026-10-29 19:52:55 +01:00
elZanco ce6b5fa99f Timeline: trimming the Out point to the playhead keeps its frame visible
Alt+] (Trim Layer Out Point to Current Time) used to set the Out edge exactly at the playhead; the layer interval is half-open, so the playhead's frame was already gone - nothing showed in the current frame. The edge now lands one frame after the playhead, as in After Effects, so its frame is the layer's last visible one. A layer still keeps at least one frame; Alt+[ (In point) is unchanged.
2026-10-29 19:49:22 +01:00
Kristian Myram c9688ef796 #2459: cover localized text-field Undo and Redo labels 2026-10-29 19:47:46 +01:00
Kristian Myram e186141904 #2465: start Linear preset regression with Bezier endpoint sides 2026-10-29 19:37:43 +01:00
BFlat 5ed248bece Merge pull request #2599 from storytold/fix/1789-content-fill-memory
Content-Aware Fill: refuse up front when the frames can't fit in memory (#1789)
2026-10-30 01:35:10 +07:00
bflatasticandClaude Opus 5.5 cfd902d2db Content-Aware Fill: refuse up front when the frames can't fit in memory (#1789)
The fill holds every frame as float RGBA, its hole mask and the filled copy until it
finishes, so a long or large range ran out of memory partway through (22-33 % on the
reports). Planning the fill now compares that lower bound with the system's available
memory and refuses with what it needs and how to shorten the range.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 01:34:40 +07:00
BFlat 1854dc0bd2 Merge pull request #2598 from storytold/fix/959-shape-content-eyes
Timeline: every shape Contents item has an eye switch, as in After Effects (#959)
2026-10-30 01:34:38 +07:00
bflatastic e023d42a82 Merge remote-tracking branch 'origin/main' into fix/959-shape-content-eyes 2026-10-30 01:27:53 +07:00
BFlat 2090726e55 Merge pull request #1513 from vangel76/gap-behaviors-presets
#1510: Behaviors animation presets (22 original, expression-driven)
2026-10-30 01:26:43 +07:00
BFlat b08c2bc76d Merge pull request #2348 from vangel76/effects-cache-analysis-keys
Reuse Warp Stabilizer and Camera Tracker analysis keys
2026-10-30 01:26:28 +07:00
BFlat 364f140c25 Merge pull request #2452 from tylerjenningsw/fix/preset-effect-keys
Animation presets: anchor saved effect keyframes at the playhead
2026-10-30 01:26:14 +07:00
BFlat f483b85321 Merge pull request #1390 from tylerjenningsw/fix/particle-birth-history-ps2-mercury
Particles: CC Particle Systems II and CC Mr. Mercury keep emitted particles when Birth Rate changes (#1373)
2026-10-30 01:25:58 +07:00
bflatastic 6ab7bd31dd Merge main into #1513; resolve docs/effects-parity.md 2026-10-30 01:25:24 +07:00
bflatastic 3830d43c4e Merge main into #2348; resolve crates/effects/src/warp_stab.rs 2026-10-30 01:25:07 +07:00
bflatastic 6a30a8b8d5 Merge main into #2452; resolve crates/engine/src/cmd/animation.rs crates/engine/src/tests/effects.rs 2026-10-30 01:24:52 +07:00
bflatastic 6af2bedfe0 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 01:24:36 +07:00
BFlat 676eeb8d07 Merge pull request #2289 from onlykshitij/feat/script-panel-submenus
Scripts: subfolders of the Scripts and ScriptUI Panels folders become submenus
2026-10-30 01:23:53 +07:00
BFlat eccb1883e2 Merge pull request #1092 from vangel76/fix-1083-beat-marker-audio-pause
Markers: adding one during playback no longer stops the audio (#1083, #1085)
2026-10-30 01:23:37 +07:00
BFlat 248818522a Merge pull request #1763 from Higgs32584/fix/1615-cpu-inflight-cap
Export: cap CPU frames in flight with EFFECTCRAFT_CPU_INFLIGHT (#1615)
2026-10-30 01:23:12 +07:00
BFlat c31e651e82 Merge pull request #1504 from midasmatterhorn/fix/issue-1274-obj-sibling-textures
model: OBJ/MTL references from another machine find the file next to the model, and a missing one is logged
2026-10-30 01:22:54 +07:00
BFlat decad188aa Merge pull request #1805 from nanox333/feat/marker-name-box
Marker names are drawn in a small outlined box, in theme colours
2026-10-30 01:22:36 +07:00
BFlat 6e3c864c98 Merge pull request #2396 from vangel76/av1enc-transform-specialise
av1enc: specialise the inverse transform per size, size the forward tmp buffer
2026-10-30 01:22:20 +07:00
BFlat b42cbcdb5e Merge pull request #1921 from tylerjenningsw/enhance/keyframe-text-clipboard
Clipboard: export keyframes as After Effects-compatible text
2026-10-30 01:22:04 +07:00
BFlat 7099fe0bae Merge pull request #1874 from vangel76/rfx-masks-shapes
Mask feather, Repeater opacity and Trim Paths on rectangles render as in After Effects
2026-10-30 01:21:47 +07:00
BFlat 7175a20f63 Merge pull request #1804 from tylerjenningsw/fix/roto-stroke-order
Roto Brush: apply correction strokes in drawing order (#1646)
2026-10-30 01:21:32 +07:00
BFlat 8c7c8bee8c Merge pull request #2519 from WillPastor/codex/2492-timeline-drag-release
Fix timeline layer drops after scrolling (#2492)
2026-10-30 01:21:15 +07:00
BFlat 9cb5255575 Merge pull request #1177 from tylerjenningsw/fix/947-preview-opening-audio
Preview: preserve opening audio while preparing video playback (#947)
2026-10-30 01:20:53 +07:00
BFlat a0bf1b13d8 Merge pull request #1382 from tylerjenningsw/fix/particle-birth-history
Particles: preserve emitted particles when Birth Rate changes (#1373)
2026-10-30 01:20:20 +07:00
tylerjenningsw c979f5aebd Merge origin/main into fix/expression-value-color (#1306)
Main split the panels' value editors into one function per value kind.
The expression colour now comes from Tokens::for_value in each of them:
Effect Controls through PropCx::value_tokens, the Timeline's scalar,
vector and enum editors, and the Properties transform row.
2026-10-29 14:20:05 -04:00
BFlat 50ebecbca8 Merge pull request #973 from itrycodinganditsbad/docs/user-docs-baseline
docs: add user docs in docs/user
2026-10-30 01:20:03 +07:00
BFlat fdacc43404 Merge pull request #1069 from untypequicode/nix-flake
Add a Nix flake (NixOS, GNOME and Hyprland)
2026-10-30 01:19:45 +07:00
BFlat b669e4a951 Merge pull request #2476 from ashokram-si/feat/targa-sequence-output
Export: Targa (.tga) sequence output, 24-bit RGB or 32-bit RGB + Alpha
2026-10-30 01:19:27 +07:00
BFlat 0f2225fe9c Merge pull request #2161 from Barzabel/fix/2124-2125-expr-nesting
expr: bound runtime parser and native recursion depth (#2124, #2125)
2026-10-30 01:19:11 +07:00
BFlat 1e1d04d8d5 Merge pull request #1774 from yanhenrique-dev/i18n/ptbr-panels
i18n: complete the Brazilian Portuguese (pt-br) panel catalog
2026-10-30 01:18:53 +07:00
BFlat 96a8af9560 Merge pull request #2157 from zitann2020/i18n/ja-effect-names-2
i18n(ja): the effect names, 297 of 307, as AE's Effect menu draws them
2026-10-30 01:18:39 +07:00
BFlat 6a40892b32 Merge pull request #1904 from ki2pixel/matchgrain-cpu-optimization
effects: speed up Match Grain's CPU analysis (~3x on 1080p/4K)
2026-10-30 01:18:23 +07:00
BFlat 6f1d11af94 Merge pull request #1385 from tylerjenningsw/enhance/pickwhip-index-refs
Expressions: Alt-pickwhip references effect parameters by index (refs #1072)
2026-10-30 01:18:08 +07:00
BFlat 844e8899be Merge pull request #2351 from vangel76/point-two-stage-search
Point tracker: refine in a 3x3 neighbourhood when the motion was small
2026-10-30 01:17:52 +07:00
BFlat e6e0c98c20 Merge pull request #2311 from marcoarnulfo/feat/run-commands
CLI: run --commands reads {"command", "params"} steps from a JSON or JSON Lines file, or standard input (#2251)
2026-10-30 01:17:37 +07:00
BFlat 4a060dbb5a Merge pull request #2402 from vangel76/opusenc-pvq-search
opusenc: vectorisable candidate filter for the greedy PVQ pulse search
2026-10-30 01:17:19 +07:00