【问题标题】:OpenGL apps code portability between different OS不同操作系统之间的 OpenGL 应用程序代码可移植性
【发布时间】:2015-10-02 15:35:09
【问题描述】:

我查看了许多关于使用 OpenGL 和 C++ 的帖子和教程。有一件事仍然困扰着我。在每个教程中,您都有一些额外的库,如 GLFW、GLU、GLUT、WIN32 等(主要用于创建窗口)。尽管我无法找到仅使用 OpenGL 的教程。唯一的线索是 answer 表示您需要为此使用一些库。

有人能解释一下它到底是怎么回事吗?当我想在不同的操作系统上使用代码时它看起来如何?使用 OpenGL 编写的应用程序代码是否 100% 可移植?

【问题讨论】:

    标签: c++ opengl


    【解决方案1】:

    你不能有一个只使用 OpenGL 的教程,因为它是一个不提供此类功能的 API。

    OpenGL 并不是为了在操作系统中创建图形上下文并使用它,它只是为了通过一组定义的函数直接与 GPU 一起工作。

    所以重点是您所要求的内容超出了 OpenGL 的目的,它只定义了图形操作的标准接口。

    但是存在许多或多或少完整的库来处理此问题,并且您还引用了一些库,例如 GLFW 或 SDL,它们负责初始化上下文并管理其他问题(例如控件或声音)。

    如果遵守一组约束,产品将是可移植的:

    • 您正在使用一个库来管理不同的操作系统来处理图形上下文(例如 GLFW)
    • 您正在使用一个 OpenGL 配置文件,该配置文件受您要让您的代码在其上运行的所有 GPU 支持
    • 如果 OpenGL 和 OpenGL ES 之间具有可移植性,您必须确保附加约束,因为后者以不同方式管理某些事情

    【讨论】:

    • 好的,谢谢您的回答。现在看起来清晰合理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2011-10-13
    • 2015-06-17
    • 2016-08-09
    • 1970-01-01
    • 2013-11-30
    • 2019-07-11
    相关资源
    最近更新 更多