在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做的?