常見的OpenGL頭文件如下:(Windows系統(tǒng)中可以忽略大小寫的區(qū)別,同時(shí)文件的路徑可能變化,例如不是<GL/gl.h>而是"gl.h",具體情況要看你到底把頭文件放到哪了)
<GL/gl.h>:OpenGL所使用的函數(shù)和常量聲明。
<GL/glu.h>:GLU(OpenGL實(shí)用庫)所使用的函數(shù)和常量聲明。GLU庫屬于OpenGL標(biāo)準(zhǔn)的一部分。(以下各種庫則不屬于)
<GL/glaux.h>:GLAUX(OpenGL輔助庫)所使用的函數(shù)和常量聲明。這個(gè)庫提供了創(chuàng)建窗口,處理鍵盤和鼠標(biāo)事件,設(shè)置調(diào)色板等OpenGL本身不提供,但在編寫OpenGL程序時(shí)又經(jīng)常用到的功能。目前這個(gè)庫已經(jīng)過時(shí),只有比較少的編譯環(huán)境中有提供,例如VC系列。在VC系列編譯器中,使用這個(gè)頭文件之前必須使用#include <windows.h>或者具有類似功能的頭文件。
<GL/glut.h>:GLUT(OpenGL實(shí)用工具包)所使用的函數(shù)和常量聲明。這個(gè)庫的功能大致與GLAUX類似,目前許多OpenGL教程使用這個(gè)庫來編寫演示程序。一些編譯系統(tǒng)可能不直接提供這個(gè)庫(例如VC系列),需要單獨(dú)下載安裝。這個(gè)頭文件自動(dòng)包含了<GL/gl.h>和<GL/glu.h>,編程時(shí)不必再次包含它們。
<GL/glext.h>:擴(kuò)展頭文件。因?yàn)槲④浌緦penGL的支持不太積極,VC系列編譯器雖然有<GL/gl.h>這個(gè)頭文件,但是里面只有OpenGL 1.1版本中所規(guī)定的內(nèi)容,而沒有OpenGL 1.2及其以后版本。對當(dāng)前的計(jì)算機(jī)配置而言,幾乎都支持OpenGL 1.4版本,更高的則到1.5, 2.0, 2.1,而VC無法直接使用這些功能。為了解決這一問題,就有了<GL/glext.h>頭文件。這個(gè)頭文件提供了高版本OpenGL所需要的各種常數(shù)聲明以及函數(shù)指針聲明。
<GL/wglext.h>:擴(kuò)展頭文件。與<GL/glext.h>類似,但這個(gè)頭文件中只提供適用于Windows系統(tǒng)的各種OpenGL擴(kuò)展所使用的函數(shù)和常量,不適用于其它操作系統(tǒng)。
"glee.h":GLEE開源庫的頭文件。它的出現(xiàn)是因?yàn)?lt;GL/glext.h>雖然可以使用高版本的OpenGL函數(shù),但是使用的形式不太方便。GLEE庫則讓高版本的OpenGL函數(shù)與其它OpenGL函數(shù)在使用上同樣方便。需要注意的是,這個(gè)頭文件與<GL/gl.h>是沖突的,在包含"glee.h"之前,不應(yīng)該包含<GL/gl.h>。
1 #include <GL/glut.h>
2 #include "glee.h" // 錯(cuò)誤,因?yàn)間lut.h中含有g(shù)l.h,它與glee.h沖突
3 // 但是如果把兩個(gè)include順序交換,則正確