Linux 上的 opengl:无法使用正确的版本
opengl on Linux : unable to use a correct version
我尝试在 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,它将无法创建 window。
我的硬件支持 openGL 4.1。
更新:得到答案....
只需在此处取消注释 glfwWindowHint(GLFW_CONTEXT_VERSION_*,*)
。
在 glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE)
、
中使用核心配置文件时
需要请求显式版本。
感谢 Dietrich Epp 的评论。
顺便说一句,谁能告诉我如何获得这些信息?
我尝试在 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,它将无法创建 window。
我的硬件支持 openGL 4.1。
更新:得到答案....
只需在此处取消注释 glfwWindowHint(GLFW_CONTEXT_VERSION_*,*)
。
在 glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE)
、
中使用核心配置文件时
需要请求显式版本。
感谢 Dietrich Epp 的评论。
顺便说一句,谁能告诉我如何获得这些信息?