現在、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 です。
1 つのビューではすべて正常に動作しますが、同じフレームを 2 番目のビューに描画したいのですが、その方法が想像できません。
それを行う最も簡単な方法は何ですか?もちろん、1 秒あたり 60 回 (少なくとも) 呼び出されるため、パフォーマンスも優れている必要があります。