ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/glareval.c
(Generate patch)

Comparing ray/src/util/glareval.c (file contents):
Revision 1.20 by greg, Tue Jul 30 12:56:36 1991 UTC vs.
Revision 2.6 by greg, Sat Feb 22 02:07:30 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1991 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   * Compute pixels for glare calculation
6   */
# Line 40 | Line 37 | static int     maxpix;         /* maximum number of pixels to buf
37   static SCAN     *freelist;              /* scanline free list */
38   static SCAN     *hashtab[HSIZE];        /* scanline hash table */
39  
40 + static long     scanbufsiz;             /* size of allocated scanline buffer */
41 +
42   static long     ncall = 0L;     /* number of calls to getpictscan */
43   static long     nread = 0L;     /* number of scanlines read */
44   static long     nrecl = 0L;     /* number of scanlines reclaimed */
# Line 153 | Line 152 | pict_val(vd)                   /* find picture value for view directio
152   FVECT   vd;
153   {
154          FVECT   pp;
155 <        double  vpx, vpy, vpz;
155 >        FVECT   ip;
156          COLOR   res;
157  
158          if (pictfp == NULL)
# Line 161 | Line 160 | FVECT  vd;
160          pp[0] = pictview.vp[0] + vd[0];
161          pp[1] = pictview.vp[1] + vd[1];
162          pp[2] = pictview.vp[2] + vd[2];
163 <        viewpixel(&vpx, &vpy, &vpz, &pictview, pp);
164 <        if (vpz <= FTINY || vpx < 0. || vpx >= 1. || vpy < 0. || vpy >= 1.)
163 >        viewloc(ip, &pictview, pp);
164 >        if (ip[2] <= FTINY || ip[0] < 0. || ip[0] >= 1. ||
165 >                        ip[1] < 0. || ip[1] >= 1.)
166                  return(-1.0);
167 <        colr_color(res, getpictscan((int)(vpy*pysiz))[(int)(vpx*pxsiz)]);
167 >        colr_color(res, getpictscan((int)(ip[1]*pysiz))[(int)(ip[0]*pxsiz)]);
168          return(luminance(res)/exposure);
169   }
170  
# Line 261 | Line 261 | int    np;
261                                  progname, np);
262   #endif
263          bzero(pb+6*np, 6*sizeof(float));
264 <        if (process(rt_pd, pb, pb, 3*sizeof(float)*np,
265 <                        6*sizeof(float)*(np+1)) < 3*sizeof(float)*np) {
264 >        if (process(rt_pd, (char *)pb, (char *)pb, 3*sizeof(float)*(np+1),
265 >                        6*sizeof(float)*(np+1)) < 3*sizeof(float)*(np+1)) {
266                  fprintf(stderr, "%s: rtrace communication error\n",
267                                  progname);
268                  exit(1);
# Line 270 | Line 270 | int    np;
270   }
271  
272  
273 + int
274   getexpos(s)                     /* get exposure from header line */
275   char    *s;
276   {
# Line 281 | Line 282 | char   *s;
282                  formatval(fmt, s);
283                  wrongformat = strcmp(fmt, COLRFMT);
284          }
285 +        return(0);
286   }
287  
288  
# Line 288 | Line 290 | open_pict(fn)                  /* open picture file */
290   char    *fn;
291   {
292          if ((pictfp = fopen(fn, "r")) == NULL) {
293 <                fprintf("%s: cannot open\n", fn);
293 >                fprintf(stderr, "%s: cannot open\n", fn);
294                  exit(1);
295          }
296          exposure = 1.0;
297          getheader(pictfp, getexpos, NULL);
298 <        if (wrongformat ||
299 <                        fgetresolu(&pxsiz, &pysiz, pictfp) != (YMAJOR|YDECR)) {
298 <                fprintf("%s: bad picture format\n", fn);
298 >        if (wrongformat || !fscnresolu(&pxsiz, &pysiz, pictfp)) {
299 >                fprintf(stderr, "%s: incompatible picture format\n", fn);
300                  exit(1);
301          }
302          initscans();
# Line 397 | Line 398 | initscans()                            /* initialize scanline buffers */
398          register SCAN   *ptr;
399          register int    i;
400                                          /* initialize positions */
401 <        scanpos = (long *)malloc(pysiz*sizeof(long));
401 >        scanpos = (long *)bmalloc(pysiz*sizeof(long));
402          if (scanpos == NULL)
403                  memerr("scanline positions");
404          for (i = pysiz-1; i >= 0; i--)
# Line 414 | Line 415 | initscans()                            /* initialize scanline buffers */
415          i = MAXSBUF / scansize;         /* compute number to allocate */
416          if (i > HSIZE)
417                  i = HSIZE;
418 <        scan_buf = malloc(i*scansize);  /* get in one big chunk */
418 >        scanbufsiz = i*scansize;
419 >        scan_buf = bmalloc(scanbufsiz); /* get in one big chunk */
420          if (scan_buf == NULL)
421                  memerr("scanline buffers");
422          ptr = (SCAN *)scan_buf;
# Line 431 | Line 433 | initscans()                            /* initialize scanline buffers */
433  
434   donescans()                             /* free up scanlines */
435   {
436 <        free(scan_buf);
437 <        free((char *)scanpos);
436 >        bfree(scan_buf, scanbufsiz);
437 >        bfree((char *)scanpos, pysiz*sizeof(long));
438   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines