名称
glIsShader- 判断一个名称是否与一个shader对象相对应。
C规范
GLboolean glIsShader(GLuint shader);
参数
shader
指定一个潜在的(可能的)shader对象。
描述
如果参数shader是由之前的glCreateShader方法创建出来的shader对象所对应的名称,并且尚未被glDeleteShader方法标记删除,那么glIsShader方法将返回GL_TRUE。
如果参数shader的值是0,或者是一个不是shader对象所对应的名称的非0值,或者发生了错误,那么glIsShader方法都将返回GL_FALSE。
注意
如果参数shader不是一个有效的shader对象所对应的名称,那这是不会产生错误的。
如果一个shader对象被glDeleteShader方法标记为删除,但是仍然被附着在一个program对象上的时候,那它仍然被当作是一个shader对象,并且glIsShader会返回GL_TRUE。(也就是说其实glDeleteShader只是标记一个shader要删除,但并不是真正的删除了,而且如果很长时间不再用它的时候才去回收它,但是如果这个shader对象附着在program对象上的时候,程序是不会回收它的,这个时候用glIsShader来判断,是会返回GL_TRUE的)。
另见
glCreateShader, glDeleteShader
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glIsShader.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.