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

Comparing ray/src/rt/rv3.c (file contents):
Revision 2.32 by greg, Sat Dec 12 00:03:42 2009 UTC vs.
Revision 2.36 by greg, Tue Mar 20 02:56:08 2012 UTC

# Line 192 | Line 192 | paint(                 /* compute and paint a rectangle */
192          if ((thisray.rmax = viewray(thisray.rorg, thisray.rdir, &ourview,
193                          h/hresolu, v/vresolu)) < -FTINY) {
194                  setcolor(thisray.rcol, 0.0, 0.0, 0.0);
195 <        } else if (nproc == 1) {                /* immediate mode */
195 >        } else if (nproc == 1 || newparam) {    /* immediate mode */
196                  ray_trace(&thisray);
197          } else {                                /* queuing mode */
198                  int     rval;
# Line 203 | Line 203 | paint(                 /* compute and paint a rectangle */
203                          return(0);
204                  if (rval < 0)
205                          return(-1);
206 +                                                /* get node for returned ray */
207                  p = (PNODE *)thisray.rno;
208          }
209  
# Line 265 | Line 266 | newimage(                                      /* start a new image */
266   )
267   {
268          extern int      ray_pnprocs;
269 <        int             newnp;
270 <                                                /* change in nproc? */
271 <        if (s != NULL && sscanf(s, "%d", &newnp) == 1 &&
272 <                        (newnp > 0) & (newnp != nproc)) {
272 <                if (!newparam) {
273 <                        if (newnp == 1)
274 <                                ray_pclose(0);
275 <                        else if (newnp < ray_pnprocs)
276 <                                ray_pclose(ray_pnprocs - newnp);
277 <                        else
278 <                                ray_popen(newnp - ray_pnprocs);
279 <                }
280 <                nproc = newnp;
281 <        }
269 >        int             newnp = 0;
270 >                                                /* # rendering procs arg? */
271 >        if (s != NULL)
272 >                sscanf(s, "%d", &newnp);
273                                                  /* free old image */
274          freepkids(&ptrunk);
275                                                  /* compute resolution */
# Line 295 | Line 286 | newimage(                                      /* start a new image */
286          if (newparam) {                         /* (re)start rendering procs */
287                  if (ray_pnprocs > 0)
288                          ray_pclose(0);
289 +                if (newnp > 0)
290 +                        nproc = newnp;
291                  if (nproc > 1)
292                          ray_popen(nproc);
293                  newparam = 0;
294 +        } else if ((newnp > 0) & (newnp != nproc)) {
295 +                if (newnp == 1)                 /* change # rendering procs */
296 +                        ray_pclose(0);
297 +                else if (newnp < ray_pnprocs)
298 +                        ray_pclose(ray_pnprocs - newnp);
299 +                else
300 +                        ray_popen(newnp - ray_pnprocs);
301 +                nproc = newnp;
302          }
303          niflush = 0;                            /* get first value */
304          paint(&ptrunk);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines