Get the maximum number of colored framebuffer attachments?

I am developing an OpenGL application and I need to find how many color framebuffer attachments are supported. Is there a way to ask OpenGL for this value?

+3


source to share


2 answers


There are two values ​​that can potentially limit the number of attachments you can use:

  • GL_MAX_COLOR_ATTACHMENTS

    indicates how many color anchor points the FBO has. In other words, this corresponds to the maximum value n

    that you can use when specifying anchor points with GL_COLOR_ATTACHMENTn

    . This will limit the number of color textures / renders to simultaneously attach to the FBO. You can get this limit with:

    GLint maxAttach = 0;
    glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxAttach);
    
          

  • GL_MAX_DRAW_BUFFERS

    indicates how many buffers you can use at the same time. This is the maximum number of buffers you can go to glDrawBuffers()

    , as well as the maximum number of outputs allowed in fragment shaders. You can get this limit with:

    GLint maxDrawBuf = 0;
    glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuf);
    
          



These two values ​​do not need to be the same. Thus, it is possible that you can have a certain amount of attachments, but you cannot attract all of them at the same time.

The minimum value for both of these limits is 8 in OpenGL 3.x and up, up to the current 4.5 spec.

+9


source


You can get it by requesting



int maxColorAttachments;
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxColorAttachments);

      

+4


source







All Articles