2012-01-16 3 views
5

Я пытаюсь настроить OpenGL 3.0+ контекст в XCode 4.Настройка и использование OpenGL 3.0+ с Mac OSX Lion (10,7)

Как вы можете видеть talking about shaders here на сайте разработчиков пример использует это OpenGL 2.0. В Приложении B он говорит об обновлении для 3.2, но просто показывает изменения имени функции и то, что применимо только к ядру, но нет примера фактической настройки контекста OpenGL. Это сильно изменилось, поскольку конвейер с фиксированной функцией - это то, что вы больше не можете делать такие вещи, как glMatrixMode (...) .. и т. Д. И т. Д. ... т. Е. состояний opengl больше нет.

Если кто-нибудь может указать мне ссылку где-то в Интернете по настройке контекста OpenGL 3.0+ на Mac OSX 10.7 с использованием XCode 4, это будет оценено.

+0

Как насчет раздела * «Выбор атрибутов рендерера и буфера» * в том же документе? Вы выбираете атрибут профиля: ** kCGLOGLPVersion_3_2_Core ** –

ответ

5

Существует пример кода here для настройки контекста 3.2 внутри NSOpenGLView.

Или с помощью Core, GL,

CGLPixelFormatAttribute attribs[13] = { 
    kCGLPFAOpenGLProfile, (CGLPixelFormatAttribute)kCGLOGLPVersion_3_2_Core, // This sets the context to 3.2 
    kCGLPFAColorSize,  (CGLPixelFormatAttribute)24, 
    kCGLPFAAlphaSize,  (CGLPixelFormatAttribute)8, 
    kCGLPFAAccelerated, 
    kCGLPFADoubleBuffer, 
    kCGLPFASampleBuffers, (CGLPixelFormatAttribute)1, 
    kCGLPFASamples,  (CGLPixelFormatAttribute)4, 
    (CGLPixelFormatAttribute)0 
}; 

CGLPixelFormatObj pix; 
GLint npix; 
CGLChoosePixelFormat(attribs, &pix, &npix); 

CGLContextObj ctx; 
CGLCreateContext(pix, 0, &ctx); 

CGLSetCurrentContext(ctx); 
CGLLockContext(ctx); 

В любом случае вы должны сделать это вручную (не через InterfaceBuilder), потому что это неавтоматического.

+0

спасибо, я собираюсь проверить его ... – cspam

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