2016-03-07 2 views
1

Как я могу получить количество вложений цветов в настоящее время для привязки FBO? Я проверил glGetInteger и glGetFramebufferAttachmentParameteriv, но у них нет перечисления, чтобы получить эти значения.Как получить количество вложений в FBO

+0

... Разве вы не знаете? Я имею в виду, это * ваш * FBO, не так ли? –

+0

@NicolBolas Я использую внешнюю библиотеку, у которой есть настройка. – debonair

ответ

4

непроверенная, но это должно сделать это:

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. 

Вы могли бы сделать что-то подобное, используя GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME вместо GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE и сравнивающий значение 0.

Смежные вопросы