[GRASS-dev] python data object graphic output?

Glynn Clements glynn at gclements.plus.com
Tue Aug 12 18:22:45 EDT 2008


Michael Barton wrote:

> With the revamp of the GRASS graphic driver output system, I'm  
> wondering about the feasibility of having a driver that creates a  
> Python data object rather than a disk file.

Can you elaborate?

Specifically, how is the data supposed to be transferred from the d.*
command to the GUI?

> While this might not  
> create noticeable speed improvements in rendering displays in a Python  
> canvas, it could considerably simplify coding for overlaying and  
> rendering multiple geospatial data layers--especially if we can do the  
> compositing and rendering with Python tools rather than g.pnmcomp.

Even with the modules writing image files, the compositing step really
should be performed within Python, rather than using an external
process (g.pnmcomp). This would mean that enabling or disabling layers
or changing the translucency level would happen instantly.

AFAICT, wx itself doesn't have code for this, although there may be
third-party libraries which do. GDK has compositing code which can use
SSE; it may be worth taking that (if someone hasn't already).

Better still, if you use cairo, it should be possible to have the
graphics hardware perform the compositing.

The cairo driver has support for using an X Pixmap for its output (via
GRASS_CAIRO_DRAWABLE and GRASS_CAIRO_VISUAL). Not only would this
eliminate the need to copy data to/from disk (or even between
processses), but the d.* command can use the graphics hardware.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list