3.0以后的opengl引入了廢棄模式和profile定義.其中core profile上下文不支持被廢棄的函數(shù).
freeglut支持兼容模式指定:
glutInitContextVersion指定版本
glutInitContextFlags指定是否向后兼容.
glutInitContextProfile指定profile是否core的.
freeglut自帶的例子smooth_opengl3把glutInitContextVersion指定參數(shù)GLUT_FORWARD_COMPATIBLE,windows平臺映射到wgl的WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB標記.而WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB標記的意思是"向前"兼容,也就是說不支持廢棄的函數(shù).
這樣smooth_opengl3編譯出來的例子出現(xiàn)gl錯誤,什么顯示都沒有.
解決方案是注釋掉glutInitContextFlags調(diào)用,因為默認上下文就是以兼容模式建立.
glutInitContextProfile請求opengl 3.2以上版本才有效果,通常可以不管它.