今日の時点でOpenGL 4.1までをサポートするOSX MavericksでOpenGLを学ぼうとしています。
私はそれを基本的に保ち、gcc (g++) を使用してコンパイルしていますが、Freeglut OSX を介してオープン GL コンテキストをロードすると、レガシー OpenGL プロファイルがロードされます。
私はこれを試しました: FreeGLUT を使用した OSX 上の OpenGL 3.3 ですが、運が悪かったため、glGetString 呼び出しは次の値を返します。
NVIDIA GeForce GT 750M OpenGL Engine
2.1 NVIDIA-8.24.9 310.40.25f01
誰にもアイデアはありますか?
次のコンテキスト呼び出しで FreeGlut を呼び出しています。
glutInitContextVersion(3,2);
glutInitContextProfile(GLUT_CORE_PROFILE);
編集:OSXではなくWindowsで同じアプリケーションを試してみたところ、次のエラーが発生しました:
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 PC で再コンパイルしましたが、問題はありませんでした。おそらく、OSX または OSX 自体、またはその組み合わせでの FreeGLUT の問題です。
少なくとも今は、OSX をテストできるコードを持っています...