什么是常用的库在Linux上编写OpenGL 4.X应用程序?

我已经使用OpenGL 4.X已经有一段时间来编写Windows应用程序。我正在使用GLEW来访问OpenGL API和GLFW的上下文,窗口和input.Now我打算移动到Linux的某些特定的项目。从来没有写在那个平台上使用OpenGL之前,我想知道在Linux平台上开发OpenGL 4.x软件的通用行业标准是什么?我已经阅读了关于Mesa3D,并且注意到它只支持 GL 3.1。 GLEW和GLFW是跨平台的,所以我相信我可以在Linux上使用那些没有问题的?想获得进一步的提示。

我知道我可以使用Qt OpenGL API,但我目前对“纯”C ++解决scheme感兴趣。

我已经阅读了有关Mesa3D,并注意到它只支持GL 3.1

Mesa是OpenGL API的一个开源实现,有几个后端,包括开源GPU驱动架构DRI2的接口。 所以与流行的观点相反,Mesa不仅仅是一些软件光栅化器(很久以前曾经是这样)。

这对你无关紧要! OpenGL是一个API,可以使用任何坚持它的实现。 此外,库(ABI)的二进制接口已经定义好了。 这意味着你所需要做的就是开始OpenGL-4开发,找到一些支持它的实现,以便你可以测试你的程序。

现在有两个,不幸的是既不是开源的:

  • NVidia propiatary司机
  • AMD的propiatary驱动程序

这些libGL.so都遵循GLX OpenGL ABI规则,因此您可以安全地将您的程序与libGL.so进行动态链接,并且可以在目标系统上安装whatevery实现。

现在只需编译你的程序,就不需要完整的OpenGL实现。 所有你需要的是一些libGL.so,外部看起来像一个遵循ABI规范的OpenGL实现。 而且ABI规范只适用于旧的OpenGL-1.2,上面的所有内容都是通过扩展机制加载的。 另外OpenGL-4。 而libGL.so所遵循的实现是… Mesa。 为了让这些扩展加载像GLEW一样的扩展加载器。

使长话短说。 你可以开发,我的意思是构建,与GLEW和Mesa的OpenGL-4应用程序就好了。 只有实际执行它,你需要一个OpenGL-4支持的实现。