[Qgis-developer] Incremental rendering update

Martin Dobias wonder.sk at gmail.com
Tue Oct 16 15:52:03 EDT 2007


On 10/16/07, Hugentobler  Marco <marco.hugentobler at karto.baug.ethz.ch> wrote:
> Hi Martin,
>
> Here it is:
>
> http://karlinapp.ethz.ch/qgis_incremental_update.diff

Hi Marco,

I've took a look at the code and tested a bit, here are my notes:

- I remember that after Qt4 port Tom disabled processEvents() calls
during the rendering due because they were producing UI problems and
even crashes... now it seems that it works again (Qt4.2.3 here) - or
did you have to do something special to avoid those troubles?

- I've noticed you've disabled usage of QPixmap in QgsMapCanvasMap ...
was there any particular reason for that or just because of being a
proof of concept?

- the usual purpose of layer's repaintRequested signal is different -
it's emitted when the layer thinks it should be re-rendered, while you
use it to signal that there is some progress in drawing...

- if I understand it correctly, QgsMapCanvas::refresh() has changed
its semantics from being trigger of rendering to just being updater of
the drawn map. Some of the refresh() calls have been changed to
drawIncrementally() and some not, which produces some bugs when
working with the map canvas. (wouldn't it be better to preserve
original meaning of refresh() function?)

- raster layers could also do some updates during rendering...

- an important thing what's missing so far is lack of mechanism which
would stop rendering - e.g. when you hit escape key or when you move
the map it should stop   and start rendering again

But after all I'm happy to see that we can allow some level of
concurrency while rendering even without the need to use threading...
Nice work!

Martin



More information about the Qgis-developer mailing list