Open aferrero2707 opened 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.
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!
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!