gpt4 book ai didi

opengl - 为什么我们要把 glGetError 放在循环中?

转载 作者:行者123 更新时间:2023-12-02 06:56:50 25 4
gpt4 key购买 nike

当我搜索 glGetError 时,我发现以下内容(来自 OpenGL)

To allow for distributed implementations, there may be several error flags. If any single error flag has recorded an error, the value of that flag is returned and that flag is reset to GL_NO_ERROR when glGetError is called.
If more than one flag has recorded an error, glGetError returns and clears an arbitrary error flag value. Thus, glGetError should always be called in a loop, until it returns GL_NO_ERROR, if all error flags are to be reset.

Q1:分布式实现错误标志的定义是什么?总共有多少个错误标志?

问题2:这里的任意是什么意思?

Q3:“glGetError应该总是在循环中调用”意味着在分布式实现的情况下这是强制性的,但如果,那么我们不需要将glGetError放在循环中,对吧?

其他资源,例如wrap a macro around glGetError , glGetError example in the superbible ,都使用循环。

最佳答案

Q1: What is the definitation of distributed implementation and error flag?

分布式实现是指 OpenGL 实现驻留在一台计算机上,而程序在另一台计算机上进行 OpenGL 调用。这甚至不是一个晦涩的、奇异的情况,但在 X11 中很常见。假设您可以通过 SSH 连接到 example.com,并且那里有一个可用的 OpenGL 程序,例如 glxgears。然后,您可以在 example.com 上执行 glxgears,但将 OpenGL 命令通过 GLX 传输传输到本地 X11 服务器。

ssh -X example.com glxgears

… and how many of error flags in total?

OpenGL 规范中定义并在 glGetError 引用中列出的所有错误标记。

Q2: what does arbitrary mean here?

正是字典定义的意思。如果设置了多个错误标志,OpenGL 规范不会强制报告这些错误标志的特定顺序。

Q3: "glGetError should always be called in a loop" means this is compulsory in the case of distributed implementation, but if not, then we do not need to put glGetError in a loop, right?

始终在循环中调用glGetError,因为您可能最终会在不知情的情况下陷入分布式情况。有 GLX 和间接渲染,但 OpenGL 可能以任何其他方式分发,例如 VirtualGL 或其他方式,您不知道情况如何。

关于opengl - 为什么我们要把 glGetError 放在循环中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36763085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com