Improve CGContextDrawImage performance

262 Views Asked by At

I have a custom NSView that has it's own drawRect. I draw a lot of images using CGContextDrawImage into the view. The NsView is in a NSScrollView. The issue I am having is, while scrolling, the drawrect takes too long. the scrolling isn't smooth.

I did try setting wantslayer to true, to enable layer-backed drawing. Now the scrolling is smooth until the next drawrect is called, i.e till next time a new dirtyRect has to be redrawn.

Since I have to use drawrect to draw the contents, is there a way to improve scrolling performance?

if not, is there an alternative?

Update:

the call that's taking time.

enter image description here

I tried what Rob suggested below (using NSImageView for each image). that helped. I see smooth scrolling while setting the images as well.

But I would like to know why CGContextDrawImage takes time? especially rgbaf16_sample_rgbaf_inner. is there a way to avoid it?

0

There are 0 best solutions below