summaryrefslogtreecommitdiff
path: root/src/image.c
diff options
context:
space:
mode:
authorJason Rumney <jasonr@gnu.org>2007-12-02 16:18:09 +0000
committerJason Rumney <jasonr@gnu.org>2007-12-02 16:18:09 +0000
commit0d1d9e2f4d21ac0400288ec25770698860774443 (patch)
tree94a985b092ce8a4d627faf4d5f37a95259dbb80e /src/image.c
parent72bd8278a038c5d6541ca3edbd3609dff32a1b96 (diff)
downloademacs-0d1d9e2f4d21ac0400288ec25770698860774443.tar.gz
(xbm_load) [WINDOWSNT]: Shuffle the bits of directly specified XBMs.
Diffstat (limited to 'src/image.c')
-rw-r--r--src/image.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/image.c b/src/image.c
index 28214642c3a..a92578862f0 100644
--- a/src/image.c
+++ b/src/image.c
@@ -3120,6 +3120,8 @@ convert_mono_to_color_image (f, img, foreground, background)
release_frame_dc (f, hdc);
old_prev = SelectObject (old_img_dc, img->pixmap);
new_prev = SelectObject (new_img_dc, new_pixmap);
+ /* Windows convention for mono bitmaps is black = background,
+ white = foreground. */
SetTextColor (new_img_dc, background);
SetBkColor (new_img_dc, foreground);
@@ -3515,6 +3517,19 @@ xbm_load (f, img)
else
bits = XBOOL_VECTOR (data)->data;
+#ifdef WINDOWSNT
+ {
+ char *invertedBits;
+ int nbytes, i;
+ /* Windows mono bitmaps are reversed compared with X. */
+ invertedBits = bits;
+ nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR
+ * img->height;
+ bits = (char *) alloca(nbytes);
+ for (i = 0; i < nbytes; i++)
+ bits[i] = XBM_BIT_SHUFFLE (invertedBits[i]);
+ }
+#endif
/* Create the pixmap. */
Create_Pixmap_From_Bitmap_Data (f, img, bits,