如何通过openGL或Glut检查窗口是不是打开
Posted
技术标签:
【中文标题】如何通过openGL或Glut检查窗口是不是打开【英文标题】:How to check window is open via openGL or Glut如何通过openGL或Glut检查窗口是否打开 【发布时间】:2018-04-14 12:43:25 【问题描述】:我在 SFML 中看到了一个名为 isOpen 的方法,它检查窗口是否打开。
openGL 或 GLUT 中是否有类似的等效项来检查窗口是否打开?
【问题讨论】:
@Rabbid76,如何检查特定窗口 ID 是否存在? @Rabbid76 我想知道 SFML 是如何执行的。 @Rabbid76 我从 GLUT 转到 SFML,现在我正试图将我的代码转换回 GLUT,因为 SFML 渲染对象的距离相关优先级有误。 【参考方案1】:OpenGL 渲染到附加到 OpenGL 渲染上下文的帧缓冲区。渲染上下文可能是从将(默认)帧缓冲区连接到窗口的窗口创建的,但这超出了 OpenGL 规范的范围。
至于 GLUT 你可以使用glutSetWindow
设置你要检查它是否存在的窗口id,然后做glutGetWindow
。如果它返回先前设置的窗口ID,则该窗口存在。如果不是,glutSetWindow
显然失败了,因为窗口不存在。
这是否属实seems implementation dependent,但我怀疑有人会愚蠢到在这种微不足道的情况下不实施错误处理。
【讨论】:
使用glutSetWindow
有开销吗?还可以保证现有窗口的窗口 id >0 吗?
@ar2015 是的,虽然我没有测量多少,因为我的应用程序在出现的部分都没有性能问题。是的,你的第二个问题,"The range of allocated identifiers starts at one"以上是关于如何通过openGL或Glut检查窗口是不是打开的主要内容,如果未能解决你的问题,请参考以下文章
OpenGL及GLUT---------------函数整理