加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – GLFW无法在OSX中打开窗口

发布时间:2020-12-16 03:18:41 所属栏目:百科 来源:网络整理
导读:我有以下代码: glfwWindowHint(GLFW_SAMPLES,4); // 4x antialiasingglfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);// Open window and crea
我有以下代码:
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和Windows上运行良好,但在运行OSX的笔记本电脑上运行失败.我认为这是一个问题,笔记本电脑不支持这个版本的OpenGL,但它支持最高4.1的视频卡.

我认为它可能使用集成的intel GPU而不是nVidia,但正如我从我所看到的那样理解,GLFW将强制使用正确的GPU来进行渲染.

如果我将上下文更改为2.1,一切似乎都有效,但是着色器不兼容.

有任何想法吗?

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

解决方法

问题归结为在GLFW中设置向前兼容性标志. This answer导致了以下呼叫的答案:

glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT,GL_TRUE);

这也显示在GLFW FAQ中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读