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

Comparing ray/src/px/ximage.c (file contents):
Revision 1.14 by greg, Mon Nov 6 15:12:03 1989 UTC vs.
Revision 1.17 by greg, Fri Dec 1 15:50:26 1989 UTC

# Line 29 | Line 29 | static char SCCSid[] = "$SunId$ LBL";
29  
30   #include  "pic.h"
31  
32 + #include  "random.h"
33 +
34   #define  controlshift(e)        (((XButtonEvent *)(e))->detail & (ShiftMask|ControlMask))
35  
36   #define  FONTNAME       "9x15"          /* text font we'll use */
# Line 360 | Line 362 | XKeyEvent  *ekey;
362   {
363          char  buf[80];
364          COLOR  cval;
365 +        Color  cvx;
366          char  *cp;
367          int  n;
368          double  comp;
# Line 370 | Line 373 | XKeyEvent  *ekey;
373                  return(0);
374          switch (*cp) {                  /* interpret command */
375          case 'q':
376 <        case CTRL(D):                           /* quiterr */
376 >        case CTRL(D):                           /* quit */
377                  quit(0);
378          case '\n':
379          case '\r':
# Line 381 | Line 384 | XKeyEvent  *ekey;
384                  switch (*cp) {
385                  case '\n':
386                  case '\r':                              /* radiance */
387 <                        sprintf(buf, "%-3g", intens(cval)/exposure);
387 >                        sprintf(buf, "%.3f", intens(cval)/exposure);
388                          break;
389                  case 'l':                               /* luminance */
390 <                        sprintf(buf, "%-3gL", bright(cval)*683.0/exposure);
390 >                        sprintf(buf, "%.0fn", bright(cval)*683.0/exposure);
391                          break;
392                  case 'c':                               /* color */
393                          comp = pow(2.0, (double)scale);
# Line 397 | Line 400 | XKeyEvent  *ekey;
400                  XText(wind, box.xmin, box.ymin, buf, strlen(buf),
401                                  fontid, BlackPixel, WhitePixel);
402                  return(0);
403 +        case 'i':                               /* identify (contour) */
404 +                if (ourras->pixels == NULL)
405 +                        return(-1);
406 +                n = ourras->data.bz[ekey->x-xoff+BZPixmapSize(xmax,ekey->y-yoff)];
407 +                n = ourras->pmap[n];
408 +                cvx.pixel = ourras->cdefs[n].pixel;
409 +                cvx.red = random() & 65535;
410 +                cvx.green = random() & 65535;
411 +                cvx.blue = random() & 65535;
412 +                XStoreColor(&cvx);
413 +                return(0);
414          case 'p':                               /* position */
415                  sprintf(buf, "(%d,%d)", ekey->x-xoff, ymax-1-ekey->y+yoff);
416                  XText(wind, ekey->x, ekey->y, buf, strlen(buf),
# Line 430 | Line 444 | XKeyEvent  *ekey;
444          /* fall through */
445          case CTRL(R):                           /* redraw */
446          case CTRL(L):
447 +                unmap_rcolors(ourras);
448                  XClear(wind);
449                  return(redraw(0, 0, width, height));
450          case ' ':                               /* clear */
# Line 603 | Line 618 | register XRASTER       *xr;
618   double  sf;
619   {
620          register int    i;
621 <        int     maxv;
621 >        long    maxv;
622  
623 +        if (xr->pixels == NULL)
624 +                return;
625 +
626          sf = pow(sf, 1.0/gamcor);
627 <        maxv = (1<<16) / sf;
627 >        maxv = 65535/sf;
628  
629          for (i = xr->ncolors; i--; ) {
630 <                xr->cdefs[i].red = xr->cdefs[i].red >= maxv ?
631 <                                (1<<16)-1 :
630 >                xr->cdefs[i].red = xr->cdefs[i].red > maxv ?
631 >                                65535 :
632                                  xr->cdefs[i].red * sf;
633 <                xr->cdefs[i].green = xr->cdefs[i].green >= maxv ?
634 <                                (1<<16)-1 :
633 >                xr->cdefs[i].green = xr->cdefs[i].green > maxv ?
634 >                                65535 :
635                                  xr->cdefs[i].green * sf;
636 <                xr->cdefs[i].blue = xr->cdefs[i].blue >= maxv ?
637 <                                (1<<16)-1 :
636 >                xr->cdefs[i].blue = xr->cdefs[i].blue > maxv ?
637 >                                65535 :
638                                  xr->cdefs[i].blue * sf;
639          }
640 <        if (xr->pixels != NULL)
623 <                XStoreColors(xr->ncolors, xr->cdefs);
640 >        XStoreColors(xr->ncolors, xr->cdefs);
641   }
642  
643  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines