【问题标题】:opengl on Linux : unable to use a correct versionLinux 上的 opengl:无法使用正确的版本
【发布时间】:2017-03-15 13:15:53
【问题描述】:

我尝试在 Fedora 25 上使用 glfw + glew 构建程序。 其中一部分是:

int main()
{
    glfwInit();
    glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_ANY_PROFILE);
    //glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
    //glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);
    mainWindow = glfwCreateWindow(1024,768,"NONE",nullptr,nullptr);
    if(mainWindow == nullptr)
    {
        std::cout<<"Creating window ERROR.\n"<<std::endl;
        glfwTerminate();
        return 1;
    }
    .....
}

如果我使用glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE); 来获取3.3 版本,但是它将无法创建窗口。

我的硬件支持 openGL 4.1。

upd:得到了答案....

【问题讨论】:

  • 对于 Mesa,您应该请求核心配置文件,否则您将获得 OpenGL 3.0。这类似于 macOS 上的行为。不要为前向兼容性位而烦恼,它已经过时并且没有真正做任何事情。我会运行glxinfo | grep version 以确保已知的良好程序可以创建所需版本的上下文。查看核心配置文件版本字符串。

标签: opengl glfw glew fedora-25


【解决方案1】:

只需在此处取消注释 glfwWindowHint(GLFW_CONTEXT_VERSION_*,*)
在使用带有glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE) 的核心配置文件时,
需要请求显式版本。

感谢 Dietrich Epp 的评论。

顺便问一下,谁能告诉我如何获取这些信息?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多