FreeGlut OpenGL 上下文版本
FreeGlut OpenGL Context Version
在尝试使用 Freeglut 创建 OpenGL 4.1 上下文时,我发现了一些不一致之处:
我使用的是带有最新驱动程序的 AMD 显卡。在AMD网站上,它说
支持 OpenGL 4.2
当我通常运行我的应用程序(由控制台窗口和 glut-gui 组成((请参阅下面的源代码(时,我在控制台中得到以下输出:freeglut (C:Users(Username)DocumentsVisual Studio 2012ProjectsTestsOGLTestDebugOGLTest.exe): OpenGL >2.1 context requested but wglCreateContextAttribsARB is not available! Falling back to legacy context creation
.
我假设我的内部图形芯片被使用,并将我的计算机设置为使用amd卡作为我的程序。之后,上面的错误消失了,但 glew 创建的另一个控制台输出仍然显示 Error: Missing GL version
.
那么为什么会这样,我可以确定,选择加入 4.1 上下文是有效的吗?
源:
glewExperimental = GL_TRUE;
GLenum err = glewInit();
if (GLEW_OK != err) {
std::cerr<<"Error: "<<glewGetErrorString(err)<<std::endl;
} else {
if (GLEW_VERSION_4_1)
{
std::cout<<"Driver supports OpenGL 4.1nDetails:"<<std::endl;
}
}
glutInit(&__argc,__argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitContextVersion(4,1);
glutInitWindowSize(500,500);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL Test");
glutDisplayFunc(display);
glutMainLoop();
我自己修复了它:只有我的代码顺序是错误的。实际选择加入OpenGL 4(或在此特殊情况下为4.1(发生在调用glutCreateWindow("Window Title")
之后,令人惊讶的是不是在glutInitContextVersion(major, minor)
之后。但是,将代码放入:
glewExperimental = GL_TRUE;
GLenum err = glewInit();
if (GLEW_OK != err) {
std::cerr<<"Error: "<<glewGetErrorString(err)<<std::endl;
} else {
if (GLEW_VERSION_4_1)
{
std::cout<<"Driver supports OpenGL 4.1nDetails:"<<std::endl;
}
}
在glutCreateWindow("OpenGL Test");
背后使整个事情工作并创建"驱动程序支持 OpenGL 4.1"作为输出。
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- #为""定义宏;静态";针对不同的上下文
- 与互斥锁相比,旋转锁可以保证上下文切换
- 导入库可以跨dll版本工作吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 不同的Visual Studio版本中缺少.dll
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 如何创建一个版本的 boost::range::transform,该版本具有用于捕获上下文的额外参数
- 在上下文初始化之前查询支持的最高 OpenGL 版本?
- FreeGlut OpenGL 上下文版本
- 在OS X上更改Qt 4.8.6中QGLWidgets的OpenGL上下文版本
- 在OS X(不同版本/配置文件)上的OpenGL上下文之间共享数据