На устройстве iOS (iPad) я решил изменить хранилище для моего буфера рендеринга с CAEAGLLayer, который поддерживает представление в явное хранилище через glRenderbufferStorage. К сожалению, следующий код не может привести к правильному FBO. Может кто-нибудь сказать мне, что я пропустил?:
glGenFramebuffers(1, &m_framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer);
glGenRenderbuffers(1, &m_colorbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, m_colorbuffer);
GLsizei width = (GLsizei)layer.bounds.size.width;
GLsizei height = (GLsizei)layer.bounds.size.height;
glRenderbufferStorage(m_colorbuffer, GL_RGBA8_OES, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_colorbuffer);
Примечание:
Размер слоя правильный и правильный.
Это надежный рабочий код рендеринга. Единственное изменение, которое я делаю, это строка:
glRenderbufferStorage(...)
ранее я делал:
[m_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:layer]