在 iOS 5 中,引入了 OpenGL ES 纹理缓存,以提供从相机视频数据到 OpenGL 的直接方式,而无需复制缓冲区。在WWDC 2011 的第 414 节——iOS 5 的 OpenGL ES 进展中对纹理缓存进行了简要介绍。
我发现了一篇有趣的文章,它最终进一步滥用了这个概念,并glReadPixels
通过简单地锁定纹理来绕过调用,然后直接访问缓冲区。
glReadPixels
由于 iPad 2 中使用的基于 tile 的渲染器(即使您只使用 1x1 纹理),它真的很慢。但是,所描述的方法似乎比glReadPixels
.
文章中提出的方法是否有效,是否可以用于提升依赖的应用程序glReadPixels
?
由于 OpenGL 与 CPU 并行处理图形数据,CVPixelBufferLockBaseAddress
调用如何知道渲染何时完成而不与 OpenGL 对话?