--- ray/src/hd/rhpict2.c 2003/02/22 02:07:25 3.10 +++ ray/src/hd/rhpict2.c 2003/07/27 22:12:02 3.14 @@ -1,10 +1,12 @@ #ifndef lint -static const char RCSid[] = "$Id: rhpict2.c,v 3.10 2003/02/22 02:07:25 greg Exp $"; +static const char RCSid[] = "$Id: rhpict2.c,v 3.14 2003/07/27 22:12:02 schorsch Exp $"; #endif /* * Rendering routines for rhpict. */ +#include + #include "holo.h" #include "view.h" #include "random.h" @@ -35,10 +37,10 @@ static const char RCSid[] = "$Id: rhpict2.c,v 3.10 200 #define CLR4(f,i) FL4OP(f,i,&=~) #define TGL4(f,i) FL4OP(f,i,^=) #define FL4NELS(n) (((n)+0x1f)>>5) -#define CLR4ALL(f,n) bzero((char *)(f),FL4NELS(n)*sizeof(int4)) +#define CLR4ALL(f,n) memset((char *)(f),'\0',FL4NELS(n)*sizeof(int32)) #endif -static int4 *pixFlags; /* pixel occupancy flags */ +static int32 *pixFlags; /* pixel occupancy flags */ static float pixWeight[MAXRAD2]; /* pixel weighting function */ static short isqrttab[MAXRAD2]; /* integer square root table */ @@ -51,6 +53,7 @@ extern float *mydepth; /* depth values (visibility cul extern int hres, vres; /* current horizontal and vertical res. */ +void pixBeam(bp, hb) /* render a particular beam */ BEAM *bp; register HDBEAMI *hb; @@ -61,7 +64,7 @@ register HDBEAMI *hb; double d, prox; COLOR col; int n; - register int4 p; + register int32 p; if (!hdbcoord(gc, hb->h, hb->b)) error(CONSISTENCY, "bad beam in render_beam"); @@ -118,7 +121,7 @@ int n; short forequad[2][2]; int d; register int i; - register int4 p; + register int32 p; if (n <= 0) { #ifdef DEBUG @@ -152,7 +155,7 @@ int n; COLOR mykern[MAXRAD2]; int maxr2; double d; - register int4 p; + register int32 p; register int r2; int i, r, maxr, h2, v2; @@ -213,7 +216,7 @@ double *rf; { float rnt[NNEIGH]; double rvar; - register int4 p, pn; + register int32 p, pn; register int ni; if (n <= 0) @@ -256,10 +259,10 @@ double ransamp; reset_flags() /* allocate/set/reset occupancy flags */ { - register int4 p; + register int32 p; if (pixFlags == NULL) { - pixFlags = (int4 *)calloc(FL4NELS(hres*vres), sizeof(int4)); + pixFlags = (int32 *)calloc(FL4NELS(hres*vres), sizeof(int32)); CHECK(pixFlags==NULL, SYSTEM, "out of memory in reset_flags"); } else CLR4ALL(pixFlags, hres*vres); @@ -298,13 +301,13 @@ register short (*rnl)[NNEIGH]; nd[NNEIGH-1] = MAXRAD2; for (hoff = 0; hoff < hres; hoff = (hoff<=0) - hoff) { h2 = h + hoff; - if (h2 < 0 | h2 >= hres) + if ((h2 < 0) | (h2 >= hres)) continue; if ((h2-h)*(h2-h) >= nd[NNEIGH-1]) break; for (n = 0; n < NNEIGH && rnl[h2][n] < NINF; n++) { d = (h2-h)*(h2-h) + (v-rnl[h2][n])*(v-rnl[h2][n]); - if (d == 0 | d >= nd[NNEIGH-1]) + if ((d == 0) | (d >= nd[NNEIGH-1])) continue; if (nn < NNEIGH) /* insert neighbor */ nn++;