gpt4 book ai didi

macos - 在 OSX 上加载 OpenGL 4.1 上下文

转载 作者:行者123 更新时间:2023-12-02 21:28:23 24 4
gpt4 key购买 nike

我正在尝试在 OSX Mavericks 上学习 OpenGL,该系统截至今天为止最高支持 OpenGL 4.1。

我保持基本并使用 gcc (g++) 进行编译,但是当通过 Freeglut OSX 加载开放 GL 上下文时,会加载旧版 OpenGL 配置文件。

我已经尝试过:OpenGL 3.3 on OSX with 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 context requested but wglCreateContextAttribsARB is not available. Falling back to legacy context creation

这是我的应用程序入口点

    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 上的 FreeGLUT 或 OSX 本身或组合上的问题。

至少现在我有了可以测试 OSX 的代码...

最佳答案

OSX Mavericks 不支持 OpenGL 4.2。因此,不可能创建 4.2 上下文。最后支持的版本是 4.1 + 一些在 4.2 中制作成 Core 的扩展。

如果您想立即发布,唯一的选择是使用带有扩展的 OpenGL 4.1

这是GLFW3的代码:

glfwWindowHint( GLFW_CONTEXT_VERSION_MAJOR, 4 );
glfwWindowHint( GLFW_CONTEXT_VERSION_MINOR, 1 );
glfwWindowHint( GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE );
glfwWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );

关于macos - 在 OSX 上加载 OpenGL 4.1 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com