[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