GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT Fehler
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?
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