Когда я настраиваю GLKViewController / GLKView для рисования с CoreImage, я иногда получаю уведомление в заголовке.
Настройка выглядит следующим образом:
_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];
У меня есть подвиды UIKit в GLKView, и кажется, что когда я добавляю / удаляю виды, это временно делает контекст недействительным.
Дело в том (за исключением некоторых редких случаев, когда мне все еще нужно заглядывать), следующее обновление, которое я могу нарисовать в контексте без проблем.
Я могу повторить попытку рисования, если она не удалась, но как я могу узнать, что контекст недействителен? Как я должен обнаружить его или предотвратить его аннулирование?