我正在使用缓冲区来将非常大的图片(屏幕大小)加载到单个表面。 这个想法是一帧一帧地动画大量的图片(超过视频内存可以存储)。关于在IOS opengl上快速交换纹理ES
我已经创建了一个用于制作缓冲区的代码,但是我在加载位图的时候遇到了很大的问题。
我的代码工作的:
我加载本地的位图文件路径的数组。
我(想)我preload我的位图数据在内存中。我用一个线程在NSArray中为我的所有图片存储一个CGImageRef(40时刻)
在第二个线程中,代码看另一个NSArray以确定是否为空,如果是空的,我通过创建纹理将我的cgimageRef绑定到视频内存。 (为此使用共享组) 该数组存储20个纹理名称的地址,并直接由openGL用于绘制表面。这个数组是我的(缓冲区)
当我玩我的动画,我从我的“缓冲区”和我的线程(在点3)加载一个新纹理删除旧纹理。
它的工作很棒,但速度非常慢,几秒钟后动画就会缺失。
你能帮我优化我的代码吗?