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

Comparing ray/src/px/neuclrtab.c (file contents):
Revision 2.1 by greg, Fri Jun 10 12:33:35 1994 UTC vs.
Revision 2.2 by greg, Mon Jun 13 13:29:56 1994 UTC

# Line 63 | Line 63 | long   npixels;
63          nsamples = npixels/samplefac;
64          if (nsamples < 600)
65                  return(-1);
66 <        thesamples = (BYTE *)malloc((nsamples+1)*3);
66 >        thesamples = (BYTE *)malloc(nsamples*3);
67          if (thesamples == NULL)
68                  return(-1);
69          cursamp = thesamples;
# Line 75 | Line 75 | long   npixels;
75                  cumprob = 0.;
76                  while ((cumprob += (1.-cumprob)*nsleft/(npleft-sv)) < rval)
77                          sv++;
78 <                setskip(cursamp, sv);
79 <                cursamp += 3;
80 <                npleft -= sv;
78 >                if (nsleft == nsamples)
79 >                        skipcount = sv;
80 >                else {
81 >                        setskip(cursamp, sv);
82 >                        cursamp += 3;
83 >                }
84 >                npleft -= sv+1;
85                  nsleft--;
86          }
87 <        setskip(cursamp, 0);            /* dummy tagged onto end */
87 >        setskip(cursamp, npleft);       /* tag on end to skip the rest */
88          cursamp = thesamples;
85        skipcount = nskip(cursamp);
89          return(0);
90   }
91  
# Line 91 | Line 94 | neu_pixel(col)                 /* add pixel to our samples */
94   register BYTE   col[];
95   {
96          if (!skipcount--) {
97 +                skipcount = nskip(cursamp);
98                  cursamp[0] = col[BLU];
99                  cursamp[1] = col[GRN];
100                  cursamp[2] = col[RED];
101                  cursamp += 3;
98                skipcount = nskip(cursamp);
102          }
103   }
104  
# Line 106 | Line 109 | register int   n;
109   {
110          while (n > skipcount) {
111                  cs += skipcount;
112 +                n -= skipcount+1;
113 +                skipcount = nskip(cursamp);
114                  cursamp[0] = cs[0][BLU];
115                  cursamp[1] = cs[0][GRN];
116                  cursamp[2] = cs[0][RED];
117                  cs++;
113                n -= skipcount+1;
118                  cursamp += 3;
115                skipcount = nskip(cursamp);
119          }
120          skipcount -= n;
121   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines