Iterator requirements
Boudewijn Rempt
boud at valdyas.org
Tue Jul 6 08:39:56 CEST 2004
On Tuesday 06 July 2004 00:49, Cyrille Berger wrote:
> > * Iterators
> >
> > Iterators offer random and linear read/write access to channels, pixels
> > and 2 dimensional arrays of pixels.
> >
> >
> > Iterators return pixel data as a vector/array (whatever, but preferably
> > not a pointer to a amorphous chunk of bytes*) of bytes which can be
> > interpreted by the colour strategy as a colour.
> > Iterators can skip pixels according to selection status, with a degree
> > of fuzziness.
>
> I have already made a change (not commited yet), that will help : I have
> add an "=" operator that will make the convert to QUANTUM* operator
> deprecated.
>
> > Iterators and single pixel values are passed to the colour strategies
> > for colour model specific handling.
>
> I was planning to work on that specific part during this week.
Good -- the idea is to get rid of the various tileBlt methods in KisPainter,
and pass the iterator for the rect that is being composed to the colour
strategy -- this probably means that we also need an iterator that takes a
rect as constructor param and then iterators over the pixels inside that
rect.
> And I was
> planning to implement a second type of iterrator that will return a class
> representing a pixel.
I don't care much one way or another (I slightly prefer having a class, but
that's my Java background speaking), so that's something you and Casper must
discuss and decide.
>
> > Colour strategies can render their pixels to display RGB format (i.e. a
> > QImage).
>
> or better a QPixmap.
A QImage has some advantages because it is used by a lot of other KDE
libraries, making integration easier. There's nothing that will prevent us
from offering both, though. I already did some code to produce QImages, and
it's easy to go from QImage to QPixmap -- in fact, you need to have a QImage
first anyway.
> When writting the grayscale strategy, I noticed that there was a lot of
> unnecessary call to the render function of the strategies, I wonder if it
> wouldn't be faster to have a tile manager of pixmap. This way, we only have
> to compute the transformation if the tile has been changed.
Is there actually much unnecessary work done? I thought only the parts changed
were re-rendered?
--
Boudewijn Rempt | http://www.valdyas.org/fading/index.cgi
More information about the kimageshop
mailing list