#include <cave_ogl.h> void app_init(int argc,char **argv), app_compute(void), gfx_init(void), gfx_draw(void); main(int argc,char **argv) { CAVEConfigure(&argc,argv,NULL); app_init(argc,argv); CAVEInit(); CAVEInitApplication(gfx_init,0); CAVEDisplay(gfx_draw,0); while (!CAVEgetbutton(CAVE_ESCKEY)) app_compute(); CAVEExit(); } void app_init(int argc,char **argv) { /* ... allocate shared memory & initialize data ... */ } void app_compute(void) { /* ... compute; update shared data ... */ } void gfx_init(void) { /* ... define materials & textures ... */ } void gfx_draw(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* ... render ... */ }