Opengl es CoreImage:EagleContext帧缓冲区或renderbuffer配置不正确

Opengl es CoreImage:EagleContext帧缓冲区或renderbuffer配置不正确,opengl-es,ios5,core-image,eaglcontext,Opengl Es,Ios5,Core Image,Eaglcontext,当我为CoreImage绘图设置GLKViewController/GLKView时,我有时会在标题中看到通知 设置如下所示: _context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; self.view.context = _context; self.view.drawableDepthFormat = GLKViewDrawableDepthFormat24; self.view.background

当我为CoreImage绘图设置GLKViewController/GLKView时,我有时会在标题中看到通知

设置如下所示:

_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];

self.view.context = _context;
self.view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
self.view.backgroundColor = UIColor.blackColor;
self.view.contentScaleFactor = UIScreen.mainScreen.scale;

glGenRenderbuffers(1, &_render_buffer);
glBindRenderbuffer(GL_RENDERBUFFER, _render_buffer);
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);

_core_image_context = [CIContext contextWithEAGLContext: _context];

[EAGLContext setCurrentContext:_context];
我在GLKView中有UIKit子视图,当我添加/删除视图时,它似乎会暂时使上下文无效。 问题是(除了在一些罕见的情况下,我仍然需要角)下一个更新,我可以在上下文中绘制,没有任何问题


如果绘图失败,我可以重试绘图,但如何知道上下文无效?我应该如何检测它或防止它失效?

A
GLKView
设置并管理渲染缓冲区。通过显式调用
glGenRenderBuffers()
glbindrrenderbuffer()
您混淆了
GLKView
的配置