我的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。