温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenGLES3.0创建和编译着色器相关语法

发布时间:2020-07-09 23:59:19 来源:网络 阅读:972 作者:慕婧 栏目:开发技术

// 创建着色器,返回句柄

GLuint glCreateShader(GLenum type)

type:

GL_VERTEX_SHADER

GL_FRAGMENT_SHADER

// 删除着色器

void glDeleteShader(GLuint shader)

如果一个着色器已经连接到程序对象,那么不会立刻删除,而是先标记,等到没有任何连接时,再释放内存。


// 设置着色器源码

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

count 着色器源字符串的数量,着色器可以由多个源字符串组成,但是每个着色器只能有一个main函数

string 指向保存数量为count的着色器源字符串的数组指针

length 指向保存每个着色器字符串大小且元素数量为count的整数数组指针,可以为NULL


// 编译着色器

void glCompileShader(GLuint shader)


// 查询着色器信息

void glGetShaderiv(GLuint shader, GLenum pname, GLint *params)

pname:

GL_COMPILE_STATUS// 编译状态 返回GL_TRUE或GL_FALSE

GL_DELETE_STATUS// 删除状态 返回是否用glDeleteShader标记

GL_INFO_LOG_LENGTH// 日志长度

GL_SHADER_SOURCE_LENGTH// 源码长度

GL_SHADER_TYPE// 着色器类型,返回GL_VERTEX_SHADER或GL_FRAGMENT_SHADER

params 整数指针,用于返回结果


// 获取日志信息

void glGetShaderInfoLog(Gluint shader, Glsizei maxLength, Glsizei *length, Glchar *infoLog)

maxLength:需要获取的信息日志缓冲区长度

length:写入的信息日志长度 如果不知道长度,可以填NULL

infoLog 用于返回信息日志的缓冲区


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI