Насколько я понимаю, для чтения данных из контекста OpenGL необходимо использовать CVOpenGLBufferRef
(это тип CVImageBufferRef
). В документации утверждается, что это pbuffers, но я думаю, они работают с FBO. Я не пробовал это.
Для рендеринга данных из CVOpenGLBufferRef
, вам нужно нарисовать их в текстуру, используя CVOpenGLTextureCacheRef
, который управляет набором CVOpenGLTextureRef
s.
Если вы хотите только нарисовать немодифицированное содержимое буфера, возможно, более эффективно работать в OpenGL. (Обратите внимание, что вы можете совместно использовать текстуры / буферы между контекстами, используя группы общего доступа, если это необходимо.)
Если вам нужно перетасовать буферы между контекстами, и вам не нужна вся эта пушистая высокоуровневая абстракция и полезная документация, которые вы получаете с Core Video, вы, возможно, захотите изучить IOSurface и CGLIOSurface.