Frage

Ich habe ein kleines Projekt -Setup mit OpenGL und Core Video. Ich rendere einen FBO und benutze diese als Textur für andere Teile des Programms, aber es wäre schöner, diese Texturreferenz in Form eines CvopenglExtureref zu übergeben. Ich kann jedoch keine nützliche Verdoppelung finden, wie dieser Datentyp aus einem Texturnamen und Ziel erstellt wird (ohne Daten zu kopieren).

War es hilfreich?

Lösung

Wie ich es verstehe, zu lesen Daten aus einem OpenGL -Kontext müssen Sie a verwenden CVOpenGLBufferRef (was eine Art von Art von ist CVImageBufferRef). Die Dokumentation behauptet, dass diese PBUFFERS, aber ich würde vermuten, dass sie mit FBOs arbeiten. Ich habe es nicht versucht.

Zu machen die Daten von a CVOpenGLBufferRef, Sie müssen es mit a auf eine Textur ziehen CVOpenGLTextureCacheRef, was einen Satz von verwaltet CVOpenGLTextureRefs.

Wenn Sie nur den unmodifizierten Puffergehalt zeichnen möchten, ist es wahrscheinlich effizienter, innerhalb von OpenGL zu arbeiten. (Beachten Sie, dass Sie bei Bedarf Texturen/Puffer zwischen Kontexten teilen können.)

Wenn Sie Puffer zwischen den Kontexten mischen müssen und nicht all diese flauschige Abstraktion und hilfreiche Dokumentation, die Sie mit Kernvideo erhalten, möchten, möchten Sie sich möglicherweise in iOSurface und Cgliosurface befassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top