koffice/krita

Boudewijn Rempt boud at valdyas.org
Fri Feb 17 15:34:07 CET 2006


On Friday 17 February 2006 15:09, Adrian Page wrote:

> I guess it all comes down to deciding at what time dirty layers are made
> undirty and at what time a signal is emitted to indicate something has
> changed. They may or may not be the same. From a performance point of
> view, which this is mainly about, certainly the compositing wants to be
> left as late as it can, so we can combine multiple dirtying operations
> into one undirtying one.
>
> > Also: we started to use the projection in things like flatten, working
> > from the assumption that the projection would always be up-to-date.
>
> This is part of the problem I think, because certain parts of the code
> assume the projection will be up-to-date, but some parts of the code
> don't enforce this, i.e. addLayer. It's hard to know which parts of the
> core require the caller to do a notify, and which don't. Someone writing
> a plugin who isn't intimate with the internal workings of the core
> really has no idea at the moment.

How about this:

* all calls to KisImage::notify() become calls to KisLayer::setDirty(rect). 
KisLayer::setDirty() informs the image of the new dirty rect, the image keeps
a list of dirty rects.

* access to the rootlayer's projection is done through KisImage.  KisImage 
then consolidates the dirty rects into a list of non-overlapping dirty rects. 
That would be fairly cheap, I guess, and finally starts to merge.

I'm not sure whether we should allow access to the cached paint device of the 
adj. layer and the group layers outside the core library.

-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20060217/9c6d3177/attachment.pgp 


More information about the kimageshop mailing list