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

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

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

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

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

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

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

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

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

不.Messa是OpenGL API的开源实现,也提供了软件光栅化器后备。 但Mesa也是intelradeonradeonhdnoveau的开源GPU驱动程序的基础。

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

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

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

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

如果我有一个用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