--- ray/src/rt/rview.c 1992/09/21 12:08:00 2.8 +++ ray/src/rt/rview.c 1993/02/10 14:03:01 2.10 @@ -35,7 +35,7 @@ double shadthresh = .1; /* shadow threshold */ double shadcert = .25; /* shadow certainty */ int directrelay = 0; /* number of source relays */ int vspretest = 128; /* virtual source pretest density */ -int directinvis = 0; /* sources invisible? */ +int directvis = 1; /* sources visible? */ double srcsizerat = 0.; /* maximum ratio source size/dist. */ double specthresh = .3; /* specular sampling threshold */ @@ -74,6 +74,10 @@ static char *reserve_mem = NULL; /* pre-allocated res quit(code) /* quit program */ int code; { +#ifdef MSTATS + if (code == 2 && errno == ENOMEM) + printmemstats(stderr); +#endif devclose(); exit(code); } @@ -185,9 +189,13 @@ again: else *++args = '\0'; switch (inpbuf[0]) { - case 'f': /* new frame */ - if (badcom("frame")) - goto commerr; + case 'f': /* new frame (or free mem.) */ + if (badcom("frame")) { + if (badcom("free")) + goto commerr; + free_objmem(); + break; + } getframe(args); break; case 'v': /* view */ @@ -225,7 +233,7 @@ again: goto commerr; getaim(args); break; - case 'm': /* move camera */ + case 'm': /* move camera (or memstats) */ if (badcom("move")) #ifdef MSTATS {