【问题标题】:Where is the documentation for glutInitContextVersion?glutInitContextVersion 的文档在哪里?
【发布时间】:2015-01-15 07:47:46
【问题描述】:

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

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

【问题讨论】:

标签: opengl freeglut


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢,这很有帮助。我确实开始关注 GLFW,因为我没有意识到 FreeGLUT 存在跨平台问题。
  • 链接是 404 "ARB_create_context"
  • @activedecay 谢谢,我已经更新了链接。
猜你喜欢
  • 2019-03-07
  • 1970-01-01
  • 2017-04-08
  • 2015-02-21
  • 2014-06-27
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多