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.20 by greg, Tue Feb 16 20:06:06 2021 UTC vs.
Revision 2.36 by greg, Fri Apr 5 16:41:17 2024 UTC

# Line 53 | Line 53 | 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 +                                "OutputCS=RGB,spec\n"
63 + #else
64 + #define RCONTRIB_FEATURES       "Multiprocessing\n" \
65 +                                "Accumulation\nSummation\nRecovery\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
74   printdefaults(void)                     /* print default values to stdout */
# Line 68 | 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          printf(erract[WARNING].pf != NULL ?
# Line 183 | Line 199 | main(int argc, char *argv[])
199          progname = argv[0] = fixargv0(argv[0]);
200          gargv = argv;
201          gargc = argc;
202 < #if defined(_WIN32) || defined(_WIN64)
203 <        _setmaxstdio(2048);             /* increase file limit to maximum */
202 >                                        /* feature check only? */
203 >        strcat(RFeatureList, RCONTRIB_FEATURES);
204 >        if (argc > 1 && !strcmp(argv[1], "-features"))
205 >                return feature_status(argc-2, argv+2);
206 > #if defined(_WIN32) || defined(_WIN64)  /* increase file limit to maximum */
207 >        for (i = 8192; i > _IOB_ENTRIES; i >>= 1)
208 >                if (_setmaxstdio(i) == i)
209 >                        break;
210   #endif
211                                          /* initialize calcomp routines early */
212          initfunc();
213 <        setcontext(RCCONTEXT);
213 >        calcontext(RCCONTEXT);
214                                          /* option city */
215          for (i = 1; i < argc; i++) {
216                                                  /* expand arguments */
# Line 267 | Line 289 | main(int argc, char *argv[])
289                          check(2,"s");
290                          curout = argv[++i];
291                          break;
270                case 'c':                       /* input rays per output */
271                        check(2,"i");
272                        accumulate = atoi(argv[++i]);
273                        break;
292                  case 'r':                       /* recover output */
293                          check_bool(2,recover);
294                          break;
# Line 281 | Line 299 | main(int argc, char *argv[])
299                          check(2,"s");
300                          set_eparams(prms = argv[++i]);
301                          break;
302 +                case 'c':                       /* sample count */
303 +                        check(2,"i");
304 +                        accumulate = atoi(argv[++i]);
305 +                        break;
306                  case 'b':                       /* bin expression/count */
307                          if (argv[i][2] == 'n') {
308                                  check(3,"s");
# Line 310 | Line 332 | main(int argc, char *argv[])
332                  error(USER, "missing required modifier argument");
333                                          /* override some option settings */
334          override_options();
335 +                                        /* set/check spectral sampling */
336 +        if (setspectrsamp(CNDX, WLPART) < 0)
337 +                error(USER, "unsupported spectral sampling");
338                                          /* initialize object types */
339          initotypes();
340                                          /* initialize urand */
# Line 386 | Line 411 | badopt:
411  
412   void
413   wputs(                          /* warning output function */
414 <        char    *s
414 >        const char      *s
415   )
416   {
417          int  lasterrno = errno;
# Line 397 | Line 422 | wputs(                         /* warning output function */
422  
423   void
424   eputs(                          /* put string to stderr */
425 <        char  *s
425 >        const char  *s
426   )
427   {
428          static int  midline = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines