2011-04-19 36 views
2

编译器是mingw32。语言是C99。操作系统是Windows。显卡是Nvidia 260GTX在Windows上获取OpenGL设置(mingw32?)

我可以链接到opengl32/glu32并构建它,但没有包含OpenGL 3.x ...其实,我会说它可能缺少2.x扩展!

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

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

我只是我不明白为什么很难获得C/OpenGL在Windows上工作的根本问题?为什么这么独特?为什么Khronos不提供SDK /库/头文件等?

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

+2

是什么让你认为GLEW不适用于C?它应该工作得很好。你试过了吗?你有没有得到任何错误? – Bart 2011-04-19 08:18:05

+0

谢谢,但是当我尝试与GLEX链接并且启用了-std = c99 -ansi时,我收到了一堆编译器/链接错误。也没有mingw32构建;只有MSVC。 – user697111 2011-04-19 19:02:43

+0

GLEW和GLEE都有mingw32软件包。不要在ANSI C99中干净地编译。 – user697111 2011-04-19 22:46:37

回答

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上下文,只是为了澄清)。

+0

来自GLFW:2.13为什么你的gl.h没有我需要的功能? GLFW不提供gl.h或glu.h的任何版本。 glfw.h头文件包含您的开发环境中已经存在的版本。 但是,如果您使用的是Windows,那么在不使用扩展名的情况下,您将无法获得比OpenGL 1.2更新的任何内容。由于GLFW的扩展管理非常简单,我们建议您使用专用的扩展加载库,例如GLEW或GLee。 – user697111 2011-04-19 22:42:22

+0

为什么GLFW通过SDL?他们自己的网站表示,他们不支持Windows上1.1以上的GL扩展。 – user697111 2011-04-19 22:42:44

+0

GLEW或GLEE都没有MinGW32构建,也没有在ANSI C99中干净地编译。 – user697111 2011-04-19 22:43:26