bool Fbo::check_status(FboExceptionInvalidSpecification *resultExc) { GLenum status; status = (GLenum) glCheckFramebufferStatus(GL_FRAMEBUFFER); switch(status) { case GL_FRAMEBUFFER_COMPLETE: break; case GL_FRAMEBUFFER_UNSUPPORTED: *resultExc = FboExceptionInvalidSpecification("Unsupported framebuffer format"); return false; case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: *resultExc = FboExceptionInvalidSpecification("Framebuffer incomplete: missing attachment"); return false; case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: *resultExc = FboExceptionInvalidSpecification("Framebuffer incomplete: duplicate attachment"); return false; #if ! defined(KINSKI_GLES) case GL_ENUM(GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER): *resultExc = FboExceptionInvalidSpecification("Framebuffer incomplete: missing draw buffer"); return false; case GL_ENUM(GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER): *resultExc = FboExceptionInvalidSpecification("Framebuffer incomplete: missing read buffer"); return false; #endif default: *resultExc = FboExceptionInvalidSpecification("Framebuffer invalid: unknown reason"); return false; } return status == GL_FRAMEBUFFER_COMPLETE; }
bool Fbo::checkStatus( FboExceptionInvalidSpecification *resultExc ) { GLenum status; status = (GLenum) GL_SUFFIX(glCheckFramebufferStatus)( GL_SUFFIX(GL_FRAMEBUFFER_) ); switch( status ) { case GL_SUFFIX(GL_FRAMEBUFFER_COMPLETE_): break; case GL_SUFFIX(GL_FRAMEBUFFER_UNSUPPORTED_): *resultExc = FboExceptionInvalidSpecification( "Unsupported framebuffer format" ); return false; case GL_SUFFIX(GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_): *resultExc = FboExceptionInvalidSpecification( "Framebuffer incomplete: missing attachment" ); return false; case GL_SUFFIX(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_): *resultExc = FboExceptionInvalidSpecification( "Framebuffer incomplete: duplicate attachment" ); return false; case GL_SUFFIX(GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_): *resultExc = FboExceptionInvalidSpecification( "Framebuffer incomplete: attached images must have same dimensions" ); return false; case GL_SUFFIX(GL_FRAMEBUFFER_INCOMPLETE_FORMATS_): *resultExc = FboExceptionInvalidSpecification( "Framebuffer incomplete: attached images must have same format" ); return false; #if ! defined( CINDER_GLES ) case GL_SUFFIX(GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_): *resultExc = FboExceptionInvalidSpecification( "Framebuffer incomplete: missing draw buffer" ); return false; case GL_SUFFIX(GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_): *resultExc = FboExceptionInvalidSpecification( "Framebuffer incomplete: missing read buffer" ); return false; #endif default: *resultExc = FboExceptionInvalidSpecification( "Framebuffer invalid: unknown reason" ); return false; } return true; }