Pregunta

Estoy usando FBOs en mi código OpenGL y veo errores de compilación en GL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT.¿Cuál es la causa de esto y cómo lo soluciono?

¿Fue útil?

Solución

La causa de este error es una versión anterior de NVIDIA. glext.h, que todavía tiene esta definición.Mientras que las versiones más recientes de brillaba no.Esto genera errores de compilación en el código que escribió anteriormente o que obtuvo de la web.

El GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT La definición de FBO solía estar presente en la especificación (y por lo tanto en los archivos de encabezado).Pero luego fue eliminado.La razón de esto se puede encontrar en el Especificación de extensión FBO (busque el número 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.

Para corregir este error, elimine todo el uso de GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT de tu código.

Si esto no es posible en su configuración, agregue una definición ficticia a su glext.h o glew.h archivo como este:

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top