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

Reply via email to