首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux (用nvidia驱动程序)中获取OpenGL-3报头(C/C++)

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

Stack Overflow用户
提问于 2013-10-26 11:08:52
回答 1查看 3.9K关注 0票数 1

我的也是OpenSuse版本12.2 (x86_64)螳螂,带有KDE桌面。我现在已经从存储库安装了NVidia驱动程序(319)。3D加速工作和驱动程序似乎支持OpenGL 4.3。

我试图编写一个简单的OpenGL示例(只是一个过剩窗口中的一个三角形),但是我无法实现,因为GL/gl.h已经过时了:当前的标题是带有openGL 1.3的mesa,它不支持glCreateShader,glAttachShader.

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

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

为了安装NVidia驱动程序,我刚刚安装了openSUSE12.2 (http://download.nvidia.com/opensuse/12.2/)的NVidia存储库中的驱动程序(带有Yast)

我安装了:

  • NVIDIA- computing 03 (NVIDIA驱动程序,用于GPGPU计算)
  • NVIDIA-gfxG03-kmp-桌面(NVIDIA图形驱动程序内核模块,用于GForce 8 8xxx和较新的GPUs)
  • X11-视频-NVIDIA 03( GeForce 8 8xxx和更新的GPUx的NVIDIA图形驱动程序)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 15:04:41

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

一种更方便的方法是使用OpenGL加载程序库 (如格鲁 ),它将为您完成所有这些工作。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19605974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档