【问题标题】:GLUT on OS X with OpenGL 3.2 Core Profile带有 OpenGL 3.2 核心配置文件的 OS X 上的 GLUT
【发布时间】:2012-06-30 20:09:41
【问题描述】:

是否可以使用核心配置文件在 OS X Lion 或 OS X Mountain Lion 上使用 GLUT(所以我可以使用 GLSL 1.50)?

我可以使用内置的 GLUT 还是需要使用 FreeGLUT 等第三方库?

有没有可用于 OS X 的简单“Hello world”应用程序,带有 XCode 项目或 make-file?

【问题讨论】:

    标签: macos opengl glsl glut osx-mountain-lion


    【解决方案1】:

    GLUT 不支持 OpenGL 3.2,因为它不提供指定所需 OpenGL 上下文版本的功能。此外,GLUT 的功能依赖于 OpenGL 3.2 Core Profile 不可用的 API。

    你必须切换到 FreeGLUT 或 GLFW。

    【讨论】:

    • FreeGLUT 在 OS/X 上支持 OpenGL 3.2 吗?我无法找到有关此的任何详细信息。
    • 其实我也不知道。我认为确实如此,但我不得不承认 API 文档中没有任何提示(顺便说一句,它非常不完整)。我个人使用 GLFW,它确实支持 OpenGL 3.2。
    • 我还推荐在 OS/X 上用于 3.2 的 GLFW。这是唯一对我有用的库。 SDL 2 声称兼容性,但我在 OS/X 上遇到了各种问题。
    • 感谢您的建议。但我真正想知道的是是否有某种形式的 GLUT 库可用。我目前对 API 与 GLUT 提供的明显不同的库不感兴趣。
    【解决方案2】:

    您至少需要 Mac OS X Lion(OS X 10.7 或更高版本)才能获得 OpenGL 3.2 的基本支持。要使用 OpenGL 3.2 Core Profile,只需添加

    glutInitDisplayMode(GLUT_3_2_CORE_PROFILE | ... | ...);
    

    在您的main-函数中。您可以通过

    查看
    std::printf("%s\n%s\n", 
            glGetString(GL_RENDERER),  // e.g. Intel HD Graphics 3000 OpenGL Engine
            glGetString(GL_VERSION)    // e.g. 3.2 INTEL-8.0.61
            );
    

    【讨论】:

    • 您好。我有 os X Mavericks,但这个解决方案仍然不起作用。你能帮我解决这个问题吗?这是我的代码gist.github.com/dhirajbodicherla/11238004
    • 太棒了,谢谢...很多关于 GLUT 的错误信息,几乎确信我必须留在 2.1 土地上...
    • 在为核心配置文件配置 GLUT 和 FreeGLUT 时似乎都会触发错误。目前,您需要使用不同的窗口库来在 OSX 上使用 Core 配置文件。
    • ^^^ 我今天在 OSX 上使用 GLUT。可以执行 GLUT_3_2_CORE_PROFILE,并更新着色器以按应有的方式进出使用,并且没有错误。但是也没有绘图...怀疑 OpenGL 3.2 的一些微妙之处以及 fragcolor 现在去哪里了?
    【解决方案3】:

    flyx 错了,OpenGL 3.2 是添加了核心和兼容性配置文件的版本(不是 3.3)。但是,Apple 根本不支持兼容性配置文件(没有理由,他们就是不支持)。 GLUT 作为一个框架出现在 xcode 中,你可以这样使用它。因此,您可以以完全非标准的、特定于平台的方式来完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      相关资源
      最近更新 更多