| Functions:
|
#include <cave_ogl.h>
void app_init(int argc,char **argv);
void app_compute(void);
void gfx_init(void);
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)
{
/* Do NOT set up projection */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
/* ... render ... */
/* Do NOT call SwapBuffers */
}
The CAVE library files are located in /util/CAVE on the DMS Linux PCs.
To compile a CAVE program, you must add pointers to the lib32 & include
directories to your Makefile. Add -I/util/CAVE/include to your
compile flags (CFLAGS or CPPFLAGS), and -L/util/CAVE/lib32 -lcave_ogl
to your link libraries (LIBS).
For example:
CFLAGS = -O -I/home/dms/dave/424/include -I/util/CAVE/include
CPPFLAGS = $(CFLAGS)
LFLAGS = -O
LIBS = -L/home/dms/dave/424/lib -ldms -limage -ltiff \
-L/util/CAVE/lib32 -lcave_ogl \
-lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lm
cave0: cave0.o
c++ $(LFLAGS) -o cave0 cave0.o $(LIBS)