contrast_ To answer a few questions:
- Any tool that uses GEGL operations could technically be non-destructive. The ones without GUIs are (at the moment) automatically set to be destructive when merging (e.g. Linear Invert in the color menu could be a layer effect if applied with GEGL Graph, but it seems like users would prefer it to be destructive by default).
- Tools like Warp and Cage Transform also use GEGL, but cause problems if you mess with them in the layer effects menu while the tool is active. In the latest build we've added more protections against merging them down and causing a crash.
- Right now the selection tool operates on the source layer's raw pixel buffer. There's a new function in this branch that lets us get the "merged image" for exports, and we could use that to make the selection tool take the filter effect(s) into account. However, we don't want to potentially break something as important as the selection tool in an initial release, so we'll likely do that in the future after there's been more thorough testing of the layer effects code.
- My guess regarding id and ref is that we currently don't search the parent graph. Basically, layer effects look like this:
<graph>
<graph>Layer Effect 1</graph>
<graph>Layer Effect 2</graph>
<graph>Layer Effect 3</graph>
</graph>
So IDs in Layer Effect 1 can't be seen in the sibling Layer Effects 2 or 3. This could be solved either by either allowing multiple effects per filter, or by adding code to search the entire filter stack and pass that information to individual graphs. Not a 3.0 feature, but something to look at in the future.