47 |
|
/* Cache of loaded BSDFs */ |
48 |
|
struct SDCache_s *SDcacheList = NULL; |
49 |
|
|
50 |
< |
/* Retain BSDFs in cache list */ |
50 |
> |
/* Retain BSDFs in cache list? */ |
51 |
|
int SDretainSet = SDretainNone; |
52 |
|
|
53 |
+ |
/* Maximum cache size for any given BSDF? */ |
54 |
+ |
unsigned long SDmaxCache = 0; /* 0 == unlimited */ |
55 |
+ |
|
56 |
|
/* Report any error to the indicated stream */ |
57 |
|
SDError |
58 |
|
SDreportError(SDError ec, FILE *fp) |
518 |
|
c_cmix(&sv->spec, d, &sv->spec, coef[n], &sdc->cspec[n]); |
519 |
|
d += coef[n]; |
520 |
|
} |
521 |
< |
/* make sure everything is set */ |
519 |
< |
c_ccvt(&sv->spec, C_CSXY+C_CSSPEC); |
521 |
> |
c_ccvt(&sv->spec, C_CSXY); /* make sure (x,y) is set */ |
522 |
|
return SDEnone; |
523 |
|
} |
524 |
|
|
648 |
|
} else if (!(inFront | outFront)) { |
649 |
|
*sv = sd->rLambBack; |
650 |
|
sdf = sd->rb; |
651 |
< |
} else if (outFront) { |
651 |
> |
} else if (inFront) { |
652 |
|
*sv = sd->tLamb; |
653 |
|
sdf = (sd->tf != NULL) ? sd->tf : sd->tb; |
654 |
< |
} else /* inFront & !outFront */ { |
654 |
> |
} else /* outFront & !inFront */ { |
655 |
|
*sv = sd->tLamb; |
656 |
|
sdf = (sd->tb != NULL) ? sd->tb : sd->tf; |
657 |
|
} |
667 |
|
sv->cieY += coef[nch]; |
668 |
|
} |
669 |
|
} |
670 |
< |
/* make sure everything is set */ |
669 |
< |
c_ccvt(&sv->spec, C_CSXY+C_CSSPEC); |
670 |
> |
c_ccvt(&sv->spec, C_CSXY); /* make sure (x,y) is set */ |
671 |
|
return SDEnone; |
672 |
|
} |
673 |
|
|
792 |
|
randX -= sd->tLamb.cieY; |
793 |
|
} |
794 |
|
/* else one of cumulative dist. */ |
795 |
< |
for (i = 0; i < n && randX > cdarr[i]->cTotal; i++) |
795 |
> |
for (i = 0; i < n && randX >= cdarr[i]->cTotal; i++) |
796 |
|
randX -= cdarr[i]->cTotal; |
797 |
|
if (i >= n) |
798 |
|
return SDEinternal; |
817 |
|
done: |
818 |
|
if (cdarr != NULL) |
819 |
|
free(cdarr); |
820 |
< |
/* make sure everything is set */ |
820 |
< |
c_ccvt(&sv->spec, C_CSXY+C_CSSPEC); |
820 |
> |
c_ccvt(&sv->spec, C_CSXY); /* make sure (x,y) is set */ |
821 |
|
return SDEnone; |
822 |
|
} |
823 |
|
|