> They do not need to be made fully non-destructive, for the paint core
> I have been experimenting with on top of GEGL[1] I have both a
> destructive and a non destructive version. The difference between them
> being that the destructive one continuously replaces the contents of a
> GeglBuffer instead of building a graph. Making things non-destructive
> doesn't necessarily imply additional work when creating brush painting
> processes if the infrastructure to do so exists.

I'm very glad to hear that. I think keeping destructive brush tool is
essential for painting tool. I will try to find the way to add
features such as color blending when that code is merged into the svn

But then, I have another question about destructive brush tool.
How does the GEGL manage the non-destructive and destructive
operations together? In my understanding, if we modify GeglBuffer
directly with destructive operations, contents of the GeglBuffer can't
be purged because we can't reproduce the brush strokes. That means all
of the non-destructive operations prior to the last destructive
operations can't be non-destructive any more.
One solution is to have one GeglBuffer for each stroke, and combine
them when update the display. But it costs too much memory when we
make a lot of strokes -- and we *DO* make thousand of strokes when we
draw an image -- compared to the current implementation which has a
buffer per each layers.
Another idea is to separate destructive layers from non-destructive
layers. The destructive layer can have only destructive operations,
and GeglBuffer of this layer can be replaced repeatedly with no
matter. I think this idea make sense.

If this question does not related to GIMP at all, I will post a new
question to the GEGL ML. If the GIMP has to solve the problem, please
tell me your idea to mix the destructive and non-destructive

> These are features that might easily be added on top of a GEGL based,
> both destructive and non-destructive paint core. At least if using
> hardware acceleration  like the ClutterGegl view widget to display the
> final composite. At GUADEC this year I showed a mini painting app
> embedded in a presentation tool where I could freely rotate the GEGL
> paint demo and paint at it at any angle.

Great! I'm looking forward to see these nice features on the GIMP.
Gimp-developer mailing list

Reply via email to