hi,
i'm trying to draw pixels in a bitmap. first i'm allocating a NSBitmapImageRep:

        def awakeFromNib
                @nsBitmapImageRepObj = 
NSBitmapImageRep.alloc.initWithBitmapDataPlanes nil,
                     pixelsWide:@nsRectFrameRect.size.width,
                     pixelsHigh:@nsRectFrameRect.size.height,
                     bitsPerSample:8,
                     samplesPerPixel:3,
                     hasAlpha:false,
                     isPlanar:false,
                     colorSpaceName:"NSCalibratedRGBColorSpace",
                     bytesPerRow:0,
                     bitsPerPixel:0
        end


i can in fact write pixels if i use the setPixel method:

        def drawBitmap
                xs = 255.0/@nsRectFrameRect.size.width
                ys = 255.0/@nsRectFrameRect.size.height
                0.upto @nsRectFrameRect.size.height do |y|
                        0.upto @nsRectFrameRect.size.width do |x|
                                color = [x*xs,y*ys,0]
                                @nsBitmapImageRepObj.setPixel color, atX:x, y:y 
  
                        end
                end
                setNeedsDisplay true
        end


however, i can't figure out how to write directly to the bitmap. bitmapData 
returns a pointer to the allocated memery, but how do i write to it?

                @nsBitmapImageRepObj.bitmapData[0] = 255                # => 
can't convert Fixnum into String (TypeError)
                @nsBitmapImageRepObj.bitmapData[1] = '\255'             # => 
index 1 out of string (IndexError)

documentation states that bitmapData returns an unsigned char*, but when ruby 
seems to think it's a string with length zero.
do i need to use the Pointer class?


searching for 'pixel' here on the list revelealed this post by julien jassaud 
back in dec 2009:

> I also had a problem with function NSBitmapImageRep. Again, a pointer 
> problem. Having an NSBitmapImageRep, the function bitmapData returns an 
> (unsigned char *) but in MacRuby, it returns an empty string. The workaround 
> was to create the class in an Objective C bundle.

any news on this issue?


thanks in advance,
emil tin
 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to