131 |
|
DCHECK(count<=0 | nextsamp>=n, |
132 |
|
CONSISTENCY, "counter botch in odInit"); |
133 |
|
if (!i) count = j; |
134 |
+ |
odView[i].sfirst = nextsamp; |
135 |
|
while (j--) { /* initialize blocks & free lists */ |
136 |
|
odView[i].bmap[j].pthresh = FHUGE; |
137 |
|
odView[i].bmap[j].first = k = nextsamp; |
143 |
|
odS.nextfree(k-1) = ENDFREE; |
144 |
|
odView[i].bmap[j].nused = 0; |
145 |
|
} |
146 |
+ |
odView[i].snext = nextsamp; |
147 |
|
} |
148 |
|
CLR4ALL(odS.redraw, odS.nsamp); /* clear redraw flags */ |
149 |
|
for (i = odS.nsamp; i--; ) { /* clear values */ |
447 |
|
return; |
448 |
|
needmapping = 0; /* reset flag */ |
449 |
|
} |
450 |
< |
/* draw samples flagged for redraw */ |
451 |
< |
for (j = FL4NELS(odS.nsamp); j--; ) |
450 |
> |
/* this code segment was too slow */ |
451 |
> |
#if 0 |
452 |
> |
for (i = odView[vn].sfirst; i < odView[vn].snext; i++) |
453 |
> |
if (CHK4(odS.redraw, i)) { |
454 |
> |
odDrawSamp(vn, i); |
455 |
> |
CLR4(odS.redraw, i); |
456 |
> |
} |
457 |
> |
#endif |
458 |
> |
/* redraw samples at each end */ |
459 |
> |
for (i = odView[vn].sfirst; i < odView[vn].sfirst+31; i++) |
460 |
> |
if (CHK4(odS.redraw, i)) { |
461 |
> |
odDrawSamp(vn, i); |
462 |
> |
CLR4(odS.redraw, i); |
463 |
> |
} |
464 |
> |
for (i = odView[vn].snext-31; i < odView[vn].snext; i++) |
465 |
> |
if (CHK4(odS.redraw, i)) { |
466 |
> |
odDrawSamp(vn, i); |
467 |
> |
CLR4(odS.redraw, i); |
468 |
> |
} |
469 |
> |
/* faster flag checks in middle */ |
470 |
> |
for (j = odView[vn].snext>>5; j-- > (odView[vn].sfirst+0x1f)>>5; ) |
471 |
|
for (i = 0; odS.redraw[j]; i++) /* skips faster */ |
472 |
|
if (odS.redraw[j] & 1L<<i) { |
473 |
|
odDrawSamp(vn, (j<<5)+i); |
476 |
|
} |
477 |
|
|
478 |
|
|
479 |
+ |
/* this turned out to be unnecessary */ |
480 |
|
#if 0 |
481 |
|
static |
482 |
|
clip_end(p, o, vp) /* clip line segment to view */ |