Mipmapping for canvas. Ideas and comments.
C. Boemann
cbo at boemann.dk
Tue Jul 21 13:26:21 CEST 2009
On Tuesday 21 July 2009 12:43:12 Dmitry Kazakov wrote:
> I think the second variant is better. At least for the beginning. So
I do too :)
> There are some points where i'm in doubt now:
>
> 1) Should we use KisProjectionCache for storing original image?
> I guess not, because it could be used much in
> drawScaledImage much.
well we should store the basic non scaled version in the pyramid too.
> 2) Which zoom-levels should be stored inside m_pyramid? I saw that
> when you press Ctrl+'+'/'-' Krita switches across some finite number
> of levels. Which part of Krita/Koffice decides, which levels to use? I
> guess, these levels and levels in m_pyramid should agree :)
Ko zoomcontroller action (whatever it's called now). It used to be in gui
utils
> 3) KisPresceledProjection::Private::prescaledQImage vs
> KisPresceledProjection::Private::prescaledQPixmap?
> What is the difference and where are they mostly used?
Pixmaps reside on the xserver and are fast to paint over and over again
Images reside on the client and are good if you need to poke at the pixels or
change it every time you display it
An image will be converted to a pixmap internally before being drawn on
your screen, and this conversion is usually quite expensive.
As to the levels and scaleX/scaleY. I think that the pyramid should just
scale with a factor of 2 (in both x and y) for each step. You should then take
the closest image and apply the scaleX/scaleY.
Good work so far :)
More information about the kimageshop
mailing list