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.10 by greg, Fri May 30 16:05:52 2014 UTC vs.
Revision 2.13 by greg, Thu Jul 24 16:28:17 2014 UTC

# Line 139 | Line 139 | getostream(const char *ospec, const char *mname, int b
139          char                    oname[1024];
140          LUENT                   *lep;
141          STREAMOUT               *sop;
142 +        char                    *cp;
143          
144          if (ospec == NULL) {                    /* use stdout? */
145                  if (!noopen & !using_stdout) {
146                          if (outfmt != 'a')
147                                  SET_FILE_BINARY(stdout);
148                          if (header) {
149 <                                sprintf(info, "NCOLS=%d\nNCOMP=3\n",
150 <                                                stdos.reclen);
149 >                                cp = info;
150 >                                if (yres > 0) {
151 >                                        sprintf(cp, "NROWS=%d\n", yres *
152 >                                                        (xres + !xres) );
153 >                                        while (*cp) ++cp;
154 >                                }
155 >                                if ((xres <= 0) | (stdos.reclen > 1))
156 >                                        sprintf(cp, "NCOLS=%d\n", stdos.reclen);
157                                  printheader(stdout, info);
158                          }
159 <                        printresolu(stdout, xres, yres);
159 >                        if (stdos.reclen == 1)
160 >                                printresolu(stdout, xres, yres);
161                          if (waitflush > 0)
162                                  fflush(stdout);
163                          stdos.xr = xres; stdos.yr = yres;
# Line 198 | Line 206 | getostream(const char *ospec, const char *mname, int b
206   #ifdef getc_unlocked
207                  flockfile(sop->ofp);            /* avoid lock/unlock overhead */
208   #endif
209 +                if (accumulate > 0) {           /* global resolution */
210 +                        sop->xr = xres; sop->yr = yres;
211 +                }
212                  if (header) {
213 <                        char    *cp = info;
213 >                        cp = info;
214                          if (ofl & OF_MODIFIER || sop->reclen == 1) {
215                                  sprintf(cp, "MODIFIER=%s\n", mname);
216                                  while (*cp) ++cp;
# Line 208 | Line 219 | getostream(const char *ospec, const char *mname, int b
219                                  sprintf(cp, "BIN=%d\n", bn);
220                                  while (*cp) ++cp;
221                          }
222 <                        sprintf(cp, "NCOLS=%d\nNCOMP=3\n", sop->reclen);
222 >                        if (sop->yr > 0) {
223 >                                sprintf(cp, "NROWS=%d\n", sop->yr *
224 >                                                (sop->xr + !sop->xr) );
225 >                                while (*cp) ++cp;
226 >                        }
227 >                        if ((sop->xr <= 0) | (sop->reclen > 1))
228 >                                sprintf(cp, "NCOLS=%d\n", sop->reclen);
229                          printheader(sop->ofp, info);
230                  }
231 <                if (accumulate > 0) {           /* global resolution */
232 <                        sop->xr = xres; sop->yr = yres;
216 <                }
217 <                printresolu(sop->ofp, sop->xr, sop->yr);
231 >                if (sop->reclen == 1)
232 >                        printresolu(sop->ofp, sop->xr, sop->yr);
233                  if (waitflush > 0)
234                          fflush(sop->ofp);
235          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines