glGenTextures(...)
,glGenFramebuffers(...)
生成的ID是否为0?
更具体地说,我可以使用零作为未初始化纹理的id,还是需要使用-1?
答案 0 :(得分:6)
没有glGen*
函数会返回0,尽管有时它会引用默认对象。对于纹理,您可以在glDeleteTextures的文档中找到相应的信息。在这种情况下,0是默认纹理,glGenTextures
永远不会返回。
答案 1 :(得分:4)
我需要使用-1吗?
您不能使用-1,因为对象名称是无符号整数。
由glGenTextures(...),glGenFramebuffers(...)生成的id是否会为0?
没有
更具体地说,我可以使用零作为未初始化纹理的id
对于 textures ,是的。
对于 most OpenGL objects,对象0相当于一个NULL指针:它不是一个对象。但是,对于一些 OpenGL对象,object 0 does have meaning。
例如,Framebuffer对象0是默认的帧缓冲区。从技术上讲,纹理对象0仍然是纹理。然而,纹理对象0的行为是如此古怪,以至于最好完全忽略它,并且从不显式使用纹理对象0。