summaryrefslogtreecommitdiffstats
path: root/xlib/ximage.c
diff options
context:
space:
mode:
authordas <das@noemail.net>2007-06-23 00:25:37 (GMT)
committerdas <das@noemail.net>2007-06-23 00:25:37 (GMT)
commit3f496cdf71aa6f07f7fb2783713353d43b8c5e81 (patch)
tree148eb739926f285c24f4ff371245704b03fb7eed /xlib/ximage.c
parentd00e4e6e5dead896699a8d15c206211bd60b277c (diff)
downloadtk-3f496cdf71aa6f07f7fb2783713353d43b8c5e81.zip
tk-3f496cdf71aa6f07f7fb2783713353d43b8c5e81.tar.gz
tk-3f496cdf71aa6f07f7fb2783713353d43b8c5e81.tar.bz2
* generic/tkImgPhoto.c (ImgPhotoConfigureInstance, DisposeInstance):
use XDestroyImage instead of XFree to destroy XImage; replace runtime endianness determination by compile-time check for WORDS_BIGENDIAN. * xlib/ximage.c (XCreateBitmapFromData): use XCreateImage and XDestroyImage instead of creating XImage structure manually. FossilOrigin-Name: fa5f3efc81ea4998f4b2da3e72687a9f4c456733
Diffstat (limited to 'xlib/ximage.c')
-rw-r--r--xlib/ximage.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/xlib/ximage.c b/xlib/ximage.c
index 6f0c7ee..e6e4866 100644
--- a/xlib/ximage.c
+++ b/xlib/ximage.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: ximage.c,v 1.6 2007/01/02 23:39:40 dkf Exp $
+ * RCS: @(#) $Id: ximage.c,v 1.7 2007/06/23 00:25:38 das Exp $
*/
#include "tkInt.h"
@@ -42,7 +42,7 @@ XCreateBitmapFromData(
unsigned int width,
unsigned int height)
{
- XImage ximage;
+ XImage *ximage;
GC gc;
Pixmap pix;
@@ -51,23 +51,11 @@ XCreateBitmapFromData(
if (gc == NULL) {
return None;
}
- ximage.height = height;
- ximage.width = width;
- ximage.depth = 1;
- ximage.bits_per_pixel = 1;
- ximage.xoffset = 0;
- ximage.format = XYBitmap;
- ximage.data = (char *)data;
- ximage.byte_order = LSBFirst;
- ximage.bitmap_unit = 8;
- ximage.bitmap_bit_order = LSBFirst;
- ximage.bitmap_pad = 8;
- ximage.bytes_per_line = (width+7)/8;
-#ifdef MAC_OSX_TK
- ximage.obdata = NULL;
-#endif
-
- TkPutImage(NULL, 0, display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
+ ximage = XCreateImage(display, NULL, 1, XYBitmap, 0, (char*) data, width,
+ height, 8, (width + 7) / 8);
+ TkPutImage(NULL, 0, display, pix, gc, ximage, 0, 0, 0, 0, width, height);
+ ximage->data = NULL;
+ XDestroyImage(ximage);
XFreeGC(display, gc);
return pix;
}