glutInitContextVersion 的文档在哪里?

Where is the documentation for glutInitContextVersion?

FreeGLUT API 文档不包含 glutInitContextVersion 的条目,当我 google 找到它时,我发现的只是一个问题列表,这些问题没有直接解决它用法或效果。

它有任何记录吗?

glutInitContextVersion 不是官方 GLUT API 的一部分(顺便说一句,完全过时了),而是 freeglut 添加的非官方扩展。然而,一旦了解 OpenGL 的上下文版本如何工作,它的用法就非常简单了,这是在 ARB_create_context 扩展家族中定义的。

该函数将select在实际创建上下文时请求哪个 OpenGL 版本。请注意,这不需要实现 return 与您请求的版本完全一致的上下文,但它应该 return 与请求的版本 兼容 , 因此该版本的所有功能都存在。

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

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