1

我的 SO 是带有 KDE 桌面的 OpenSuse 版本 12.2 (x86_64) Mantis。我目前从存储库安装了 NVidia 驱动程序 (319)。3D加速工作和驱动似乎支持OpenGL 4.3。

我正在尝试编写一个简单的 OpenGL 示例(只是 glut 窗口中的一个三角形),但我不能,因为 GL/gl.h 已过时:当前标头是 openGL 1.3 的台面,它不支持 glCreateShader、glAttachShader。 ..

我试过 $ sudo find / -name gl3.h (openGL 3.1 和进一步应该包括这个头文件)但它没有返回任何结果,所以我想 Nvidia 驱动程序不包括库/头文件。

我的问题是:我在哪里可以获得已安装的 NVidia 驱动程序的 GL/gl.h?有人遇到同样的问题并解决了吗?

PS 要安装 NVidia 驱动程序,我刚刚从 NVidia 存储库中安装了适用于 opensuse 12.2 的驱动程序(http://download.nvidia.com/opensuse/12.2/)(使用 Yast)

我已经安装了:

  • nvidia-computeG03(使用 GPGPU 进行计算的 NVIDIA 驱动程序)
  • nvidia-gfxG03-kmp-desktop(用于 GForce 8xxx 和更新 GPU 的 NVIDIA 图形驱动程序内核模块)
  • x11-video-nvidiaG03(适用于 GeForce 8xxx 和更新的 GPUx 的 NVIDIA 图形驱动程序)
4

1 回答 1

4

访问新功能的正确方法是通过 GL 扩展机制。你对台面很好GL.h。您需要的是当前版本glext.h(它确实随 nivida 驱动程序 iirc 提供,但也可以在官方 opengl 站点上找到)。然后,您必须在您的平台上可能通过查询您计划调用的任何函数的函数指针glXGetProcAddress()

更方便的方法是使用像glew这样的OpenGL 加载器库,它会为您完成所有这些工作。

请注意,理论上,您可以#define GL_GLEXT_PROTOTYPES在包含glext.h并直接调用函数之前。这可能适用于 nvidia 驱动程序(以及您平台上的其他一些驱动程序),但不能保证任何规范都能正常工作。而且它永远不会在其他平台上运行,比如 Windows。

于 2013-10-26T15:04:41.867 回答