jcupitt / gegl-vips

quick hack of gegl to use libvips as the backend
GNU Lesser General Public License v3.0
5 stars 0 forks source link

Further developments? #1

Open aferrero2707 opened 8 years ago

aferrero2707 commented 8 years ago

Are there plans to further develop the gegl-vips backend? Is it or will it be possible to mix native and "vips-enhanced" GEGL operations? Or does one need to re-implement all GEGL nodes with VIPS operations internally?

Thanks!

jcupitt commented 8 years ago

Oooop, hello, I just found this issue again, sorry.

My idea is to add area invalidation to vips, so you can do something like:

image.invalidate_area left, top, width, height

And that rectangular area will be knocked out of cache for that image, and for any downstream images, taking into account coordinate transforms. All downstream images will also emit an "area invalidated" signal, so UIs can repaint part of their display if they wish.

Once vips has this, we can do efficient paint operations. You can modify part of a memory image, with a paintbrush tool perhaps, then invalidate and everything will update quickly.

There's already image.invalidate, but it does the whole image, it doesn't do the coordinate transform stuff.

Regarding gegl-vips, when invalidate area is in, gegl-vips could become a full, source-compatible gegl backend. It would be fun to try gimp with it as a demo.

Yes, gegl operations would need to be reimplemented in terms of vips operations. I think you could mix them, so most operations would pass through to gegl, but some could be picked off and executed by vips.

aferrero2707 commented 8 years ago

That sounds really promising, and gimp can only profit from that!

By the way, I am also directly interested in the area invalidation feature, as I need it for painting operations in photoflow...

Keep the good work!