Follow-up Comment #3, bug #14094 (project mypaint):
With the support for queued/deferred processing that went in for MyPaint 1.1
(to improve performance), it is now feasible to implement this.
Proposal for how this can be done:
* Let end_atomic() on a surface just return an invalidated region, without
actually processing it.
For MyPaintTiledSurface this just means to keep things around in the
OperationQueue.
* Introduce a new function process_area() that allows to process an given
area.
Because we may want to process tile-wise, it should return the area actually
processed. One call of the function should process a chunk small enough to not
delay the caller for too long (but big enough to make use of multithreading).
When everything has been processed, the return value should indicate this.
* In MyPaint, call the process_tile from a glib idle handler that is repeated
until processing is done.
This concept is very similar to how GEGL operates.
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?14094>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Mypaint-bugs mailing list
[email protected]
https://mail.gna.org/listinfo/mypaint-bugs