【发布时间】:2021-12-01 05:20:39
【问题描述】:
我最好的猜测是 GLuint 持有一个指针而不是对象,因此它可以“持有”任何对象,因为它实际上只是持有一个指向内存空间的指针
但如果这是真的,为什么我在使用这些变量时不需要取消引用任何东西?
【问题讨论】:
-
这些值是 not 指针,因此不应取消引用。它们如何映射到 OpenGL 中的“对象”是一个我们并不真正需要知道的神秘黑匣子。
-
OpenGL 在
GLuints 中持有“句柄”(内部数据结构的索引)——它们可以引用 OpenGL 驱动程序或视频卡等中的某些内容。它们不应该被“取消引用” "或以其他方式操纵。 OpenGL 驱动程序知道这些“句柄”代表什么,它们应该只传递给正确的 API 调用。如果您将它们传递给错误的 API 调用,那么您将破坏 API 合同。 -
简答:这不是真的。