[MAC_OS] (XPutPixel): Set alpha channel bits if pixmap depth is 32.
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Wed, 8 Mar 2006 03:25:26 +0000 (03:25 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Wed, 8 Mar 2006 03:25:26 +0000 (03:25 +0000)
[MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap depth is 32.

src/ChangeLog
src/image.c

index 1f27fc7..0bcf392 100644 (file)
@@ -1,3 +1,10 @@
+2006-03-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * image.c [MAC_OS] (XPutPixel): Set alpha channel bits if pixmap
+       depth is 32.
+        [MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap
+       depth is 32.
+
 2006-03-06  Chong Yidong  <cyd@stupidchicken.com>
 
        * xdisp.c (handle_invisible_prop): Don't update it->position with
index 879bbf7..cbdff81 100644 (file)
@@ -194,7 +194,7 @@ XPutPixel (ximage, x, y, pixel)
       char *base_addr = GetPixBaseAddr (pixmap);
       short row_bytes = GetPixRowBytes (pixmap);
 
-      ((unsigned long *) (base_addr + y * row_bytes))[x] = pixel;
+      ((unsigned long *) (base_addr + y * row_bytes))[x] = 0xff000000 | pixel;
     }
   else if (depth == 1)
     {
@@ -238,7 +238,7 @@ XGetPixel (ximage, x, y)
       char *base_addr = GetPixBaseAddr (pixmap);
       short row_bytes = GetPixRowBytes (pixmap);
 
-      return ((unsigned long *) (base_addr + y * row_bytes))[x];
+      return ((unsigned long *) (base_addr + y * row_bytes))[x] & 0x00ffffff;
     }
   else if (depth == 1)
     {