如何在linux中获取OpenGL-3标头(C / C++)(使用nvidia驱动程序)



我的SO是OpenSuse版本12.2(x86_64)Mantis,带有KDE桌面。我目前从存储库安装了 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?Onyone遇到了同样的问题并解决了它?

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

我已经安装了:

  • nvidia-computeG03 (NVIDIA 驅動程式,用 GPGPU 計算
  • nvidia-gfxG03-kmp-desktop(适用于 GForce 8xxx 及更新 GPU 的 NVIDIA 图形驱动程序内核模块)
  • x11-video-nvidiaG03 (适用于 GeForce 8xxx 及更新 GPU 的 NVIDIA 显卡驱动程序)

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

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

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

相关内容

  • 没有找到相关文章

最新更新