当前位置: 首页 > 知识库问答 >
问题:

GLFW无法在OSX中打开窗口

仲孙绍元
2023-03-14

我有以下代码

glfwWindowHint(GLFW_SAMPLES, 4); // 4x antialiasing
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

// Open window and create OpenGL context
GLFWwindow * window;
window = glfwCreateWindow(1024, 768, "OpenGL Testing", NULL, NULL);
if(window == NULL)
{
    fprintf(stderr, "Failed to open GLFW Window.\n");
    glfwTerminate();
    return -1;
}

它在我的Ubuntu和视窗桌面上都能正常工作,但在我运行OSX的笔记本电脑上却失败了。我认为笔记本电脑不支持这个版本的OpenGL是个问题,但它支持高达4.1的显卡。

我认为它可能使用集成的intel GPU而不是英伟达GPU,但据我所知,GLFW将强制使用正确的GPU进行渲染。

如果我将上下文更改为2.1,一切似乎都正常,但着色器不兼容。

有什么想法吗?

更新:如果删除了所有glfwWindowHint()调用,则会创建窗口,但着色器不兼容。我假设如果删除了这些内容,GLFW会自动选择一个上下文,这恰好与版本330 core的着色器不兼容。

共有1个答案

景光赫
2023-03-14

问题归结为在GLFW中设置前向兼容性标志。这个答案导致做出以下调用的答案:

glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT,GL_TRUE)

GLFW常见问题解答中也显示了这一点。

 类似资料:
  • 提前谢了。

  • 当我试图从Intellij中打开JavaFx scenebuilder中的fxml文件时,它给出了以下错误:无法打开“示例”。fxml“打开”操作失败。确保所选文件是有效的FXML文档。请参阅下面的图片以查看错误的foto。

  • 我尝试了各种方法来打开在.js文件中导入的.ftl文件中的新窗口中的链接,但都不成功。 下面是.js中的代码

  • 我开始了WildFly 8.2。并且可以打开 顺便说一句,在Ubuntu上它是不同的端口。 无论如何,我无法打开

  • 似乎我在代码中遇到了一些同步问题。在我的过程中,我点击了一个按钮,打开了一个新的窗口。我通过下面的代码切换到新窗口。 我甚至试过: 不幸的是,大多数时候的问题似乎是selenium没有切换到新窗口(调试时可以看到它)。 我很乐意得到你的帮助。