ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhd_odraw.c
(Generate patch)

Comparing ray/src/hd/rhd_odraw.c (file contents):
Revision 3.4 by gwlarson, Mon Dec 21 14:05:43 1998 UTC vs.
Revision 3.5 by gwlarson, Tue Dec 22 17:05:54 1998 UTC

# Line 131 | Line 131 | int    n;
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;
# Line 142 | Line 143 | int    n;
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 */
# Line 445 | Line 447 | int    vn;
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);
# Line 455 | Line 476 | int    vn;
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 */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines