Hi, 2008/7/29 David Gowers <00ai99@xxxxxxxxx>: [...] > 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. [...snip...] > 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 semantics. > 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. -- Souichi TAKASHIGE _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer