in seriously.js [3926:3972]
TargetNode.prototype.renderSecondaryWebGL = function () {
var sourceWidth,
sourceHeight,
matrix,
x,
y;
if (this.dirty && this.ready && this.source) {
this.emit('render');
this.source.render(true);
sourceWidth = this.source.width;
sourceHeight = this.source.height;
if (!this.pixels || this.pixels.length !== sourceWidth * sourceHeight * 4) {
this.pixels = new Uint8Array(sourceWidth * sourceHeight * 4);
}
this.source.readPixels(0, 0, sourceWidth, sourceHeight, this.pixels);
this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, sourceWidth, sourceHeight, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, this.pixels);
if (sourceWidth === this.width && sourceHeight === this.height) {
this.uniforms.transform = identity;
} else if (this.transformDirty) {
matrix = this.transform;
mat4.copy(matrix, identity);
x = this.source.width / this.width;
y = this.source.height / this.height;
matrix[0] *= x;
matrix[1] *= x;
matrix[2] *= x;
matrix[3] *= x;
matrix[4] *= y;
matrix[5] *= y;
matrix[6] *= y;
matrix[7] *= y;
this.uniforms.transform = matrix;
this.transformDirty = false;
}
this.uniforms.source = this.texture;
draw(this.shader, this.model, this.uniforms, null, this);
this.dirty = false;
}
};