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

Comparing ray/src/hd/rhd_qtree.c (file contents):
Revision 3.17 by gregl, Thu Jan 1 13:00:15 1998 UTC vs.
Revision 3.22 by greg, Fri Jun 20 00:25:49 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1997 Silicon Graphics, Inc. */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ SGI";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   * Quadtree driver support routines.
6   */
# Line 31 | Line 28 | struct rleaves qtL;            /* our pile of leaves */
28  
29   int     rayqleft = 0;           /* rays left to queue before flush */
30  
31 < static int4     falleaves;      /* our list of fallen leaves */
31 > static int32    falleaves;      /* our list of fallen leaves */
32  
33   #define composted(li)   (qtL.bl <= qtL.tl ? \
34                                          ((li) < qtL.bl || (li) >= qtL.tl) : \
# Line 56 | Line 53 | newtwig()                      /* allocate a twig */
53          }
54          bi = nexttwig / TBUNDLESIZ;
55          if (twigbundle[bi] == NULL) {   /* new block */
56 <                twigbundle = (RTREE **)realloc((char *)twigbundle,
56 >                twigbundle = (RTREE **)realloc((void *)twigbundle,
57                                          (bi+2)*sizeof(RTREE *));
58                  if (twigbundle == NULL)
59                          goto memerr;
# Line 89 | Line 86 | int    really;
86          }
87                                  /* else "really" means free up memory */
88          for (i = 0; twigbundle[i] != NULL; i++)
89 <                free((char *)twigbundle[i]);
90 <        free((char *)twigbundle);
89 >                free((void *)twigbundle[i]);
90 >        free((void *)twigbundle);
91          twigbundle = NULL;
92   }
93  
94  
95 < #define LEAFSIZ         (3*sizeof(float)+sizeof(int4)+\
95 > #define LEAFSIZ         (3*sizeof(float)+sizeof(int32)+\
96                          sizeof(TMbright)+6*sizeof(BYTE))
97  
98   int
# Line 122 | Line 119 | register int   n;
119                  return(0);
120                                  /* assign larger alignment types earlier */
121          qtL.wp = (float (*)[3])qtL.base;
122 <        qtL.wd = (int4 *)(qtL.wp + n);
122 >        qtL.wd = (int32 *)(qtL.wp + n);
123          qtL.brt = (TMbright *)(qtL.wd + n);
124          qtL.chr = (BYTE (*)[3])(qtL.brt + n);
125          qtL.rgb = (BYTE (*)[3])(qtL.chr + n);
# Line 169 | Line 166 | int
166   qtCompost(pct)                  /* free up some leaves */
167   int     pct;
168   {
169 <        register int4   *fl;
169 >        register int32  *fl;
170          int     nused, nclear, nmapped;
171                                  /* figure out how many leaves to clear */
172          nclear = qtL.nl * pct / 100;
# Line 332 | Line 329 | dropit:
329   }
330  
331  
332 < dev_value(c, p, v)              /* add a pixel value to our quadtree */
332 > dev_value(c, d, p)              /* add a pixel value to our quadtree */
333   COLR    c;
334 < FVECT   p, v;
334 > FVECT   d, p;
335   {
336          register int    li;
337          int     mapit;
# Line 353 | Line 350 | FVECT  p, v;
350                          qtCompost(LFREEPCT);
351                  mapit = 0;                      /* we'll map it later */
352          }
353 <        VCOPY(qtL.wp[li], p);
354 <        qtL.wd[li] = encodedir(v);
355 <        tmCvColrs(&qtL.brt[li], qtL.chr[li], c, 1);
353 >        if (p == NULL)
354 >                VSUM(qtL.wp[li], odev.v.vp, d, FHUGE);
355 >        else
356 >                VCOPY(qtL.wp[li], p);
357 >        qtL.wd[li] = encodedir(d);
358 >        tmCvColrs(&qtL.brt[li], qtL.chr[li], (COLR *)c, 1);
359          if (putleaf(li, 1)) {
360                  if (mapit)
361 <                        tmMapPixels(qtL.rgb+li, qtL.brt+li, qtL.chr+li, 1);
361 >                        tmMapPixels((BYTE *)(qtL.rgb+li), qtL.brt+li,
362 >                                        (BYTE *)(qtL.chr+li), 1);
363                  if (--rayqleft == 0)
364                          dev_flush();            /* flush output */
365          }
# Line 409 | Line 410 | int    redo;
410                  if (tmComputeMapping(0., 0., 0.) != TM_E_OK)
411                          return(0);
412          }
413 <        if (tmMapPixels(qtL.rgb+aorg, qtL.brt+aorg,
414 <                        qtL.chr+aorg, alen) != TM_E_OK)
413 >        if (tmMapPixels((BYTE *)(qtL.rgb+aorg), qtL.brt+aorg,
414 >                        (BYTE *)(qtL.chr+aorg), alen) != TM_E_OK)
415                  return(0);
416          if (blen > 0)
417 <                tmMapPixels(qtL.rgb+borg, qtL.brt+borg,
418 <                                qtL.chr+borg, blen);
417 >                tmMapPixels((BYTE *)(qtL.rgb+borg), qtL.brt+borg,
418 >                                (BYTE *)(qtL.chr+borg), blen);
419          qtL.tml = qtL.tl;
420          return(1);
421   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines