En iOS 5, se introdujeron los cachés de texturas OpenGL ES para proporcionar un camino directo desde los datos de video de la cámara a OpenGL sin la necesidad de copiar los almacenamientos intermedios. Hubo una breve introducción a los cachés de texturas en session 414 - Advances in OpenGL ES for iOS 5 of WWDC 2011.Uso de cachés de texturas OpenGL ES en lugar de glReadPixels para obtener datos de textura
Encontré un interesante article que abusa de este concepto aún más al final y elude una llamada a glReadPixels
simplemente bloqueando la textura, y luego accediendo al búfer directamente.
glReadPixels
es muy lento debido al renderizador basado en mosaico que se utiliza en iPad 2 (incluso cuando se usan texturas 1x1). Sin embargo, el método descrito parece procesar más rápido que glReadPixels
.
¿El método propuesto en el artículo es válido y se puede utilizar para impulsar las aplicaciones que se basan en glReadPixels
?
Dado que OpenGL procesa los datos gráficos en paralelo a la CPU, ¿cómo debe saber la llamada CVPixelBufferLockBaseAddress
cuando la representación se realiza sin hablar con OpenGL?