名称
glCreateShader - 创建一个着色器对象
C规范
GLuint glCreateShader(GLenum shaderType);
参数
shaderType
指定要创建的着色器的类型。 只能是GL_VERTEX_SHADER或GL_FRAGMENT_SHADER。
描述
glCreateShader创建一个空的着色器对象,并返回一个可以引用的非零值(shader ID)。着色器对象用于维护定义着色器的源代码字符串。shaderType指示要创建的着色器的类型。 支持两种类型的着色器。 GL_VERTEX_SHADER类型的着色器是一个用于在可编程顶点处理器上运行的着色器。 GL_FRAGMENT_SHADER类型的着色器是一个着色器,旨在在可编程片段处理器上运行。
创建时,着色器对象的GL_SHADER_TYPE参数设置为GL_VERTEX_SHADER或GL_FRAGMENT_SHADER,具体取决于shaderType的值。
注意
与纹理对象一样,着色器对象的名称空间可以在一组上下文中共享,只要上下文的服务器端共享相同的地址空间即可。 如果名称空间跨上下文共享,则也会共享任何附加对象和与这些附加对象关联的数据。
当从不同的执行线程访问对象时,应用程序需要负责跨API调用提供同步。
错误
如果创建着色器对象时发生错误,则此函数返回0。
GL_INVALID_ENUM:shaderType不是一个可接受的值。
相关Gets
glGetShaderiv 使用有效的着色器对象和要查询的参数
glGetShaderInfoLog 使用有效的着色器对象
glGetShaderSource 使用有效的着色器对象
另见
glAttachShader,glCompileShader,glDeleteShader,glDetachShader,glShaderSource,glShaderBinary
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glCreateShader.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.
![](https://i-blog.csdnimg.cn/blog_migrate/b61b18ac35ef755ca70fdb04fbb7539f.png)