我已阅读有关 Mesa3D 并注意到它仅支持 GL 3.1
Mesa 是 OpenGL API 的开源实现,有多个后端,包括开源 GPU 驱动架构 DRI2 的接口。因此,与流行的看法相反,Mesa 不仅仅是一些软件光栅化器(很久以前它曾经是)。
但
这对你没有任何影响!OpenGL 是一个 API,任何遵循它的实现都可以使用。库的二进制接口(ABI)也定义良好。这意味着,要开始 OpenGL-4 开发,您需要做的就是找到一些支持它的实现,以便您可以测试您的程序。
现在有两个,不幸的是两个都不是开源的:
其中任何一个发布的 libGL.so 都遵守 GLX OpenGL ABI 规则,因此您可以安全地将程序与 libGL.so 动态链接,并且它可以与目标系统上安装的任何实现一起使用。
现在只需编译您的程序,您不需要完整的 OpenGL 实现。您所需要的只是一些 libGL.so,这样在外部看起来就像是遵循 ABI 规范的 OpenGL 实现。ABI 规范仅适用于旧的 OpenGL-1.2,并且上面的所有内容都是通过扩展机制加载的。还有OpenGL-4。libGL.so 确实符合这一点的一个实现是...... Mesa。为了让这些扩展加载一些扩展加载器,比如 GLEW。
使长话短说。您可以使用 GLEW 和 Mesa 开发(我的意思是构建)OpenGL-4 应用程序。只有实际执行它,您才需要支持 OpenGL-4 的实现。