Sansus
12-12-2006, 07:52 AM
How is it possible this code gives me a n incomplete fbo?
GLuint fb, rtt, depth_rb, depth_stencil_rb;
glGenFramebuffersEXT(1,&fb);
glGenTextures(1,&rtt);
glBindTexture(GL_TEXTURE_2D,rtt); glTexImage2D(GL_TEXTURE_2D,0,GL_DEPTH_COMPONENT16, t->GetWidth(),t->GetHeight(),0,GL_DEPTH_COMPONENT,GL_UNSIGNED_BYTE, NULL);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fb);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_DE PTH_ATTACHMENT_EXT,GL_TEXTURE_2D,rtt,0);
glDrawBuffer(GL_NONE);
glReadBuffer(GL_NONE);
GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
switch(status)
{
case GL_FRAMEBUFFER_COMPLETE_EXT:
break;
case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
throw sandra::error::RenderToTexture("Framebuffer object mode unssupported!");
break;
default: /* programming error; will fail on all hardware */
assert(0);
} It runs as expected on nvidia harware.
GLuint fb, rtt, depth_rb, depth_stencil_rb;
glGenFramebuffersEXT(1,&fb);
glGenTextures(1,&rtt);
glBindTexture(GL_TEXTURE_2D,rtt); glTexImage2D(GL_TEXTURE_2D,0,GL_DEPTH_COMPONENT16, t->GetWidth(),t->GetHeight(),0,GL_DEPTH_COMPONENT,GL_UNSIGNED_BYTE, NULL);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fb);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_DE PTH_ATTACHMENT_EXT,GL_TEXTURE_2D,rtt,0);
glDrawBuffer(GL_NONE);
glReadBuffer(GL_NONE);
GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
switch(status)
{
case GL_FRAMEBUFFER_COMPLETE_EXT:
break;
case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
throw sandra::error::RenderToTexture("Framebuffer object mode unssupported!");
break;
default: /* programming error; will fail on all hardware */
assert(0);
} It runs as expected on nvidia harware.