--- ray/src/rt/colortab.c 1993/03/08 12:37:21 2.3 +++ ray/src/rt/colortab.c 2003/02/25 02:47:22 2.6 @@ -1,9 +1,6 @@ -/* Copyright (c) 1992 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: colortab.c,v 2.6 2003/02/25 02:47:22 greg Exp $"; #endif - /* * colortab.c - allocate and control dynamic color table. * @@ -14,8 +11,12 @@ static char SCCSid[] = "$SunId$ LBL"; * histogram is cleared. This algorithm * performs only as well as the next drawing's color * distribution is correlated to the last. + * + * External symbols declared in drvier.h */ +#include "copyright.h" + #include "standard.h" #include "color.h" @@ -55,7 +56,8 @@ static unsigned short histo[NRED][NGRN][NBLU]; /* initial color cube boundary */ static int CLRCUBE[3][2] = {{0,NRED},{0,NGRN},{0,NBLU}}; -static int split(), cut(); +static int split(); +static void cut(); int @@ -68,9 +70,9 @@ int ncolors; return(0); /* free old tables */ if (clrtab != NULL) - free((char *)clrtab); + free((void *)clrtab); if (ctree != NULL) - free((char *)ctree); + free((void *)ctree); /* get new tables */ for (treesize = 1; treesize < ncolors; treesize <<= 1) ; @@ -91,9 +93,8 @@ int ncolors; int get_pixel(col, set_pixel) /* get pixel for color */ COLOR col; -int (*set_pixel)(); +void (*set_pixel)(); { - extern char errmsg[]; int r, g, b; int cv[3]; register CNODE *tp; @@ -143,6 +144,7 @@ int (*set_pixel)(); } +void make_gmap(gam) /* make gamma correction map */ double gam; { @@ -155,6 +157,7 @@ double gam; } +void set_cmap(rmap, gmap, bmap) /* set custom color correction map */ BYTE *rmap, *gmap, *bmap; { @@ -164,6 +167,7 @@ BYTE *rmap, *gmap, *bmap; } +void map_color(rgb, col) /* map a color to a byte triplet */ BYTE rgb[3]; COLOR col; @@ -174,7 +178,7 @@ COLOR col; } -static +static void cut(tree, level, box, c0, c1) /* partition color space */ register CNODE *tree; int level; @@ -207,7 +211,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])