2010-06-13 43 views
12

Pencereleri kullanıyorum ve çok fazla fonksiyonun gri olduğunu fark ettim çünkü #ifdef GL_GLEXT_PROTOTYPES tanımlı değil. Bunlardan biri VBO uzantısıdır. GL_GLEXT_PROTOTYPES öğesini tanımlamalı mıyım? Aksi takdirde başka nasıl Opengl32.dll kullanarak im beri VBOS kullanabilirsiniz (benim uygulama varsayılan olarak Windows'un yer almayan hiçbir dll bağımlılıkları sahip olmak istiyorum.) TeşekkürlerglGenBuffers tanımlı değil misiniz?

cevap

10

bu sorunun kurtulmak için.

Uzun bir hikaye, ancak devam ederse, Windows 'OpenGL kitaplığı yalnızca OpenGL 1.1 giriş noktalarını gösterir, bu nedenle bu sürümün dışındaki tüm işlevler wglGetProcAddress ile yüklenir. GLEW bunu yaparak bu sorunu çözmektedir. (Eğer bunları kullanmak)

http://glew.sourceforge.net/

Sadece GLEW ve GLU/GLUT bağlantı verirler.

+0

Bu, tüm eğitim sitelerinde daha belirgin olarak belirtilmelidir! Bağımlılıkları azaltmak için GLEW'den kaçıyordum. –

16

Evet, oldukça normal ve böyle bir şey olması beklenir:

#define GL_GLEXT_PROTOTYPES 

#include <GL/GL.h> 

OpenGL 3 uyumlu kod yazmak için çalışıyorsanız, normalde bu değiştirecek: Ben glew kullanmanızı tavsiye

#define GL_GLEXT_PROTOTYPES 1 
#define GL3_PROTOTYPES 1 

#include <GL3/GL3.h> 
+5

Şimdi ben linker hataları, herhangi bir lib opengl32 dışında eklemek gerekir? – jmasterx

+1

Bunu anladın mı? – zezba9000

+1

Teşekkürler. Bunu GLEW yaklaşımı üzerinde tercih ederim. Bir sebepten dolayı GLEW asla benim için çalışmaz (Linux, mesa). Rastgele segfault ile sonuçlanma eğilimindedir. – mgiuca