本文主要是介绍OpenGLES学习第二步:关键API,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
loadGLShader加载着色器
GLES30.glCreateShader(创建一个着色器对象)
glCreateShader创建一个空的着色器对象,并返回一个可以引用的非零值(shader ID)。着色器对象用于维护定义着色器的源代码字符串。shaderType指示要创建的着色器的类型。 支持两种类型的着色器。 GL_VERTEX_SHADER类型的着色器是一个用于在可编程顶点处理器上运行的着色器。 GL_FRAGMENT_SHADER类型的着色器是一个着色器,旨在在可编程片段处理器上运行。
创建时,着色器对象的GL_SHADER_TYPE参数设置为GL_VERTEX_SHADER或GL_FRAGMENT_SHADER,具体取决于shaderType的值。
GLES30.glShaderSource(替换着色器对象中的源代码)
对于支持着色器编译器的实现,glShaderSource将着色器中的源代码设置为string指定的字符串数组中的源代码。先前存储在着色器对象中的任何源代码都将被完全替换。数组中的字符串数由count指定。 如果length为NULL,则认为每个字符串都以null结尾。如果length不是NULL,则它指向包含字符串的每个相应元素的字符串长度的数组。length数组中的每个元素可以包含相应字符串的长度(空字符不计为字符串长度的一部分)或小于0的值以表示该字符串为空终止。此时不扫描或解析源代码字符串; 它们只是复制到指定的着色器对象中。
GLES30.glCompileShader(编译一个着色器对象)
对于支持着色器编译器的实现,glCompileShader编译已存储在shader指定的着色器对象中的源代码字符串。
编译状态将存储为着色器对象的状态的一部分。 如果着色器编译时没有错误并且可以使用,则此值将设置为GL_TRUE,否则将设置为GL_FALSE。 可以通过使用参数shader和GL_COMPILE_STATUS调用glGetShaderiv来查询状态值。
由于OpenGL ES着色语言规范指定的多种原因,着色器的编译可能会失败。 无论编译是否成功,都可以通过调用glGetShaderInfoLog从着色器对象的信息日志中获取有关编译的信息。
GLES30.glGetShaderiv(从着色器对象返回一个参数)
glGetShaderiv以params形式返回特定着色器对象的参数值。 定义了以下参数:
这篇关于OpenGLES学习第二步:关键API的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!