glutInitContextVersion的文档在哪里?

时间:2015-01-15 07:47:47

标签: opengl freeglut

FreeGLUT API文档不包含glutInitContextVersion的条目,当我谷歌搜索它时,我发现的所有问题都没有直接解决其使用或效果。

是否记录在任何地方?

1 个答案:

答案 0 :(得分:5)

glutInitContextVersion不是官方GLUT API的一部分(这是完全过时的),但是由freeglut添加的非官方扩展。但是,只要知道OpenGL的上下文版本是如何工作的,它的使用就会非常简单,这在ARB_create_context扩展系列中已经定义。

该函数将选择在实际创建上下文时请求的OpenGL版本。请注意,这不要求实现返回具有您请求的版本的上下文,但它应该将 compatible 的上下文返回到请求的版本,以便存在该版本的所有功能。

有一些事情似乎是关于freeglut处理这个问题的。从查看代码(对于当前的稳定版本2.8.1),可以看到freeglut实现了以下逻辑: 如果实现无法满足版本约束,但确实支持ARB_create_context扩展,则会生成一些错误,并且不会创建任何上下文。但是,如果请求版本,但实现甚至不支持相关扩展,则会创建旧版GL上下文,从而有效地完全忽略版本请求。这对我来说似乎有些不一致。但是,由于这些内容没有记录,也不是GLUT规范的一部分,因此不清楚这种行为将来是否会保持不变。

如果您不需要某些特定于GLUT的功能(基本上所有功能都依赖于弃用的OpenGL),您可能需要查看一些更现代的替代方案,例如GLFW