【问题标题】:Porting OpenGL Application to Mac OS: X11, Cocoa, or Another Alternative?将 OpenGL 应用程序移植到 Mac OS:X11、Cocoa 还是另一种选择?
【发布时间】:2010-02-13 18:18:15
【问题描述】:

抱歉,如果这是一个新问题,但我是 Mac 编程的新手,我想尝试将我的应用程序移植到 Mac OS。

基本上,我的问题归结为在 Mac 上使用 OpenGL 编程时我的选择和权衡是什么?

在进行自己的研究时,我似乎得出的结论是,我可以选择:

a) 针对 X11 编程 b) 使用 Cocoa 框架(不知何故?)

我不确定是否还有其他可用选项。

无论如何,如果确实有任何选项以及这样做的任何取舍,我将不胜感激。理想情况下,我的目标是实现最高水平的可移植性,只要我保持一些性能表现。

更多信息:

到目前为止,我已经移植了我的应用程序,尝试使用 X11 作为我的基础(因为它目前在 Linux 上编译)。但是,我遇到了 _glXCreateContext 等未定义符号的错误,这让我想知道我是不是找错了树。

【问题讨论】:

    标签: opengl macos x11


    【解决方案1】:

    根据您尝试在 OpenGL 之外执行的操作,您可能会使用 GLUT(包含在 Mac OS X 中)或 SDL 作为项目的窗口基础。我相信 SDL 在 Mac OS X 和 Linux 上的 X11 内部使用 Cocoa。

    SDL 非常便携;它支持所有主要平台。唯一的缺点是它没有很多“应用程序”功能,例如通过编写项目的 Cocoa 版本可以获得的平台标准打开/保存对话框或 GUI 控件。

    GLUT 也是如此,但它有一些可能有用的 GUI 原语(右键菜单和按钮)。

    直接定位 X11 意味着您的 Mac 用户必须安装 X11 支持;这是许多 Mac OS X 版本上的可选安装,您不一定希望它们按需安装。在我看来,它还不能很好地与 OS X 集成,从而提供更差的用户体验。

    【讨论】:

      【解决方案2】:

      X 在 OS X 上是二等公民。这取决于你想对你的应用程序做什么,谁将使用它等等,但我会选择 Cocoa(你可以从 @ 987654321@)。缺点是 Cocoa 是一个独立的世界,你需要一些时间来适应它。

      【讨论】:

        【解决方案3】:

        除了前面提到的API,还有AGL/Carbon和Qt。

        AGL 有点过时了,永远不会支持 64 位。

        imo 中的 Qt 是实际应用程序的最佳替代方案,因为它是跨平台的并且提供了良好的 UI 支持。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-04
          • 2012-05-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-22
          相关资源
          最近更新 更多