SaveBehind field of NeWS canvases

Mark Callow msc at ramoth.esd.sgi.com
Thu Aug 31 09:38:42 AEST 1989


In article <11510 at polya.Stanford.EDU>, ramani at anaconda.uucp (Ramani Pichumani) writes:
> 
> I have been trying in vain to build a popup window in 4sight that will
> save the contents of a DGL window underneath it.  I really need this
> feature because the time to redraw the images underneath can be
> unacceptably long.  I've tried the following PostScript code with no
> success:
> 
> /win framebuffer newcanvas def   % create a canvas
> win /SaveBehind true put         % enable SaveBehind

Because all the GL (and DGL clients) are drawing asynchronously to the
window server, SaveBehind isn't a good solution.  Most GL applications
will change their bits will the SaveBehind is active thus outdating the
SaveBehind contents.  Notifying the window server every time a GL client
drew would seriously affect GL performance so we don't do it.

For this reason GL canvases are always damaged even though the canvas above
has SaveBehind set to true.  This causes a REDRAW to be sent to the client.
Also SaveBehind doesn't save the contents of the window-id planes.  It wasn't
worth the extra memory it would have taken since I was causing damage to
GL canvases and all NeWS canvases have the same window-id value.

We are designing a new GL client to window system interface and are considering
hints that a slow drawing client such as yours could use to request different
treatment.
--
	-Mark



More information about the Comp.sys.sgi mailing list