Add an image overlay effect
Lays a single picture from disk over its input: fitted, filled, stretched, left at its own size or tiled, centred or pinned to the top left corner, nudged by an offset and mixed in by its opacity. The file it needs is a new kind of param, Path, so the interface shows a chooser and the CLI takes a file name, both without knowing an overlay exists. Projects write it relative to their own folder, as they do a source, and Image::load can now hand back the alpha channel instead of flattening it onto white, so a cut-out PNG keeps its cut-out. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,10 +41,12 @@ env -u WAYLAND_DISPLAY GDK_BACKEND=x11 DISPLAY=:79 build/effector ...
|
||||
|
||||
`Effect` (`src/core/effect.hpp`) exposes `params()` returning `std::vector<ParamSpec>`
|
||||
(`src/core/params.hpp`). Those specs are the *only* thing the GUI and CLI know
|
||||
about an effect: `src/gui/window.cpp` builds SpinButtons/Switches/DropDowns from
|
||||
them and `src/cli/options.cpp` generates flags from them (`strip_height` →
|
||||
`--strip-height`). Never add effect-specific branches to the GUI or the parser —
|
||||
add a `ParamSpec` instead. Values travel as `ParamValues` (a
|
||||
about an effect: `src/gui/window.cpp` builds SpinButtons/Switches/DropDowns/file
|
||||
choosers from them and `src/cli/options.cpp` generates flags from them
|
||||
(`strip_height` → `--strip-height`). Never add effect-specific branches to the
|
||||
GUI or the parser — add a `ParamSpec` instead. A `Path` param names a file on
|
||||
disk; like a source path it is written relative to the project folder. Values
|
||||
travel as `ParamValues` (a
|
||||
`map<string, variant<long,double,bool,string>>`), read back with
|
||||
`paramInt`/`paramDouble`/`paramBool`/`paramChoice`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user