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