gam*_*ing 8 opengl macos glut freeglut glfw
我正在使用Mac,我已经编译并安装了FreeGlut,但我似乎无法使用它获得OpenGL 3.2上下文.但是,在使用GLFW时,我可以毫无问题地获得它.所以在GLFW中,这段代码完全正常:
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwOpenWindow(500, 500, 8, 8, 8, 8, 24, 8, GLFW_WINDOW)
Run Code Online (Sandbox Code Playgroud)
但是使用FreeGlut,这段代码失败了(打开glutCreateWindow):
glutInitContextVersion (3, 2);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutInitWindowSize (width, height);
glutInitWindowPosition (300, 200);
int window = glutCreateWindow (argv[0]);
Run Code Online (Sandbox Code Playgroud)
它失败的错误是:
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 34 (X_UngrabKey)
Serial number of failed request: 29
Current serial number in output stream: 29
Run Code Online (Sandbox Code Playgroud)
我在MacOS X 10.8 Mountain Lion上运行,使用Intel HD4000显卡,安装了XQuartz作为我的X11服务器,并从源代码编译和安装了FreeGlut 2.8.
有谁知道可能是什么问题?
在 10.8 和 10.7 中,如果您在设置 GL 上下文时明确调用 GL 3.2,则可以使用它。Apple 将此称为“Core Profile”,以区别于“Legacy Profile”(即 GL 2.1)。
我在 OSX 上使用 Wine 时遇到了这个问题,它不支持 OpenGL 3.2。我的理解是,X11服务器(Apple X11或XQuartz)目前没有实现3.2支持,也没有开关可以翻转某处来启用它。这可能是出于兼容性问题,因为 3.2 配置文件将破坏一些现有的 GL 应用程序
这篇文章建议使用GLFW(或者苹果的GLUT.framework,如果仍然有这样的东西)
本页解释了 OSX 上的 GL 堆栈并确认了 GLX 的 2.1 问题。
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |