Load source images in the background with a progress window
Decoding a batch of photographs took seconds on the main thread, so the window froze with no sign of what was happening. loadImages now takes an optional LoadProgress (per-file callback plus a cancel flag) and hands files out from a shared cursor, so one large file cannot stall the queue behind it. The GUI decodes off the main thread and shows a progress window with the count, the current file and a Cancel button; it only appears if the batch is still running after 250 ms. Headless mode keeps a "reading n/total" line on stderr when it is attached to a terminal. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,13 @@ build/effector -o out.png -s 1920x1080 \
|
||||
Any option can also be passed when launching the interface; it becomes the
|
||||
starting state (images, canvas size, effect settings, seed).
|
||||
|
||||
Reading a batch of large photographs takes seconds, so it never blocks the
|
||||
interface: decoding runs in the background and a progress window shows how many
|
||||
files are done, which one is being read, and a Cancel button that stops the
|
||||
batch. Small batches finish before the window would be drawn, so it only appears
|
||||
if the decode is still going after 250 ms. On a terminal the headless mode keeps
|
||||
a single `reading n/total` line updated on stderr; redirected output stays clean.
|
||||
|
||||
## Effects
|
||||
|
||||
### scanlines
|
||||
@@ -113,3 +120,7 @@ are decoded in parallel too, which is what dominates a headless run.
|
||||
A 7680×4320 canvas at `--strip-height 2` from three multi-megapixel JPEGs renders
|
||||
in ~35 ms, against ~73 ms for the Python prototype; the interface reports the
|
||||
render time of the current preview in its status line.
|
||||
|
||||
Decoding threads take the next file from a shared cursor rather than a fixed
|
||||
slice of the list, so one very large file cannot stall the files queued behind
|
||||
it and progress advances at a steady rate.
|
||||
|
||||
Reference in New Issue
Block a user