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

Reply via email to