	    Requirements for rendering of ZZ spaces.
$Id: RENDERING,v 1.1 2000/05/16 14:57:58 tjl Exp $

This document is intended to start the design of the final ZZCanvas-style
thing. 

Basics:

    - placing arbitrary (extensible) graphics objects on the canvas
    - either depth or reverse order to simplify rastering code: cells
      rastered first should be on top, not bottom and breadth-first bottom-up
      is annoyingly difficult
    - getting some identifier of an object at given coordinates for e.g.
      mouse clicks. IMPORTANT: could this be done by rerendering to avoid
      memorizing too much? OpenGL / FreeWRL-style instead of widget-style?
      TRADEOFF: 
	normal render = const1 * N,    click = const2 * N
      widget-style: const1 larger, const2 maybe smaller.
      opengl-style: const1 smaller, const2 maybe larger
      - for java.awt.Graphics, widget-style is somewhat necessary anyway
        to get depth. However, memory consumption might go down.
    - the BIG advantage of widget-style comes when there's lots of stuff
      and everything does not move or change: then we can use the widget
      objects as caches of stuff of interest from the structure, and set
      the necessary tripwires (ZZObs) to change those objects if the structure
      changes. For the textcloud stuff where most items stay still much 
      of the time, this would be advantageous.


More interesting:
    
    - access by other components to the raster: getting various mouse click
      places
    - rendering XOR-cursors for text when moving the cursor, to show where
      an insert would occur
    - same when dragging another piece of text.

