function createP5ToCallDrawable()

in toolkit/jb/svg.js [654:689]


function createP5ToCallDrawable(node, trgWidth, trgHeight, getDrawable) {
    var srcWidth = window.innerWidth;
    var srcHeight = window.innerHeight;
    var ctx;
    var setupCalled = false;
    var redrawsRequestedBeforeSetup = false;
    return function(p) {
        var prevRedraw = p.redraw;
        p.preload = function() {};
        p.setup = function() { var c = p.createCanvas(srcWidth, srcHeight);
                               c.addClass('p5-inner-canvas');
                               c.canvas.style.transform = 'scale(' + (trgWidth / srcWidth) + ',' +
                                                                     (trgHeight / srcHeight) + ')';
                               ctx = c.drawingContext;
                               p.noLoop();
                               setupCalled = true;
                               if (redrawsRequestedBeforeSetup) {
                                 //setTimeout(function() {
                                    prevRedraw.call(p);
                                 //}, 1);
                               }
                             }
        p.draw = function() {
            var drawable = getDrawable();
            if (!drawable) return;
            drawable.func(p, drawable.conf, ctx, { opacity: 1, blendMode: 'N' });
        };
        p.redraw = function() {
            if (!setupCalled) {
                redrawsRequestedBeforeSetup = true;
                return;
            }
            prevRedraw.call(p);
        };
    }
}