如何在没有Mesa的情况下设置OpenGL开发环境

时间:2012-02-16 03:00:40

标签: c opengl ubuntu-11.04

根据我在这里读到的内容:http://www.linuxquestions.org/questions/linux-software-2/opengl-vs-mesa-whats-the-diff-351037/

Mesa是软件渲染,而驱动程序OpenGL是硬件渲染。

我遇到的每个教程都只展示了如何安装Mesa。如何设置真正的(硬件加速)openGL?安装驱动程序是否安装了标头?如果是这样,哪个标题?如果我有一个用台面编译的程序,我是否必须重新编译才能利用硬件加速?如果安装驱动程序安装所需的库和标题,那么台面会发生什么?

从指向网站上的最后一篇文章:“这是否意味着如果我安装了NVidia驱动程序,我应该删除mesa包?”

此外,现在openGL现在是版本4和5,但是我找不到任何教程来展示如何为这些版本创建上下文,只有版本3 max ...

就像你可以看到的,我不太确定这是如何运作的。

最后一件事,本书:http://glprogramming.com/red/是针对哪个版本的openGL?指南版本是1.1,但它没有说它是针对哪个版本编写的。

1 个答案:

答案 0 :(得分:7)

  

Mesa是软件渲染,而驱动程序OpenGL是硬件渲染。

没有。 Mesa是OpenGL API的开源实现,还提供软件光栅化器后备。但Mesa也是 intel radeon radeonhd noveau 的开源GPU驱动程序的基础。< / p>

  

我遇到的每个教程都只展示了如何安装Mesa。如何设置真正的(硬件加速)openGL?

OpenGL只是一个API。这意味着您用于开发的OpenGL的哪个实现无关紧要。您可以使用Mesa进行开发,但是您的程序也适用于专有驱动程序。

  

安装驱动程序是否安装了标题?

有时。但是大多数Linux发行版都会阻止这种情况,并假设Mesa标头作为规范开发资源。

  

如果我有一个用台面编译的程序,我是否必须重新编译才能利用硬件加速?

没有。如果您做的一切正确,即将您的可执行文件与libGL动态链接,那么您的程序将适用于任何OpenGL实现。

  

如果安装驱动程序安装所需的库和标题,那么台面会发生什么?

取决于分发。某些发行版的供应商驱动程序替换了libGL.so,而不是Mesa开发文件。一些发行版取代了libGL.so和标题。一些发行版将OpenGL实现放在/ usr / lib / opengl中,并提供了一个设置符号链接(Gentoo)的工具。在实践中,没关系。

  

从指向网站上的最后一篇文章:“这是否意味着如果我安装了NVidia驱动程序,我应该删除mesa包?”

如果需要,您的发行包管理器将发出警告。但就像我说的那样:除了Mesa实现仅支持OpenGL-2.1之外,不应该打扰你。但这并不意味着您无法使用它编译OpenGL-3及其向上程序。他们将无法创建OpenGL-3上下文并中止错误消息或回退到OpenGL-2