我正在编写一个需要在Mac上使用OpenGL的应用程序,使用C++语言。 有没有办法让Cocoa只提供OpenGL上下文并让我在C++中进行工作?(我希望我的应用程序可以在Mac OS X和iPhone上运行;但所有GUI都是基于OpenGL的,我只需要一个OpenGL上下文)。 谢谢!
您无法避免少量的Objective-C代码。但是,如果将Objective-C文件重命名为.mm文件,则Objective-C代码将能够调用C ++类方法。这意味着您可以将-drawRect(和其他相关的NSOpenGLView消息)钩接到C ++ OpenGL实现中。 NSOpenGLView具有-makeCurrent方法,在drawRect之外可以调用该方法以确保正确的OpenGL上下文处于活动状态。 然后,您的C ++代码可以根据需要简单地调用gl函数。