Я пытаюсь изучить OpenGL на OSX Mavericks, который на сегодняшний день поддерживает OpenGL 4.1.
Я сохраняю его базовым и компилирую с использованием gcc (g++), но при загрузке открытого контекста GL через Freeglut OSX загружает устаревший профиль OpenGL.
Я пробовал это: OpenGL 3.3 на OSX с FreeGLUT, но с не повезло, вызов glGetString возвращает эти значения:
NVIDIA GeForce GT 750M OpenGL Engine
2.1 NVIDIA-8.24.9 310.40.25f01
У кого-нибудь есть идеи?
я вызываю FreeGlut со следующими контекстными вызовами:
glutInitContextVersion(3,2);
glutInitContextProfile(GLUT_CORE_PROFILE);
Изменить: только что попробовал то же приложение в Windows, а не в OSX, и получил эту ошибку:
2.1 запрошен контекст, но wglCreateContextAttribsARB недоступен. Возврат к устаревшему созданию контекста
Вот моя точка входа в приложение
int main (int argc, char * argv[])
{
try{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(512,512);
glutInitContextVersion(4,2);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);
cout << "Called GLUT with 'GLUT_FORWARD_COMPATIBLE' \n";
//cout << VAO_IDs::NumVAOs;
glutCreateWindow("Triangles!");
cout << "Calling GLEW. " << endl;
glewExperimental = GL_TRUE;
if(glewInit())
{
cerr << "unable to initialise GLEW.. Exiting " << endl;
}
cout << "calling init " << endl;
init();
cout << "Setting display function " << endl;
glutDisplayFunc(display);
cout << "Entering loop " << endl;
glutMainLoop();
}
catch (exception)
{
cerr << "ERROR! " <<endl;
}
}
Хорошо Итак...
Перекомпилирован на ПК с Windows, работает без проблем, возможно, проблема с FreeGLUT на OSX или самой OSX или их комбинации.
По крайней мере, теперь у меня есть код, с которым я могу протестировать OSX...
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
может помочь - person derhass   schedule 08.04.2014