On Fri, 29 Nov 2002 11:29:12 -0500, Patrick McFarland <[EMAIL PROTECTED]> wrote:
> Btw, has there been a discussion on how layer grouping will work?
> I want to be able to both group layers in just a group (aka doesnt change
> how rendering works at all) then also be able to group layers together, and
> have the output of that act as a layer (aka, for calculating the "virtual"
> layer, only the layers inside of it are done, no outside layers interact with
> these except through the final "virtual" layer.)
There has been some discussion about layer grouping, but I do not
think that any concrete implementation proposals have ever been agreed
upon. So anyone who could come up with a GUI mock-up is welcome.
Code is even more welcome, of course. ;-)
However, here is my point of view (which may be different from what
some other developers think, so do not take this for granted). There
are two kinds of "grouping":
- Simple linking of layers so that some operations such as toggling
their visibility or moving the whole group of layers can easily be
applied to them (bug #86337, bug #86277). These operations would
not modify the pixels in the layers. This could probably also be
used for implementing the clipping groups (bug #51112).
- Grouping of layers in such a way that a merged image of the layers
is stored in a virtual layer and some operations can be applied to
this merged layer: color adjustments, transformations or even any
PDB operation, including the ones done by a plug-in. Whenever a
layer in the group is modified, the merged image is rebuilt and the
operation associated with it is applied to in order to re-create the
updated "active layer". This can be used to implement the Photoshop
styles or adjustment layers (bug #79025, bug #98262). In summary,
the "active layer" would have a list of layers, a drawable and one
PDB function (with its current parameters) associated with it.
Whenever something happens to one of the layers in the list, a new
(invisible) drawable is allocated, it gets the merged copy of all
layers, and then the PDB function is applied to it. When the
results are ready, the new drawable replaces the one that was
visible. In some cases, it may be better to keep the two drawables
(merged view + results) and to apply the PDB function only to the
regions that have been modified, but this is only an optimization.
So as you mentioned yourself, there are two ways to define "groups":
they have different purposes and need to be implemented differently.
The first and second kind of groups would probably have to be defined
differently in the user interface. So again, some GUI mock-ups would
be welcome. Note that it is important to become familiar with all
features and their distinct purposes before trying to think about how
they could be used, otherwise it is easy to miss some important
Here are some direct links to the relevant bug reports:
- "clipping groups or masking groups (like in Photoshop files)"
- "Add support for Photoshop Styles and adjustment layers"
- "use the linking of layers for more useful action than moving only"
- "add support for layer trees or layer groups"
- "Adjustment Layers (like in Photoshop)"
(marked as dup. of #79025, but contains some useful descriptions)
Gimp-developer mailing list