MCPcopy
hub / github.com/processing/p5.js / _initShader

Method _initShader

src/webgl/p5.RendererGL.js:1099–1135  ·  view source on GitHub ↗
(shader)

Source from the content-addressed store, hash-verified

1097 }
1098
1099 _initShader(shader) {
1100 const gl = this.GL;
1101
1102 const vertShader = gl.createShader(gl.VERTEX_SHADER);
1103 gl.shaderSource(vertShader, shader.vertSrc());
1104 gl.compileShader(vertShader);
1105 if (!gl.getShaderParameter(vertShader, gl.COMPILE_STATUS)) {
1106 throw new Error(`Yikes! An error occurred compiling the vertex shader: ${
1107 gl.getShaderInfoLog(vertShader)
1108 } in:\n\n${shader.vertSrc()}`);
1109 }
1110
1111 const fragShader = gl.createShader(gl.FRAGMENT_SHADER);
1112 gl.shaderSource(fragShader, shader.fragSrc());
1113 gl.compileShader(fragShader);
1114 if (!gl.getShaderParameter(fragShader, gl.COMPILE_STATUS)) {
1115 throw new Error(`Darn! An error occurred compiling the fragment shader: ${
1116 gl.getShaderInfoLog(fragShader)
1117 }`);
1118 }
1119
1120 const program = gl.createProgram();
1121 gl.attachShader(program, vertShader);
1122 gl.attachShader(program, fragShader);
1123 gl.linkProgram(program);
1124
1125 if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
1126 throw new Error(
1127 `Snap! Error linking shader program: ${gl.getProgramInfoLog(program)}`
1128 );
1129 }
1130
1131 shader._compiled = true;
1132 shader._glProgram = program;
1133 shader._vertShader = vertShader;
1134 shader._fragShader = fragShader;
1135 }
1136
1137 _finalizeShader() {}
1138

Callers 1

initMethod · 0.45

Calls 2

vertSrcMethod · 0.80
fragSrcMethod · 0.80

Tested by

no test coverage detected