1.OpenGL
OpenGL函数库相关的API有核心库(gl),实用库(glu), 辅助库(glut), 实用工具库,窗口库(glx, agl, wgl)和扩展函数库等。
gl是核心,glu是对gl的部分包装。
glx,agl,wgl是针对不同窗口系统的函数。
aux库,窗口管理、鼠标键盘事件处理等函数, 若干个基本的三维几何对象的创建函数。
glut是跨平台的OpenGl程序的工具包,比aux功能强大(aux很大程度上已被glut库取代)
扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的的函数。
2.glut:OpenGL工具库 OpenGL Utility Tookit (译 OpenGL实用工具包)
这部分函数以glut开头,主要包括窗口操作函数、窗口初始化、窗口大小、窗口位置等函数;
回调函数:响应刷新消息、键盘消息、鼠标消息、定时器函数等;
创建复杂三维物体;菜单函数;程序运行函数。glut对应的开源实现是freeglut。
3.glew---------------------------自动识别你的平台所支持的全部OpenGl高级扩展函数
GLUT或者FREEGLUT主要是1.0的基本函数功能;GLEW是使用OPENGL2.0之后的一个工具函数。
不同的显卡公司,也会发布一些只有自家显卡才支持的扩展函数,你要想用到这些函数,不得不去寻找最新的glext.h。
有了GLEW扩展库能自动识别你的平台所支持的全部OpenGl高级扩展函数。只要包含一个glew.h头文件,
你就能使用gl、glu、glex、wgl、glx、的u全部函数。
glad是glew的升级版,用哪个都行,区别是glew比较老,glad比较新。
4.glfw------------------------------跨平台,管理窗口,读取输入,处理事件。
glfw是OpenGL的轻量级框架,只负责跨平台必要做的事情。只有一个头文件,很少量的API,就完成了任务。
glfw的开发目的是用于替代glut。
glfw是一个轻量级,开源的,跨平台的库。支持OpenGL以及OpenGL ES,用来管理窗口,读取输入,处理事件。
因为OpenGL没有窗口管理的功能,于是有人编写工具来支持这些功能,比如早起glut,现在的freeglut。
glut太老,freeglult完全兼容glut,算是glut的替代品,功能齐全,但bug太多,稳定性不好,glfw应运而生。
glfw是glut的升级和改进,glew包含了OpenGL所需的核心。