opengl - freeglut 与 glew 的区别?

标签 opengl glew freeglut glfw

我最近开始学习 OpenGL (> 3.3),我注意到很多示例和教程都使用 freeglut 和 glew,但根本没有真正解释其中的区别。在谷歌搜索和阅读令人作呕的内容之后,我发现的最好的描述是这个 OpenGL Related toolkits and APIs但发现有所欠缺。我什至读过 SO 上的标签信息。

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

所以我的问题是,以下之间的区别是什么:
- 自由过剩
-格卢
-(&glfw)
什么是一个人可以做而另一个人不能做的事情?

最佳答案

OpenGL扩展牧马人(GLEW)用于访问现代OpenGL API函数(版本3.2到最新版本)。如果我们使用古老版本的OpenGL,那么我们可以访问OpenGL函数只需包含为 #include <GL/gl.h>但在现代OpenGL中,API函数是在运行时确定的,而不是编译时确定的。 GLEW 将处理 OpenGL API 的运行时加载。关于 GLEW,请参阅 here

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

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

关于opengl - freeglut 与 glew 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15613978/

相关文章:

c - 如何将自定义库(例如 glew)添加到 mingw-w64?

c++ - exit() 函数无法退出进程

c++ - OpenGL - 如何将仿射变换函数与程序中的事件连接起来

c++ - 如何在cocos2d-x中制作清晰的纹理

c++ - 将 SDL 示例移植到 OpenGL 和 C++

c++ - 使用 GLEW 1.10.0 和 SDL 2.0 的问题

c++ - 对于我正在交叉编译的程序,如何将 ubuntu 上的 GLEW 交叉编译到 Windows?

c++ - 使用 MinGW 编译 OpenGL 并出现过剩链接器错误

c - 当正交设置为 -1.0 到 1.0 时获取鼠标位置

c++ - 上传压缩纹理时出现 GL_INVALID_OPERATION