--- ray/src/common/color.c 2023/11/21 01:30:20 2.30 +++ ray/src/common/color.c 2023/11/27 21:00:14 2.31 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: color.c,v 2.30 2023/11/21 01:30:20 greg Exp $"; +static const char RCSid[] = "$Id: color.c,v 2.31 2023/11/27 21:00:14 greg Exp $"; #endif /* * color.c - routines for color calculations. @@ -498,11 +498,11 @@ freadscolrs(uby8 *scanline, int nc, int len, FILE *fp) } -/* write an common-exponent spectral color scanline (NCSAMP) */ +/* write an common-exponent spectral color scanline */ int -fwritescolrs(uby8 *sscanline, int len, FILE *fp) +fwritescolrs(uby8 *sscanline, int nc, int len, FILE *fp) { - if (fwrite(sscanline, LSCOLR, len, fp) != len) + if (fwrite(sscanline, nc+1, len, fp) != len) return(-1); return(0); } @@ -584,18 +584,18 @@ freadsscan(COLORV *sscanline, int nc, int len, FILE *f /* write an spectral color scanline (NCSAMP) */ int -fwritesscan(COLORV *sscanline, int len, FILE *fp) +fwritesscan(COLORV *sscanline, int nc, int len, FILE *fp) { - uby8 *tscn = (uby8 *)tempbuffer(LSCOLR*len); + uby8 *tscn = (uby8 *)tempbuffer((nc+1)*len); int i; if (tscn == NULL) return(-1); for (i = 0; i < len; i++) { - scolor2scolr(tscn+i*LSCOLR, sscanline, NCSAMP); - sscanline += NCSAMP; + scolor2scolr(tscn+i*(nc+1), sscanline, nc); + sscanline += nc; } - return(fwritescolrs(tscn, len, fp)); + return(fwritescolrs(tscn, nc, len, fp)); }