[英]Does cocoa limit the overall performance of a C/C++ openGL app?
我正在寻找在Macintosh上编写第一个OpenGL应用程序。 以前,我只在Windows中完成OpenGL编程。 根据我的阅读,基本上有三种选择:
胶可可碳
Glut毫无疑问是因为我不喜欢它的外观,并且从我阅读的内容来看,Carbon的很大一部分已被弃用。 现在,关于可可:
此处的帖子: 纯C的可可OpenGL窗口? 提到可可将您限制为一个线程。 是用于整个应用程序的单个线程,还是用于窗口管理的单个线程? 我将被禁止从C / C ++本身进行多线程编程吗?
此外,可可会减慢您的速度吗? 暴雪使用哪种窗口管理?
大多数“纯C”框架(包括SDL)仍然使用Objective-C和Cocoa来创建和管理OpenGL窗口。 您不应在整个应用程序中强调少量的Objective-C。 您可以在Objective-C中完成最少的工作,并在C中构建应用程序的其余部分。使用Cocoa符合您的最大利益,因为随着时间的推移,支持在不断改善。 如果使用Carbon,支撑会随着时间的推移而变差 ,直到突然将其完全拆下。
您对GLUT的看法是正确的。 避开。 有很多高级框架。 GLUT非常适合OpenGL教育,仅此而已。
您不会被限制使用多个线程。 在其他讨论中看到的线程讨论涉及所有OpenGL调用必须如何从“主线程”发生。 换句话说,一旦创建了一个新线程,就无法从该新线程进行OpenGL调用,因为上下文一次只能在一个线程中处于活动状态。 (有调用使上下文在另一个线程中处于活动状态,但要指出的是,您仍然只能在一个线程中工作。)但是,程序的其余部分可以有多个线程,这没有问题。
简而言之,不,您的演奏不会受到任何限制。
那不是可可的限制。 我知道的所有OpenGL实现仅允许您与主线程上的OpenGL上下文进行交互。
暴雪肯定会在全屏OpenGL上下文中打开一个窗口并在其中绘制。
可可不会减慢您的速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.