freeglut一个易误用的地方

freeglut一个易误用的地方
3.0以后的opengl引入了废弃模式和profile定义.其中core profile上下文不支持被废弃的函数.
freeglut支持兼容模式指定:
glutInitContextVersion指定版本
glutInitContextFlags指定是否向后兼容.
glutInitContextProfile指定profile是否core的.

freeglut自带的例子smooth_opengl3把 glutInitContextVersion指定参数 GLUT_FORWARD_COMPATIBLE,windows平台映射到wgl的 WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB标记.而 WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB标记的意思是"向前"兼容,也就是说不支持废弃的函数.
这样smooth_opengl3编译出来的例子出现gl错误,什么显示都没有.

解决方案是注释掉 glutInitContextFlags调用,因为默认上下文就是以兼容模式建立.
glutInitContextProfile请求opengl 3.2以上版本才有效果,通常可以不管它.

你可能感兴趣的:(freeglut一个易误用的地方)