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

Comparing ray/src/util/rtcontrib.c (file contents):
Revision 1.54 by greg, Sun Jun 14 18:21:58 2009 UTC vs.
Revision 1.59 by greg, Sun Oct 10 01:26:51 2010 UTC

# Line 14 | Line 14 | static const char RCSid[] = "$Id$";
14   #include  "color.h"
15   #include  "resolu.h"
16   #include  "lookup.h"
17 + #include  "random.h"
18   #include  "calcomp.h"
19  
20   #ifndef MAXMODLIST
21   #define MAXMODLIST      1024            /* maximum modifiers we'll track */
22   #endif
23  
24 < int     treebufsiz = BUFSIZ;            /* current tree buffer size */
24 > size_t  treebufsiz = BUFSIZ;            /* current tree buffer size */
25  
26   typedef double  DCOLOR[3];              /* double-precision color */
27  
# Line 92 | Line 93 | struct rtproc {
93          struct rtproc   *next;          /* next in list of processes */
94          SUBPROC         pd;             /* rtrace pipe descriptors */
95          unsigned long   raynum;         /* ray number for this tree */
96 <        int             bsiz;           /* ray tree buffer length */
96 >        size_t          bsiz;           /* ray tree buffer length */
97          char            *buf;           /* ray tree buffer */
98 <        int             nbr;            /* number of bytes from rtrace */
98 >        size_t          nbr;            /* number of bytes from rtrace */
99   };                              /* rtrace process buffer */
100  
101                                          /* rtrace command and defaults */
# Line 378 | Line 379 | main(int argc, char *argv[])
379          rtargv[rtargc++] = contrib ? RTCONTRIB : RTCOEFF;
380                                  /* just asking for defaults? */
381          if (!strcmp(argv[i], "-defaults")) {
382 <                char    sxres[16], syres[16];
382 >                char    nps[8], sxres[16], syres[16];
383                  char    *rtpath;
383                printf("-n %-2d\t\t\t\t# number of processes\n", nprocs);
384                  printf("-c %-5d\t\t\t# accumulated rays per record\n",
385                                  accumulate);
386                  printf("-V%c\t\t\t\t# output %s\n", contrib ? '+' : '-',
387                                  contrib ? "contributions" : "coefficients");
388                  fflush(stdout);                 /* report OUR options */
389 +                rtargv[rtargc++] = "-n";
390 +                sprintf(nps, "%d", nprocs);
391 +                rtargv[rtargc++] = nps;
392                  rtargv[rtargc++] = header ? "-h+" : "-h-";
393                  sprintf(fmt, "-f%c%c", inpfmt, outfmt);
394                  rtargv[rtargc++] = fmt;
# Line 543 | Line 546 | init(int np)
546                  raysleft = 0;
547          if ((account = accumulate) > 0)
548                  raysleft *= accumulate;
549 <        waitflush = xres;
549 >        waitflush = (yres > 0) & (xres > 1) ? 0 : xres;
550          if (!recover)
551                  return;
552                                          /* recover previous values */
# Line 664 | Line 667 | ofname(char *oname, const char *ospec, const char *mna
667                                  mnp = cp;
668                                  break;
669                          case 'd':
670 +                        case 'i':
671 +                        case 'o':
672 +                        case 'x':
673 +                        case 'X':
674                                  if (bnp != NULL)
675                                          return -1;
676                                  bnp = cp;
# Line 730 | Line 737 | printresolu(FILE *fout, int xr, int yr)
737   {
738          if ((xr > 0) & (yr > 0))        /* resolution string */
739                  fprtresolu(xr, yr, fout);
733        if (xres > 0)                   /* global flush flag */
734                fflush(fout);
740   }
741  
742   /* Get output stream pointer (open and write header if new and noopen==0) */
# Line 752 | Line 757 | getostream(const char *ospec, const char *mname, int b
757                          if (header)
758                                  printheader(stdout, NULL);
759                          printresolu(stdout, xres, yres);
760 +                        if (waitflush > 0)
761 +                                fflush(stdout);
762                          stdos.xr = xres; stdos.yr = yres;
763                          using_stdout = 1;
764                  }
# Line 820 | Line 827 | getostream(const char *ospec, const char *mname, int b
827                          if (outfmt == 'a')
828                                  putc('\n', sop->ofp);
829                  }
830 <                if (xres > 0)
830 >                if (waitflush > 0)
831                          fflush(sop->ofp);
832          }
833          sop->reclen += noopen;                  /* add to length if noopen */
# Line 987 | Line 994 | done_contrib(int navg)
994          if (using_stdout & (outfmt == 'a'))
995                  putc('\n', stdout);
996          if (!waitflush) {
997 <                waitflush = xres;
997 >                waitflush = (yres > 0) & (xres > 1) ? 0 : xres;
998                  if (using_stdout)
999                          fflush(stdout);
1000          }
# Line 1069 | Line 1076 | wait_rproc(void)
1076   {
1077          struct rtproc   *rtfree = NULL;
1078          fd_set          readset, errset;
1079 <        int             nr;
1079 >        ssize_t         nr;
1080          struct rtproc   *rt;
1081          int             n;
1082          

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines