OpenGL学习笔记(3)--OpenGL中几种头文件的作用及区别

来源:互联网 发布:淘宝购买管制刀具 编辑:程序博客网 时间:2024/04/30 03:52

初学OpenGL的时候,在cpp源文件中经常需要引用到gl.h、glu.h、gltools.h等各种头文件,其实也不知道每个头文件都是干啥用的,通过网上资源了解了下,现在来总结下:

1、gl.h  

按照约定,所有的OpenGL函数、类型和宏的原型都包含在头文件gl.h中。

2、glu.h (OpenGL Utility library):

OpenGL 工具函数库,主要定义OpenGL中的一些工具函数

3、glut.h(OpenGL Utility Toolkit):OpenGL实用工具库。

这个库的出现是取代了AUX(OpenGL辅助函数库)。AUX的作用是帮助人们学习和编写OpenGL程序,而不必为任何平台特定的细节而分身。缺点是缺乏对GUI(graphic user interface,图形用户接口)功能的支持,所以,限制了使用这个函数库创建实用的应用程序。so,有了GLUT。在绝大数的Unix(包括Linux)系统中都对GLUT函数库进行了支持,并且在Max OS X系统中,对GLUT进行了本地支持,Apple对这个函数库进行了维护和扩展。但是在Windows系统中,GLUT的开发已经中断。一种新的GLUT实现freeglut已经崛起并取代了GLUT的位置。

如果只是在Windows平台下开发OpenGL应用程序,而不考虑代码移植的问题,则可以完全使用freeglut取代GLUT;但是如果开发的OpenGL应用程序需要进行跨平台移植的话,使用GLUT可能会更方便。

4、gltools.h

负责所有平台特定的变型。下面是该文件中的部分内容。

// Windows
#ifdef WIN32
#include <windows.h> // Must have for Windows platform builds
#include "glee.h" // OpenGL Extension "autoloader"
#include <gl\gl.h> // Microsoft OpenGL headers (version 1.1 by themselves)
#include <gl\glu.h> // OpenGL Utilities
#include "glut.h" // Glut (Free-Glut on Windows)
#endif

glee.h 表示OpenGL Easy Extension库。这个库在项目中透明地添加了OpenGL扩展。基本的Microsoft头文件只包含了OpenGL1.1的功能,GLEE在项目中添加了其他的API。

到这里,相信大家对这几个库之间的相互包含关系,以及每个库的作用有了大概的了解。
0 0
原创粉丝点击