MCPcopy Create free account
hub / github.com/codrops/RainEffect / createProgram

Function createProgram

demo/js/index2.js:4754–4788  ·  view source on GitHub ↗
(gl, vertexScript, fragScript)

Source from the content-addressed store, hash-verified

4752}
4753
4754function createProgram(gl, vertexScript, fragScript) {
4755 var vertexShader = createShader(gl, vertexScript, gl.VERTEX_SHADER);
4756 var fragShader = createShader(gl, fragScript, gl.FRAGMENT_SHADER);
4757
4758 var program = gl.createProgram();
4759 gl.attachShader(program, vertexShader);
4760 gl.attachShader(program, fragShader);
4761
4762 gl.linkProgram(program);
4763
4764 var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
4765 if (!linked) {
4766 var lastError = gl.getProgramInfoLog(program);
4767 error("Error in program linking: " + lastError);
4768 gl.deleteProgram(program);
4769 return null;
4770 }
4771
4772 var positionLocation = gl.getAttribLocation(program, "a_position");
4773 var texCoordLocation = gl.getAttribLocation(program, "a_texCoord");
4774
4775 var texCoordBuffer = gl.createBuffer();
4776 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
4777 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);
4778 gl.enableVertexAttribArray(texCoordLocation);
4779 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
4780
4781 // Create a buffer for the position of the rectangle corners.
4782 var buffer = gl.createBuffer();
4783 gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
4784 gl.enableVertexAttribArray(positionLocation);
4785 gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
4786
4787 return program;
4788}
4789
4790function createShader(gl, script, type) {
4791 var shader = gl.createShader(type);

Callers

nothing calls this directly

Calls 2

createShaderFunction · 0.70
errorFunction · 0.70

Tested by

no test coverage detected