From 5903dffe3c3f4572491c6575d431f066faa03caf Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 16 Aug 2014 21:49:43 -0400 Subject: Implemented ImageList and Table ImageIndex on Mac OS X. --- redo/imagelist_darwin.m | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 redo/imagelist_darwin.m (limited to 'redo/imagelist_darwin.m') diff --git a/redo/imagelist_darwin.m b/redo/imagelist_darwin.m new file mode 100644 index 0000000..00ad75a --- /dev/null +++ b/redo/imagelist_darwin.m @@ -0,0 +1,32 @@ +// 16 august 2014 + +#import "objc_darwin.h" +#import + +#define toNSInteger(x) ((NSInteger) (x)) + +// TODO top two pixels of 16x16 images are green? + +id toImageListImage(void *pixels, intptr_t width, intptr_t height, intptr_t stride) +{ + unsigned char *planes[1]; // NSBitmapImageRep wants an array of planes; we have one plane + NSBitmapImageRep *bitmap; + NSImage *image; + + planes[0] = (unsigned char *) pixels; + bitmap = [[NSBitmapImageRep alloc] + initWithBitmapDataPlanes:planes + pixelsWide:toNSInteger(width) + pixelsHigh:toNSInteger(height) + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bitmapFormat:0 + bytesPerRow:toNSInteger(stride) + bitsPerPixel:32]; + image = [[NSImage alloc] initWithSize:NSMakeSize((CGFloat) width, (CGFloat) height)]; + [image addRepresentation:bitmap]; + return (id) image; +} -- cgit v1.2.3