Commit Graph
3372 Commits
Author SHA1 Message Date
bflatasticandClaude Opus 5.5 5bb66bad74 ScriptUI: a docked panel gets its dock's size and onResize (#2585)
A docked ScriptUI panel only ever saw its preferredSize: the host drew
it in a scroll area at max(dock, preferred) and the script's window never
learned the dock. scriptui.resize now gives a window a size: the script's
window takes it, lays itself out again and runs onResizing / onResize.
The dock host sends it whenever the panel's dock size changes, so
window.size is the dock's, as in After Effects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:37:19 +07:00
bflatasticandClaude Opus 5.5 01f92b04c5 ScriptUI: a drag keeps its control past the window edge; MouseEvent.buttons (#2584)
A drag that started on a script control stopped at the window edge:
moves outside were dropped and a release outside never reached the
control. While a button is held, the control it was pressed on now gets
the moves (with screen and control-relative coordinates) and the
release, wherever the pointer is, as in After Effects. Every MouseEvent
also carries buttons (held: 1 left, 2 right, 4 middle), so a handler can
tell a drag from a hover; scriptui.mouse accepts it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:04:18 +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
BFlat a8d83b9717 Merge pull request #2619 from storytold/fix/2592-mp4-edit-duration
Import: an MP4 lasts as long as its video edit list shows (#2592)
2026-10-30 06:19:18 +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
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 9437652b8f Merge branch 'fix/2261-pad-budget' of https://github.com/storytold/effectcraft into fix/2261-pad-budget 2026-10-30 05:18:14 +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
BFlat e5f2b5b1a9 Merge pull request #2262 from SusieeTheLinuxUser/fix/2198-fit-to-comp-shapes
Transform: Fit to Comp sizes shape and text layers by their painted bounds (#2198)
2026-10-30 05:10:54 +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
BFlat 6a239ddbee Merge pull request #2532 from klosixgaming-arch/fix/1577-roi-crop-valid-endpoints
project: keep valid ROI crops on wide frames while still refusing overflow (#1577)
2026-10-30 05:10:19 +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 8bbc7904b1 Merge pull request #2575 from storytold/dependabot/github_actions/actions-db49d30d5d
ci(deps): bump storytold/craft-common-actions/.github/workflows/windows-arm64.yml from 8bb4e5ab95443171104ad88113fe1ef9b0e5ce3f to fa5ef18780cf5e7d5d3b8de068de56cffc83cac5 in the actions group
2026-10-30 05:09:31 +07:00
BFlat 6e10dc6ccf Merge pull request #2569 from Zaxaerith/docs/2564-clarify-command-dispatch
docs: clarify engine and UI-only command access (#2564)
2026-10-30 05:09:22 +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
BFlat 11ad7cf5ce Merge pull request #2427 from FeiLiuEM/i18n/preview-panel
i18n: the Preview panel's labels reach the catalog
2026-10-30 05:09:12 +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
BFlat 5658d68e69 Merge pull request #2410 from Minher0/feat/2100-instance3d-layer-create
layer.create: implement the instance3d op - a 2D copy of a 3D model layer (#2100)
2026-10-30 05:08:44 +07:00
bflatastic de40efed7c Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:34 +07:00
BFlat db5627a601 Merge pull request #1951 from ki2pixel/fix/1747-collapse-essential-overrides
Fix #1747: keep collapsed precomp instance overrides unclipped
2026-10-30 05:08:28 +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 2f378394f9 Merge branch 'main' into fix/2261-pad-budget 2026-10-30 04:33:52 +07:00