Commit Graph
2775 Commits
Author SHA1 Message Date
bflatastic 80cb8a06ae Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 07:01:38 +07:00
BFlat 9250a30b37 Merge pull request #2622 from storytold/fix/2593-render-countdown
Render Queue: elapsed and remaining time tick between frames (#2593)
2026-10-30 06:45:16 +07:00
BFlat b704bb4780 Merge pull request #2621 from storytold/fix/script-replace-single-file
Scripts: FootageItem.replace() swaps in one file, as in After Effects
2026-10-30 06:45:09 +07:00
bflatasticandClaude Opus 5.5 4a4aa28184 Render Queue: elapsed and remaining time tick between frames (#2593)
The job reports its times when a frame finishes, so with slow frames the
Current Render strip held the same Est. Remain long enough to look
stalled, then jumped. Between reports both times now count on from the
last one, as a clock does (remaining never below zero, a finished job
stands still), and the panel repaints twice a second while rendering.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 06:27:58 +07:00
bflatasticandClaude Opus 5.5 883171eece Scripts: FootageItem.replace() swaps in one file, as in After Effects
Since #2107, Replace Footage keeps an item's kind by default, so
replace() on a sequence item brought the new file's whole numbered run.
In After Effects, replace() swaps in the one file and replaceWithSequence()
brings a run; replace() now asks for exactly that.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:59:40 +07:00
bflatasticandClaude Opus 5.5 4bdb68a812 Import: an MP4 lasts as long as its video edit list shows (#2592)
The reader reports a track's media duration (mdhd). For H.264 with
B-frames that runs past the last shown frame by the encoder delay the
edit list trims, so a 75-frame 25 fps clip imported as 76 frames / 3.04 s.
The footage's duration now follows the video track's edit list when it
is shorter (never longer; a delayed start keeps the reader's duration),
as the frame rate is already corrected from the header.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:54:16 +07:00
Camille Moine 8ac2dec42a Keyframes: offer Unmute Keyframes in the Animation menu
The menu only carried Mute, so unmuting meant the timeline's context menu.
Add the second row bound to `keys.setMuted {"muted":false}`, its translation
in the ten catalogs, and a test that runs both rows through Session::execute
with undo and redo.
2026-10-29 23:51:04 +01:00
Camille Moine 047ffbaba5 Keyframes: mute keyframes without deleting them (#1894)
Add a muted flag to Keyframe. Muted keys stay in the Timeline and Graph Editor (dimmed, selectable and movable) but evaluation skips them, so the active neighbours interpolate as if they were not there; auto-Bezier and eases use the active neighbours. When every key is muted the property falls back to its static value.\n\nkeys.setMuted {muted} mutes or unmutes the selected keys in one undo step. The Timeline context menu offers Mute/Unmute Keyframes and the Animation menu has Mute Keyframes. Muted keys have no Bezier handles and motion-path points are dimmed.\n\nLottie export omits muted keys (with a warning) because Lottie has no mute state; scripting keeps seeing them in numKeys/key().\n\nTests: keyframe evaluation (linear, auto-Bezier spatial, all muted), serialization and value replacement, engine command + undo, Lottie export.
2026-10-29 23:51:04 +01:00
BFlat 77bea50f0b Merge pull request #2617 from storytold/docs/2565-readme-effect-count
README: 308 effects, and a test keeps the count current (#2565)
2026-10-30 05:42:00 +07:00
BFlat 87767b1252 Merge pull request #2616 from storytold/fix/999-viewer-edge-pan
Viewer: a mask vertex held at the panel edge pans the view (#999)
2026-10-30 05:41:55 +07:00
BFlat d766467000 Merge pull request #2612 from storytold/fix/2210-timeline-group-drag
Timeline: drag effects, masks and shape items to reorder them (#2210)
2026-10-30 05:41:49 +07:00
BFlat b724eb6842 Merge pull request #2611 from storytold/fix/2261-pad-budget
Effects: padded buffers stay within a pixel budget (#2261)
2026-10-30 05:41:43 +07:00
BFlat cdc5fddaff Merge pull request #2610 from storytold/fix/text-line-join
Text: stroke Line Join — Miter, Round or Bevel (#2077)
2026-10-30 05:41:27 +07:00
bflatastic 2e9542dada Merge remote-tracking branch 'origin/main' into fix/2261-pad-budget
# Conflicts:
#	crates/effects/src/lib.rs
2026-10-30 05:17:57 +07:00
bflatasticandClaude Opus 5.5 f5363e9d39 README: 308 effects, and a test keeps the count current (#2565)
The README quoted 306 effects in three places while the registry (and the
generated docs/effects.md) had 307, now 308. A catalog test checks every
effect count the README gives against the registry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:16:23 +07:00
bflatasticandClaude Opus 5.5 e2cf4477e7 Viewer: a mask vertex held at the panel edge pans the view (#999)
Dragging a mask or shape vertex, a tangent or a Pen point against the
edge of the Composition panel now pans the view toward that edge, faster
the further out the pointer is, and the point keeps moving with it, so
zoomed-in rotoscoping no longer stops at the panel edge (as in After
Effects).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:15:35 +07:00
BFlat f20dfcbda2 Merge pull request #2263 from SusieeTheLinuxUser/fix/2227-clear-text-edit-standdown
Edit: an open text edit stands down the Project-panel Clear redirect (#2227)
2026-10-30 05:11:05 +07:00
BFlat c35fe911e2 Merge pull request #2266 from SusieeTheLinuxUser/fix/2226-duplicate-ends-text-edit
Edit: duplicating during a text edit ends the edit (#2226)
2026-10-30 05:11:00 +07:00
bflatastic ee01d7d4f6 Merge main; keep the batch-tested versions of crates/engine/src/cmd/layer/transform.rs 2026-10-30 05:10:42 +07:00
bflatastic fdb0e5d3c9 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:10:41 +07:00
BFlat faab5b1c81 Merge pull request #2039 from midasdf/jp/cjk-composition-rendering
Text: Chinese Han text uses the installed Chinese face (#453)
2026-10-30 05:10:35 +07:00
BFlat 5a1d909496 Merge pull request #2109 from gmrmad1/fix/2072-variable-font-tests
tests: count variable font named instances as styles (#2072)
2026-10-30 05:10:30 +07:00
BFlat 376f303d8f Merge pull request #2107 from gmrmad1/fix/2073-replace-footage-kind
engine: Replace Footage keeps a still a still (#2073)
2026-10-30 05:10:25 +07:00
bflatastic f2773f68ac Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	crates/project/src/render_queue.rs
2026-10-30 05:10:05 +07:00
BFlat 90fbd6609d Merge pull request #2270 from mypenc/altfix
Viewer: Alt/Option-drop of a Project item replaces the layer under the pointer
2026-10-30 05:09:55 +07:00
BFlat 07d1de1764 Merge pull request #2534 from klosixgaming-arch/fix/2022-render-banding
export: dither 16/32 bpc renders on the way to 8 bits, and let Render Settings Color Depth set the render's depth (#2022)
2026-10-30 05:09:48 +07:00
BFlat e28612dedd Merge pull request #2574 from roadhong/fix/audio-level-keyframes-per-sample
Audio: keyframed Audio Levels and Stereo Mixer levels ramp within a mix block
2026-10-30 05:09:38 +07:00
BFlat e2128a6743 Merge pull request #2118 from ChristopherLinnett/fix/issue-2092-camera-focus-crash
fix: bound Classic 3D depth-of-field blur and reject non-finite focus distances (#2092)
2026-10-30 05:09:17 +07:00
bflatastic e37df317af Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	crates/ui-egui/src/i18n/ui.rs
2026-10-30 05:08:59 +07:00
BFlat 218b8e34ae Merge pull request #1514 from FeiLiuEM/i18n/1451-tool-names
i18n: the 31 tool names are translated (zh-hans, zh-hant)
2026-10-30 05:08:49 +07:00
bflatastic de40efed7c Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:34 +07:00
bflatastic 971e75d06a Merge main; keep the batch-tested versions of crates/engine/src/tests/rig3d.rs 2026-10-30 05:08:15 +07:00
bflatastic 57b76bcc88 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:13 +07:00
BFlat 5874304437 Merge pull request #1887 from ki2pixel/expressions-cubic-bezier
Expressions: cubic-Bezier easing helper (bezier(...)) (#1884)
2026-10-30 05:08:06 +07:00
BFlat dac865f134 Merge pull request #1423 from nanox333/fix/1417-wav-markers
#1417: WAV markers show on the audio layer
2026-10-30 05:08:00 +07:00
BFlat 5ba07d18c4 Merge pull request #1165 from nanox333/fix/1010-orientation-followup
Parented cameras and lights keep their static and keyed Orientation (refs #1010)
2026-10-30 05:07:53 +07:00
BFlat 2ffc2bdf61 Merge pull request #1164 from nanox333/fix/1063-text-animator-stacked
Scripts: text animator properties resolve by their After Effects names (refs #1063)
2026-10-30 05:07:48 +07:00
BFlat 664ca1a85b Merge pull request #1568 from midasmatterhorn/fix/r4-output-size-clamp
project: output_size never asks for sides past the comp limit
2026-10-30 05:07:42 +07:00
bflatasticandClaude Opus 5.5 8b846ffdf1 Render cache: the soloed-model key reads main's two-argument reads_other_times
#2410's dependency walk for a soloed 3D model was written before
reads_other_times took the effect count; it asks about all effects (None),
as the other walks do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:48:42 +07:00
bflatastic 661f95b901 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 04:48:19 +07:00
bflatasticandClaude Opus 5.5 5d764e6473 Timeline: drag effects, masks and shape items to reorder them (#2210)
Dragging an effect's (or mask's, shape item's, text animator's) row in
the Timeline drew a marquee. The row now drags: a line shows where it
lands among its siblings and the drop runs prop.moveGroup (one undo
step); Escape cancels, as the layer reorder drag does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:36:58 +07:00
BFlat 4682645c3d Merge branch 'main' into fix/text-line-join 2026-10-30 04:33:48 +07:00
BFlat d26ab3b83e Merge pull request #2609 from storytold/fix/qa-sequence-import
Tests: QA scenarios ask for image sequences explicitly
2026-10-30 04:33:27 +07:00
bflatasticandClaude Opus 5.5 fb2fb169dc Effects: padded buffers stay within a pixel budget (#2261)
Effects that grow their buffer (CC Radial Fast Blur, CC Lens, Magnify,
the distorts and blurs) could pad a 20 x 20 layer by 4096 px a side, a
~8200 x 8200 f32 buffer plus its clone. Buf::pad (CPU and GPU) now cuts
the pad so the grown buffer stays within 16 Mpx or four times its own
area, whichever is larger: small layers are bounded at 256 MiB, big
layers still grow as before in practice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:32:17 +07:00
bflatasticandClaude Opus 5.5 dc09ba58ae Text: stroke Line Join — Miter, Round or Bevel (#2077)
Text strokes were always drawn with round joins. The document gets a
Line Join (`lineJoin: miter|round|bevel` in layer.setText / newText),
Miter for new text as in After Effects, Round for documents saved before
it so their look is kept. The 2D and Advanced 3D (extruded) text strokes
use it, expressions' style copies carry it, and the Character panel has
Miter / Round / Bevel buttons under the stroke width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:25:27 +07:00
BFlat f868cc68f3 Merge pull request #1875 from vangel76/rfx-text
Text lays out as in After Effects: box text baseline, right-to-left text, Justify All, animator tracking, per-character 3D rotation
2026-10-30 04:10:22 +07:00
BFlat 8b4dca7635 Merge pull request #2601 from pravdomil/claude/ecproj-compact-opt-in
Project files: opt-in compact .ecproj JSON (Save Compact Project Files)
2026-10-30 04:10:07 +07:00
BFlat f4ca883dac Merge pull request #2346 from vangel76/camtrack-matrix-free-schur
Avoid quadratic Schur assembly for long camera tracks
2026-10-30 04:09:59 +07:00
BFlat a0bec0905c Merge pull request #2595 from zitann2020/text/keep-empty-layer
fix(text): keep an empty Type-tool layer, as AE does
2026-10-30 04:09:42 +07:00
BFlat f87963d3fa Merge pull request #2583 from zitann2020/i18n/ja-generate-category
i18n(ja): the Generate effect category is 描画
2026-10-30 04:09:35 +07:00