【问题标题】:Why is my OpenGL version always 2.1 on Mac OS X?为什么我的 OpenGL 版本在 Mac OS X 上总是 2.1?
【发布时间】:2013-11-08 15:20:07
【问题描述】:

我在 Mac OS X 10.8 上使用 GLFW 3.0,显卡是 Intel HD Graphics 5000

我的 OpenGL API 版本是 2.1,由

获得
glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MAJOR);
glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MINOR);

编译选项:

g++ ... -framework OpenGL -framework Cocoa -framework IOKit ...

标题:

#include <GLFW/glfw3.h>
#include <GL/glu.h>

版本始终为 2.1,与 the reported 3.2 不同。我的操作系统已经升级到10.9,OpenGL版本还是2.1。

它仍然无法编译 GLSL 3.3,而 Apple says it supports 4.1。如何访问更高版本的库?

【问题讨论】:

  • glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);在创建窗口之前编写。
  • @PierreEmmanuelLallemant :我试过这个,它导致glfwCreateWindow失败。
  • 试试 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); // opengl 3.2 或 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1); // opengl 3.1 . 仅当 OS X 不支持 opengl 版本时才会崩溃。
  • @PierreEmmanuelLallemant:同样的结果...
  • 仅仅因为您升级了操作系统并不意味着您可以使用 OpenGL 4.1...您需要适当版本的 MacOS X Platform SDK。您真正需要做的很可能就是升级 Xcode。 Xcode IDE 中有一个设置允许您选择命令行工具链使用的默认 SDK,不幸的是我不记得它在哪里。

标签: macos opengl glfw


【解决方案1】:

您需要在创建窗口之前添加“forward_compat”和“core_profile”提示。

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwCreateWindow(640, 480, "Hello World", NULL, NULL );

【讨论】:

  • 救了我的命(在我解决这个问题之前我不想吃东西)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 2012-10-21
  • 2013-08-04
相关资源
最近更新 更多