Untested, mais cela devrait le faire:
GLint maxAtt = 0;
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxAtt);
int nAtt = 0;
for (int iAtt = 0; iAtt < maxAtt; ++iAtt) {
GLint objType = GL_NONE;
glGetFramebufferAttachmentParameteriv(
GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + iAtt,
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &objType);
if (objType != GL_NONE) {
++nAtt;
}
}
// nAtt is the number of color attachments.
Vous pouvez faire quelque chose de similaire à l'aide GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
au lieu de GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
, et en comparant la valeur à 0
.
... Vous ne connaissez pas? Je veux dire, c'est * votre * FBO, n'est-ce pas? –
@NicolBolas J'utilise une bibliothèque externe qui a la configuration. – debonair