Wenn ich einen GLKViewController/GLKView zum Zeichnen mit CoreImage einrichte, erhalte ich manchmal den Hinweis im Titel.
Der Aufbau sieht folgendermaßen aus:
_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];
Ich habe UIKit-Unteransichten in der GLKView und es scheint, dass, wenn ich Ansichten hinzufügen/entfernen es irgendwie den Kontext vorübergehend ungültig machen. Die Sache ist (außer in einigen seltenen Fällen muss ich noch Ecke) das nächste Update kann ich in den Kontext ohne Probleme zeichnen.
Ich kann das Zeichnen wiederholen, wenn es fehlschlägt, aber wie kann ich wissen, dass der Kontext ungültig ist? Wie soll ich das erkennen oder verhindern, dass er ungültig wird?