--- ray/src/common/tmapcolrs.c 1997/04/18 13:59:46 3.3 +++ ray/src/common/tmapcolrs.c 1998/10/08 16:31:02 3.5 @@ -1,7 +1,7 @@ -/* Copyright (c) 1997 Regents of the University of California */ +/* Copyright (c) 1998 Silicon Graphics, Inc. */ #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static char SCCSid[] = "$SunId$ SGI"; #endif /* @@ -52,7 +52,7 @@ int len; if (tmTop == NULL) returnErr(TM_E_TMINVAL); - if (ls == NULL | scan == NULL | len <= 0) + if (ls == NULL | scan == NULL | len < 0) returnErr(TM_E_ILLEGAL); if (tmNeedMatrix(tmTop)) { /* need floating point */ register COLOR *newscan; @@ -93,22 +93,20 @@ int len; ls[i] = bi; if (cs == TM_NOCHROM) /* no color? */ continue; + if (tmTop->flags & TM_F_BW) + cmon[RED] = cmon[GRN] = cmon[BLU] = li; /* mesopic adj. */ if (tmTop->flags & TM_F_MESOPIC && bi < BMESUPPER) { register int pf, sli = normscot(cmon); if (bi < BMESLOWER) cmon[RED] = cmon[GRN] = cmon[BLU] = sli; else { - if (tmTop->flags & TM_F_BW) - cmon[RED] = cmon[GRN] = cmon[BLU] = li; pf = photofact[bi-BMESLOWER]; sli *= 256 - pf; cmon[RED] = ( sli + pf*cmon[RED] ) >> 8; cmon[GRN] = ( sli + pf*cmon[GRN] ) >> 8; cmon[BLU] = ( sli + pf*cmon[BLU] ) >> 8; } - } else if (tmTop->flags & TM_F_BW) { - cmon[RED] = cmon[GRN] = cmon[BLU] = li; } bi = ( (int4)GAMTSZ*cd->clfb[RED]*cmon[RED]/li ) >> 8; cs[3*i ] = bi>=GAMTSZ ? 255 : cd->gamb[bi];