缓存Quartz渲染绘图到CALayer

时间:2011-02-13 15:04:38

标签: iphone core-animation core-graphics

我正在尝试调整游戏过程,在每个游戏循环(40 fps)期间使用Quartz绘制大约50个精灵的数量。

目前我有一个非常简单的绘图机制,其中单个游戏视图(UIView)遍历所有活动精灵并要求每个精灵将其自身呈现为CGContext(视图的那个)。这很好,但是性能开始下降超过50个活动对象,我很想调整一些东西。

我已经决定为每个精灵拿着一个CALayer,它的缓存绘图是可行的 - 然后使用Core Animation渲染/旋转/缩放绘图。

我很难理解我是如何做到这一点的。我最初在哪里吸引?我的精灵初始化时没有CGContext。将CGImage渲染为缓冲区然后将其设置为CALayer上的内容是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

只需子类CALayer并在drawInContext:中进行绘制。然后,该层将自动缓存其内容。如果您不想继承CALayer,则还可以为其分配一个委托(不能是UIView)并实施drawLayer:inContext: