我在linux上玩了一點opengl編程,我有些疑惑。OpenGL頭文件版本信息不匹配
的glxinfo讓我對OpenGL的版本如下:
的OpenGL版本字符串:2.1梅薩7.11
我想這意味着我的系統支持OpenGL 2.1使用Mesa實現。
然後,從/ usr/include中,我發現有點像,如果我看GL/gl.h:
#define GL_VERSION_1_1 1
#define GL_VERSION_1_2 1
#define GL_VERSION_1_3 1
#define GL_ARB_imaging 1
所以GL_VERSION_xx不是爲1.4,1.5,2.0定義。所以我的問題是,爲什麼頭文件不包括GL版本的定義(至少)2.0? 我應該用更合適的東西來更改GL/gl.h頭文件嗎?
有關信息,我使用的是標準的ubuntu linux安裝。這裏是一些從glxinfo更多的信息:
OpenGL vendor string: X.Org R300 Project
OpenGL renderer string: Gallium 0.4 on ATI RV515
OpenGL version string: 2.1 Mesa 7.11
OpenGL shading language version string: 1.20
弗朗西斯
因此,在頭文件中定義的GL_VERSION_X_X並不重要,因爲一切都是在運行時確定的?這似乎很奇怪,但我認爲你是對的... – Francesco 2011-12-30 15:50:30
@Francesco:頭文件的GL_VERSION_X_X宏只是告訴你,你可以從頭文件中獲得哪些OpenGL符號(令牌和過程)。這個想法是,你添加了一些#ifndef宏,如果安裝的頭文件沒有包含編譯時所需的所有符號,它會在編譯時發出一些錯誤。 – datenwolf 2011-12-30 17:46:43