|
|
Glsl 7.4
对象被生成,也可以被清除掉。函数是
glDeleteObjectARB(GLhandleARB?object)
当Shaders已经被编泽链接成program,或者不再需要
有的program,调用此函数删除这些对象,释放内存。
当shader对象与program还在被使用时,如果调用此函数,那么它们会被标记,等到它们完成任务:对于shader来说,等于取消绑定;对于Program来说,等于不再使用于当前的Render Context。
如何查询Shader的删除标记呢?还是用glGetObjectParameterARB,传入GL_OBJECT_DELETE_STATUS_ARB参数。
想取消Shader的绑定方式,调用函数,void?glDetachObjectARB(GLhandleARB?program,?GLhandleARB?shader)。
这里有一个小技巧,当shader被绑定到program上时,立刻删除它们。这样当它们不再被使用时可以被程序自动删除掉。
|
|