41 |
|
static char *wrapBSDF[MAXCARG] = {"wrapBSDF", "-W", "-UU"}; |
42 |
|
static int wbsdfac = 3; |
43 |
|
|
44 |
< |
/* Add argument to wrapBSDF, allocating space if isstatic */ |
44 |
> |
/* Add argument to wrapBSDF, allocating space if !isstatic */ |
45 |
|
static void |
46 |
|
add_wbsdf(const char *arg, int isstatic) |
47 |
|
{ |
202 |
|
goto err; |
203 |
|
sum += sdv.cieY; |
204 |
|
if (rbf_colorimetry == RBCtristimulus) { |
205 |
– |
c_ccvt(&sdv.spec, C_CSXY); |
205 |
|
xsum += sdv.cieY * sdv.spec.cx; |
206 |
|
ysum += sdv.cieY * sdv.spec.cy; |
207 |
|
} |
251 |
|
goto err; |
252 |
|
sum += sdv.cieY; |
253 |
|
if (rbf_colorimetry == RBCtristimulus) { |
255 |
– |
c_ccvt(&sdv.spec, C_CSXY); |
254 |
|
xsum += sdv.cieY * sdv.spec.cx; |
255 |
|
ysum += sdv.cieY * sdv.spec.cy; |
256 |
|
} |
299 |
|
goto err; |
300 |
|
sum += sdv.cieY; |
301 |
|
if (rbf_colorimetry == RBCtristimulus) { |
304 |
– |
c_ccvt(&sdv.spec, C_CSXY); |
302 |
|
xsum += sdv.cieY * sdv.spec.cx; |
303 |
|
ysum += sdv.cieY * sdv.spec.cy; |
304 |
|
} |
348 |
|
goto err; |
349 |
|
sum += sdv.cieY; |
350 |
|
if (rbf_colorimetry == RBCtristimulus) { |
354 |
– |
c_ccvt(&sdv.spec, C_CSXY); |
351 |
|
xsum += sdv.cieY * sdv.spec.cx; |
352 |
|
ysum += sdv.cieY * sdv.spec.cy; |
353 |
|
} |
466 |
|
|
467 |
|
eval_rbfcol(&sdv, rbf, vout); |
468 |
|
sum += sdv.cieY; |
469 |
< |
if (XZarr != NULL) { |
474 |
< |
c_ccvt(&sdv.spec, C_CSXY); |
469 |
> |
if (rbf_colorimetry == RBCtristimulus) { |
470 |
|
xsum += sdv.cieY * sdv.spec.cx; |
471 |
|
ysum += sdv.cieY * sdv.spec.cy; |
472 |
|
} |
473 |
|
} |
474 |
|
n = j*abp->nangles + i; |
475 |
|
bsdfarr[n] = sum / npsamps; |
476 |
< |
if (XZarr != NULL) { |
476 |
> |
if (rbf_colorimetry == RBCtristimulus) { |
477 |
|
XZarr[n][0] = xsum*sum/(npsamps*ysum); |
478 |
|
XZarr[n][1] = (sum - xsum - ysum)*sum/(npsamps*ysum); |
479 |
|
} |
515 |
|
} |
516 |
|
} |
517 |
|
|
518 |
< |
#ifdef _WIN32 |
518 |
> |
#if defined(_WIN32) || defined(_WIN64) |
519 |
|
/* Execute wrapBSDF command (may never return) */ |
520 |
|
static int |
521 |
|
wrap_up(void) |
602 |
|
add_wbsdf("-f", 1); |
603 |
|
add_wbsdf(argv[i], 1); |
604 |
|
} else { |
605 |
< |
fcompile(argv[i]); |
605 |
> |
char *fpath = getpath(argv[i], |
606 |
> |
getrlibpath(), 0); |
607 |
> |
if (fpath == NULL) { |
608 |
> |
fprintf(stderr, |
609 |
> |
"%s: cannot find file '%s'\n", |
610 |
> |
argv[0], argv[i]); |
611 |
> |
return(1); |
612 |
> |
} |
613 |
> |
fcompile(fpath); |
614 |
|
single_plane_incident = 0; |
615 |
|
} |
616 |
|
} else |