[Openmcl-devel] Advice needed: best way to fram a Lisp array into an ns-image
Ron Garret
ron at awun.net
Fri Jan 18 22:19:10 PST 2008
On Jan 18, 2008, at 7:10 PM, Ron Garret wrote:
> That's pretty much what I'm doing, so I guess that means I'm kinda on
> the right track.
Well, I thought I was on the right track. I tried this:
(defun stuff-pixels (pixels)
(bind ((x y bpp) (array-dimensions pixels)
(:values v ptr) (make-heap-ivector (* x y bpp) '(unsigned-
byte 8)))
(dotimes (i (* x y bpp))
(setf (aref v i) (row-major-aref pixels i)))
(#/
initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bytesPerRow:bitsPerPixel
:
(#/alloc ns:ns-bitmap-image-rep)
ptr
x y 8 3 0 0 #@"NSCalibratedRGBColorSpace" (* x 3) 24)))
It seems to work:
? (stuff-pixels #3A(((0 0 0) (0 0 0) (0 0 0) (0 0 0))
((0 0 0) (0 0 0) (0 0 0) (0 0 0))
((0 0 0) (0 0 0) (0 0 0) (0 0 0))((0 0 0) (0 0 0) (0 0 0) (0 0 0)))
)
#<NS-BITMAP-IMAGE-REP NSBitmapImageRep 0xa992900 Size={4, 4}
ColorSpace=NSCalibratedRGBColorSpace BPS=8 BPP=24 Pixels=4x4 Alpha=NO
Planar=NO Format=0 (#xA992900)>
?
But the resulting bitmapRep is corrupt:
? (#/bitmapData *)
Unhandled exception 11 at 0x7fff82855d80, context->regs at #xb0c3e350
Exception occurred while executing foreign code
? for help
[58183] OpenMCL kernel debugger:
rg
More information about the Openmcl-devel
mailing list