cocoa是否限制了C/ c++ openGL应用程序的整体性能?
Does cocoa limit the overall performance of a C/C++ openGL app?
我希望在Macintosh上编写第一个OpenGL应用程序。以前我只在Windows上做过OpenGL编程。据我所知,基本上有三种选择:
过剩可可碳
过剩是不可能的,因为我不喜欢它的样子,从我所读到的,碳的很大一部分是不赞成的。现在,关于Cocoa:
一个帖子在这里:Cocoa OpenGL窗口在纯C?提到Cocoa将您限制为单个线程。它是用于整个应用程序的单个线程,还是用于窗口管理的单个线程?我会被禁止做多线程编程从C/c++本身吗?
还有,可可会让你慢下来吗?暴雪使用什么样的窗口管理?
大多数"纯C"框架(包括SDL)仍然使用Objective-C和Cocoa来创建和管理OpenGL窗口。在整个应用程序中,你不应该过分强调少量的Objective-C。你可以在Objective-C中做最少的工作,然后在c中构建应用程序的其余部分。使用Cocoa是你的最佳选择,因为随着时间的推移,它的支持正在不断改进。如果您使用Carbon,支持将随着时间的推移而恶化,直到突然将其完全移除。
关于供过于求你是对的。避开。有很多优秀的框架。GLUT对OpenGL教育有好处,就是这样。
您将不会被限制使用多个线程。你在其他讨论中看到的线程讨论是指所有OpenGL调用必须从"主线程"发生。换句话说,一旦你创建了一个新线程,你就不能从那个新线程进行OpenGL调用,因为上下文一次只能在一个线程中活动。(在另一个线程中有使上下文活动的调用,但重点是您仍然只能在一个线程中工作。)但是,程序的其余部分可以有多个线程,这没有问题。
简而言之,不,你的表现不会被任意限制。
这不是Cocoa的限制。我所知道的所有OpenGL实现都只允许你在主线程上与OpenGL上下文进行交互。
暴雪当然只是打开一个窗口作为全屏OpenGL上下文,并在其中绘制。
可可不会让你慢下来。
- Linux VM(重型多线程应用程序)的性能改进
- 运行最基本的SFML应用程序时的性能
- 在GO应用程序中使用C( )进行性能
- 谷歌性能工具可以用于分析C应用程序吗?
- 堆栈保留大小和堆栈提交大小的增加会提高应用程序性能吗
- 用于C++和性能关键型应用程序中的循环
- 对于高度优化的矩阵多应用程序代码,MSVC和GCC之间的性能差异
- 基于libpcap的应用程序是否会影响网络速度/性能
- 编译提升::数学的性能测试应用程序
- 嵌套函数或方法调用会降低应用程序的性能
- 适用于Android的纯c ++应用程序及其性能
- 当从应用程序多次调用数据库过程时,性能是否会受到影响
- 实时音频应用程序,提高性能
- 提高应用程序性能的简单方法
- 在Windows Kinect应用程序中使用c++和c#有什么不明显的区别吗?(例如,性能、特性)
- 相同的 Direct2D 应用程序在"slower"计算机上的性能更好
- cocoa是否限制了C/ c++ openGL应用程序的整体性能?
- Shared_Ptr影响应用程序的性能
- 在非托管c++应用程序中提高WPF对话框的性能
- 提高Windows应用程序的性能