GLES2.0中文API-glShaderSource

名称

glShaderSource - 替换着色器对象中的源代码

C规范

void  glShaderSource(GLuint shader,GLsizei count,const GLchar * const *string,const GLint *length);

参数

shader

    要被替换源代码的着色器对象的句柄(ID)。

count

    指定字符串和长度数组中的元素数。

string

    指定指向包含要加载到着色器的源代码的字符串的指针数组。

length

    指定字符串长度的数组。

描述

    对于支持着色器编译器的实现,glShaderSource将着色器中的源代码设置为string指定的字符串数组中的源代码。先前存储在着色器对象中的任何源代码都将被完全替换。数组中的字符串数由count指定。 如果lengthNULL,则认为每个字符串都以null结尾。如果length不是NULL,则它指向包含字符串的每个相应元素的字符串长度的数组。length数组中的每个元素可以包含相应字符串的长度(空字符不计为字符串长度的一部分)或小于0的值以表示该字符串为空终止。此时不扫描或解析源代码字符串; 它们只是复制到指定的着色器对象中。

注意

着色器编译器支持是可选的,因此必须在使用之前通过使用参数GL_SHADER_COMPILER调用glGet来查询。glShaderSource,glCompileShader,glGetShaderPrecisionFormat,glReleaseShaderCompiler等在不支持着色器编译器的实现上都将生成GL_INVALID_OPERATION。这样的实现提供了glShaderBinary替代方案,用于提供预编译的着色器二进制文件。

调用glShaderSource时,OpenGL会复制着色器源代码字符串,因此应用程序可以在函数返回后立即释放源代码字符串的副本。

错误

GL_INVALID_OPERATION:不支持着色器编译器

GL_INVALID_VALUEshader不是OpenGL生成的值

GL_INVALID_OPERATIONshader不是着色器对象

GL_INVALID_VALUEcount比0小

相关Gets

glGet 参数GL_SHADER_COMPILER

glGetShaderiv 参数shaderGL_SHADER_SOURCE_LENGTH

glGetShaderSource 参数shader

glIsShader

另见

glCompileShader,glGetShaderPrecisionFormat,glCreateShader,glDeleteShader

版权

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glShaderSource.xml

https://blog.csdn.net/flycatdeng

Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.

Android,OpenGL ES,图形学

你可能感兴趣的:(gles,GLES2.0中文API)