Re: NSImage from bitmap - then delete bitmap
Re: NSImage from bitmap - then delete bitmap
- Subject: Re: NSImage from bitmap - then delete bitmap
- From: Roland King <email@hidden>
- Date: Fri, 22 Jul 2016 15:00:11 +0800
> On 22 Jul 2016, at 14:40, Trygve Inda <email@hidden> wrote:
>
>
>> With half an eye on performance, if you *do* strictly need a copy of the
>> bitmap, note that NSBitmapImageRep conforms to NSCopying. You don’t have to
>> turn it into a TIFF and back again.
>>
>> Also, you don’t even need an NSImage - the NSImageRep can be drawn directly.
>
>
>
> So how is the best way to take my NSBitmapImageRep, and hand it off to the
> main thread in such a way that I can destroy the pixels immediately while
> the main thread keeps them?
>
> Would it be best to just call [myImagerep copy], and hand that to the main
> thread, and let the main thread release it once it has draw it into the
> window?
>
I’d have said the best way is to create a new image buffer for each new image you draw, draw into it and hand it off, then make another new one instead of trying to use one single one per thread. Creating them is cheap, it’s basically malloc(). Since you need the data to persist for display whilst you write a new image that means there’s two separate buffers, there has to be. So either you make a copy, which means going through the expense of copying it, or you just hand it off and start a new one, which doesn’t. When the main thread has finished with it it can dispose of the old buffer.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden