Mipmapping for canvas. Ideas and comments.

Dmitry Kazakov dimula73 at gmail.com
Thu Jul 23 12:15:11 CEST 2009

>> The reason why i wanted to add it to prescaled projection - i didn't
>> want to add an additional layer of abstraction (additional obstacle in
>> image's way). It can create an additional delay before returning
>> scaled image. KisPrescaledProjection won't get an image until
>> KisProjectionPyramid finishes build of all images.
> Well, splitting would mean two classes, but also a clear separation of
> concerns: KisPrescaledCache would have the right cache for the canvas,
> KisProjectionPyramid would be responsible for scaling.
> KisPrescaledCache is already one of the thorniest classes in Krita, adding
> stuff there is really not recommended.

Then, KisProjectionPyramid should replace KisProjectionCache. And
KisPrescaledProjection would request downsampled images from the
pyramid. It would be logical and with "clear separation of concerns"

krita/image is not a proper place for pyramid as the latter one needs
'monitor profile' to convert paintDevice to QImage. The only solution
to leaving pyramid inside image/ is to make it use KisPaintDevice. But
paintDevice's tiles are too small for that purpose =)

Btw, i'm afraid of that tiles inside pyramid can degrade perfomance, can't they?

Dmitry Kazakov

More information about the kimageshop mailing list