Ограничивает ли какао общую производительность приложения openGL для C / C ++? - PullRequest
1 голос
/ 22 сентября 2011

Я хочу написать первое приложение OpenGL на Macintosh.Ранее я занимался только программированием OpenGL в Windows.Из того, что я прочитал, есть в основном три варианта:

Glut Cocoa Carbon

Glut не может быть и речи, потому что мне не нравится его внешний вид и то, что я прочиталХорошая доля углерода не рекомендуется.Теперь, что касается Какао:

Сообщение здесь: Окно Какао OpenGL в чистом C? упоминает, что Какао ограничивает вас одним потоком.Это один поток для всего приложения или один поток для управления окнами?Будет ли мне запрещено заниматься многопоточным программированием из самого C / C ++?

Кроме того, Какао замедляет тебя?Какой вид управления окнами использует Blizzard?

Ответы [ 2 ]

5 голосов
/ 22 сентября 2011

Большинство сред "чистого C" (включая SDL) по-прежнему используют Objective-C и Cocoa для создания и управления окном OpenGL.Вы не должны подчеркивать небольшое количество Objective-C в вашем общем приложении.Вы можете сделать минимум в Objective-C и построить остальную часть приложения на C. В ваших интересах использовать Cocoa, потому что со временем поддержка улучшается.Если вы используете Carbon, поддержка со временем будет ухудшаться до тех пор, пока она внезапно не исчезнет.

Вы правы в отношении GLUT.Держаться подальше.Есть много превосходных рамок.GLUT хорош для обучения OpenGL, и все.

Вам не будет запрещено использовать несколько потоков.Обсуждение потоков, которое вы видите в этом другом обсуждении, относится к тому, как все вызовы OpenGL должны происходить из «основного потока».Другими словами, после создания нового потока вы не можете выполнять вызовы OpenGL из этого нового потока, поскольку контекст может быть активным только в одном потоке за раз.(Существуют вызовы для того, чтобы сделать контекст активным в другом потоке, но дело в том, что вы все еще можете работать только в одном потоке.) Тем не менее, у остальной части вашей программы может быть несколько потоков без проблем.

КорочеНет, ваше исполнение не будет произвольно ограничено.

2 голосов
/ 22 сентября 2011

Это не ограничение какао. Все известные мне реализации OpenGL позволяют вам взаимодействовать только с контекстом OpenGL в основном потоке.

Blizzard, безусловно, просто открывает окно в виде полноэкранного контекста OpenGL и рисует в нем.

Какао не замедлит тебя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...