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 |
|
* Routines for drawing samples using depth buffer checks. |
6 |
|
*/ |
7 |
|
|
8 |
|
#include "standard.h" |
9 |
|
|
13 |
– |
#include <sys/types.h> |
10 |
|
#include <GL/glx.h> |
11 |
|
#include <GL/glu.h> |
12 |
|
|
47 |
|
|
48 |
|
|
49 |
|
#define SAMP32 (32*(2*sizeof(short)+sizeof(union ODfunion)+sizeof(TMbright)+\ |
50 |
< |
6*sizeof(BYTE))+sizeof(int4)) |
50 |
> |
6*sizeof(BYTE))+sizeof(int32)) |
51 |
|
|
52 |
|
int |
53 |
|
odInit(n) /* initialize drawing routines */ |
58 |
|
|
59 |
|
if (odNViews > 0) { /* deallocate view structures */ |
60 |
|
for (i = odNViews; i--; ) { |
61 |
< |
free((char *)odView[i].bmap); |
62 |
< |
free((char *)odView[i].pmap); |
61 |
> |
free((void *)odView[i].bmap); |
62 |
> |
free((void *)odView[i].pmap); |
63 |
|
if (odView[i].emap != NULL) |
64 |
< |
free((char *)odView[i].emap); |
64 |
> |
free((void *)odView[i].emap); |
65 |
|
} |
66 |
< |
free((char *)odView); |
66 |
> |
free((void *)odView); |
67 |
|
odView = NULL; |
68 |
|
odNViews = 0; |
69 |
|
} |
87 |
|
return(0); |
88 |
|
/* assign larger alignment types earlier */ |
89 |
|
odS.f = (union ODfunion *)odS.base; |
90 |
< |
odS.redraw = (int4 *)(odS.f + n); |
90 |
> |
odS.redraw = (int32 *)(odS.f + n); |
91 |
|
odS.ip = (short (*)[2])(odS.redraw + n/32); |
92 |
|
odS.brt = (TMbright *)(odS.ip + n); |
93 |
|
odS.chr = (BYTE (*)[3])(odS.brt + n); |
117 |
|
if (odView[i].vlow < 1) odView[i].vlow = 1; |
118 |
|
odView[i].emap = NULL; |
119 |
|
odView[i].dmap = NULL; |
120 |
< |
odView[i].pmap = (int4 *)calloc(FL4NELS(res[0]*res[1]), |
121 |
< |
sizeof(int4)); |
120 |
> |
odView[i].pmap = (int32 *)calloc(FL4NELS(res[0]*res[1]), |
121 |
> |
sizeof(int32)); |
122 |
|
if (odView[i].pmap == NULL) |
123 |
|
return(0); |
124 |
|
j = odView[i].hlow*odView[i].vlow; |
297 |
|
if (id < 0) |
298 |
|
continue; /* not good enough */ |
299 |
|
/* convert color */ |
300 |
< |
tmCvColrs(&odS.brt[id], odS.chr[id], c, 1); |
300 |
> |
tmCvColrs(&odS.brt[id], odS.chr[id], (COLR *)c, 1); |
301 |
|
if (imm_mode | needmapping) /* if immediate mode */ |
302 |
|
needmapping |= NEWRGB; /* map it later */ |
303 |
|
else /* else map it now */ |
378 |
|
if (vn<0 | vn>=odNViews) |
379 |
|
return; /* too late -- they're gone! */ |
380 |
|
if (odView[vn].emap != NULL) |
381 |
< |
free((char *)odView[vn].emap); |
381 |
> |
free((void *)odView[vn].emap); |
382 |
|
odView[vn].emap = NULL; |
383 |
|
odView[vn].dmap = NULL; |
384 |
|
return; |
387 |
|
"bad view number in odDepthMap"); |
388 |
|
odView[vn].dmap = dm; /* initialize edge map */ |
389 |
|
if (odView[vn].emap == NULL) { |
390 |
< |
odView[vn].emap = (int4 *)malloc( |
391 |
< |
FL4NELS(odView[vn].hlow*odView[vn].vlow)*sizeof(int4)); |
390 |
> |
odView[vn].emap = (int32 *)malloc( |
391 |
> |
FL4NELS(odView[vn].hlow*odView[vn].vlow)*sizeof(int32)); |
392 |
|
if (odView[vn].emap == NULL) |
393 |
|
error(SYSTEM, "out of memory in odDepthMap"); |
394 |
|
} |
461 |
|
needmapping &= ~NEWMAP; |
462 |
|
odRedrawAll(); /* redraw everything */ |
463 |
|
} |
464 |
< |
if (tmMapPixels(odS.rgb,odS.brt,odS.chr,odS.nsamp) != TM_E_OK) |
464 |
> |
if (tmMapPixels((BYTE *)(odS.rgb), odS.brt, |
465 |
> |
(BYTE *)(odS.chr), odS.nsamp) != TM_E_OK) |
466 |
|
return; |
467 |
|
needmapping &= ~NEWRGB; |
468 |
|
} |