2

编译器是mingw32。语言是 C99。操作系统是windows。显卡是英伟达260GTX

我可以链接到 opengl32/glu32 并针对它进行构建,但 OpenGL 3.x 中没有任何内容包括在内……事实上,我会说它可能缺少 2.x 扩展!

GLEW 和 GLM 都是 C++ 并且不能与直接 C 一起使用。Glee 没有任何 mingw32 二进制文件(并且没有在我的系统上干净地构建)。

我正在使用 SDL,它有一些 OpenGL 函数(??),但同样,看起来已经过时了。

我只是不明白为什么让 C/OpenGL 在 Windows 上工作如此困难的根本问题?为何如此独特?为什么 Khronos 不提供 SDK/库/头文件等?

我通过 Java/lwjgl 做 OpenGL,并且没有时间来设置它并让它编译/运行。

4

1 回答 1

2

在 Windows 中,OpenGL-1.1 以上的任何东西都只能通过扩展来访问。这就是它的设计方式和运行方式。GLEW 与纯 C 完美配合(如果我没记错的话,GLEW 是用纯 C 编写的)。

Khronos 无法提供 SDK,因为实际上提供 OpenGL API 是留给操作系统供应商的任务,而在 Windows 中,需要图形驱动程序来提供实现。就 Windows 而言,微软在几年前离开了 ARB,转而支持其专有的 Direct3D 技术。曾经有过激烈的争论,哪个是更好的 API,但现在全世界,除了微软都选择了 OpenGL,这次争论已经结束。

无论如何,如果你想让事情变得非常简单,而不是 GLUT、SDL 等,请使用 GLFW http://glfw.org,一个非常优秀的 OpenGL 框架,它为你完成所有困难的事情,扩展加载和 OpenGL- 3 上下文设置,如果你要求的话(你仍然需要一些扩展包装器来在你自己的代码中使用扩展——但是创建一个纯 OpenGL-3 上下文需要一些代理上下文,使用它加载一些扩展并使用获得的函数来创建一个真正的 OpenGL-3 上下文。只是为了澄清)。

于 2011-04-19T11:05:48.540 回答