Frage

Ich bin mit FBOs in meiner OpenGL-code, und ich bin zu sehen Kompilierungsfehler auf GL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT.Was ist die Ursache dafür und wie kann ich es beheben?

War es hilfreich?

Lösung

Die Ursache von dieser Fehler ist eine ältere version von NVIDIA glext.h, die hat immer noch diese definition.In der Erwägung, dass die jüngsten Versionen GLEW nicht.Dies führt zu kompilierungsfehlern in code, den Sie geschrieben hatte, vorher oder im web.

Die GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT definition für FBO verwendet, um in der Spezifikation (und damit auch in header-Dateien).Aber, es wurde später entfernt.Der Grund dafür kann sein gefunden in der FBO extension Spezifikation (siehe Frage 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.

Um diesen Fehler zu beheben, entfernen Sie alle die Verwendung von GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT von Ihrem code aus.

Wenn diese ist nicht möglich, in Ihrer Einrichtung, dann fügen Sie eine dummy-definition zu Ihre glext.h oder glew.h - Datei wie folgt:

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top