如何用 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 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
与 numpy.logspace() 函数相比,如何用 C++ 编写快速代码?