| 1 |
– |
/* Copyright (c) 1998 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 |
|
*/ |
| 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) : \ |
| 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; |
| 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 |
| 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); |
| 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; |
| 355 |
|
else |
| 356 |
|
VCOPY(qtL.wp[li], p); |
| 357 |
|
qtL.wd[li] = encodedir(d); |
| 358 |
< |
tmCvColrs(&qtL.brt[li], qtL.chr[li], c, 1); |
| 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 |
|
} |
| 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 |
|
} |