GPUImage与其他OpenGL上下文一起使用失败

时间:2016-09-27 17:36:50

标签: ios opengl-es eaglcontext

在我的projiect中,我得到一个基于GPUImage的不透明过滤器框架。 我想创建一个应用可以像FaceTime一样进行视频通话,所以我使用提供OpenGL ViewA的过滤器框架来渲染相机图像,使用我自己的openGL viewB来呈现远程视频流。 现在我遇到了问题。 viewA不规则地显示了viewB的内容。  特别是当viewA的框架发生变化时。像这样: enter image description here 远程视频像素格式为I420,本地视频像素格式为NV12。从技术上讲,viewA必须无法呈现viewB的内容。如您所见:viewA显示viewB的灰色图像。我假设viewA以某种方式得到viewB的Y平面数据。当viewA显示灰度图像时,它的帧速率大大减慢。 因为viewA属于不透明框架,所以我只能控制自己的OpenGL渲染部分viewB。我不知道如何解决这个bug。两个EAGLContext很可能是冲突,或viewAviewB以某种方式共享渲染/纹理缓冲区? 任何人,请帮助我。我这几天都在挣扎。

1 个答案:

答案 0 :(得分:0)

事实证明,OpenGL上下文混乱管理导致了这个问题。