--- ray/src/rt/rtrace.c 1993/01/20 15:19:51 2.11 +++ ray/src/rt/rtrace.c 1993/05/04 13:26:52 2.14 @@ -75,8 +75,9 @@ static RAY thisray; /* for our convenience */ static int oputo(), oputd(), oputv(), oputl(), oputL(), oputp(), oputn(), oputN(), oputs(), oputw(), oputm(); -static int (*ray_out[10])(), (*every_out[10])(); -static int castonly; +static int ourtrace(), tabin(); +static int (*ray_out[16])(), (*every_out[16])(); +static int castonly = 0; static int puta(), putf(), putd(); @@ -127,7 +128,10 @@ char *fname; setmode(fileno(fp), O_BINARY); #endif /* set up output */ - setoutput(outvals); + if (imm_irrad) + outvals = "v"; + else + setoutput(outvals); switch (outform) { case 'a': putreal = puta; break; case 'f': putreal = putf; break; @@ -139,8 +143,11 @@ char *fname; default: error(CONSISTENCY, "botched output format"); } - if (hresolu > 0 && vresolu > 0) - fprtresolu(hresolu, vresolu, stdout); + if (hresolu > 0) { + if (vresolu > 0) + fprtresolu(hresolu, vresolu, stdout); + fflush(stdout); + } /* process file */ while (getvec(orig, inform, fp) == 0 && getvec(direc, inform, fp) == 0) { @@ -165,16 +172,18 @@ char *fname; if (--vcount == 0) /* check for end */ break; } + fflush(stdout); if (vcount > 0) error(USER, "read error"); - fclose(fp); + if (fname != NULL) + fclose(fp); } setoutput(vs) /* set up output tables */ register char *vs; { - extern int ourtrace(), (*trace)(); + extern int (*trace)(); register int (**table)() = ray_out; castonly = 1;