改善CGContextDrawImage性能

时间:2019-04-23 02:10:16

标签: macos calayer nsview nsscrollview cgcontextdrawimage

我有一个自定义的NSView,它具有自己的drawRect。我使用CGContextDrawImage将大量图像绘制到视图中。 NsView在NSScrollView中。我遇到的问题是,在滚动时,drawrect花费的时间太长。滚动不流畅。

我确实尝试将wantlayer设置为true,以启用支持图层的绘图。现在滚动很流畅,直到调用下一个drawrect,即直到下一次必须重新绘制新的dirtyRect。

由于我必须使用drawrect来绘制内容,因此有没有办法改善滚动性能?

如果没有,还有其他选择吗?

更新:

需要花费时间的通话

enter image description here

我尝试了以下Rob的建议(每个图像都使用NSImageView)。有帮助。在设置图像的同时,我还能看到平滑的滚动。

但是我想知道CGContextDrawImage为什么要花时间?特别是rgbaf16_sample_rgbaf_inner。有办法避免吗?

0 个答案:

没有答案