Layer Group boundaries
This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
Layer Group boundaries | saulgoode@flashingtwelve.brickfilms.com | 23 Jun 10:54 |
Layer Group boundaries | Martin Nordholts | 26 Jun 16:18 |
Layer Group boundaries | saulgoode@flashingtwelve.brickfilms.com | 27 Jun 01:55 |
Layer Group boundaries
The implementation of layer groups is progressing very nicely and for the most part they behave as one would expect, and operations upon them behave as I would expect. However, there is one inconsistency that I feel should be considered.
Layer groups tend to behave as a "sub-image" within an image -- operations on the individual layers are limited to the individual layer, whereas operations upon the "group layer" affect each of the layers in the group (by "group layer", I mean the collapsible pseudo-layer educed from the member layers of the group). I.e, cropping, translation, and transformation on the "group layer" result in each of the layers being cropped or transformed. Similarly, deleting or duplicating the group layer results in the entire group being deleted or duplicated. In these cases, an operation on a group behave just as would the corresponding operation performed upon an image.
This is all very intuitive and well implemented. However, to increase the effectiveness of this relationship of "group == sub-image", it would be beneficial to have the boundaries of the group behave in a manner analogous to that of the image's canvas size. And currently, it does not.
When the boundaries of the "group layer" are modified, the result is that each of the member layers are cropped to the new boundaries. This is not what I would expect to happen. I should think that the "group layer's" boundaries should act as a passe-partout, masking out regions of the member layers which happen to lie outside it, and that in manner similar to the behavior of the image canvas, that member layers be permitted to extend beyond the "group layer's" boundaries. In other words, resizing "Layer Boundary Size" of the "group layer" should not crop the layer group, just as changing the canvas size of an image does not crop the image.
In addition to the changing the behavior of "Layer Boundary Size" when a "group layer" is active, I would propose a new button for the Layers Dialog, one that substitutes for the Lock Alpha button when a "group layer" is active. This button would permit auto-resizing of the passe-partout to fit the group's member layers. Alternatively, the passe-partout could be initially fixed to the size of the first added member layer, requiring a "Fit group canvas to layers" or somesuch to modify the size appropriately. Another option would be to create a layermask for the "group layer", but this would still require addressing how the positioning and dimensions of the layermask is presented to the user (eventually adding layermasks to group layers would be a desirable enhancement for different reasons).
My apologies if there are already plans to address this and I am being premature in presenting this issue, however, I feel it is quite critical that the rendering of the content of layer groups can be restricted to particular regions of the image canvas without requiring that the content of their member layers be destroyed.
Layer Group boundaries
On 06/23/2010 10:54 AM, saulgoode@flashingtwelve.brickfilms.com wrote:
When the boundaries of the "group layer" are modified, the result is that each of the member layers are cropped to the new boundaries. This is not what I would expect to happen. I should think that the "group layer's" boundaries should act as a passe-partout, masking out regions of the member layers which happen to lie outside it, and that in manner similar to the behavior of the image canvas, that member layers be permitted to extend beyond the "group layer's" boundaries.
The group layer boundaries are just legacy, we don't want them at all, and it would thus be a bad idea to implement functionality that depends on the existence of (explicit) layer group boundaries, like adding a "Fit group canvas to layers" button. The (implicit) boundaries of a layer group should always be the smallest boundary that encloses all children. Masking a group should instead be done with masks or clipping paths, and we will fix at least layer group masks for 2.8.
/ Martin
Layer Group boundaries
Quoting Martin Nordholts :
The group layer boundaries are just legacy, we don't want them at all, and it would thus be a bad idea to implement functionality that depends on the existence of (explicit) layer group boundaries, like adding a "Fit group canvas to layers" button. The (implicit) boundaries of a layer group should always be the smallest boundary that encloses all children. Masking a group should instead be done with masks or clipping paths, and we will fix at least layer group masks for 2.8.
Thank you for your response. It is pleasing to learn that there is a plan to support masking content of the constituent layers of a group and not having it removed it destructively through cropping. I see little problem with a clipping paths approach as long as it is easy to define and/or modify rectangular clipping paths having a certain width and height.