OpenGL kodumda FBO s kullanıyorum ve GL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT
numaralı derlemelerde hatalar görüyorum. Bunun nedeni nedir ve nasıl düzeltebilirim?GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT hataları
4
A
cevap
4
Bu hatanın nedeni, bu tanıma hala sahip olan NVIDIA'nın glext.h'un eski bir sürümüdür. Oysa, GLEW'un en yeni sürümleri yok. Bu, daha önce yazdığınız veya web'den aldığınız koddaki derleme hatalarına yol açar.
FBO için GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT tanımı (başlık dosyaları ve dolayısıyla) tarifnamede mevcut olması için kullanılır. Ancak daha sonra kaldırıldı. Bunun nedeni, (Sayı 87 arayın) FBO extension specification bulunabilir:
(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.
Bu hatayı düzeltmek için koddan GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT tüm kullanımını kaldırın.
bu Kurulumunuzda mümkün değilse, o zaman dosyası bu gibi glext.h için veya glew.h bir kukla tanımını ekleyin:
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8