GSoC/GCI Archive
Google Summer of Code 2009 KDE

New tile and mipmapping engine for Krita

by Dmitry Kazakov for KDE

I would like to improve current Krita's tile engine. It has some limitations like extensive locking, inefficient way of merging layers, absence of swapping, mipmapping and good multi-threading. Therefore the project can be split into two parts: The first will improve tiles engine itself (it'll add swapping and caching subsystems, introduce new locking policy, threading). Swapping of tiles will be done through pluggable modules (classes), that will allow us to use png/tiff engines for compressing unneeded/mementoed tiles. The second part will implement mipmapping subsystem at the top of modified tiles engine. It'll make zooming much faster and will allow us to experiment with layer merging and previewing, particularly when suitable we should merge layers tile-by-tile instead of merging the whole images and we should allow filers to preview their results on scaled-down images (right on scaled-down canvas).