2014-09-12 24 views
1

我正在用SDL設置一個OpenGL C++程序作爲'包裝程序'。我馬上注意到,當我加入這一行:帶有SDL的glload頭文件

#include <glload/gl_3_3.h> 
#include <glload/gl_load.hpp> 

所有的「老」的OpenGL的命令,比如在glBegin(),glEnd()等變得不確定,儘管我仍然有

#include <GL\GLU.h> 

就在它之後。這不是一個問題,因爲我目前不打算在這個程序中使用它們,但這有點令人討厭,我想知道是否有解決方法。

而且,那爲什麼我要使用

<glload/gl_3_3.h> 

,而不是

<glload/gl_3_3.hpp> 

即使我在C++我寫,而不是C,這似乎違背了glsdk文檔?

glsdk_0_5_2 /文檔/ HTML/group__module__glload.html

+0

爲什麼它很煩人,如果你不打算使用它們? – 2014-09-12 16:18:59

+0

因爲這讓我不知道爲什麼會打破它,並且因爲我將來可能會使用它們。 – Robomoo 2014-09-12 16:22:07

+1

它打破了它們,因爲它們不再是OpenGL的一部分;他們已經從標準中刪除(在3.3中沒有提及它們,並且你要求3.3 API)。不,你永遠不想使用它們。 – 2014-09-12 16:23:18

回答

0

當請求的3.3版API,你要求這一點。從OpenGL 3.3開始,glBegin,glEnd,以及許多舊的固定管道功能已被刪除。

你真的不應該擔心它,只是針對你選擇的API版本進行編碼;你當然不會錯過任何舊功能。