50 |
|
#endif |
51 |
|
#endif |
52 |
|
#ifndef SORT_INTVL |
53 |
< |
#define SORT_INTVL (SORT_THRESH*256) |
53 |
> |
#define SORT_INTVL (SORT_THRESH<<1) |
54 |
|
#endif |
55 |
|
#ifndef MAX_SORT_INTVL |
56 |
< |
#define MAX_SORT_INTVL (SORT_INTVL<<4) |
56 |
> |
#define MAX_SORT_INTVL (SORT_INTVL<<6) |
57 |
|
#endif |
58 |
|
|
59 |
|
static COLOR avsum = BLKCOLOR; /* computed ambient value sum */ |
77 |
|
#define newambval() (AMBVAL *)bmalloc(sizeof(AMBVAL)) |
78 |
|
|
79 |
|
extern long ftell(), lseek(); |
80 |
< |
static int initambfile(), avsave(), avinsert(), sortambvals(); |
80 |
> |
static int initambfile(), avsave(), avinsert(), sortambvals(), avlmemi(); |
81 |
|
static AMBVAL *avstore(); |
82 |
|
#ifdef F_SETLKW |
83 |
|
static aflock(); |
144 |
|
pos += (long)nambvals*AMBVALSIZ; |
145 |
|
flen = lseek(fileno(ambfp), 0L, 2); |
146 |
|
if (flen != pos) { |
147 |
< |
error(WARNING, |
147 |
> |
sprintf(errmsg, |
148 |
|
"ignoring last %ld values in ambient file (corrupted)", |
149 |
|
(flen - pos)/AMBVALSIZ); |
150 |
+ |
error(WARNING, errmsg); |
151 |
|
fseek(ambfp, pos, 0); |
152 |
|
ftruncate(fileno(ambfp), pos); |
153 |
|
} |
211 |
|
goto dumbamb; |
212 |
|
return; |
213 |
|
} |
214 |
< |
/* resort memory? */ |
215 |
< |
sortambvals(0); |
214 |
> |
|
215 |
> |
if (tracktime) /* sort to minimize thrashing */ |
216 |
> |
sortambvals(0); |
217 |
|
/* get ambient value */ |
218 |
|
setcolor(acol, 0.0, 0.0, 0.0); |
219 |
|
d = sumambient(acol, r, nrm, rdepth, |
259 |
|
/* do this node */ |
260 |
|
for (av = at->alist; av != NULL; av = av->next) { |
261 |
|
if (tracktime) |
262 |
< |
av->latick = ambclock++; |
262 |
> |
av->latick = ambclock; |
263 |
|
/* |
264 |
|
* Ambient level test. |
265 |
|
*/ |
404 |
|
setbuf(ambfp, bmalloc(BUFSIZ+8)); |
405 |
|
if (creat) { /* new file */ |
406 |
|
newheader("RADIANCE", ambfp); |
407 |
< |
fprintf(ambfp, "%s -av %g %g %g -ab %d -aa %g ", |
407 |
> |
fprintf(ambfp, "%s -av %g %g %g -aw %d -ab %d -aa %g ", |
408 |
|
progname, colval(ambval,RED), |
409 |
|
colval(ambval,GRN), colval(ambval,BLU), |
410 |
< |
ambounce, ambacc); |
410 |
> |
ambvwt, ambounce, ambacc); |
411 |
|
fprintf(ambfp, "-ad %d -as %d -ar %d %s\n", |
412 |
|
ambdiv, ambssamp, ambres, |
413 |
|
octname==NULL ? "" : octname); |
618 |
|
AMBVAL tav, *tap, *pnext; |
619 |
|
register int i, j; |
620 |
|
/* see if it's time yet */ |
621 |
< |
if (!always && (ambclock < lastsort+sortintvl || |
621 |
> |
if (!always && (ambclock++ < lastsort+sortintvl || |
622 |
|
nambvals < SORT_THRESH)) |
623 |
|
return; |
624 |
|
/* |