117 |
|
{ |
118 |
|
unsigned long vcount = (hresolu > 1) ? (unsigned long)hresolu*vresolu |
119 |
|
: (unsigned long)vresolu; |
120 |
< |
long nextflush = (vresolu > 0) & (hresolu > 1) ? 0 : hresolu; |
120 |
> |
long nextflush = (!vresolu | (hresolu <= 1)) * hresolu; |
121 |
|
int something2flush = 0; |
122 |
|
FILE *fp; |
123 |
|
double d; |
167 |
|
getvec(direc, inform, fp) == 0) { |
168 |
|
|
169 |
|
d = normalize(direc); |
170 |
< |
if (d == 0.0) { /* zero ==> flush */ |
171 |
< |
if ((--nextflush <= 0) | !vcount && something2flush) { |
170 |
> |
if (d == 0.0) { /* bogus ray */ |
171 |
> |
bogusray(); |
172 |
> |
/* flush request? */ |
173 |
> |
if (something2flush) { |
174 |
|
if (ray_pnprocs > 1 && ray_fifo_flush() < 0) |
175 |
|
error(USER, "child(ren) died"); |
174 |
– |
bogusray(); |
176 |
|
fflush(stdout); |
177 |
+ |
nextflush = (!vresolu | (hresolu <= 1)) * hresolu; |
178 |
|
something2flush = 0; |
179 |
< |
nextflush = (vresolu > 0) & (hresolu > 1) ? 0 : |
178 |
< |
hresolu; |
179 |
< |
} else |
180 |
< |
bogusray(); |
179 |
> |
} |
180 |
|
} else { /* compute and print */ |
181 |
|
rtcompute(orig, direc, lim_dist ? d : 0.0); |
182 |
|
/* flush if time */ |
266 |
|
break; |
267 |
|
case 'V': /* contribution */ |
268 |
|
*table++ = oputV; |
270 |
– |
castonly = 0; |
269 |
|
if (ambounce > 0 && (ambacc > FTINY || ambssamp > 0)) |
270 |
|
error(WARNING, |
271 |
|
"-otV accuracy depends on -aa 0 -as 0"); |