如何用 C++ 编写 Cocoa OpenGL 应用程序?

Posted

技术标签:

【中文标题】如何用 C++ 编写 Cocoa OpenGL 应用程序?【英文标题】:How to write a Cocoa OpenGL app in C++? 【发布时间】:2010-01-20 14:47:12 【问题描述】:

我正在用 C++ 在 Mac 上编写一个需要使用 OpenGL 的应用程序。

无论如何我可以让 Cocoa 给我一个 OpenGL 上下文并让我在 C++ 中完成我的工作吗? (我希望我的应用程序可以在 Mac OS X 和 iPHone 上运行;但所有的 GUI 都在 OpenGL 中,我只需要一个 OpenGL 上下文)。

谢谢!

【问题讨论】:

【参考方案1】:

您无法逃避最少量的 Objective-C 代码。但是,如果您将目标 C 文件重命名为 .mm 文件,目标 C 代码将能够调用 c++ 类方法。这意味着您可以将 -drawRect (和其他相关的 NSOpenGLView 消息)挂钩到您的 c++ OpenGL 实现。 NSOpenGLView 有一个 -makeCurrent 方法,您可以在 drawRect 之外调用该方法以确保正确的 OpenGL 上下文处于活动状态。

然后,您的 c++ 代码可以根据需要简单地调用 gl 函数。

【讨论】:

【参考方案2】:

查看NSOpenGLView。在您的子类中的drawRect: 中,您可以访问视图的上下文并调用您的OpenGL 代码。

【讨论】:

以上是关于如何用 C++ 编写 Cocoa OpenGL 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何用opengl制作低分辨率图形? [关闭]

如何用 C++ 编写这个 php 代码

如何用 C++ 编写哇音音效?

与 numpy.logspace() 函数相比,如何用 C++ 编写快速代码?

如何用普通 C++ 编写一个执行我的 javascript 的 IE BHO

如何用C++编写一段“输入A输出1”的程序