int main(int ac, char **av) { fprintf(stderr, "Tunnel2 V1.0\nWritten by David Bucciarelli ([email protected])\n"); glutInitWindowSize(WIDTHC0, HEIGHTC0); glutInit(&ac, av); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); #ifdef FX if (fxMesaSelectCurrentBoard(0) < 0) { fprintf(stderr, "The first Voodoo Graphics board is missing !?!?\n"); return -1; } #endif if (!(channel[0] = glutCreateWindow("Channel 0"))) { fprintf(stderr, "Error, couldn't open window\n"); return -1; } reshapechannel0(WIDTHC0, HEIGHTC0); init(); inittextures(); glutDisplayFunc(drawchannel0); glutReshapeFunc(reshapechannel0); glutKeyboardFunc(key); glutSpecialFunc(special); #ifdef FX if (fxMesaSelectCurrentBoard(1) < 0) { fprintf(stderr, "The second Voodoo Graphics board is missing !\n"); exit(-1); } #endif glutInitWindowPosition(WIDTHC0, 0); glutInitWindowSize(WIDTHC1, HEIGHTC1); if (!(channel[1] = glutCreateWindow("Channel 1"))) { fprintf(stderr, "Error, couldn't open window\n"); exit(-1); } reshapechannel1(WIDTHC1, HEIGHTC1); init(); inittextures(); glutDisplayFunc(drawchannel1); glutReshapeFunc(reshapechannel1); glutKeyboardFunc(key); glutSpecialFunc(special); glutIdleFunc(drawall); calcposobs(); glutMainLoop(); cleanup(); return 0; }
static Bool Init(ModeInfo * mi) { int i; firestruct *fs = &fire[MI_SCREEN(mi)]; /* default settings */ fs->eject_r = 0.1 + NRAND(10) * 0.03; fs->dt = 0.015; fs->eject_vy = 4; fs->eject_vl = 1; fs->ridtri = 0.1 + NRAND(10) * 0.005; fs->maxage = 1.0 / fs->dt; vinit(fs->obs, DEF_OBS[0], DEF_OBS[1], DEF_OBS[2]); fs->v = 0.0; fs->alpha = DEF_ALPHA; fs->beta = DEF_BETA; /* initialise texture stuff */ if (do_texture) inittextures(mi); else { fs->ttexture = (XImage*) NULL; fs->gtexture = (XImage*) NULL; } if (MI_IS_DEBUG(mi)) { (void) fprintf(stderr, "%s:\n\tnum_part=%d\n\ttrees=%d\n\tfog=%s\n\tshadows=%s\n\teject_r=%.3f\n\tridtri=%.3f\n", MI_NAME(mi), fs->np, fs->num_trees, fs->fog ? "on" : "off", fs->shadows ? "on" : "off", fs->eject_r, fs->ridtri); } /* initialise particles and trees */ for (i = 0; i < fs->np; i++) { setnewpart(fs, &(fs->p[i])); } if (fs->num_trees) if (!inittree(mi)) { return False; } /* if no fire particles then initialise rain particles */ if (!fs->np) { vinit(fs->min,-7.0f,-0.2f,-7.0f); vinit(fs->max,7.0f,8.0f,7.0f); for (i = 0; i < NUMPART; i++) { setnewrain(fs, &(fs->r[i])); } } return True; }
int main(int ac, char **av) { float fogcolor[4] = { 0.7, 0.7, 0.7, 1.0 }; fprintf(stderr, "Tunnel V1.5\nWritten by David Bucciarelli ([email protected])\n"); glutInitWindowPosition(0, 0); glutInitWindowSize(WIDTH, HEIGHT); glutInit(&ac, av); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); if (!(win = glutCreateWindow("Tunnel"))) { fprintf(stderr, "Error, couldn't open window\n"); return -1; } glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(80.0, WIDTH / (float) HEIGHT, 1.0, 50.0); glMatrixMode(GL_MODELVIEW); glShadeModel(GL_SMOOTH); glDisable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_TEXTURE_2D); glEnable(GL_FOG); glFogi(GL_FOG_MODE, GL_EXP2); glFogfv(GL_FOG_COLOR, fogcolor); glFogf(GL_FOG_DENSITY, 0.06); glHint(GL_FOG_HINT, GL_NICEST); inittextures(); glClearColor(fogcolor[0], fogcolor[1], fogcolor[2], fogcolor[3]); glClear(GL_COLOR_BUFFER_BIT); calcposobs(); glutReshapeFunc(reshape); glutDisplayFunc(draw); glutKeyboardFunc(key); glutSpecialFunc(special); glutIdleFunc(idle); glEnable(GL_BLEND); /*glBlendFunc(GL_SRC_ALPHA_SATURATE,GL_ONE); */ /*glEnable(GL_POLYGON_SMOOTH); */ glutMainLoop(); return 0; }
int main(int ac, char **av) { float fogcolor[4] = { 0.7, 0.7, 0.7, 1.0 }; fprintf(stderr, "IperS V1.0\nWritten by David Bucciarelli ([email protected])\n"); glutInitWindowPosition(0, 0); glutInitWindowSize(WIDTH, HEIGHT); glutInit(&ac, av); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); if (!(win = glutCreateWindow("IperS"))) { fprintf(stderr, "Error, couldn't open window\n"); exit(-1); } reshape(WIDTH, HEIGHT); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_FOG); glFogi(GL_FOG_MODE, GL_EXP2); glFogfv(GL_FOG_COLOR, fogcolor); glFogf(GL_FOG_DENSITY, 0.006); glHint(GL_FOG_HINT, GL_NICEST); inittextures(); initdlists(); initlight(); glClearColor(fogcolor[0], fogcolor[1], fogcolor[2], fogcolor[3]); glClear(GL_COLOR_BUFFER_BIT); calcposobs(); glutReshapeFunc(reshape); glutDisplayFunc(draw); glutKeyboardFunc(key); glutSpecialFunc(special); glutIdleFunc(draw); glutMainLoop(); cleanup(); return 0; }
/* ARGSUSED1 */ static void key(unsigned char k, int x, int y) { switch(k) { case 27: exit(0); break; case 'a': v+=0.01; break; case 'z': v-=0.01; break; case 'j': joyactive=(!joyactive); break; case 'h': help=(!help); break; case 'f': fog=(!fog); break; case 't': usetex=(!usetex); break; case 'b': if(bfcull) { glDisable(GL_CULL_FACE); bfcull=0; } else { glEnable(GL_CULL_FACE); bfcull=1; } break; case 'm': cstrip=(!cstrip); break; case 'd': fprintf(stderr,"Deleting textures...\n"); glDeleteTextures(1,&t1id); glDeleteTextures(1,&t2id); fprintf(stderr,"Loading textures...\n"); inittextures(); fprintf(stderr,"Done.\n"); break; } }
int main(int ac, char **av) { float fogcolor[4]={0.7,0.7,0.7,1.0}; fprintf(stderr,"Tunnel V1.3\nWritten by David Bucciarelli ([email protected])\n"); /* #ifdef _WIN32 if(!SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS)) { fprintf(stderr,"Error setting the process class.\n"); return 0; } if(!SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL)) { fprintf(stderr,"Error setting the process priority.\n"); return 0; } #endif */ glutInitWindowPosition(0,0); glutInitWindowSize(WIDTH,HEIGHT); glutInit(&ac,av); glutInitDisplayMode(GLUT_RGB|GLUT_DEPTH|GLUT_DOUBLE); glutCreateWindow("Tunnel"); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(80.0,WIDTH/(float)HEIGHT,1.0,50.0); glMatrixMode(GL_MODELVIEW); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_TEXTURE_2D); glEnable(GL_FOG); glFogi(GL_FOG_MODE,GL_EXP2); glFogfv(GL_FOG_COLOR,fogcolor); glFogf(GL_FOG_DENSITY,0.06); #ifdef FX glHint(GL_FOG_HINT,GL_NICEST); /*fxMesaTextureUsePalette(1); */ #endif inittextures(); #ifndef FX glDisable(GL_TEXTURE_2D); usetex=0; #endif glClearColor(fogcolor[0],fogcolor[1],fogcolor[2],fogcolor[3]); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); calcposobs(); glutReshapeFunc(reshape); glutDisplayFunc(draw); glutKeyboardFunc(key); glutSpecialFunc(special); glutIdleFunc(draw); glutMainLoop(); return 0; /* ANSI C requires main to return int. */ }
static void key(unsigned char k, int x, int y) { switch (k) { case 27: exit(0); break; case 'a': v += 0.01; break; case 'z': v -= 0.01; break; #ifdef XMESA case ' ': fullscreen = (!fullscreen); XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); break; #endif case 'j': joyactive = (!joyactive); break; case 'h': help = (!help); break; case 'f': fog = (!fog); break; case 't': usetex = (!usetex); break; case 'b': if (bfcull) { glDisable(GL_CULL_FACE); bfcull = 0; } else { glEnable(GL_CULL_FACE); bfcull = 1; } break; case 'm': cstrip = (!cstrip); break; case 'd': fprintf(stderr, "Deleting textures...\n"); glDeleteTextures(1, &t1id); glDeleteTextures(1, &t2id); fprintf(stderr, "Loading textures...\n"); inittextures(); fprintf(stderr, "Done.\n"); break; case 'n': NiceFog = !NiceFog; printf("NiceFog %d\n", NiceFog); break; } glutPostRedisplay(); }
static void Init(ModeInfo * mi) { sballsstruct *sb = &sballs[MI_SCREEN(mi)]; int i; /* Default settings */ if (MI_IS_WIREFRAME(mi)) do_texture = False; if (do_texture) inittextures(mi); else { sb->btexture = (XImage*) NULL; sb->ftexture = (XImage*) NULL; } vinit(sb->eye ,0.0f, 0.0f, 6.0f); vinit(sb->rotm ,0.0f, 0.0f, 0.0f); sb->speed = MI_CYCLES(mi); /* initialise object number */ if ((object == 0) || (object > MAX_OBJ)) object = NRAND(MAX_OBJ-1)+1; object--; /* initialise sphere number */ spheres = MI_COUNT(mi); if (MI_COUNT(mi) > polygons[object].numverts) spheres = polygons[object].numverts; if (MI_COUNT(mi) < 1) spheres = polygons[object].numverts; /* initialise sphere radius */ for(i=0; i < spheres;i++) { #if RANDOM_RADIUS sb->radius[i] = ((float) LRAND() / (float) MAXRAND); if (sb->radius[i] < 0.3) sb->radius[i] = 0.3; if (sb->radius[i] > 0.7) sb->radius[i] = 0.7; #else sb->radius[i] = polygons[object].radius; #endif } if (MI_IS_DEBUG(mi)) { (void) fprintf(stderr, "%s:\n\tobject=%s\n\tspheres=%d\n\tspeed=%d\n\ttexture=%s\n", MI_NAME(mi), polygons[object].shortname, spheres, (int) MI_CYCLES(mi), do_texture ? "on" : "off" ); } glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse); glLightfv(GL_LIGHT1, GL_POSITION,LightPosition); glEnable(GL_LIGHT1); }
int main(int ac, char **av) { float fogcolor[4]={0.025,0.025,0.025,1.0}; fprintf(stderr,"Teapot V1.2\nWritten by David Bucciarelli ([email protected])\n"); /* if(!SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS)) { fprintf(stderr,"Error setting the process class.\n"); return 0; } if(!SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL)) { fprintf(stderr,"Error setting the process priority.\n"); return 0; } */ glutInitWindowSize(WIDTH,HEIGHT); glutInit(&ac,av); glutInitDisplayMode(GLUT_RGB|GLUT_DEPTH|GLUT_DOUBLE); if(!(win=glutCreateWindow("Teapot"))) { fprintf(stderr,"Error, couldn't open window\n"); return -1; } reshape(WIDTH,HEIGHT); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_TEXTURE_2D); glEnable(GL_FOG); glFogi(GL_FOG_MODE,GL_EXP2); glFogfv(GL_FOG_COLOR,fogcolor); glFogf(GL_FOG_DENSITY,0.04); glHint(GL_FOG_HINT,GL_NICEST); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); calcposobs(); inittextures(); initlight(); initdlists(); glClearColor(fogcolor[0],fogcolor[1],fogcolor[2],fogcolor[3]); glutReshapeFunc(reshape); glutDisplayFunc(draw); glutKeyboardFunc(key); glutSpecialFunc(special); glutIdleFunc(draw); glutMainLoop(); cleanup(); return 0; }
static Bool Init(ModeInfo * mi) { int i; firestruct *fs = &fire[MI_SCREEN(mi)]; /* default settings */ fs->eject_r = 0.1 + NRAND(10) * 0.03; fs->dt = 0.015; fs->eject_vy = 4; fs->eject_vl = 1; fs->ridtri = 0.1 + NRAND(10) * 0.005; fs->maxage = 1.0 / fs->dt; vinit(fs->obs, DEF_OBS[0], DEF_OBS[1], DEF_OBS[2]); fs->v = 0.0; fs->alpha = DEF_ALPHA; fs->beta = DEF_BETA; /* initialise texture stuff */ if (do_texture) inittextures(mi); else { fs->ttexture = (XImage*) NULL; fs->gtexture = (XImage*) NULL; } if (MI_IS_DEBUG(mi)) { (void) fprintf(stderr, "%s:\n\tnum_part=%d\n\ttrees=%d\n\tfog=%s\n\tshadows=%s\n\teject_r=%.3f\n\tridtri=%.3f\n", MI_NAME(mi), fs->np, fs->num_trees, fs->fog ? "on" : "off", fs->shadows ? "on" : "off", fs->eject_r, fs->ridtri); } glShadeModel(GL_FLAT); glEnable(GL_DEPTH_TEST); /* makes particles blend with background */ if (!MI_IS_WIREFRAME(mi)||(!fs->np)) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } /* fog stuff */ glEnable(GL_FOG); glFogi(GL_FOG_MODE, GL_EXP); glFogfv(GL_FOG_COLOR, fogcolor); glFogf(GL_FOG_DENSITY, 0.03); glHint(GL_FOG_HINT, GL_NICEST); /* initialise particles and trees */ for (i = 0; i < fs->np; i++) { setnewpart(fs, &(fs->p[i])); } if (fs->num_trees) if (!inittree(mi)) { return False; } /* if no fire particles then initialise rain particles */ if (!fs->np) { vinit(fs->min,-7.0f,-0.2f,-7.0f); vinit(fs->max,7.0f,8.0f,7.0f); for (i = 0; i < NUMPART; i++) { setnewrain(fs, &(fs->r[i])); } } return True; }
static void key(unsigned char k, int x, int y) { switch (k) { case 27: glutDestroyWindow(channel[0]); glutDestroyWindow(channel[1]); cleanup(); exit(0); break; case 'a': v += 5.; break; case 'z': v -= 5.; break; #ifdef XMESA case ' ': fullscreen = (!fullscreen); glutSetWindow(channel[0]); XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); glutSetWindow(channel[1]); XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); break; #endif case 'j': joyactive = (!joyactive); break; case 'h': help = (!help); break; case 'f': fog = (!fog); break; case 't': usetex = (!usetex); break; case 'b': if (bfcull) { glDisable(GL_CULL_FACE); bfcull = 0; } else { glEnable(GL_CULL_FACE); bfcull = 1; } break; case 'm': cstrip = (!cstrip); break; case 'd': fprintf(stderr, "Deleting textures...\n"); glDeleteTextures(1, &t1id); glDeleteTextures(1, &t2id); fprintf(stderr, "Loading textures...\n"); inittextures(); fprintf(stderr, "Done.\n"); break; } }
int main(int ac,char **av) { int i; fprintf(stderr,"Fire V1.5\nWritten by David Bucciarelli ([email protected])\n"); /* Default settings */ WIDTH=640; HEIGHT=480; np=800; eject_r=0.1; dt=0.015; eject_vy=4; eject_vl=1; shadows=1; ridtri=0.1; maxage=1.0/dt; if(ac==2) np=atoi(av[1]); if(ac==4) { WIDTH=atoi(av[2]); HEIGHT=atoi(av[3]); } glutInitWindowPosition(0,0); glutInitWindowSize(WIDTH,HEIGHT); glutInit(&ac,av); glutInitDisplayMode(GLUT_RGB|GLUT_DEPTH|GLUT_DOUBLE); glutCreateWindow("Fire"); reshape(WIDTH,HEIGHT); inittextures(); glShadeModel(GL_FLAT); glEnable(GL_DEPTH_TEST); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_FOG); glFogi(GL_FOG_MODE,GL_EXP); glFogfv(GL_FOG_COLOR,fogcolor); glFogf(GL_FOG_DENSITY,0.1); #ifdef FX glHint(GL_FOG_HINT,GL_NICEST); #endif p=malloc(sizeof(part)*np); for(i=0;i<np;i++) setnewpart(&p[i]); inittree(); glutKeyboardFunc(key); glutSpecialFunc(special); glutDisplayFunc(drawfire); glutIdleFunc(drawfire); glutReshapeFunc(reshape); glutMainLoop(); return 0; /* ANSI C requires main to return int. */ }
int main(int ac, char **av) { int i; fprintf(stderr, "Fire V1.5\nWritten by David Bucciarelli ([email protected])\n"); /* Default settings */ np = 800; eject_r = -0.65; dt = 0.015; eject_vy = 4; eject_vl = 1; shadows = 1; ridtri = 0.25; maxage = 1.0 / dt; if (ac == 2) { np = atoi(av[1]); if (np <= 0 || np > 1000000) { fprintf(stderr, "Invalid input.\n"); exit(-1); } } if (ac == 4) { WIDTH = atoi(av[2]); HEIGHT = atoi(av[3]); } glutInitWindowSize(WIDTH, HEIGHT); glutInit(&ac, av); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); if (!(win = glutCreateWindow("Fire"))) { fprintf(stderr, "Error opening a window.\n"); exit(-1); } reshape(WIDTH, HEIGHT); inittextures(); glShadeModel(GL_FLAT); glEnable(GL_DEPTH_TEST); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_FOG); glFogi(GL_FOG_MODE, GL_EXP); glFogfv(GL_FOG_COLOR, fogcolor); glFogf(GL_FOG_DENSITY, 0.1); assert(np > 0); p = (part *) malloc(sizeof(part) * np); assert(p); for (i = 0; i < np; i++) setnewpart(&p[i]); inittree(); glutKeyboardFunc(key); glutSpecialFunc(special); glutDisplayFunc(drawfire); glutIdleFunc(idle); glutReshapeFunc(reshape); glutMainLoop(); return (0); }