CoreImage:EAGLContext帧缓冲区或渲染缓冲区配置不正确

hli*_*tbe 6 opengl-es core-image eaglcontext ios5

当我使用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];
Run Code Online (Sandbox Code Playgroud)

我在GLKView中有UIKit子视图,似乎当我添加/删除视图时,它会以某种方式暂时使上下文无效.事情是(除了在极少数情况下我仍然需要转弯)我可以在上下文中绘制的下一个更新没有麻烦.

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

Mr.*_*rna 1

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