Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将OpenGL应用程序移植到Mac OS:X11、Cocoa或其他替代方案?_Opengl_Macos_X11 - Fatal编程技术网

将OpenGL应用程序移植到Mac OS:X11、Cocoa或其他替代方案?

将OpenGL应用程序移植到Mac OS:X11、Cocoa或其他替代方案?,opengl,macos,x11,Opengl,Macos,X11,如果这是一个新问题,我很抱歉,但我对Mac编程还不熟悉,我想尝试将我的应用程序移植到Mac OS上 基本上,我的问题归结为,在Mac上使用OpenGL编程时,我的选择和权衡是什么 在进行我自己的研究时,我似乎得出结论,我可以选择: a) 针对X11编程 b) 使用Cocoa框架(不知为何?) 我不确定是否还有其他选择 无论如何,我希望知道这些选择是什么,如果真的有,以及这样做的利弊。理想情况下,我的目标是实现最高级别的可移植性,只要我保持一些性能的外观 进一步资料: 到目前为止,我已经移植了我的

如果这是一个新问题,我很抱歉,但我对Mac编程还不熟悉,我想尝试将我的应用程序移植到Mac OS上

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

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

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

我不确定是否还有其他选择

无论如何,我希望知道这些选择是什么,如果真的有,以及这样做的利弊。理想情况下,我的目标是实现最高级别的可移植性,只要我保持一些性能的外观

进一步资料:


到目前为止,我已经移植了我的应用程序,尝试使用X11作为我的基础(因为它目前在Linux上编译)。然而,我在“glXCreateContext”中遇到了一些未定义符号的错误,这让我怀疑我是不是选错了树。

根据您在OpenGL之外的尝试,您可能会在GLUT(包括Mac OS X)或SDL作为项目的窗口基础方面有一些运气。我相信SDL在MacOSX上内部使用Cocoa,在Linux上使用X11

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

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


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

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

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

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

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