[GRASS5] Driver Update

Glynn Clements glynn.clements at virgin.net
Wed Apr 25 15:26:16 EDT 2001


Markus Neteler wrote:

> > > Maybe it is a KDE2/Xfree4.0.2 related problem. In past the backing store
> > > problem was odd in GRASS 5, this was fixed by Eric Miller. This little
> > > problem described above doesn't harm me, I just wanted to report it.
> > 
> > This may have been fixed by my most recent commit. Now:
> > 
> > 1. backing_store is always set to NotUseful
> > 
> > 2. A Pixmap is always created.
> > 
> > 3. All rendering is performed on the Pixmap.
> > 
> > 4. The Pixmap is made the window's background pixmap, so there is no
> > need to handle Expose events. A RESPOND command (sent by
> > R_stabilize()) will force an update using XClearArea.
> 
> I see. BTW: Now the monitor behaviour is different than before: The image
> will be displayed only when it is complete. Of course the same result
> as if it would be build up continuously. However, with larger datasets
> (and slow machines) users may become nervous why nothing is seen for
> a while. I am not sure if this "wait - then display-at-once" is better
> than "draw line-by-line" is better (however, you may have reasons for
> this change).

I do:

1. The documentation for R_stabilize() suggests that this behaviour is
legitimate, and I wanted reports on clients which didn't like it (e.g. 
d.rast.edit).

2. It's more efficient. For XDRIVER, it halves the amount of rendering
(previously every primitive was drawn to both the backing pixmap and
the window). The efficiency issue is more from the point of view of
conserving bandwidth between XDRIVER and the X server than of CPU
usage.

3. It's simpler.

If the "slow" cases can't be readily determined, I'd rather implement
an "auto-flush" mechanism.

> > BTW: Are the "Panel" operations actually used by anything? Neither
> > CELL nor PNGdriver implement them, and the XDRIVER implementation
> > looks suspicious. Is there any way to test them?
> Sorry, no idea about this.
> The progmangrass50.pdf tells us (chapter23.tex = "28 Writing a Graphics
> Driver"):
> 
> "28.3.6 Panels 
> The following routines cooperate to save and restore sections of the display
> screen."
> [...]
> 
> A "find" didn't find it in use anywhere else.
> 
> This manual is in CVS
> cvs -z3 co progmangrass50
> 
> in case you want to update above section.

Do you mean remove them?

If they're not being used, there seems little point fixing the code.

-- 
Glynn Clements <glynn.clements at virgin.net>

---------------------------------------- 
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'



More information about the grass-dev mailing list