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

Comparing ray/src/common/bmpfile.c (file contents):
Revision 2.3 by greg, Fri Mar 26 22:58:21 2004 UTC vs.
Revision 2.4 by schorsch, Fri Mar 26 23:30:05 2004 UTC

# Line 37 | Line 37 | BMPheaderOK(const BMPHeader *hdr)
37   {
38          if (!hdr)
39                  return 0;
40 <        if ((hdr->width <= 0 | hdr->height <= 0))
40 >        if ((hdr->width <= 0) | (hdr->height <= 0))
41                  return 0;
42          switch (hdr->bpp) {             /* check compression */
43          case 1:
# Line 47 | Line 47 | BMPheaderOK(const BMPHeader *hdr)
47                  break;
48          case 16:
49          case 32:
50 <                if ((hdr->compr != BI_UNCOMPR & hdr->compr != BI_BITFIELDS))
50 >                if ((hdr->compr != BI_UNCOMPR) & (hdr->compr != BI_BITFIELDS))
51                          return 0;
52                  break;
53          case 4:
54 <                if ((hdr->compr != BI_UNCOMPR & hdr->compr != BI_RLE4))
54 >                if ((hdr->compr != BI_UNCOMPR) & (hdr->compr != BI_RLE4))
55                          return 0;
56                  break;
57          case 8:
58 <                if ((hdr->compr != BI_UNCOMPR & hdr->compr != BI_RLE8))
58 >                if ((hdr->compr != BI_UNCOMPR) & (hdr->compr != BI_RLE8))
59                          return 0;
60                  break;
61          default:
# Line 64 | Line 64 | BMPheaderOK(const BMPHeader *hdr)
64          if (hdr->compr == BI_BITFIELDS && (BMPbitField(hdr)[0] &
65                                  BMPbitField(hdr)[1] & BMPbitField(hdr)[2]))
66                  return 0;
67 <        if ((hdr->nColors < 0 | hdr->impColors < 0))
67 >        if ((hdr->nColors < 0) | (hdr->impColors < 0))
68                  return 0;
69          if (hdr->impColors > hdr->nColors)
70                  return 0;
# Line 74 | Line 74 | BMPheaderOK(const BMPHeader *hdr)
74   }
75  
76                                          /* compute uncompressed scan size */
77 < #define getScanSiz(h)   ( (((h)->bpp*(h)->width+7 >>3) + 3) & ~03 )
77 > #define getScanSiz(h)   ( ((((h)->bpp*(h)->width+7) >>3) + 3) & ~03 )
78  
79                                          /* get next byte from reader */
80   #define rdbyte(c,br)    ((br)->fpos += (c=(*(br)->cget)((br)->c_data))!=EOF, c)
# Line 219 | Line 219 | BMPopenReader(int (*cget)(void *), int (*seek)(uint32,
219          if (br->scanline == NULL)
220                  goto err;
221          br->yscan = -1;
222 <        if (seek != NULL && (br->hdr->compr == BI_RLE8 |
223 <                                        br->hdr->compr == BI_RLE4)) {
222 >        if (seek != NULL && ((br->hdr->compr == BI_RLE8) |
223 >                                        (br->hdr->compr == BI_RLE4))) {
224                  BMPReader       *newbr = (BMPReader *)realloc((void *)br,
225                                                  sizeof(BMPReader) +
226                                                  sizeof(br->scanpos[0]) *
# Line 444 | Line 444 | BMPdecodePixel(int i, const BMPReader *br)
444          case 8:
445                  return br->hdr->palette[br->scanline[i]];
446          case 1:
447 <                return br->hdr->palette[br->scanline[i>>3]>>(7-i&7) & 1];
447 >                return br->hdr->palette[br->scanline[i>>3]>>((7-i)&7) & 1];
448          case 4:
449                  return br->hdr->palette[br->scanline[i>>1]>>(i&1?4:0) & 0xf];
450          case 16:
# Line 626 | Line 626 | BMPopenWriter(void (*cput)(int, void *), int (*seek)(u
626                  return NULL;
627          if (!BMPheaderOK(hdr))
628                  return NULL;
629 <        if ((hdr->bpp == 16 | hdr->compr == BI_RLE4))
629 >        if ((hdr->bpp == 16) | (hdr->compr == BI_RLE4))
630                  return NULL;                    /* unsupported */
631 <        if (seek == NULL && (hdr->compr == BI_RLE8 | hdr->compr == BI_RLE4))
631 >        if (seek == NULL && ((hdr->compr == BI_RLE8) | (hdr->compr == BI_RLE4)))
632                  return NULL;
633                                                  /* compute sizes */
634          hdrSiz = 2 + 6*4 + 2*2 + 6*4;
# Line 691 | Line 691 | findNextRun(const int8 *bp, int len)
691   {
692          int     pos, cnt;
693                                                  /* look for run */
694 <        for (pos = 0; len > 0 & pos < 255; pos++, bp++, len--) {
694 >        for (pos = 0; (len > 0) & (pos < 255); pos++, bp++, len--) {
695                  if (len < 5)                    /* no hope left? */
696                          continue;
697                  cnt = 1;                        /* else let's try it */
# Line 749 | Line 749 | BMPwriteScanline(BMPWriter *bw)
749                  if (n <= 0)                     /* was that it? */
750                          break;
751                  val = *sp;                      /* output run */
752 <                for (cnt = 1; --n > 0 & *++sp == val; cnt++)
752 >                for (cnt = 1; (--n > 0) & (*++sp == val); cnt++)
753                          ;
754                  wrbyte(cnt, bw);
755                  wrbyte(val, bw);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines