将纹理ID提供给glDeleteBuffers的openGL行为是什么?

时间:2015-08-18 21:10:59

标签: opengl buffer

(而不是使用glDeleteTextures)

这是不确定的?
它会删除纹理缓冲区吗? (缓冲区是缓冲区。不是吗?)

2 个答案:

答案 0 :(得分:3)

不要那样做。

来自文档,

  

glDeleteBuffers默默地忽略0和与现有缓冲区对象不对应的名称。

所以,这很糟糕,但它不一定会使你的程序崩溃。你的程序可能只是发现一些意外删除的缓冲区对象(好吧,如果你试图映射缓冲区但是没有检查错误,这个崩溃你的程序。)

答案 1 :(得分:3)

未定义。

OpenGL实现可能会在纹理和缓冲区中使用一组名称,在这种情况下,它可能只是起作用。但是,我曾经在OSX上对开发中的标题调用了错误的glDelete,它偶尔会使操作系统崩溃(需要一个电源循环),所以这绝对是一件非常危险的事情。