如何在Windows平台搭建完整的OpenGL开发环境?

1.OpenGL概说

    OpenGL从本质上说是计算机图形学的一个编程接口(API)标准。该标准用C语言进行规范,规定了函数的原型与全局变量类型与名称。目前这个规范在各个平台上都有实现。在Linux+X平台上有Mesa3D,尽管名字不叫OpenGL但是完全符合OpenGL规范。mesa3D更新的速度很及时,基本上保持与OpenGL标准发展同步,所以如果在Linux平台开发OpenGL程序,只要这一个库就可以了。

    在Windows平台上,曾经的微软给予了很大支持,就是opengl32.lib, glu32.lib这两个库。然而随着微软脱离OpenGL协会发展自身的Direct3D后,这两个库再也没有更新过,目前仍只支持到OpenGL1.1版本,而最新的OpenGL规范以达到了3.0(2009)。

 

2.导出显卡驱动支持的OpenGL函数 

    那么,是不是说我们在Windows平台开发OpenGL程序,只能使用OpenGL1.1版本的API了呢?否。其实OpenGL32.lib,glu32.lib本身并没有实现OpenGL的功能,而是从显卡驱动程序(显卡供应商提供)导出这些函数的接口而已。Windows下各个显卡驱动始终保持着更新,并追随OpenGL新的版本规范,然而这些新函数并没有导出接口给开发者使用(这个导出工作显然不能有显卡供应商提供,那样的话,由于厂家众多,很难规范)。为了使用这些虽然存在但未导出的函数,我们有两种方法。

2.1手工导出要使用的OpenGL函数

    也就是通过

 

    hmoudle = LoadLibray("显卡驱动.dll");

    gl*=GetProcAddress(hmoudle, 要导出的函数名称);

    gl*(...);

这样做的最大缺点就是麻烦,没用到一个函数都要导出。

 

2.2 使用现有的扩展库

    有一些好人开发了扩展库,如glew。只要开发时包含了glew.h文件,只要显卡驱动支持的OpenGL函数都可以直接使用。glew的主要工作就是使用glewInit()函数导出所有显卡支持的函数。使得开发代码如下:

    glewInit();

    gl*(...);

 

 

你可能感兴趣的:(C/C++,Windows相关,图形图像处理)