ShaderProgram类基本封装了与着色器相关的所有操作(除了向着色器中传递数据的部分,这部分单独封装在其他类库中)。
ShaderProgram封装的功能包括:
1、编译和链接shader--------function createAndLinkProgram(gl, shader)
2、获取顶点属性的位置信息-----function findVertexAttributes(gl, program, numberOfAttributes)
3、查找uniform变量的位置信息----function findUniforms(gl, program)
4、分离内置的uniform和自定义的uniform----function partitionUniforms(shader, uniforms)
5、设置纹理数据----function setSamplerUniforms(gl, program, samplerUniforms)
6、绑定shader----------------ShaderProgram.prototype._bind