Вопрос

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

Это было полезно?

Решение

Причиной этой ошибки является более старая версия NVIDIA glext.h, который все еще имеет это определение.Принимая во внимание, что самые последние версии РАДОВАТЬСЯ не надо.Это приводит к ошибкам компиляции в коде, который вы написали ранее или получили из Интернета.

Тот Самый 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 или глю.ч файл, подобный этому:

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top