Shader constructor
Shader(
- String vertexShaderSource,
- String fragmentShaderSource
)
Implementation
Shader(this.vertexShaderSource, this.fragmentShaderSource) {
vertexShader = gl.createShader(WebGL.WebGL.VERTEX_SHADER);
gl.shaderSource(vertexShader, vertexShaderSource);
gl.compileShader(vertexShader);
if(!(gl.getShaderParameter(vertexShader, WebGL.WebGL.COMPILE_STATUS) as bool)) {
throw gl.getShaderInfoLog(vertexShader) as String;
}
fragmentShader = gl.createShader(WebGL.WebGL.FRAGMENT_SHADER);
gl.shaderSource(fragmentShader, fragmentShaderSource);
gl.compileShader(fragmentShader);
if(!(gl.getShaderParameter(fragmentShader, WebGL.WebGL.COMPILE_STATUS) as bool)) {
throw gl.getShaderInfoLog(fragmentShader) as String;
}
program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
if(!(gl.getProgramParameter(program, WebGL.WebGL.LINK_STATUS)as bool)) {
throw gl.getProgramInfoLog(program) as String;
}
gl.validateProgram(program);
if(!(gl.getProgramParameter(program, WebGL.WebGL.VALIDATE_STATUS)as bool)) {
throw gl.getProgramInfoLog(program) as String;
}
}