I have just finished implementing some substantial changes to the processing pipeline, which boil down to the introduction of the concept of a “default” input for the processing nodes (or “layers”).
Why this is important?
One of the problematic aspects of the current processing pipeline are “mask layers”, i.e. tools added in order to build the opacity mask of a layer. In the current implementation, if one starts from an empty mask and adds a “curves” layer, nothing happens, because there is no “default” input for the curves tool. Instead, one has to explicitly insert a “clone layer” instance below the curves in order to provide some input data.
This is complicated and non-intuitive…
The new implementation simplifies the workflow (at least I hope so…). Suppose one starts with two layers L1 and L2 (L2 is above L1), and adds a curves layer to the initially empty mask of L2. The new code will automatically generate a grayscale version of the output of L1, and will feed it to the input of the curves tool in the L2 mask. This is assumed to be the most obvious “default” decision from the user’s point of view, but the source layer can be customized if the user has something else in her/his mind.
The name of the layer that is used as “default” is always shown and updated in the UI, so it is always possible to see exactly what the program is doing:
To save vertical space, the layer blending controls and the input selection have been also moved to a separate tab in the tool controls dialogs.
The new pipeline implementation should be fully backward-compatible, and old files with “clone layer” instances or other custom layer input configurations should be processed exactly the same way as in the past. However, before merging the changes to the stable branch I want to be 100% sure that there are no problems with old files, and also get some feedback about what I have described.
If you feel brave enough, you can grab test builds from the
simplified-pipeline branch from the usual continuous release page.
Another change I am testing concerns the addition of new layers. Instead of a dialog, I am testing a menu-based approach, which should involve less mouse clicks. Here is how it would look like:
What do you think?