我的代码管理GLSL着色器的方式是,它创建每个着色器和相关程序,并删除每个着色器和程序。我最近阅读了http://www.opengl.org/wiki/GLSL_Object,其中指出:
由于着色器对象被附加到程序对象上,因此即使您删除着色器对象,它也将继续存在。只有当它不再附加到任何程序对象(当然,用户要求删除它时)时,系统才会删除它。
如果我在链接到程序后调用
由于着色器对象被附加到程序对象上,因此即使您删除着色器对象,它也将继续存在。只有当它不再附加到任何程序对象(当然,用户要求删除它时)时,系统才会删除它。
如果我在链接到程序后调用
glDeleteShader()
来删除着色器对象,我是否理解正确,我只需要跟踪程序?可以安全地假设这总是正确的吗?