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

Function setWebGLUniformValue

src/webgl/utils.js:199–329  ·  view source on GitHub ↗
(shader, uniform, data, getTexture, gl)

Source from the content-addressed store, hash-verified

197}
198
199export function setWebGLUniformValue(shader, uniform, data, getTexture, gl) {
200 const location = uniform.location;
201 shader.useProgram();
202
203 switch (uniform.type) {
204 case gl.BOOL:
205 if (data === true) {
206 gl.uniform1i(location, 1);
207 } else {
208 gl.uniform1i(location, 0);
209 }
210 break;
211 case gl.INT:
212 if (uniform.size > 1) {
213 data.length && gl.uniform1iv(location, data);
214 } else {
215 gl.uniform1i(location, data);
216 }
217 break;
218 case gl.FLOAT:
219 if (uniform.size > 1) {
220 data.length && gl.uniform1fv(location, data);
221 } else {
222 gl.uniform1f(location, data);
223 }
224 break;
225 case gl.FLOAT_MAT3:
226 gl.uniformMatrix3fv(location, false, data);
227 break;
228 case gl.FLOAT_MAT4:
229 gl.uniformMatrix4fv(location, false, data);
230 break;
231 case gl.FLOAT_VEC2:
232 if (uniform.size > 1) {
233 data.length && gl.uniform2fv(location, data);
234 } else {
235 gl.uniform2f(location, data[0], data[1]);
236 }
237 break;
238 case gl.FLOAT_VEC3:
239 if (uniform.size > 1) {
240 data.length && gl.uniform3fv(location, data);
241 } else {
242 gl.uniform3f(location, data[0], data[1], data[2]);
243 }
244 break;
245 case gl.FLOAT_VEC4:
246 if (uniform.size > 1) {
247 data.length && gl.uniform4fv(location, data);
248 } else {
249 gl.uniform4f(location, data[0], data[1], data[2], data[3]);
250 }
251 break;
252 case gl.INT_VEC2:
253 if (uniform.size > 1) {
254 data.length && gl.uniform2iv(location, data);
255 } else {
256 gl.uniform2i(location, data[0], data[1]);

Callers 2

constructorMethod · 0.90
updateUniformValueMethod · 0.90

Calls 1

useProgramMethod · 0.80

Tested by

no test coverage detected