2008-08-18 6 views

Répondre

4

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 GLEW ne le font pas. Cela conduit à des erreurs de compilation dans le code que vous avez écrit précédemment ou obtenu sur le web.

La définition de GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT pour FBO utilisée pour être présent dans la spécification (et donc dans les fichiers d'en-tête). Mais, il a été retiré plus tard. La raison se trouve dans le FBO extension specification (cherchez question 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 est impossible dans votre configuration, puis ajouter une définition factice à votre glext.h ou glew.h fichier comme ceci:

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8