Если вы не выберете формат пиксели, который явно требующие для основного профиля, то вы собираетесь получить 2.1 реализацию OpenGL. См. Мой answer to another question для получения более подробной информации о том, как это сделать; это новое изменение в API CGL/NSOpenGL, которое было введено с OS X 10.7, поэтому некоторые старые книги могут не документировать его.
Существует большая разница между тем, что поддерживает ваш GPU и тем, что вы на самом деле получаете. На многих других платформах, без использования изменений API-интерфейсов окон, которые были представлены вместе с OpenGL 3.2, вы можете получить все возможности реализации OpenGL 3.2+ и унаследованные вещи от OpenGL 2.1 и более ранних версий по умолчанию (это известно как профиль совместимости).
OS X отличается, он не поддерживает профили совместимости. Вы либо получаете устаревшую реализацию OpenGL 2.1, либо версию 3.2 (3.3/4.1 в OS X 10.9), но вы никогда не сможете смешивать и сопоставлять функции обоих. Кроме того, если вы не измените свой код, чтобы задать основной профиль, по умолчанию вы будете ограничены OpenGL 2.1.
Вы получите, как минимум, контекст 3.2 (основной профиль) на 10.8 или 3.3 на Маверикс. т.е. GLSL 1,50 или 3,30. –
@BrettHale любая идея, почему это дает мне эту ошибку? – Fitzy