c++ - 设置窗口提示后 glfwCreateWindow() 不起作用

标签 c++ opengl glew glfw

我正在学习使用 glfwWindowHint() 设置他正在使用的 GLFW 版本的教程。他在 OSX 上,我在 Windows 上。我的代码和他的完全一样。当我这样做时:

glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);

然后是:

GLFWwindow* window = glfwCreateWindow(640, 360, "Modern OpenGL", NULL, NULL);

它总是返回NULL。但在教程中他说设置窗口提示对于使用程序使用的代码是必要的。当我取出窗口提示时,窗口已成功创建,但随后崩溃(因为可能需要更改窗口提示的其他代码)。

enter image description here

我使用的是 Windows XP。我该如何解决这个问题?

最佳答案

有趣的是,这段代码在 OSX 上应该总是返回 NULL,因为 OSX 只在核心配置文件中支持 OpenGL >=3,而这段代码需要兼容性配置文件。

在 Windows 上,可能支持该版本的兼容性配置文件。但这将取决于 GPU 和您安装的驱动程序。很可能您的系统根本不支持 GL3.2。确保您使用的是最新的驱动程序。并检查您的 GPU 实际支持的 GL 版本。您可以尝试的一件事是将 GLFW_OPENGL_FORWARD_COMPAT 提示设置为 GL_FALSE

关于c++ - 设置窗口提示后 glfwCreateWindow() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183107/

相关文章:

c++ - 使用 freeglut 设置 - glew - openGL

xcode - GLEW 在 XCode 中崩溃

c++ - 使用/不使用内在函数填充 C++

c++ - 为什么输入流会跳过 -1 值?

c++ - 将 2D 位图转换为 3D 立方体模型的有效方法?

c++ - OpenGL (glut) - 提高像素放置精度

c++ - 无法删除类的析构函数中指向数组的成员指针

c++ - 如何在不向标准 Ubuntu 版本安装额外库的情况下在 C++ 中拆分字符串?

c++ - 为什么我们应该在 OpenGL 管道的片段阶段进入眼空间坐标?

opengl - glGenBuffers() 因段错误而崩溃。 (C++/GLFW/GLEW)