在Linux上编写OpenGL 4.X应用程序的常用库有哪些?

Mic*_* IV 2 c++ linux opengl

我已经使用OpenGL 4.X已经有一段时间来编写Windows应用程序了.我正在使用GLEW来访问OpenGL API和GLFW用于上下文,窗口和输入.现在我打算转移到Linux进行一些特定的项目.从未写过在我想知道今天在Linux平台上开发OpenGL 4.x软件的常用行业标准之前,该平台上的OpenGL是什么?我读过有关Mesa3D的文章,并注意到支持 GL 3.1.GLEWGLFW是跨平台的,所以我相信我可以在Linux上使用那些没有问题吗?想获得进一步的提示.

我知道我可以使用Qt OpenGL API,但我目前对"纯"C++解决方案感兴趣.

dat*_*olf 5

我已阅读有关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支持实现.