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,glCompileShaderglGetShaderPrecisionFormatglReleaseShaderCompiler等在不支持着色器编译器的实现上都将生成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

另见

glCompileShaderglGetShaderPrecisionFormatglCreateShaderglDeleteShader

版权

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,图形学
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值