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]