我目前正在使用 OpenGL 将 QTMovie 的帧显示到 NSOpenGLView 中。为此,我正在使用以下代码创建纹理上下文:
// Called from a subclass of NSOpenGLView
QTOpenGLTextureContextCreate(kCFAllocatorDefault,
(CGLContextObj)[[self openGLContext] CGLContextObj],
(CGLPixelFormatObj)[[self pixelFormat] CGLPixelFormatObj],
NULL, &_textureContext);
然后,我将视觉上下文分配给电影,以便将帧绘制到该上下文中。我得到了这个位的实际框架:
OSStatus status = QTVisualContextCopyImageForTime(_textureContext, kCFAllocatorDefault,
NULL, &_currentFrameTex);
_currentFrameTex
CVOpenGLTextureRef在哪里。
所有这一切都适用于一个视图,但我想在第二个视图上绘制相同的框架,我无法想象如何做到这一点。
最简单的方法是什么?当然,它也应该是高性能的,因为它被称为每秒 60 次(至少)。