--- ray/src/rt/colortab.c 1990/11/07 17:16:58 1.15 +++ ray/src/rt/colortab.c 1993/05/05 10:18:47 2.4 @@ -1,4 +1,4 @@ -/* Copyright (c) 1989 Regents of the University of California */ +/* Copyright (c) 1992 Regents of the University of California */ #ifndef lint static char SCCSid[] = "$SunId$ LBL"; @@ -33,7 +33,7 @@ static char SCCSid[] = "$SunId$ LBL"; (int)(colval(c,p)*256.) : 255 ] /* color partition tree */ #define CNODE short -#define set_branch(p,c) ((c)<<2|(p)) +#define set_branch(p,c) ((c)<<2|(p)) #define set_pval(pv) ((pv)<<2|3) #define is_branch(cn) (((cn)&3)!=3) #define is_pval(cn) (((cn)&3)==3) @@ -53,9 +53,11 @@ static BYTE clrmap[3][256]; /* histogram of colors used */ static unsigned short histo[NRED][NGRN][NBLU]; /* initial color cube boundary */ -static int CLRCUBE[3][2] = {0,NRED,0,NGRN,0,NBLU}; +static int CLRCUBE[3][2] = {{0,NRED},{0,NGRN},{0,NBLU}}; +static int split(), cut(); + int new_ctab(ncolors) /* start new color table with max ncolors */ int ncolors; @@ -128,7 +130,7 @@ int (*set_pixel)(); (g-clrtab[h].ent[GRN])*(g-clrtab[h].ent[GRN]) + (b-clrtab[h].ent[BLU])*(b-clrtab[h].ent[BLU]) > MAXDST2) { clrtab[h].ent[RED] = r; - clrtab[h].ent[GRN] = g; /* reassign pixel */ + clrtab[h].ent[GRN] = g; /* reassign pixel */ clrtab[h].ent[BLU] = b; #ifdef DEBUG sprintf(errmsg, "pixel %d = (%d,%d,%d) (%d refs)\n", @@ -142,9 +144,8 @@ int (*set_pixel)(); make_gmap(gam) /* make gamma correction map */ -double gam; +double gam; { - extern double pow(); register int i; for (i = 0; i < 256; i++) @@ -206,7 +207,7 @@ register int box[3][2]; #define c0 r register int r, g, b; int pri; - int t[HMAX], med; + long t[HMAX], med; /* find dominant axis */ pri = RED; if (box[GRN][1]-box[GRN][0] > box[pri][1]-box[pri][0])