Портирование приложения OpenGL на Mac OS: X11, какао или другая альтернатива? - PullRequest
2 голосов
/ 13 февраля 2010

Прошу прощения, если это вопрос новичка, но я новичок в программировании на Mac и подумал, что попробую перенести свое приложение на Mac OS.

По сути, мой вопрос сводится к тому, какие у меня есть варианты и какие компромиссы для программирования в OpenGL на Mac?

Проводя собственное исследование, я, похоже, пришел к выводу, что у меня есть выбор:

а) Программирование на X11 б) Использование Какао-фреймворка (как?)

Я не уверен, есть ли что-то большее, чем эти опции.

Во всяком случае, я был бы признателен, если бы знал, какие есть варианты, если они действительно есть, и какие-либо компромиссы при этом. В идеале я стремлюсь к высочайшему уровню мобильности, при условии, что я сохраняю некоторое подобие производительности.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я до сих пор несколько портировал свое приложение, пытаясь использовать X11 в качестве своей базы (так как он в настоящее время компилируется в Linux). Однако я получаю ошибки с неопределенными символами в _glXCreateContext и тому подобное, что заставляет меня задуматься, не лаю ли я не на том дереве.

Ответы [ 3 ]

2 голосов
/ 13 февраля 2010

В зависимости от того, что вы пытаетесь сделать вне OpenGL, вам может повезти с GLUT (входит в Mac OS X) или SDL в качестве основы для окон вашего проекта. Я считаю, что SDL использует Какао для внутреннего использования в Mac OS X и X11 для Linux.

SDL довольно портативный; он поддерживает все основные платформы. Единственным недостатком является то, что у него нет многих «прикладных» функций, таких как стандартные для платформы диалоговые окна открытия / сохранения или элементы управления графическим интерфейсом, которые вы получили бы, написав версию своего проекта на Cocoa.

То же самое верно для GLUT, но у него есть несколько примитивов GUI (меню и кнопки, вызываемые правой кнопкой мыши), которые могут быть полезны.

Таргетинг на X11 напрямую означает, что у пользователей Mac должна быть установлена ​​поддержка X11; это необязательная установка на многие версии Mac OS X, и вы не можете ожидать, что они установят ее по требованию. По моему мнению, он также обеспечивает худшее взаимодействие с пользователем, поскольку не интегрируется с OS X.

1 голос
/ 13 февраля 2010

В дополнение к API, упомянутому ранее, есть также AGL / Carbon и Qt.

AGL несколько устарел и никогда не будет поддерживать 64 бита.

Qt in imo - лучшая альтернатива для реальных приложений, поскольку она кроссплатформенная и обеспечивает хорошую поддержку пользовательского интерфейса.

1 голос
/ 13 февраля 2010

X является гражданином второго сорта в OS X. Это зависит от того, что именно вы хотите сделать со своим приложением, кто будет его использовать и т. Д., Но я бы пошел с Какао (вы можете начать с Руководство по рисованию какао ). Недостатком является то, что какао - это целый мир, и вам понадобится некоторое время, чтобы привыкнуть к нему.

...