我需要在iOS设备上移动屏幕上的大量像素。这样做最有效的方法是什么?
到目前为止,我正在使用glTexSubImage2D()
,但我想知道这是否可以更快地完成。我注意到OpenGL ES 2.0不支持像素缓冲区,但Core Video似乎使用了像素缓冲区。我可以用吗?或者也许是OpenGL的Apple扩展可以帮助我实现类似的东西(我想在WWDC 2012视频中看到了一个非常含糊的提及客户端存储扩展,但我找不到任何关于它的文档)?还有其他方法可以加快速度吗?
我主要关心的是glTexSubImage2D()
复制了我发送的所有像素。理想情况下,我想跳过复制数据的这一步骤,因为我已经准备好了......
答案 0 :(得分:2)
您可能想到的客户端存储扩展程序是CVOpenGLESTextureCacheCreateTextureFromImage
;完整的教程是here。这绝对是将数据传输到GPU的最快方式。
令人沮丧的是我在Apple的文档中唯一提到的是iOS 4.3 to 5.0 API Differences文档 - 快速搜索CVOpenGLESTextureCache.h
。