名称
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/.

本文详细介绍了OpenGL ES中的glIsShader函数,该函数用于判断一个名称是否与一个shader对象相对应。阐述了其参数、返回值及使用场景,强调了在shader对象被标记删除但仍未完全回收时的特殊行为。

1186

被折叠的 条评论
为什么被折叠?



