2008/7/29 David Gowers <[EMAIL PROTECTED]>:
> I was only addressing what you said "So it can't be non-destructive
> unless we save
>  that cache forever.", by indicating why little caching is needed for
> the non-destructive case -- the actual parameters of the operation are
> kept.

I see. Thank you for your explanation.

>> Let's say, If the following operation sequences are executed, how can
>> we undo and redo the brush operation (C) and (D)? And what will happen
>> if we change the prarameter of the operation (B)?
> After a destructive operation, you cannot change parameters of earlier
> steps -- the information necessary to do so no longer exists.
> Therefore, after C happens, changing B is meaningless -- B no longer
> exists in any sensible way.
> I also think it's important to keep in mind, when working fully with
> GEGL, undo and redo would be implemented by modification of the GEGL
> graph. I admit I do not understand how there can really be any
> destructive operation, in that framework; unless you allow old graph
> modifications to expire (and turn that branch into a GeglBuffer)

I think so too. So I wonder how can I manage non-destructive and
destructive operations together without corrupting its non-destructive

> I personally believe that destructive editing doesn't have merit by
> itself, it doesn't save time or improve the responsiveness of a
> program.
> Rather, it is worth using as a tool similar to 'clear undo history' --
> in GEGL, it is like collapsing a branch of the graph into a single
> leaf.

I have no idea when to use non-destructive feature as for painting
work with a brush tool. It's more natural and more intuitive to make
new strokes on top of existing one to modify the part of the existing
strokes rather than to modify the parameters of existing path. So
current implementation is enough.
Replacing brush tools with a non-destructive one has little merit, and
it has a risk to be slower and more memory consuming in certain
situations for painting artists.

Making a brush tool non-destructive itself is a great work, so I think
it's better to separate destructive layers from other non-destructive
operations. Painters may use destructive layer to avoid the risk to be
slow, and others may use non-destructive one.

I think it is a GIMP's design matter rather than the implementation
problem of the GEGL.
Gimp-developer mailing list

Reply via email to