2010-01-20 2 views
3

Я пишу приложение, которое должно использовать OpenGL, на Mac, на C++.Как написать приложение Cocoa OpenGL на C++?

Есть ли в любом случае я могу заставить Cocoa просто дать мне контекст OpenGL и позволить мне выполнять мою работу на C++? (Я хочу, чтобы мое приложение запускалось как на Mac OS X, так и на iPHone, но весь графический интерфейс в OpenGL, мне просто нужен контекст OpenGL).

Спасибо!

ответ

6

Вы не можете избежать минимального количества объективного кода C. Однако, если вы переименуете объектные файлы C в файлы .mm, объектный код C сможет вызывать методы класса C++. Это означает, что вы можете подключить -drawRect (и другие релевантные сообщения NSOpenGLView) к реализации C++ OpenGL. NSOpenGLView имеет метод -makeCurrent, который вы можете вызывать за пределами drawRect, чтобы гарантировать, что корректный контекст OpenGL активен.

Ваш код на C++ может тогда просто вызвать функции gl по мере необходимости.

2

Посмотрите на NSOpenGLView. В drawRect: в вашем подклассе вы можете получить доступ к контексту представления и вызвать свой код OpenGL.

Смежные вопросы