2012-02-06 98 views
0

对不起我的英文不好。用opengl es iOS全屏动画

我在内存中创建了一个iPad全屏大小为1024 * 768 * 4字节的位图缓冲区作为屏幕外缓冲区和2个线程,其中一个更新缓冲区并调用performSelector setNeedsDisplay在其他线程上,另一个线程画图每个drawRect循环中屏幕上的整个缓冲区。

但这种方式太慢了。所以我想通过将其更改为OpenGL ES 2.0实现来提高性能。

我的想法是创建一个全屏幕纹理,使用CADisplayLink每1/60秒触发一个drawView选择器,通过内存缓冲区更新纹理并在屏幕上绘制纹理。但我是opengl-es的新手,我知道如何初始化一个简单的EAGLLayer,从数据创建纹理,但我不知道如何在视图上绘制纹理,任何人都可以给出样本?

+0

“给我代码”类型的问题在这里并不真正支持。 – Hyperbole 2012-02-06 20:28:31

+0

从Xcode模板创建一个OpenGL ES项目,它将设置一切。或退房Cocos2d – 2012-02-06 20:54:04

回答

1

OpenGL ES 2.0对于渲染纹理太多了。 OpenGL ES 1.1就足够了。使用着色器并不意味着它会更快。要创建全屏纹理,请使用两个三角形,坐标从-1.0到1.0,并应用纹理。

+0

感谢您的建议,我会尝试。 – ChikaneHimeko 2012-02-07 16:29:22