Я использую контекст EAGL и представление для обычной визуализации экрана моего приложения. Это включает (как и ожидалось) создание и привязку рендербуфера и кадрового буфера к представлению CAEAGLLayer
. Это работает как ожидалось.
Однако иногда я хочу использовать OpenGL для полной визуализации некоторой геометрии за пределами экрана (с целью получения результирующих необработанных пикселей.)
Я установил внеэкранную поверхность так, как мне подсказывают Apple Docs . Я не буду публиковать код, который я использую (если кто-то не спросит меня), поскольку это дословно то, что указано на этой странице в разделе «Объекты закадрового буфера».
Но на последнем шаге glCheckFramebufferStatusOES
всегда возвращает ошибку GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
вместо ожидаемого успеха. Первоначально я думал, что это происходит, потому что уже был связан кадровый буфер (CAEAGLLayer one), но проблема сохраняется, даже если я уничтожу этот кадровый буфер перед созданием закадрового.
Может кто-нибудь указать мне правильное направление, как заставить эту работу? Возможно, я неправильно понимаю нечто фундаментальное в конвейере GL (не в первый раз).
Спасибо!