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.19 by greg, Wed Sep 9 21:28:19 2020 UTC vs.
Revision 2.33 by greg, Fri Nov 17 20:02:07 2023 UTC

# Line 45 | Line 45 | int    lim_dist = 0;                   /* limit distance? */
45  
46   int     report_intvl = 0;               /* reporting interval (seconds) */
47  
48 < const char      *modname[MAXMODLIST];   /* ordered modifier name list */
49 < int             nmods = 0;              /* number of modifiers */
48 > char    **modname = NULL;               /* ordered modifier name list */
49 > int     nmods = 0;                      /* number of modifiers */
50 > int     modasiz = 0;                    /* allocated modifier array size */
51  
52   void    (*addobjnotify[8])() = {ambnotify, NULL};
53  
54   char    RCCONTEXT[] = "RC.";            /* our special evaluation context */
55  
56 + #if defined(_WIN32) || defined(_WIN64)
57 + #define RCONTRIB_FEATURES       "Accumulation\nSummation\nRecovery\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 + #else
63 + #define RCONTRIB_FEATURES       "Multiprocessing\n" \
64 +                                "Accumulation\nSummation\nRecovery\n" \
65 +                                "ImmediateIrradiance\n" \
66 +                                "ProgressReporting\nDistanceLimiting\n" \
67 +                                "InputFormats=a,f,d\nOutputFormats=a,f,d,c\n" \
68 +                                "Outputs=V,W\n"
69 + #endif
70  
71   static void
72   printdefaults(void)                     /* print default values to stdout */
# Line 67 | Line 82 | printdefaults(void)                    /* print default values to stdou
82          printf("-y %-9d\t\t\t# y resolution\n", yres);
83          printf(lim_dist ? "-ld+\t\t\t\t# limit distance on\n" :
84                          "-ld-\t\t\t\t# limit distance off\n");
85 <        printf("-h%c\t\t\t\t# %s header\n", header ? '+' : '-',
86 <                        header ? "output" : "no");
85 >        printf(header ? "-h+\t\t\t\t# output header\n" :
86 >                        "-h-\t\t\t\t# no header\n");
87          printf("-f%c%c\t\t\t\t# format input/output = %s/%s\n",
88                          inpfmt, outfmt, formstr(inpfmt), formstr(outfmt));
89          printf(erract[WARNING].pf != NULL ?
# Line 182 | Line 197 | main(int argc, char *argv[])
197          progname = argv[0] = fixargv0(argv[0]);
198          gargv = argv;
199          gargc = argc;
200 < #if defined(_WIN32) || defined(_WIN64)
201 <        _setmaxstdio(2048);             /* increase file limit to maximum */
200 >                                        /* feature check only? */
201 >        strcat(RFeatureList, RCONTRIB_FEATURES);
202 >        if (argc > 1 && !strcmp(argv[1], "-features"))
203 >                return feature_status(argc-2, argv+2);
204 > #if defined(_WIN32) || defined(_WIN64)  /* increase file limit to maximum */
205 >        for (i = 8192; i > _IOB_ENTRIES; i >>= 1)
206 >                if (_setmaxstdio(i) == i)
207 >                        break;
208   #endif
209                                          /* initialize calcomp routines early */
210          initfunc();
211 <        setcontext(RCCONTEXT);
211 >        calcontext(RCCONTEXT);
212                                          /* option city */
213          for (i = 1; i < argc; i++) {
214                                                  /* expand arguments */
# Line 266 | Line 287 | main(int argc, char *argv[])
287                          check(2,"s");
288                          curout = argv[++i];
289                          break;
269                case 'c':                       /* input rays per output */
270                        check(2,"i");
271                        accumulate = atoi(argv[++i]);
272                        break;
290                  case 'r':                       /* recover output */
291                          check_bool(2,recover);
292                          break;
# Line 280 | Line 297 | main(int argc, char *argv[])
297                          check(2,"s");
298                          set_eparams(prms = argv[++i]);
299                          break;
300 +                case 'c':                       /* sample count */
301 +                        check(2,"i");
302 +                        accumulate = atoi(argv[++i]);
303 +                        break;
304                  case 'b':                       /* bin expression/count */
305                          if (argv[i][2] == 'n') {
306                                  check(3,"s");
# Line 385 | Line 406 | badopt:
406  
407   void
408   wputs(                          /* warning output function */
409 <        char    *s
409 >        const char      *s
410   )
411   {
412          int  lasterrno = errno;
# Line 396 | Line 417 | wputs(                         /* warning output function */
417  
418   void
419   eputs(                          /* put string to stderr */
420 <        char  *s
420 >        const char  *s
421   )
422   {
423          static int  midline = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines