Вопрос

У меня есть небольшая настройка проекта с использованием OpenGL и Core Video. Я рендеринг в FBO и использую это в качестве текстуры для других частей программы, но было бы лучше передать эту ссылку на текстуру в форме cvopenglTextUreref. Но я не могу найти какое -либо полезное двойение, как создать этот дат данных из имени текстуры и цели (без копирования каких -либо данных).

Это было полезно?

Решение

Насколько я понимаю, чтобы читать данные из контекста OpenGL, вам необходимо использовать CVOpenGLBufferRef (который является типом CVImageBufferRef) В документации утверждается, что эти обертывания Pbuffers, но я предполагаю, что они работают с FBO. Я не пробовал это.

К оказывать Данные из CVOpenGLBufferRef, вам нужно привлечь его к текстуре, используя CVOpenGLTextureCacheRef, который управляет набором CVOpenGLTextureRefс

Если вы хотите только нарисовать немодифицированное буферное содержимое, вероятно, более эффективно работать в OpenGL. (Обратите внимание, что вы можете поделиться текстурами/буферами между контекстами, используя группы общих групп, если это необходимо.)

Если вам нужно перетасовать буферы между контекстами, и вы не хотите, чтобы вся эта пушистая абстракция высокого уровня и полезная документация, которую вы получаете с основным видео, вы можете захотеть изучить ioSurface и cglioSurface.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top