c++ - opengl32.lib 如何在 Windows 上工作(仅 1.1 版)?它实际上实现了 OpenGL 功能吗?

标签 c++ opengl

我有点困惑 opengl32.lib 库是如何工作的——对于大于 1.1 的 opengl 版本没有任何扩展。 opengl32 lib 是否实现了 OpenGL 1.1 函数,或者只是从图形驱动程序中检索它们作为新的 OpenGL 函数?如果是,GPU 供应商不应该实现 OpenGL 吗? opengl32 库是否像实现 OpenGL 的图形驱动程序的一部分一样工作?如果我没有安装图形驱动程序,opengl32 会工作吗(当然只是基本的 v.1.1)?谢谢。

最佳答案

许多年前,OpenGL 1.1 的 opengl32.dll 提供了所有需要的 gl 函数。当新版本出现时,供应商也会对标准功能实现“扩展”功能。并且还有可能同时安装两个不同显卡的情况。如果所有这些都应该由操作系统来处理,那真是一场噩梦!

解决方案是每个供应商提供他的驱动程序,例如 Nvidia 的 nvoglv32.dll。现在 opengl32.dll 在 Windows 的系统注册表中查找,如果它找到供应商驱动程序则加载它并让它处理 gl-stuff。如果没有供应商实现,则 opengl32.dll 处理 gl-stuff,但仅适用于 OGL 1.1 版。

opengl32.lib(不是 .dll)是一个链接器符号 stub 。它说可执行文件需要 opengl32.dll
opengl32.aopengl32.lib 相同。 .lib由MS VS提供,.a由MingGW提供。

关于c++ - opengl32.lib 如何在 Windows 上工作(仅 1.1 版)?它实际上实现了 OpenGL 功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49371475/

相关文章:

c++ - MinGW-w64 OpenGL 链接器错误

java - 如何正确使用 libGDX 的 open gl 调用

c++ - 可以使用 std::vector 元素的地址作为指针吗?

c++ - 标准库实现中双下划线的原因

声明中的 C++ 引用运算符

c++ - 控制台 - WinAPI - 颜色

OpenGL 3.x : Access violation when using vertex buffer object and glDrawElements(. ..)

java - 如何制作平滑的相机跟随算法?

OpenGL - gluPerspective/glFrustum - zNear & zFar 问题

c++ - g++ 标志只检查语法?