我们说的OpenGL版本有两个概念:第一个是指电脑显卡支持的OpenGL版本,用如下代码可以测试你当前电脑的OpenGL版本:
#include<Windows.h>
#include <stdio.h>
#include <gl/GLUT.H>
int main(int argc, char** argv)
{
glutInit(&argc,argv);
//显示模式初始化
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
//定义窗口大小
glutInitWindowSize(300,300);
//定义窗口位置
glutInitWindowPosition(100,100);
//创建窗口
glutCreateWindow("OpenGL Version");
const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字
const GLubyte* Identifier = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
const GLubyte* OpenGLVersion =glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
const GLubyte* gluVersion= gluGetString(GLU_VERSION); //返回当前GLU工具库版本
printf("OpenGL实现厂商的名字:%s\n", name);
printf("渲染器标识符:%s\n", Identifier);
printf("OpenGL实现的版本号:%s\n",OpenGLVersion );
printf("GLU工具库版本:%s\n", gluVersion);
return 0;
}
当然,这个未必是你的显卡支持的最高版本,别忘了,有可能你的显卡驱动不够新,那么就赶紧更新显卡驱动吧,看看咱们的电脑显卡到底最高能支持什么版本的OpenGL。
第二个就是操作系统支持的OpenGL版本,由于我是在Windows下进行开发的,本文都围绕这个系统讨论的。我们知道microsoft有D3D(Direct3D),所以可想而知对于OpenGL的发展,肯定不会那么配合,所以支持的OpenGL版本不是很高,像我用的是Windows 32位系统,目前只是支持OpenGL1.1版本。所以此时,即使我们的显卡支持OpenGL 4.0也是徒劳的,因为你无法直接使用4.0里面的函数,看到前面那个直接了吗?为什么用蓝色标识出来呢?O(∩_∩)O~,别急,还是有其他办法的。
这时候该GLUT和GLEW两个扩展库登场了(当然,不止这两个扩展库,还有其他,例如glee,glu……),我们通过这两个扩展库,就可以不受windows的卑鄙约束了,这时候,只要你的显卡能支持到的版本,都可以用。最新的GLEW库好像是1.9版的,能支持最新的OpenGL版本。我有上传资源,有需要的可以到这个链接下载(完全OpenGL库)。至于怎么配置很简单,跟我们使用OpenGL的其他库一样配置就行,需要注意的是使用glew库需要初始化,调用glewInit()函数初始化即可。