gpt4 book ai didi

c++ - 有没有办法强制 OpenGL 标识符从 1 而不是 0 开始?

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:27 25 4
gpt4 key购买 nike

我将 OpenGL 标识符存储在 GLuint 类型的变量中。但我不知道应该将这些变量初始化为什么值。我想将它们初始化为零,但不幸的是,这是 OpenGL 的有效标识符。

变量必须在存储 OpenGL 对象之前初始化,因为这是稍后异步完成的。那么我能否以某种方式强制 OpenGL 以 1 而不是 0 开始索引?或者我应该使用 GLint 并初始化为 -1

我想以干净的方式解决这个问题。当然,我可以存储一对变量和一个 bool 标志或类似的东西。但那将是 hacky。您如何处理这个问题?

最佳答案

I would like to initialize them to zero, but unfortunately that is a valid identifier for OpenGL.

不,不是。 0 means "not an object" for most OpenGL object types .唯一具有有效 0 对象的是 FBO(其中 0 表示 Default Framebuffer )、变换反馈对象和纹理(您应该将它们视为它们不是对象)。

所以只用零。用零调用任何 glDelete* 都是合法的,并且什么也不会发生,即使 0 是该类型的有效对象也是如此。

关于c++ - 有没有办法强制 OpenGL 标识符从 1 而不是 0 开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15451393/

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