【问题标题】:What are the commonly used libraries to write OpenGL 4.X apps on Linux? [closed]在 Linux 上编写 OpenGL 4.X 应用程序的常用库有哪些? [关闭]
【发布时间】:2012-12-24 09:02:11
【问题描述】:

我已经使用 OpenGL 4.X 一段时间来编写 Windows 应用程序。我正在使用 GLEW 访问 OpenGL API 和 GLFW 的上下文、窗口和输入。现在我计划为一些特定的项目迁移到 Linux。在我想知道当今在 Linux 平台上开发 OpenGL 4.x 软件的通用行业标准是什么之前从未在该平台上编写过 OpenGL?我读过 Mesa3D 并注意到 it support 仅 GL 3.1。GLEW 和 @ 987654323@ 是跨平台的,所以我相信我可以在 Linux 上毫无问题地使用它们?希望获得更多提示。

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

【问题讨论】:

    标签: c++ linux opengl


    【解决方案1】:

    我读过 Mesa3D 并注意到它仅支持 GL 3.1

    Mesa 是 OpenGL API 的开源实现,具有多个后端,包括与开源 GPU 驱动程序架构 DRI2 的接口。因此,与流行的看法相反,Mesa 不仅仅是一些软件光栅化器(很久以前它曾经是)。

    但是

    这对你没有任何影响! OpenGL 是一个 API,任何遵循它的实现都可以使用。库的二进制接口(ABI)也定义良好。这意味着,要开始 OpenGL-4 开发,您需要做的就是找到支持它的一些实现,以便您可以测试您的程序。

    目前有两个,可惜都不是开源的:

    • NVidia 专有驱动程序
    • AMD 专有驱动程序

    其中任何一个提供的 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 的实现。

    【讨论】:

    • +1 这就是我想说的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2010-12-27
    相关资源
    最近更新 更多