| 1627 |
|
i /= myRCmanager.xres; |
| 1628 |
|
int xstart = myRCmanager.GetRowCount() - i*myRCmanager.xres; |
| 1629 |
|
i = myRCmanager.yres - i; |
| 1630 |
< |
while (i--) // compute pixel rows from yres down |
| 1631 |
< |
for (int x = xstart; x < myRCmanager.xres; xstart = 0, x++) { |
| 1630 |
> |
while (i--) { // compute pixel rows from top down |
| 1631 |
> |
for (int x = xstart; x < myRCmanager.xres; x++) { |
| 1632 |
|
report_progress(); |
| 1633 |
|
if (!viewRayBundle(rayarr, x, i)) |
| 1634 |
|
quit(1); |
| 1635 |
|
if (myRCmanager.ComputeRecord(rayarr) != myRCmanager.accum) |
| 1636 |
|
error(USER, "failed call to ComputeRecord()"); |
| 1637 |
|
} |
| 1638 |
+ |
xstart = 0; // all rows after first start at x=0 |
| 1639 |
+ |
} |
| 1640 |
|
} else if (sendfn == NULL) { // pass-through mode? |
| 1641 |
|
#ifdef getc_unlocked |
| 1642 |
|
flockfile(stdin); |
| 1648 |
|
error(SYSTEM, errmsg); |
| 1649 |
|
} |
| 1650 |
|
if (verby) { |
| 1651 |
< |
sprintf(errmsg, "computing %d rows in %d matrices\n", |
| 1652 |
< |
myRCmanager.GetRowMax()-i, nout); |
| 1651 |
> |
sprintf(errmsg, "computing %d%s rows in %d matrices\n", |
| 1652 |
> |
myRCmanager.GetRowMax()-i, i ? " remaining" : "", nout); |
| 1653 |
|
if (myRCmanager.accum > 1) |
| 1654 |
|
sprintf(errmsg+strlen(errmsg)-1, " with %d samples/row\n", |
| 1655 |
|
myRCmanager.accum); |
| 1668 |
|
} else { // else surface-sampling mode |
| 1669 |
|
i = myRCmanager.GetRowCount(); |
| 1670 |
|
if (verby) { |
| 1671 |
< |
sprintf(errmsg, "sampling %d directions in %d matrices with %d samples/direction\n", |
| 1672 |
< |
myRCmanager.yres-i, nout, myRCmanager.accum); |
| 1671 |
> |
sprintf(errmsg, "sampling %d%s directions in %d matrices with %d samples/direction\n", |
| 1672 |
> |
myRCmanager.yres-i, i ? " remaining" : "", |
| 1673 |
> |
nout, myRCmanager.accum); |
| 1674 |
|
if (sendparams.nsurfs > 1) |
| 1675 |
|
sprintf(errmsg+strlen(errmsg)-1, " (%d surface elements)\n", sendparams.nsurfs); |
| 1676 |
|
eputs(errmsg); |
| 1687 |
|
delete [] rayarr; |
| 1688 |
|
myRCmanager.FlushQueue(); |
| 1689 |
|
report_progress((report_intvl > 0) | verby); |
| 1690 |
< |
quit(0); /* waits on children */ |
| 1690 |
> |
quit(0); /* waits on any children */ |
| 1691 |
|
userr: |
| 1692 |
|
if (a < argc && argv[a][0] == '-') |
| 1693 |
|
fprintf(stderr, "%s: unsupported/misplaced option '%s'\n", progname, argv[a]); |