Pregunta

Tengo una pequeña configuración del proyecto usando OpenGL y Video Core. Me rinde a un FBO y uso esto como una textura para otras partes de la programación, pero sería más agradable pasar esta referencia de textura en forma de un cvopengltextureRef. Pero no puedo encontrar ninguna dounmentación útil sobre cómo crear este tipo de datos a partir de un nombre de textura y objetivo (sin copiar ningún dato).

¿Fue útil?

Solución

Según tengo entendido, a leer datos de un contexto de OpenGL, debe usar un CVOpenGLBufferRef (que es un tipo de CVImageBufferRef). La documentación afirma que estos envuelven pbuffers, pero supongo que trabajan con FBO. No lo he probado.

A prestar los datos de un CVOpenGLBufferRef, necesitas dibujarlo a una textura usando un CVOpenGLTextureCacheRef, que maneja un conjunto de CVOpenGLTextureRefs.

Si solo desea dibujar el contenido del búfer no modificado, probablemente sea más eficiente trabajar dentro de OpenGL. (Tenga en cuenta que puede compartir texturas/buffers entre contextos utilizando grupos compartidos, si es necesario).

Si necesita barajar buffers entre contextos, y no quiere toda esa abstracción esponjosa de alto nivel y documentación útil que obtiene con el video central, es posible que desee buscar iOSurface y Cgliosurface.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top