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

Comparing ray/src/rt/RpictSimulManager.cpp (file contents):
Revision 2.5 by greg, Wed Aug 21 23:32:24 2024 UTC vs.
Revision 2.6 by greg, Wed Aug 21 23:52:24 2024 UTC

# Line 732 | Line 732 | RpictSimulManager::NewOutput(FILE *pdfp[2], const char
732          default:;
733          }
734          fputc('\n', pdfp[0]);                   // flush picture header + resolution
735        fprtresolu(GetWidth(), GetHeight(), pdfp[0]);
735          if (fflush(pdfp[0]) == EOF) {
736                  sprintf(errmsg, "cannot write header to picture '%s'", pfname);
737                  error(SYSTEM, errmsg);
# Line 740 | Line 739 | RpictSimulManager::NewOutput(FILE *pdfp[2], const char
739                  pdfp[0] = NULL;
740                  return RDTnone;
741          }
742 <        if (dfname) {
742 >        if (dfname) {                           // open depth output
743                  if (dfname[0] == '!')
744                          pdfp[1] = popen(dfname+1, "w");
745                  else
# Line 761 | Line 760 | RpictSimulManager::NewOutput(FILE *pdfp[2], const char
760                  fputs(DEPTHSTR, pdfp[1]); fputs(dunit, pdfp[1]); fputc('\n', pdfp[1]);
761                  fputformat(DEPTH16FMT, pdfp[1]);
762                  fputc('\n', pdfp[1]);           // end-of-info
764                fprtresolu(GetWidth(), GetHeight(), pdfp[1]);
763                  if (fflush(pdfp[1]) == EOF) {
764                          sprintf(errmsg, "cannot write header to '%s'", dfname);
765                          error(SYSTEM, errmsg);
# Line 788 | Line 786 | RpictSimulManager::RenderFrame(const char *pfname, Ren
786          dt = NewOutput(pdfp, pfname, dt, dfname);
787          if (dt == RDTnone)
788                  return RDTnone;
789 +                                                // add resolution string(s)
790 +        fprtresolu(GetWidth(), GetHeight(), pdfp[0]);
791 +        if (RDTdepthT(dt) == RDTdshort)
792 +                fprtresolu(GetWidth(), GetHeight(), pdfp[1]);
793  
794          const int       bheight = (psample > 1) ? int(2*psample+.99) : 4;
795          const int       vstep =  bheight >> (psample > 1);
# Line 1130 | Line 1132 | RpictSimulManager::ResumeFrame(const char *pfname, con
1132                  error(WARNING, errmsg);
1133          }
1134          long    toSkip = 0;
1135 <        switch (RDTdepthT(dt)) {                        // append depth file, too?
1135 >        switch (RDTdepthT(dt)) {                // append depth file, too?
1136          case RDTdfloat:
1137                  toSkip = sizeof(float)*GetWidth()*doneScans;
1138                  break;
# Line 1145 | Line 1147 | RpictSimulManager::ResumeFrame(const char *pfname, con
1147                  toSkip = 2L*GetWidth()*doneScans;
1148                  break;
1149          default:;
1150 <        }
1151 <        if (toSkip && fseek(pdfp[1], toSkip, SEEK_CUR) < 0) {
1150 >        }                                       // fseek() needed for output
1151 >        if (pdfp[1] && fseek(pdfp[1], toSkip, SEEK_CUR) < 0) {
1152                  sprintf(errmsg, "cannot seek on depth file '%s'", dfname);
1153                  error(SYSTEM, errmsg);
1154                  fclose(pdfp[0]); fclose(pdfp[1]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines