My ideas about GSOC Tiles project

Boudewijn Rempt boud at
Mon Mar 30 21:49:20 CEST 2009

On Friday 27 March 2009, Dmitry Kazakov wrote:

> We keep mipmapped both KisImage->d->m_projection and KisPaintLayers. Why
> could it be useful? It's useful for preview of operations that need whole
> image to process (e.g. for filters). When a filter window shows, it sets
> current zoom-level for KisImage->d->m_projection to something like 50%, and
> merging is done at this level.
> I think this case is better as it's more flexible. But it takes much power
> to keep image-trees for all the layers and it brakes the paradigm of
> encapsulation. I think we should experiment with this.

I agree.

> An issue with "m_projection requests _changed_ tiles" could be done with
> tile-versioning. Every tile could have a revision that was used by KisImage
> to keep the projection up-to-date. But it's quite difficult to implement
> and we have to think over it properly.

Hm... Yes, that sounds pretty complicated.

> Another question is, where should we colour correct? It should be done
> after layers merged, obviously. In KisImage->d->m_projection, i guess.

Well, the final projection is converted to the right colorspace with the right 
display profile in one of the toQImage methods -- it's the very last step.

> Hm.. then it's not a qt's invention:) I thought enums are something like a
> general practice in programming =)
> They used everywhere in linux-kernel.

Yes, I know :-) But using them instead of bools is something of a departure 
for Qt's api, and now for ours.

> I think it's not the worst problem. By the way where this paint device
> moving used?

Whenever you move a layer using the move tool.

> The worst problems are hiding in border-effects, i guess. E.g.
> filter-layers, that use convolution. We can't apply them to the part of the
> image (or it is too complicated).

Well, we can, given the right border strategy. There is a small class of 
filters that do need the entire layer, like small tiles or wavelet.

> By the way, do our "blending modes" for KisPaintLayers use something like
> convolution? 


> So to say, can two KisPaintLayers be merged tile by tile?

Yes, provided the origin is the same.

Boudewijn Rempt |

More information about the kimageshop mailing list