--- ray/src/util/glareval.c 2004/01/02 12:48:36 2.11 +++ ray/src/util/glareval.c 2018/08/02 18:33:50 2.16 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: glareval.c,v 2.11 2004/01/02 12:48:36 schorsch Exp $"; +static const char RCSid[] = "$Id: glareval.c,v 2.16 2018/08/02 18:33:50 greg Exp $"; #endif /* * Compute pixels for glare calculation @@ -10,6 +10,7 @@ static const char RCSid[] = "$Id: glareval.c,v 2.11 20 #include #include +#include "platform.h" #include "rtprocess.h" /* Windows: must come first because of conflicts */ #include "glare.h" @@ -144,7 +145,7 @@ seekerr: #ifdef DEBUG -static void +void pict_stats(void) /* print out picture read statistics */ { static long lastcall = 0L; /* ncall at last report */ @@ -176,9 +177,7 @@ pict_val( /* find picture value for view direction * pp[0] = pictview.vp[0] + vd[0]; pp[1] = pictview.vp[1] + vd[1]; pp[2] = pictview.vp[2] + vd[2]; - viewloc(ip, &pictview, pp); - if (ip[2] <= FTINY || ip[0] < 0. || ip[0] >= 1. || - ip[1] < 0. || ip[1] >= 1.) + if (viewloc(ip, &pictview, pp) != 1) return(-1.0); colr_color(res, getpictscan((int)(ip[1]*pysiz))[(int)(ip[0]*pxsiz)]); return(luminance(res)/exposure); @@ -248,8 +247,10 @@ getviewspan( /* compute a span of view pixels */ /* send to rtrace */ if (n >= maxpix) { /* flush */ rt_compute(rt_buf, n); - while (n-- > 0) + while (n > 0) { + --n; vb[buf_vh[n]+hsize] = luminance(rt_buf+3*n); + } } rt_buf[6*n] = ourview.vp[0]; rt_buf[6*n+1] = ourview.vp[1]; @@ -298,7 +299,7 @@ getexpos( /* get exposure from header line */ void *p ) { - char fmt[32]; + char fmt[MAXFMTLEN]; if (isexpos(s)) exposure *= exposval(s); @@ -319,6 +320,7 @@ open_pict( /* open picture file */ fprintf(stderr, "%s: cannot open\n", fn); exit(1); } + SET_FILE_BINARY(pictfp); exposure = 1.0; getheader(pictfp, getexpos, NULL); if (wrongformat || !fscnresolu(&pxsiz, &pysiz, pictfp)) {