151 |
|
for (li = 0; ndx >= ab->lat[li].nphis; li++) |
152 |
|
ndx -= ab->lat[li].nphis; |
153 |
|
SDmultiSamp(rx, 2, randX); |
154 |
< |
d = (1. - randX)*sq(cos(M_PI/180.*ab->lat[li].tmin)) + |
155 |
< |
randX*sq(cos(M_PI/180.*ab->lat[li+1].tmin)); |
154 |
> |
d = (1. - rx[0])*sq(cos(M_PI/180.*ab->lat[li].tmin)) + |
155 |
> |
rx[0]*sq(cos(M_PI/180.*ab->lat[li+1].tmin)); |
156 |
|
v[2] = d = sqrt(d); /* cos(pol) */ |
157 |
|
azi = 2.*M_PI*(ndx + rx[1] - .5)/ab->lat[li].nphis; |
158 |
|
d = sqrt(1. - d*d); /* sin(pol) */ |
298 |
|
if (dp->chroma == NULL) |
299 |
|
return 1; /* grayscale */ |
300 |
|
|
301 |
< |
c_decodeChroma(&cxy, dp->chroma[o*dp->ninc + i]); |
301 |
> |
c_decodeChroma(&cxy, mBSDF_chroma(dp,i,o)); |
302 |
|
c_toSharpRGB(&cxy, coef[0], coef); |
303 |
|
coef[0] *= mtx_RGB_coef[0]; |
304 |
|
coef[1] *= mtx_RGB_coef[1]; |
622 |
|
coef[c] = (coef[c] - min_coef[c]) / |
623 |
|
mtx_RGB_coef[c]; |
624 |
|
if (c_fromSharpRGB(coef, &cxy) > 1e-5) |
625 |
< |
sm->chroma[o*sm->ninc + i] = c_encodeChroma(&cxy); |
625 |
> |
mBSDF_chroma(sm,i,o) = c_encodeChroma(&cxy); |
626 |
|
mBSDF_value(sm,i,o) -= ymin; |
627 |
|
} |
628 |
|
/* return colored minimum */ |
849 |
|
reverse = 1; |
850 |
|
} |
851 |
|
cdlast = NULL; /* check for it in cache list */ |
852 |
+ |
/* PLACE MUTEX LOCK HERE FOR THREAD-SAFE */ |
853 |
|
for (cd = (SDMatCDst *)sdc->cdList; cd != NULL; |
854 |
|
cdlast = cd, cd = cd->next) |
855 |
|
if (cd->indx == myCD.indx && (cd->calen == myCD.calen) & |
873 |
|
cd->next = (SDMatCDst *)sdc->cdList; |
874 |
|
sdc->cdList = (SDCDst *)cd; |
875 |
|
} |
876 |
+ |
/* END MUTEX LOCK */ |
877 |
|
return (SDCDst *)cd; /* ready to go */ |
878 |
|
} |
879 |
|
|