我已经使用OpenGL 4.X已经有一段时间来编写Windows应用程序了.我正在使用GLEW来访问OpenGL API和GLFW用于上下文,窗口和输入.现在我打算转移到Linux进行一些特定的项目.从未写过在我想知道今天在Linux平台上开发OpenGL 4.x软件的常用行业标准之前,该平台上的OpenGL是什么?我读过有关Mesa3D的文章,并注意到它仅支持 GL 3.1.GLEW和GLFW是跨平台的,所以我相信我可以在Linux上使用那些没有问题吗?想获得进一步的提示.
我知道我可以使用Qt OpenGL API,但我目前对"纯"C++解决方案感兴趣.
我已阅读有关Mesa3D的内容,并注意到它仅支持GL 3.1
Mesa是OpenGL API的开源实现,有几个后端,包括开源GPU驱动程序架构DRI2的接口.因此,与流行的看法相反,Mesa不仅仅是一些软件光栅化器(过去很久以前).
但
这对你来说无关紧要!OpenGL是一个API,可以使用任何遵循它的实现.此外,库(ABI)的二进制接口也已明确定义.这意味着您需要做的就是启动OpenGL-4开发,找到一些支持它的实现,以便您可以测试您的程序.
现在有两个,不幸的是既不是开源的:
其中任何一个附带的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支持实现.