在iOS上使用高性能全屏位图操作有哪些好方法?

Ste*_*ntz 5 iphone ios4 ios

假设我想编写一个Star Field动画.不是通过使用OpenGL,而是直接绘制到屏幕缓冲区或可以放在屏幕上的屏幕外缓冲区.

在TRS-80上运行的Star Field演示当然只是一个例子.将视频解码或全屏动画视为需要每秒20+帧速率的其他可能性.

这样做的好方法是什么?我对官方和私有API实现都很感兴趣.

如果可以,请显示一些基本代码.

hot*_*aw2 2

以下是一种常见且相当快速的方法的简要概述。

在初始化期间,使用 CGBitmapContextCreate() 从指向离屏内存缓冲区的指针创建至少 2 个位图上下文,并添加一个 CALayer 作为 UIView 的子层。

在渲染循环中,交替使用双缓冲区,复制到和/或修改当前的离屏内存缓冲区,使用 CGBitmapContextCreateImage() 从该缓冲区创建图像,并将生成的图像分配给 CALayer 内容。