objective c - Cómo cargar IOSurface en OpenGL para la aplicación Mac OS X Snow Leopard
objective-c macos (1)
Apple agregó el nuevo framework IOSurface como parte de la actualización de la firma 10.6 Mac OS X. Dado que este marco es relativamente nuevo, no he encontrado la gran cantidad de documentación necesaria sobre cómo usar esto correctamente.
Me preguntaba si hay alguien en StackOverflow que pueda ayudarme con el uso de IOSurface.
De todos modos, esto es lo que quiero hacer. En este momento, mi aplicación es muy simple para que pueda familiarizarme con IOSurfaces. Entonces, esencialmente, quisiera cargar una imagen en una textura IOSurface y mostrarla en un OpenGLView personalizado. Eso es todo lo que estoy buscando en este punto.
Para hacerlo más simple, solo cargo un color constante en IOSurface. Mi objetivo principal en este momento es crear una referencia de IOSurface y mostrarla en una vista de OpenGL personalizada.
Ayúdeme con las sentencias de declaración de la -IOSurface -Lindo datos en la IOSurface -y la sintaxis para dibujar la IOSurface en OpenGL.
Muy apreciado.
PD
IOSurface es como un administrador de memoria que pasa datos gráficos entre aplicaciones o algo así como una larga línea de eso.
He probado Google IOSurface. Y el sitio más útil es
http://cocoadhoc.blogspot.com/2009/09/hidden-gems-of-snow-leopard-iosurface.html
Sin embargo, cuando intenté compilar el código de ejemplo, tengo un error de compilación que indica que QTVisualContextRef y otras variables de QuickTime no se declararon. Tengo la última versión de Quick Time a través de la actualización automática.
La API de IOSurface es bastante similar a CVPixelBuffer de Core Video, que está documentada, por lo que podría comenzar mirando la documentación de CVPixelBuffer y comparando con IOSurfaceAPI.h.
Para vincular una textura OpenGL a una IOSurface, consulte la función CGLTexImageIOSurface2D, que se define en <OpenGL/CGLIOSurface.h>
.