On Thu, 1 Feb 2001, Alexander Larsson wrote:

> On Thu, 1 Feb 2001, Arjan J. Molenaar wrote:
> 
> > > Hello,
> > >
> > > As soon as the drawing gets larger, we get response times of
> > > more than 5
> > > or 10 seconds for editing or moving e.g. lines or curves. The
> > > whole thing
> > > gets close to unusable.
> >
> > Not very strange, since the canvas you're drawing on is basically a pixmap...
> 
> What do you mean? That might be the case for the AA view, but the normal
> view should be pretty snappy. All drawing is done in the x-server.

Actually, there is one thing that should be pretty easy to implement that
would speed this up noticably -- exposure event compression.

Currently, for every exposure event that is received, the appropriate
parts of the canvas are dirtied and ddisplay_flush() is called to redraw
that region.

While this redraw is occurring, more exposure events may occur, leading
to dia `falling behind' in its redraws when you cause many exposures
(eg. opaque window drags over a dia window).

It looks like most of these issues could be fixed by just altering
ddisplay_flush() to simply set an idle handler that does what
ddisplay_flush() currently does.

This changes the behaviour of ddisplay_flush however (ie. calling
ddisplay_flush no longer means that the diagram has been updated).  I
haven't looked too deeply to see if this will be a problem though
(Alex?). If not, I will make this change and check it into CVS.

James.

Reply via email to