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

Comparing ray/src/rt/rcmain.c (file contents):
Revision 2.23 by greg, Wed Oct 19 23:10:34 2022 UTC vs.
Revision 2.38 by greg, Wed Oct 30 02:22:23 2024 UTC

# Line 55 | Line 55 | char   RCCONTEXT[] = "RC.";            /* our special evaluation c
55  
56   #if defined(_WIN32) || defined(_WIN64)
57   #define RCONTRIB_FEATURES       "Accumulation\nSummation\nRecovery\n" \
58 <                                "ValueContribution\nImmediateIrradiance\n" \
59 <                                "ProgressReporting\nDistanceLimiting\n"
58 >                                "ImmediateIrradiance\n" \
59 >                                "ProgressReporting\nDistanceLimiting\n" \
60 >                                "InputFormats=a,f,d\nOutputFormats=a,f,d,c\n" \
61 >                                "Outputs=V,W\n" \
62 >                                "OutputCS=RGB,spec\n"
63   #else
64   #define RCONTRIB_FEATURES       "Multiprocessing\n" \
65                                  "Accumulation\nSummation\nRecovery\n" \
66 <                                "ValueContribution\nImmediateIrradiance\n" \
67 <                                "ProgressReporting\nDistanceLimiting\n"
66 >                                "ImmediateIrradiance\n" \
67 >                                "ProgressReporting\nDistanceLimiting\n" \
68 >                                "InputFormats=a,f,d\nOutputFormats=a,f,d,c\n" \
69 >                                "Outputs=V,W\n" \
70 >                                "OutputCS=RGB,spec\n"
71   #endif
72  
73   static void
# Line 78 | Line 84 | printdefaults(void)                    /* print default values to stdou
84          printf("-y %-9d\t\t\t# y resolution\n", yres);
85          printf(lim_dist ? "-ld+\t\t\t\t# limit distance on\n" :
86                          "-ld-\t\t\t\t# limit distance off\n");
87 <        printf("-h%c\t\t\t\t# %s header\n", header ? '+' : '-',
88 <                        header ? "output" : "no");
87 >        printf(header ? "-h+\t\t\t\t# output header\n" :
88 >                        "-h-\t\t\t\t# no header\n");
89          printf("-f%c%c\t\t\t\t# format input/output = %s/%s\n",
90                          inpfmt, outfmt, formstr(inpfmt), formstr(outfmt));
91 +        if (report_intvl > 0)
92 +                printf("-t %-9d\t\t\t#  time between reports\n", report_intvl);
93          printf(erract[WARNING].pf != NULL ?
94                          "-w+\t\t\t\t# warning messages on\n" :
95                          "-w-\t\t\t\t# warning messages off\n");
# Line 195 | Line 203 | main(int argc, char *argv[])
203          gargc = argc;
204                                          /* feature check only? */
205          strcat(RFeatureList, RCONTRIB_FEATURES);
206 <        if (!strcmp(argv[1], "-features"))
206 >        if (argc > 1 && !strcmp(argv[1], "-features"))
207                  return feature_status(argc-2, argv+2);
208 < #if defined(_WIN32) || defined(_WIN64)
209 <        _setmaxstdio(2048);             /* increase file limit to maximum */
208 > #if defined(_WIN32) || defined(_WIN64)  /* increase file limit to maximum */
209 >        for (i = 8192; i > _IOB_ENTRIES; i >>= 1)
210 >                if (_setmaxstdio(i) == i)
211 >                        break;
212   #endif
213                                          /* initialize calcomp routines early */
214          initfunc();
215          calcontext(RCCONTEXT);
216 +        esupport &= ~E_REDEFW;          /* temporary */
217                                          /* option city */
218          for (i = 1; i < argc; i++) {
219                                                  /* expand arguments */
# Line 281 | Line 292 | main(int argc, char *argv[])
292                          check(2,"s");
293                          curout = argv[++i];
294                          break;
284                case 'c':                       /* input rays per output */
285                        check(2,"i");
286                        accumulate = atoi(argv[++i]);
287                        break;
295                  case 'r':                       /* recover output */
296                          check_bool(2,recover);
297                          break;
# Line 295 | Line 302 | main(int argc, char *argv[])
302                          check(2,"s");
303                          set_eparams(prms = argv[++i]);
304                          break;
305 +                case 'c':                       /* sample count */
306 +                        check(2,"i");
307 +                        accumulate = atoi(argv[++i]);
308 +                        break;
309                  case 'b':                       /* bin expression/count */
310                          if (argv[i][2] == 'n') {
311                                  check(3,"s");
# Line 322 | Line 333 | main(int argc, char *argv[])
333          }
334          if (nmods <= 0)
335                  error(USER, "missing required modifier argument");
336 +        esupport |= E_REDEFW;
337                                          /* override some option settings */
338          override_options();
339 +                                        /* set/check spectral sampling */
340 +        if (setspectrsamp(CNDX, WLPART) < 0)
341 +                error(USER, "unsupported spectral sampling");
342                                          /* initialize object types */
343          initotypes();
344                                          /* initialize urand */
# Line 378 | Line 393 | main(int argc, char *argv[])
393          
394          rcontrib();                     /* trace ray contributions (loop) */
395  
381        ambsync();                      /* flush ambient file */
382
396          /* PMAP: free photon maps */
397          ray_done_pmap();    
398          
# Line 400 | Line 413 | badopt:
413  
414   void
415   wputs(                          /* warning output function */
416 <        char    *s
416 >        const char      *s
417   )
418   {
419          int  lasterrno = errno;
420 +        if (erract[WARNING].pf == NULL)
421 +                return;         /* called by calcomp or someone */
422          eputs(s);
423          errno = lasterrno;
424   }
# Line 411 | Line 426 | wputs(                         /* warning output function */
426  
427   void
428   eputs(                          /* put string to stderr */
429 <        char  *s
429 >        const char  *s
430   )
431   {
432          static int  midline = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines