Сведения о вопросе

Getthesound

02:06, 4th August, 2020

Теги

opengl   fbo    

GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT ошибки

Просмотров: 481   Ответов: 1

Я использую FBO s в моем коде OpenGL, и я вижу ошибки компиляции на GL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT . В чем причина этого и как я могу это исправить?



  Сведения об ответе

repe

17:50, 8th August, 2020

Причиной этой ошибки является более старая версия NVIDIA glext.h, которая все еще имеет это определение. В то время как самые последние версии GLEW этого не делают. это приводит к ошибкам компиляции в коде, который вы написали ранее или получили из интернета.

Определение GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT для FBO обычно присутствовало в спецификации (и, следовательно, в заголовочных файлах). Но, это было позже удалено. Причину этого можно найти в спецификации расширения FBO (см. выпуск 87):

(87) What happens if a single image is attached more than once to a
     framebuffer object?

     RESOLVED: The value written to the pixel is undefined.

     There used to be a rule in section 4.4.4.2 that resulted in
     FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT if a single
     image was attached more than once to a framebuffer object.

         FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT   0x8CD8

         * A single image is not attached more than once to the
           framebuffer object.

           { FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT }

     This rule was removed in version #117 of the
     EXT_framebuffer_object specification after discussion at the
     September 2005 ARB meeting.  The rule essentially required an
     O(n*lg(n)) search.  Some implementations would not need to do that
     search if the completeness rules did not require it.  Instead,
     language was added to section 4.10 which says the values
     written to the framebuffer are undefined when this rule is
     violated.

Чтобы устранить эту ошибку, удалите все использование GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT из кода.

Если это невозможно в настройках, добавьте фиктивное определение в файл glext.h или glew.h следующим образом:

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться