gpt4 book ai didi

opengl - OpenGL 对象名称何时为零?或者,零有语义吗?

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

我想知道有一段时间了:OpenGL 对象“名称”、由 glGenTextures 等生成的整数似乎永远不会为零,因此我使用零来指示未初始化的句柄并检查错误。到目前为止一切顺利。

我还被告知,在处理完一个对象后调用 glBind*(0) 是一种很好的做法,以确保之后不会意外地操纵挥之不去的绑定(bind)对象。听起来很有道理。

是否存在 OpenGL 对象 ID 为零的情况,使我的测试无效,或者以这种方式使用零会产生令人惊讶的效果,因为它不引用非对象?

附注是否有零作为非对象的符号名称?

P.P.S。大量使用绑定(bind)/解除绑定(bind)模式是否会导致性能损失? (由于封装的原因,代码的某些部分大部分都进​​行了冗余的重新绑定(bind)。)

最佳答案

来自OpenGL 4.4 Core Profile Specification :

Each object type has a corresponding name space. Names of objects are represented by unsigned integers of type uint. The name zero is reserved by the GL; for some object types, zero names a default object of that type, and in others zero will never correspond to an actual instance of that object type.

您可以依靠名称生成函数(例如 GenBuffers)来永远不会返回零作为生成的名称。您可以使用零来表示“没有对象”。

关于opengl - OpenGL 对象名称何时为零?或者,零有语义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193327/

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