GPUImage与其他OpenGL上下文失败
问题描述:
在我的projiect中,我得到一个基于GPUImage
的不透明筛选器框架。 我想创建一个应用程序可以有一个像FaceTime一样的视频通话,所以我使用这个过滤框架提供了OpenGL ViewA
来渲染相机图像,使用我自己的openGL viewB
来渲染远程视频流。 现在我遇到了问题。 viewA
不规则地显示viewB
的内容。 特别是当viewA的框架发生变化时。像这样: 远程视频像素格式是I420,本地视频像素格式是NV12。所以在技术上
viewA
必须不能渲染viewB
的内容。就像你可以看到:viewA
显示viewB
的灰色图像。我假设viewA
以某种方式得到了YY平面数据viewB
。当viewA显示灰色图像时,帧速率大大减慢。 因为viewA
属于一个不透明的框架,我只能控制自己的OpenGL渲染部分viewB
。我不知道如何解决这个bug。它很可能是两个EAGLContext冲突,或者viewA
和viewB
以某种方式共享渲染/纹理缓冲区? 任何人,请帮助我。我这几天挣扎着。GPUImage与其他OpenGL上下文失败
答
事实证明,OpenGL上下文混淆管理导致了这个问题。