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

Function createProgram

demo/js/index3.js:4772–4806  ·  view source on GitHub ↗
(gl, vertexScript, fragScript)

Source from the content-addressed store, hash-verified

4770}
4771
4772function createProgram(gl, vertexScript, fragScript) {
4773 var vertexShader = createShader(gl, vertexScript, gl.VERTEX_SHADER);
4774 var fragShader = createShader(gl, fragScript, gl.FRAGMENT_SHADER);
4775
4776 var program = gl.createProgram();
4777 gl.attachShader(program, vertexShader);
4778 gl.attachShader(program, fragShader);
4779
4780 gl.linkProgram(program);
4781
4782 var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
4783 if (!linked) {
4784 var lastError = gl.getProgramInfoLog(program);
4785 error("Error in program linking: " + lastError);
4786 gl.deleteProgram(program);
4787 return null;
4788 }
4789
4790 var positionLocation = gl.getAttribLocation(program, "a_position");
4791 var texCoordLocation = gl.getAttribLocation(program, "a_texCoord");
4792
4793 var texCoordBuffer = gl.createBuffer();
4794 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
4795 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);
4796 gl.enableVertexAttribArray(texCoordLocation);
4797 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
4798
4799 // Create a buffer for the position of the rectangle corners.
4800 var buffer = gl.createBuffer();
4801 gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
4802 gl.enableVertexAttribArray(positionLocation);
4803 gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
4804
4805 return program;
4806}
4807
4808function createShader(gl, script, type) {
4809 var shader = gl.createShader(type);

Callers

nothing calls this directly

Calls 2

createShaderFunction · 0.70
errorFunction · 0.70

Tested by

no test coverage detected