in seriously.js [883:946]
function makeShaderSetter(info, loc) {
if (info.type === gl.SAMPLER_2D) {
return function (value) {
info.glTexture = gl['TEXTURE' + value];
gl.uniform1i(loc, value);
};
}
if (info.type === gl.BOOL|| info.type === gl.INT) {
if (info.size > 1) {
return function (value) {
gl.uniform1iv(loc, value);
};
}
return function (value) {
gl.uniform1i(loc, value);
};
}
if (info.type === gl.FLOAT) {
if (info.size > 1) {
return function (value) {
gl.uniform1fv(loc, value);
};
}
return function (value) {
gl.uniform1f(loc, value);
};
}
if (info.type === gl.FLOAT_VEC2) {
return function (obj) {
gl.uniform2f(loc, obj[0], obj[1]);
};
}
if (info.type === gl.FLOAT_VEC3) {
return function (obj) {
gl.uniform3f(loc, obj[0], obj[1], obj[2]);
};
}
if (info.type === gl.FLOAT_VEC4) {
return function (obj) {
gl.uniform4f(loc, obj[0], obj[1], obj[2], obj[3]);
};
}
if (info.type === gl.FLOAT_MAT3) {
return function (mat3) {
gl.uniformMatrix3fv(loc, false, mat3);
};
}
if (info.type === gl.FLOAT_MAT4) {
return function (mat4) {
gl.uniformMatrix4fv(loc, false, mat4);
};
}
throw new Error('Unknown shader uniform type: ' + info.type);
}