   framebuffer completeness
  I have the code below which looks identical to code on many other sites. I'm trying to make a framebuffer and attach a texture. However, it says immediately after the code below that the framebuffer isn't complete. What am I missing?  glGenTextures(1, &texture);  glBindTexture(GL_TEXTURE_2D, texture);  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);  // set your texture parameters here if required ...  // create final fbo and attach texture to it  glGenFramebuffersEXT(1, &fbo);  glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);  glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texture, 0);Thanks for your help!   
  You need to create a depth buffer (by creating a render buffer) and attach it to the FBO. Theres a pretty good tutorial of the basics here:http://www.gamedev.net/reference/programming/features/fbo1/   ;  Does this mean all framebuffers need a depth buffer? Or can I disable depth testing during this post processing stage, and only reenable it when I'm bound to another buffer?   ;  EDIT: I've added a color buffer and it still doesn't work; I tried rearranging the order (color before depth, depth before color, etc.) and it doesn't like eaither.EDIT: I've done more looking and found a list of responses for the glCheckFramebufferStatus function. In case anyone else struggles with this they can use this code:  switch (glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)){    case GL_FRAMEBUFFER_COMPLETE: cout << "Complete." << endl; break;    case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: cout << "Incomplete Attachment" << endl; break;    case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: cout << "Incomplete Missing Attachment" << endl; break;    case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: cout << "Incomplete Draw Buffer" << endl; break;    case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: cout << "Incomplete Read Buffer" << endl; break;    case GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: cout << "Incomplete Multisample" << endl; break;    case GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: cout << "Incomplete Layer Targets" << endl; break;    case GL_FRAMEBUFFER_UNSUPPORTED: cout << "Framebuffer Unsupported" << endl; break;    default: cout << "Unknown: " << glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) << endl;  } and check what each means here:http://www.opengl.org/wiki/Framebuffer_Object#Framebuffer_Completenessin any case it says mine is an unsupported format which doesn't make sense because it's always been GL_RGBA. OH well. More research.[Edited by - whiterook6 on April 10, 2010 8:37:15 AM];  Are you setting the MIN/MAG filters of that texture? Try setting them to LINEAR or NEAREST.   ;Quote:Original post by whiterook6Does this mean all framebuffers need a depth buffer? Or can I disable depth testing during this post processing stage, and only reenable it when I'm bound to another buffer?No, you don't need a depth buffer. Call glDisable(GL_DEPTH_TEST) and glDepthMask(FALSE)That will disable the depth test and prevent depth buffer writes.   