| 418 |
|
doneSamples |= doneMap; |
| 419 |
|
} // compute required ray samples |
| 420 |
|
for (x = y = 0; sampMap.Find(&x, &y); x++) |
| 421 |
< |
if (!ComputePixel(x, y)) |
| 421 |
> |
if (!ComputePixel(x, y)) { |
| 422 |
> |
sprintf(errmsg, "ComputePixel(%d,%d) failed", x, y); |
| 423 |
> |
error(WARNING, errmsg); |
| 424 |
|
return false; |
| 425 |
+ |
} |
| 426 |
|
doneSamples |= sampMap; // samples now done or at least queued |
| 427 |
|
sp2 -= layer++ & 1; // next denser sampling |
| 428 |
|
} |
| 429 |
< |
if (FlushQueue() < 0) // make sure we got everyone |
| 429 |
> |
if (FlushQueue() < 0) // compute stragglers |
| 430 |
|
return false; |
| 428 |
– |
x = y = 0; |
| 429 |
– |
if (doneMap.Find(&x, &y, false)) { |
| 430 |
– |
sprintf(errmsg, "missed %.4f%% of pixels in rectangle\n", |
| 431 |
– |
100. - 100.*doneMap.SumTotal() / |
| 432 |
– |
doneMap.Width() / doneMap.Height()); |
| 433 |
– |
error(WARNING, errmsg); |
| 434 |
– |
} |
| 431 |
|
if ((prCB != NULL) & (barPix == NULL)) |
| 432 |
|
(*prCB)(100.); |
| 433 |
|
return true; |
| 589 |
|
error(WARNING, "spectral range incompatible with color output"); |
| 590 |
|
COLORV ** parr = NULL; // set up tiny source drawing |
| 591 |
|
float ** zarr = NULL; |
| 592 |
< |
if (!ptvw.type && directvis && dblur <= FTINY) { |
| 592 |
> |
if (!ptvw.type && directvis && (dblur <= FTINY) & (mblur <= FTINY)) { |
| 593 |
|
parr = new COLORV * [THeight()]; |
| 594 |
|
zarr = new float * [THeight()]; |
| 595 |
|
for (int n = THeight(); n-- > 0; ) { |
| 605 |
|
(*prCB)(100.*(GetHeight()-ytop)/GetHeight()); |
| 606 |
|
if (!RenderRect(0, THeight()-ytop)) // render this bar |
| 607 |
|
return false; |
| 608 |
< |
int nlines = lastOut - ytop + THeight(); |
| 608 |
> |
int nlines = lastOut - ytop + vstep; |
| 609 |
|
if (nlines > ytop) |
| 610 |
|
nlines = ytop; |
| 611 |
|
else if (parr) // drawing sources? |
| 706 |
|
if (frameNo > 0) |
| 707 |
|
fprintf(pdfp[0], "FRAME=%d\n", frameNo); |
| 708 |
|
double pasp = viewaspect(&vw) * GetWidth() / GetHeight(); |
| 709 |
< |
if ((0.99 > pasp) | (pasp > 1.01)) |
| 709 |
> |
if ((0.999 > pasp) | (pasp > 1.001)) |
| 710 |
|
fputaspect(pasp, pdfp[0]); |
| 711 |
|
fputnow(pdfp[0]); |
| 712 |
|
switch (RDTcolorT(dt)) { // set primaries and picture format |
| 815 |
|
if (!RenderBelow(GetHeight(), vstep, pdfp[0], dt, pdfp[1])) { |
| 816 |
|
fclose(pdfp[0]); |
| 817 |
|
if (pdfp[1]) (dfname[0] == '!') ? pclose(pdfp[1]) : fclose(pdfp[1]); |
| 822 |
– |
Cleanup(); |
| 818 |
|
return RDTnone; |
| 819 |
|
} |
| 820 |
|
NewBar(); // clean up and return |
| 1183 |
|
if (!RenderBelow(GetHeight()-doneScans, vstep, pdfp[0], dt, pdfp[1])) { |
| 1184 |
|
fclose(pdfp[0]); |
| 1185 |
|
if (pdfp[1]) fclose(pdfp[1]); |
| 1191 |
– |
Cleanup(); |
| 1186 |
|
return RDTnone; |
| 1187 |
|
} |
| 1188 |
|
NewBar(); // close up and return success |