in seriously.js [2312:2349]
EffectNode.prototype.buildShader = function () {
var shader, effect = this.effect;
if (this.shaderDirty) {
if (effect.commonShader && commonShaders[this.hook]) {
if (!this.shader) {
commonShaders[this.hook].count++;
}
this.shader = commonShaders[this.hook].shader;
} else if (effect.shader) {
if (this.shader && !effect.commonShader) {
this.shader.destroy();
}
shader = effect.shader.call(this, this.inputs, {
vertex: baseVertexShader,
fragment: baseFragmentShader
}, Seriously.util);
if (shader instanceof ShaderProgram) {
this.shader = shader;
} else if (shader && shader.vertex && shader.fragment) {
this.shader = new ShaderProgram(gl, shader.vertex, shader.fragment);
} else {
this.shader = baseShader;
}
if (effect.commonShader) {
commonShaders[this.hook] = {
count: 1,
shader: this.shader
};
}
} else {
this.shader = baseShader;
}
this.shaderDirty = false;
}
};