我正在寫一個需要在C++中使用Mac上的OpenGL的應用程序。如何在C++中編寫Cocoa OpenGL應用程序?
無論如何,我可以讓Cocoa給我一個OpenGL的上下文,讓我用C++做我的工作嗎? (我希望我的應用能夠在Mac OS X和iPHone上運行;但是所有的GUI都在OpenGL中,我只需要一個OpenGL上下文)。
謝謝!
我正在寫一個需要在C++中使用Mac上的OpenGL的應用程序。如何在C++中編寫Cocoa OpenGL應用程序?
無論如何,我可以讓Cocoa給我一個OpenGL的上下文,讓我用C++做我的工作嗎? (我希望我的應用能夠在Mac OS X和iPHone上運行;但是所有的GUI都在OpenGL中,我只需要一個OpenGL上下文)。
謝謝!
您無法逃脫少量的Objective-C代碼。但是,如果將目標C文件重命名爲.mm文件,則目標C代碼將能夠調用C++類方法。這意味着你可以將-drawRect(和其他相關的NSOpenGLView消息)掛鉤到你的C++ OpenGL實現中。 NSOpenGLView有一個-makeCurrent方法,您可以在drawRect之外調用以確保正確的OpenGL上下文處於活動狀態。
您的C++代碼可以根據需要簡單地調用gl函數。
調查NSOpenGLView。在您的子類中的drawRect:
中,您可以訪問視圖的上下文並調用您的OpenGL代碼。