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

Comparing ray/src/px/pvalue.c (file contents):
Revision 2.26 by schorsch, Sun Mar 28 20:33:14 2004 UTC vs.
Revision 2.29 by greg, Sat Dec 23 17:27:46 2006 UTC

# Line 66 | Line 66 | static putfunc_t putpascii, putpint, putpdouble, putpf
66   static void set_io(void);
67   static void pixtoval(void);
68   static void valtopix(void);
69 static void swap16(uint16  *wp, int  n);
70 static void swap32(uint32  *wp, int  n);
71 static void swap64(char  *wp, int  n);
69  
70  
71   static double
# Line 375 | Line 372 | checkhead(                             /* deal with line from header */
372          COLOR   ctmp;
373  
374          if (formatval(fmt, line)) {
375 <                if (!strcmp(fmt, CIEFMT)) {
375 >                if (!strcmp(fmt, CIEFMT))
376                          mybright = &xyz_bright;
377 <                        if (original) {
381 <                                scalecolor(exposure, 1./WHTEFFICACY);
382 <                                doexposure++;
383 <                        }
384 <                } else if (!strcmp(fmt, COLRFMT))
377 >                else if (!strcmp(fmt, COLRFMT))
378                          mybright = &rgb_bright;
379                  else
380                          wrongformat++;
# Line 528 | Line 521 | int  code;
521   }
522  
523  
531 static void
532 swap16(         /* swap n 16-bit words */
533        register uint16  *wp,
534        int  n
535 )
536 {
537        while (n-- > 0) {
538                *wp = *wp << 8 | ((*wp >> 8) & 0xff);
539                wp++;
540        }
541 }
542
543
544 static void
545 swap32(         /* swap n 32-bit words */
546        register uint32  *wp,
547        int  n
548 )
549 {
550        while (n-- > 0) {
551                *wp = *wp << 24 | ((*wp >> 24) & 0xff) |
552                        (*wp & 0xff00) << 8 | (*wp & 0xff0000) >> 8;
553                wp++;
554        }
555 }
556
557
558 static void
559 swap64(         /* swap n 64-bit words */
560        register char  *wp,
561        int  n
562 )
563 {
564        register int    t;
565
566        while (n-- > 0) {
567                t = wp[0]; wp[0] = wp[7]; wp[7] = t;
568                t = wp[1]; wp[1] = wp[6]; wp[6] = t;
569                t = wp[2]; wp[2] = wp[5]; wp[5] = t;
570                t = wp[3]; wp[3] = wp[4]; wp[4] = t;
571                wp += 8;
572        }
573 }
574
575
524   static int
525   getcascii(              /* get an ascii color value from stream(s) */
526          COLOR  col
# Line 634 | Line 582 | getcfloat(             /* get a float color value from stream(s)
582                          return(-1);
583          }
584          if (swapbytes)
585 <                swap32((uint32 *)vf, 3);
585 >                swap32((char *)vf, 3);
586          setcolor(col, vf[rord[RED]], vf[rord[GRN]], vf[rord[BLU]]);
587          return(0);
588   }
# Line 701 | Line 649 | getcword(              /* get a 16-bit color value from stream(s)
649                          return(-1);
650          }
651          if (swapbytes)
652 <                swap16(vw, 3);
652 >                swap16((char *)vw, 3);
653          setcolor(col, (vw[rord[RED]]+.5)/65536.,
654                          (vw[rord[GRN]]+.5)/65536., (vw[rord[BLU]]+.5)/65536.);
655          return(0);
# Line 748 | Line 696 | getbfloat(             /* get a float brightness value from fin *
696          if (fread((char *)&vf, sizeof(float), 1, fin) != 1)
697                  return(-1);
698          if (swapbytes)
699 <                swap32((uint32 *)&vf, 1);
699 >                swap32((char *)&vf, 1);
700          setcolor(col, vf, vf, vf);
701          return(0);
702   }
# Line 797 | Line 745 | getbword(              /* get a 16-bit brightness value from fin *
745          if (fread((char *)&vw, sizeof(uint16), 1, fin) != 1)
746                  return(-1);
747          if (swapbytes)
748 <                swap16(&vw, 1);
748 >                swap16((char *)&vw, 1);
749          d = (vw+.5)/65536.;
750          setcolor(col, d, d, d);
751          return(0);
# Line 829 | Line 777 | putcfloat(                     /* put a float color to stdout */
777          vf[1] = colval(col,ord[1]);
778          vf[2] = colval(col,ord[2]);
779          if (swapbytes)
780 <                swap32((uint32 *)vf, 3);
780 >                swap32((char *)vf, 3);
781          fwrite((char *)vf, sizeof(float), 3, stdout);
782  
783          return(ferror(stdout) ? -1 : 0);
# Line 903 | Line 851 | putcword(                      /* put a 16-bit color to stdout */
851          i = colval(col,ord[2])*65536.;
852          vw[2] = min(i,65535);
853          if (swapbytes)
854 <                swap16(vw, 3);
854 >                swap16((char *)vw, 3);
855          fwrite((char *)vw, sizeof(uint16), 3, stdout);
856  
857          return(ferror(stdout) ? -1 : 0);
# Line 930 | Line 878 | putbfloat(                     /* put a float brightness to stdout */
878  
879          vf = (*mybright)(col);
880          if (swapbytes)
881 <                swap32((uint32 *)&vf, 1);
881 >                swap32((char *)&vf, 1);
882          fwrite((char *)&vf, sizeof(float), 1, stdout);
883  
884          return(ferror(stdout) ? -1 : 0);
# Line 991 | Line 939 | putbword(                      /* put a 16-bit brightness to stdout */
939          i = (*mybright)(col)*65536.;
940          vw = min(i,65535);
941          if (swapbytes)
942 <                swap16(&vw, 1);
942 >                swap16((char *)&vw, 1);
943          fwrite((char *)&vw, sizeof(uint16), 1, stdout);
944  
945          return(ferror(stdout) ? -1 : 0);
# Line 1018 | Line 966 | putpfloat(                     /* put a float primary to stdout */
966  
967          vf = colval(col,putprim);
968          if (swapbytes)
969 <                swap32((uint32 *)&vf, 1);
969 >                swap32((char *)&vf, 1);
970          fwrite((char *)&vf, sizeof(float), 1, stdout);
971  
972          return(ferror(stdout) ? -1 : 0);
# Line 1079 | Line 1027 | putpword(                      /* put a 16-bit primary to stdout */
1027          i = colval(col,putprim)*65536.;
1028          vw = min(i,65535);
1029          if (swapbytes)
1030 <                swap16(&vw, 1);
1030 >                swap16((char *)&vw, 1);
1031          fwrite((char *)&vw, sizeof(uint16), 1, stdout);
1032  
1033          return(ferror(stdout) ? -1 : 0);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines