glutInitContextVersion的文档在哪里?

7

FreeGLUT API文档中没有glutInitContextVersion的条目,当我搜索它时,所有我找到的都是一些问题列表,这些问题并没有直接涉及它的用法或效果。

它在任何地方都有记录吗?


相关:https://dev59.com/PXzaa4cB1Zd3GeqPXP4h - Ciro Santilli OurBigBook.com
1个回答

7

glutInitContextVersion不是官方GLUT API的一部分(顺便说一下,它已经完全过时了),但是是由freeglut添加的非官方扩展。然而,只要了解OpenGL上下文版本的工作方式(这是在ARB_create_context扩展系列中定义的),它的使用就非常简单明了。

该函数将在实际创建上下文时选择请求的OpenGL版本。请注意,这不需要实现返回您请求的确切版本的上下文,但是它应该返回与请求的版本兼容的上下文,以便该版本的所有功能都存在。

有一些关于freeglut处理此问题似乎没有记录的事情。从查看代码(对于当前稳定版本2.8.1)可以看出,freeglut实现了以下逻辑:

  • 如果实现无法满足版本约束条件,但支持ARB_create_context扩展,则会生成一些错误,并且不会创建上下文。
  • 但是,如果请求了版本,但实现甚至不支持相关扩展,则会创建传统的GL上下文,实际上完全忽略版本请求。我认为这似乎有点不一致。但是,由于这些东西没有记录并且不是GLUT规范的一部分,因此不清楚行为在未来是否会保持不变。

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


谢谢,这很有帮助。我确实开始研究GLFW了,因为我没有意识到FreeGLUT存在跨平台问题。 - Nathan Ridley
链接是 404 "ARB_create_context"。 - activedecay
1
@activedecay 谢谢,我已经更新了链接。 - derhass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接