Versioned Paint Devices in Krita

Dmitry Kazakov dimula73 at gmail.com
Fri May 7 10:41:41 CEST 2010


Hi, all!

Today I was fixing clear() memory leak that Lukas has reported recently. I
faced with the following problem:

For fixing the leak, i have to add some code for KisMementoManager, but this
can make creation/deletion of new tiles up to 20% slowlier.
What does this affect:
1) The beginning of a painting transaction
2) The clear() call and the painting right ofter this, thought clear() is
still much faster than direct painting.
The most pity point:
3) As all the devices have versioning turned on by default, then all the
devices would suffer.

I'm going to investigate how to eliminate this extra code, but i still
wonder how many devices in Krita really need versioning? In other words how
many devices need transactions and oldData functionality. I can remember the
following usecase:

1) Filter application code. Classes: KisAsyncMerger, KisFilterMask,
KisAdjustmentLayer (thought masks and adj. layers maybe should avoid
creation their own transactions)
2) KisToolFreehand

Who else needs them?

-- 
Dmitry Kazakov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kimageshop/attachments/20100507/03cf56c4/attachment.htm 


More information about the kimageshop mailing list