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

Comparing ray/src/rt/rc2.c (file contents):
Revision 2.6 by greg, Thu Jun 21 17:14:32 2012 UTC vs.
Revision 2.10 by greg, Fri May 30 16:05:52 2014 UTC

# Line 8 | Line 8 | static const char RCSid[] = "$Id$";
8  
9   #include "rcontrib.h"
10   #include "resolu.h"
11 + #include <ctype.h>
12  
13   /* Close output stream and free record */
14   static void
# Line 111 | Line 112 | printheader(FILE *fout, const char *info)
112          printargs(gargc-1, gargv, fout);        /* add our command */
113          fprintf(fout, "SOFTWARE= %s\n", VersionID);
114          fputnow(fout);
115 +        fputs("NCOMP=3\n", fout);               /* always RGB */
116          if (info != NULL)                       /* add extra info if given */
117                  fputs(info, fout);
118          fputformat(formstr(outfmt), fout);
# Line 131 | Line 133 | printresolu(FILE *fout, int xr, int yr)
133   STREAMOUT *
134   getostream(const char *ospec, const char *mname, int bn, int noopen)
135   {
134        /* static const DCOLOR  nocontrib = BLKCOLOR; */
136          static STREAMOUT        stdos;
137 +        char                    info[1024];
138          int                     ofl;
139          char                    oname[1024];
140          LUENT                   *lep;
# Line 142 | Line 144 | getostream(const char *ospec, const char *mname, int b
144                  if (!noopen & !using_stdout) {
145                          if (outfmt != 'a')
146                                  SET_FILE_BINARY(stdout);
147 <                        if (header)
148 <                                printheader(stdout, NULL);
147 >                        if (header) {
148 >                                sprintf(info, "NCOLS=%d\nNCOMP=3\n",
149 >                                                stdos.reclen);
150 >                                printheader(stdout, info);
151 >                        }
152                          printresolu(stdout, xres, yres);
153                          if (waitflush > 0)
154                                  fflush(stdout);
# Line 182 | Line 187 | getostream(const char *ospec, const char *mname, int b
187                  }
188          }
189          if (!noopen && sop->ofp == NULL) {      /* open output stream */
185                long            i;
190                  if (oname[0] == '!')            /* output to command */
191                          sop->ofp = popen(oname+1, "w");
192                  else                            /* else open file */
# Line 195 | Line 199 | getostream(const char *ospec, const char *mname, int b
199                  flockfile(sop->ofp);            /* avoid lock/unlock overhead */
200   #endif
201                  if (header) {
198                        char    info[512];
202                          char    *cp = info;
203                          if (ofl & OF_MODIFIER || sop->reclen == 1) {
204                                  sprintf(cp, "MODIFIER=%s\n", mname);
# Line 205 | Line 208 | getostream(const char *ospec, const char *mname, int b
208                                  sprintf(cp, "BIN=%d\n", bn);
209                                  while (*cp) ++cp;
210                          }
211 <                        *cp = '\0';
211 >                        sprintf(cp, "NCOLS=%d\nNCOMP=3\n", sop->reclen);
212                          printheader(sop->ofp, info);
213                  }
214                  if (accumulate > 0) {           /* global resolution */
215                          sop->xr = xres; sop->yr = yres;
216                  }
217                  printresolu(sop->ofp, sop->xr, sop->yr);
215 #if 0
216                                                /* play catch-up */
217                for (i = accumulate > 0 ? lastdone/accumulate : 0; i--; ) {
218                        int     j = sop->reclen;
219                        if (j <= 0) j = 1;
220                        while (j--)
221                                put_contrib(nocontrib, sop->ofp);
222                        if (outfmt == 'a')
223                                putc('\n', sop->ofp);
224                }
225 #endif
218                  if (waitflush > 0)
219                          fflush(sop->ofp);
220          }
# Line 363 | Line 355 | void
355   end_record()
356   {
357          --waitflush;
358 <        lu_doall(&ofiletab, puteol, NULL);
358 >        lu_doall(&ofiletab, &puteol, NULL);
359          if (using_stdout & (outfmt == 'a'))
360                  putc('\n', stdout);
361          if (!waitflush) {
# Line 513 | Line 505 | reload_output()
505                          *(STREAMOUT *)oent->data = sout;
506                  }
507          }
508 <        lu_doall(&ofiletab, myclose, NULL);     /* close all files */
508 >        lu_doall(&ofiletab, &myclose, NULL);    /* close all files */
509   }
510  
511  
# Line 669 | Line 661 | recover_output()
661          }
662                                                  /* seek on all files */
663          nvals = lastout * outvsiz;
664 <        lu_doall(&ofiletab, myseeko, &nvals);
664 >        lu_doall(&ofiletab, &myseeko, &nvals);
665                                                  /* skip repeated input */
666          lastout *= accumulate;
667          for (nvals = 0; nvals < lastout; nvals++) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines