[cairo-bugs] [Bug 11379] Callback based pixel backend

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Jun 27 11:19:49 PDT 2007


http://bugs.freedesktop.org/show_bug.cgi?id=11379





------- Comment #2 from simon at gimp.org  2007-06-27 11:19 PST -------
Well, these operations operate on images, which can be potentially huge.
The libart rendering interface allows us to operate on a tile by tile basis,
which is easier for us than to have to deal with a big temporary buffer which
would only be there to be copied into a tile-manager which in a lot of cases is
temporary as well.

Unfortunately I have no clue about cairo internals, so I cannot really comment
on that. Maybe iterating over the gimp-tiles and creating lots of image
surfaces and repeatedly drawing translated versions of the stuff to them is
fast enough, it just feels like a waste of ressources.

However, the callback mechanism would also be useful for Gegl, where we are
interested in a >8bit precision and different color spaces. The callback
mechanism would allow us to do a custom color conversion on the fly.

Hmm. I guess we are about to mix two issues here:

  a) I'd like to be able to draw parts ("tiles") of an image without having to
      - store the complete image in a huge buffer
      - draw the drawing again and again for the next tiles.

  b) Make it possible for applications to provide custom callback-functions
that
     receive calculated color values and are free to put these into memory in
     whatever format they need later.

If you want to have a look at how gimp uses libart now: the relevant code is in
gimp/app/core/gimpscanconvert.c


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.


More information about the cairo-bugs mailing list