首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高CGContextFillRect和CGContextDrawImage性能

如何提高CGContextFillRect和CGContextDrawImage性能
EN

Stack Overflow用户
提问于 2011-07-08 22:09:09
回答 2查看 1.5K关注 0票数 2

这两个函数目前是我的瓶颈。我正在使用非常大的位图。

我如何才能提高他们的性能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-08 22:29:38

您可以缓存在第一次绘制之前创建的位图的较小版本,然后只需绘制缩小的样本,而不是完整的1500万像素的东西。

然后,再次确保您只绘制必要的内容,即在'drawRect:(NSRect) rect‘中仅在rect内部绘制(除非绝对必要)。并且尽量不要在该方法之外执行绘图。

票数 2
EN

Stack Overflow用户

发布于 2011-07-09 08:43:51

如果您正在绘制大的背景图像,其中的内容在前景中移动,请考虑使用图层支持的NSView,添加一个图层并设置其背景图像。然后,您可以在背景层上方的其他层(或层支持的NSViews)中绘制内容,视图将永远不需要重新绘制背景图像,因为它存储在GPU的纹理内存中。您当前的图像对于单个CALayer来说太大了(CALayer限制为2048 x 2048的最大OpenGL纹理大小),因此您可能需要将其拆分为瓦片。

否则,正如@iolo所提到的,您应该确保只重新绘制视图中真正需要更新的部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6625654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档