在iOS 5中,OpenGL ES的纹理缓存被引入提供摄像头的视频数据到OpenGL的一个直接的方式,而不需要复制缓冲区。有一个session 414 - Advances in OpenGL ES for iOS 5 of WWDC 2011的纹理缓存简要介绍。使用OpenGL ES的纹理缓存,而不是glReadPixels获得的纹理数据
我发现了一个有趣的article,它最终会进一步滥用这个概念,并通过简单地锁定纹理,然后直接访问缓冲区来绕过对glReadPixels
的调用。
glReadPixels
实在是太慢了,由于这是在iPad 2的(即使只使用1x1的纹理)使用基于区块的渲染器。但是,所描述的方法似乎处理得比glReadPixels
更快。
的文章中所提出的方法,即使有效,可以把它用来提高依赖于glReadPixels
应用程序?
由于OpenGL的在CPU并行处理图形数据时,CVPixelBufferLockBaseAddress
电话怎么会知道当渲染,无需与OpenGL做的?