glut:OpenGL Utility Toolkit,用于开发独立于窗口系统的OPENGL程序。其中打包了很多窗口操作相关的接口,包括窗口创建、显示、输入设备读取、窗口管理等;使用它可以在OPENGL开发中快速完成窗口的相关操作。不过已经在1998年停止更新与维护。
freeglut:一个完全开源的替代glut的库
glew:OpenGL Extension Wrangler Library,一个跨平台的C++扩展库,基于OpenGL图形接口。以Windows平台开发为例,Windows默认只支持OpenGL1.1版本,无法使用更高版本GL的特性和接口函数,但是我们只需要包含这个库和对应的.h文件,即可使用相关的接口和特性,十分方便。注意glewInit()的初始化调用,否则直接调用OpenGL1.1版本以上接口时会出现编译错误,即使你加载了对应的库文件。
gles:OpenGL for Embedded Systems,针对嵌入式设备的API子集,相对于OpenGL“阉割”去了一部分接口,而且在shader语法上有一定的区别
EGL:EGL是渲染API(如OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL是一个操作GPU的API,它通过驱动向GPU发送相关指令,控制图形渲染管线与状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要一个中间层,且最好是与平台无关的。因此EGL被设计出来,作为OpenGL和原生窗口系统之间的桥梁。
如果只是在Window编译OPENG工程,一般使用freeglut+glew即可满足大部分需求;另外还有glfw、glaux等,目前还没有使用过。
网上有一张图总结的还不错,引用一下。
参考:
https://www.cnblogs.com/chencarl/p/10722839.html
https://www.cnblogs.com/mazhenyu/p/6477663.html