我正在開發一款採用NDK r6b的Android 2.2應用程序。我正在開發OpenGL ES 2.0代碼作爲本機代碼(C++)。爲什麼我會得到一個GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT?
我有這樣的C++代碼:
RenderingEngine2::RenderingEngine2()
{
// Create & bind the color buffer so that the caller can allocate its space.
glGenRenderbuffers(1, &m_renderbuffer);
checkGlError("01 - glGenRenderbuffers");
glBindRenderbuffer(GL_RENDERBUFFER, m_renderbuffer);
checkGlError("02 - glBindRenderbuffer");
LOG("RenderingEngine2::RenderingEngine2()");
}
void RenderingEngine2::Initialize(int width, int height)
{
LOG("RenderingEngine2::Initialize");
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA4, width, height);
// Create the framebuffer object and attach the color buffer.
glGenFramebuffers(1, &m_framebuffer);
checkGlError("03 - glGenFramebuffers");
glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer);
checkGlError("04 - glBindFramebuffer");
glFramebufferRenderbuffer(GL_FRAMEBUFFER,
GL_COLOR_ATTACHMENT0,
GL_RENDERBUFFER,
m_renderbuffer);
checkGlError("05 - glFramebufferRenderbuffer");
GLint status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if(status == GL_FRAMEBUFFER_COMPLETE)
{
LOG("Framebuffer completed");
}
else
{
LOGE("Framebuffer error: (0x%x)", status);
}
glViewport(0, 0, width, height);
checkGlError("06 - glViewPort");
m_simpleProgram = BuildProgram(SimpleVertexShader, SimpleFragmentShader);
glUseProgram(m_simpleProgram);
checkGlError("07 - glUseProgram");
// Initialize the projection matrix.
ApplyOrtho(2, 3);
// Initialize rotation animation state.
OnRotate(DeviceOrientationPortrait);
m_currentAngle = m_desiredAngle;
}
當我運行它,我得到一個GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT。
你知道爲什麼嗎?
對不起,但這不是問題。我取消了評論,但仍然收到相同的錯誤。感謝您的回答。 – VansFannel