mirror of
https://github.com/storytold/filmcraft.git
synced 2026-10-27 03:27:39 -06:00
While a value was dragged in Effect Controls or Properties, the Program monitor kept the picture from before the drag and only caught up when the mouse rested. Two causes: - Every step of a drag is a new project revision, so the frame the monitor asks for is never ready on the refresh that asks for it, and the stand-in lookup only knew frames of the same revision. The monitor now remembers the frames it asked for on its latest paused refreshes and, when neither the frame due nor a cached frame just before it is ready, shows the newest of those that is. A backward or fast scrub had the same gap and gets the same stand-in. Playback is unchanged. - A frame still rendering was cancelled when the same frame was asked for at a newer revision. With frames slower than a refresh (CPU effects) each one was thrown away for the next. Such a job now finishes; a request for a different frame of the view (scrubbing) still cancels it. perf.stats gains `monitor`: the frame and revision of the picture the Program monitor shows, against the playhead's frame and the project's revision. Tests (headless, perf_ui): a parameter changed on every UI pass and a backward scrub leave the picture at most one step behind; a frame being rendered survives a request for the same frame at a newer revision. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>