代码之家  ›  专栏  ›  技术社区  ›  Eddie Parker

将OpenGL应用程序移植到macos:X11、Cocoa还是其他替代品?

  •  2
  • Eddie Parker  · 技术社区  · 16 年前

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

    在我自己的研究中,我似乎得出了这样的结论:我可以选择:

    a) 针对X11编程 b) 使用Cocoa框架(不知怎么的?)

    不管怎样,我很高兴知道有什么选择,如果真的有,以及这样做的利弊得失。理想情况下,我的目标是最高水平的可移植性,只要我保持一些表面的性能。

    到目前为止,我已经移植了我的应用程序,尝试使用X11作为我的基础(因为它目前在Linux上编译)。然而,我得到错误与未定义的符号到\u glXCreateContext和诸如此类,这让我怀疑,如果我吠错了树。

    3 回复  |  直到 16 年前
        1
  •  2
  •   ravuya    16 年前

    根据您在OpenGL之外尝试做什么,您可能会幸运地使用GLUT(包括macosx)或SDL作为项目的窗口基础。我相信SDL在macosx和Linux上的X11内部使用Cocoa。

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

    直接针对X11意味着你的Mac用户必须安装X11支持;在许多版本的MacOSX上,这是一个可选的安装,您不一定希望他们按需安装。在我看来,由于没有与osx很好地集成,它还提供了更糟糕的用户体验。

        2
  •  1
  •   zoul    16 年前

    X是OSX上的二等公民。这取决于你到底想对你的应用程序做什么,谁来使用它等等,但我还是选择Cocoa(你可以从 Cocoa Drawing Guide ). 缺点是可可本身就是一个世界,你需要一些时间来适应它。

        3
  •  1
  •   eile    16 年前

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

    AGL有些过时,永远不支持64位。

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

    推荐文章