46

我最近开始学习 OpenGL (> 3.3) 并且我注意到很多示例和教程都使用了 freeglut 和 glew,但根本没有真正解释它们的区别。在谷歌搜索和阅读广告后,我发现最好的描述是这个OpenGL 相关的工具包和 API,但发现它缺乏。我什至读过关于 SO 的标签信息。

作为 OpenGL 的新手,我仍在尝试掌握不同的概念。我已经到了创建一个使用 glew、创建上下文(在 windows 上,VS2010 上)和绘制真正基本形状的基本程序的阶段,所有这些都不需要明确包含 freeglut。所以我不明白为什么我需要它。

所以我的问题是,有什么区别
-freeglut
-glew
-(& glfw)
一个人能做什么而另一个人不能

4

2 回答 2

62

OpenGL Extension Wrangler ( GLEW ) 用于访问现代 OpenGL API 函数(版本 3.2 到最新版本)。如果我们使用旧版本的 OpenGL,那么我们可以简单地访问 OpenGL 函数,包括 as #include <GL/gl.h>。但是在现代 OpenGL 中, API 函数是在运行时确定的,而不是在编译时确定的。GLEW 将处理 OpenGL API 的运行时加载。关于 GLEW,请参见此处

GLFWfreeglut将允许我们创建一个窗口,并以跨平台的方式接收鼠标和键盘输入。OpenGL 不处理窗口创建或输入,所以我们必须使用这些库来处理窗口、键盘、鼠标、操纵杆、输入和其他用途。

GLFWfreeglut是我们的替代品,我们可以根据需要选择任何一种,但GLEW与它们不同,它用于 OpenGL API 的运行时加载。

于 2013-03-25T15:21:13.450 回答
2

我在我的大学里用它们来做一些工作。

GLEW是一个“跨平台开源 C/C++ 扩展加载库”(来自其网站),而freeglut是一个窗口管理器,它取代了默认的 OpenGL Utility Toolkit (GLUT) 库。

因此,如您所见,两者都有不同的目的。使用 freeglut 的重点是它仍然被维护,而默认的 GLUT 不是,所以如果你想要错误修复和新功能,你应该使用它:)

于 2013-03-25T11:50:10.660 回答