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.28 by greg, Fri Oct 1 07:46:26 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 524 | Line 521 | int  code;
521   }
522  
523  
527 static void
528 swap16(         /* swap n 16-bit words */
529        register uint16  *wp,
530        int  n
531 )
532 {
533        while (n-- > 0) {
534                *wp = *wp << 8 | ((*wp >> 8) & 0xff);
535                wp++;
536        }
537 }
538
539
540 static void
541 swap32(         /* swap n 32-bit words */
542        register uint32  *wp,
543        int  n
544 )
545 {
546        while (n-- > 0) {
547                *wp = *wp << 24 | ((*wp >> 24) & 0xff) |
548                        (*wp & 0xff00) << 8 | (*wp & 0xff0000) >> 8;
549                wp++;
550        }
551 }
552
553
554 static void
555 swap64(         /* swap n 64-bit words */
556        register char  *wp,
557        int  n
558 )
559 {
560        register int    t;
561
562        while (n-- > 0) {
563                t = wp[0]; wp[0] = wp[7]; wp[7] = t;
564                t = wp[1]; wp[1] = wp[6]; wp[6] = t;
565                t = wp[2]; wp[2] = wp[5]; wp[5] = t;
566                t = wp[3]; wp[3] = wp[4]; wp[4] = t;
567                wp += 8;
568        }
569 }
570
571
524   static int
525   getcascii(              /* get an ascii color value from stream(s) */
526          COLOR  col
# Line 630 | 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 697 | 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 744 | 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 793 | 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 825 | 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 899 | 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 926 | 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 987 | 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 1014 | 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 1075 | 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