44 |
|
|
45 |
|
extern int report_intvl; /* reporting interval (seconds) */ |
46 |
|
|
47 |
< |
typedef double DCOLOR[3]; /* double-precision color */ |
47 |
> |
typedef double DCOLORV; /* double-precision color type */ |
48 |
|
|
49 |
|
/* |
50 |
|
* The MODCONT structure is used to accumulate ray contributions |
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 */ |
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 |
|
/* |
94 |
|
#endif |
95 |
|
#endif |
96 |
|
|
97 |
< |
#ifndef MAXMODLIST |
93 |
< |
#define MAXMODLIST 10000 /* maximum modifiers we'll track */ |
94 |
< |
#endif |
95 |
< |
|
96 |
< |
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 */ |
100 |
– |
|
101 |
– |
extern char *formstr(int f); /* return format identifier */ |
102 |
|
|
103 |
|
extern void process_rcontrib(void); /* trace ray contributions */ |
104 |
|
|