2011-09-07 98 views
0

我在VS2010上構建GL應用程序,「gl.h」,「glu.h」在Windows 7 SDK中。我創建紋理貼圖與:爲什麼找不到GLU_BGRA?

gluBuild2DMipmaps(GL_TEXTURE_2D,GLU_RGBA,Bitmap.bmWidth,Bitmap.bmHeight, 
    GLU_RGBA,GL_UNSIGNED_BYTE,Dib_Handle); 

但是VS說: 「GLU_RGBA」 和 「GLU_BGRA」 找不到。

OpenGL的裁判指出,這些常量「僅當該GL版本是1.2或更高,如果GLU版本是1.3或更高」

不知道如何檢查出爲什麼呢?

+0

我的位圖是RGB倒置(紅藍交換順序) – jondinham

回答

4

它只叫GL_BGRA而不是GLU_BGRA。您可以使用glGetString(GL_VERSION)來檢查OpenGL版本。

+0

我的VS2010說沒有這樣的事情「GL_BGRA」,或我的「gl.h」是過時的? – jondinham

+3

@Paul:MSVC附帶(或至少用於)*古代* opengl頭文件。我建議從你的顯卡供應商(或[這裏](http://www.opengl.org/registry/api/glext.h))獲取更新版本。在MS opengl頭文件中,它最有可能仍然是'#define GL_BGRA_EXT 0x80E1',而我鏈接的新代碼顯示'#define GL_BGRA 0x80E1'。 – user786653

+0

非常感謝你user786653!它是GL_BGRA_EXT! – jondinham