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

Comparing ray/src/px/mt160r.c (file contents):
Revision 1.4 by greg, Fri Oct 20 20:35:59 1989 UTC vs.
Revision 2.1 by greg, Tue Nov 12 16:04:57 1991 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1986 Regents of the University of California */
1 > /* Copyright (c) 1991 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 13 | Line 13 | static char SCCSid[] = "$SunId$ LBL";
13   #include  <stdio.h>
14  
15   #include  "color.h"
16 + #include  "resolu.h"
17  
18   #define  NCOLS          880             /* for wide carriage */
19  
# Line 39 | Line 40 | char  *fname;
40          FILE  *input;
41          int  xres, yres;
42          COLR  scanline[NCOLS];
42        char  sbuf[256];
43          int  i;
44  
45          if (fname == NULL) {
# Line 50 | Line 50 | char  *fname;
50                  return(-1);
51          }
52                                  /* discard header */
53 <        while (fgets(sbuf, sizeof(sbuf), input) != NULL && sbuf[0] != '\n')
54 <                ;
53 >        if (checkheader(input, COLRFMT, NULL) < 0) {
54 >                fprintf(stderr, "%s: not a Radiance picture\n", fname);
55 >                return(-1);
56 >        }
57                                  /* get picture dimensions */
58 <        if (fgetresolu(&xres, &yres, input) != (YMAJOR|YDECR)) {
58 >        if (fgetresolu(&xres, &yres, input) < 0) {
59                  fprintf(stderr, "%s: bad picture size\n", fname);
60                  return(-1);
61          }
# Line 69 | Line 71 | char  *fname;
71                          fprintf(stderr, "%s: read error (y=%d)\n", fname, i);
72                          return(-1);
73                  }
74 <                normcolrs(scanline, xres);
74 >                normcolrs(scanline, xres, 0);
75                  plotscan(scanline, xres, i);
76          }
77  
# Line 117 | Line 119 | COLR  clr;
119   register int  x;
120   {
121          static int  cerr[NCOLS];
122 <        static int  err;
122 >        static int  err, errp;
123          int  b;
124          register int  isblack;
125  
126          b = normbright(clr);
127 +        errp = err;
128          err += b + cerr[x];
129          isblack = err < 128;
130          if (!isblack) err -= 256;
131 <        cerr[x] = err /= 2;
131 >        err /= 3;
132 >        cerr[x] = err + errp;
133          return(isblack);
134   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines