5 |
|
* Quadtree driver support routines. |
6 |
|
*/ |
7 |
|
|
8 |
+ |
#include <string.h> |
9 |
+ |
|
10 |
|
#include "standard.h" |
11 |
|
#include "rhd_qtree.h" |
12 |
|
/* quantity of leaves to free at a time */ |
30 |
|
|
31 |
|
int rayqleft = 0; /* rays left to queue before flush */ |
32 |
|
|
33 |
< |
static int4 falleaves; /* our list of fallen leaves */ |
33 |
> |
static int32 falleaves; /* our list of fallen leaves */ |
34 |
|
|
35 |
|
#define composted(li) (qtL.bl <= qtL.tl ? \ |
36 |
|
((li) < qtL.bl || (li) >= qtL.tl) : \ |
83 |
|
nexttwig = 0; |
84 |
|
if (!really) { /* just clear allocated blocks */ |
85 |
|
while (i--) |
86 |
< |
bzero((char *)twigbundle[i], TBUNDLESIZ*sizeof(RTREE)); |
86 |
> |
memset((char *)twigbundle[i], '\0', TBUNDLESIZ*sizeof(RTREE)); |
87 |
|
return; |
88 |
|
} |
89 |
|
/* else "really" means free up memory */ |
94 |
|
} |
95 |
|
|
96 |
|
|
97 |
< |
#define LEAFSIZ (3*sizeof(float)+sizeof(int4)+\ |
97 |
> |
#define LEAFSIZ (3*sizeof(float)+sizeof(int32)+\ |
98 |
|
sizeof(TMbright)+6*sizeof(BYTE)) |
99 |
|
|
100 |
|
int |
121 |
|
return(0); |
122 |
|
/* assign larger alignment types earlier */ |
123 |
|
qtL.wp = (float (*)[3])qtL.base; |
124 |
< |
qtL.wd = (int4 *)(qtL.wp + n); |
124 |
> |
qtL.wd = (int32 *)(qtL.wp + n); |
125 |
|
qtL.brt = (TMbright *)(qtL.wd + n); |
126 |
|
qtL.chr = (BYTE (*)[3])(qtL.brt + n); |
127 |
|
qtL.rgb = (BYTE (*)[3])(qtL.chr + n); |
168 |
|
qtCompost(pct) /* free up some leaves */ |
169 |
|
int pct; |
170 |
|
{ |
171 |
< |
register int4 *fl; |
171 |
> |
register int32 *fl; |
172 |
|
int nused, nclear, nmapped; |
173 |
|
/* figure out how many leaves to clear */ |
174 |
|
nclear = qtL.nl * pct / 100; |