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

Comparing ray/src/rt/rcontrib.h (file contents):
Revision 2.9 by greg, Wed Aug 7 05:10:09 2013 UTC vs.
Revision 2.19 by greg, Wed Nov 15 18:02:53 2023 UTC

# Line 42 | Line 42 | extern long            waitflush;      /* how long until next flush *
42   extern RNUMBER          lastray;        /* last ray number sent */
43   extern RNUMBER          lastdone;       /* last ray processed */
44  
45 < typedef double          DCOLOR[3];      /* double-precision color */
45 > extern int              report_intvl;   /* reporting interval (seconds) */
46  
47 + typedef double          DCOLORV;        /* double-precision color type */
48 +
49   /*
50   * The MODCONT structure is used to accumulate ray contributions
51   * for a particular modifier, which may be subdivided into bins
# Line 51 | Line 53 | typedef double         DCOLOR[3];      /* double-precision color *
53   * be replaced with the modifier name.  If outspec contains a %d in it,
54   * this will be used to create one output file per bin, otherwise all bins
55   * will be written to the same file, in order.  If the global outfmt
56 < * is 'c', then a 4-byte RGBE pixel will be output for each bin value
57 < * and the file will conform to a RADIANCE image if xres & yres are set.
56 > * is 'c', then a common-exponent pixel will be output for each bin value
57 > * and the file will conform to a RADIANCE picture if NCSAMP==3 and
58 > * xres and yres are set.
59   */
60   typedef struct {
61          const char      *outspec;       /* output file specification */
62          const char      *modname;       /* modifier name */
63 +        const char      *params;        /* parameter list */
64          EPNODE          *binv;          /* bin value expression */
65 +        int             bin0;           /* starting bin offset */
66          int             nbins;          /* number of contribution bins */
67 <        DCOLOR          cbin[1];        /* contribution bins (extends struct) */
67 >        DCOLORV         cbin[1];        /* contribution bins (extends struct) */
68   } MODCONT;                      /* modifier contribution */
69  
70 + #define DCOLORSIZ       (sizeof(DCOLORV)*NCSAMP)
71 + #define mcsize(nb)      (sizeof(MODCONT)-sizeof(DCOLORV)+(nb)*DCOLORSIZ)
72 + #define mcbin(mp,bi)    ((mp)->cbin + (bi)*NCSAMP)
73 +
74   extern LUTAB            modconttab;     /* modifier contribution table */
75  
76   /*
# Line 78 | Line 87 | typedef struct {
87   extern LUTAB            ofiletab;       /* output stream table */
88  
89   #ifndef MAXPROCESS
90 < #ifdef _WIN32
90 > #if defined(_WIN32) || defined(_WIN64)
91   #define MAXPROCESS      1
92   #else
93   #define MAXPROCESS      128
94   #endif
95   #endif
96  
97 < #ifndef MAXMODLIST
89 < #define MAXMODLIST      2048            /* maximum modifiers we'll track */
90 < #endif
91 <
92 < extern const char       *modname[MAXMODLIST];   /* ordered modifier name list */
97 > extern char             **modname;              /* ordered modifier name list */
98   extern int              nmods;                  /* number of modifiers */
99 + extern int              modasiz;                /* allocated modifier array size */
100  
101   extern char             RCCONTEXT[];            /* special evaluation context */
102  
97 extern char             *formstr(int f);        /* return format identifier */
98
103   extern void             process_rcontrib(void); /* trace ray contributions */
104  
105   extern STREAMOUT *      getostream(const char *ospec, const char *mname,
# Line 105 | Line 109 | extern void            mod_output(MODCONT *mp);
109   extern void             end_record(void);
110  
111   extern MODCONT          *addmodifier(char *modn, char *outf,
112 <                                                char *binv, int bincnt);
112 >                                        char *prms, char *binv, int bincnt);
113   extern void             addmodfile(char *fname, char *outf,
114 <                                                char *binv, int bincnt);
114 >                                        char *prms, char *binv, int bincnt);
115  
116   extern void             reload_output(void);
117   extern void             recover_output(void);
# Line 118 | Line 122 | extern int             in_rchild(void);
122   extern void             end_children(int immed);
123  
124   extern void             put_zero_record(int ndx);
125 +
126 + extern int              morays(void);           /* reached end of input? */
127  
128   extern void             parental_loop(void);    /* controlling process */
129  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines