ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/tmapcolrs.c
(Generate patch)

Comparing ray/src/common/tmapcolrs.c (file contents):
Revision 3.6 by gwlarson, Thu Oct 22 13:53:19 1998 UTC vs.
Revision 3.9 by gwlarson, Wed Oct 28 09:26:03 1998 UTC

# Line 93 | Line 93 | int    len;
93                  ls[i] = bi;
94                  if (cs == TM_NOCHROM)                   /* no color? */
95                          continue;
96                if (tmTop->flags & TM_F_BW)
97                        cmon[RED] = cmon[GRN] = cmon[BLU] = li;
96                                                          /* mesopic adj. */
97                  if (tmTop->flags & TM_F_MESOPIC && bi < BMESUPPER) {
98                          register int    pf, sli = normscot(cmon);
99                          if (bi < BMESLOWER)
100                                  cmon[RED] = cmon[GRN] = cmon[BLU] = sli;
101                          else {
102 +                                if (tmTop->flags & TM_F_BW)
103 +                                        cmon[RED] = cmon[GRN] = cmon[BLU] = li;
104                                  pf = photofact[bi-BMESLOWER];
105                                  sli *= 256 - pf;
106                                  cmon[RED] = ( sli + pf*cmon[RED] ) >> 8;
107                                  cmon[GRN] = ( sli + pf*cmon[GRN] ) >> 8;
108                                  cmon[BLU] = ( sli + pf*cmon[BLU] ) >> 8;
109                          }
110 +                } else if (tmTop->flags & TM_F_BW) {
111 +                        cmon[RED] = cmon[GRN] = cmon[BLU] = li;
112                  }
113                  bi = ( (int4)GAMTSZ*cd->clfb[RED]*cmon[RED]/li ) >> 8;
114                  cs[3*i  ] = bi>=GAMTSZ ? 255 : cd->gamb[bi];
# Line 146 | Line 148 | register struct radhead        *rh;
148                          rh->format = FMTCIE;
149                  else
150                          rh->format = FMTBAD;
151 <                return;
151 >                return(0);
152          }
153          if (isexpos(s)) {
154                  rh->expos *= exposval(s);
155 <                return;
155 >                return(0);
156          }
157          if (isprims(s)) {
158                  primsval(rh->mypri, s);
159                  rh->primp = rh->mypri;
160 <                return;
160 >                return(0);
161          }
162 +        return(0);
163   }
164  
165  
# Line 239 | Line 242 | done:                                          /* clean up */
242   }
243  
244  
245 + #ifdef PCOND
246   int                                     /* run pcond to map picture */
247   dopcond(psp, xp, yp, flags, monpri, gamval, Lddyn, Ldmax, fname)
248   BYTE    **psp;
# Line 259 | Line 263 | char   *fname;
263          if (setcolrcor(pow, 1./gamval) < 0)
264                  returnErr(TM_E_NOMEM);
265                                          /* create command */
266 <        strcpy(cmdbuf, "pcond ");
266 >        strcpy(cmdbuf, PCOND);
267          if (flags & TM_F_HCONTR)
268 <                strcat(cmdbuf, "-s ");
268 >                strcat(cmdbuf, " -s");
269          if (flags & TM_F_MESOPIC)
270 <                strcat(cmdbuf, "-c ");
270 >                strcat(cmdbuf, " -c");
271          if (flags & TM_F_LINEAR)
272 <                strcat(cmdbuf, "-l ");
272 >                strcat(cmdbuf, " -l");
273          if (flags & TM_F_ACUITY)
274 <                strcat(cmdbuf, "-a ");
274 >                strcat(cmdbuf, " -a");
275          if (flags & TM_F_VEIL)
276 <                strcat(cmdbuf, "-v ");
276 >                strcat(cmdbuf, " -v");
277          if (flags & TM_F_CWEIGHT)
278 <                strcat(cmdbuf, "-w ");
279 <        sprintf(cmdbuf+strlen(cmdbuf),
280 <                        "-p %f %f %f %f %f %f %f %f -d %f -u %f %s",
281 <                        monpri[RED][CIEX], monpri[RED][CIEY],
282 <                        monpri[GRN][CIEX], monpri[GRN][CIEY],
283 <                        monpri[BLU][CIEX], monpri[BLU][CIEY],
284 <                        monpri[WHT][CIEX], monpri[WHT][CIEY],
285 <                        Lddyn, Ldmax, fname);
278 >                strcat(cmdbuf, " -w");
279 >        if (monpri != stdprims)
280 >                sprintf(cmdbuf+strlen(cmdbuf), " -p %f %f %f %f %f %f %f %f",
281 >                                monpri[RED][CIEX], monpri[RED][CIEY],
282 >                                monpri[GRN][CIEX], monpri[GRN][CIEY],
283 >                                monpri[BLU][CIEX], monpri[BLU][CIEY],
284 >                                monpri[WHT][CIEX], monpri[WHT][CIEY]);
285 >        sprintf(cmdbuf+strlen(cmdbuf), " -d %f -u %f %s", Lddyn, Ldmax, fname);
286                                          /* start pcond */
287          if ((infp = popen(cmdbuf, "r")) == NULL)
288                  returnErr(TM_E_BADFILE);
# Line 322 | Line 326 | char   *fname;
326          pclose(infp);
327          returnOK;
328   }
329 + #endif
330  
331  
332   int                                     /* map a Radiance picture */
# Line 347 | Line 352 | FILE   *fp;
352          if (Lddyn < MINLDDYN) Lddyn = DEFLDDYN;
353          if (Ldmax < MINLDMAX) Ldmax = DEFLDMAX;
354          if (flags & TM_F_BW) monpri = stdprims;
355 + #ifdef PCOND
356                                                  /* check for pcond run */
357          if (fp == TM_GETFILE && flags & TM_F_UNIMPL)
358                  return( dopcond(psp, xp, yp, flags,
359                                  monpri, gamval, Lddyn, Ldmax, fname) );
360 + #endif
361                                                  /* initialize tone mapping */
362          if (tmInit(flags, monpri, gamval) == NULL)
363                  returnErr(TM_E_NOMEM);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines