Question

j'utilise FBOs dans mon code OpenGL et je vois des erreurs de compilation sur GL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT.Quelle en est la cause et comment puis-je y remédier ?

Était-ce utile?

La solution

La cause de cette erreur est une ancienne version de NVIDIA glext.h, qui a toujours cette définition.Alors que les versions les plus récentes de GLUER ne le faites pas.Cela entraîne des erreurs de compilation dans le code que vous aviez écrit précédemment ou obtenu sur le Web.

Le GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT La définition de FBO était présente dans la spécification (et donc dans les fichiers d'en-tête).Mais il a été supprimé par la suite.La raison de cela peut être trouvée dans le Spécification de l'extension FBO (recherchez le numéro 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.

Pour corriger cette erreur, supprimez toute utilisation de GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT à partir de votre code.

Si cela n'est pas possible dans votre configuration, ajoutez une définition factice à votre glext.h ou lueur.h fichier comme ceci :

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top