--- ray/src/hd/rhd_odraw.c 1998/12/23 17:42:24 3.6 +++ ray/src/hd/rhd_odraw.c 1998/12/24 08:12:57 3.8 @@ -466,17 +466,12 @@ int vn; CLR4(odS.redraw, i); } #else - /* redraw samples at each end */ + /* redraw samples at beginning */ for (i = odView[vn].sfirst; i < odView[vn].sfirst+31; i++) if (CHK4(odS.redraw, i)) { odDrawSamp(vn, i); CLR4(odS.redraw, i); } - for (i = odView[vn].snext-31; i < odView[vn].snext; i++) - if (CHK4(odS.redraw, i)) { - odDrawSamp(vn, i); - CLR4(odS.redraw, i); - } /* faster flag checks in middle */ for (j = odView[vn].snext>>5; j-- > (odView[vn].sfirst+0x1f)>>5; ) for (i = 0; odS.redraw[j]; i++) /* skips faster */ @@ -484,6 +479,12 @@ int vn; odDrawSamp(vn, (j<<5)+i); odS.redraw[j] &= ~(1L< rise2) { - if (depthchange(vp, x, y, x+xstep, y)) - break; x += xstep; rise2 += rise; - } else { - if (depthchange(vp, x, y, x, y+ystep)) + if (depthchange(vp, x-xstep, y, x, y)) break; + } else { y += ystep; run2 += run; + if (depthchange(vp, x, y-ystep, x, y)) + break; } if (n < 0) /* found something? */ return; @@ -628,10 +629,12 @@ blockedge(vp, bi0, bi1) /* check for edge between bl register struct ODview *vp; register int bi0, bi1; { + if (bi1 == bi0) + return(0); /* same block */ if (bi1 < 0) return(1); /* end off view */ if (CHK4(vp->emap, bi1)) - return(1); /* end has edges */ + return(1); /* end block has edges */ if (bi1 == bi0+1 || bi1 == bi0-1 || bi1 == bi0+vp->hlow || bi1 == bi0-vp->hlow) return(0); /* end in adjacent block -- no edges */