| 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; |
| 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 |