Initialization & Processes
- CAVEConfigure() - reads configuration and initializes library data
- CAVEInit() - forks other CAVE processes
- CAVEInitApplication() - defines one-time graphics callback function
- CAVEFrameFunction() - defines once-per-frame graphics callback
- CAVEDisplay() - defines graphics callback which draws frame
- CAVEExit() - signals all processes to exit
Applications are split into separate processes for computation and rendering.
The CAVE library creates the drawing process (and others), and controls the
rendering loop. It calls application-supplied callback functions to draw the world,
but handles initializing display channels and computing the correct viewer-centered
The library opens the graphics windows itself when starting the display
processes. The windows are initialized in RGB mode, with Z buffering,
and are double buffered. Accumulation buffers, stencil planes, and
multisampling can be requested using CAVESetOption() before
CAVEInit() is called.
The library sets up the stereo perspective projection based on
the latest tracking data, and selects the correct buffer and viewport,
before calling the application's drawing function.
It also takes care of swapping buffers itself, in order to synchronize the
multiple display processes. An application's drawing callback should not
perform any of these actions.
Last modified 20 July 1997.
Dave Pape, email@example.com