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

Comparing ray/src/common/tonemap.c (file contents):
Revision 3.40 by greg, Thu Jan 7 02:13:49 2021 UTC vs.
Revision 3.41 by greg, Thu Jan 7 19:13:57 2021 UTC

# Line 439 | Line 439 | double gamval
439                  double  val = TM_BRES * exp(
440                          ( d + (tms->mbrmin+i)*(1./TM_BRTSCALE) )
441                          / gamval);
442 <                tms->lumap[i] = val >= (double)0xffff ? 0xffff : (int)val;
442 >                tms->lumap[i] = val;
443 >                if (sizeof(TMAP_TYP) == 2 && val >= 0xffff)
444 >                        tms->lumap[i] = 0xffff;
445          }
446          returnOK;
447   }
# Line 563 | Line 565 | int    len
565   )
566   {
567          static const char funcName[] = "tmMapPixels";
568 <        int32   li, pv;
568 >        TMbright        lv;
569 >        TMAP_TYP        li;
570 >        int             pv;
571  
572          if (tms == NULL || tms->lumap == NULL)
573                  returnErr(TM_E_TMINVAL);
574          if ((ps == NULL) | (ls == NULL) | (len < 0))
575                  returnErr(TM_E_ILLEGAL);
576          while (len--) {
577 <                if ((li = *ls++) < tms->mbrmin) {
577 >                if ((lv = *ls++) < tms->mbrmin) {
578                          li = 0;
579                  } else {
580 <                        if (li > tms->mbrmax)
581 <                                li = tms->mbrmax;
582 <                        li = tms->lumap[li - tms->mbrmin];
580 >                        if (lv > tms->mbrmax)
581 >                                lv = tms->mbrmax;
582 >                        li = tms->lumap[lv - tms->mbrmin];
583                  }
584                  if (cs == TM_NOCHROM)
585 <                        *ps++ = li>255 ? 255 : li;
585 >                        *ps++ = li>=TM_BRES ? 255 : (int)(256*li/TM_BRES);
586                  else {
587                          pv = *cs++ * li / tms->cdiv[RED];
588                          *ps++ = pv>255 ? 255 : pv;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines