--- ray/src/rt/colortab.c 2003/05/13 17:58:33 2.7 +++ ray/src/rt/colortab.c 2011/05/20 02:06:39 2.10 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: colortab.c,v 2.7 2003/05/13 17:58:33 greg Exp $"; +static const char RCSid[] = "$Id: colortab.c,v 2.10 2011/05/20 02:06:39 greg Exp $"; #endif /* * colortab.c - allocate and control dynamic color table. @@ -17,9 +17,12 @@ static const char RCSid[] = "$Id: colortab.c,v 2.7 200 #include "copyright.h" -#include "standard.h" +#include +#include "standard.h" #include "color.h" +#include "driver.h" + /* histogram resolution */ #define NRED 24 #define NGRN 32 @@ -45,12 +48,12 @@ static const char RCSid[] = "$Id: colortab.c,v 2.7 200 static struct tabent { long sum[3]; /* sum of colors using this entry */ int n; /* number of colors */ - BYTE ent[3]; /* current table value */ + uby8 ent[3]; /* current table value */ } *clrtab = NULL; /* color cube partition */ static CNODE *ctree = NULL; /* our color correction map */ -static BYTE clrmap[3][256]; +static uby8 clrmap[3][256]; /* histogram of colors used */ static unsigned short histo[NRED][NGRN][NBLU]; /* initial color cube boundary */ @@ -84,16 +87,17 @@ int ncolors; /* partition color space */ cut(ctree, 0, CLRCUBE, 0, ncolors); /* clear histogram */ - bzero((void *)histo, sizeof(histo)); + memset((void *)histo, '\0', sizeof(histo)); /* return number of colors used */ return(ncolors); } -int -get_pixel(col, set_pixel) /* get pixel for color */ -COLOR col; -void (*set_pixel)(); +extern int +get_pixel( /* get pixel for color */ + COLOR col, + dr_newcolrf_t *newcolr +) { int r, g, b; int cv[3]; @@ -138,7 +142,7 @@ void (*set_pixel)(); h, r, g, b, clrtab[h].n); eputs(errmsg); #endif - (*set_pixel)(h, r, g, b); + (*newcolr)(h, r, g, b); } return(h); /* return pixel value */ } @@ -159,17 +163,17 @@ double gam; void set_cmap(rmap, gmap, bmap) /* set custom color correction map */ -BYTE *rmap, *gmap, *bmap; +uby8 *rmap, *gmap, *bmap; { - bcopy((void *)rmap, (void *)clrmap[RED], 256); - bcopy((void *)gmap, (void *)clrmap[GRN], 256); - bcopy((void *)bmap, (void *)clrmap[BLU], 256); + memcpy((void *)clrmap[RED], (void *)rmap, 256); + memcpy((void *)clrmap[GRN], (void *)gmap, 256); + memcpy((void *)clrmap[BLU], (void *)bmap, 256); } void map_color(rgb, col) /* map a color to a byte triplet */ -BYTE rgb[3]; +uby8 rgb[3]; COLOR col; { rgb[RED] = map_col(col,RED); @@ -193,7 +197,7 @@ int c0, c1; } /* split box */ *tree = split(box); - bcopy((void *)box, (void *)kb, sizeof(kb)); + memcpy((void *)kb, (void *)box, sizeof(kb)); /* do left (lesser) branch */ kb[prim(*tree)][1] = part(*tree); cut(tree+(1<>1);