Как создать cvopengltextureref из текстуры OpenGL
-
24-10-2019 - |
Вопрос
У меня есть небольшая настройка проекта с использованием OpenGL и Core Video. Я рендеринг в FBO и использую это в качестве текстуры для других частей программы, но было бы лучше передать эту ссылку на текстуру в форме cvopenglTextUreref. Но я не могу найти какое -либо полезное двойение, как создать этот дат данных из имени текстуры и цели (без копирования каких -либо данных).
Решение
Насколько я понимаю, чтобы читать данные из контекста OpenGL, вам необходимо использовать CVOpenGLBufferRef
(который является типом CVImageBufferRef
) В документации утверждается, что эти обертывания Pbuffers, но я предполагаю, что они работают с FBO. Я не пробовал это.
К оказывать Данные из CVOpenGLBufferRef
, вам нужно привлечь его к текстуре, используя CVOpenGLTextureCacheRef
, который управляет набором CVOpenGLTextureRef
с
Если вы хотите только нарисовать немодифицированное буферное содержимое, вероятно, более эффективно работать в OpenGL. (Обратите внимание, что вы можете поделиться текстурами/буферами между контекстами, используя группы общих групп, если это необходимо.)
Если вам нужно перетасовать буферы между контекстами, и вы не хотите, чтобы вся эта пушистая абстракция высокого уровня и полезная документация, которую вы получаете с основным видео, вы можете захотеть изучить ioSurface и cglioSurface.